UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

48 lines (47 loc) 2.59 kB
/** * DevExtreme (esm/renovation/ui/scheduler/view_model/to_test/views/utils/week.js) * Version: 21.2.4 * Build date: Mon Dec 06 2021 * * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import dateUtils from "../../../../../../../core/utils/date"; import dateLocalization from "../../../../../../../localization/date"; import { getCalculatedFirstDayOfWeek, getStartViewDateTimeOffset, getViewStartByOptions, setOptionHour } from "./base"; import timeZoneUtils from "../../../../../../../ui/scheduler/utils.timeZone"; export var getIntervalDuration = intervalCount => 7 * dateUtils.dateToMilliseconds("day") * intervalCount; export var getValidStartDate = (startDate, firstDayOfWeek) => startDate ? dateUtils.getFirstWeekDate(startDate, firstDayOfWeek) : void 0; export var calculateStartViewDate = (currentDate, startDayHour, startDate, intervalDuration, firstDayOfWeekOption) => { var firstDayOfWeek = getCalculatedFirstDayOfWeek(firstDayOfWeekOption); var viewStart = getViewStartByOptions(startDate, currentDate, intervalDuration, getValidStartDate(startDate, firstDayOfWeek)); var firstViewDate = dateUtils.getFirstWeekDate(viewStart, firstDayOfWeek); return setOptionHour(firstViewDate, startDayHour) }; export var calculateViewStartDate = (startDateOption, firstDayOfWeek) => { var validFirstDayOfWeek = null !== firstDayOfWeek && void 0 !== firstDayOfWeek ? firstDayOfWeek : dateLocalization.firstDayOfWeekIndex(); return dateUtils.getFirstWeekDate(startDateOption, validFirstDayOfWeek) }; var getTimeCellDate = (rowIndex, date, startViewDate, cellDuration, startDayHour) => { if (!timeZoneUtils.isTimezoneChangeInDate(date)) { return date } var startViewDateWithoutDST = timeZoneUtils.getDateWithoutTimezoneChange(startViewDate); var result = new Date(startViewDateWithoutDST); var timeCellDuration = Math.round(cellDuration); var startViewDateOffset = getStartViewDateTimeOffset(startViewDate, startDayHour); result.setMilliseconds(result.getMilliseconds() + timeCellDuration * rowIndex - startViewDateOffset); return result }; export var getTimePanelCellText = (rowIndex, date, startViewDate, cellDuration, startDayHour) => { if (rowIndex % 2 === 0) { var validDate = getTimeCellDate(rowIndex, date, startViewDate, cellDuration, startDayHour); return dateLocalization.format(validDate, "shorttime") } return "" };