{"version":3,"sources":["webpack:///./node_modules/devextreme/ui/scheduler/dataStructures.js","webpack:///./node_modules/devextreme/ui/scheduler/dateAdapter.js","webpack:///./node_modules/devextreme/ui/scheduler.js","webpack:///./node_modules/devextreme/ui/scheduler/appointmentPopup.js","webpack:///./node_modules/devextreme/ui/scheduler/compactAppointmentsHelper.js","webpack:///./node_modules/devextreme/ui/scheduler/appointmentDragBehavior.js","webpack:///./node_modules/devextreme/ui/scheduler/base/widgetObserver.js","webpack:///./node_modules/devextreme/ui/scheduler/appointmentAdapter.js","webpack:///./node_modules/devextreme/ui/scheduler/appointmentSettingsGenerator.js","webpack:///./node_modules/devextreme/ui/scheduler/constants.js"],"names":["exports","AppointmentTooltipInfo","appointment","targetedAppointment","arguments","length","color","settings","this","obj","_defineProperties","target","props","i","descriptor","enumerable","configurable","writable","Object","defineProperty","key","default","toMs","__esModule","dateToMilliseconds","DateAdapterCore","source","_source","Date","getTime","Constructor","protoProps","staticProps","_proto","prototype","result","getTimezoneOffset","format","value","setTime","addTime","setMinutes","addMinutes","getMinutes","subtractMinutes","get","_default","date","module","_devices","_interopRequireDefault","_renderer","_date","_deferred","_extend","_iterator","_type","_window","_visibility_change","_message","_popup","_uiScheduler","_ui","APPOINTMENT_POPUP_CLASS","concat","DAY_IN_MS","AppointmentPopup","scheduler","_appointmentForm","state","lastEditData","saveChangesLocker","data","isEmptyText","isEmptyDescription","show","isDoneButtonVisible","isEmptyObject","startDate","option","endDate","fire","popupConfig","_createPopupConfig","_createPopup","_createPopupToolbarItems","hide","isVisible","dispose","_$popup","$element","remove","options","popupElement","addClass","appendTo","_createComponent","_this","height","maxHeight","showCloseButton","showTitle","onHiding","focus","contentTemplate","_createPopupContent","onShowing","e","_onShowing","defaultOptionsRules","device","current","android","_this2","_updateForm","arg","form","popup","appointmentData","cancel","_actions","onAppointmentFormOpening","_processActionResult","canceled","updatePopupFullScreenMode","formElement","_createForm","_createAppointmentFormData","rawAppointment","_createAppointmentAdapter","extend","repeat","recurrenceRule","each","_resourcesManager","getResourcesFromItem","name","element","expr","_dataAccessors","resources","allowTimeZoneEditing","_getAllowTimeZoneEditing","formData","readOnly","_isReadOnly","AppointmentForm","prepareAppointmentFormEditors","triggerResize","bind","changeSize","concatResources","getEditors","create","adapter","createAppointmentAdapter","disabled","_editAppointmentData","_editing","allowUpdating","allDay","calculateStartDate","calculateEndDate","text","description","_this$scheduler$_data","startDateExpr","endDateExpr","updateFormData","setEditorsType","_isDeviceMobile","deviceType","_isPopupFullScreenNeeded","width","_tryGetWindowWidth","hasWindow","window","getWindow","triggerResizeEvent","_getMaxWidth","isRecurrence","isFullScreen","maxWidth","fullScreen","getRecurrenceRule","_this3","isIOs","platform","push","shortcut","location","onClick","_doneButtonClickHandler","saveChanges","showLoadPanel","_this4","deferred","Deferred","validation","validate","_showLoadPanel","when","complete","done","isValid","_hideLoadPanel","resolve","clone","pathTimeZone","oldData","recData","_updatedRecAppointment","isDefined","updateAppointment","addAppointment","promise","saveEditData","_this5","_tryLockSaveChanges","startTime","endTime","inAllDayRow","_workSpace","updateScrollPosition","_unlockSaveChanges","$overlayContent","overlayContent","container","position","of","CompactAppointmentsHelper","_button","_translator","_function_template","_position","_dataStructures","_constants","instance","elements","render","isCompact","items","buttonColor","template","_createTemplate","$button","_createCompactButton","_makeBackgroundColor","colors","_makeBackgroundDarker","_createTooltipInfos","clear","forEach","button","detach","map","index","_items$settings","targetedAdapter","info","sourceAppointment","_onButtonClick","showAppointmentTooltipCore","_getExtraOptionsForTooltip","clickEvent","_clickEvent","onAppointmentClick","dragBehavior","allowDrag","_createTooltipDragBehavior","dropDownAppointmentTemplate","isButtonClick","config","itemData","itemElement","createClickEvent","extendFromObject","itemIndex","workSpace","getWorkSpace","filter","LIST_ITEM_CLASS","isSetCursorOffset","_createDragBehaviorBase","_$$data","LIST_ITEM_DATA_KEY","_","event","itemSettings","_getCollectorOffset","cellWidth","_getCollectorRightOffset","getRenderingStrategyInstance","_isCompactTheme","css","getBoundingRect","apply","_makeBackgroundColorCore","itemsColors","currentItemColor","paintButton","_setPosition","move","top","left","_createCompactButtonElement","type","_renderTemplate","_ref","$container","coordinates","applyOffset","toggleClass","APPOINTMENT_COLLECTOR_CLASS","offset","FunctionTemplate","model","appointmentCount","count","_initButtonTemplate","_getAppointmentTemplate","_templateManager","addDefaultTemplates","appointmentCollector","_createButtonTemplate","getFormatter","append","_draggable","AppointmentDragBehavior","appointments","_appointments","initialPosition","appointmentInfo","isAllDay","onDragStart","notifyObserver","onDragMove","fromComponent","toComponent","getAppointmentElement","onDragEnd","_getItemData","_getAppointmentContainer","getItemData","appointmentElement","dataFromTooltip","itemDataFromTooltip","itemDataFromGrid","getItemSettings","createDragStartHandler","appointmentDragging","createDragMoveHandler","createDragEndHandler","onRemove","createDropHandler","updatedData","invoke","onAdd","addTo","component","immediate","onDrop","updateDragSource","currentAppointment","currentSettings","_setDragSourceAppointment","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_Widget","subClass","superClass","WidgetObserver","constructor","subject","args","observer","_object","_recurrence","PROPERTY_NAMES","AppointmentAdapter","getField","property","setField","pathTimeZoneConversion","isNaN","Error","calculateDate","startDateTimeZone","endDateTimeZone","appointmentTimeZone","timeZoneCalculator","createDate","path","deepExtendArraySafe","serializeDate","clonedAdapter","set","getTimeZoneCalculator","getRecurrenceProcessor","isValidRecurrenceRule","AppointmentSettingsGeneratorVirtualStrategy","AppointmentSettingsGeneratorBaseStrategy","AppointmentSettingsGenerator","_utilsTimeZone","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","Symbol","iterator","from","_iterableToArray","_unsupportedIterableToArray","TypeError","_nonIterableSpread","_slicedToArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","call","next","err","return","_iterableToArrayLimit","_nonIterableRest","minLen","n","toString","slice","test","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_createClass","settingsStrategy","isVirtualScrolling","_proto2","itemResources","_isAllDayAppointment","appointmentList","_createAppointments","_getProcessedByAppointmentTimeZone","_canProcessNotNativeTimezoneDates","_getProcessedNotNativeTimezoneDates","gridAppointmentList","_createGridAppointmentList","_cropAppointmentsByStartDayHour","_getProcessedLongAppointmentsIfRequired","_createAppointmentInfos","isRecurrent","hasAppointmentTimeZone","appointmentOffsets","getOffsets","a","sourceOffsets","startDateOffsetDiff","endDateOffsetDiff","appointmentTakesAllDay","workspace","supportAllDayRow","_createRecurrenceAppointments","item","_item$endDate","resultEndTime","exceptionDate","timeZoneName","isEqualLocalTimeZone","_getProcessedNotNativeDateIfCrossDST","newDate","newDateMinusOneHour","setHours","getHours","common","startDateRange","endDateRange","diffStartDateOffset","diffEndDateOffset","newStartDate","newEndDate","testNewStartDate","testNewEndDate","duration","dateRange","getDateRange","renderingStrategy","getLayoutManager","needSeparateAppointment","resultDates","gridAppointment","maxDate","endDateOfPart","normalizeEndDateByViewEnd","list","getDatesOfInterval","milliseconds","getIntervalDuration","startDatePart","setMilliseconds","offsetDifference","_createExtremeRecurrenceDates","startViewDate","trimTime","endViewDate","daylightOffset","getDaylightOffsetInMs","_createRecurrenceOptions","groupIndex","_this$_createExtremeR2","minRecurrenceDate","maxRecurrenceDate","rule","exception","recurrenceException","min","max","firstDayOfWeek","getFirstDayOfWeek","start","end","getPostProcessedException","diff","generateDates","utcDate","createUTCDateWithLocalOffset","createDateFromUTCWithLocalOffset","_getGroupIndices","_getGroupIndexes","_this6","firstViewDate","_getAppointmentFirstViewDate","startDayHour","_getViewStartDayHour","_getAppointmentResultDate","getStartViewDate","_getCurrentViewOption","resultDate","normalizeDate","roundDateByStartDayHour","gridAppointments","recurrent","_this7","_loop","getCoordinatesByDateInGroup","coordinate","viewDataProvider","_AppointmentSettingsG","_proto3","_this8","isGroupIntersectDateInterval","isVerticalGrouping","_createRecurrentAppointmentInfos","_this9","getCoordinatesByDate","_this10","_this11","_getGroupCount","recurrentInfo","findGroupCellStartDate","_updateGroupIndices","_this12","groupIndices","getGroupStartDate","appointmentCopy","viewDataGroupIndices","getGroupIndices","indexOf","_isVerticalGroupedWorkSpace","AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS","APPOINTMENT_DRAG_SOURCE_CLASS","DIRECTION_APPOINTMENT_CLASSES","REDUCED_APPOINTMENT_PARTS_CLASSES","ALL_DAY_APPOINTMENT_CLASS","EMPTY_APPOINTMENT_CLASS","RECURRENCE_APPOINTMENT_CLASS","REDUCED_APPOINTMENT_ICON","REDUCED_APPOINTMENT_CLASS","APPOINTMENT_SETTINGS_KEY","FIXED_CONTAINER_CLASS","head","body","tail","horizontal","vertical"],"mappings":"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","file":"vendors~1957b033.c4b6dd240f792b96ec73.bundle.js","sourcesContent":["/**\r\n * DevExtreme (ui/scheduler/dataStructures.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.AppointmentTooltipInfo = void 0;\r\nvar AppointmentTooltipInfo = function(appointment) {\r\n var targetedAppointment = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : void 0;\r\n var color = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [];\r\n var settings = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : [];\r\n this.appointment = appointment;\r\n this.targetedAppointment = targetedAppointment;\r\n this.color = color;\r\n this.settings = settings\r\n};\r\nexports.AppointmentTooltipInfo = AppointmentTooltipInfo;\r\n","/**\r\n * DevExtreme (ui/scheduler/dateAdapter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _date = _interopRequireDefault(require(\"../../core/utils/date\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\nvar toMs = _date.default.dateToMilliseconds;\r\nvar DateAdapterCore = function() {\r\n function DateAdapterCore(source) {\r\n this._source = new Date(source.getTime ? source.getTime() : source)\r\n }\r\n var _proto = DateAdapterCore.prototype;\r\n _proto.result = function() {\r\n return this._source\r\n };\r\n _proto.getTimezoneOffset = function() {\r\n var format = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n var value = this._source.getTimezoneOffset();\r\n if (\"minute\" === format) {\r\n return value * toMs(\"minute\")\r\n }\r\n return value\r\n };\r\n _proto.getTime = function() {\r\n return this._source.getTime()\r\n };\r\n _proto.setTime = function(value) {\r\n this._source.setTime(value);\r\n return this\r\n };\r\n _proto.addTime = function(value) {\r\n this._source.setTime(this._source.getTime() + value);\r\n return this\r\n };\r\n _proto.setMinutes = function(value) {\r\n this._source.setMinutes(value);\r\n return this\r\n };\r\n _proto.addMinutes = function(value) {\r\n this._source.setMinutes(this._source.getMinutes() + value);\r\n return this\r\n };\r\n _proto.subtractMinutes = function(value) {\r\n this._source.setMinutes(this._source.getMinutes() - value);\r\n return this\r\n };\r\n _createClass(DateAdapterCore, [{\r\n key: \"source\",\r\n get: function() {\r\n return this._source\r\n }\r\n }]);\r\n return DateAdapterCore\r\n}();\r\nvar DateAdapter = function(date) {\r\n return new DateAdapterCore(date)\r\n};\r\nvar _default = DateAdapter;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scheduler.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _ui = _interopRequireDefault(require(\"./scheduler/ui.scheduler\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _ui.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/scheduler/appointmentPopup.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _date = _interopRequireDefault(require(\"../../core/utils/date\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _visibility_change = require(\"../../events/visibility_change\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _popup = _interopRequireDefault(require(\"../popup\"));\r\nvar _uiScheduler = require(\"./ui.scheduler.appointment_form\");\r\nvar _ui = require(\"./ui.loading\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar toMs = _date.default.dateToMilliseconds;\r\nvar WIDGET_CLASS = \"dx-scheduler\";\r\nvar APPOINTMENT_POPUP_CLASS = \"\".concat(WIDGET_CLASS, \"-appointment-popup\");\r\nvar APPOINTMENT_POPUP_WIDTH = 485;\r\nvar APPOINTMENT_POPUP_WIDTH_WITH_RECURRENCE = 970;\r\nvar APPOINTMENT_POPUP_FULLSCREEN_WINDOW_WIDTH = 1e3;\r\nvar APPOINTMENT_POPUP_FULLSCREEN_WINDOW_WIDTH_MOBILE = 500;\r\nvar APPOINTMENT_POPUP_WIDTH_MOBILE = 350;\r\nvar TOOLBAR_ITEM_AFTER_LOCATION = \"after\";\r\nvar TOOLBAR_ITEM_BEFORE_LOCATION = \"before\";\r\nvar DAY_IN_MS = toMs(\"day\");\r\nvar AppointmentPopup = function() {\r\n function AppointmentPopup(scheduler) {\r\n this.scheduler = scheduler;\r\n this._popup = null;\r\n this._appointmentForm = null;\r\n this.state = {\r\n lastEditData: null,\r\n saveChangesLocker: false,\r\n appointment: {\r\n data: null,\r\n isEmptyText: false,\r\n isEmptyDescription: false\r\n }\r\n }\r\n }\r\n var _proto = AppointmentPopup.prototype;\r\n _proto.show = function() {\r\n var data = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n var isDoneButtonVisible = arguments.length > 1 ? arguments[1] : void 0;\r\n if ((0, _type.isEmptyObject)(data)) {\r\n var startDate = this.scheduler.option(\"currentDate\");\r\n var endDate = new Date(startDate.getTime() + this.scheduler.option(\"cellDuration\") * toMs(\"minute\"));\r\n this.scheduler.fire(\"setField\", \"startDate\", data, startDate);\r\n this.scheduler.fire(\"setField\", \"endDate\", data, endDate)\r\n }\r\n this.state.appointment.data = data;\r\n if (!this._popup) {\r\n var popupConfig = this._createPopupConfig();\r\n this._popup = this._createPopup(popupConfig)\r\n }\r\n this._popup.option(\"toolbarItems\", this._createPopupToolbarItems(isDoneButtonVisible));\r\n this._popup.show()\r\n };\r\n _proto.hide = function() {\r\n this._popup.hide()\r\n };\r\n _proto.isVisible = function() {\r\n return this._popup ? this._popup.option(\"visible\") : false\r\n };\r\n _proto.dispose = function() {\r\n if (this._$popup) {\r\n this._popup.$element().remove();\r\n this._$popup = null\r\n }\r\n };\r\n _proto._createPopup = function(options) {\r\n var popupElement = (0, _renderer.default)(\"
\").addClass(APPOINTMENT_POPUP_CLASS).appendTo(this.scheduler.$element());\r\n return this.scheduler._createComponent(popupElement, _popup.default, options)\r\n };\r\n _proto._createPopupConfig = function() {\r\n var _this = this;\r\n return {\r\n height: \"auto\",\r\n maxHeight: \"100%\",\r\n showCloseButton: false,\r\n showTitle: false,\r\n onHiding: function() {\r\n _this.scheduler.focus()\r\n },\r\n contentTemplate: function() {\r\n return _this._createPopupContent()\r\n },\r\n onShowing: function(e) {\r\n return _this._onShowing(e)\r\n },\r\n defaultOptionsRules: [{\r\n device: function() {\r\n return _devices.default.current().android\r\n },\r\n options: {\r\n showTitle: false\r\n }\r\n }]\r\n }\r\n };\r\n _proto._onShowing = function(e) {\r\n var _this2 = this;\r\n this._updateForm();\r\n var arg = {\r\n form: this._appointmentForm,\r\n popup: this._popup,\r\n appointmentData: this.state.appointment.data,\r\n cancel: false\r\n };\r\n this.scheduler._actions.onAppointmentFormOpening(arg);\r\n this.scheduler._processActionResult(arg, function(canceled) {\r\n if (canceled) {\r\n e.cancel = true\r\n } else {\r\n _this2.updatePopupFullScreenMode()\r\n }\r\n })\r\n };\r\n _proto._createPopupContent = function() {\r\n var formElement = (0, _renderer.default)(\"
\");\r\n this._appointmentForm = this._createForm(formElement);\r\n return formElement\r\n };\r\n _proto._createAppointmentFormData = function(rawAppointment) {\r\n var appointment = this._createAppointmentAdapter(rawAppointment);\r\n var result = (0, _extend.extend)(true, {\r\n repeat: !!appointment.recurrenceRule\r\n }, rawAppointment);\r\n (0, _iterator.each)(this.scheduler._resourcesManager.getResourcesFromItem(result, true) || {}, function(name, value) {\r\n return result[name] = value\r\n });\r\n return result\r\n };\r\n _proto._createForm = function(element) {\r\n var expr = this.scheduler._dataAccessors.expr;\r\n var resources = this.scheduler.option(\"resources\");\r\n var allowTimeZoneEditing = this._getAllowTimeZoneEditing();\r\n var rawAppointment = this.state.appointment.data;\r\n var formData = this._createAppointmentFormData(rawAppointment);\r\n var readOnly = this._isReadOnly(rawAppointment);\r\n _uiScheduler.AppointmentForm.prepareAppointmentFormEditors(expr, this.scheduler, this.triggerResize.bind(this), this.changeSize.bind(this), formData, allowTimeZoneEditing, readOnly);\r\n if (resources && resources.length) {\r\n _uiScheduler.AppointmentForm.concatResources(this.scheduler._resourcesManager.getEditors())\r\n }\r\n return _uiScheduler.AppointmentForm.create(this.scheduler._createComponent.bind(this.scheduler), element, readOnly, formData)\r\n };\r\n _proto._getAllowTimeZoneEditing = function() {\r\n var scheduler = this.scheduler;\r\n return scheduler.option(\"editing.allowTimeZoneEditing\") || scheduler.option(\"editing.allowEditingTimeZones\")\r\n };\r\n _proto._isReadOnly = function(rawAppointment) {\r\n var adapter = this.scheduler.createAppointmentAdapter(rawAppointment);\r\n if (rawAppointment && adapter.disabled) {\r\n return true\r\n }\r\n return this.scheduler._editAppointmentData ? !this.scheduler._editing.allowUpdating : false\r\n };\r\n _proto._createAppointmentAdapter = function(rawAppointment) {\r\n return this.scheduler.createAppointmentAdapter(rawAppointment)\r\n };\r\n _proto._updateForm = function() {\r\n var data = this.state.appointment.data;\r\n var adapter = this._createAppointmentAdapter(data);\r\n var allDay = adapter.allDay;\r\n var startDate = adapter.startDate && adapter.calculateStartDate(\"toAppointment\");\r\n var endDate = adapter.endDate && adapter.calculateEndDate(\"toAppointment\");\r\n this.state.appointment.isEmptyText = void 0 === data || void 0 === adapter.text;\r\n this.state.appointment.isEmptyDescription = void 0 === data || void 0 === adapter.description;\r\n var appointment = this._createAppointmentAdapter(this._createAppointmentFormData(data));\r\n if (void 0 === appointment.text) {\r\n appointment.text = \"\"\r\n }\r\n if (void 0 === appointment.description) {\r\n appointment.description = \"\"\r\n }\r\n if (void 0 === appointment.recurrenceRule) {\r\n appointment.recurrenceRule = \"\"\r\n }\r\n var formData = appointment.source();\r\n if (startDate) {\r\n this.scheduler.fire(\"setField\", \"startDate\", formData, startDate)\r\n }\r\n if (endDate) {\r\n this.scheduler.fire(\"setField\", \"endDate\", formData, endDate)\r\n }\r\n var _this$scheduler$_data = this.scheduler._dataAccessors.expr,\r\n startDateExpr = _this$scheduler$_data.startDateExpr,\r\n endDateExpr = _this$scheduler$_data.endDateExpr;\r\n this._appointmentForm.option(\"readOnly\", this._isReadOnly(data));\r\n _uiScheduler.AppointmentForm.updateFormData(this._appointmentForm, formData, this.scheduler._dataAccessors.expr);\r\n _uiScheduler.AppointmentForm.setEditorsType(this._appointmentForm, startDateExpr, endDateExpr, allDay)\r\n };\r\n _proto._isDeviceMobile = function() {\r\n return \"desktop\" !== _devices.default.current().deviceType\r\n };\r\n _proto._isPopupFullScreenNeeded = function() {\r\n var width = this._tryGetWindowWidth();\r\n if (width) {\r\n return this._isDeviceMobile() ? width < APPOINTMENT_POPUP_FULLSCREEN_WINDOW_WIDTH_MOBILE : width < APPOINTMENT_POPUP_FULLSCREEN_WINDOW_WIDTH\r\n }\r\n return false\r\n };\r\n _proto._tryGetWindowWidth = function() {\r\n if ((0, _window.hasWindow)()) {\r\n var window = (0, _window.getWindow)();\r\n return (0, _renderer.default)(window).width()\r\n }\r\n };\r\n _proto.triggerResize = function() {\r\n this._popup && (0, _visibility_change.triggerResizeEvent)(this._popup.$element())\r\n };\r\n _proto._getMaxWidth = function(isRecurrence) {\r\n if (this._isDeviceMobile()) {\r\n return APPOINTMENT_POPUP_WIDTH_MOBILE\r\n }\r\n return isRecurrence ? APPOINTMENT_POPUP_WIDTH_WITH_RECURRENCE : APPOINTMENT_POPUP_WIDTH\r\n };\r\n _proto.changeSize = function(isRecurrence) {\r\n var isFullScreen = this._isPopupFullScreenNeeded();\r\n this._popup.option({\r\n maxWidth: isFullScreen ? \"100%\" : this._getMaxWidth(isRecurrence),\r\n fullScreen: isFullScreen\r\n })\r\n };\r\n _proto.updatePopupFullScreenMode = function() {\r\n if (!this._appointmentForm) {\r\n return\r\n }\r\n var isRecurrence = _uiScheduler.AppointmentForm.getRecurrenceRule(this._appointmentForm.option(\"formData\"), this.scheduler._dataAccessors.expr);\r\n if (this.isVisible()) {\r\n this.changeSize(isRecurrence)\r\n }\r\n };\r\n _proto._createPopupToolbarItems = function(isDoneButtonVisible) {\r\n var _this3 = this;\r\n var result = [];\r\n var isIOs = \"ios\" === _devices.default.current().platform;\r\n if (isDoneButtonVisible) {\r\n result.push({\r\n shortcut: \"done\",\r\n options: {\r\n text: _message.default.format(\"Done\")\r\n },\r\n location: TOOLBAR_ITEM_AFTER_LOCATION,\r\n onClick: function(e) {\r\n return _this3._doneButtonClickHandler(e)\r\n }\r\n })\r\n }\r\n result.push({\r\n shortcut: \"cancel\",\r\n location: isIOs ? TOOLBAR_ITEM_BEFORE_LOCATION : TOOLBAR_ITEM_AFTER_LOCATION\r\n });\r\n return result\r\n };\r\n _proto.saveChanges = function(showLoadPanel) {\r\n var _this4 = this;\r\n var deferred = new _deferred.Deferred;\r\n var validation = this._appointmentForm.validate();\r\n var state = this.state.appointment;\r\n showLoadPanel && this._showLoadPanel();\r\n (0, _deferred.when)(validation && validation.complete || validation).done(function(validation) {\r\n if (validation && !validation.isValid) {\r\n _this4._hideLoadPanel();\r\n deferred.resolve(false);\r\n return\r\n }\r\n var formData = _this4._appointmentForm.option(\"formData\");\r\n var adapter = _this4.scheduler.createAppointmentAdapter(formData);\r\n var appointment = adapter.clone({\r\n pathTimeZone: \"fromAppointment\"\r\n }).source();\r\n var oldData = _this4.scheduler._editAppointmentData;\r\n var recData = _this4.scheduler._updatedRecAppointment;\r\n if (state.isEmptyText && \"\" === adapter.text) {\r\n delete appointment.text\r\n }\r\n if (state.isEmptyDescription && \"\" === adapter.description) {\r\n delete appointment.description\r\n }\r\n if (void 0 === state.data.recurrenceRule && \"\" === adapter.recurrenceRule) {\r\n delete appointment.recurrenceRule\r\n }\r\n if ((0, _type.isDefined)(appointment.repeat)) {\r\n delete appointment.repeat\r\n }\r\n if (oldData && !recData) {\r\n _this4.scheduler.updateAppointment(oldData, appointment).done(deferred.resolve)\r\n } else {\r\n if (recData) {\r\n _this4.scheduler.updateAppointment(oldData, recData);\r\n delete _this4.scheduler._updatedRecAppointment\r\n }\r\n _this4.scheduler.addAppointment(appointment).done(deferred.resolve)\r\n }\r\n deferred.done(function() {\r\n _this4._hideLoadPanel();\r\n _this4.state.lastEditData = appointment\r\n })\r\n });\r\n return deferred.promise()\r\n };\r\n _proto._doneButtonClickHandler = function(e) {\r\n e.cancel = true;\r\n this.saveEditData()\r\n };\r\n _proto.saveEditData = function() {\r\n var _this5 = this;\r\n var deferred = new _deferred.Deferred;\r\n if (this._tryLockSaveChanges()) {\r\n (0, _deferred.when)(this.saveChanges(true)).done(function() {\r\n if (_this5.state.lastEditData) {\r\n var adapter = _this5.scheduler.createAppointmentAdapter(_this5.state.lastEditData);\r\n var startDate = adapter.startDate,\r\n endDate = adapter.endDate,\r\n allDay = adapter.allDay;\r\n var startTime = startDate.getTime();\r\n var endTime = endDate.getTime();\r\n var inAllDayRow = allDay || endTime - startTime >= DAY_IN_MS;\r\n _this5.scheduler._workSpace.updateScrollPosition(startDate, _this5.scheduler._resourcesManager.getResourcesFromItem(_this5.state.lastEditData, true), inAllDayRow);\r\n _this5.state.lastEditData = null\r\n }\r\n _this5._unlockSaveChanges();\r\n deferred.resolve()\r\n })\r\n }\r\n return deferred.promise()\r\n };\r\n _proto._hideLoadPanel = function() {\r\n (0, _ui.hide)()\r\n };\r\n _proto._showLoadPanel = function() {\r\n var $overlayContent = this._popup.overlayContent();\r\n (0, _ui.show)({\r\n container: $overlayContent,\r\n position: {\r\n of: $overlayContent\r\n }\r\n })\r\n };\r\n _proto._tryLockSaveChanges = function() {\r\n if (false === this.state.saveChangesLocker) {\r\n this.state.saveChangesLocker = true;\r\n return true\r\n }\r\n return false\r\n };\r\n _proto._unlockSaveChanges = function() {\r\n this.state.saveChangesLocker = false\r\n };\r\n return AppointmentPopup\r\n}();\r\nexports.default = AppointmentPopup;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scheduler/compactAppointmentsHelper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.CompactAppointmentsHelper = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _function_template = require(\"../../core/templates/function_template\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _dataStructures = require(\"./dataStructures\");\r\nvar _constants = require(\"./constants\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar APPOINTMENT_COLLECTOR_CLASS = \"dx-scheduler-appointment-collector\";\r\nvar COMPACT_APPOINTMENT_COLLECTOR_CLASS = APPOINTMENT_COLLECTOR_CLASS + \"-compact\";\r\nvar APPOINTMENT_COLLECTOR_CONTENT_CLASS = APPOINTMENT_COLLECTOR_CLASS + \"-content\";\r\nvar WEEK_VIEW_COLLECTOR_OFFSET = 5;\r\nvar COMPACT_THEME_WEEK_VIEW_COLLECTOR_OFFSET = 1;\r\nvar CompactAppointmentsHelper = function() {\r\n function CompactAppointmentsHelper(instance) {\r\n this.instance = instance;\r\n this.elements = []\r\n }\r\n var _proto = CompactAppointmentsHelper.prototype;\r\n _proto.render = function(options) {\r\n var isCompact = options.isCompact,\r\n items = options.items,\r\n buttonColor = options.buttonColor;\r\n var template = this._createTemplate(items.data.length, isCompact);\r\n var button = this._createCompactButton(template, options);\r\n var $button = button.$element();\r\n this._makeBackgroundColor($button, items.colors, buttonColor);\r\n this._makeBackgroundDarker($button);\r\n this.elements.push($button);\r\n $button.data(\"items\", this._createTooltipInfos(items));\r\n return $button\r\n };\r\n _proto.clear = function() {\r\n this.elements.forEach(function(button) {\r\n button.detach();\r\n button.remove()\r\n });\r\n this.elements = []\r\n };\r\n _proto._createTooltipInfos = function(items) {\r\n var _this = this;\r\n return items.data.map(function(appointment, index) {\r\n var _items$settings;\r\n var targetedAdapter = _this.instance.createAppointmentAdapter(appointment).clone();\r\n if ((null === (_items$settings = items.settings) || void 0 === _items$settings ? void 0 : _items$settings.length) > 0) {\r\n var info = items.settings[index].info;\r\n targetedAdapter.startDate = info.sourceAppointment.startDate;\r\n targetedAdapter.endDate = info.sourceAppointment.endDate\r\n }\r\n return new _dataStructures.AppointmentTooltipInfo(appointment, targetedAdapter.source(), items.colors[index], items.settings[index])\r\n })\r\n };\r\n _proto._onButtonClick = function(e, options) {\r\n var $button = (0, _renderer.default)(e.element);\r\n this.instance.showAppointmentTooltipCore($button, $button.data(\"items\"), this._getExtraOptionsForTooltip(options))\r\n };\r\n _proto._getExtraOptionsForTooltip = function(options) {\r\n return {\r\n clickEvent: this._clickEvent(options.onAppointmentClick).bind(this),\r\n dragBehavior: options.allowDrag && this._createTooltipDragBehavior().bind(this),\r\n dropDownAppointmentTemplate: this.instance.option().dropDownAppointmentTemplate,\r\n isButtonClick: true\r\n }\r\n };\r\n _proto._clickEvent = function(onAppointmentClick) {\r\n var _this2 = this;\r\n return function(e) {\r\n var config = {\r\n itemData: e.itemData.appointment,\r\n itemElement: e.itemElement\r\n };\r\n var createClickEvent = (0, _extend.extendFromObject)(_this2.instance.fire(\"mapAppointmentFields\", config), e, false);\r\n delete createClickEvent.itemData;\r\n delete createClickEvent.itemIndex;\r\n delete createClickEvent.itemElement;\r\n onAppointmentClick(createClickEvent)\r\n }\r\n };\r\n _proto._createTooltipDragBehavior = function() {\r\n var _this3 = this;\r\n return function(e) {\r\n var $element = (0, _renderer.default)(e.element);\r\n var workSpace = _this3.instance.getWorkSpace();\r\n var getItemData = function(itemElement) {\r\n var _$$data;\r\n return null === (_$$data = (0, _renderer.default)(itemElement).data(_constants.LIST_ITEM_DATA_KEY)) || void 0 === _$$data ? void 0 : _$$data.appointment\r\n };\r\n var getItemSettings = function(_, event) {\r\n return event.itemSettings\r\n };\r\n var options = {\r\n filter: \".\".concat(_constants.LIST_ITEM_CLASS),\r\n isSetCursorOffset: true\r\n };\r\n workSpace._createDragBehaviorBase($element, getItemData, getItemSettings, options)\r\n }\r\n };\r\n _proto._getCollectorOffset = function(width, cellWidth) {\r\n return cellWidth - width - this._getCollectorRightOffset()\r\n };\r\n _proto._getCollectorRightOffset = function() {\r\n return this.instance.getRenderingStrategyInstance()._isCompactTheme() ? COMPACT_THEME_WEEK_VIEW_COLLECTOR_OFFSET : WEEK_VIEW_COLLECTOR_OFFSET\r\n };\r\n _proto._makeBackgroundDarker = function(button) {\r\n button.css(\"boxShadow\", \"inset \".concat((0, _position.getBoundingRect)(button.get(0)).width, \"px 0 0 0 rgba(0, 0, 0, 0.3)\"))\r\n };\r\n _proto._makeBackgroundColor = function($button, colors, color) {\r\n _deferred.when.apply(null, colors).done(function() {\r\n this._makeBackgroundColorCore($button, color, arguments)\r\n }.bind(this))\r\n };\r\n _proto._makeBackgroundColorCore = function($button, color, itemsColors) {\r\n var paintButton = true;\r\n var currentItemColor;\r\n color && color.done(function(color) {\r\n if (itemsColors.length) {\r\n currentItemColor = itemsColors[0];\r\n for (var i = 1; i < itemsColors.length; i++) {\r\n if (currentItemColor !== itemsColors[i]) {\r\n paintButton = false;\r\n break\r\n }\r\n currentItemColor = color\r\n }\r\n }\r\n color && paintButton && $button.css(\"backgroundColor\", color)\r\n }.bind(this))\r\n };\r\n _proto._setPosition = function(element, position) {\r\n (0, _translator.move)(element, {\r\n top: position.top,\r\n left: position.left\r\n })\r\n };\r\n _proto._createCompactButton = function(template, options) {\r\n var _this4 = this;\r\n var $button = this._createCompactButtonElement(options);\r\n return this.instance._createComponent($button, _button.default, {\r\n type: \"default\",\r\n width: options.width,\r\n height: options.height,\r\n onClick: function(e) {\r\n return _this4._onButtonClick(e, options)\r\n },\r\n template: this._renderTemplate(template, options.items, options.isCompact)\r\n })\r\n };\r\n _proto._createCompactButtonElement = function(_ref) {\r\n var isCompact = _ref.isCompact,\r\n $container = _ref.$container,\r\n width = _ref.width,\r\n coordinates = _ref.coordinates,\r\n applyOffset = _ref.applyOffset,\r\n cellWidth = _ref.cellWidth;\r\n var result = (0, _renderer.default)(\"
\").addClass(APPOINTMENT_COLLECTOR_CLASS).toggleClass(COMPACT_APPOINTMENT_COLLECTOR_CLASS, isCompact).appendTo($container);\r\n var offset = applyOffset ? this._getCollectorOffset(width, cellWidth) : 0;\r\n this._setPosition(result, {\r\n top: coordinates.top,\r\n left: coordinates.left + offset\r\n });\r\n return result\r\n };\r\n _proto._renderTemplate = function(template, items, isCompact) {\r\n return new _function_template.FunctionTemplate(function(options) {\r\n return template.render({\r\n model: {\r\n appointmentCount: items.data.length,\r\n isCompact: isCompact\r\n },\r\n container: options.container\r\n })\r\n })\r\n };\r\n _proto._createTemplate = function(count, isCompact) {\r\n this._initButtonTemplate(count, isCompact);\r\n return this.instance._getAppointmentTemplate(\"appointmentCollectorTemplate\")\r\n };\r\n _proto._initButtonTemplate = function(count, isCompact) {\r\n var _this5 = this;\r\n this.instance._templateManager.addDefaultTemplates({\r\n appointmentCollector: new _function_template.FunctionTemplate(function(options) {\r\n return _this5._createButtonTemplate(count, (0, _renderer.default)(options.container), isCompact)\r\n })\r\n })\r\n };\r\n _proto._createButtonTemplate = function(appointmentCount, element, isCompact) {\r\n var text = isCompact ? appointmentCount : _message.default.getFormatter(\"dxScheduler-moreAppointments\")(appointmentCount);\r\n return element.append((0, _renderer.default)(\"\").text(text)).addClass(APPOINTMENT_COLLECTOR_CONTENT_CLASS)\r\n };\r\n return CompactAppointmentsHelper\r\n}();\r\nexports.CompactAppointmentsHelper = CompactAppointmentsHelper;\r\n","/**\r\n * DevExtreme (ui/scheduler/appointmentDragBehavior.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _draggable = _interopRequireDefault(require(\"../draggable\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _constants = require(\"./constants\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar APPOINTMENT_ITEM_CLASS = \"dx-scheduler-appointment\";\r\nvar AppointmentDragBehavior = function() {\r\n function AppointmentDragBehavior(scheduler) {\r\n this.scheduler = scheduler;\r\n this.appointments = scheduler._appointments;\r\n this.initialPosition = {\r\n left: 0,\r\n top: 0\r\n };\r\n this.appointmentInfo = null\r\n }\r\n var _proto = AppointmentDragBehavior.prototype;\r\n _proto.isAllDay = function(appointment) {\r\n return appointment.data(\"dxAppointmentSettings\").allDay\r\n };\r\n _proto.onDragStart = function(e) {\r\n var itemSettings = e.itemSettings,\r\n itemData = e.itemData,\r\n initialPosition = e.initialPosition;\r\n this.initialPosition = initialPosition;\r\n this.appointmentInfo = {\r\n appointment: itemData,\r\n settings: itemSettings\r\n };\r\n this.appointments.notifyObserver(\"hideAppointmentTooltip\")\r\n };\r\n _proto.onDragMove = function(e) {\r\n if (e.fromComponent !== e.toComponent) {\r\n this.appointments.notifyObserver(\"removeDroppableCellClass\")\r\n }\r\n };\r\n _proto.getAppointmentElement = function(e) {\r\n var itemElement = e.event.data && e.event.data.itemElement || e.itemElement;\r\n return (0, _renderer.default)(itemElement)\r\n };\r\n _proto.onDragEnd = function(e) {\r\n var element = this.getAppointmentElement(e);\r\n var rawAppointment = this.appointments._getItemData(element);\r\n var container = this.appointments._getAppointmentContainer(this.isAllDay(element));\r\n container.append(element);\r\n this.appointments.notifyObserver(\"updateAppointmentAfterDrag\", {\r\n event: e,\r\n element: element,\r\n rawAppointment: rawAppointment,\r\n coordinates: this.initialPosition\r\n })\r\n };\r\n _proto.getItemData = function(appointmentElement) {\r\n var dataFromTooltip = (0, _renderer.default)(appointmentElement).data(_constants.LIST_ITEM_DATA_KEY);\r\n var itemDataFromTooltip = null === dataFromTooltip || void 0 === dataFromTooltip ? void 0 : dataFromTooltip.appointment;\r\n var itemDataFromGrid = this.appointments._getItemData(appointmentElement);\r\n return itemDataFromTooltip || itemDataFromGrid\r\n };\r\n _proto.getItemSettings = function(appointment) {\r\n var itemData = (0, _renderer.default)(appointment).data(_constants.LIST_ITEM_DATA_KEY);\r\n return itemData && itemData.settings || []\r\n };\r\n _proto.createDragStartHandler = function(options, appointmentDragging) {\r\n var _this = this;\r\n return function(e) {\r\n e.itemData = _this.getItemData(e.itemElement);\r\n e.itemSettings = _this.getItemSettings(e.itemElement);\r\n appointmentDragging.onDragStart && appointmentDragging.onDragStart(e);\r\n if (!e.cancel) {\r\n options.onDragStart(e)\r\n }\r\n }\r\n };\r\n _proto.createDragMoveHandler = function(options, appointmentDragging) {\r\n return function(e) {\r\n appointmentDragging.onDragMove && appointmentDragging.onDragMove(e);\r\n if (!e.cancel) {\r\n options.onDragMove(e)\r\n }\r\n }\r\n };\r\n _proto.createDragEndHandler = function(options, appointmentDragging) {\r\n var _this2 = this;\r\n return function(e) {\r\n _this2.appointmentInfo = null;\r\n appointmentDragging.onDragEnd && appointmentDragging.onDragEnd(e);\r\n if (!e.cancel) {\r\n options.onDragEnd(e);\r\n if (e.fromComponent !== e.toComponent) {\r\n appointmentDragging.onRemove && appointmentDragging.onRemove(e)\r\n }\r\n }\r\n }\r\n };\r\n _proto.createDropHandler = function(appointmentDragging) {\r\n var _this3 = this;\r\n return function(e) {\r\n var updatedData = _this3.appointments.invoke(\"getUpdatedData\", e.itemData);\r\n e.itemData = (0, _extend.extend)({}, e.itemData, updatedData);\r\n if (e.fromComponent !== e.toComponent) {\r\n appointmentDragging.onAdd && appointmentDragging.onAdd(e)\r\n }\r\n }\r\n };\r\n _proto.addTo = function(container, config) {\r\n var appointmentDragging = this.scheduler.option(\"appointmentDragging\") || {};\r\n var options = (0, _extend.extend)({\r\n component: this.scheduler,\r\n contentTemplate: null,\r\n filter: \".\".concat(APPOINTMENT_ITEM_CLASS),\r\n immediate: false,\r\n onDragStart: this.onDragStart.bind(this),\r\n onDragMove: this.onDragMove.bind(this),\r\n onDragEnd: this.onDragEnd.bind(this)\r\n }, config);\r\n this.appointments._createComponent(container, _draggable.default, (0, _extend.extend)({}, options, appointmentDragging, {\r\n onDragStart: this.createDragStartHandler(options, appointmentDragging),\r\n onDragMove: this.createDragMoveHandler(options, appointmentDragging),\r\n onDragEnd: this.createDragEndHandler(options, appointmentDragging),\r\n onDrop: this.createDropHandler(appointmentDragging)\r\n }))\r\n };\r\n _proto.updateDragSource = function(appointment, settings) {\r\n var appointmentInfo = this.appointmentInfo;\r\n if (appointmentInfo || appointment) {\r\n var currentAppointment = appointment || appointmentInfo.appointment;\r\n var currentSettings = settings || appointmentInfo.settings;\r\n this.appointments._setDragSourceAppointment(currentAppointment, currentSettings)\r\n }\r\n };\r\n return AppointmentDragBehavior\r\n}();\r\nexports.default = AppointmentDragBehavior;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scheduler/base/widgetObserver.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _ui = _interopRequireDefault(require(\"../../widget/ui.widget\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar WidgetObserver = function(_Widget) {\r\n _inheritsLoose(WidgetObserver, _Widget);\r\n\r\n function WidgetObserver() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = WidgetObserver.prototype;\r\n _proto.notifyObserver = function(subject, args) {\r\n var observer = this.option(\"observer\");\r\n if (observer) {\r\n observer.fire(subject, args)\r\n }\r\n };\r\n _proto.invoke = function() {\r\n var observer = this.option(\"observer\");\r\n if (observer) {\r\n return observer.fire.apply(observer, arguments)\r\n }\r\n };\r\n return WidgetObserver\r\n}(_ui.default);\r\nvar _default = WidgetObserver;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scheduler/appointmentAdapter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _object = require(\"../../core/utils/object\");\r\nvar _recurrence = require(\"./recurrence\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\nvar PROPERTY_NAMES = {\r\n startDate: \"startDate\",\r\n endDate: \"endDate\",\r\n allDay: \"allDay\",\r\n text: \"text\",\r\n description: \"description\",\r\n startDateTimeZone: \"startDateTimeZone\",\r\n endDateTimeZone: \"endDateTimeZone\",\r\n recurrenceRule: \"recurrenceRule\",\r\n recurrenceException: \"recurrenceException\",\r\n disabled: \"disabled\"\r\n};\r\nvar AppointmentAdapter = function() {\r\n function AppointmentAdapter(rawAppointment, options) {\r\n this.rawAppointment = rawAppointment;\r\n this.options = options\r\n }\r\n var _proto = AppointmentAdapter.prototype;\r\n _proto.getField = function(property) {\r\n return this.options.getField(this.rawAppointment, property)\r\n };\r\n _proto.setField = function(property, value) {\r\n return this.options.setField(this.rawAppointment, property, value)\r\n };\r\n _proto.calculateStartDate = function(pathTimeZoneConversion) {\r\n if (!this.startDate || isNaN(this.startDate.getTime())) {\r\n throw _ui.default.Error(\"E1032\", this.text)\r\n }\r\n return this.calculateDate(this.startDate, this.startDateTimeZone, pathTimeZoneConversion)\r\n };\r\n _proto.calculateEndDate = function(pathTimeZoneConversion) {\r\n return this.calculateDate(this.endDate, this.endDateTimeZone, pathTimeZoneConversion)\r\n };\r\n _proto.calculateDate = function(date, appointmentTimeZone, pathTimeZoneConversion) {\r\n if (!date) {\r\n return\r\n }\r\n return this.timeZoneCalculator.createDate(date, {\r\n appointmentTimeZone: appointmentTimeZone,\r\n path: pathTimeZoneConversion\r\n })\r\n };\r\n _proto.clone = function() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : void 0;\r\n var result = new AppointmentAdapter((0, _object.deepExtendArraySafe)({}, this.rawAppointment), this.options);\r\n if (null !== options && void 0 !== options && options.pathTimeZone) {\r\n result.startDate = result.calculateStartDate(options.pathTimeZone);\r\n result.endDate = result.calculateEndDate(options.pathTimeZone)\r\n }\r\n return result\r\n };\r\n _proto.source = function() {\r\n var serializeDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n if (serializeDate) {\r\n var clonedAdapter = this.clone();\r\n clonedAdapter.startDate = this.startDate;\r\n clonedAdapter.endDate = this.endDate;\r\n return clonedAdapter.source()\r\n }\r\n return (0, _extend.extend)({}, this.rawAppointment)\r\n };\r\n _createClass(AppointmentAdapter, [{\r\n key: \"duration\",\r\n get: function() {\r\n return this.endDate ? this.endDate - this.startDate : 0\r\n }\r\n }, {\r\n key: \"startDate\",\r\n get: function() {\r\n var result = this.getField(PROPERTY_NAMES.startDate);\r\n return void 0 === result ? result : new Date(result)\r\n },\r\n set: function(value) {\r\n this.setField(PROPERTY_NAMES.startDate, value)\r\n }\r\n }, {\r\n key: \"endDate\",\r\n get: function() {\r\n var result = this.getField(PROPERTY_NAMES.endDate);\r\n return void 0 === result ? result : new Date(result)\r\n },\r\n set: function(value) {\r\n this.setField(PROPERTY_NAMES.endDate, value)\r\n }\r\n }, {\r\n key: \"allDay\",\r\n get: function() {\r\n return this.getField(PROPERTY_NAMES.allDay)\r\n },\r\n set: function(value) {\r\n this.setField(PROPERTY_NAMES.allDay, value)\r\n }\r\n }, {\r\n key: \"text\",\r\n get: function() {\r\n return this.getField(PROPERTY_NAMES.text)\r\n },\r\n set: function(value) {\r\n this.setField(PROPERTY_NAMES.text, value)\r\n }\r\n }, {\r\n key: \"description\",\r\n get: function() {\r\n return this.getField(PROPERTY_NAMES.description)\r\n },\r\n set: function(value) {\r\n this.setField(PROPERTY_NAMES.description, value)\r\n }\r\n }, {\r\n key: \"startDateTimeZone\",\r\n get: function() {\r\n return this.getField(PROPERTY_NAMES.startDateTimeZone)\r\n }\r\n }, {\r\n key: \"endDateTimeZone\",\r\n get: function() {\r\n return this.getField(PROPERTY_NAMES.endDateTimeZone)\r\n }\r\n }, {\r\n key: \"recurrenceRule\",\r\n get: function() {\r\n return this.getField(PROPERTY_NAMES.recurrenceRule)\r\n },\r\n set: function(value) {\r\n this.setField(PROPERTY_NAMES.recurrenceRule, value)\r\n }\r\n }, {\r\n key: \"recurrenceException\",\r\n get: function() {\r\n return this.getField(PROPERTY_NAMES.recurrenceException)\r\n },\r\n set: function(value) {\r\n this.setField(PROPERTY_NAMES.recurrenceException, value)\r\n }\r\n }, {\r\n key: \"disabled\",\r\n get: function() {\r\n return !!this.getField(PROPERTY_NAMES.disabled)\r\n }\r\n }, {\r\n key: \"timeZoneCalculator\",\r\n get: function() {\r\n return this.options.getTimeZoneCalculator()\r\n }\r\n }, {\r\n key: \"isRecurrent\",\r\n get: function() {\r\n return (0, _recurrence.getRecurrenceProcessor)().isValidRecurrenceRule(this.recurrenceRule)\r\n }\r\n }]);\r\n return AppointmentAdapter\r\n}();\r\nvar _default = AppointmentAdapter;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scheduler/appointmentSettingsGenerator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.AppointmentSettingsGeneratorVirtualStrategy = exports.AppointmentSettingsGeneratorBaseStrategy = exports.AppointmentSettingsGenerator = void 0;\r\nvar _date = _interopRequireDefault(require(\"../../core/utils/date\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _recurrence = require(\"./recurrence\");\r\nvar _utilsTimeZone = _interopRequireDefault(require(\"./utils.timeZone.js\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\n\r\nfunction _slicedToArray(arr, i) {\r\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest()\r\n}\r\n\r\nfunction _nonIterableRest() {\r\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\n\r\nfunction _iterableToArrayLimit(arr, i) {\r\n var _i = arr && (\"undefined\" !== typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]);\r\n if (null == _i) {\r\n return\r\n }\r\n var _arr = [];\r\n var _n = true;\r\n var _d = false;\r\n var _s, _e;\r\n try {\r\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\r\n _arr.push(_s.value);\r\n if (i && _arr.length === i) {\r\n break\r\n }\r\n }\r\n } catch (err) {\r\n _d = true;\r\n _e = err\r\n } finally {\r\n try {\r\n if (!_n && null != _i.return) {\r\n _i.return()\r\n }\r\n } finally {\r\n if (_d) {\r\n throw _e\r\n }\r\n }\r\n }\r\n return _arr\r\n}\r\n\r\nfunction _arrayWithHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return arr\r\n }\r\n}\r\n\r\nfunction ownKeys(object, enumerableOnly) {\r\n var keys = Object.keys(object);\r\n if (Object.getOwnPropertySymbols) {\r\n var symbols = Object.getOwnPropertySymbols(object);\r\n if (enumerableOnly) {\r\n symbols = symbols.filter(function(sym) {\r\n return Object.getOwnPropertyDescriptor(object, sym).enumerable\r\n })\r\n }\r\n keys.push.apply(keys, symbols)\r\n }\r\n return keys\r\n}\r\n\r\nfunction _objectSpread(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = null != arguments[i] ? arguments[i] : {};\r\n if (i % 2) {\r\n ownKeys(Object(source), true).forEach(function(key) {\r\n _defineProperty(target, key, source[key])\r\n })\r\n } else {\r\n if (Object.getOwnPropertyDescriptors) {\r\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source))\r\n } else {\r\n ownKeys(Object(source)).forEach(function(key) {\r\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\r\n })\r\n }\r\n }\r\n }\r\n return target\r\n}\r\n\r\nfunction _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\nvar toMs = _date.default.dateToMilliseconds;\r\nvar AppointmentSettingsGenerator = function() {\r\n function AppointmentSettingsGenerator(scheduler) {\r\n this.scheduler = scheduler;\r\n this.settingsStrategy = this.scheduler.isVirtualScrolling() ? new AppointmentSettingsGeneratorVirtualStrategy(this.scheduler) : new AppointmentSettingsGeneratorBaseStrategy(this.scheduler)\r\n }\r\n var _proto = AppointmentSettingsGenerator.prototype;\r\n _proto.create = function(rawAppointment) {\r\n return this.settingsStrategy.create(rawAppointment)\r\n };\r\n return AppointmentSettingsGenerator\r\n}();\r\nexports.AppointmentSettingsGenerator = AppointmentSettingsGenerator;\r\nvar AppointmentSettingsGeneratorBaseStrategy = function() {\r\n function AppointmentSettingsGeneratorBaseStrategy(scheduler) {\r\n this.scheduler = scheduler\r\n }\r\n var _proto2 = AppointmentSettingsGeneratorBaseStrategy.prototype;\r\n _proto2.create = function(rawAppointment) {\r\n var scheduler = this.scheduler;\r\n var appointment = scheduler.createAppointmentAdapter(rawAppointment);\r\n var itemResources = scheduler._resourcesManager.getResourcesFromItem(rawAppointment);\r\n var isAllDay = this._isAllDayAppointment(rawAppointment);\r\n var appointmentList = this._createAppointments(appointment, itemResources);\r\n appointmentList = this._getProcessedByAppointmentTimeZone(appointmentList, appointment);\r\n if (this._canProcessNotNativeTimezoneDates(appointment)) {\r\n appointmentList = this._getProcessedNotNativeTimezoneDates(appointmentList, appointment)\r\n }\r\n var gridAppointmentList = this._createGridAppointmentList(appointmentList, appointment);\r\n gridAppointmentList = this._cropAppointmentsByStartDayHour(gridAppointmentList, rawAppointment, isAllDay);\r\n gridAppointmentList = this._getProcessedLongAppointmentsIfRequired(gridAppointmentList, appointment);\r\n var appointmentInfos = this._createAppointmentInfos(gridAppointmentList, itemResources, isAllDay, appointment.isRecurrent);\r\n return appointmentInfos\r\n };\r\n _proto2._getProcessedByAppointmentTimeZone = function(appointmentList, appointment) {\r\n var _this = this;\r\n var hasAppointmentTimeZone = !(0, _type.isEmptyObject)(appointment.startDateTimeZone) || !(0, _type.isEmptyObject)(appointment.endDateTimeZone);\r\n if (appointmentList.length > 1 && hasAppointmentTimeZone) {\r\n var appointmentOffsets = {\r\n startDate: this.timeZoneCalculator.getOffsets(appointment.startDate, appointment.startDateTimeZone),\r\n endDate: this.timeZoneCalculator.getOffsets(appointment.endDate, appointment.endDateTimeZone)\r\n };\r\n appointmentList.forEach(function(a) {\r\n var sourceOffsets = {\r\n startDate: _this.timeZoneCalculator.getOffsets(a.startDate, appointment.startDateTimeZone),\r\n endDate: _this.timeZoneCalculator.getOffsets(a.endDate, appointment.endDateTimeZone)\r\n };\r\n var startDateOffsetDiff = appointmentOffsets.startDate.appointment - sourceOffsets.startDate.appointment;\r\n var endDateOffsetDiff = appointmentOffsets.endDate.appointment - sourceOffsets.endDate.appointment;\r\n if (0 !== startDateOffsetDiff) {\r\n a.startDate = new Date(a.startDate.getTime() + startDateOffsetDiff * toMs(\"hour\"))\r\n }\r\n if (0 !== endDateOffsetDiff) {\r\n a.endDate = new Date(a.endDate.getTime() + endDateOffsetDiff * toMs(\"hour\"))\r\n }\r\n })\r\n }\r\n return appointmentList\r\n };\r\n _proto2._isAllDayAppointment = function(rawAppointment) {\r\n return this.scheduler.appointmentTakesAllDay(rawAppointment) && this.workspace.supportAllDayRow()\r\n };\r\n _proto2._createAppointments = function(appointment, resources) {\r\n var appointments = this._createRecurrenceAppointments(appointment, resources);\r\n if (!appointment.isRecurrent && 0 === appointments.length) {\r\n appointments.push({\r\n startDate: appointment.startDate,\r\n endDate: appointment.endDate\r\n })\r\n }\r\n appointments = appointments.map(function(item) {\r\n var _item$endDate;\r\n var resultEndTime = null === (_item$endDate = item.endDate) || void 0 === _item$endDate ? void 0 : _item$endDate.getTime();\r\n if (item.startDate.getTime() === resultEndTime) {\r\n item.endDate.setTime(resultEndTime + toMs(\"minute\"))\r\n }\r\n return _objectSpread(_objectSpread({}, item), {}, {\r\n exceptionDate: new Date(item.startDate)\r\n })\r\n });\r\n return appointments\r\n };\r\n _proto2._canProcessNotNativeTimezoneDates = function(appointment) {\r\n var timeZoneName = this.scheduler.option(\"timeZone\");\r\n var isTimeZoneSet = !(0, _type.isEmptyObject)(timeZoneName);\r\n if (!isTimeZoneSet) {\r\n return false\r\n }\r\n if (!appointment.isRecurrent) {\r\n return false\r\n }\r\n return !_utilsTimeZone.default.isEqualLocalTimeZone(timeZoneName, appointment.startDate)\r\n };\r\n _proto2._getProcessedNotNativeDateIfCrossDST = function(date, offset) {\r\n if (offset < 0) {\r\n var newDate = new Date(date);\r\n var newDateMinusOneHour = new Date(newDate);\r\n newDateMinusOneHour.setHours(newDateMinusOneHour.getHours() - 1);\r\n var newDateOffset = this.timeZoneCalculator.getOffsets(newDate).common;\r\n var newDateMinusOneHourOffset = this.timeZoneCalculator.getOffsets(newDateMinusOneHour).common;\r\n if (newDateOffset !== newDateMinusOneHourOffset) {\r\n return 0\r\n }\r\n }\r\n return offset\r\n };\r\n _proto2._getProcessedNotNativeTimezoneDates = function(appointmentList, appointment) {\r\n var _this2 = this;\r\n var startDateRange = appointment.startDate;\r\n var endDateRange = appointmentList[appointmentList.length - 1].endDate;\r\n var startDateRangeOffset = this.timeZoneCalculator.getOffsets(startDateRange).common;\r\n var endDateRangeOffset = this.timeZoneCalculator.getOffsets(endDateRange).common;\r\n var isChangeOffsetInRange = startDateRangeOffset !== endDateRangeOffset;\r\n if (isChangeOffsetInRange) {\r\n return appointmentList.map(function(a) {\r\n var diffStartDateOffset = _this2.timeZoneCalculator.getOffsets(appointment.startDate).common - _this2.timeZoneCalculator.getOffsets(a.startDate).common;\r\n var diffEndDateOffset = _this2.timeZoneCalculator.getOffsets(appointment.endDate).common - _this2.timeZoneCalculator.getOffsets(a.endDate).common;\r\n diffStartDateOffset = _this2._getProcessedNotNativeDateIfCrossDST(a.startDate, diffStartDateOffset);\r\n diffEndDateOffset = _this2._getProcessedNotNativeDateIfCrossDST(a.endDate, diffEndDateOffset);\r\n var newStartDate = new Date(a.startDate.getTime() + diffStartDateOffset * toMs(\"hour\"));\r\n var newEndDate = new Date(a.endDate.getTime() + diffEndDateOffset * toMs(\"hour\"));\r\n var testNewStartDate = _this2.timeZoneCalculator.createDate(newStartDate, {\r\n path: \"toGrid\"\r\n });\r\n var testNewEndDate = _this2.timeZoneCalculator.createDate(newEndDate, {\r\n path: \"toGrid\"\r\n });\r\n if (appointment.duration > testNewEndDate.getTime() - testNewStartDate.getTime()) {\r\n newEndDate = new Date(newStartDate.getTime() + appointment.duration)\r\n }\r\n return {\r\n startDate: newStartDate,\r\n endDate: newEndDate,\r\n exceptionDate: new Date(newStartDate)\r\n }\r\n })\r\n }\r\n return appointmentList\r\n };\r\n _proto2._getProcessedLongAppointmentsIfRequired = function(gridAppointmentList, appointment) {\r\n var _this3 = this;\r\n var rawAppointment = appointment.source();\r\n var allDay = this.scheduler.appointmentTakesAllDay(rawAppointment);\r\n var dateRange = this.workspace.getDateRange();\r\n var renderingStrategy = this.scheduler.getLayoutManager().getRenderingStrategyInstance();\r\n if (renderingStrategy.needSeparateAppointment(allDay)) {\r\n var longStartDateParts = [];\r\n var resultDates = [];\r\n gridAppointmentList.forEach(function(gridAppointment) {\r\n var maxDate = new Date(dateRange[1]);\r\n var endDateOfPart = renderingStrategy.normalizeEndDateByViewEnd(rawAppointment, gridAppointment.endDate);\r\n longStartDateParts = _date.default.getDatesOfInterval(gridAppointment.startDate, endDateOfPart, {\r\n milliseconds: _this3.scheduler.getWorkSpace().getIntervalDuration(allDay)\r\n });\r\n var list = longStartDateParts.filter(function(startDatePart) {\r\n return new Date(startDatePart) < maxDate\r\n }).map(function(date) {\r\n return {\r\n startDate: date,\r\n endDate: new Date(new Date(date).setMilliseconds(appointment.duration)),\r\n source: gridAppointment.source\r\n }\r\n });\r\n resultDates = resultDates.concat(list)\r\n });\r\n gridAppointmentList = resultDates\r\n }\r\n return gridAppointmentList\r\n };\r\n _proto2._createGridAppointmentList = function(appointmentList, appointment) {\r\n var _this4 = this;\r\n return appointmentList.map(function(source) {\r\n var offsetDifference = appointment.startDate.getTimezoneOffset() - source.startDate.getTimezoneOffset();\r\n if (0 !== offsetDifference && _this4._canProcessNotNativeTimezoneDates(appointment)) {\r\n source.startDate = new Date(source.startDate.getTime() + offsetDifference * toMs(\"minute\"));\r\n source.endDate = new Date(source.endDate.getTime() + offsetDifference * toMs(\"minute\"));\r\n source.exceptionDate = new Date(source.startDate)\r\n }\r\n var startDate = _this4.timeZoneCalculator.createDate(source.startDate, {\r\n path: \"toGrid\"\r\n });\r\n var endDate = _this4.timeZoneCalculator.createDate(source.endDate, {\r\n path: \"toGrid\"\r\n });\r\n return {\r\n startDate: startDate,\r\n endDate: endDate,\r\n source: source\r\n }\r\n })\r\n };\r\n _proto2._createExtremeRecurrenceDates = function(rawAppointment) {\r\n var dateRange = this.workspace.getDateRange();\r\n var startViewDate = this.scheduler.appointmentTakesAllDay(rawAppointment) ? _date.default.trimTime(dateRange[0]) : dateRange[0];\r\n var endViewDate = dateRange[1];\r\n var commonTimeZone = this.scheduler.option(\"timeZone\");\r\n if (commonTimeZone) {\r\n startViewDate = this.timeZoneCalculator.createDate(startViewDate, {\r\n path: \"fromGrid\"\r\n });\r\n endViewDate = this.timeZoneCalculator.createDate(endViewDate, {\r\n path: \"fromGrid\"\r\n });\r\n var daylightOffset = _utilsTimeZone.default.getDaylightOffsetInMs(startViewDate, endViewDate);\r\n if (daylightOffset) {\r\n endViewDate = new Date(endViewDate.getTime() + daylightOffset)\r\n }\r\n }\r\n return [startViewDate, endViewDate]\r\n };\r\n _proto2._createRecurrenceOptions = function(appointment, groupIndex) {\r\n var _this5 = this;\r\n var _this$_createExtremeR = this._createExtremeRecurrenceDates(appointment.source(), groupIndex),\r\n _this$_createExtremeR2 = _slicedToArray(_this$_createExtremeR, 2),\r\n minRecurrenceDate = _this$_createExtremeR2[0],\r\n maxRecurrenceDate = _this$_createExtremeR2[1];\r\n return {\r\n rule: appointment.recurrenceRule,\r\n exception: appointment.recurrenceException,\r\n min: minRecurrenceDate,\r\n max: maxRecurrenceDate,\r\n firstDayOfWeek: this.scheduler.getFirstDayOfWeek(),\r\n start: appointment.startDate,\r\n end: appointment.endDate,\r\n getPostProcessedException: function(date) {\r\n var timeZoneName = _this5.scheduler.option(\"timeZone\");\r\n if ((0, _type.isEmptyObject)(timeZoneName) || _utilsTimeZone.default.isEqualLocalTimeZone(timeZoneName, date)) {\r\n return date\r\n }\r\n var appointmentOffset = _this5.timeZoneCalculator.getOffsets(appointment.startDate).common;\r\n var exceptionAppointmentOffset = _this5.timeZoneCalculator.getOffsets(date).common;\r\n var diff = appointmentOffset - exceptionAppointmentOffset;\r\n diff = _this5._getProcessedNotNativeDateIfCrossDST(date, diff);\r\n return new Date(date.getTime() - diff * _date.default.dateToMilliseconds(\"hour\"))\r\n }\r\n }\r\n };\r\n _proto2._createRecurrenceAppointments = function(appointment, resources) {\r\n var duration = appointment.duration;\r\n var option = this._createRecurrenceOptions(appointment);\r\n var generatedStartDates = (0, _recurrence.getRecurrenceProcessor)().generateDates(option);\r\n return generatedStartDates.map(function(date) {\r\n var utcDate = _utilsTimeZone.default.createUTCDateWithLocalOffset(date);\r\n utcDate.setTime(utcDate.getTime() + duration);\r\n var endDate = _utilsTimeZone.default.createDateFromUTCWithLocalOffset(utcDate);\r\n return {\r\n startDate: new Date(date),\r\n endDate: endDate\r\n }\r\n })\r\n };\r\n _proto2._getGroupIndices = function(resources) {\r\n var workspace = this.scheduler._workSpace;\r\n return workspace._getGroupIndexes(resources)\r\n };\r\n _proto2._cropAppointmentsByStartDayHour = function(appointments, rawAppointment, isAllDay) {\r\n var _this6 = this;\r\n return appointments.map(function(appointment) {\r\n var startDate = new Date(appointment.startDate);\r\n var firstViewDate = _this6._getAppointmentFirstViewDate(appointment, rawAppointment);\r\n var startDayHour = _this6._getViewStartDayHour(firstViewDate);\r\n appointment.startDate = _this6._getAppointmentResultDate({\r\n appointment: appointment,\r\n rawAppointment: rawAppointment,\r\n startDate: startDate,\r\n startDayHour: startDayHour,\r\n firstViewDate: firstViewDate\r\n });\r\n return appointment\r\n })\r\n };\r\n _proto2._getAppointmentFirstViewDate = function() {\r\n return this.scheduler.getStartViewDate()\r\n };\r\n _proto2._getViewStartDayHour = function() {\r\n return this.scheduler._getCurrentViewOption(\"startDayHour\")\r\n };\r\n _proto2._getAppointmentResultDate = function(options) {\r\n var appointment = options.appointment,\r\n rawAppointment = options.rawAppointment,\r\n startDayHour = options.startDayHour,\r\n firstViewDate = options.firstViewDate;\r\n var startDate = options.startDate;\r\n var resultDate = new Date(appointment.startDate);\r\n if (this.scheduler.appointmentTakesAllDay(rawAppointment)) {\r\n resultDate = _date.default.normalizeDate(startDate, firstViewDate)\r\n } else {\r\n if (startDate < firstViewDate) {\r\n startDate = firstViewDate\r\n }\r\n resultDate = _date.default.normalizeDate(appointment.startDate, startDate)\r\n }\r\n return _date.default.roundDateByStartDayHour(resultDate, startDayHour)\r\n };\r\n _proto2._createAppointmentInfos = function(gridAppointments, resources, allDay, recurrent) {\r\n var _this7 = this;\r\n var result = [];\r\n var _loop = function(i) {\r\n var coordinates = _this7.scheduler._workSpace.getCoordinatesByDateInGroup(gridAppointments[i].startDate, resources, allDay);\r\n coordinates.forEach(function(coordinate) {\r\n (0, _extend.extend)(coordinate, {\r\n info: {\r\n appointment: gridAppointments[i],\r\n sourceAppointment: gridAppointments[i].source\r\n }\r\n })\r\n });\r\n result = result.concat(coordinates)\r\n };\r\n for (var i = 0; i < gridAppointments.length; i++) {\r\n _loop(i)\r\n }\r\n return result\r\n };\r\n _createClass(AppointmentSettingsGeneratorBaseStrategy, [{\r\n key: \"timeZoneCalculator\",\r\n get: function() {\r\n return this.scheduler.timeZoneCalculator\r\n }\r\n }, {\r\n key: \"workspace\",\r\n get: function() {\r\n return this.scheduler.getWorkSpace()\r\n }\r\n }, {\r\n key: \"viewDataProvider\",\r\n get: function() {\r\n return this.workspace.viewDataProvider\r\n }\r\n }]);\r\n return AppointmentSettingsGeneratorBaseStrategy\r\n}();\r\nexports.AppointmentSettingsGeneratorBaseStrategy = AppointmentSettingsGeneratorBaseStrategy;\r\nvar AppointmentSettingsGeneratorVirtualStrategy = function(_AppointmentSettingsG) {\r\n _inheritsLoose(AppointmentSettingsGeneratorVirtualStrategy, _AppointmentSettingsG);\r\n\r\n function AppointmentSettingsGeneratorVirtualStrategy() {\r\n return _AppointmentSettingsG.apply(this, arguments) || this\r\n }\r\n var _proto3 = AppointmentSettingsGeneratorVirtualStrategy.prototype;\r\n _proto3._createAppointmentInfos = function(gridAppointments, resources, allDay, recurrent) {\r\n var _this8 = this;\r\n var appointments = allDay ? gridAppointments : gridAppointments.filter(function(item) {\r\n var source = item.source,\r\n startDate = item.startDate,\r\n endDate = item.endDate;\r\n var groupIndex = source.groupIndex;\r\n return _this8.viewDataProvider.isGroupIntersectDateInterval(groupIndex, startDate, endDate)\r\n });\r\n if (recurrent && this.isVerticalGrouping) {\r\n return this._createRecurrentAppointmentInfos(appointments, resources, allDay)\r\n }\r\n return _AppointmentSettingsG.prototype._createAppointmentInfos.call(this, appointments, resources, allDay, recurrent)\r\n };\r\n _proto3._createRecurrentAppointmentInfos = function(gridAppointments, resources, allDay) {\r\n var _this9 = this;\r\n var result = [];\r\n gridAppointments.forEach(function(appointment) {\r\n var source = appointment.source;\r\n var groupIndex = source.groupIndex;\r\n var coordinate = _this9.workspace.getCoordinatesByDate(appointment.startDate, groupIndex, allDay);\r\n if (coordinate) {\r\n (0, _extend.extend)(coordinate, {\r\n info: {\r\n appointment: appointment,\r\n sourceAppointment: source\r\n }\r\n });\r\n result.push(coordinate)\r\n }\r\n });\r\n return result\r\n };\r\n _proto3._cropAppointmentsByStartDayHour = function(appointments, rawAppointment, isAllDay) {\r\n var _this10 = this;\r\n return appointments.filter(function(appointment) {\r\n var firstViewDate = _this10._getAppointmentFirstViewDate(appointment, rawAppointment);\r\n if (!firstViewDate) {\r\n return false\r\n }\r\n var startDayHour = _this10._getViewStartDayHour(firstViewDate);\r\n var startDate = new Date(appointment.startDate);\r\n appointment.startDate = _this10._getAppointmentResultDate({\r\n appointment: appointment,\r\n rawAppointment: rawAppointment,\r\n startDate: startDate,\r\n startDayHour: startDayHour,\r\n firstViewDate: firstViewDate\r\n });\r\n return !isAllDay ? appointment.endDate > appointment.startDate : true\r\n })\r\n };\r\n _proto3._createRecurrenceAppointments = function(appointment, resources) {\r\n var _this11 = this;\r\n var duration = appointment.duration;\r\n var result = [];\r\n var groupIndices = this.isVerticalGrouping && this.workspace._getGroupCount() ? this._getGroupIndices(resources) : [0];\r\n groupIndices.forEach(function(groupIndex) {\r\n var option = _this11._createRecurrenceOptions(appointment, groupIndex);\r\n var generatedStartDates = (0, _recurrence.getRecurrenceProcessor)().generateDates(option);\r\n var recurrentInfo = generatedStartDates.map(function(date) {\r\n var startDate = new Date(date);\r\n var utcDate = _utilsTimeZone.default.createUTCDateWithLocalOffset(date);\r\n utcDate.setTime(utcDate.getTime() + duration);\r\n var endDate = _utilsTimeZone.default.createDateFromUTCWithLocalOffset(utcDate);\r\n return {\r\n startDate: startDate,\r\n endDate: endDate,\r\n groupIndex: groupIndex\r\n }\r\n });\r\n result.push.apply(result, _toConsumableArray(recurrentInfo))\r\n });\r\n return result\r\n };\r\n _proto3._getViewStartDayHour = function(firstViewDate) {\r\n return firstViewDate.getHours()\r\n };\r\n _proto3._getAppointmentFirstViewDate = function(appointment, rawAppointment) {\r\n var _this$scheduler$getWo = this.scheduler.getWorkSpace(),\r\n viewDataProvider = _this$scheduler$getWo.viewDataProvider;\r\n var groupIndex = appointment.source.groupIndex;\r\n var startDate = appointment.startDate,\r\n endDate = appointment.endDate;\r\n var isAllDay = this._isAllDayAppointment(rawAppointment);\r\n return viewDataProvider.findGroupCellStartDate(groupIndex, startDate, endDate, isAllDay)\r\n };\r\n _proto3._updateGroupIndices = function(appointments, itemResources) {\r\n var _this12 = this;\r\n var groupIndices = this.isVerticalGrouping ? this._getGroupIndices(itemResources) : [0];\r\n var result = [];\r\n groupIndices.forEach(function(groupIndex) {\r\n var groupStartDate = _this12.viewDataProvider.getGroupStartDate(groupIndex);\r\n if (groupStartDate) {\r\n appointments.forEach(function(appointment) {\r\n var appointmentCopy = (0, _extend.extend)({}, appointment);\r\n appointmentCopy.groupIndex = groupIndex;\r\n result.push(appointmentCopy)\r\n })\r\n }\r\n });\r\n return result\r\n };\r\n _proto3._getGroupIndices = function(resources) {\r\n var groupIndices = _AppointmentSettingsG.prototype._getGroupIndices.call(this, resources);\r\n var _this$scheduler$getWo2 = this.scheduler.getWorkSpace(),\r\n viewDataProvider = _this$scheduler$getWo2.viewDataProvider;\r\n var viewDataGroupIndices = viewDataProvider.getGroupIndices();\r\n var result = groupIndices.filter(function(groupIndex) {\r\n return viewDataGroupIndices.indexOf(groupIndex) !== -1\r\n });\r\n return result\r\n };\r\n _proto3._createAppointments = function(appointment, resources) {\r\n var appointments = _AppointmentSettingsG.prototype._createAppointments.call(this, appointment, resources);\r\n return !appointment.isRecurrent ? this._updateGroupIndices(appointments, resources) : appointments\r\n };\r\n _createClass(AppointmentSettingsGeneratorVirtualStrategy, [{\r\n key: \"viewDataProvider\",\r\n get: function() {\r\n return this.workspace.viewDataProvider\r\n }\r\n }, {\r\n key: \"isVerticalGrouping\",\r\n get: function() {\r\n return this.workspace._isVerticalGroupedWorkSpace()\r\n }\r\n }]);\r\n return AppointmentSettingsGeneratorVirtualStrategy\r\n}(AppointmentSettingsGeneratorBaseStrategy);\r\nexports.AppointmentSettingsGeneratorVirtualStrategy = AppointmentSettingsGeneratorVirtualStrategy;\r\n","/**\r\n * DevExtreme (ui/scheduler/constants.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS = exports.APPOINTMENT_DRAG_SOURCE_CLASS = exports.DIRECTION_APPOINTMENT_CLASSES = exports.REDUCED_APPOINTMENT_PARTS_CLASSES = exports.ALL_DAY_APPOINTMENT_CLASS = exports.EMPTY_APPOINTMENT_CLASS = exports.RECURRENCE_APPOINTMENT_CLASS = exports.REDUCED_APPOINTMENT_ICON = exports.REDUCED_APPOINTMENT_CLASS = exports.APPOINTMENT_SETTINGS_KEY = exports.LIST_ITEM_CLASS = exports.FIXED_CONTAINER_CLASS = exports.LIST_ITEM_DATA_KEY = void 0;\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nexports.LIST_ITEM_DATA_KEY = LIST_ITEM_DATA_KEY;\r\nvar FIXED_CONTAINER_CLASS = \"dx-scheduler-fixed-appointments\";\r\nexports.FIXED_CONTAINER_CLASS = FIXED_CONTAINER_CLASS;\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nexports.LIST_ITEM_CLASS = LIST_ITEM_CLASS;\r\nvar APPOINTMENT_SETTINGS_KEY = \"dxAppointmentSettings\";\r\nexports.APPOINTMENT_SETTINGS_KEY = APPOINTMENT_SETTINGS_KEY;\r\nvar REDUCED_APPOINTMENT_CLASS = \"dx-scheduler-appointment-reduced\";\r\nexports.REDUCED_APPOINTMENT_CLASS = REDUCED_APPOINTMENT_CLASS;\r\nvar REDUCED_APPOINTMENT_ICON = \"dx-scheduler-appointment-reduced-icon\";\r\nexports.REDUCED_APPOINTMENT_ICON = REDUCED_APPOINTMENT_ICON;\r\nvar RECURRENCE_APPOINTMENT_CLASS = \"dx-scheduler-appointment-recurrence\";\r\nexports.RECURRENCE_APPOINTMENT_CLASS = RECURRENCE_APPOINTMENT_CLASS;\r\nvar EMPTY_APPOINTMENT_CLASS = \"dx-scheduler-appointment-empty\";\r\nexports.EMPTY_APPOINTMENT_CLASS = EMPTY_APPOINTMENT_CLASS;\r\nvar ALL_DAY_APPOINTMENT_CLASS = \"dx-scheduler-all-day-appointment\";\r\nexports.ALL_DAY_APPOINTMENT_CLASS = ALL_DAY_APPOINTMENT_CLASS;\r\nvar REDUCED_APPOINTMENT_PARTS_CLASSES = {\r\n head: \"dx-scheduler-appointment-head\",\r\n body: \"dx-scheduler-appointment-body\",\r\n tail: \"dx-scheduler-appointment-tail\"\r\n};\r\nexports.REDUCED_APPOINTMENT_PARTS_CLASSES = REDUCED_APPOINTMENT_PARTS_CLASSES;\r\nvar DIRECTION_APPOINTMENT_CLASSES = {\r\n horizontal: \"dx-scheduler-appointment-horizontal\",\r\n vertical: \"dx-scheduler-appointment-vertical\"\r\n};\r\nexports.DIRECTION_APPOINTMENT_CLASSES = DIRECTION_APPOINTMENT_CLASSES;\r\nvar APPOINTMENT_DRAG_SOURCE_CLASS = \"dx-scheduler-appointment-drag-source\";\r\nexports.APPOINTMENT_DRAG_SOURCE_CLASS = APPOINTMENT_DRAG_SOURCE_CLASS;\r\nvar AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS = \"dx-scheduler-last-in-date-agenda-appointment\";\r\nexports.AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS = AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS;\r\n"],"sourceRoot":""}