@progress/kendo-vue-dateinputs
Version:
370 lines (369 loc) • 10.6 kB
TypeScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
import { PopupProps } from '@progress/kendo-vue-popup';
import { FormComponentProps, FormComponentValidity } from '@progress/kendo-vue-common';
import { DateInputChangeEvent } from '../dateinput/interfaces/DateInputEventArguments';
import { TimeSelectorChangeEvent } from './TimeSelector';
import { TimePickerSettings } from './models/main';
import { DateInputFormatPlaceholder } from '../dateinput/models/main';
import { PropType } from 'vue';
import { TimePickerFocusEvent, TimePickerBlurEvent } from './interfaces/TimePickerFocusBlurEvents';
/**
* The arguments for the `onChange` event of the TimePicker.
*/
export interface TimePickerChangeEvent {
event?: any;
value: Date | null;
show: boolean;
target: any;
}
/**
* The arguments for the `open` event of the TimePicker.
*/
export interface TimePickerOpenEvent {
component: any;
}
/**
* The arguments for the `close` event of the TimePicker.
*/
export interface TimePickerCloseEvent {
component: any;
}
/**
* Represents the props of the [Kendo UI for Vue TimePicker component]({% slug overview_timepicker %}).
*/
export interface TimePickerProps extends TimePickerSettings, FormComponentProps {
/**
* @hidden
*/
modelValue?: Date;
/**
* Sets the default value of the TimePicker ([see example]({% slug default_value_timepicker %}#toc-setting-the-default-value)).
*/
defaultValue?: Date;
/**
* Fires each time the user selects a new value ([see example]({% slug controlled_timepicker %}#toc-controlling-the-date-value)).
*/
onChange?: (event: TimePickerChangeEvent) => void;
/**
* Specifies the value of the TimePicker ([see example]({% slug controlled_timepicker %}#toc-controlling-the-date-value)).
*
* > The `value` has to be a valid [JavaScript `Date`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date) instance.
*/
value?: Date | null;
}
/**
* @hidden
*/
export interface TimePickerComputed {
[key: string]: any;
timeSelector: any;
computedValue: Date | null;
computedShow: boolean;
}
/**
* @hidden
*/
declare const TimePicker: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
cancelButton: {
type: PropType<boolean>;
default: boolean;
};
nowButton: {
type: PropType<boolean>;
default: any;
};
defaultShow: {
type: PropType<boolean>;
default: boolean;
};
modelValue: {
type: PropType<Date>;
default: any;
};
defaultValue: {
type: PropType<Date>;
default: () => any;
};
dateInput: {
type: PropType<any>;
default: () => any;
};
popup: {
type: PropType<any>;
default: () => any;
};
disabled: {
type: PropType<boolean>;
default: boolean;
};
format: {
type: PropType<string | import('@progress/kendo-vue-intl').DateFormatOptions>;
default: () => string | object;
};
formatPlaceholder: {
type: PropType<DateInputFormatPlaceholder>;
default: () => DateInputFormatPlaceholder;
};
rounded: {
type: PropType<string>;
validator: (value: string) => boolean;
};
fillMode: {
type: PropType<string>;
validator: (value: string) => boolean;
};
size: {
type: PropType<"small" | "medium" | "large">;
validator: (value: string) => boolean;
};
id: PropType<string>;
ariaLabelledBy: PropType<string>;
ariaDescribedBy: PropType<string>;
min: {
type: PropType<Date>;
default: () => Date;
};
max: {
type: PropType<Date>;
default: () => Date;
};
name: PropType<string>;
label: PropType<string>;
placeholder: PropType<string>;
popupSettings: {
type: PropType<PopupProps>;
default: () => {};
};
show: {
type: PropType<boolean>;
default: any;
};
tabIndex: {
type: PropType<number>;
default: number;
};
steps: {
type: PropType<import('./models/IncrementalSteps').TimePickerIncrementalSteps>;
default: () => {};
};
smoothScroll: {
type: PropType<boolean>;
default: boolean;
};
title: {
type: PropType<string>;
default: () => "";
};
value: {
type: PropType<Date>;
default: () => any;
};
width: PropType<string | number>;
validationMessage: PropType<string>;
required: {
type: PropType<boolean>;
default: boolean;
};
validityStyles: {
type: PropType<boolean>;
default: boolean;
};
validate: PropType<boolean>;
valid: {
type: PropType<boolean>;
default: any;
};
inputAttributes: PropType<Object>;
}>, {
kendoAnchorRef: import('vue').Ref<any, any>;
kendoLocalizationService: {};
}, {
currentValue: any;
currentShow: boolean;
valueDuringOnChange: any;
showDuringOnChange: any;
isFocused: boolean;
}, {
timeSelector(): any;
computedValue(): Date | null;
computedShow(): boolean;
}, {
validity(): FormComponentValidity;
getDateInputText(): any;
focus(): void;
normalizeTime(date: Date): Date;
setShow(show: boolean): void;
mergeTime(value: Date | null): Date | null;
handleInputValueChange(event: DateInputChangeEvent): void;
handleValueChange(event: DateInputChangeEvent | TimeSelectorChangeEvent): void;
handleFocus(event: FocusEvent): void;
handleBlur(event: FocusEvent): void;
timeBlur(event: FocusEvent): void;
timeFocus(): void;
createBlurTimeout(): void;
handleValueReject(_: any): void;
handleIconClick(event: any): void;
handleIconMouseDown(event: any): void;
handleKeyDown(event: any): void;
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
changemodel: (value: Date | null) => true;
'update:modelValue': (value: Date | null) => true;
iconclick: (event: Event) => true;
change: (event: TimePickerChangeEvent) => true;
focus: (event: TimePickerFocusEvent) => true;
blur: (event: TimePickerBlurEvent) => true;
keydown: (event: KeyboardEvent) => true;
open: (event: TimePickerOpenEvent) => true;
close: (event: TimePickerCloseEvent) => true;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
cancelButton: {
type: PropType<boolean>;
default: boolean;
};
nowButton: {
type: PropType<boolean>;
default: any;
};
defaultShow: {
type: PropType<boolean>;
default: boolean;
};
modelValue: {
type: PropType<Date>;
default: any;
};
defaultValue: {
type: PropType<Date>;
default: () => any;
};
dateInput: {
type: PropType<any>;
default: () => any;
};
popup: {
type: PropType<any>;
default: () => any;
};
disabled: {
type: PropType<boolean>;
default: boolean;
};
format: {
type: PropType<string | import('@progress/kendo-vue-intl').DateFormatOptions>;
default: () => string | object;
};
formatPlaceholder: {
type: PropType<DateInputFormatPlaceholder>;
default: () => DateInputFormatPlaceholder;
};
rounded: {
type: PropType<string>;
validator: (value: string) => boolean;
};
fillMode: {
type: PropType<string>;
validator: (value: string) => boolean;
};
size: {
type: PropType<"small" | "medium" | "large">;
validator: (value: string) => boolean;
};
id: PropType<string>;
ariaLabelledBy: PropType<string>;
ariaDescribedBy: PropType<string>;
min: {
type: PropType<Date>;
default: () => Date;
};
max: {
type: PropType<Date>;
default: () => Date;
};
name: PropType<string>;
label: PropType<string>;
placeholder: PropType<string>;
popupSettings: {
type: PropType<PopupProps>;
default: () => {};
};
show: {
type: PropType<boolean>;
default: any;
};
tabIndex: {
type: PropType<number>;
default: number;
};
steps: {
type: PropType<import('./models/IncrementalSteps').TimePickerIncrementalSteps>;
default: () => {};
};
smoothScroll: {
type: PropType<boolean>;
default: boolean;
};
title: {
type: PropType<string>;
default: () => "";
};
value: {
type: PropType<Date>;
default: () => any;
};
width: PropType<string | number>;
validationMessage: PropType<string>;
required: {
type: PropType<boolean>;
default: boolean;
};
validityStyles: {
type: PropType<boolean>;
default: boolean;
};
validate: PropType<boolean>;
valid: {
type: PropType<boolean>;
default: any;
};
inputAttributes: PropType<Object>;
}>> & Readonly<{
onBlur?: (event: TimePickerBlurEvent) => any;
onChange?: (event: TimePickerChangeEvent) => any;
onClose?: (event: TimePickerCloseEvent) => any;
onFocus?: (event: TimePickerFocusEvent) => any;
onKeydown?: (event: KeyboardEvent) => any;
onOpen?: (event: TimePickerOpenEvent) => any;
onChangemodel?: (value: Date) => any;
"onUpdate:modelValue"?: (value: Date) => any;
onIconclick?: (event: Event) => any;
}>, {
required: boolean;
title: string;
value: Date;
tabIndex: number;
popup: any;
disabled: boolean;
format: string | object;
max: Date;
min: Date;
defaultValue: Date;
show: boolean;
popupSettings: PopupProps;
modelValue: Date;
steps: import('./models/IncrementalSteps').TimePickerIncrementalSteps;
validityStyles: boolean;
valid: boolean;
formatPlaceholder: DateInputFormatPlaceholder;
defaultShow: boolean;
dateInput: any;
smoothScroll: boolean;
cancelButton: boolean;
nowButton: boolean;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export { TimePicker };