UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

37 lines (36 loc) 1.48 kB
/** * DevExtreme (esm/__internal/scheduler/r1/utils/agenda.js) * Version: 25.2.8 * Build date: Mon Jun 08 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import timeZoneUtils from "../../m_utils_time_zone"; import { setOptionHour } from "./base"; export const calculateStartViewDate = (currentDate, startDayHour) => { const validCurrentDate = new Date(currentDate); return setOptionHour(validCurrentDate, startDayHour) }; const getDayStart = date => new Date(date).setUTCHours(0, 0, 0, 0); export const calculateRows = (appointments, agendaDuration, currentDate, groupCount) => { const dayMs = getDayStart(timeZoneUtils.createUTCDateWithLocalOffset(currentDate)); const intervalsStartMap = new Map; const result = Array.from({ length: groupCount || 1 }, () => new Array(agendaDuration).fill(0)); for (let i = 0; i < agendaDuration; i += 1) { const day = new Date(dayMs); intervalsStartMap.set(day.setUTCDate(day.getUTCDate() + i), i) } appointments.forEach(appointment => { const appointmentStart = getDayStart(appointment.startDateUTC); const intervalIndex = intervalsStartMap.get(appointmentStart); if (void 0 !== intervalIndex) { result[appointment.groupIndex][intervalIndex] += 1 } }); return result };