@cainiaofe/cn-ui-m
Version:
133 lines (132 loc) • 3.01 kB
TypeScript
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 {};