UNPKG

3.23 kBTypeScriptView Raw
1/// <reference types="react" />
2import type { PickerRef, PickerProps as RcPickerProps, RangePickerProps as RcRangePickerProps } from 'rc-picker';
3import type { Locale as RcPickerLocale } from 'rc-picker/lib/interface';
4import type { InputStatus } from '../../_util/statusUtils';
5import type { AnyObject } from '../../_util/type';
6import type { SizeType } from '../../config-provider/SizeContext';
7import type { Variant } from '../../form/hooks/useVariants';
8import type { TimePickerLocale } from '../../time-picker';
9declare const DataPickerPlacements: readonly ["bottomLeft", "bottomRight", "topLeft", "topRight"];
10type DataPickerPlacement = (typeof DataPickerPlacements)[number];
11export type PickerLocale = {
12 lang: RcPickerLocale & AdditionalPickerLocaleLangProps;
13 timePickerLocale: TimePickerLocale;
14} & AdditionalPickerLocaleProps;
15export type AdditionalPickerLocaleProps = {
16 dateFormat?: string;
17 dateTimeFormat?: string;
18 weekFormat?: string;
19 monthFormat?: string;
20};
21export type AdditionalPickerLocaleLangProps = {
22 placeholder: string;
23 yearPlaceholder?: string;
24 quarterPlaceholder?: string;
25 monthPlaceholder?: string;
26 weekPlaceholder?: string;
27 rangeYearPlaceholder?: [string, string];
28 rangeQuarterPlaceholder?: [string, string];
29 rangeMonthPlaceholder?: [string, string];
30 rangeWeekPlaceholder?: [string, string];
31 rangePlaceholder?: [string, string];
32};
33type InjectDefaultProps<Props> = Omit<Props, 'locale' | 'generateConfig' | 'hideHeader'> & {
34 locale?: PickerLocale;
35 size?: SizeType;
36 placement?: DataPickerPlacement;
37 /** @deprecated Use `variant` instead */
38 bordered?: boolean;
39 status?: InputStatus;
40 /**
41 * @since 5.13.0
42 * @default "outlined"
43 */
44 variant?: Variant;
45 /**
46 * @deprecated `dropdownClassName` is deprecated which will be removed in next major
47 * version.Please use `popupClassName` instead.
48 */
49 dropdownClassName?: string;
50 popupClassName?: string;
51 rootClassName?: string;
52 popupStyle?: React.CSSProperties;
53};
54/** Base Single Picker props */
55export type PickerProps<DateType extends AnyObject = any> = InjectDefaultProps<RcPickerProps<DateType>>;
56/** Base Range Picker props */
57export type RangePickerProps<DateType extends AnyObject = any> = InjectDefaultProps<RcRangePickerProps<DateType>>;
58export type GenericTimePickerProps<DateType extends AnyObject = any> = Omit<PickerProps<DateType>, 'picker' | 'showTime'> & {
59 /** @deprecated Please use `onCalendarChange` instead */
60 onSelect?: (value: DateType) => void;
61};
62/**
63 * Single Picker has the `multiple` prop,
64 * which will make the `value` be `DateType[]` type.
65 * Here to be a generic which accept the `ValueType` for developer usage.
66 */
67export type PickerPropsWithMultiple<DateType extends AnyObject = any, InnerPickerProps extends PickerProps<DateType> = PickerProps<DateType>, ValueType = DateType> = Omit<InnerPickerProps, 'defaultValue' | 'value' | 'onChange' | 'onOk'> & React.RefAttributes<PickerRef> & {
68 defaultValue?: ValueType | null;
69 value?: ValueType | null;
70 onChange?: (date: ValueType, dateString: string | string[]) => void;
71 onOk?: (date: ValueType) => void;
72};
73export {};