@wix/design-system
Version:
@wix/design-system
84 lines • 4.83 kB
TypeScript
import React, { MouseEvent, KeyboardEvent } from 'react';
import PropTypes from 'prop-types';
import DayPicker, { DayModifiers, DayPickerProps, Modifier } from 'react-day-picker';
import localeUtilsFactory, { WeekdayNumber } from '../../common/LocaleUtils/LocaleUtils';
import { WixStyleReactEnvironmentContext } from '../../WixStyleReactEnvironmentProvider/context';
import { BaseCalendarProps } from './BaseCalendar.types';
type DefaultedProps<Base, DefaultPropsKeys extends keyof Base> = Omit<Base, DefaultPropsKeys> & Required<Pick<Base, DefaultPropsKeys>>;
type DefaultPropKeys = 'className' | 'filterDate' | 'dateIndication' | 'shouldCloseOnSelect' | 'onClose' | 'autoFocus' | 'excludePastDates' | 'selectionMode' | 'numOfMonths' | 'size' | 'allowSelectingOutsideDays';
type DefaultedBaseCalendarProps = DefaultedProps<BaseCalendarProps, DefaultPropKeys>;
export default class BaseCalendar extends React.PureComponent<DefaultedBaseCalendarProps> {
static displayName: string;
static defaultProps: {
className: string;
filterDate: () => boolean;
dateIndication: () => null;
shouldCloseOnSelect: boolean;
onClose: () => void;
autoFocus: boolean;
excludePastDates: boolean;
selectionMode: string;
numOfMonths: number;
size: string;
allowSelectingOutsideDays: boolean;
};
static propTypes: {
dataHook: PropTypes.Requireable<string>;
autoFocus: PropTypes.Requireable<boolean>;
numOfMonths: PropTypes.Requireable<number>;
firstDayOfWeek: PropTypes.Requireable<number>;
className: PropTypes.Requireable<string>;
onChange: PropTypes.Validator<(...args: any[]) => any>;
onClose: PropTypes.Requireable<(...args: any[]) => any>;
onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
excludePastDates: PropTypes.Requireable<boolean>;
filterDate: PropTypes.Requireable<(...args: any[]) => any>;
value: PropTypes.Requireable<NonNullable<Date | PropTypes.InferProps<{
from: PropTypes.Requireable<Date>;
to: PropTypes.Requireable<Date>;
}> | null | undefined>>;
selectionMode: PropTypes.Requireable<string>;
shouldCloseOnSelect: PropTypes.Requireable<boolean>;
locale: PropTypes.Requireable<NonNullable<"th" | "tr" | "ms" | "id" | "no" | "en" | "en-US" | "en-GB" | "en-AU" | "en-CA" | "ar" | "bg" | "ca" | "zh" | "zh-TW" | "zh-HK" | "zh-MO" | "cs" | "da" | "nl" | "fi" | "fr" | "fr-CA" | "fr-CH" | "fr-BE" | "de" | "de-CH" | "de-AT" | "el" | "he" | "hi" | "hu" | "it" | "ja" | "ko" | "lt" | "nb" | "nn" | "pl" | "pt-BR" | "pt" | "ro" | "ru" | "sk" | "sl" | "es" | "es-419" | "es-AR" | "es-MX" | "es-US" | "sv" | "tl" | "uk" | "vi" | null | undefined>>;
rtl: PropTypes.Requireable<boolean>;
dateIndication: PropTypes.Requireable<(...args: any[]) => any>;
today: PropTypes.Requireable<Date>;
displayedMonth: PropTypes.Validator<Date>;
onDisplayedViewChange: PropTypes.Validator<(...args: any[]) => any>;
captionElement: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
modifiers: PropTypes.Requireable<object>;
allowSelectingOutsideDays: PropTypes.Requireable<boolean>;
};
/** Return a value in which all string-dates are parsed into Date objects */
static parseValue: (value: BaseCalendarProps["value"]) => Date | {
from?: Date;
to?: Date;
};
static nextDay: (date: Date | number | string) => Date;
static prevDay: (date: Date | number | string) => Date;
context: React.ContextType<typeof WixStyleReactEnvironmentContext>;
dayPickerRef?: DayPicker | null;
_renderDay: (day: Date, modifiers: any) => React.JSX.Element;
_handleDayClick: (value: Date, modifiers?: DayModifiers | {}, event?: MouseEvent | null) => void;
_getSelectedDays(value?: Date | {
from?: Date;
to?: Date;
}): Modifier;
_preventActionEventDefault: (event?: KeyboardEvent | MouseEvent | null) => void;
_createWeekdayElement: (localeUtils: ReturnType<typeof localeUtilsFactory>) => ({ className, weekday, }: {
className: string;
weekday: WeekdayNumber;
}) => React.JSX.Element;
_createDayPickerProps: () => DayPickerProps;
_getDayPicker(): DayPicker;
_handleKeyDown: (event: KeyboardEvent) => void;
_toggleFirstDayTabIndex: (tabIndex: number) => void;
_focusSelectedDay: () => void;
_handleDayKeyDown: (_value: Date, _modifiers: DayModifiers, event?: KeyboardEvent<HTMLDivElement> | null) => void;
_getLocale(): string;
componentDidMount(): void;
componentDidUpdate(prevProps: DefaultedBaseCalendarProps): void;
render(): React.JSX.Element;
}
export {};
//# sourceMappingURL=BaseCalendar.d.ts.map