UNPKG

reactjs-datetime-range-picker

Version:

ReactJS datetime range picker with daily, weekly, monthly, quarterly & yearly levels

258 lines (224 loc) 6.77 kB
import { ElementType } from 'react'; import { default as React_2 } from 'react'; export declare interface ActiveItemSide extends DateCharacteristics { rowItemText?: string; firstDay?: string; lastDay?: string; } export declare interface AriaLabelsOptions { inputField?: string; } export declare interface BUTTON_AS { tag?: ElementType; classNames?: string; } export declare type CALENDAR_SIDES = "left" | "right"; export declare type CalendarSides = { [k in CALENDAR_SIDES]?: DateSide | TimeSide | ActiveItemSide | string | boolean | number; }; export declare type CalendarType = (typeof CalendarTypes)[number]; export declare const CalendarTypes: ["daily", "weekly", "monthly", "quarterly", "yearly"]; export declare interface Config extends Options, Settings { selectedTimezone?: TZ_MAP_KEYS; } export declare interface DateCharacteristics { available?: boolean; inRange?: boolean; active?: boolean; today?: boolean; date?: string; } export declare type DateRangeModel = { [key in CalendarType]?: Options; }; export declare interface DateRow { rowNumber: string | null; rowNumberText: string | null; items: ActiveItemSide[]; } export declare interface DateSide { label: string; months: string[]; years: string[]; itemRows: DateRow[]; } export declare type DATETIME_RANGE_TYPE = keyof typeof DatetimeRangeType; export declare interface DateTimeRangeChangeOutput { activeRange: string; startDate: string | number; endDate: string | number; startTime?: string; endTime?: string; } export declare type DateTimeRangeModelChangeOutput = { [key in CalendarType]?: DateTimeRangeChangeOutput; }; export declare enum DatetimeRangeType { daily = "daily", weekly = "weekly", monthly = "monthly", quarterly = "quarterly", yearly = "yearly" } export declare interface INPUT_AS { tag?: ElementType; classNames?: string; } export declare enum InputFocusBlur { focus = 1, blur = 2 } export declare interface Options { dateArray?: any[]; startDate?: string | number; endDate?: string | number; minDate?: string | number; maxDate?: string | number; startTime?: string; endTime?: string; minTime?: string; maxTime?: string; } export declare const ReactJSDatetimeRangePicker: React_2.FC<ReactJSDatetimeRangePickerProps>; export declare interface ReactJSDatetimeRangePickerProps { dateArray?: any[]; startDate?: string | number; endDate?: string | number; minDate?: string | number; maxDate?: string | number; startTime?: string; endTime?: string; minTime?: string; maxTime?: string; type?: DATETIME_RANGE_TYPE; modelKeys?: string[]; useLocalTimezone?: boolean; showTimezoneSelect?: boolean; timePicker?: boolean; timezoneSupport?: boolean; defaultTimezone?: TZ_MAP_KEYS; inputClass?: string; inputDateFormat?: string; viewDateFormat?: string; outputDateFormat?: string; singleDatePicker?: boolean; componentDisabled?: boolean; label?: string; placeholder?: string; showRowNumber?: boolean; availableRanges?: Record<string, any>; showRanges?: boolean; disableWeekends?: boolean; disableWeekdays?: boolean; displayBeginDate?: boolean; displayEndDate?: boolean; ariaLabels?: AriaLabelsOptions; dateRangeModel: DateRangeModel; canBeEmpty: boolean; onDateRangeModelChange?: (options: Options | DateRangeModel) => void; onDateRangeChange?: (options: Options) => void; onInputBlur?: (options: Record<string, unknown>) => void; onDateSelect?: (options: Options) => void; inputAs?: INPUT_AS; selectAs?: SELECT_AS; buttonAs?: BUTTON_AS; } export declare interface RowItemOptions { type: string; monthStartWeekNumber: number; dateRows: number; rowNumber: string; yearStartDate: string; year: number; rowItem: number; columns: number; } export declare interface RowItemVariables { itemCount: number; currentItemDate: string; rowItemText: string; firstDay: string; lastDay: string; } export declare interface RowOptions { type: string; monthStartWeekNumber: number; dateRows: number; year: string; itemCount: number | null; } export declare interface RowVariables { rowNumber: string; columns: number; } export declare interface SELECT_AS { tag?: ElementType; optionTag?: ElementType; selectedAttributeName?: string; selectedAttributeValueType?: "string" | "array" | "number"; classNames?: string; } export declare interface Settings { type: DATETIME_RANGE_TYPE; modelKeys?: string[]; useLocalTimezone?: boolean; showTimezoneSelect?: boolean; timePicker?: boolean; timezoneSupport?: boolean; defaultTimezone?: TZ_MAP_KEYS; inputClass?: string; inputDateFormat?: string; viewDateFormat?: string; outputDateFormat?: string; singleDatePicker?: boolean; componentDisabled?: boolean; label?: string; placeholder?: string; showRowNumber?: boolean; availableRanges?: Record<string, any>; showRanges?: boolean; disableWeekends?: boolean; disableWeekdays?: boolean; displayBeginDate?: boolean; displayEndDate?: boolean; ariaLabels?: AriaLabelsOptions; } export declare interface State { activeEndDate: string; activeItem: CalendarSides; activeRange: string; activeStartDate: string; calendarAvailable: CalendarSides; customRange: boolean; dates: CalendarSides; dateTitleText: CalendarSides; frequencyColumnHeader: string; isCalendarVisible: boolean; isValidFilter: boolean; isUserModelChange: boolean; localTimezone: TZ_MAP_KEYS; selectedDateText: string; selectedHour: CalendarSides; selectedMeridian: CalendarSides; selectedMinute: CalendarSides; selectedMonth: CalendarSides; selectedTimezone: TZ_MAP_KEYS; selectedYear: CalendarSides; sides: CALENDAR_SIDES[]; timeItems: TIME_ITEM[]; times: CalendarSides; timeZones: TZ_MAP_KEYS[]; todayTime: string; weekDayOptions: string[]; } export declare type TIME_ITEM = "hour" | "minute" | "meridian"; export declare interface TimeSide { hour: any[]; minute: any[]; meridian: any[]; } export declare type TZ_MAP = { [K in TZ_MAP_KEYS]: string; }; export declare type TZ_MAP_KEYS = "EST" | "MST" | "PST" | "CET"; export { }