UNPKG

@freezesoul/nz-formly

Version:

基于ng-zorro-antd UI 扩展的ngx-formly组件库

121 lines (120 loc) 3.99 kB
import { TemplateRef } from '@angular/core'; import { NzSafeAny } from 'ng-zorro-antd/core/types'; import { NzDropDownDirective } from 'ng-zorro-antd/dropdown'; import { FormlyFieldConfig, FormlyFieldProps } from '@ngx-formly/core'; import { Observable } from 'rxjs'; import { AsyncOption } from '@freezesoul/nzx-antd/pipe'; import { FormlyBoxTemplates } from './formly-box-templates.directive'; /** * 下拉菜单配置 */ export interface DropdownWrapperOptions { nzDropdown?: { ref: string; /** * 菜单是否禁用 */ nzDisabled?: boolean; /** * 菜单弹出位置 */ nzPlacement?: 'bottomLeft' | 'bottomCenter' | 'bottomRight' | 'topLeft' | 'topCenter' | 'topRight'; /** * 触发下拉的行为 */ nzTrigger?: 'click' | 'hover'; /** * 点击后是否隐藏菜单 */ nzClickHide?: boolean; /** * 菜单是否显示,可双向绑定 */ nzVisible?: boolean; /** * 下拉根元素的类名称 */ nzOverlayClassName?: string; /** * 下拉根元素的样式 */ nzOverlayStyle?: object; /** * 菜单显示状态改变时调用,参数为 nzVisible */ nzVisibleChange?: (evt: boolean, field: FormlyFieldConfig, instance: NzDropDownDirective) => void; }; } /** * 处理属性为模板类型, 根据模板名称处理成模板对象 * @param value 数据对象 * @param fieldTemplates 模板容器 * @param propName 属性名 * @param propTemplateName 模板属性名称 */ export declare function resolveTplName<T = NzSafeAny>(value: NzSafeAny, fieldTemplates: FormlyBoxTemplates, propName: string, propTemplateName?: string): TemplateRef<T> | undefined; /** * 处理属性为模板类型, 根据模板名称处理成模板对象列表 * @param value 数据对象 * @param fieldTemplates 模板容器 * @param propName 属性名 * @param propTemplateName 模板属性名称 */ export declare function resolveTplNameArray<T = NzSafeAny>(value: NzSafeAny, fieldTemplates: FormlyBoxTemplates, propName: string, propTemplateName?: string): TemplateRef<T>[]; /** * 根据属性名获取模板名称 * @param propName 属性名 */ export declare function getTplName(propName: string): string; /** * 获取模板名称 * @param value * @param propName * @param propTemplateName 模板属性名称 */ export declare function hasTplNameValue(value: NzSafeAny, propName: string, propTemplateName?: string): boolean; /** * 获取根节点的FieldConfig * @param field 当前节点配置 */ export declare function getRootFiled(field: FormlyFieldConfig): FormlyFieldConfig<FormlyFieldProps & { [additionalProperties: string]: any; }>; /** * 根据key获取指定FieldConfig * @param field 当前节点配置 * @param key 配置的key */ export declare function findField(field: FormlyFieldConfig, key: string): FormlyFieldConfig | undefined; /** * 异步配置信息 */ export interface AsyncFormlyOptions<T extends NzSafeAny = NzSafeAny, U extends NzSafeAny = NzSafeAny> extends AsyncOption { /** * 可选项数据源 */ options?: string | Observable<U[]> | Promise<U[]> | U[]; } /** * 控件模板参数配置项 */ export type ControlOptions = DropdownWrapperOptions & Omit<FormlyFieldProps, 'options'> & { valueChanges?: (value: NzSafeAny, field: NzFormlyFieldConfig) => void; attributes?: { style: string; class: string; id: string; name: string; [key: string]: string | number; }; }; export interface NzFormlyFieldConfig<T extends ControlOptions = ControlOptions> extends FormlyFieldConfig { /** * 这是为模板扩展的属性,所有模板访问的属性都应该从这里访问 */ props?: T; /** * @deprecated 使用 `props` 代替 */ templateOptions?: T; }