@freezesoul/nz-formly
Version:
基于ng-zorro-antd UI 扩展的ngx-formly组件库
126 lines (125 loc) • 3.34 kB
TypeScript
import { FormlyFieldConfig } from '@ngx-formly/core';
import { TemplateRef } from '@angular/core';
import { ControlOptions, NzFormlyFieldConfig } from '@freezesoul/nz-formly/common';
import { NzDateMode, NzDatePickerComponent, SupportTimeOptions } from 'ng-zorro-antd/date-picker';
import { FieldWrapperOptions } from '@freezesoul/nz-formly/field-wrapper';
/**
* DatePicker模板配置
*/
export type DatePickerOptions = BaseDatePickerOptions & DatePickerDateOptions;
export interface BaseDatePickerOptions extends ControlOptions {
/**
* 组件内部 input 的 id 值
*/
nzId?: string;
/**
* 是否显示清除按钮
*/
nzAllowClear?: boolean;
/**
* 自动获取焦点
*/
nzAutoFocus?: boolean;
/**
* 浮层是否应带有背景板
*/
nzBackdrop?: boolean;
/**
* 默认面板日期
*/
nzDefaultPickerValue?: Date;
/**
* 禁用
*/
nzDisabled?: boolean;
/**
* 不可选择的日期
*/
nzDisabledDate?: (current: Date) => boolean;
/**
* 额外的弹出日历 className
*/
nzDropdownClassName?: string;
/**
* 展示的日期格式,见nzFormat特别说明
*/
nzFormat?: string;
/**
* 为 input 标签设置只读属性(避免在移动设备上触发小键盘)
*/
nzInputReadOnly?: boolean;
/**
* 选择模式
*/
nzMode?: NzDateMode;
/**
* 输入框提示文字
*/
nzPlaceHolder?: string | string[];
/**
* 额外的弹出日历样式
*/
nzPopupStyle?: object;
/**
* 在面板中添加额外的页脚
*/
nzRenderExtraFooter?: TemplateRef<{}> | string | (() => TemplateRef<{}> | string);
nzRenderExtraFooterName?: string;
/**
* 输入框大小,large 高度为 40px,small 为 24px,默认是 32px
*/
nzSize?: 'large' | 'small';
/**
* 自定义的后缀图标
*/
nzSuffixIcon?: string;
/**
* 移除边框
*/
nzBorderless?: boolean;
/**
* 内联模式
*/
nzInline?: boolean;
/**
* 弹出日历和关闭日历的回调
*/
nzOnOpenChange?: (evt: boolean, field: FormlyFieldConfig, instance: NzDatePickerComponent) => void;
}
export interface DatePickerDateOptions {
/**
* 自定义日期单元格的内容(month-picker/year-picker不支持)
*/
nzDateRender?: TemplateRef<Date> | string | ((d: Date) => TemplateRef<Date> | string);
nzDateRenderName?: string;
/**
* 不可选择的时间
*/
nzDisabledTime?: (current: Date) => {
nzDisabledHours: number[];
nzDisabledMinutes: number[];
nzDisabledSeconds: number[];
};
/**
* 增加时间选择功能
*/
nzShowTime?: SupportTimeOptions | boolean;
/**
* 是否展示“今天”按钮
*/
nzShowToday?: boolean;
/**
* 当设定了nzShowTime的时候,面板是否显示“此刻”按钮
*/
nzShowNow?: boolean;
/**
* 点击确定按钮的回调
*/
nzOnOk?: (evt: Date, field: FormlyFieldConfig, instance: NzDatePickerComponent) => void;
}
/**
* DatePicker配置
*/
export interface DatePickerFieldConfig extends NzFormlyFieldConfig<DatePickerOptions & FieldWrapperOptions> {
type: 'date-picker';
}