UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

56 lines (43 loc) 1.74 kB
"use strict"; var registerComponent = require("../../core/component_registrator"), SchedulerTimelineWeek = require("./ui.scheduler.timeline_week"), dateUtils = require("../../core/utils/date"), toMs = dateUtils.dateToMilliseconds; var TIMELINE_CLASS = "dx-scheduler-timeline-work-week", MONDAY_INDEX = 1; var SchedulerTimelineWorkWeek = SchedulerTimelineWeek.inherit({ _getElementClass: function _getElementClass() { return TIMELINE_CLASS; }, _getWeekDuration: function _getWeekDuration() { return 5; }, _firstDayOfWeek: function _firstDayOfWeek() { return this.option("firstDayOfWeek") || MONDAY_INDEX; }, _incrementDate: function _incrementDate(date) { var day = date.getDay(); if (day === 5) { date.setDate(date.getDate() + 2); } this.callBase(date); }, _getOffsetByCount: function _getOffsetByCount(cellIndex, rowIndex) { var weekendCount = Math.floor(cellIndex / (5 * this._getCellCountInDay())); if (weekendCount > 0) { return toMs("day") * weekendCount * 2; } else { return 0; } }, _getWeekendsCount: function _getWeekendsCount(days) { return 2 * Math.floor(days / 7); }, _setFirstViewDate: function _setFirstViewDate() { this._firstViewDate = dateUtils.getFirstWeekDate(this.option("currentDate"), this._firstDayOfWeek()); this._firstViewDate = dateUtils.normalizeDateByWeek(this._firstViewDate, this.option("currentDate")); this._setStartDayHour(this._firstViewDate); } }); registerComponent("dxSchedulerTimelineWorkWeek", SchedulerTimelineWorkWeek); module.exports = SchedulerTimelineWorkWeek;