ant-design/components/date-picker/generatePicker/interface.ts
𝑾𝒖𝒙𝒉 6ce176bb7b
♻️ chore(locale): replace the deprecated API (#52960)
* fix(local): enhance code robustness

* chore: rename

* chore: 移除不必要的 memo

* chore: components/date-picker/locale/example.json添加注释

* chore: 注释

* Revert "fix(local): enhance code robustness"

This reverts commit c199788f57.

# Conflicts:
#	components/locale/useLocale.ts

* ♻️ clean: deprecated api

* chore: revert change

* revert

* chore: remove outdated api

* chore: 移除冗余配置

* chore: replace deprecated api

* chore: remove invalid

* Revert "chore: replace deprecated api"

This reverts commit 9765043a61.

* chore: update

* chore: remove mark
2025-03-11 10:42:35 +08:00

117 lines
3.8 KiB
TypeScript

import type {
PickerRef,
PickerProps as RcPickerProps,
RangePickerProps as RcRangePickerProps,
} from 'rc-picker';
import type { Locale as RcPickerLocale } from 'rc-picker/lib/interface';
import type { InputStatus } from '../../_util/statusUtils';
import type { AnyObject } from '../../_util/type';
import type { SizeType } from '../../config-provider/SizeContext';
import type { Variant } from '../../config-provider';
import type { TimePickerLocale } from '../../time-picker';
const _DataPickerPlacements = ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'] as const;
type DataPickerPlacement = (typeof _DataPickerPlacements)[number];
export type PickerLocale = {
lang: RcPickerLocale & AdditionalPickerLocaleLangProps;
timePickerLocale: TimePickerLocale;
} & AdditionalPickerLocaleProps;
/** @deprecated **Useless**. */
export type AdditionalPickerLocaleProps = {
/**
* @deprecated **Invalid**, Please use `lang.fieldDateFormat` instead.
* @see [Migration Guide](https://github.com/ant-design/ant-design/discussions/53011)
*/
dateFormat?: string;
/**
* @deprecated **Invalid**, Please use `lang.fieldDateTimeFormat` instead,
* @see [Migration Guide](https://github.com/ant-design/ant-design/discussions/53011)
*/
dateTimeFormat?: string;
/**
* @deprecated **Invalid**, Please use `lang.fieldWeekFormat` instead,
* @see [Migration Guide](https://github.com/ant-design/ant-design/discussions/53011)
*/
weekFormat?: string;
/**
* @deprecated **Invalid**, Please use `lang.fieldWeekFormat` instead,
* @see [Migration Guide](https://github.com/ant-design/ant-design/discussions/53011)
*/
monthFormat?: string;
};
export type AdditionalPickerLocaleLangProps = {
placeholder: string;
yearPlaceholder?: string;
quarterPlaceholder?: string;
monthPlaceholder?: string;
weekPlaceholder?: string;
rangeYearPlaceholder?: [string, string];
rangeQuarterPlaceholder?: [string, string];
rangeMonthPlaceholder?: [string, string];
rangeWeekPlaceholder?: [string, string];
rangePlaceholder?: [string, string];
};
type InjectDefaultProps<Props> = Omit<Props, 'locale' | 'generateConfig' | 'hideHeader'> & {
locale?: PickerLocale;
size?: SizeType;
placement?: DataPickerPlacement;
/** @deprecated Use `variant` instead */
bordered?: boolean;
status?: InputStatus;
/**
* @since 5.13.0
* @default "outlined"
*/
variant?: Variant;
/**
* @deprecated `dropdownClassName` is deprecated which will be removed in next major
* version.Please use `popupClassName` instead.
*/
dropdownClassName?: string;
popupClassName?: string;
rootClassName?: string;
popupStyle?: React.CSSProperties;
};
/** Base Single Picker props */
export type PickerProps<DateType extends AnyObject = any> = InjectDefaultProps<
RcPickerProps<DateType>
>;
/** Base Range Picker props */
export type RangePickerProps<DateType extends AnyObject = any> = InjectDefaultProps<
RcRangePickerProps<DateType>
>;
export type GenericTimePickerProps<DateType extends AnyObject = any> = Omit<
PickerProps<DateType>,
'picker' | 'showTime'
> & {
/** @deprecated Please use `onCalendarChange` instead */
onSelect?: (value: DateType) => void;
};
/**
* Single Picker has the `multiple` prop,
* which will make the `value` be `DateType[]` type.
* Here to be a generic which accept the `ValueType` for developer usage.
*/
export type PickerPropsWithMultiple<
DateType extends AnyObject = any,
InnerPickerProps extends PickerProps<DateType> = PickerProps<DateType>,
ValueType = DateType,
> = Omit<InnerPickerProps, 'defaultValue' | 'value' | 'onChange' | 'onOk'> &
React.RefAttributes<PickerRef> & {
defaultValue?: ValueType | null;
value?: ValueType | null;
onChange?: (date: ValueType, dateString: string | string[]) => void;
onOk?: (date: ValueType) => void;
};