UNPKG

@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
/**----------------------------------------------------------------------------------------- * 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 }; }