@progress/kendo-angular-dateinputs
Version:
Kendo UI for Angular Date Inputs Package - Everything you need to add date selection functionality to apps (DatePicker, TimePicker, DateInput, DateRangePicker, DateTimePicker, Calendar, and MultiViewCalendar).
40 lines (39 loc) • 1.94 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
/**
* @hidden
*/
export function handleRangeSelection(date, selectionRange, activeRangeEnd, allowReverse = false) {
if ((activeRangeEnd === 'start' && selectionRange.start?.getTime() === date?.getTime() && ((allowReverse && !selectionRange.end) || !allowReverse)) ||
(activeRangeEnd === 'end' && selectionRange.end?.getTime() === date?.getTime())) {
return { activeRangeEnd: activeRangeEnd, selectionRange: selectionRange };
}
if (allowReverse) {
if (activeRangeEnd === 'start' && selectionRange.start?.getTime() !== date?.getTime()) {
selectionRange.start = date;
activeRangeEnd = 'end';
}
else if (activeRangeEnd === 'end' && selectionRange.end?.getTime() !== date?.getTime()) {
selectionRange.end = date;
activeRangeEnd = 'start';
}
}
if (!allowReverse) {
if (activeRangeEnd === 'start' && date > selectionRange.end ||
activeRangeEnd === 'end' && date < selectionRange.start) {
selectionRange = { start: date, end: null };
activeRangeEnd = 'end';
}
else if (activeRangeEnd === 'start' && date <= selectionRange.end) {
selectionRange.start = date;
activeRangeEnd = 'end';
}
else if (activeRangeEnd === 'end' && date >= selectionRange.start && date.getTime() !== selectionRange.end?.getTime()) {
selectionRange.end = date;
activeRangeEnd = 'start';
}
}
return { activeRangeEnd: activeRangeEnd, selectionRange: selectionRange };
}