UNPKG

kre-form

Version:

本项目由 Angular8+ 编写的表单设计器和表单应用,所有的配置都是 JSON 结构体组成,PC 端是基于 ANT 组件库封装

152 lines (151 loc) 4.11 kB
import { AfterViewInit, DoCheck, ElementRef, EventEmitter, KeyValueDiffers, NgZone, OnDestroy, OnInit } from "@angular/core"; import { ControlValueAccessor } from "@angular/forms"; import { Editor, EditorFromTextArea, ScrollInfo } from "codemirror"; import { Formula } from "../tools/formula"; import { NzConfigService } from "ng-zorro-antd/core"; import { NzMessageService } from "ng-zorro-antd/message"; export declare class DeonCodemirror implements AfterViewInit, OnDestroy, ControlValueAccessor, DoCheck, OnInit { private _differs; private _ngZone; el: ElementRef; private message; private nzConfigService; itemTitle: { tablesName: string; fieldsName: string; }; options: { [key: string]: any; }; /** * 可用变量对象 * { * formFields:[],tableList:[] * } */ fieldData: any; /** * 黑名单 值为函数名数组 */ blacklist: Array<string>; readonly dateType: string; variableSearch: string; usageFunSearch: string; /** * 所有支持函数分组信息 * name 分组名称 string * code 分组code string * items 函数名集合 string[] */ readonly globalCategorys: any[]; /** * 获取全局CodeMirror */ readonly codeMirrorGlobal: any; fml: Formula; name: string; title: string; autoFocus: boolean; /** * 函数显示类型 * 班次 attendance 所有 // attendance-items 精度 进位规则 * * 与categorys互斥,有type时使用type */ type: string; /** * 显示的函数组 * 与type 互斥,如果type有值,当前参数无效。 */ categorys: Array<string>; typeList: any; preserveScrollPosition: boolean; labelMap: any; _fieldData: any; cursorActivity: EventEmitter<Editor>; focusChange: EventEmitter<boolean>; scroll: EventEmitter<ScrollInfo>; drop: EventEmitter<[Editor, DragEvent]>; textChange: EventEmitter<any>; ref: ElementRef; value: string; disabled: boolean; isFocused: boolean; codeMirror?: EditorFromTextArea; /** * 存放匹配的变量集合 */ variableSearchList: any[]; /** * 存放匹配的函数集合 */ usageFunSearchList: any[]; FormulaUsage: any[]; /** * 查询可用变量 */ _variableSearch: any; /** * 查询可用函数 */ _usageFunSearch: any; /** * 函数描述 */ usageDescription: string; private _codeMirror; private _differ?; private _options; private _fomulaContext; constructor(_differs: KeyValueDiffers, _ngZone: NgZone, el: ElementRef, message: NzMessageService, nzConfigService: NzConfigService); ngOnInit(): void; /** * 根据黑名单过滤公式 */ filterUsageByBlackList(formulaUsage: any): any[]; /** * 组装显示的函数 */ resolveDisplayFormula(): string[]; /** * 组装FomulaContext */ resolveFomulaContext(): string[]; ngAfterViewInit(): void; ngDoCheck(): void; ngOnDestroy(): void; codemirrorValueChanged(cm: any, change: any): void; setOptionIfChanged(optionName: string, newValue: any): void; focusChanged(focused: boolean): void; scrollChanged(cm: Editor): void; cursorActive(cm: Editor): void; dropFiles(cm: Editor, e: DragEvent): void; writeValue(value: string): void; registerOnChange(fn: (value: string) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; /** * 函数鼠标滑动时事件 * @param e */ usageMouseover(e: any): void; /** * 插入函数 * @param e */ insertUsageFun(e: any): void; /** * 插入可用变量 * @param event */ insertField(event: any): void; copy(): void; paste(): void; private onChange; private onTouched; private markField; private insertBarcket; private getValue; private fakeLabel; private setValue; }