devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
49 lines (48 loc) • 2.37 kB
JavaScript
/**
* DevExtreme (esm/__internal/scheduler/r1/utils/week.js)
* Version: 26.1.3
* Build date: Wed Jun 10 2026
*
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import dateLocalization from "../../../../common/core/localization/date";
import dateUtils from "../../../../core/utils/date";
import {
formatImplicitSchedulerTime
} from "../../utils/global_formats";
import {
getFirstVisibleDate
} from "../../utils/skipped_days";
import {
getCalculatedFirstDayOfWeek,
getValidCellDateForLocalTimeFormat,
getViewStartByOptions,
setOptionHour
} from "./base";
export const getTimePanelCellText = (rowIndex, date, startViewDate, cellDuration, startDayHour, viewOffset) => {
if (rowIndex % 2 !== 0) {
return ""
}
const validTimeDate = getValidCellDateForLocalTimeFormat(date, {
startViewDate: startViewDate,
startDayHour: startDayHour,
cellIndexShift: Math.round(cellDuration) * rowIndex,
viewOffset: viewOffset
});
return formatImplicitSchedulerTime(validTimeDate)
};
export const getIntervalDuration = intervalCount => 7 * dateUtils.dateToMilliseconds("day") * intervalCount;
export const getValidStartDate = (startDate, firstDayOfWeek) => startDate ? dateUtils.getFirstWeekDate(startDate, firstDayOfWeek) : void 0;
export const calculateStartViewDate = function(currentDate, startDayHour, startDate, intervalDuration, firstDayOfWeekOption) {
let skippedDays = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : [];
const firstDayOfWeek = getCalculatedFirstDayOfWeek(firstDayOfWeekOption);
const viewStart = getViewStartByOptions(startDate, currentDate, intervalDuration, getValidStartDate(startDate, firstDayOfWeek));
const weekStartDate = dateUtils.getFirstWeekDate(viewStart, firstDayOfWeek);
const firstViewDate = getFirstVisibleDate(weekStartDate, skippedDays, date => new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1));
return setOptionHour(firstViewDate, startDayHour)
};
export const calculateViewStartDate = (startDateOption, firstDayOfWeek) => {
const validFirstDayOfWeek = firstDayOfWeek ?? dateLocalization.firstDayOfWeekIndex();
return dateUtils.getFirstWeekDate(startDateOption, validFirstDayOfWeek)
};