UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

80 lines (56 loc) 2.47 kB
"use strict"; var registerComponent = require("../../core/component_registrator"), dateUtils = require("../../core/utils/date"), toMs = dateUtils.dateToMilliseconds, SchedulerWorkSpaceWeek = require("./ui.scheduler.work_space_week"), dateUtils = require("../../core/utils/date"), dateLocalization = require("../../localization/date"); var WORK_WEEK_CLASS = "dx-scheduler-work-space-work-week"; var dayIndexes = [1, 2, 3, 4, 5]; var weekCounter = 0; var SchedulerWorkSpaceWorkWeek = SchedulerWorkSpaceWeek.inherit({ _getElementClass: function _getElementClass() { return WORK_WEEK_CLASS; }, _getCellCount: function _getCellCount() { return 5 * this.option("intervalCount"); }, _firstDayOfWeek: function _firstDayOfWeek() { return this.option("firstDayOfWeek") || 1; }, _getDateByIndex: function _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 (dayIndexes.indexOf(index) === -1) { resultDate.setDate(resultDate.getDate() + 1); index = resultDate.getDay(); weekCounter++; } return resultDate; }, _renderView: function _renderView() { weekCounter = 0; this.callBase(); }, _getWeekendsCount: function _getWeekendsCount(days) { return 2 * Math.floor(days / 7); }, _setFirstViewDate: function _setFirstViewDate() { this._firstViewDate = dateUtils.getFirstWeekDate(this._getViewStartByOptions(), this._firstDayOfWeek() || dateLocalization.firstDayOfWeekIndex()); this._firstViewDate = dateUtils.normalizeDateByWeek(this._firstViewDate, this._getViewStartByOptions()); this._setStartDayHour(this._firstViewDate); }, _getOffsetByCount: function _getOffsetByCount(cellIndex) { var cellsInGroup = this._getCellCount(), inGroup = Math.floor(cellIndex / cellsInGroup); cellIndex = cellIndex - cellsInGroup * inGroup; var weekendCount = Math.floor(cellIndex / 5); return toMs("day") * weekendCount * 2; } }); registerComponent("dxSchedulerWorkSpaceWorkWeek", SchedulerWorkSpaceWorkWeek); module.exports = SchedulerWorkSpaceWorkWeek;