UNPKG

@douyinfe/semi-ui

Version:

A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.

81 lines (80 loc) 3.61 kB
import React from 'react'; import PropTypes from 'prop-types'; import BaseComponent, { BaseProps } from '../_base/baseComponent'; import ScrollItem from '../scrollList/scrollItem'; import ComboboxFoundation, { formatOption } from '@douyinfe/semi-foundation/lib/cjs/timePicker/ComboxFoundation'; import { TimePickerProps } from './TimePicker'; import { Locale } from '../locale/interface'; export type ComboboxProps = Pick<TimePickerProps, 'format' | 'prefixCls' | 'disabledHours' | 'disabledMinutes' | 'disabledSeconds' | 'hideDisabledOptions' | 'use12Hours' | 'scrollItemProps' | 'panelFooter' | 'panelHeader'> & BaseProps & { defaultOpenValue?: TimePickerProps['value']; showHour?: boolean; showMinute?: boolean; showSecond?: boolean; onChange?: (value: { isAM: boolean; value: string; timeStampValue: number; }) => void; onCurrentSelectPanelChange?: (range: string) => void; isAM?: boolean; timeStampValue?: any; }; export interface ComboboxState { showHour: boolean; showMinute: boolean; showSecond: boolean; hourOptions: number[]; minuteOptions: number[]; secondOptions: number[]; } export type FormatOptionReturn = ReturnType<typeof formatOption>; export interface AMPMOptionItem { value: string; text: string; } declare class Combobox extends BaseComponent<ComboboxProps, ComboboxState> { static propTypes: { format: PropTypes.Requireable<string>; defaultOpenValue: PropTypes.Requireable<object>; prefixCls: PropTypes.Requireable<string>; onChange: PropTypes.Requireable<(...args: any[]) => any>; showHour: PropTypes.Requireable<boolean>; showMinute: PropTypes.Requireable<boolean>; showSecond: PropTypes.Requireable<boolean>; disabledHours: PropTypes.Requireable<(...args: any[]) => any>; disabledMinutes: PropTypes.Requireable<(...args: any[]) => any>; disabledSeconds: PropTypes.Requireable<(...args: any[]) => any>; hideDisabledOptions: PropTypes.Requireable<boolean>; onCurrentSelectPanelChange: PropTypes.Requireable<(...args: any[]) => any>; use12Hours: PropTypes.Requireable<boolean>; isAM: PropTypes.Requireable<boolean>; timeStampValue: PropTypes.Requireable<any>; scrollItemProps: PropTypes.Requireable<object>; }; static defaultProps: { disabledHours: (...args: any[]) => void; disabledMinutes: (...args: any[]) => void; disabledSeconds: (...args: any[]) => void; format: string; }; foundation: ComboboxFoundation; constructor(props: ComboboxProps); componentDidUpdate(prevProps: ComboboxProps, prevState: ComboboxState): void; componentWillUnmount(): void; componentDidMount(): void; cacheRefCurrent: (key: string, current: ScrollItem<FormatOptionReturn> | ScrollItem<AMPMOptionItem>) => void; reselect: () => void; onItemChange: ({ type, value, disabled }: { type?: string; value: string; disabled?: boolean; }) => void; onEnterSelectPanel: (range: string) => void; renderHourSelect(hour: number, locale: Locale['TimePicker']): React.JSX.Element; renderMinuteSelect(minute: number, locale: Locale['TimePicker']): React.JSX.Element; renderSecondSelect(second: number, locale: Locale['TimePicker']): React.JSX.Element; renderAMPMSelect(locale: Locale['TimePicker'], localeCode: string): React.JSX.Element; getDisplayDateFromTimeStamp: (timeStampValue: Date | string) => any; render(): React.JSX.Element; } export default Combobox;