UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

47 lines (46 loc) 1.96 kB
/** * DevExtreme (ui/scheduler/ui.scheduler.appointments.strategy.horizontal_month_line.js) * Version: 18.1.3 * Build date: Tue May 15 2018 * * Copyright (c) 2012 - 2018 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; var HorizontalAppointmentsStrategy = require("./ui.scheduler.appointments.strategy.horizontal"), dateUtils = require("../../core/utils/date"), query = require("../../data/query"); var HorizontalMonthLineRenderingStrategy = HorizontalAppointmentsStrategy.inherit({ calculateAppointmentWidth: function(appointment, position, isRecurring) { var startDate = new Date(this._startDate(appointment, false, position)), endDate = new Date(this._endDate(appointment, position, isRecurring)), cellWidth = this._defaultWidth || this.getAppointmentMinSize(); startDate = dateUtils.trimTime(startDate); var durationInHours = (endDate.getTime() - startDate.getTime()) / 36e5; return Math.ceil(durationInHours / 24) * cellWidth }, getDeltaTime: function(args, initialSize) { var deltaWidth = this._getDeltaWidth(args, initialSize); return 864e5 * deltaWidth }, isAllDay: function() { return false }, createTaskPositionMap: function(items, skipSorting) { if (!skipSorting) { this.instance.getAppointmentsInstance()._sortAppointmentsByStartDate(items) } return this.callBase(items) }, _getSortedPositions: function(map, skipSorting) { var result = this.callBase(map); if (!skipSorting) { result = query(result).sortBy("top").thenBy("left").thenBy("i").toArray() } return result }, needCorrectAppointmentDates: function() { return false } }); module.exports = HorizontalMonthLineRenderingStrategy;