@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
TypeScript
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;