devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
81 lines (79 loc) • 3.8 kB
JavaScript
/**
* DevExtreme (cjs/renovation/ui/scheduler/common.js)
* Version: 21.2.3
* Build date: Thu Oct 28 2021
*
* Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
exports.filterAppointments = exports.createTimeZoneCalculator = exports.createDataAccessors = void 0;
var _utils = require("../../../ui/scheduler/utils");
var _utils2 = require("./timeZoneCalculator/utils");
var _utils3 = _interopRequireDefault(require("../../../ui/scheduler/utils.timeZone"));
var _appointmentFilter = require("../../../ui/scheduler/appointments/dataProvider/appointmentFilter");
var _utils4 = require("../../../ui/scheduler/resources/utils");
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var createDataAccessors = function(props) {
var forceIsoDateParsing = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;
var dataAccessors = _utils.utils.dataAccessors.create({
startDate: props.startDateExpr,
endDate: props.endDateExpr,
startDateTimeZone: props.startDateTimeZoneExpr,
endDateTimeZone: props.endDateTimeZoneExpr,
allDay: props.allDayExpr,
text: props.textExpr,
description: props.descriptionExpr,
recurrenceRule: props.recurrenceRuleExpr,
recurrenceException: props.recurrenceExceptionExpr
}, null, forceIsoDateParsing, props.dateSerializationFormat);
dataAccessors.resources = (0, _utils4.createExpressions)(props.resources);
return dataAccessors
};
exports.createDataAccessors = createDataAccessors;
var createTimeZoneCalculator = function(currentTimeZone) {
return new _utils2.TimeZoneCalculator({
getClientOffset: function(date) {
return _utils3.default.getClientTimezoneOffset(date)
},
getCommonOffset: function(date) {
return _utils3.default.calculateTimezoneByValue(currentTimeZone, date)
},
getAppointmentOffset: function(date, appointmentTimezone) {
return _utils3.default.calculateTimezoneByValue(appointmentTimezone, date)
}
})
};
exports.createTimeZoneCalculator = createTimeZoneCalculator;
var filterAppointments = function(appointmentsConfig, dataItems, dataAccessors, timeZoneCalculator, loadedResources, viewDataProvider) {
if (!appointmentsConfig) {
return []
}
var filterOptions = {
resources: appointmentsConfig.resources,
startDayHour: appointmentsConfig.startDayHour,
endDayHour: appointmentsConfig.endDayHour,
appointmentDuration: appointmentsConfig.cellDurationInMinutes,
showAllDayPanel: appointmentsConfig.showAllDayPanel,
supportAllDayRow: appointmentsConfig.supportAllDayRow,
firstDayOfWeek: appointmentsConfig.firstDayOfWeek,
viewType: appointmentsConfig.viewType,
viewDirection: "vertical",
dateRange: appointmentsConfig.dateRange,
groupCount: appointmentsConfig.groupCount,
timeZoneCalculator: timeZoneCalculator,
dataSource: void 0,
dataAccessors: dataAccessors,
loadedResources: loadedResources,
viewDataProvider: viewDataProvider
};
var filterStrategy = appointmentsConfig.isVirtualScrolling ? new _appointmentFilter.AppointmentFilterVirtualStrategy(filterOptions) : new _appointmentFilter.AppointmentFilterBaseStrategy(filterOptions);
var preparedDataItems = filterStrategy.getPreparedDataItems(dataItems);
var filteredItems = filterStrategy.filter(preparedDataItems);
return filteredItems
};
exports.filterAppointments = filterAppointments;