UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

69 lines (68 loc) 2.49 kB
/** * DevExtreme (esm/ui/scheduler/workspaces/ui.scheduler.work_space_work_week.js) * Version: 21.1.4 * Build date: Mon Jun 21 2021 * * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import registerComponent from "../../../core/component_registrator"; import dateUtils from "../../../core/utils/date"; import { isDataOnWeekend, getWeekendsCount, getFirstDayOfWeek, getFirstViewDate } from "./utils/work_week"; import SchedulerWorkSpaceWeek from "./ui.scheduler.work_space_week"; var toMs = dateUtils.dateToMilliseconds; var WORK_WEEK_CLASS = "dx-scheduler-work-space-work-week"; var dayIndexes = [1, 2, 3, 4, 5]; var weekCounter = 0; class SchedulerWorkSpaceWorkWeek extends SchedulerWorkSpaceWeek { constructor() { super(...arguments); this._isSkippedData = isDataOnWeekend; this._getWeekendsCount = getWeekendsCount } _getElementClass() { return WORK_WEEK_CLASS } _getCellCount() { return 5 * this.option("intervalCount") } _firstDayOfWeek() { return getFirstDayOfWeek(this.option("firstDayOfWeek")) } _getDateByIndex(headerIndex) { var resultDate = new Date(this._firstViewDate); if (headerIndex % this._getCellCount() === 0) { weekCounter = 0 } resultDate.setDate(this._firstViewDate.getDate() + headerIndex + weekCounter); var index = resultDate.getDay(); while (-1 === dayIndexes.indexOf(index)) { resultDate.setDate(resultDate.getDate() + 1); index = resultDate.getDay(); weekCounter++ } return resultDate } _renderView() { weekCounter = 0; super._renderView() } _setFirstViewDate() { this._firstViewDate = getFirstViewDate(this._getViewStartByOptions(), this._firstDayOfWeek()); this._setStartDayHour(this._firstViewDate) } _getOffsetByCount(cellIndex) { var cellsInGroup = this._getCellCount(); var inGroup = Math.floor(cellIndex / cellsInGroup); cellIndex -= cellsInGroup * inGroup; var weekendCount = Math.floor(cellIndex / 5); return toMs("day") * weekendCount * 2 } } registerComponent("dxSchedulerWorkSpaceWorkWeek", SchedulerWorkSpaceWorkWeek); export default SchedulerWorkSpaceWorkWeek;