/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { LocalizationService, DateFormatOptions } from '@progress/kendo-react-intl'; import { Calendar, CalendarProps } from '../calendar/components/Calendar.js'; import { TimePart } from '../timepicker/TimePart.js'; import { DateInputsClassStructure } from '@progress/kendo-react-common'; import { DateInputIncrementalSteps } from '../dateinput/models/index.js'; import * as React from 'react'; /** * @hidden */ export interface DateTimeSelectorChangeEvent { nativeEvent?: any; syntheticEvent: React.SyntheticEvent; value: Date | null; target: T; cancelButton?: boolean; } /** * @hidden */ export interface DateTimeSelectorRejectEvent { nativeEvent?: any; syntheticEvent: React.SyntheticEvent; value: Date | null; target: T; cancelButton?: boolean; } /** * @hidden */ export interface DateTimeSelectorProps { value: Date | null; onChange: (event: DateTimeSelectorChangeEvent) => void; onReject: (event: DateTimeSelectorRejectEvent) => void; disabled?: boolean; cancelButton?: boolean; min: Date; max: Date; minTime?: Date; maxTime?: Date; weekNumber?: boolean; focusedDate?: Date; format?: string | DateFormatOptions; calendar?: React.ComponentType>; steps?: DateInputIncrementalSteps; mobileMode?: boolean; footerActions?: boolean; unstyled?: DateInputsClassStructure; } /** * @hidden */ export interface DateTimeSelectorState { tab: 'date' | 'time'; dateValue: Date | null; timeValue: Date; } /** * @hidden */ export declare class DateTimeSelector extends React.Component { /** * @hidden */ static defaultProps: { footerActions: boolean; }; private _calendar; private _timePart; private _cancelButton; private _acceptButton; private _buttonGroupRef; private _calendarWrap; private shouldFocusPart; get calendar(): Calendar | null; get timePart(): TimePart | null; protected get hasDateValue(): boolean; protected get localizationService(): LocalizationService; constructor(props: DateTimeSelectorProps); componentDidUpdate(prevProps: DateTimeSelectorProps, prevState: DateTimeSelectorState): void; render(): React.JSX.Element; focus: (args?: FocusOptions) => void; private calendarElement; protected get minTime(): Date | null; protected get maxTime(): Date | null; protected normalizeRange(candidate: Date, value: Date | null): Date | null; protected hasActiveButton(): boolean | null; protected mergeTime(current: Date | null, candidate: Date | null): Date | null; protected mergeDate(candidate: Date | null, value: Date): Date | null; protected move: (direction: 'left' | 'right') => void; private dateTimeFooter; handleReject: (event: React.SyntheticEvent) => void; handleAccept: (event: React.SyntheticEvent, timeOverride?: Date) => void; private handleNowClick; private handleCalendarValueChange; private handleTimeListContainerChange; private readonly handleTabChange; private handleKeyDown; private handleCancelKeyDown; private handleSetKeyDown; private handleDateKeyDown; private handleTimeKeyDown; private handleTimePartMount; }