UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

81 lines (79 loc) 3.8 kB
/** * 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/ */ "use strict"; 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;