UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

49 lines (48 loc) 1.7 kB
/** * DevExtreme (cjs/__internal/scheduler/view_model/common/split_interval_by_days.js) * Version: 25.2.7 * Build date: Tue May 05 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.splitIntervalByDay = void 0; var _m_date = require("../../../core/utils/m_date"); const splitIntervalByDay = _ref => { let { startDayHour: startDayHour, endDayHour: endDayHour, min: min, max: max, skippedDays: skippedDays } = _ref; if (endDayHour < startDayHour) { return [] } const startTime = _m_date.dateUtils.dateTimeFromDecimal(startDayHour); const endTime = _m_date.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 }; exports.splitIntervalByDay = splitIntervalByDay;