tdesign-mobile-vue
Version:
tdesign-mobile-vue
52 lines (51 loc) • 1.67 kB
TypeScript
import { TNode, KeysType } from '../common';
export interface TdPickerProps {
cancelBtn?: boolean | string;
columns: PickerColumn | Array<PickerColumn> | ((item: Array<PickerValue>) => Array<PickerColumn>);
confirmBtn?: boolean | string;
footer?: TNode;
header?: TNode;
keys?: KeysType;
option?: (option: PickerColumnItem, index: number) => string | Record<string, string | boolean>;
renderLabel?: (item: PickerColumnItem, index: number) => string;
swipeDuration?: string | number;
title?: string;
value?: Array<PickerValue>;
defaultValue?: Array<PickerValue>;
modelValue?: Array<PickerValue>;
wheelConfig?: PickerWheelConfig;
onCancel?: (context: {
e: MouseEvent;
}) => void;
onChange?: (value: Array<PickerValue>, context: {
columns: Array<PickerContext>;
e: MouseEvent;
}) => void;
onConfirm?: (value: Array<PickerValue>, context: {
index: number[];
e: MouseEvent;
label: string[];
}) => void;
onPick?: (value: Array<PickerValue>, context: PickerContext) => void;
}
export type PickerColumn = PickerColumnItem[];
export interface PickerColumnItem {
label: string;
value: string;
disabled?: boolean;
}
export type PickerValue = string | number;
export interface PickerWheelConfig {
inertiaDuration?: number;
bounceDuration?: number;
transitionDuration?: number;
inertiaTimeThreshold?: number;
inertiaDistanceThreshold?: number;
boundOffset?: number;
clickDistanceThreshold?: number;
clickTimeThreshold?: number;
}
export interface PickerContext {
column: number;
index: number;
}