UNPKG

@freezesoul/nz-formly

Version:

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

148 lines (147 loc) 4.12 kB
import { TemplateRef } from '@angular/core'; import { NzSafeAny, NzSizeLDSType } from 'ng-zorro-antd/core/types'; import { AsyncFormlyOptions, ControlOptions, NzFormlyFieldConfig } from '@freezesoul/nz-formly/common'; import { NzInputNumberComponent } from 'ng-zorro-antd/input-number'; import { OptionItem } from '@freezesoul/nzx-antd/checkbox'; import { FieldWrapperOptions } from '@freezesoul/nz-formly/field-wrapper'; export interface BaseInputOptions { /** * 是否隐藏边框 */ nzBorderless?: boolean; /** * 设置校验状态 */ nzStatus?: 'error' | 'warning'; type?: 'text' | 'password' | 'email' | 'number' | 'color' | string; /** * 输入框大小 */ nzSize?: NzSizeLDSType; } /** * 按钮模板配置 */ export interface InputOptions extends ControlOptions { /** * 是否显示输入框 */ showInput?: boolean; /** * 带标签的 input,设置后置标签,可以与 nzAddOnBefore 配合使用 */ nzAddOnAfter?: string | TemplateRef<void>; nzAddOnAfterName?: string; /** * 带标签的 input,设置前置标签,可以与 nzAddOnAfter 配合使用 */ nzAddOnBefore?: string | TemplateRef<void>; nzAddOnBeforeName?: string; /** * 带有前缀图标的 input,可以与 nzSuffix 配合使用 */ nzPrefix?: string | TemplateRef<void>; nzPrefixName?: string; /** * 带有后缀图标的 input,可以与 nzPrefix 配合使用 */ nzSuffix?: string | TemplateRef<void>; nzSuffixName?: string; /** * 是否用紧凑模式 */ nzCompact?: boolean; /** * 是否用搜索框 */ nzSearch?: boolean; } export interface InputNumberOptions extends ControlOptions { /** * 输入框大小 */ nzSize?: NzSizeLDSType; /** * 最大值 */ max?: number; /** * 最小值 */ min?: number; /** * 数值精度 */ nzPrecision?: number; /** * */ nzPrecisionMode?: 'cut' | 'toFixed' | ((value: number | string, precision?: number) => number); /** * focus时回调 * @param evt * @param field * @param instance */ nzFocus?: (evt: HTMLElement, field: InputNumberFieldConfig, instance: NzInputNumberComponent) => void; /** * blur时回调 * @param evt * @param field * @param instance */ nzBlur?: (evt: HTMLElement, field: InputNumberFieldConfig, instance: NzInputNumberComponent) => void; } export interface BaseAutocompleteOptions extends ControlOptions { /** * 自定义渲染option label */ labelTemplate?: string | TemplateRef<{ $implicit: OptionItem; field: AutocompleteFieldConfig; }>; /** * 自定义渲染option label, 模板名称 */ labelTemplateName?: string; /** * 使用键盘选择选项的时候,会把当前高亮项的值即时回填到输入框中 */ nzBackfill?: boolean; /** * 是否默认高亮第一个选项。 */ nzDefaultActiveFirstOption?: boolean; /** * 自定义宽度单位 px */ nzWidth?: number; /** * 下拉根元素的类名称 */ nzOverlayClassName?: string; /** * 下拉根元素的样式 */ nzOverlayStyle?: object; /** * 与 SelectControlValueAccessor 相同 */ compareWith?: (o1: any, o2: any) => boolean; } export interface InputFieldConfig extends NzFormlyFieldConfig<InputOptions & BaseInputOptions & FieldWrapperOptions> { type: 'input'; } /** * 数值精度的取值方式 */ export interface InputNumberFieldConfig extends NzFormlyFieldConfig<InputNumberOptions & Omit<BaseInputOptions, 'nzBorderless'> & FieldWrapperOptions> { type: 'number'; } export type AutocompleteOptions = BaseAutocompleteOptions & AsyncFormlyOptions<NzSafeAny, OptionItem> & BaseInputOptions & FieldWrapperOptions; /** * 数值精度的取值方式 */ export interface AutocompleteFieldConfig extends NzFormlyFieldConfig<AutocompleteOptions> { type: 'autocomplete'; }