UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

45 lines (44 loc) 1.53 kB
/** * DevExtreme (esm/__internal/scheduler/view_model/common/split_interval_by_days.js) * Version: 25.2.5 * Build date: Fri Feb 20 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import { dateUtils } from "../../../core/utils/m_date"; export const splitIntervalByDay = _ref => { let { startDayHour: startDayHour, endDayHour: endDayHour, min: min, max: max, skippedDays: skippedDays } = _ref; if (endDayHour < startDayHour) { return [] } const startTime = dateUtils.dateTimeFromDecimal(startDayHour); const endTime = dateUtils.dateTimeFromDecimal(endDayHour); const normalizedMin = new Date(min); normalizedMin.setUTCHours(startTime.hours, startTime.minutes, 0, 0); const normalizedMax = new Date(max - 1); normalizedMax.setUTCHours(endTime.hours, endTime.minutes, 0, 0); const time = normalizedMin; const maxTime = normalizedMax; const result = []; while (time < maxTime) { if (!skippedDays.includes(time.getUTCDay())) { const intervalMax = new Date(time); intervalMax.setUTCHours(endTime.hours, endTime.minutes, 0, 0); result.push({ min: time.getTime(), max: intervalMax.getTime() }) } time.setUTCDate(time.getUTCDate() + 1) } return result };