UNPKG

@cainiaofe/cn-ui-m

Version:
133 lines (132 loc) 3.01 kB
import { LocaleType } from './i-local-type'; import { IPickerColumnData } from './i-picker-column-data'; import { IAvailableDate } from './i-available-date'; import { HTMLAttributes } from 'react'; type KnownKeys<T> = { [K in keyof T]: string extends K ? never : number extends K ? never : K; } extends { [_ in keyof T]: infer U; } ? U : never; type RemoveIndexSignature<T> = Pick<T, keyof T & KnownKeys<T>>; type FixAnyHTMLAttributes = RemoveIndexSignature<HTMLAttributes<HTMLElement>>; type NoDefaultValueHTMLAttributes = Omit<FixAnyHTMLAttributes, 'defaultValue'>; export interface HTMLAttributesWeak extends NoDefaultValueHTMLAttributes { /** * dom id * @ignore */ id?: any; /** * 自定义内联样式 */ style?: React.CSSProperties; /** * 值改变时触发的回调函数 */ onChange?: any; /** * 点击时触发的回调函数 */ onClick?: any; /** * 获得焦点时触发的回调函数 */ onFocus?: any; /** * 失去焦点时触发的回调函数 */ onBlur?: any; /** * 提交时触发的回调函数 */ onSubmit?: any; /** * 选中时触发的回调函数 */ onSelect?: any; /** * 错误时触发的回调函数 */ onError?: any; } export interface BaseComponentAttributes extends HTMLAttributesWeak { /** * @ignore 样式隔离的方案为hashClassName */ prefix?: string; /** * 自定义类名 */ className?: string; } export interface ICnEmbedPicker extends BaseComponentAttributes { /** * 时间值(受限) */ value?: IAvailableDate; /** * 时间初值(非受限) */ defaultValue?: IAvailableDate; /** * 是否可见 */ visible?: boolean; /** * 小时选项步长 */ hourStep?: number; /** * 分钟选项步长 */ minuteStep?: number; /** * 秒钟选项步长 */ secondStep?: number; /** * 时间的格式,会同时影响选择器功能 */ format?: string; /** * 语言包 */ locale?: LocaleType; /** * 可用的时间范围 */ validRange?: [Date, Date]; /** * 是否展示清除按钮 */ hasClear?: boolean; /** * 禁用小时函数 */ disabledHours?: (index: number) => boolean; /** * 禁用分钟函数 */ disabledMinutes?: (index: number) => boolean; /** * 禁用秒函数 */ disabledSeconds?: (index: number) => boolean; /** * 自定义渲染下拉菜单每一项 */ renderTimeMenuItems?: (v: IPickerColumnData[]) => IPickerColumnData[]; /** * 内容清除后的回调 */ onClear?: () => void; /** * 值改变时触发的回调函数 */ onChange?: (value?: Date) => void; /** * 取消时间选择的回调 */ onCancel?: (reason: string) => void; } export {};