import type { CustomEvent } from "../../constructors/events"; declare const validPickerMode: readonly [ "selector", "multiSelector", "time", "date", "region" ]; declare const fieldsMode: readonly [ "day", "month", "year" ]; /** * @value 'selector' 普通选择器 * @value 'multiSelector' 多列选择器 * @value 'time' 时间选择器 * @value 'date' 日期选择器 * @value 'region' 省市区选择器 */ declare type PickerMode = typeof validPickerMode[number]; /** * @value 'year' 选择器粒度为年 * @value 'month' 选择器粒度为月份 * @value 'day' 选择器粒度为天 */ declare type FieldsMode = typeof fieldsMode[number]; /** * 从底部弹起的滚动选择器。 * * 对于不同的mode,picker拥有不同的属性。 * @version {"kma":"1.1.0","ide":"1.22.0"} * */ export declare interface BasePickerProps { /** * 在表单中的字段名 */ name?: string; /** * 选择器的标题,仅安卓可用 * @alpha */ headerText?: string; /** * 选择器类型 */ mode: PickerMode; /** * 是否禁用 */ disabled: boolean; /** * 取消选择时触发 */ onCancel?: (event: CustomEvent>) => void; } /** * 普通选择器:mode = selector */ export declare interface SelectorPickerProps extends BasePickerProps { mode: 'selector'; /** * mode 为 selector 或 multiSelector 时,range 有效 */ range: (string | Record)[]; /** * 当 range 是一个 Object Array 时,通过 range-key 来指定 Object 中 key 的值作为选择器显示内容 */ rangeKey?: string; /** * 表示选择了 range 中的第几个(下标从 0 开始) */ value: number; /** * value 改变时触发 change 事件,event.detail = {value} */ onChange?: (event: CustomEvent<{ value: number; }>) => void; } /** * 多列选择器:mode = multiSelector */ export declare interface MultiSelectorPickerProps extends BasePickerProps { mode: 'multiSelector'; /** * mode 为 selector 或 multiSelector 时,range 有效 */ range: (string | Record)[][]; /** * 当 range 是一个 Object Array 时,通过 range-key 来指定 Object 中 key 的值作为选择器显示内容 */ rangeKey?: string; /** * 表示选择了 range 中的第几个(下标从 0 开始) */ value: number[]; /** * value 改变时触发 change 事件,event.detail = {value} */ onChange?: (event: CustomEvent<{ value: number[]; }>) => void; /** * 列改变时触发 */ onColumnchange?: (event: CustomEvent<{ value: number; column: number; }>) => void; } /** * 时间选择器:mode = time */ export declare interface TimePickerProps extends BasePickerProps { mode: 'time'; /** * 表示选中的时间,格式为"hh:mm" */ value?: string; /** * 表示有效时间范围的开始,字符串格式为"hh:mm" */ start?: string; /** * 表示有效时间范围的结束,字符串格式为"hh:mm" */ end?: string; /** * value 改变时触发 change 事件,event.detail = {value} */ onChange?: (event: CustomEvent<{ value: string; changedIndex: number; }>) => void; } /** * 时间选择器:mode = date */ export declare interface DatePickerProps extends BasePickerProps { mode: 'date'; /** * 表示选中的日期,格式为"YYYY-MM-DD" */ value?: string; /** * 表示有效日期范围的开始,字符串格式为"YYYY-MM-DD" */ start?: string; /** * 表示有效日期范围的结束,字符串格式为"YYYY-MM-DD" */ end?: string; /** * 有效值 year,month,day,表示选择器的粒度 */ fields: FieldsMode; /** * value 改变时触发 change 事件,event.detail = {value} */ onChange?: (event: CustomEvent<{ value: string; changedIndex: number; }>) => void; } /** * 省市区选择器:mode = region */ export declare interface RegionPickerProps extends BasePickerProps { mode: 'region'; /** * 表示选中的省市区,默认选中每一列的第一个值 */ value?: string[]; /** * 可为每一列的顶部添加一个自定义的项 */ customItem?: string; /** * value 改变时触发 change 事件,event.detail = {value, code, postcode},其中字段 code 是统计用区划代码,postcode 是邮政编码 */ onChange?: (event: CustomEvent<{ value: string[]; code: string[]; postcode: string; }>) => void; } export declare type PickerProps = SelectorPickerProps | MultiSelectorPickerProps | TimePickerProps | DatePickerProps | RegionPickerProps; export {};