@progress/kendo-vue-dateinputs
Version:
316 lines (315 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 { DateInputChangeEvent } from '../dateinput/interfaces/DateInputEventArguments';
import { CalendarChangeEvent } from '../calendar/components/interfaces/CalendarEventArguments';
import { SelectionRange } from '../calendar/models/main';
import { DateRangePickerSettings } from './models/main';
import { PropType } from 'vue';
import { DateRangePickerFocusEvent, DateRangePickerBlurEvent } from './interfaces/DateRangePickerFocusBlurEvents';
/**
* @hidden
*/
export interface ReverseClickEvent {
event?: any;
}
/**
* The arguments for the `onChange` event of the DateRangePicker.
*/
export interface DateRangePickerChangeEvent {
event?: any;
value: SelectionRange;
show?: boolean;
target: any;
component?: any;
}
/**
* The arguments for the `open` event of the DateRangePicker.
*/
export interface DateRangePickerOpenEvent {
component: any;
}
/**
* The arguments for the `close` event of the DateRangePicker.
*/
export interface DateRangePickerCloseEvent {
component: any;
}
/**
* Represents the props of the [Kendo UI for Vue DateRangePicker component]({% slug overview_daterangepicker %}).
*/
export interface DateRangePickerProps extends DateRangePickerSettings {
/**
* Overrides the validity state of the component.
* If `valid` is set, the `required` property will be ignored.
*/
valid?: boolean;
/**
* Sets the default value of the DateRangePicker ([see example]({% slug default_value_daterangepicker %})).
*/
defaultValue?: SelectionRange;
/**
* @hidden
*/
modelValue?: Date;
/**
* Fires each time the user selects a part of a date range ([see example]({% slug controlled_daterangepicker %}#toc-controlling-the-value)).
*/
onChange?: (event: DateRangePickerChangeEvent) => void;
/**
* Specifies the selected date range of the DateRangePicker ([see example]({% slug controlled_daterangepicker %}#toc-controlling-the-value)).
*
* > The `value` has to be an object with `start` and `end` valid JavaScript [`Date`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date) instances or `null`.
*/
value?: SelectionRange;
}
/**
* @hidden
*/
export interface DateRangePickerData {
currentShow: boolean;
currentValue: SelectionRange;
valueDuringOnChange: SelectionRange | undefined;
shouldFocusDateInput: boolean;
shouldFocusCalendar: boolean;
}
/**
* @hidden
*/
export interface DateRangePickerComputed {
[key: string]: any;
rootClassName: object;
computedValue: SelectionRange;
computedShow: boolean;
}
/**
* @hidden
*/
declare const DateRangePicker: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
allowReverse: {
type: PropType<boolean>;
default: boolean;
};
calendarSettings: PropType<import('./models/DateRangePickerCalendarSettings').DateRangePickerCalendarSettings>;
defaultShow: {
type: PropType<boolean>;
default: boolean;
};
defaultValue: {
type: PropType<SelectionRange>;
default: () => SelectionRange;
};
modelValue: {
type: PropType<Date>;
default: any;
};
disabled: {
type: PropType<boolean>;
default: boolean;
};
popup: PropType<any>;
calendar: PropType<any>;
startDateInput: PropType<any>;
endDateInput: PropType<any>;
endDateInputSettings: PropType<import('./models/DateRangePickerDateInputSettings').DateRangePickerDateInputSettings>;
focusedDate: PropType<Date>;
format: {
type: PropType<string | import('@progress/kendo-vue-intl').DateFormatOptions>;
default: () => string | object;
};
id: PropType<string>;
ariaLabelledBy: PropType<string>;
ariaDescribedBy: PropType<string>;
max: {
type: PropType<Date>;
default: () => Date;
};
min: {
type: PropType<Date>;
default: () => Date;
};
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;
};
popupSettings: {
type: PropType<import('./models/DateRangePickerPopupSettings').DateRangePickerPopupSettings>;
default: () => any;
};
show: {
type: PropType<boolean>;
default: any;
};
startDateInputSettings: PropType<import('./models/DateRangePickerDateInputSettings').DateRangePickerDateInputSettings>;
swapButton: {
type: PropType<boolean>;
default: boolean;
};
tabIndex: PropType<number>;
value: {
type: PropType<SelectionRange>;
default: () => any;
};
inputAttributes: PropType<Object>;
}>, {
kendoAnchorRef: import('vue').Ref<any, any>;
kendoLocalizationService: {};
}, {
currentShow: boolean;
currentValue: any;
valueDuringOnChange: any;
shouldFocusDateInput: boolean;
shouldFocusCalendar: boolean;
}, {
rootClassName(): DateRangePickerComputed['rootClassName'];
computedValue(): DateRangePickerComputed['computedValue'];
computedShow(): DateRangePickerComputed['computedShow'];
swapButtonClass(): {
[x: string]: any;
'k-button': boolean;
'k-button-flat': boolean;
'k-button-flat-base': boolean;
'k-icon-button': boolean;
};
}, {
focus(): void;
focusCalendarElement(): void;
focusDateInputElement(): void;
calculateValue(props: DateRangePickerProps, state: DateRangePickerData): SelectionRange;
calculateShow(nextProps: DateRangePickerProps, nextState: DateRangePickerData): boolean;
setShow(show: boolean): void;
handleReverseClick(event: any): void;
handleReverseMouseDown(event: any): void;
handleFocus(event: FocusEvent): void;
calendarBlur(): void;
calendarFocus(): void;
createBlurTimeout(): void;
getStartInput(): any;
getEndInput(): any;
getCalendar(): any;
handleBlur(event: FocusEvent): void;
handleEndChange(event: DateInputChangeEvent): void;
handleStartChange(event: DateInputChangeEvent): void;
extractRangeFromValue(event: CalendarChangeEvent): SelectionRange;
handleCalendarChange(event: CalendarChangeEvent): void;
handleKeyDown(event: any): void;
handleChange(value: SelectionRange, event: CalendarChangeEvent | DateInputChangeEvent | ReverseClickEvent): void;
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
blur: (event: DateRangePickerBlurEvent) => true;
change: (event: DateRangePickerChangeEvent) => true;
changemodel: (value: any) => true;
'update:modelValue': (value: any) => true;
focus: (event: DateRangePickerFocusEvent) => true;
keydown: (event: KeyboardEvent) => true;
open: (event: DateRangePickerOpenEvent) => true;
close: (event: DateRangePickerCloseEvent) => true;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
allowReverse: {
type: PropType<boolean>;
default: boolean;
};
calendarSettings: PropType<import('./models/DateRangePickerCalendarSettings').DateRangePickerCalendarSettings>;
defaultShow: {
type: PropType<boolean>;
default: boolean;
};
defaultValue: {
type: PropType<SelectionRange>;
default: () => SelectionRange;
};
modelValue: {
type: PropType<Date>;
default: any;
};
disabled: {
type: PropType<boolean>;
default: boolean;
};
popup: PropType<any>;
calendar: PropType<any>;
startDateInput: PropType<any>;
endDateInput: PropType<any>;
endDateInputSettings: PropType<import('./models/DateRangePickerDateInputSettings').DateRangePickerDateInputSettings>;
focusedDate: PropType<Date>;
format: {
type: PropType<string | import('@progress/kendo-vue-intl').DateFormatOptions>;
default: () => string | object;
};
id: PropType<string>;
ariaLabelledBy: PropType<string>;
ariaDescribedBy: PropType<string>;
max: {
type: PropType<Date>;
default: () => Date;
};
min: {
type: PropType<Date>;
default: () => Date;
};
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;
};
popupSettings: {
type: PropType<import('./models/DateRangePickerPopupSettings').DateRangePickerPopupSettings>;
default: () => any;
};
show: {
type: PropType<boolean>;
default: any;
};
startDateInputSettings: PropType<import('./models/DateRangePickerDateInputSettings').DateRangePickerDateInputSettings>;
swapButton: {
type: PropType<boolean>;
default: boolean;
};
tabIndex: PropType<number>;
value: {
type: PropType<SelectionRange>;
default: () => any;
};
inputAttributes: PropType<Object>;
}>> & Readonly<{
onBlur?: (event: DateRangePickerBlurEvent) => any;
onChange?: (event: DateRangePickerChangeEvent) => any;
onClose?: (event: DateRangePickerCloseEvent) => any;
onFocus?: (event: DateRangePickerFocusEvent) => any;
onKeydown?: (event: KeyboardEvent) => any;
onOpen?: (event: DateRangePickerOpenEvent) => any;
onChangemodel?: (value: any) => any;
"onUpdate:modelValue"?: (value: any) => any;
}>, {
value: SelectionRange;
disabled: boolean;
format: string | object;
max: Date;
min: Date;
defaultValue: SelectionRange;
show: boolean;
popupSettings: import('./models/DateRangePickerPopupSettings').DateRangePickerPopupSettings;
allowReverse: boolean;
modelValue: Date;
defaultShow: boolean;
swapButton: boolean;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export { DateRangePicker };