@freezesoul/nz-formly
Version:
基于ng-zorro-antd UI 扩展的ngx-formly组件库
148 lines (147 loc) • 4.12 kB
TypeScript
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';
}