{"version":3,"sources":["webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.work_space.indicator.js","webpack:///./node_modules/devextreme/ui/scheduler/ui.scheduler.header.js","webpack:///./node_modules/devextreme/ui/scheduler/tooltip_strategies/tooltipStrategyBase.js","webpack:///./node_modules/devextreme/ui/scheduler/timezones/ui.scheduler.timezones.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.work_space.grouped.strategy.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.work_space_month.js","webpack:///./node_modules/devextreme/ui/scheduler/rendering_strategies/ui.scheduler.appointments.strategy.horizontal_month_line.js","webpack:///./node_modules/devextreme/ui/scheduler/rendering_strategies/ui.scheduler.appointmentsPositioning.strategy.base.js","webpack:///./node_modules/devextreme/ui/scheduler/ui.scheduler.publisher_mixin.js","webpack:///./node_modules/devextreme/ui/scheduler/appointmentDragBehavior.js","webpack:///./node_modules/devextreme/ui/scheduler/ui.scheduler.resource_manager.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.agenda.js","webpack:///./node_modules/devextreme/ui/scheduler/ui.scheduler.appointments.js","webpack:///./node_modules/devextreme/ui/scheduler/ui.scheduler.js","webpack:///./node_modules/devextreme/ui/scheduler/tooltip_strategies/mobileTooltipStrategy.js","webpack:///./node_modules/devextreme/ui/scheduler/ui.scheduler.appointment_model.js","webpack:///./node_modules/devextreme/ui/scheduler/timezones/ui.scheduler.timezone_editor.js","webpack:///./node_modules/devextreme/ui/radio_group.js","webpack:///./node_modules/devextreme/ui/scheduler/timezones/ui.scheduler.timezones_data.js","webpack:///./node_modules/devextreme/ui/scheduler/ui.scheduler.table_creator.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.timeline_month.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.timeline_week.js","webpack:///./node_modules/devextreme/ui/scheduler/rendering_strategies/ui.scheduler.appointments.strategy.base.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.timeline_day.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.work_space.js","webpack:///./node_modules/devextreme/ui/scheduler/rendering_strategies/ui.scheduler.appointments.strategy.horizontal.js","webpack:///./node_modules/devextreme/ui/scheduler/shaders/ui.scheduler.current_time_shader.vertical.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.work_space_day.js","webpack:///./src/views/agenda.vue?39fd","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.work_space_vertical.js","webpack:///./node_modules/devextreme/ui/scheduler/utils.recurrence.js","webpack:///./node_modules/devextreme/ui/scheduler.js","webpack:///./node_modules/devextreme/ui/scheduler/ui.scheduler.appointments.layout_manager.js","webpack:///./node_modules/devextreme/ui/button_group.js","webpack:///./node_modules/devextreme/ui/radio_group/radio_group.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/utils.work_week.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.work_space_week.js","webpack:///./node_modules/devextreme/ui/scheduler/rendering_strategies/ui.scheduler.appointments.strategy.vertical.js","webpack:///./node_modules/devextreme/ui/scheduler/ui.scheduler.navigator.js","webpack:///./node_modules/devextreme-vue/scheduler.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.work_space.grouped.strategy.vertical.js","webpack:///./node_modules/devextreme/ui/scheduler/constants.js","webpack:///./node_modules/devextreme/ui/scheduler/ui.scheduler.appointment.js","webpack:///./node_modules/devextreme/ui/scheduler/compactAppointmentsHelper.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.work_space.grouped.strategy.horizontal.js","webpack:///./node_modules/devextreme/ui/scheduler/rendering_strategies/ui.scheduler.appointments.strategy.horizontal_month.js","webpack:///./node_modules/devextreme/ui/scheduler/ui.scheduler.recurrence_editor.js","webpack:///./node_modules/devextreme/ui/scheduler/shaders/ui.scheduler.current_time_shader.horizontal.js","webpack:///./node_modules/devextreme/ui/scheduler/appointmentPopup.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.timeline_work_week.js","webpack:///./node_modules/devextreme/ui/scheduler/rendering_strategies/ui.scheduler.appointments.strategy.agenda.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.timeline.js","webpack:///./node_modules/devextreme/ui/scheduler/rendering_strategies/ui.scheduler.appointmentsPositioning.strategy.adaptive.js","webpack:///./node_modules/devextreme/ui/scheduler/workspaces/ui.scheduler.work_space_work_week.js","webpack:///./node_modules/devextreme/ui/switch.js","webpack:///./node_modules/devextreme/ui/scheduler/utils.timeZone.js","webpack:///./node_modules/devextreme/ui/scheduler/ui.loading.js","webpack:///./node_modules/devextreme/ui/scheduler/shaders/ui.scheduler.current_time_shader.js","webpack:///./node_modules/devextreme/ui/scheduler/tooltip_strategies/desktopTooltipStrategy.js","webpack:///./node_modules/devextreme/ui/scheduler/ui.scheduler.subscribes.js","webpack:///./node_modules/devextreme/ui/scheduler/ui.scheduler.appointment_form.js","webpack:///./src/views/agenda.vue?2752","webpack:///src/views/agenda.vue","webpack:///./src/views/agenda.vue?b043","webpack:///./src/views/agenda.vue?155f"],"names":["_renderer","_renderer2","_interopRequireDefault","_uiScheduler","_uiScheduler2","_component_registrator","_component_registrator2","_date","_date2","_extend","_position","_window","_window2","obj","__esModule","toMs","default","dateToMilliseconds","SCHEDULER_DATE_TIME_INDICATOR_CLASS","TIME_PANEL_CURRENT_TIME_CELL_CLASS","HEADER_CURRENT_TIME_CELL_CLASS","SchedulerWorkSpaceIndicator","inherit","_getToday","date","this","option","Date","invoke","_needRenderDateTimeIndicator","today","endViewDate","trimTime","getEndViewDate","dateInRange","_firstViewDate","getTime","needRenderDateTimeIndication","hasWindow","getStartViewDate","_renderDateTimeIndication","_shader","render","groupCount","_getGroupCount","$container","_dateTableScrollable","$content","height","getIndicationHeight","rtlOffset","_getRtlOffset","getCellWidth","_renderIndicator","groupedByDate","isGroupedByDate","repeatCount","i","$indicator","_createIndicator","width","_groupedStrategy","shiftIndicator","addClass","append","getBoundingRect","get","getTimePanelWidth","_setIndicationUpdateInterval","_clearIndicatorUpdateInterval","_indicatorInterval","setInterval","_refreshDateTimeIndication","bind","clearInterval","_isVerticalShader","getIndicationWidth","groupIndex","maxWidth","_getCellCount","difference","_getIndicatorDuration","getRoundedCellWidth","getIndicatorOffset","offset","firstViewDate","timeDiff","_getWeekendsCount","Math","round","ceil","cellHeight","getCellHeight","setFullYear","getFullYear","getMonth","getDate","duration","cellCount","getCellDuration","_dispose","callBase","apply","arguments","_cleanDateTimeIndicator","clean","_isCurrentTime","result","startCellDate","endCellDate","sameDate","setMilliseconds","getMilliseconds","_isCurrentTimeHeaderCell","headerIndex","_getDateByIndex","now","_getTimeCellClass","startViewDate","_getTimeCellDate","cellClass","_getHeaderPanelCellClass","_cleanView","_dimensionChanged","$element","find","remove","_cleanWorkSpace","_optionChanged","args","name","_getDefaultOptions","extend","showCurrentTimeIndicator","indicatorTime","indicatorUpdateInterval","shadeUntilCurrentTime","module","exports","$","typeUtils","noop","isDefined","each","inArray","camelize","registerComponent","Widget","publisherMixin","SchedulerNavigator","DropDownMenu","Tabs","errors","messageLocalization","COMPONENT_CLASS","VIEW_SWITCHER_CLASS","VIEW_SWITCHER_LABEL_CLASS","STEP_MAP","day","week","workWeek","month","timelineDay","timelineWeek","timelineWorkWeek","timelineMonth","agenda","VIEWS","SchedulerHeader","views","isAdaptive","intervalCount","currentView","firstDayOfWeek","currentDate","min","max","useDropDownViewSwitcher","_dropDownButtonIcon","_setOptionsByReference","_optionsByReference","value","_validateViews","_viewSwitcher","items","selectedItem","_navigator","_getCurrentViewType","_changeViewSwitcherLabelText","_refreshViewSwitcher","_init","_initMarkup","_renderNavigator","_renderViewSwitcher","_createComponent","step","tabIndex","focusStateEnabled","observer","customizeDateNavigatorText","appendTo","$viewSwitcher","_renderViewSwitcherDropDownMenu","_renderViewSwitcherTabs","_","view","isViewIsObject","isObject","viewType","type","log","that","getTabsExpandedClass","selectionRequired","scrollingEnabled","onSelectionChanged","_updateCurrentView","itemTemplate","item","text","_getItemText","format","_removeViewSwitcherLabel","_$viewSwitcherLabel","detach","onItemClick","buttonIcon","selectionMode","selectedItemKeys","currentViewText","_getCurrentViewName","e","itemData","component","viewName","notifyObserver","_renderFocusTarget","include","Object","defineProperty","TooltipStrategyBase","_button","_button2","_function_template","_uiList","_uiList2","_defineProperty","key","enumerable","configurable","writable","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","length","descriptor","_createClass","protoProps","staticProps","prototype","TOOLTIP_APPOINTMENT_ITEM","TOOLTIP_APPOINTMENT_ITEM_CONTENT","TOOLTIP_APPOINTMENT_ITEM_CONTENT_SUBJECT","TOOLTIP_APPOINTMENT_ITEM_CONTENT_DATE","TOOLTIP_APPOINTMENT_ITEM_MARKER","TOOLTIP_APPOINTMENT_ITEM_MARKER_BODY","TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON_CONTAINER","TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON","options","_tooltip","_options","_extraOptions","dataList","extraOptions","_canShowTooltip","hide","_showCore","_shouldUseTarget","_list","_createTooltip","_prepareBeforeVisibleChanged","_this","container","listElement","_createList","_this2","dataSource","onContentReady","_onListRender","_onListItemClick","index","_renderTemplate","data","_getCurrentAppointmentData","color","wrapperClass","createComponent","_createListOption","currentData","itemListContent","_createItemListContent","addDefaultTemplates","_getItemListTemplateName","FunctionTemplate","template","getAppointmentTemplate","_createFunctionTemplate","targetData","isEmptyDropDownAppointmentTemplate","_isEmptyDropDownAppointmentTemplate","model","appointmentData","targetedAppointmentData","dropDownAppointmentTemplate","clickEvent","showAppointmentPopup","settings","editing","$itemElement","_createItemListMarker","_createItemListInfo","getTextAndFormatDate","disabled","allowDeleting","singleAppointmentData","getSingleAppointmentData","_createDeleteButton","$marker","$markerBody","done","css","object","$title","$date","formatDate","_this3","$deleteButton","icon","stylingMode","onClick","event","stopPropagation","checkAndDeleteAppointment","query","tzData","SchedulerTimezones","_displayNames","displayNames","timezones","getTimezones","getDisplayNames","queryableTimezones","getTimezoneById","id","tzList","currentId","getTimezoneOffsetById","dateTimeStamp","offsets","offsetIndices","untils","tz","link","rootTz","getUtcOffset","offsetIndicesList","split","untilsList","map","until","parseInt","currentUntil","listLength","Number","getTimezoneShortDisplayNameById","DisplayName","substring","getTimezonesDisplayName","sortBy","toArray","getTimezoneDisplayNameById","winIndex","getSimilarTimezones","getTimezonesIdsByWinIndex","filter","displayName","title","getTimezonesIdsByDisplayName","displayNameIndex","indexOf","getClientTimezoneOffset","getTimezoneOffset","processDateDependOnTimezone","tzOffset","tzDiff","setHours","getHours","LAST_GROUP_CELL_CLASS","FIRST_GROUP_CELL_CLASS","GroupedStrategy","workSpace","_workSpace","SchedulerWorkSpace","dateUtils","dateLocalization","MONTH_CLASS","DATE_TABLE_CURRENT_DATE_CLASS","DATE_TABLE_FIRST_OF_MONTH_CLASS","DATE_TABLE_OTHER_MONTH_DATE_CLASS","DATE_TABLE_SCROLLABLE_FIXED_CLASS","DAYS_IN_WEEK","DAY_IN_MILLISECONDS","SchedulerWorkSpaceMonth","_toggleFixedScrollableClass","toggleClass","_isWorkSpaceWithCount","_isVerticalGroupedWorkSpace","_getElementClass","_getRowCount","resultDate","setDate","_getFormat","_formatWeekday","_calculateCellIndex","rowIndex","cellIndex","_getInterval","_getIntervalBetween","timeZoneOffset","getTimezonesDifference","_getDateByCellIndexes","_setStartDayHour","averageWidth","_getCells","slice","element","_calculateHiddenInterval","_insertAllDayRowsIntoDateTable","_getCellCoordinatesByIndex","floor","_createWorkSpaceElements","_createWorkSpaceScrollableElements","_needCreateCrossScrolling","_renderTimePanel","_renderAllDayPanel","_getTableAllDay","_toggleAllDayVisibility","_changeAllDayVisibility","_setFirstViewDate","firstMonthDate","getFirstMonthDate","_getViewStartByOptions","getFirstWeekDate","firstDayOfWeekIndex","_minVisibleDate","_maxVisibleDate","setMonth","startDate","_getStartViewDate","diff","endDate","_dateInRange","_renderTableBody","getCellText","_getCellText","_getDate","_isFirstDayOfMonth","_formatMonthAndDay","monthName","getMonthNames","join","lastRowInDay","_updateIndex","_prepareCellData","cell","$cell","_isCurrentDate","_isOtherMonth","cellDate","_calculateDayDuration","getIntervalDuration","getPositionShift","timeShift","cellPosition","top","left","getCellCountToLastViewDate","firstDateTime","lastDateTime","dayDurationInMs","supportAllDayRow","keepOriginalHours","calculateEndDate","startDateCopy","getWorkSpaceLeftOffset","needApplyCollectorOffset","_getDateTableBorderOffset","_getDateTableBorder","_getCellPositionByIndex","calculatedTopOffset","position","_getHeaderDate","_supportCompactDropDownAppointments","scrollToTime","_getRowCountWithAllDayRows","_uiSchedulerAppointmentsStrategy","_uiSchedulerAppointmentsStrategy2","_query","_query2","_typeof","Symbol","iterator","constructor","_get","property","receiver","Reflect","base","_superPropBase","desc","getOwnPropertyDescriptor","call","hasOwnProperty","_getPrototypeOf","_inherits","subClass","superClass","create","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","NewTarget","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","sham","Proxy","toString","getPrototypeOf","HOURS_IN_DAY","MINUTES_IN_HOUR","MILLISECONDS_IN_MINUTE","ZERO_APPOINTMENT_DURATION_IN_DAYS","HorizontalMonthLineRenderingStrategy","_HorizontalAppointmen","_super","appointment","isRecurring","cellWidth","getDefaultCellWidth","getAppointmentMinSize","_getDurationInDays","cropAppointmentWidth","adjustedDuration","_adjustDurationByDaylightDiff","initialSize","_getDeltaWidth","skipSorting","getAppointmentsInstance","_sortAppointmentsByStartDate","thenBy","_type","_type2","COLLECTOR_DEFAULT_WIDTH","COLLECTOR_DEFAULT_OFFSET","COMPACT_THEME_APPOINTMENT_DEFAULT_OFFSET","APPOINTMENT_MIN_COUNT","APPOINTMENT_DEFAULT_WIDTH","COLLECTOR_WIDTH_IN_PERCENTS","APPOINTMENT_INCREASED_WIDTH","AppointmentPositioningStrategy","renderingStrategy","_renderingStrategy","isAllDay","getRenderingStrategy","_isCompactTheme","fire","allDayCount","_getAppointmentDefaultOffset","_getAppointmentDefaultHeight","_getAppointmentMinCount","hasAllDayAppointments","allDay","_groupOrientation","simple","_calculateDynamicAppointmentCountPerCell","_getAppointmentMaxWidth","subject","_draggable","_draggable2","_translator","_translator2","_constants","FIXED_CONTAINER_PROP_NAME","APPOINTMENT_ITEM_CLASS","AppointmentDragBehavior","scheduler","appointments","_appointments","initialPosition","currentAppointment","appointmentContainer","_getAppointmentContainer","dragAndDropContainer","appointmentContainerRect","dragAndDropContainerRect","locate","itemElement","fromComponent","toComponent","$appointment","getAppointmentElement","_getItemData","coordinates","LIST_ITEM_DATA_KEY","appointmentDragging","getItemData","itemSettings","getItemSettings","onDragStart","cancel","onDragMove","onDragEnd","onRemove","onAdd","config","contentTemplate","concat","immediate","createDragStartHandler","createDragMoveHandler","createDragEndHandler","onDrop","createDropHandler","move","_array","_array2","_common","_object","_object2","_iterator","_iterator2","_data","_data2","_data_source","_deferred","_utils","getValueExpr","resource","valueExpr","getDisplayExpr","displayExpr","ResourceManager","resources","_resourceLoader","setResources","DataSource","store","normalizeDataSourceOptions","pageSize","Array","isArray","valueGetter","compileGetter","displayGetter","resourceField","getResources","field","getField","allowMultiple","_dataAccessors","accessorName","accessors","fieldExpr","_resources","getter","setter","_resourceFields","compileSetter","_resourcesData","currentResourceItems","_getResourceDataByField","push","editorOptions","_createWrappedDataSource","dataField","editorType","label","Deferred","load","filteredData","resolve","fail","reject","promise","resourcesSetter","resourceData","_isMultipleResource","wrapToArray","wrapOnlyMultipleResources","forEach","fieldName","fieldValue","tempObject","getDataAccessors","groups","deferreds","getResourcesByFields","deferred","_mapResourceData","when","mapFunction","fields","grep","getResourceByField","colorExpr","colorGetter","resourceDataLength","getResourceDataByValue","useColorAsDefault","leafIndex","make","group","parent","currentGroupItem","resultItem","children","nextGroupIndex","appointmentResources","groupName","itemValue","loadedResources","getResourcesData","currentResourceData","resourceCount","tree","_hasGroupItem","getResourceTreeLeaves","createResourcesTree","getResourcesFromItem","treeLeaves","deepExtendArraySafe","existingAppointments","_result","node","ok","resourceName","resourceValue","resourceTitle","resourceGetter","resourceFromAppointment","reduceResourcesTree","domAdapter","getPublicElement","tableCreator","AGENDA_CLASS","AGENDA_DATE_CLASS","GROUP_TABLE_CLASS","AGENDA_GROUPED_ATTR","TIME_PANEL_ROW_CLASS","TIME_PANEL_CELL_CLASS","NODATA_CONTAINER_CLASS","LAST_ROW_CLASS","INNER_CELL_MARGIN","OUTER_CELL_MARGIN","SchedulerAgenda","_activeStateUnit","agendaDuration","rowHeight","noDataText","_recalculateAgenda","_rows","_$groupTable","_initGroupTable","prepend","_detachGroupCountAttr","_renderFocusState","_cleanFocusState","_getTimePanelRowCount","_initWorkSpaceUnits","_$timePanel","_getTimePanelClass","_$dateTable","_getDateTableClass","_renderView","rows","cellTemplates","_rowsIsEmpty","_renderNoData","_renderGroupHeader","_setGroupHeaderCellsHeight","_renderDateTable","_applyCellTemplates","update","_$noDataContainer","html","_setTableSizes","_toggleHorizontalScrollClass","_createCrossScrollingConfig","$cells","_getGroupHeaderCells","getAttribute","_removeEmptyRows","$cellContent","eq","outerHeight","_getGroupRowHeight","groupRow","j","removeAttr","_attachGroupCountAttr","attr","isEmpty","some","_getGroupHeaderContainer","_makeGroupRows","cellTemplate","getGroupHeaderContentClass","_getGroupHeaderContentClass","table","makeGroupedTableFromJSON","VERTICAL","cellTag","groupTableClass","groupRowClass","_getGroupRowClass","groupCellClass","_getGroupHeaderClass","groupCellCustomContent","cellText","createElement","contentWrapper","className","appendChild","textContent","elements","empty","_createWorkSpaceStaticElements","rowClass","_getDateTableRowClass","_getDateTableCellClass","_attachTablesEvents","_attachEvents","_cleanCellDataCache","_prepareCellTemplateOptions","groupsOpt","path","_getPathToLeaf","resourceIndex","cellTemplateOpt","_$rows","fillTableBody","rowSize","cellDateNumber","cellDayName","$row","$td","_getRowHeight","getStartDate","templateOptions","_setLastRowClass","$lastRow","rowCount","_getTimePanelStartDate","current","baseHeight","innerOffset","groupRows","getAgendaVerticalStepHeight","getEndViewDateByEndDayHour","getCoordinatesByDate","getCellDataByCoordinates","_dom_adapter","_dom_adapter2","_events_engine","_events_engine2","_element_data","_element_data2","_common2","_dom","_utils2","_uiScheduler3","_uiScheduler4","_utils3","eventUtils","_interopRequireWildcard","_double_click","_double_click2","_message","_message2","_uiCollection_widget","_uiCollection_widget2","_utilsTimeZone","_utilsTimeZone2","_getRequireWildcardCache","WeakMap","cache","has","newObj","hasPropertyDescriptor","set","APPOINTMENT_SETTINGS_NAME","APPOINTMENT_TITLE_CLASS","APPOINTMENT_CONTENT_DETAILS_CLASS","APPOINTMENT_DATE_CLASS","RECURRING_ICON_CLASS","ALL_DAY_CONTENT_CLASS","DBLCLICK_EVENT_NAME","addNamespace","SchedulerAppointments","ctor","_supportedKeys","tabHandler","_getAccessAppointments","focusedAppointment","sortedIndex","lastIndex","shiftKey","preventDefault","$nextAppointment","_getAppointmentByIndex","_resetTabIndex","trigger","escape","moveAppointmentBack","_escPressed","del","tab","$item","_itemElements","not","_focusTarget","_moveFocus","_focusInHandler","_$currentAppointment","_focusOutHandler","_eventBindingTarget","_itemContainer","activeStateEnabled","hoverStateEnabled","fixedContainer","allDayContainer","allowDrag","allowResize","allowAllDayResize","onAppointmentDblClick","_collectorOffset","_clearDropDownItems","_clearDropDownItemsElements","_repaintAppointments","_renderDropDownAppointments","_attachAppointmentsEvents","_invalidate","_isAllDayAppointment","_isRepaintAppointment","needRepaint","_isRepaintAll","_applyFragment","fragment","_onEachAppointment","isRepaintAll","needRemove","_clearItem","_renderItem","allDayFragment","commonFragment","_cleanItemContainer","_attachClickEvent","_attachHoldEvent","_attachContextMenuEvent","_attachAppointmentDblClick","_attachFeedbackEvents","_attachHoverEvents","$items","_findItemElementByItem","_virtualAppointments","itemElements","_itemDataKey","_itemClass","$result","$allDayContainer","add","_clean","_initialSize","_initialCoordinates","_preventSingleAppointmentClick","_renderAppointmentTemplate","formatText","isPlainObject","$contentDetails","recurrenceRule","prependTo","_executeItemRenderAction","action","_getItemRenderAction","_currentAppointmentSettings","_itemClickHandler","afterExecute","_processItemClick","$target","currentTarget","isFakeClickEvent","_appointmentClickTimeout","setTimeout","getBody","contains","_extendActionArgs","_render","itemSelector","_itemSelector","itemContainer","off","on","_itemDXEventHandler","_dblClickHandler","$targetAppointment","clearTimeout","setting","_getItemContent","$itemFrame","$itemContent","_createItemByTemplate","renderArgs","itemsContainer","_postprocessRenderItem","_renderAppointment","_applyResourceDataAttr","geometry","skipResizing","isString","deferredColor","_getAppointmentColor","virtual","_processVirtualAppointment","direction","reduced","appointmentReduced","isCompact","resizableConfig","_resizableConfig","values","normalizeKey","toLowerCase","itemSetting","area","_calculateResizableArea","onResizeStart","updatedArea","_renderDragOffsets","onResizeEnd","_resizeEndHandler","closest","dateRange","_getDateRange","updatedDates","startTime","endTime","deltaTime","renderingStrategyDirection","isStartDateChanged","needCorrectDates","handles","right","_correctStartDateByDelta","getTimezoneOffsetChangeInMs","_correctEndDateByDelta","endDayHour","startDayHour","visibleDayDuration","daysCount","maxDate","minDate","tailOfCurrentDay","tailOfPrevDays","lastDay","firstDay","_tryGetAppointmentColor","res","response","_calculateBoundOffset","appointmentSetting","virtualAppointment","virtualGroupIndex","colors","buttonColor","_renderContentImpl","virtualGroup","virtualItems","virtualCoordinates","buttonWidth","buttonHeight","onAppointmentClick","_isGroupCompact","applyOffset","sort","a","b","firstDate","secondDate","_processRecurrenceAppointment","skipLongAppointments","parts","indexes","dates","appointmentDuration","recurrenceException","recurrentDates","getDatesByRecurrence","rule","exception","start","end","recurrentDateCount","appointmentPart","appointmentSettings","_applyStartDateToObj","_applyEndDateToObj","_processLongAppointment","splitAppointmentByDay","partCount","startDateTimeZone","_reduceRecurrenceAppointments","recurrenceIndexes","splice","_combineAppointments","additionalAppointments","merge","dragEvent","size","coords","isDeferred","outerWidth","focus","focusedElement","originalStartDate","makeDate","endDateTimeZone","maxAllowedDate","appointmentIsLong","currentStartDate","currentEndDate","_checkStartDate","_checkEndDate","originalDate","getMinutes","getSeconds","_callbacks","_callbacks2","_ui","_ui2","_dialog","_dialog2","_dom2","_devices","_devices2","_config","_config2","_date_serialization","_date_serialization2","_date3","_date4","_ui3","_ui4","_desktopTooltipStrategy","_mobileTooltipStrategy","_appointmentPopup","_appointmentPopup2","_uiScheduler5","_uiScheduler6","_uiScheduler7","_uiScheduler8","_uiScheduler9","_uiScheduler10","_uiScheduler11","_uiScheduler12","_uiScheduler13","_uiScheduler14","_uiScheduler15","_uiScheduler16","_uiScheduler17","_uiScheduler18","_uiScheduler19","_uiScheduler20","_uiScheduler21","_uiScheduler22","_uiScheduler23","_uiScheduler24","_uiScheduler25","_uiScheduler26","_uiScheduler27","_uiScheduler28","_uiSchedulerAppointments","_uiSchedulerAppointments2","_compactAppointmentsHelper","_data_helper","_data_helper2","_ui5","_ui6","_deferred2","_empty_template","_bindable_template","_themes","_themes2","_browser","_browser2","_support","_utils4","WIDGET_CLASS","WIDGET_SMALL_CLASS","WIDGET_ADAPTIVE_CLASS","WIDGET_WIN_NO_TOUCH_CLASS","WIDGET_READONLY_CLASS","WIDGET_SMALL_WIDTH","FULL_DATE_FORMAT","UTC_FULL_DATE_FORMAT","VIEWS_CONFIG","Scheduler","dateSerializationFormat","appointmentTemplate","appointmentCollectorTemplate","dataCellTemplate","timeCellTemplate","resourceCellTemplate","dateCellTemplate","allowAdding","allowDragging","allowResizing","allowUpdating","allowTimeZoneEditing","allowEditingTimeZones","showAllDayPanel","recurrenceEditMode","cellDuration","maxAppointmentsPerCell","selectedCellData","groupByDate","onAppointmentRendered","onAppointmentContextMenu","onCellClick","onCellContextMenu","onAppointmentAdding","onAppointmentAdded","onAppointmentUpdating","onAppointmentUpdated","onAppointmentDeleting","onAppointmentDeleted","onAppointmentFormOpening","appointmentTooltipTemplate","appointmentPopupTemplate","crossScrollingEnabled","startDateExpr","endDateExpr","textExpr","descriptionExpr","allDayExpr","recurrenceRuleExpr","recurrenceExceptionExpr","remoteFiltering","timeZone","startDateTimeZoneExpr","endDateTimeZoneExpr","adaptivityEnabled","allowMultipleCellSelection","_appointmentTooltipOffset","x","y","_appointmentTooltipButtonsPosition","_appointmentTooltipOpenButtonText","_appointmentCountPerCell","_appointmentOffset","_defaultOptionsRules","device","real","deviceType","isSimulator","generic","isMaterial","span","_setDeprecatedOptions","_deprecatedOptions","onAppointmentFormCreated","since","alias","message","_postponeDataSourceLoading","postponedOperations","_reloadDataSource","_postponeResourceLoading","whenLoaded","_loadResources","resolveCallbacks","_updateOption","_dateOption","_header","_filterAppointmentsByDate","_initDataSource","_appointmentModel","setDataSource","_dataSource","_processCurrentView","_getCurrentViewOptions","repaint","getLayoutManager","initRenderingStrategy","_getAppointmentsRenderingStrategy","_validateCellDuration","_allowDragging","_allowResizing","_getAppointmentTemplate","_refreshWorkSpace","_updateHeader","_resourcesManager","setDataAccessors","_combineDataAccessors","_actions","_createActionByOption","_getAppointmentRenderedAction","_readyToRenderAppointments","_getAppointmentsToRepaint","_initEditing","_editing","_bringEditingModeToAppointments","hideAppointmentTooltip","_cleanPopup","_updateExpression","_initAppointmentTemplate","_toggleAdaptiveClass","viewCountConfig","_getViewCountConfig","_getCurrentViewOption","_currentView","optionName","optionValue","deserializeDate","_getSerializationFormat","getDateSerializationFormat","editingConfig","allowDelete","_isAgenda","_supportAllDayResizing","_allowAllDayResizing","_isAllDayExpanded","_getTimezoneOffsetByOption","calculateTimezoneByValue","getCorrectedDatesByDaylightOffsets","needCheckTimezoneOffset","convertedOriginalStartDate","convertedDate","getCorrectedDateByDaylightOffsets","getDateRange","filterByDate","loadResources","_loadedResources","_dataSourceLoadedCallback","_fireContentReadyAction","isLoading","show","of","_this$_workSpaceRecal","contentReadyBase","fireContentReady","_workSpaceRecalculation","filteredItems","getFilteredItems","_toggleSmallClass","_isVisible","_cleanAllowedPositions","_layoutManager","createAppointmentsMap","triggerResize","updatePopupFullScreenMode","_visibilityChanged","visible","_dataSourceOptions","paginate","_initExpressions","description","msie","touch","combinedDataAccessors","getAppointmentDurationInMinutes","_initActions","CompactAppointmentsHelper","_asyncTemplatesTimers","_subscribes","_initTemplates","_templateManager","appointmentTooltip","EmptyTemplate","dropDownAppointment","_this4","expr","createGetter","BindableTemplate","resourcesDataAccessors","accessor","_renderContent","_dataSourceChangedHandler","_filteredItems","getRenderingStrategyInstance","calculateRows","cleanModelState","fireWith","getRepaintedAppointments","isDateField","dateGetter","dateSetter","forceIsoDateParsing","serializeDate","exprObj","replace","_isReadOnly","prop","_appointmentTooltip","dispose","hideAppointmentPopup","excludeValidators","_renderHeader","_appointmentsConfig","MobileTooltipStrategy","DesktopTooltipStrategy","_getAppointmentTooltipOptions","_isLoaded","_isDataSourceLoading","_initMarkupCore","_this5","getScrollableContainer","getWorkSpaceScrollableContainer","isAppointmentInAllDayPanel","targetElement","_getAppointmentData","skipHoursProcessing","_checkRecurringAppointment","deleteAppointment","_getExtraAppointmentTooltipOptions","rtlEnabled","itTakesAllDay","appointmentTakesAllDay","_this6","_cleanWorkspace","_renderWorkSpace","getFixedContainer","getAllDayContainer","_waitAsyncTemplate","_this6$_workSpaceReca","_isResourcesLoaded","_isDataSourceLoaded","isLoaded","$header","_headerConfig","currentViewOptions","countConfig","onItemRendered","onItemContextMenu","getCollectorOffset","$workSpace","_workSpaceConfig","initDragBehavior","getWorkArea","_recalculateWorkspace","_getViewByName","viewCount","_this7","triggerResizeEvent","_this8","accessKey","allDayExpanded","hoursInterval","_getTemplate","callback","silent","timer","_getTemplateByOption","_this9","getWorkSpaceScrollable","getScrollable","getWorkSpaceScrollableScrollTop","getGroupedScrollableScrollTop","getWorkSpaceScrollableScrollLeft","getScrollableScrollLeft","getWorkSpaceAllDayHeight","getAllDayHeight","getWorkSpaceAllDayOffset","getAllDayOffset","getWorkSpaceHeaderPanelHeight","getHeaderPanelHeight","getWorkSpaceDateTableOffset","getWorkSpace","getAppointmentModel","getHeader","getMaxAppointmentsPerCell","_convertDatesByTimezoneBack","applyAppointmentTimezone","sourceAppointmentData","targetAppointmentData","processedStartDate","processedEndDate","targetAppointment","singleAppointment","exceptionDate","isDeleted","isPopupEditing","_updatedRecAppointment","getRecurrenceRule","isValid","editMode","_singleAppointmentChangesHandler","_showRecurrenceChangeConfirm","processAppointmentDates","commonTimezoneOffset","isNaN","startDateClientTzOffset","endDateClientTzOffset","processedStartDateInUTC","processedEndDateInUTC","addAppointment","_makeDateAsRecurrenceException","updatedAppointment","_showAppointmentPopup","_editAppointmentData","_updateAppointment","_getStartDate","exceptionByDate","_getRecurrenceExceptionDate","exceptionStartDate","targetStartDate","appointmentStartDate","correctRecurrenceExceptionByTimezone","seriesText","occurrenceText","custom","messageHtml","showCloseButton","showTitle","buttons","_getUpdatedData","cellData","getTargetCellData","targetAllDay","targetEndDate","targetStartTime","targetEndTime","endData","updatedData","dateCopy","setResourcesToItem","_getCoordinates","initialDates","currentCoords","getCoordinatesByDateInGroup","initialStartDate","_isAppointmentRecurrence","appointmentEndDate","skipDateCalculation","resultAppointmentData","updatedStartDate","apptDataCalculator","getAppointmentDataCalculator","isFunction","isAppointmentResized","originalAppointmentStartDate","originalAppointmentEndDate","subscribe","Error","getDataByDroppableCell","onUpdatePrevented","updatingOptions","newData","oldData","performFailAction","err","_processActionResult","canceled","_expandAllDayPanel","always","_executeActionWhenOperationIsCompleted","actionOptions","_this10","resolveCallback","callbackResult","fromPromise","isPromise","state","isError","error","isVisible","visibleButtons","isProcessTimeZone","getAppointmentPopup","getPopup","getUpdatedAppointment","getUpdatedAppointmentKeys","getResourceManager","getActions","skipNormalize","_getEndDate","isSameDate","_getRecurrenceException","exceptions","_convertRecurrenceException","exceptionString","convertedStartDate","convertedExceptionDate","dayHasAppointment","dayTimeStamp","startDateTimeStamp","endDateTimeStamp","setTargetedAppointmentResources","targetedAppointment","appointmentElement","appointmentIndex","getGroups","setResourceCallback","apptSettings","_positionMap","_getCellGroups","createNewAppointment","currentAppointmentData","isEmptyObject","saveChanges","showAppointmentTooltip","showAppointmentTooltipCore","isAlreadyShown","hours","minutes","_this11","addingOptions","clientOffset","updateAppointment","deletingOptions","getFirstDayOfWeek","_overlay","_overlay2","_tooltipStrategyBase","SLIDE_PANEL_CLASS_NAME","MAX_TABLET_OVERLAY_HEIGHT_FACTOR","MAX_HEIGHT","PHONE","TABLET","DEFAULT","MAX_WIDTH","animationConfig","from","my","at","getWindow","to","createPhoneDeviceConfig","listHeight","shading","createTabletDeviceConfig","currentMaxHeight","_TooltipStrategyBase","isTabletWidth","_createTooltipElement","closeOnOutsideClick","animation","onShowing","_onShowing","onShown","_onShown","_getContentTemplate","DATE_FILTER_POSITION","USER_FILTER_POSITION","FilterMaker","dataAccessors","_filterRegistry","_make","useAccessors","userFilter","user","compareDateWithStartDayHour","severalDays","dateTimeFromDecimal","compareDateWithEndDayHour","hiddenInterval","apptDuration","delta","apptStartHour","apptStartMinutes","AppointmentModel","baseAppointmentDuration","_updatedAppointmentKeys","_filterMaker","_baseAppointmentDuration","userFilterPosition","_excessFiltering","_combineRemoteFilter","dateFilter","dataSourceFilter","equalByValue","combine","keyOf","len","checkAppointmentResourceValues","appointmentResourceValues","itemDataCount","_appointmentPartInInterval","trimmedDates","_trimDates","dateInRecurrenceRange","apptStartDayHour","apptEndDayHour","filterOptions","timeZoneProcessor","getRecurrenceException","appointmentTakesSeveralDays","useRecurrence","_filterAppointmentByResources","comparableStartDate","comparableEndDate","_filterAppointmentByRRule","_initStoreChangeHandlers","clearRegistry","newItem","_updatedAppointment","pushItems","keyName","pushItem","itemExists","isRegistered","_serializeRemoteFilter","_createFilter","combinedFilter","_createCombinedFilter","customizeDateFilter","minCopy","maxCopy","_appointmentHasAllDayDuration","dayDuration","appointmentDurationInHours","_getAppointmentDurationInHours","_appointmentHasShortDayDuration","shortDayDurationInHours","currentFilter","fixWrongEndDate","_isEndDateWrong","_calculateAppointmentEndDate","setToDayEnd","insert","_getStoreKey","d","Editor","SelectBox","TIMEZONE_EDITOR_CLASS","TIMEZONE_DISPLAY_NAME_SELECTBOX_CLASS","TIMEZONE_IANA_ID_SELECTBOX_CLASS","SchedulerTimezoneEditor","_extendConfig","readOnly","_renderDisplayNameEditor","_renderIanaIdEditor","noTzTitle","_displayNameEditor","_renderSelectBox","onValueChanged","_processDisplayNameChanging","_ianaIdEditor","_idsDataSource","_calculateIanaIdEditorDisabledState","cssClass","selectBox","tzIds","tzId","ROW_SELECTOR","SchedulerTableCreator","HORIZONTAL","insertAllDayRow","allDayElements","tableBody","row","makeTable","templateCallbacks","rowCountInGroup","allDayElementIndex","isLastRowInGroup","td","cellDataObject","dataKey","dataValue","getCellData","getCellDate","innerHTML","makeGroupedTable","cssClasses","_makeVerticalGroupedRows","_makeHorizontalGroupedRows","cellStorage","childrenField","titleField","createTable","getChildCount","createCell","childCount","createTextNode","generateCells","putCellsToRows","cells","rowspans","prev","rowspan","reverse","setAttribute","_makeFlexGroupedRowCells","repeatByDate","itemCount","groupHeaderClass","cellsArray","cellIterator","_i","groupHeaderRowClass","_i2","currentColumnLength","_makeGroupedRowCells","maxCellCount","colspan","groupHeaderContentClass","SchedulerTimeline","TIMELINE_CLASS","SchedulerTimelineMonth","_updateScrollable","_getDateHeaderTemplate","_getHiddenInterval","_getIndicationFirstViewDate","calculateEndViewDate","dateOfLastViewCell","_formatWeekdayAndDay","needUpdateScrollPosition","bounds","_dateWithinBounds","SchedulerTimelineWeek","_getWeekDuration","_getHeaderPanelCellWidth","$headerRow","first","_needRenderWeekHeader","_incrementDate","_uiSchedulerAppointmentsPositioningStrategy","_uiSchedulerAppointmentsPositioningStrategy2","_uiSchedulerAppointmentsPositioningStrategy3","_uiSchedulerAppointmentsPositioningStrategy4","APPOINTMENT_MIN_SIZE","APPOINTMENT_DEFAULT_HEIGHT","COMPACT_THEME_APPOINTMENT_DEFAULT_HEIGHT","DROP_DOWN_BUTTON_ADAPTIVE_SIZE","BaseRenderingStrategy","_initPositioningStrategy","getCollectorTopOffset","getCollectorLeftOffset","_positioningStrategy","_isAdaptive","_maxAppointmentCountPerCell","_defaultWidth","_cellWidth","_defaultHeight","_cellHeight","_allDayHeight","_allDayCellHeight","_getItemPosition","_isRtl","_correctRtlCoordinates","positionArray","_getSortedPositions","resultPositions","_getResultPositions","_getExtendedPositionMap","intervalWidth","initialWidth","coordinate","_getAppointmentCoordinates","calculateAppointmentHeight","calculateAppointmentWidth","resultWidth","multiWeekAppointmentParts","initialRowIndex","initialCellIndex","_needVerifyItemSize","currentMaxAllowedPosition","hMax","isAppointmentGreaterThan","_reduceMultiWeekAppointment","_getAppointmentParts","sourceAppointmentWidth","reducedWidth","_getAppointmentPartsPosition","appointmentParts","unshift","appointmentWidth","bound","etalon","comparisonParameters","positionList","createItem","bottom","_positionList$rowInde","_sortCondition","isSomeEdge","_isSomeEdge","columnCondition","_normalizeCondition","rowCondition","cellPositionCondition","conditions","_getConditions","second","abs","firstItem","secondItem","areItemsInTheSameTable","areItemsAllDay","orientation","_getOrientation","_checkItemsCrossing","firstItemSide_1","firstItemSide_2","secondItemSide_1","secondItemSide_2","isItemCross","sortedArray","currentItem","itemIndex","maxIndexInStack","stack","findFreeIndex","isFind","currentIndex","_skipSortedIndex","startNewStack","pushItemsInResult","count","_isItemsCross","_getMaxAppointmentCountPerCell","arr","iKey","jKey","iValue","jValue","positions","positionCounter","mapLength","resultString","itemLength","_checkLongCompactAppointment","_splitLongCompactAppointment","appointmentCountPerCell","_getMaxAppointmentCountPerCellByType","compactCount","_getCompactAppointmentParts","k","compactPart","_getCompactLeftCoordinate","rangeStartDate","ignoreViewDates","realStartDate","viewStartDate","recurrencePartStartDate","recurrencePartCroppedByViewStartDate","fullDuration","headDuration","tailDuration","viewEndDate","roundToHour","currentViewEndTime","daylightDiff","getDaylightOffset","_needAdjustDuration","_calculateDurationByDaylightDiff","countFullWidthAppointmentInCell","getPositioningStrategy","getDropDownAppointmentWidth","getDropDownAppointmentHeight","topOffset","appointmentHeight","appointmentTop","_correctCollectorCoordinatesInAdaptive","_markAppointmentAsVirtual","_isAppointmentEmpty","_getAppointmentMinHeight","_getAppointmentMinWidth","overlappingMode","_getOffsets","appointmentDefaultOffset","_getAppointmentCount","ratio","_getDefaultRatio","maxHeight","_getMaxHeight","isNumeric","unlimited","_getDynamicAppointmentCountPerCell","getDynamicAppointmentCountPerCell","pop","getAppointmentDefaultOffset","_getAppointmentHeightByTheme","_getAppointmentDefaultWidth","SchedulerTimelineDay","eventsEngine","dataUtils","windowUtils","abstract","pointerEvents","contextMenuEvent","dragEvents","Scrollable","HorizontalGroupedStrategy","VerticalGroupedStrategy","VerticalShader","FIXED_CONTAINER_CLASS","timeZoneUtils","GROUPED_WORKSPACE_CLASS","VERTICAL_GROUPED_WORKSPACE_CLASS","WORKSPACE_VERTICAL_GROUP_TABLE_CLASS","WORKSPACE_WITH_BOTH_SCROLLS_CLASS","WORKSPACE_WITH_COUNT_CLASS","WORKSPACE_WITH_GROUP_BY_DATE_CLASS","WORKSPACE_WITH_ODD_CELLS_CLASS","TIME_PANEL_CLASS","ALL_DAY_PANEL_CLASS","ALL_DAY_TABLE_CLASS","ALL_DAY_CONTAINER_CLASS","ALL_DAY_TITLE_CLASS","ALL_DAY_TITLE_HIDDEN_CLASS","ALL_DAY_TABLE_CELL_CLASS","ALL_DAY_TABLE_ROW_CLASS","WORKSPACE_WITH_ALL_DAY_CLASS","WORKSPACE_WITH_COLLAPSED_ALL_DAY_CLASS","WORKSPACE_WITH_MOUSE_SELECTION_CLASS","HORIZONTAL_SIZES_CLASS","VERTICAL_SIZES_CLASS","HEADER_PANEL_CLASS","HEADER_PANEL_CELL_CLASS","HEADER_ROW_CLASS","GROUP_ROW_CLASS","GROUP_HEADER_CLASS","GROUP_HEADER_CONTENT_CLASS","DATE_TABLE_CLASS","DATE_TABLE_CELL_CLASS","DATE_TABLE_ROW_CLASS","DATE_TABLE_FOCUSED_CELL_CLASS","DATE_TABLE_DROPPABLE_CELL_CLASS","SCHEDULER_HEADER_SCROLLABLE_CLASS","SCHEDULER_SIDEBAR_SCROLLABLE_CLASS","SCHEDULER_DATE_TABLE_SCROLLABLE_CLASS","SCHEDULER_WORKSPACE_DXPOINTERDOWN_EVENT_NAME","down","SCHEDULER_CELL_DXDRAGENTER_EVENT_NAME","enter","SCHEDULER_CELL_DXDROP_EVENT_NAME","drop","SCHEDULER_CELL_DXDRAGLEAVE_EVENT_NAME","leave","SCHEDULER_CELL_DXCLICK_EVENT_NAME","SCHEDULER_CELL_DXPOINTERDOWN_EVENT_NAME","SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME","up","SCHEDULER_CELL_DXPOINTERMOVE_EVENT_NAME","CELL_DATA","DATE_TABLE_CELL_BORDER","DATE_TABLE_MIN_CELL_WIDTH","DAY_MS","HOUR_MS","SCHEDULER_DRAG_AND_DROP_SELECTOR","ScrollSemaphore","counter","formatWeekday","getDayNames","getDay","clickHandler","_focusedCells","$cellElement","_showPopup","_cellClickAction","cellElement","arrowPressHandler","_moveToCell","space","downArrow","_getCellFromNextRow","upArrow","rightArrow","$rightCell","_getCellFromNextColumn","leftArrow","$leftCell","_isRTL","_getFocusedCell","_$focusedCell","_getAllFocusedCells","$currentCell","_checkForViewBounds","isMultiSelection","$focusedCell","$nextCell","nextColumnDirection","isDirectionNext","previousColumnDirection","isRTL","isHorizontalGrouping","_isHorizontalGroupedWorkSpace","totalCellCount","_getTotalCellCount","rowCellCount","lastIndexInRow","isEdgeCell","_isEdgeCell","sign","directionSign","resultingSign","_isGroupEndCell","nextIndex","rowDirection","rightEdgeCellIndex","leftEdgeCellIndex","edgeCellIndex","isNextCellGreaterThanEdge","isNextCellLessThanEdge","isRightEdgeCell","isLeftEdgeCell","cellsInRow","currentCellIndex","endCell","startCell","_setFocusedCell","scrollToElement","_releaseFocusedCell","_correctCellForGroup","$targetCells","_getCellsBetween","_$prevCell","$focusedCells","_toggleFocusClass","setAria","_toggleFocusedCellClass","getFocusedCellData","_selectionChangedAction","cellGroupIndex","_getGroupIndexByCell","focusedCellGroupIndex","isDifferentTables","_hasAllDayClass","$first","$last","isAllDayTable","firstIndex","buffer","focusedGroupIndex","hasClass","getGroupIndexByCell","isFocused","$focusTarget","is","_isCellClick","_contextMenuHandled","groupOrientation","_removeAllDayElements","_initGrouping","_initGroupedStrategy","_createAllDayPanelElements","_toggleGroupByDateClass","headerPanelOffsetRecalculate","_createSelectionChangedAction","_createCellClickAction","_toggleWorkSpaceCountClass","_dateTableScrollableConfig","_toggleGroupedClass","_toggleWorkSpaceWithOddCells","_headerSemaphore","_sideBarSemaphore","_dataTableSemaphore","_toggleGroupingDirectionClass","strategyName","_getDefaultGroupStrategy","Strategy","_isWorkspaceWithOddCells","_getRealGroupOrientation","_needApplyLastGroupCellClass","addAdditionalGroupCellClasses","_$headerPanel","_$thead","_$fixedContainer","_$allDayContainer","_initAllDayPanelElements","_allDayTitles","_allDayTables","_allDayPanels","$allDayTitle","_$allDayTable","_$allDayPanel","_$allDayTitle","_initDateTableScrollable","$dateTableScrollable","useKeyboard","bounceEnabled","updateManually","pushBackValue","take","isFree","_sidebarScrollable","scrollTo","scrollOffset","_headerScrollable","release","_createHeaderScrollable","_createSidebarScrollable","$headerScrollable","_headerScrollableConfig","showScrollbar","useNative","onScroll","$timePanelScrollable","_setHorizontalGroupHeaderCellsHeight","_attachTableClasses","_addTableClass","_attachHeaderTableClasses","$el","getCellMinWidth","minWidth","getWorkSpaceMinWidth","$headerCells","last","allDayRowCount","_setFocusOnCellByOption","_renderDateHeader","_updateGroupTableHeight","_getGroupIndexByResourceId","_getCellByCoordinates","resourceTree","_getGroupIndexRecursively","currentKey","currentValue","reduce","prevIndex","_ref","areValuesEqual","_firstDayOfWeek","_getIntervalDuration","pointerDownAction","_createAction","_pointerDownHandler","cellSelector","isMouseEvent","which","_moveToClosestNonStub","_hasFocusClass","_showAddAppointmentPopup","firstCellData","lastCellData","_createContextMenuAction","eventName","NAME","_contextMenuHandler","_contextMenuAction","_getDateHeaderContainer","templates","groupedAttr","getGroupCountAttr","groupRowCount","headerPanelHeight","headerHeight","allDayPanelHeight","getAllDayTableHeight","paddingBottom","marginBottom","tableCreatorStrategy","_calculateHeaderCellRepeatCount","_renderDateHeaderTemplate","calculatedIndex","_getHeaderText","calculateHeaderCellRepeatCount","_getAllDayPanelCellClass","_getAllDayCellData","_getGroupIndex","toggle","calculateTimeCellRepeatCount","_getDateWithSkippedDST","_getTimeText","_getTimeCellDateCore","isTimezoneChangeInDate","_getCellCountInDay","skipRound","_getTimeCellDateAdjustedDST","timeCellDuration","cellCountInDay","_getTotalRowCount","_getCellData","insertAllDayRowsIntoDateTable","getTotalCellCount","getTotalRowCount","getGroupIndex","findLeafByIndex","_leaf","makeBranch","leaf","isPointerDown","itemSizeFunc","checkDropTarget","_isOutsideScrollable","_$currentTableTarget","removeDroppableCellClass","draggingElement","getDocument","removeClass","_getDateTables","_getDateTable","_getAllDayTable","_interval","calculateCellIndex","delayCellTemplateRendering","_hiddenInterval","getScrollableScrollTop","scrollTop","scrollLeft","getScrollableOuterWidth","scrollWidth","_container","getGroupTableWidth","getLeftOffset","getGroupedStrategy","patchedIndexes","_patchCellIndex","_getMillisecondsOffset","_getOffsetByCount","setTime","dayCount","getVisibleDayDuration","startDayTime","fullInterval","days","_getDaysOfInterval","weekendsCount","_getGroupIndexes","_getDroppableCell","_getWorkSpaceWidth","inAllDayRow","cellCoordinates","_getCellPosition","setCellDataCache","prepareCellIndexes","_getGroupHeaderCellsContent","_getScrollCoordinates","$dateTableScrollableElement","scrollableSize","window","isTargetInAllDayPanel","isOutsideHorizontalScrollable","pageX","scrollX","isOutsideVerticalScrollable","pageY","scrollY","getCellDataCache","JSON","stringify","setCellDataCacheAlias","aliasKey","_cache","_maxAllowedVerticalPosition","_maxAllowedPosition","_getMultipleCellsData","_getHorizontalMax","getHorizontalMax","getCellIndexByDate","shift","getTimeShift","horizontalHMax","vMax","getVerticalMax","_getOffsetByAllDayPanel","_getGroupTop","timeInterval","currentDayStart","currentDayEndHour","currentDateTime","currentDayStartTime","minTime","_isSkippedData","getDroppableCellIndex","$droppableCell","startIndex","getMaxAllowedPosition","isRtl","maxPosition","getMaxAllowedVerticalPosition","getCellIndexByCoordinates","leftOffset","topIndex","leftIndex","getDateOfLastViewCell","endDateOfLastViewCell","_adjustEndViewDateByDaylightDiff","getDaylightOffsetInMs","getGroupBounds","getGroupBoundsOffset","startOffset","needRecalculateResizableArea","getVisibleBounds","$scrollable","scrolledCellCount","updateScrollPosition","startDateHour","startDateMinutes","isUpdateNeeded","getGroupWidth","currentPosition","scrollable","scrollBy","getDistanceBetweenCells","endIndex","dragBehavior","addTo","_isApplyCompactAppointmentOffset","DEFAULT_APPOINTMENT_HEIGHT","MIN_APPOINTMENT_HEIGHT","DROP_DOWN_BUTTON_OFFSET","HorizontalRenderingStrategy","_BaseAppointmentsStra","_getAppointmentDurationInMs","durationInCells","_customizeAppointmentGeometry","_calculateGeometryConfig","_customizeCoordinates","auto","itemLeft","getDefaultCellHeight","_columnCondition","deltaWidth","DATE_TIME_SHADER_ALL_DAY_CLASS","DATE_TIME_SHADER_TOP_CLASS","DATE_TIME_SHADER_BOTTOM_CLASS","VerticalCurrentTimeShader","_CurrentTimeShader","shaderHeight","_getShaderHeight","_getShaderMaxHeight","isSolidShader","_$shader","_renderGroupedByDateShaderParts","_renderShaderParts","shaderWidth","_getShaderWidth","_renderTopShader","_renderBottomShader","_renderAllDayShader","bottomShaderWidth","$shader","_$topShader","_getShaderTopOffset","_getShaderOffset","_$bottomShader","_$allDayIndicator","getShaderOffset","getShaderTopOffset","getShaderHeight","getShaderMaxHeight","getShaderWidth","DAY_CLASS","SchedulerWorkSpaceDay","_SchedulerWorkSpaceVe","_uiSchedulerWork_space","_uiSchedulerWork_space2","SchedulerWorkspaceVertical","_SchedulerWorkSpace","firstColumn","firstRow","lastColumn","lastRow","lastCellGroup","indexesDifference","newFirstIndex","newLastIndex","leastDaysInWeek","ruleNames","freqNames","SU","MO","TU","WE","TH","FR","SA","daysNames","0","1","2","3","4","5","6","intervalMap","secondly","minutely","hourly","daily","weekly","monthly","yearly","resultUtils","dateSetterMap","bysecond","setSeconds","byminute","setMinutes","byhour","bymonth","bymonthday","initialDate","setDateByNegativeValue","daysInMonth","getLastMonthDay","markWrongDate","byday","byDay","appointmentWeekStart","frequency","appointmentDayOfWeek","weekStart","byweekno","weekNumber","firstYearDate","dayShift","firstDayOfYear","newFirstYearDate","timezoneDiff","byyearday","dayOfYear","dateGetterMap","dayInMilliseconds","yearStart","daysFromYearStart","dayLength","getTimeZoneOffset","normalizeInterval","interval","freq","intervalObject","intervalField","getDatesByRecurrenceException","ruleValues","getDateByAsciiString","dateIsRecurrenceException","splitDates","exceptDates","shortFormat","match","diffs","getDatePartDiffs","years","months","doNextIteration","startIntervalDate","endIntervalDate","iterationCount","matchCountIsCorrect","dateInInterval","iterationResult","recurrenceStartDate","correctMaxDate","dateRules","splitDateRules","recurrenceEndDate","iteration","getDatesByCount","pushToResult","getDatesByRules","incrementDate","bysetpos","iterationIndex","iterationDates","filterDatesBySetPos","verifiedField","checkDate","checkDateByRule","wkst","bySetPos","resultArray","dateIndex","newMaxDate","setYear","getYear","correctDate","iterationStep","needCorrect","addInterval","expectedDate","dayNumber","date1","date2","seconds","recurrence","parseRecurrenceRule","validateRRule","loggedWarnings","brokenRuleNameExists","wrongCountRule","wrongIntervalRule","wrongDayOfWeek","wrongByMonthDayRule","wrongByMonth","wrongUntilRule","logBrokenRule","wrongUntil","wrongCount","wrongByMonthDay","byMonthDay","byMonth","wrongInterval","daysByRule","daysFromByDayRule","brokenDaysExist","brokenRuleExists","ruleName","ruleObject","ruleParts","ruleValue","string","arrayDate","isUTC","currentOffset","Function","prepareDateArrayToParse","getAsciiStringByDate","fdow","dayNames","keys","ruleFieldValues","ruleArray","getDateRuleArray","extendObjectArray","dateRule","handleRuleFieldValue","firstArray","secondArray","firstArrayLength","secondArrayLength","updatedDate","prepareDate","isWrongDate","_loop","checkedDates","checkedDate","delCount","weeks","weekStartRule","rules","currentRuleResult","processNegative","getRecurrenceString","toUpperCase","_uiSchedulerAppointmentsStrategy3","_uiSchedulerAppointmentsStrategy4","_uiSchedulerAppointmentsStrategy5","_uiSchedulerAppointmentsStrategy6","_uiSchedulerAppointmentsStrategy7","_uiSchedulerAppointmentsStrategy8","_uiSchedulerAppointmentsStrategy9","_uiSchedulerAppointmentsStrategy10","RENDERING_STRATEGIES","horizontal","horizontalMonth","horizontalMonthLine","vertical","AppointmentLayoutManager","allDayHeight","_renderingStrategyInstance","_this$getCellDimensio","getCellDimensions","getGroupOrientation","createTaskPositionMap","_createAppointmentsMapCore","list","positionMap","keepAppointmentSettings","sourceAppointment","sourceSetting","newSettings","oldSettings","sourceAppointments","currentAppointments","_getAssociatedSourceAppointment","_isDataChanged","_isSettingChanged","_isAppointmentShouldAppear","_getDeletedAppointments","BUTTON_GROUP_CLASS","BUTTON_GROUP_WRAPPER_CLASS","BUTTON_GROUP_ITEM_CLASS","BUTTON_GROUP_FIRST_ITEM_CLASS","BUTTON_GROUP_LAST_ITEM_CLASS","BUTTON_GROUP_ITEM_HAS_WIDTH","SHAPE_STANDARD_CLASS","ButtonCollection","_prepareItemStyles","_getBasicButtonOptions","_templateData","itemTemplateProperty","_renderItemContent","_renderItemContentByNode","$node","_keyboardEventBindingTarget","_refreshContent","_prepareContent","_itemSelectHandler","isItemSelected","ButtonGroup","selectedItems","keyExpr","buttonTemplate","_createItemClickAction","_itemClickAction","_renderButtons","_syncSelectionOptions","_fireSelectionChangeEvent","addedItems","removedItems","$buttons","_buttonsCollection","_setOptionWithoutOptionChange","_editor","_editor2","RADIO_BUTTON_CHECKED_CLASS","RADIO_BUTTON_CLASS","RADIO_BUTTON_ICON_CHECKED_CLASS","RADIO_BUTTON_ICON_CLASS","RADIO_BUTTON_ICON_DOT_CLASS","RADIO_GROUP_HORIZONTAL_CLASS","RADIO_GROUP_VERTICAL_CLASS","RADIO_VALUE_CONTAINER_CLASS","RADIO_GROUP_CLASS","RADIO_FEEDBACK_HIDE_TIMEOUT","RadioCollection","_CollectionWidget","defaultOptions","_dataExpressionDefaultOptions","_itemAttributes","role","deferRender","$radio","$radioContainer","isSelected","RadioGroup","_Editor","_super2","_inkRipple","defaultOptionsRules","tablet","layout","force","useInkRipple","_valueGetter","_$submitElement","_feedbackHideTimeout","_initDataExpressions","_renderSubmitElement","_renderRadios","_renderInkRipple","_renderLayout","newValue","_getItemValue","_saveValueChangeEvent","_setCollectionWidgetOption","_unwrappedValue","_dataExpressionOptionChanged","_setSelection","_getCollectionKeyExpr","_setSubmitValue","_updateItemsSize","waveSizeCoefficient","useHoldAnimation","isCentered","_areRadiosCreated","$radios","_this$option","isNullSelectable","_radios","selectionByClick","submitValue","_displayGetter","val","_setWidgetOption","showWave","hideWave","itemsCount","MONDAY_INDEX","SATURDAY_INDEX","SUNDAY_INDEX","isDataOnWeekend","firstDayOfWeekOption","getWeekendsCount","getFirstViewDate","viewStart","normalizeDateByWeek","WEEK_CLASS","SchedulerWorkSpaceWeek","ALLDAY_APPOINTMENT_MIN_VERTICAL_OFFSET","ALLDAY_APPOINTMENT_MAX_VERTICAL_OFFSET","VerticalRenderingStrategy","deltaHeight","getDropDownButtonAdaptiveSize","_getAllDayAppointmentGeometry","_getAdaptiveGeometry","_getVerticalAppointmentGeometry","isAppointmentTakesSeveralDays","isSameAppointmentDates","resultHeight","multiDaysAppointmentParts","_isMultiDayAppointment","_reduceMultiDayAppointment","sourceAppointmentHeight","reducedHeight","maxTop","appointmentGeometry","tailHeight","currentPartTop","minHeight","cellBorderSize","_calculateVerticalGeometryConfig","_customizeVerticalCoordinates","appointmentLeft","_getMaxWidth","durationInHours","durationInMinutes","_getMinuteHeight","allDayCondition","condition","_rowCondition","getDefaultAllDayCellHeight","_calendar","_calendar2","_popover","_popover2","_popup","_popup2","ELEMENT_CLASS","CALENDAR_CLASS","NEXT_BUTTON_CLASS","CAPTION_BUTTON_CLASS","PREVIOUS_BUTTON_CLASS","CALENDAR_POPOVER_CLASS","getDefaultFirstDayOfWeekIndex","getDateMonthFormat","short","getMonthYearFormat","getCaptionFormat","dateMonthFormat","lastIntervalDate","defaultViewDuration","isDifferentMonthDates","useShortFormat","firstWeekDateText","lastWeekDateText","getWeekCaption","rejectWeekend","firstWeekDate","weekendDuration","lastWeekDate","formatCaptionByMonths","lastDate","lastDateText","firstDateText","isDifferentYears","getMonthCaption","getLastMonthDate","isSameYear","getConfig","getCaption","_getConfig","displayedDate","_useShortDateFormat","_updateButtonsState","_renderCaption","_setCalendarOption","_next","_caption","_prev","_initButtons","$next","_updateCurrentDate","integrationOptions","$caption","$prev","caption","_getNextDate","normalizeDate","stepConfig","_renderPopover","_renderCaptionKeys","_isMobileLayout","overlayType","popoverContainer","_createPopupContent","fullScreen","toolbarItems","shortcut","_createScrollable","content","_calendarOptions","hasFocus","captionConfig","customizationFunction","onKeyboardHandled","opts","_keyboardHandler","executeHandler","registerKeyHandler","VueType","Vue","scheduler_1","component_1","configuration_component_1","DxScheduler","extends","DxComponent","String","Boolean","elementAttr","validator","v","hint","onDisposing","onInitialized","onOptionChanged","computed","$_instance","beforeCreate","$_WidgetClass","$_expectedChildren","isCollectionItem","DxAppointmentDragging","DxConfiguration","autoScroll","scrollSensitivity","scrollSpeed","$_optionName","DxEditing","DxResource","$_isCollectionItem","DxView","_uiSchedulerWork_spaceGrouped","_uiSchedulerWork_spaceGrouped2","VERTICAL_GROUPED_ATTR","DATE_HEADER_OFFSET","WORK_SPACE_BORDER","_GroupedStrategy","_addLastGroupCellClass","_addFirstGroupCellClass","getLastGroupCellClass","getFirstGroupCellClass","maxAllowedPosition","workspaceContainerWidth","endOffset","dayHeight","bottomOffset","tableOffset","horizontalOffset","verticalOffset","_$container","LIST_ITEM_CLASS","REDUCED_APPOINTMENT_CLASS","REDUCED_APPOINTMENT_ICON","RECURRENCE_APPOINTMENT_CLASS","EMPTY_APPOINTMENT_CLASS","ALL_DAY_APPOINTMENT_CLASS","REDUCED_APPOINTMENT_PARTS_CLASSES","head","body","tail","DIRECTION_APPOINTMENT_CLASSES","AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS","_pointer","_pointer2","_dom_component","_dom_component2","_resizable","_resizable2","DEFAULT_HORIZONTAL_HANDLES","DEFAULT_VERTICAL_HANDLES","REDUCED_APPOINTMENT_POINTERENTER_EVENT_NAME","REDUCED_APPOINTMENT_POINTERLEAVE_EVENT_NAME","Appointment","_getHorizontalResizingRule","reducedHandles","_getVerticalResizingRule","_renderAppointmentGeometry","_renderEmptyClass","_renderReducedAppointment","_renderAllDayClass","_renderDirection","_renderRecurrenceClass","_renderResizable","reducedPart","_renderAppointmentReducedIcon","$icon","tooltipLabel","tooltipText","_createResizingConfig","roundStepValue","stepPrecision","_useTemplates","APPOINTMENT_COLLECTOR_CLASS","COMPACT_APPOINTMENT_COLLECTOR_CLASS","APPOINTMENT_COLLECTOR_CONTENT_CLASS","WEEK_VIEW_COLLECTOR_OFFSET","COMPACT_THEME_WEEK_VIEW_COLLECTOR_OFFSET","_createTemplate","button","_createCompactButton","$button","_makeBackgroundColor","_makeBackgroundDarker","_createAppointmentsData","_getExtraOptionsForTooltip","_clickEvent","_createTooltipDragBehavior","isButtonClick","createClickEvent","extendFromObject","dragElement","cursorOffset","$dragElement","dragTemplate","_createDragAppointment","resetPosition","_getCollectorRightOffset","_makeBackgroundColorCore","itemsColors","currentItemColor","paintButton","_createCompactButtonElement","_onButtonClick","_getCollectorOffset","_setPosition","appointmentCount","_initButtonTemplate","appointmentCollector","_createButtonTemplate","getFormatter","HORIZONTAL_GROUPED_ATTR","inAllDay","groupByDay","startCellIndex","_getIndicatorOffset","_calculateGroupByDateOffset","_calculateOffset","MONTH_APPOINTMENT_HEIGHT_RATIO","MONTH_APPOINTMENT_MIN_OFFSET","MONTH_APPOINTMENT_MAX_OFFSET","MONTH_DROPDOWN_APPOINTMENT_MIN_RIGHT_OFFSET","MONTH_DROPDOWN_APPOINTMENT_MAX_RIGHT_OFFSET","HorizontalMonthRenderingStrategy","_HorizontalMonthLineA","fullWeekAppointmentWidth","_getFullWeekAppointmentWidth","maxAppointmentWidth","_getMaxAppointmentWidth","longPartCount","realTailWidth","tailWidth","totalWidth","_calculateMultiWeekAppointmentLeftOffset","_maxFullWeekAppointmentWidth","_guid","_guid2","_radio_group","_radio_group2","_button_group","_button_group2","_number_box","_number_box2","_select_box","_select_box2","_date_box","_date_box2","RECURRENCE_EDITOR","LABEL_POSTFIX","WRAPPER_POSTFIX","RECURRENCE_EDITOR_CONTAINER","FREQUENCY_EDITOR","INTERVAL_EDITOR","INTERVAL_EDITOR_FIELD","REPEAT_END_EDITOR","REPEAT_END_EDITOR_CONTAINER","REPEAT_TYPE_EDITOR","REPEAT_COUNT_EDITOR","REPEAT_UNTIL_DATE_EDITOR","REPEAT_ON_EDITOR","REPEAT_ON_MONTH_EDITOR","DAY_OF_MONTH","REPEAT_ON_YEAR_EDITOR","MONTH_OF_YEAR","FIELD_CLASS","RECURRENCE_FREQ_FIELD","FIELD_LABEL_CLASS","FIELD_VALUE_CLASS","RECURRENCE_BUTTON_GROUP","defaultRecurrenceTypeIndex","frequenciesMessages","frequencies","repeatEndTypes","RecurrenceRule","_recurrenceRule","RecurrenceEditor","_getFirstDayOfWeek","_renderEditors","changeValueByVisibility","_handleDefaults","makeRules","makeRule","_changeEditorValue","recurrenceString","_renderFreqEditor","_renderIntervalEditor","_renderRepeatOnEditor","_renderRepeatEndEditor","$freqEditor","$freqEditorLabel","_freqEditor","_valueChangedHandler","$field","$intervalEditor","$intervalEditorLabel","_$intervalTypeLabel","charAt","substr","_intervalEditor","showSpinButtons","useLargeSpinButtons","_setAriaDescribedBy","_clearRepeatOnEditor","_$repeatOnEditor","_clearRepeatOnLabel","_$repeatOnLabel","_renderRepeatOnLabel","_$repeatOnWeek","_$repeatOnMonth","_$repeatOnYear","_renderRepeatOnYearEditor","_renderRepeatOnMonthEditor","_renderRepeatOnWeekEditor","_getDayIndex","localDaysNames","itemsButtonGroup","_weekEditor","selectedKeys","_daysOfWeekByRules","_renderDayOfMonthEditor","monthsNames","_monthOfYearByRules","$monthOfYear","monthChanged","monthValue","_dayEditor","maxAllowedDay","_monthEditor","monthByRule","_dayOfMonthByRules","$dayEditor","dayByRule","editor","$label","labelId","_handleRepeatEndDefaults","repeatableRule","_$repeatEndEditor","_renderRepeatEndTypeEditor","repeatType","_$repeatTypeEditor","_repeatTypeEditor","_renderRepeatCountEditor","_renderRepeatUntilEditor","_renderDefaultRepeatEnd","_repeatTypeValueChangedHandler","_disableRepeatEndParts","$editorTemplate","_getUntilValue","_repeatCountEditor","_repeatUntilDate","_$repeatCountEditor","_repeatCountValueChangeHandler","_formatUntilDate","repeatUntil","_$repeatDateEditor","_repeatUntilValueChangeHandler","calendarOptions","untilDate","_makeRepeatOnRule","_changeRepeatCountValue","_changeEditorsValues","_changeRepeatTypeLabel","_changeRepeatUntilValue","_changeDayOfMonthValue","_changeMonthOfYearValue","$labels","_switchEditor","HorizontalCurrentTimeShader","isFirstShader","createShader","applyShaderMargin","_customizeGroupedByDateShader","_customizeShader","_applyShaderWidth","indicationWidth","shaderLeft","getIndicationCellCount","integerPart","fractionPart","isFirstShaderPart","APPOINTMENT_POPUP_CLASS","APPOINTMENT_POPUP_WIDTH","APPOINTMENT_POPUP_WIDTH_WITH_RECURRENCE","APPOINTMENT_POPUP_FULLSCREEN_WINDOW_WIDTH","APPOINTMENT_POPUP_FULLSCREEN_WINDOW_WIDTH_MOBILE","APPOINTMENT_POPUP_WIDTH_MOBILE","TOOLBAR_ITEM_AFTER_LOCATION","TOOLBAR_ITEM_BEFORE_LOCATION","AppointmentPopup","_appointmentForm","lastEditData","saveChangesLocker","processTimeZone","isEmptyText","isEmptyDescription","isDoneButtonVisible","_updateForm","popupConfig","_createPopupConfig","_createPopup","_createPopupToolbarItems","_$popup","popupElement","onHiding","android","arg","form","popup","formElement","_createForm","repeat","_getAllowTimeZoneEditing","formData","_createAppointmentFormData","AppointmentForm","prepareAppointmentFormEditors","changeSize","concatResources","getEditors","_this$state$appointme","_this$scheduler$_data","recurrenceEditorOptions","_getEditorOptions","APPOINTMENT_FORM_GROUP_NAMES","Recurrence","_setEditorOptions","updateFormData","setEditorsType","itemOption","editorPath","_tryGetWindowWidth","_isDeviceMobile","isRecurrence","isFullScreen","_isPopupFullScreenNeeded","isIOs","platform","location","_doneButtonClickHandler","showLoadPanel","validation","validate","convert","dateFieldName","_showLoadPanel","complete","_hideLoadPanel","_getFormData","recData","saveEditData","_tryLockSaveChanges","_unlockSaveChanges","$overlayContent","overlayContent","workWeekUtils","LAST_DAY_WEEK_INDEX","SchedulerTimelineWorkWeek","weekendCount","AgendaRenderingStrategy","appointmentsByResources","groupedAppts","appts","recurrentIndexes","recurrenceBatch","appointmentBatch","appt","_calculateGroupIndex","apptIndex","resultInd","countApptInGroup","needClearSettings","groupedAppointments","groupResult","appointmentIsRecurrence","indexInRow","_iterateRow","calculatedStartDate","getDateByIndex","wrappedOriginalStartDate","HorizontalShader","HORIZONTAL_GROUPED_WORKSPACE_CLASS","HEADER_PANEL_WEEK_CELL_CLASS","DATE_TABLE_HEADER_MARGIN","_$sidebarTable","dayIndex","_getWorkSpaceHeight","timelineConfig","scrollByContent","$th","before","groupCellTemplates","differenceInDays","_getWorkSpaceMinHeight","$groupCells","workspaceContainerHeight","_ensureGroupHeaderCellsHeight","minCellHeight","_calculateMinCellHeight","dateTable","dateTableRowSelector","firstViewDateTime","apptStart","fullDays","tailDelta","gapBeforeAppt","positionShift","scrollableOffset","visibleCellCount","leftDate","rightDate","trimmedDate","COLLECTOR_ADAPTIVE_SIZE","COLLECTOR_ADAPTIVE_BOTTOM_OFFSET","ADAPTIVE_APPOINTMENT_DEFAULT_OFFSET","ADAPTIVE_APPOINTMENT_DEFAULT_WIDTH","AdaptivePositioningStrategy","_BasePositioningStrat","WORK_WEEK_CLASS","dayIndexes","weekCounter","SchedulerWorkSpaceWorkWeek","_SchedulerWorkSpaceWe","_len","_key","cellsInGroup","inGroup","devices","inkRipple","feedbackEvents","themes","fx","Swipeable","SWITCH_CLASS","SWITCH_WRAPPER_CLASS","SWITCH_CONTAINER_CLASS","SWITCH_INNER_CLASS","SWITCH_HANDLE_CLASS","SWITCH_ON_VALUE_CLASS","SWITCH_ON_CLASS","SWITCH_OFF_CLASS","SWITCH_ANIMATION_DURATION","Switch","click","_clickAction","_animateValue","switchedOnText","_getLocalizationMessage","switchedOffText","_animateHandle","themeName","_device","isIos7","onText","offText","newMessage","oldMessage","_animating","_renderContainers","_$switchWrapper","_renderClick","_renderSwipeable","_renderSwitchInner","_renderLabels","_renderValue","_getInnerOffset","_offsetDirection","_getHandleOffset","calcValue","_$switchInner","_$switchContainer","_$handle","_$labelOn","_$labelOff","_setLabelsText","elastic","onStart","_swipeStartHandler","onUpdated","_swipeUpdateHandler","onEnd","_swipeEndHandler","_getItemSizeFunc","_getSubmitElement","wavesNumber","_renderInkWave","dxEvent","doRender","waveIndex","wave","_updateFocusState","_toggleActiveState","_renderPosition","swipeOffset","handleOffset","_validateValue","check","_clickHandler","_swiping","startValue","endValue","fromInnerOffset","toInnerOffset","fromHandleOffset","toHandleOffset","fromInnerConfig","toInnerConfig","fromHandleConfig","toHandlerConfig","transform","animate","maxOffOffset","maxOnOffset","maxLeftOffset","maxRightOffset","_feedbackDeferred","lock","offsetDirection","toHandleConfig","targetOffset","pos","pressed","_marginBound","_refresh","getTimezoneOffsetChangeInMinutes","updatedEndDate","timezone","dateUtc","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","_getDaylightOffsetByTimezone","startDateTimezone","daylightOffsetByCommonTimezone","daylightOffsetByAppointmentTimezone","exceptionByStartDate","isBackConversion","timezoneOffset","startDayDate","endDayDate","utils","viewPortUtils","LoadPanel","loading","createLoadPanel","removeLoadPanel","DATE_TIME_SHADER_CLASS","CurrentTimeShader","initShaderElements","renderShader","shader","_tooltip2","APPOINTMENT_TOOLTIP_WRAPPER_CLASS","MAX_TOOLTIP_HEIGHT","boundary","_getBoundary","collision","tooltip","subscribes","isCurrentViewAgenda","currentViewUpdated","currentDateUpdated","needCoordinates","recurrenceOptions","roundDateByStartDayHour","needSeparateAppointment","datesLength","longParts","resultDates","endDateOfPart","getDatesOfInterval","milliseconds","el","itemResources","targetedData","showAddAppointmentPopup","processedData","showEditAppointmentPopup","updateAppointmentAfterResize","getUpdatedData","updateAppointmentAfterDrag","newCellIndex","oldCellIndex","becomeAllDay","wasAllDay","movedToAllDay","movedBetweenAllDayAndSimple","getAppointmentColor","resourcesManager","resourceForPainting","getResourceForPainting","resourceValues","groupId","getResourceColor","getHeaderHeight","_$element","getBoundOffset","appointmentFields","formatType","_getAppointmentFields","arrayOfFields","accumulator","_getTypeFormat","_createAppointmentTitle","_formatDates","dateFormat","timeFormat","isDurationLessThanDay","getResizableAppointmentArea","_needHorizontalGroupBounds","horizontalGroupBounds","_needVerticalGroupBounds","verticalGroupBounds","getAppointmentGeometry","getDeltaTime","getResizableStep","getEndDate","getMaxAppointmentCountPerCellByType","needCorrectAppointmentDates","getRenderingStrategyDirection","getDirection","getFullWeekAppointmentWidth","getMaxAppointmentWidth","updateAppointmentStartDate","updateAppointmentEndDate","renderCompactAppointments","clearCompactAppointments","clear","supportCompactDropDownAppointments","isApplyCompactAppointmentOffset","getGroupCount","mapAppointmentFields","getOffsetByAllDayPanel","getGroupTop","updateResizableArea","$allResizableElements","horizontalResizables","resizableInst","dxResizable","setField","splitExprStr","rootField","emptyChain","tmp","arrLength","prerenderFilter","filterLoadedAppointments","convertDateByTimezone","createReducedResourcesTree","groupAppointmentsByResources","totalResourceCount","getAgendaRows","rowsCalculated","getAgendaDuration","forceMaxAppointmentPerCell","onAgendaReady","$appts","total","applyClass","getTimezone","appointmentTimezone","tzOffsets","getComplexOffsets","translateDateToAppointmentTimeZone","translateDateToCommonTimeZone","convertDateByTimezoneBack","back","operation","dateInUTC","client","common","hoursOffset","minutesOffset","clientTimezoneOffset","appointmentTimezoneOffset","getTargetedAppointmentData","needConvertByTimezones","$appointmentElement","_itemIndexKey","getAppointmentDurationInMs","ceilQuantityOfDays","isDifferentDates","floorQuantityOfDays","startDateEndHour","hiddenDayDuration","endPartDuration","calculateAppointmentEndDate","getEndDayHour","getStartDayHour","moveBack","validateDayHours","_form","_form2","SCREEN_SIZE_OF_SINGLE_COLUMN","Main","SchedulerAppointmentForm","_lockDateShiftFlag","_validateAppointmentFormDate","previousValue","isCurrentDateCorrect","isPreviousDateCorrect","_getAllDayStartDate","_getAllDayEndDate","_getStartDateWithStartHour","componentCreator","isReadOnly","_editors","showValidationSummary","colCount","colCountByScreen","lg","xs","showColonAfterLabel","labelLocation","screenByWidth","_dateBoxValueChanged","dateExpr","isNeedCorrect","dateEditor","getEditor","dateValue","_getTimezoneEditor","timeZoneExpr","secondTimeZoneExpr","visibleIndex","colSpan","schedulerInst","isMainTimeZone","isShow","secondTimezoneEditor","_getDateBoxEditor","dataExpr","validationRules","_getDateBoxItems","dataExprs","_getMainItems","itemType","startDateEditor","endDateEditor","allDayStartDate","startDateWithStartHour","_updateRecurrenceItemVisibility","_form$getEditor","updateData","recurrenceEditorVisibility","_createRecurrenceEditor","startDateItemPath","endDateItemPath","startDateFormItem","endDateFormItem","startDateEditorOptions","endDateEditorOptions","appointmentForm","_vm","_h","$createElement","_c","_self","attrs","directives","rawName","menu","nm_menu_titulo","expression","staticClass","_v","_s","staticStyle","$event","select_data","colorID","carregaDados","ref","dataSourceConfig","OpenCell","ClickCell","addEvento","AttEvento","scopedSlots","_u","fn","fechaPopup","clientes","usuarios","$$v","Expansor","onGeraAgenda","PopupAppointment","proxy","dt_atendimento","onCliente","cliente","onUsuario","usuario","undefined","list_cell","cd_horario_composicao","CancelaEvento","_e","staticRenderFns","components","RangeData","carregando","cd_menuID","cd_apiID","editID","insertID","cores","resourcesData","cd_empresa","localStorage","cd_usuario","cd_modulo","cd_menu","cd_api","api","PopupDate","DateClick","watch","parse","sessionStorage","methods","FormataDataPicker","data_formatada","cd_cliente","getData","fetch","dataUrl","requestOptions","QSpace","QExpansionItem","QCard","QCardSection","QBtn","QTooltip","QDialog","QInput","QIcon","QPopupProxy","QDate","QTime","QSelect","ClosePopup"],"mappings":"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ACJiC,MAAO,cACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,WACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,qBACJiC,MAAO,YACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,qBACJiC,MAAO,cACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,uBACJiC,MAAO,gBACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,WACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,UACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,mBACJiC,MAAO,YACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,sBACJiC,MAAO,eACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,UACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,WACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,mBACJiC,MAAO,YACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,WACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,oBACJiC,MAAO,aACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,qBACJiC,MAAO,cACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,WACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,oBACJiC,MAAO,aACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,oBACJiC,MAAO,aACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,UACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,cACJiC,MAAO,OACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,UACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,eACJiC,MAAO,UACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,YACJiC,MAAO,OACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,cACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,aACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,YACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,cACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,qBACJiC,MAAO,UACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,WACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,uBACJiC,MAAO,eACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,oBACJiC,MAAO,YACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,wBACJiC,MAAO,gBACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,UACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,mBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,uBACJiC,MAAO,eACPL,SAAU,IACX,CACC5B,GAAI,gBACJiC,MAAO,QACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,qBACJiC,MAAO,aACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,UACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,qBACJiC,MAAO,aACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,mBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,SACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,wBACJiC,MAAO,aACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,YACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,YACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,YACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,aACJiC,MAAO,QACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,cACJiC,MAAO,SACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,eACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,aACJiC,MAAO,QACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,cACJiC,MAAO,SACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,cACJiC,MAAO,SACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,qBACJiC,MAAO,gBACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,aACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,SACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,qBACJiC,MAAO,YACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,MACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,qBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,MACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,QACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,uBACJiC,MAAO,aACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,QACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,qBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,qBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,OACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,uBACJiC,MAAO,aACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,cACJiC,MAAO,OACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,mBACJiC,MAAO,YACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,cACJiC,MAAO,OACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,cACJiC,MAAO,OACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,2BACJiC,MAAO,oBACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,sBACJiC,MAAO,eACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,sBACJiC,MAAO,eACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,eACJiC,MAAO,QACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,oBACJiC,MAAO,cACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,OACJiC,MAAO,OACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,QACJiC,MAAO,QACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,OACJiC,MAAO,OACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,WACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,KACJiC,MAAO,KACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,UACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,QACJiC,MAAO,QACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,QACJiC,MAAO,QACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,OACJiC,MAAO,OACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,YACJiC,MAAO,YACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,WACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,UACJiC,MAAO,UACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,OACJiC,MAAO,OACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,SACJiC,MAAO,SACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,UACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,QACJiC,MAAO,QACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,YACJiC,MAAO,YACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,QACJiC,MAAO,QACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,mBACJiC,MAAO,YACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,KACJiC,MAAO,KACPL,SAAU,EACVnB,KAAM,KACP,CACCT,GAAI,SACJiC,MAAO,SACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,MACJiC,MAAO,MACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,SACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,QACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,eACJiC,MAAO,OACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,SACJiC,MAAO,SACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,WACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,MACJiC,MAAO,MACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,MACJiC,MAAO,MACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,YACJiC,MAAO,YACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,SACJiC,MAAO,SACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,YACJiC,MAAO,SACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,aACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,aACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,aACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,YACJiC,MAAO,SACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,oBACJiC,MAAO,iBACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,cACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,cACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,aACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,WACJiC,MAAO,QACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,OACJiC,MAAO,OACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,MACJiC,MAAO,MACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,YACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,YACJiC,MAAO,QACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,YACJiC,MAAO,QACPL,SAAU,GACVvB,QAAS,CAAC,GACVC,cAAe,IACfC,OAAQ,YACT,CACCP,GAAI,WACJiC,MAAO,OACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,qBACJiC,MAAO,cACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,mBACJiC,MAAO,YACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,UACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,oBACJiC,MAAO,aACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,eACJiC,MAAO,QACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,sBACJiC,MAAO,eACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,mBACJiC,MAAO,YACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,mBACJiC,MAAO,YACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,kBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,SACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,oBACJiC,MAAO,aACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,gBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,mBACJiC,MAAO,WACPL,SAAU,GACVnB,KAAM,KACP,CACCT,GAAI,iBACJiC,MAAO,c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","file":"js/display-data28.a1e7cd4b.js","sourcesContent":["/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.work_space.indicator.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _renderer = require(\"../../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _uiScheduler = require(\"./ui.scheduler.work_space\");\r\nvar _uiScheduler2 = _interopRequireDefault(_uiScheduler);\r\nvar _component_registrator = require(\"../../../core/component_registrator\");\r\nvar _component_registrator2 = _interopRequireDefault(_component_registrator);\r\nvar _date = require(\"../../../core/utils/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _extend = require(\"../../../core/utils/extend\");\r\nvar _position = require(\"../../../core/utils/position\");\r\nvar _window = require(\"../../../core/utils/window\");\r\nvar _window2 = _interopRequireDefault(_window);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar toMs = _date2.default.dateToMilliseconds;\r\nvar SCHEDULER_DATE_TIME_INDICATOR_CLASS = \"dx-scheduler-date-time-indicator\";\r\nvar TIME_PANEL_CURRENT_TIME_CELL_CLASS = \"dx-scheduler-time-panel-current-time-cell\";\r\nvar HEADER_CURRENT_TIME_CELL_CLASS = \"dx-scheduler-header-panel-current-time-cell\";\r\nvar SchedulerWorkSpaceIndicator = _uiScheduler2.default.inherit({\r\n _getToday: function() {\r\n var date = this.option(\"indicatorTime\") || new Date;\r\n return this.invoke(\"convertDateByTimezone\", date) || date\r\n },\r\n _needRenderDateTimeIndicator: function() {\r\n var today = this._getToday();\r\n var endViewDate = _date2.default.trimTime(this.getEndViewDate());\r\n return _date2.default.dateInRange(today, this._firstViewDate, new Date(endViewDate.getTime() + toMs(\"day\")))\r\n },\r\n needRenderDateTimeIndication: function() {\r\n if (!_window2.default.hasWindow()) {\r\n return false\r\n }\r\n var today = this._getToday();\r\n return today >= _date2.default.trimTime(new Date(this.getStartViewDate()))\r\n },\r\n _renderDateTimeIndication: function() {\r\n if (this.needRenderDateTimeIndication()) {\r\n if (this.option(\"shadeUntilCurrentTime\")) {\r\n this._shader.render()\r\n }\r\n if (this.option(\"showCurrentTimeIndicator\") && this._needRenderDateTimeIndicator()) {\r\n var groupCount = this._getGroupCount() || 1;\r\n var $container = this._dateTableScrollable.$content();\r\n var height = this.getIndicationHeight();\r\n var rtlOffset = this._getRtlOffset(this.getCellWidth());\r\n if (height > 0) {\r\n this._renderIndicator(height, rtlOffset, $container, groupCount)\r\n }\r\n }\r\n }\r\n },\r\n _renderIndicator: function(height, rtlOffset, $container, groupCount) {\r\n var groupedByDate = this.isGroupedByDate();\r\n var repeatCount = groupedByDate ? 1 : groupCount;\r\n for (var i = 0; i < repeatCount; i++) {\r\n var $indicator = this._createIndicator($container);\r\n $indicator.width(groupedByDate ? this.getCellWidth() * groupCount : this.getCellWidth());\r\n this._groupedStrategy.shiftIndicator($indicator, height, rtlOffset, i)\r\n }\r\n },\r\n _createIndicator: function($container) {\r\n var $indicator = (0, _renderer2.default)(\"
\").addClass(SCHEDULER_DATE_TIME_INDICATOR_CLASS);\r\n $container.append($indicator);\r\n return $indicator\r\n },\r\n _getRtlOffset: function(width) {\r\n return this.option(\"rtlEnabled\") ? (0, _position.getBoundingRect)(this._dateTableScrollable.$content().get(0)).width - this.getTimePanelWidth() - width : 0\r\n },\r\n _setIndicationUpdateInterval: function() {\r\n if (!this.option(\"showCurrentTimeIndicator\") || 0 === this.option(\"indicatorUpdateInterval\")) {\r\n return\r\n }\r\n this._clearIndicatorUpdateInterval();\r\n this._indicatorInterval = setInterval(function() {\r\n this._refreshDateTimeIndication()\r\n }.bind(this), this.option(\"indicatorUpdateInterval\"))\r\n },\r\n _clearIndicatorUpdateInterval: function() {\r\n if (this._indicatorInterval) {\r\n clearInterval(this._indicatorInterval);\r\n delete this._indicatorInterval\r\n }\r\n },\r\n _isVerticalShader: function() {\r\n return true\r\n },\r\n getIndicationWidth: function(groupIndex) {\r\n var maxWidth = this.getCellWidth() * this._getCellCount();\r\n var difference = this._getIndicatorDuration();\r\n if (difference > this._getCellCount()) {\r\n difference = this._getCellCount()\r\n }\r\n var width = difference * this.getRoundedCellWidth(groupIndex, groupIndex * this._getCellCount(), difference);\r\n return maxWidth < width ? maxWidth : width\r\n },\r\n getIndicatorOffset: function(groupIndex) {\r\n var difference = this._getIndicatorDuration() - 1;\r\n var offset = difference * this.getRoundedCellWidth(groupIndex, groupIndex * this._getCellCount(), difference);\r\n return offset\r\n },\r\n _getIndicatorDuration: function() {\r\n var today = this._getToday();\r\n var firstViewDate = new Date(this._firstViewDate);\r\n var timeDiff = today.getTime() - firstViewDate.getTime();\r\n if (\"workWeek\" === this.option(\"type\")) {\r\n timeDiff -= this._getWeekendsCount(Math.round(timeDiff / toMs(\"day\"))) * toMs(\"day\")\r\n }\r\n return Math.ceil((timeDiff + 1) / toMs(\"day\"))\r\n },\r\n getIndicationHeight: function() {\r\n var today = this._getToday();\r\n var cellHeight = this.getCellHeight();\r\n var date = new Date(this._firstViewDate);\r\n if (this._needRenderDateTimeIndicator()) {\r\n date.setFullYear(today.getFullYear(), today.getMonth(), today.getDate())\r\n }\r\n var duration = today.getTime() - date.getTime();\r\n var cellCount = duration / this.getCellDuration();\r\n return cellCount * cellHeight\r\n },\r\n _dispose: function() {\r\n this._clearIndicatorUpdateInterval();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _refreshDateTimeIndication: function() {\r\n this._cleanDateTimeIndicator();\r\n this._shader && this._shader.clean();\r\n this._renderDateTimeIndication()\r\n },\r\n _isCurrentTime: function(date) {\r\n if (this.option(\"showCurrentTimeIndicator\") && this._needRenderDateTimeIndicator()) {\r\n var today = this._getToday();\r\n var result = false;\r\n date = new Date(date);\r\n date.setFullYear(today.getFullYear(), today.getMonth(), today.getDate());\r\n var startCellDate = new Date(date);\r\n var endCellDate = new Date(date);\r\n if (_date2.default.sameDate(today, date)) {\r\n startCellDate = startCellDate.setMilliseconds(date.getMilliseconds() - this.getCellDuration() + 1);\r\n endCellDate = endCellDate.setMilliseconds(date.getMilliseconds() + this.getCellDuration());\r\n result = _date2.default.dateInRange(today, startCellDate, endCellDate)\r\n }\r\n return result\r\n }\r\n },\r\n _isCurrentTimeHeaderCell: function(headerIndex) {\r\n var result = false;\r\n if (this.option(\"showCurrentTimeIndicator\") && this._needRenderDateTimeIndicator()) {\r\n var date = this._getDateByIndex(headerIndex);\r\n var now = this.option(\"indicatorTime\") || new Date;\r\n result = _date2.default.sameDate(date, now)\r\n }\r\n return result\r\n },\r\n _getTimeCellClass: function(i) {\r\n var startViewDate = this._getTimeCellDate(i);\r\n var cellClass = this.callBase(i);\r\n if (this._isCurrentTime(startViewDate)) {\r\n return cellClass + \" \" + TIME_PANEL_CURRENT_TIME_CELL_CLASS\r\n }\r\n return cellClass\r\n },\r\n _getHeaderPanelCellClass: function(i) {\r\n var cellClass = this.callBase(i);\r\n if (this._isCurrentTimeHeaderCell(i)) {\r\n return cellClass + \" \" + HEADER_CURRENT_TIME_CELL_CLASS\r\n }\r\n return cellClass\r\n },\r\n _cleanView: function() {\r\n this.callBase();\r\n this._cleanDateTimeIndicator()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase();\r\n this._refreshDateTimeIndication()\r\n },\r\n _cleanDateTimeIndicator: function() {\r\n this.$element().find(\".\" + SCHEDULER_DATE_TIME_INDICATOR_CLASS).remove()\r\n },\r\n _cleanWorkSpace: function() {\r\n this.callBase();\r\n this._renderDateTimeIndication();\r\n this._setIndicationUpdateInterval()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"showCurrentTimeIndicator\":\r\n case \"indicatorTime\":\r\n this._cleanWorkSpace();\r\n break;\r\n case \"indicatorUpdateInterval\":\r\n this._setIndicationUpdateInterval();\r\n break;\r\n case \"showAllDayPanel\":\r\n this.callBase(args);\r\n this._refreshDateTimeIndication();\r\n break;\r\n case \"allDayExpanded\":\r\n this.callBase(args);\r\n this._refreshDateTimeIndication();\r\n break;\r\n case \"crossScrollingEnabled\":\r\n this.callBase(args);\r\n this._refreshDateTimeIndication();\r\n break;\r\n case \"shadeUntilCurrentTime\":\r\n this._refreshDateTimeIndication();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n showCurrentTimeIndicator: true,\r\n indicatorTime: new Date,\r\n indicatorUpdateInterval: 5 * toMs(\"minute\"),\r\n shadeUntilCurrentTime: true\r\n })\r\n }\r\n});\r\n(0, _component_registrator2.default)(\"dxSchedulerWorkSpace\", SchedulerWorkSpaceIndicator);\r\nmodule.exports = SchedulerWorkSpaceIndicator;\r\n","/**\r\n * DevExtreme (ui/scheduler/ui.scheduler.header.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar $ = require(\"../../core/renderer\");\r\nvar typeUtils = require(\"../../core/utils/type\");\r\nvar noop = require(\"../../core/utils/common\").noop;\r\nvar isDefined = require(\"../../core/utils/type\").isDefined;\r\nvar extend = require(\"../../core/utils/extend\").extend;\r\nvar each = require(\"../../core/utils/iterator\").each;\r\nvar inArray = require(\"../../core/utils/array\").inArray;\r\nvar camelize = require(\"../../core/utils/inflector\").camelize;\r\nvar registerComponent = require(\"../../core/component_registrator\");\r\nvar Widget = require(\"../widget/ui.widget\");\r\nvar publisherMixin = require(\"./ui.scheduler.publisher_mixin\");\r\nvar SchedulerNavigator = require(\"./ui.scheduler.navigator\");\r\nvar DropDownMenu = require(\"../drop_down_menu\");\r\nvar Tabs = require(\"../tabs\");\r\nvar errors = require(\"../../core/errors\");\r\nvar messageLocalization = require(\"../../localization/message\");\r\nvar COMPONENT_CLASS = \"dx-scheduler-header\";\r\nvar VIEW_SWITCHER_CLASS = \"dx-scheduler-view-switcher\";\r\nvar VIEW_SWITCHER_LABEL_CLASS = \"dx-scheduler-view-switcher-label\";\r\nvar STEP_MAP = {\r\n day: \"day\",\r\n week: \"week\",\r\n workWeek: \"workWeek\",\r\n month: \"month\",\r\n timelineDay: \"day\",\r\n timelineWeek: \"week\",\r\n timelineWorkWeek: \"workWeek\",\r\n timelineMonth: \"month\",\r\n agenda: \"agenda\"\r\n};\r\nvar VIEWS = [\"day\", \"week\", \"workWeek\", \"month\", \"timelineDay\", \"timelineWeek\", \"timelineWorkWeek\", \"timelineMonth\", \"agenda\"];\r\nvar SchedulerHeader = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n views: [],\r\n isAdaptive: false,\r\n intervalCount: 1,\r\n currentView: \"day\",\r\n firstDayOfWeek: void 0,\r\n currentDate: new Date,\r\n min: void 0,\r\n max: void 0,\r\n useDropDownViewSwitcher: false,\r\n _dropDownButtonIcon: \"overlay\"\r\n })\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n currentView: true\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n switch (args.name) {\r\n case \"views\":\r\n this._validateViews();\r\n this._viewSwitcher.option({\r\n items: value,\r\n selectedItem: this.option(\"currentView\")\r\n });\r\n break;\r\n case \"customizeDateNavigatorText\":\r\n this._navigator.option(args.name, value);\r\n break;\r\n case \"currentView\":\r\n this._viewSwitcher.option(\"selectedItem\", value);\r\n this._navigator.option(\"step\", STEP_MAP[this._getCurrentViewType()]);\r\n this._changeViewSwitcherLabelText();\r\n break;\r\n case \"currentDate\":\r\n this._navigator.option(\"date\", value);\r\n break;\r\n case \"displayedDate\":\r\n this._navigator.option(\"displayedDate\", value);\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n case \"firstDayOfWeek\":\r\n case \"intervalCount\":\r\n this._navigator.option(args.name, value);\r\n break;\r\n case \"tabIndex\":\r\n case \"focusStateEnabled\":\r\n this._viewSwitcher.option(args.name, value);\r\n this._navigator.option(args.name, value);\r\n this.callBase(args);\r\n break;\r\n case \"useDropDownViewSwitcher\":\r\n this._refreshViewSwitcher();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(COMPONENT_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderNavigator();\r\n this._renderViewSwitcher()\r\n },\r\n _renderNavigator: function() {\r\n this._navigator = this._createComponent(\"
\", SchedulerNavigator, {\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n intervalCount: this.option(\"intervalCount\"),\r\n date: this.option(\"currentDate\"),\r\n step: STEP_MAP[this._getCurrentViewType()],\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n observer: this.option(\"observer\"),\r\n customizeDateNavigatorText: this.option(\"customizeDateNavigatorText\")\r\n });\r\n this._navigator.$element().appendTo(this.$element())\r\n },\r\n _renderViewSwitcher: function() {\r\n this._validateViews();\r\n var $viewSwitcher = $(\"
\").addClass(VIEW_SWITCHER_CLASS).appendTo(this.$element());\r\n this.option(\"useDropDownViewSwitcher\") ? this._renderViewSwitcherDropDownMenu($viewSwitcher) : this._renderViewSwitcherTabs($viewSwitcher)\r\n },\r\n _validateViews: function() {\r\n var views = this.option(\"views\");\r\n each(views, function(_, view) {\r\n var isViewIsObject = typeUtils.isObject(view);\r\n var viewType = isViewIsObject && view.type ? view.type : view;\r\n if (inArray(viewType, VIEWS) === -1) {\r\n errors.log(\"W0008\", viewType)\r\n }\r\n })\r\n },\r\n _getCurrentViewType: function() {\r\n var currentView = this.option(\"currentView\");\r\n return currentView.type || currentView\r\n },\r\n _renderViewSwitcherTabs: function($element) {\r\n var that = this;\r\n $element.addClass(Tabs.getTabsExpandedClass);\r\n this._viewSwitcher = this._createComponent($element, Tabs, {\r\n selectionRequired: true,\r\n scrollingEnabled: true,\r\n onSelectionChanged: this._updateCurrentView.bind(this),\r\n items: this.option(\"views\"),\r\n itemTemplate: function(item) {\r\n return $(\"\").addClass(\"dx-tab-text\").text(that._getItemText(item))\r\n },\r\n selectedItem: this.option(\"currentView\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\")\r\n })\r\n },\r\n _getItemText: function(item) {\r\n return item.name || messageLocalization.format(\"dxScheduler-switcher\" + camelize(item.type || item, true))\r\n },\r\n _refreshViewSwitcher: function() {\r\n this._viewSwitcher._dispose();\r\n this._viewSwitcher.$element().remove();\r\n delete this._viewSwitcher;\r\n this._removeViewSwitcherLabel();\r\n this._renderViewSwitcher()\r\n },\r\n _removeViewSwitcherLabel: function() {\r\n if (isDefined(this._$viewSwitcherLabel)) {\r\n this._$viewSwitcherLabel.detach();\r\n this._$viewSwitcherLabel.remove();\r\n delete this._$viewSwitcherLabel\r\n }\r\n },\r\n _renderViewSwitcherDropDownMenu: function($element) {\r\n var that = this;\r\n this._$viewSwitcherLabel = $(\"
\").addClass(VIEW_SWITCHER_LABEL_CLASS).appendTo(this.$element());\r\n this._changeViewSwitcherLabelText();\r\n this._viewSwitcher = this._createComponent($element, DropDownMenu, {\r\n onItemClick: this._updateCurrentView.bind(this),\r\n buttonIcon: this.option(\"_dropDownButtonIcon\"),\r\n items: this.option(\"views\"),\r\n selectionMode: this.option(\"isAdaptive\") ? \"single\" : \"none\",\r\n selectedItemKeys: [this.option(\"currentView\")],\r\n itemTemplate: function(item) {\r\n return $(\"\").addClass(\"dx-dropdownmenu-item-text\").text(that._getItemText(item))\r\n }\r\n })\r\n },\r\n _changeViewSwitcherLabelText: function() {\r\n if (!isDefined(this._$viewSwitcherLabel)) {\r\n return\r\n }\r\n var currentView = this.option(\"currentView\");\r\n var currentViewText = this._getItemText(currentView);\r\n this._$viewSwitcherLabel.text(currentViewText)\r\n },\r\n _getCurrentViewName: function(currentView) {\r\n return typeUtils.isObject(currentView) ? currentView.name || currentView.type : currentView\r\n },\r\n _updateCurrentView: function(e) {\r\n var selectedItem = e.itemData || e.component.option(\"selectedItem\");\r\n var viewName = this._getCurrentViewName(selectedItem);\r\n this.notifyObserver(\"currentViewUpdated\", viewName)\r\n },\r\n _renderFocusTarget: noop\r\n}).include(publisherMixin);\r\nregisterComponent(\"dxSchedulerHeader\", SchedulerHeader);\r\nmodule.exports = SchedulerHeader;\r\n","/**\r\n * DevExtreme (ui/scheduler/tooltip_strategies/tooltipStrategyBase.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nexports.TooltipStrategyBase = void 0;\r\nvar _button = require(\"../../button\");\r\nvar _button2 = _interopRequireDefault(_button);\r\nvar _function_template = require(\"../../../core/templates/function_template\");\r\nvar _renderer = require(\"../../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _uiList = require(\"../../list/ui.list.edit\");\r\nvar _uiList2 = _interopRequireDefault(_uiList);\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 _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 _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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 TOOLTIP_APPOINTMENT_ITEM = \"dx-tooltip-appointment-item\";\r\nvar TOOLTIP_APPOINTMENT_ITEM_CONTENT = TOOLTIP_APPOINTMENT_ITEM + \"-content\";\r\nvar TOOLTIP_APPOINTMENT_ITEM_CONTENT_SUBJECT = TOOLTIP_APPOINTMENT_ITEM + \"-content-subject\";\r\nvar TOOLTIP_APPOINTMENT_ITEM_CONTENT_DATE = TOOLTIP_APPOINTMENT_ITEM + \"-content-date\";\r\nvar TOOLTIP_APPOINTMENT_ITEM_MARKER = TOOLTIP_APPOINTMENT_ITEM + \"-marker\";\r\nvar TOOLTIP_APPOINTMENT_ITEM_MARKER_BODY = TOOLTIP_APPOINTMENT_ITEM + \"-marker-body\";\r\nvar TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON_CONTAINER = TOOLTIP_APPOINTMENT_ITEM + \"-delete-button-container\";\r\nvar TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON = TOOLTIP_APPOINTMENT_ITEM + \"-delete-button\";\r\nvar TooltipStrategyBase = exports.TooltipStrategyBase = function() {\r\n function TooltipStrategyBase(options) {\r\n _classCallCheck(this, TooltipStrategyBase);\r\n this._tooltip = null;\r\n this._options = options;\r\n this._extraOptions = null\r\n }\r\n _createClass(TooltipStrategyBase, [{\r\n key: \"show\",\r\n value: function(target, dataList, extraOptions) {\r\n if (this._canShowTooltip(dataList)) {\r\n this.hide();\r\n this._extraOptions = extraOptions;\r\n this._showCore(target, dataList)\r\n }\r\n }\r\n }, {\r\n key: \"_showCore\",\r\n value: function(target, dataList) {\r\n if (!this._tooltip) {\r\n this._tooltip = this._createTooltip(target, dataList)\r\n } else {\r\n this._shouldUseTarget() && this._tooltip.option(\"target\", target);\r\n this._list.option(\"dataSource\", dataList)\r\n }\r\n this._prepareBeforeVisibleChanged(dataList);\r\n this._tooltip.option(\"visible\", true)\r\n }\r\n }, {\r\n key: \"_prepareBeforeVisibleChanged\",\r\n value: function(dataList) {}\r\n }, {\r\n key: \"_getContentTemplate\",\r\n value: function(dataList) {\r\n var _this = this;\r\n return function(container) {\r\n var listElement = (0, _renderer2.default)(\"
\");\r\n (0, _renderer2.default)(container).append(listElement);\r\n _this._list = _this._createList(listElement, dataList)\r\n }\r\n }\r\n }, {\r\n key: \"isAlreadyShown\",\r\n value: function(target) {\r\n if (this._tooltip && this._tooltip.option(\"visible\")) {\r\n return this._tooltip.option(\"target\")[0] === target[0]\r\n }\r\n }\r\n }, {\r\n key: \"_onShown\",\r\n value: function() {\r\n this._list.option(\"focusStateEnabled\", this._extraOptions.focusStateEnabled)\r\n }\r\n }, {\r\n key: \"dispose\",\r\n value: function() {}\r\n }, {\r\n key: \"hide\",\r\n value: function() {\r\n if (this._tooltip) {\r\n this._tooltip.option(\"visible\", false)\r\n }\r\n }\r\n }, {\r\n key: \"_shouldUseTarget\",\r\n value: function() {\r\n return true\r\n }\r\n }, {\r\n key: \"_createTooltip\",\r\n value: function() {}\r\n }, {\r\n key: \"_canShowTooltip\",\r\n value: function(dataList) {\r\n if (!dataList.length) {\r\n return false\r\n }\r\n return true\r\n }\r\n }, {\r\n key: \"_createListOption\",\r\n value: function(dataList) {\r\n var _this2 = this;\r\n return {\r\n dataSource: dataList,\r\n onContentReady: this._onListRender.bind(this),\r\n onItemClick: function(e) {\r\n return _this2._onListItemClick(e)\r\n },\r\n itemTemplate: function(item, index) {\r\n return _this2._renderTemplate(item.data, _this2._getCurrentAppointmentData(item), index, item.color)\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"_onListRender\",\r\n value: function() {}\r\n }, {\r\n key: \"_createTooltipElement\",\r\n value: function(wrapperClass) {\r\n return (0, _renderer2.default)(\"
\").appendTo(this._options.container).addClass(wrapperClass)\r\n }\r\n }, {\r\n key: \"_createList\",\r\n value: function(listElement, dataList) {\r\n return this._options.createComponent(listElement, _uiList2.default, this._createListOption(dataList))\r\n }\r\n }, {\r\n key: \"_renderTemplate\",\r\n value: function(data, currentData, index, color) {\r\n var itemListContent = this._createItemListContent(data, currentData, color);\r\n this._options.addDefaultTemplates(_defineProperty({}, this._getItemListTemplateName(), new _function_template.FunctionTemplate(function(options) {\r\n var $container = (0, _renderer2.default)(options.container);\r\n $container.append(itemListContent);\r\n return $container\r\n })));\r\n var template = this._options.getAppointmentTemplate(this._getItemListTemplateName() + \"Template\");\r\n return this._createFunctionTemplate(template, data, currentData, index)\r\n }\r\n }, {\r\n key: \"_createFunctionTemplate\",\r\n value: function(template, data, targetData, index) {\r\n var isEmptyDropDownAppointmentTemplate = this._isEmptyDropDownAppointmentTemplate();\r\n return new _function_template.FunctionTemplate(function(options) {\r\n return template.render({\r\n model: isEmptyDropDownAppointmentTemplate ? {\r\n appointmentData: data,\r\n targetedAppointmentData: targetData\r\n } : data,\r\n container: options.container,\r\n index: index\r\n })\r\n })\r\n }\r\n }, {\r\n key: \"_getItemListTemplateName\",\r\n value: function() {\r\n return this._isEmptyDropDownAppointmentTemplate() ? \"appointmentTooltip\" : \"dropDownAppointment\"\r\n }\r\n }, {\r\n key: \"_isEmptyDropDownAppointmentTemplate\",\r\n value: function() {\r\n return !this._extraOptions.dropDownAppointmentTemplate || \"dropDownAppointment\" === this._extraOptions.dropDownAppointmentTemplate\r\n }\r\n }, {\r\n key: \"_onListItemClick\",\r\n value: function(e) {\r\n this.hide();\r\n this._extraOptions.clickEvent && this._extraOptions.clickEvent(e);\r\n this._options.showAppointmentPopup(e.itemData.data, false, this._getCurrentAppointmentData(e.itemData))\r\n }\r\n }, {\r\n key: \"_getCurrentAppointmentData\",\r\n value: function(item) {\r\n return item.settings && item.settings.targetedAppointmentData || item.currentData || item.data\r\n }\r\n }, {\r\n key: \"_createItemListContent\",\r\n value: function(data, currentData, color) {\r\n var editing = this._extraOptions.editing;\r\n var $itemElement = (0, _renderer2.default)(\"
\").addClass(TOOLTIP_APPOINTMENT_ITEM);\r\n $itemElement.append(this._createItemListMarker(color));\r\n $itemElement.append(this._createItemListInfo(this._options.getTextAndFormatDate(data, currentData)));\r\n if (!data.disabled && (editing && true === editing.allowDeleting || true === editing)) {\r\n var singleAppointmentData = this._options.getSingleAppointmentData(data, this._tooltip.option(\"target\"));\r\n $itemElement.append(this._createDeleteButton(data, singleAppointmentData))\r\n }\r\n return $itemElement\r\n }\r\n }, {\r\n key: \"_createItemListMarker\",\r\n value: function(color) {\r\n var $marker = (0, _renderer2.default)(\"
\").addClass(TOOLTIP_APPOINTMENT_ITEM_MARKER);\r\n var $markerBody = (0, _renderer2.default)(\"
\").addClass(TOOLTIP_APPOINTMENT_ITEM_MARKER_BODY);\r\n $marker.append($markerBody);\r\n color && color.done(function(value) {\r\n return $markerBody.css(\"background\", value)\r\n });\r\n return $marker\r\n }\r\n }, {\r\n key: \"_createItemListInfo\",\r\n value: function(object) {\r\n var result = (0, _renderer2.default)(\"
\").addClass(TOOLTIP_APPOINTMENT_ITEM_CONTENT);\r\n var $title = (0, _renderer2.default)(\"
\").addClass(TOOLTIP_APPOINTMENT_ITEM_CONTENT_SUBJECT).text(object.text);\r\n var $date = (0, _renderer2.default)(\"
\").addClass(TOOLTIP_APPOINTMENT_ITEM_CONTENT_DATE).text(object.formatDate);\r\n return result.append($title).append($date)\r\n }\r\n }, {\r\n key: \"_createDeleteButton\",\r\n value: function(data, currentData) {\r\n var _this3 = this;\r\n var $container = (0, _renderer2.default)(\"
\").addClass(TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON_CONTAINER);\r\n var $deleteButton = (0, _renderer2.default)(\"
\").addClass(TOOLTIP_APPOINTMENT_ITEM_DELETE_BUTTON);\r\n $container.append($deleteButton);\r\n this._options.createComponent($deleteButton, _button2.default, {\r\n icon: \"trash\",\r\n stylingMode: \"text\",\r\n onClick: function(e) {\r\n _this3.hide();\r\n e.event.stopPropagation();\r\n _this3._options.checkAndDeleteAppointment(data, currentData)\r\n }\r\n });\r\n return $container\r\n }\r\n }]);\r\n return TooltipStrategyBase\r\n}();\r\n","/**\r\n * DevExtreme (ui/scheduler/timezones/ui.scheduler.timezones.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar query = require(\"../../../data/query\");\r\nvar errors = require(\"../../../core/errors\");\r\nvar tzData = require(\"./ui.scheduler.timezones_data\");\r\nvar SchedulerTimezones = {\r\n _displayNames: tzData.displayNames,\r\n _list: tzData.timezones,\r\n getTimezones: function() {\r\n return this._list\r\n },\r\n getDisplayNames: function() {\r\n return this._displayNames\r\n },\r\n queryableTimezones: function() {\r\n return query(this.getTimezones())\r\n },\r\n getTimezoneById: function(id) {\r\n var result;\r\n var i = 0;\r\n var tzList = this.getTimezones();\r\n if (id) {\r\n while (!result) {\r\n if (!tzList[i]) {\r\n errors.log(\"W0009\", id);\r\n return\r\n }\r\n var currentId = tzList[i].id;\r\n if (currentId === id) {\r\n result = tzList[i]\r\n }\r\n i++\r\n }\r\n }\r\n return result\r\n },\r\n getTimezoneOffsetById: function(id, dateTimeStamp) {\r\n var tz = this.getTimezoneById(id);\r\n var offsets;\r\n var offsetIndices;\r\n var untils;\r\n var result;\r\n if (tz) {\r\n if (tz.link) {\r\n var rootTz = this.getTimezones()[tz.link];\r\n offsets = rootTz.offsets;\r\n untils = rootTz.untils;\r\n offsetIndices = rootTz.offsetIndices\r\n } else {\r\n offsets = tz.offsets;\r\n untils = tz.untils;\r\n offsetIndices = tz.offsetIndices\r\n }\r\n result = this.getUtcOffset(offsets, offsetIndices, untils, dateTimeStamp)\r\n }\r\n return result\r\n },\r\n getUtcOffset: function(offsets, offsetIndices, untils, dateTimeStamp) {\r\n var index = 0;\r\n var offsetIndicesList = offsetIndices.split(\"\");\r\n var untilsList = untils.split(\"|\").map(function(until) {\r\n if (\"Infinity\" === until) {\r\n return null\r\n }\r\n return 1e3 * parseInt(until, 36)\r\n });\r\n var currentUntil = 0;\r\n for (var i = 0, listLength = untilsList.length; i < listLength; i++) {\r\n currentUntil += untilsList[i];\r\n if (dateTimeStamp >= currentUntil) {\r\n index = i;\r\n continue\r\n } else {\r\n break\r\n }\r\n }\r\n if (untilsList[index + 1]) {\r\n index++\r\n }\r\n return offsets[Number(offsetIndicesList[index])]\r\n },\r\n getTimezoneShortDisplayNameById: function(id) {\r\n var tz = this.getTimezoneById(id);\r\n var result;\r\n if (tz) {\r\n result = tz.DisplayName.substring(0, 11)\r\n }\r\n return result\r\n },\r\n getTimezonesDisplayName: function() {\r\n return query(this.getDisplayNames()).sortBy().toArray()\r\n },\r\n getTimezoneDisplayNameById: function(id) {\r\n var tz = this.getTimezoneById(id);\r\n return tz ? this.getDisplayNames()[tz.winIndex] : \"\"\r\n },\r\n getSimilarTimezones: function(id) {\r\n if (!id) {\r\n return []\r\n }\r\n var tz = this.getTimezoneById(id);\r\n return this.getTimezonesIdsByWinIndex(tz.winIndex)\r\n },\r\n getTimezonesIdsByWinIndex: function(winIndex) {\r\n return this.queryableTimezones().filter([\"winIndex\", winIndex]).sortBy(\"title\").toArray().map(function(item) {\r\n return {\r\n id: item.id,\r\n displayName: item.title\r\n }\r\n })\r\n },\r\n getTimezonesIdsByDisplayName: function(displayName) {\r\n var displayNameIndex = this.getDisplayNames().indexOf(displayName);\r\n return this.getTimezonesIdsByWinIndex(displayNameIndex)\r\n },\r\n getClientTimezoneOffset: function(date) {\r\n return 6e4 * date.getTimezoneOffset()\r\n },\r\n processDateDependOnTimezone: function(date, tzOffset) {\r\n var result = new Date(date);\r\n if (tzOffset) {\r\n var tzDiff = tzOffset + this.getClientTimezoneOffset(date) / 36e5;\r\n result = new Date(result.setHours(result.getHours() + tzDiff))\r\n }\r\n return result\r\n }\r\n};\r\nmodule.exports = SchedulerTimezones;\r\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.work_space.grouped.strategy.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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 LAST_GROUP_CELL_CLASS = \"dx-scheduler-last-group-cell\";\r\nvar FIRST_GROUP_CELL_CLASS = \"dx-scheduler-first-group-cell\";\r\nvar GroupedStrategy = function() {\r\n function GroupedStrategy(workSpace) {\r\n _classCallCheck(this, GroupedStrategy);\r\n this._workSpace = workSpace\r\n }\r\n _createClass(GroupedStrategy, [{\r\n key: \"getLastGroupCellClass\",\r\n value: function() {\r\n return LAST_GROUP_CELL_CLASS\r\n }\r\n }, {\r\n key: \"getFirstGroupCellClass\",\r\n value: function() {\r\n return FIRST_GROUP_CELL_CLASS\r\n }\r\n }, {\r\n key: \"_getOffsetByAllDayPanel\",\r\n value: function() {\r\n return 0\r\n }\r\n }, {\r\n key: \"_getGroupTop\",\r\n value: function() {\r\n return 0\r\n }\r\n }]);\r\n return GroupedStrategy\r\n}();\r\nmodule.exports = GroupedStrategy;\r\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.work_space_month.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar $ = require(\"../../../core/renderer\");\r\nvar noop = require(\"../../../core/utils/common\").noop;\r\nvar registerComponent = require(\"../../../core/component_registrator\");\r\nvar SchedulerWorkSpace = require(\"./ui.scheduler.work_space.indicator\");\r\nvar dateUtils = require(\"../../../core/utils/date\");\r\nvar getBoundingRect = require(\"../../../core/utils/position\").getBoundingRect;\r\nvar dateLocalization = require(\"../../../localization/date\");\r\nvar MONTH_CLASS = \"dx-scheduler-work-space-month\";\r\nvar DATE_TABLE_CURRENT_DATE_CLASS = \"dx-scheduler-date-table-current-date\";\r\nvar DATE_TABLE_FIRST_OF_MONTH_CLASS = \"dx-scheduler-date-table-first-of-month\";\r\nvar DATE_TABLE_OTHER_MONTH_DATE_CLASS = \"dx-scheduler-date-table-other-month\";\r\nvar DATE_TABLE_SCROLLABLE_FIXED_CLASS = \"dx-scheduler-scrollable-fixed-content\";\r\nvar DAYS_IN_WEEK = 7;\r\nvar DAY_IN_MILLISECONDS = 864e5;\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar SchedulerWorkSpaceMonth = SchedulerWorkSpace.inherit({\r\n _toggleFixedScrollableClass: function() {\r\n this._dateTableScrollable.$content().toggleClass(DATE_TABLE_SCROLLABLE_FIXED_CLASS, !this._isWorkSpaceWithCount() && !this._isVerticalGroupedWorkSpace())\r\n },\r\n _getElementClass: function() {\r\n return MONTH_CLASS\r\n },\r\n _getRowCount: function() {\r\n return this._isWorkSpaceWithCount() ? 4 * this.option(\"intervalCount\") + 2 : 6\r\n },\r\n _getCellCount: function() {\r\n return DAYS_IN_WEEK\r\n },\r\n _getDateByIndex: function(headerIndex) {\r\n var resultDate = new Date(this._firstViewDate);\r\n resultDate.setDate(this._firstViewDate.getDate() + headerIndex);\r\n return resultDate\r\n },\r\n _getFormat: function() {\r\n return this._formatWeekday\r\n },\r\n _calculateCellIndex: function(rowIndex, cellIndex) {\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n rowIndex %= this._getRowCount()\r\n } else {\r\n cellIndex %= this._getCellCount()\r\n }\r\n return rowIndex * this._getCellCount() + cellIndex\r\n },\r\n _getInterval: function() {\r\n return DAY_IN_MILLISECONDS\r\n },\r\n _getIntervalBetween: function(currentDate) {\r\n var firstViewDate = this.getStartViewDate();\r\n var timeZoneOffset = dateUtils.getTimezonesDifference(firstViewDate, currentDate);\r\n return currentDate.getTime() - (firstViewDate.getTime() - 36e5 * this.option(\"startDayHour\")) - timeZoneOffset\r\n },\r\n _getDateByCellIndexes: function(rowIndex, cellIndex) {\r\n var date = this.callBase(rowIndex, cellIndex);\r\n this._setStartDayHour(date);\r\n return date\r\n },\r\n getCellWidth: function() {\r\n var DAYS_IN_WEEK = 7;\r\n var averageWidth = 0;\r\n this._getCells().slice(0, DAYS_IN_WEEK).each(function(index, element) {\r\n return averageWidth += getBoundingRect(element).width\r\n });\r\n return averageWidth / DAYS_IN_WEEK\r\n },\r\n _calculateHiddenInterval: function() {\r\n return 0\r\n },\r\n _insertAllDayRowsIntoDateTable: function() {\r\n return false\r\n },\r\n _getCellCoordinatesByIndex: function(index) {\r\n var rowIndex = Math.floor(index / this._getCellCount());\r\n var cellIndex = index - this._getCellCount() * rowIndex;\r\n return {\r\n rowIndex: rowIndex,\r\n cellIndex: cellIndex\r\n }\r\n },\r\n _createWorkSpaceElements: function() {\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this._createWorkSpaceScrollableElements()\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _needCreateCrossScrolling: function() {\r\n return this.option(\"crossScrollingEnabled\") || this._isVerticalGroupedWorkSpace()\r\n },\r\n _renderTimePanel: noop,\r\n _renderAllDayPanel: noop,\r\n _getTableAllDay: noop,\r\n _toggleAllDayVisibility: noop,\r\n _changeAllDayVisibility: noop,\r\n _setFirstViewDate: function() {\r\n var firstMonthDate = dateUtils.getFirstMonthDate(this._getViewStartByOptions());\r\n this._firstViewDate = dateUtils.getFirstWeekDate(firstMonthDate, this.option(\"firstDayOfWeek\") || dateLocalization.firstDayOfWeekIndex());\r\n this._setStartDayHour(this._firstViewDate);\r\n var date = this._getViewStartByOptions();\r\n this._minVisibleDate = new Date(date.setDate(1));\r\n this._maxVisibleDate = new Date(new Date(date.setMonth(date.getMonth() + this.option(\"intervalCount\"))).setDate(0))\r\n },\r\n _getViewStartByOptions: function() {\r\n if (!this.option(\"startDate\")) {\r\n return new Date(this.option(\"currentDate\").getTime())\r\n } else {\r\n var startDate = this._getStartViewDate();\r\n var currentDate = this.option(\"currentDate\");\r\n var diff = startDate.getTime() <= currentDate.getTime() ? 1 : -1;\r\n var endDate = new Date(new Date(this._getStartViewDate().setMonth(this._getStartViewDate().getMonth() + diff * this.option(\"intervalCount\"))));\r\n while (!this._dateInRange(currentDate, startDate, endDate, diff)) {\r\n startDate = new Date(endDate);\r\n if (diff > 0) {\r\n startDate.setDate(1)\r\n }\r\n endDate = new Date(new Date(endDate.setMonth(endDate.getMonth() + diff * this.option(\"intervalCount\"))))\r\n }\r\n return diff > 0 ? startDate : endDate\r\n }\r\n },\r\n _getStartViewDate: function() {\r\n var firstMonthDate = dateUtils.getFirstMonthDate(this.option(\"startDate\"));\r\n return firstMonthDate\r\n },\r\n _renderTableBody: function(options) {\r\n options.getCellText = this._getCellText.bind(this);\r\n this.callBase(options)\r\n },\r\n _getCellText: function(rowIndex, cellIndex) {\r\n if (this.isGroupedByDate()) {\r\n cellIndex = Math.floor(cellIndex / this._getGroupCount())\r\n } else {\r\n cellIndex %= this._getCellCount()\r\n }\r\n var date = this._getDate(rowIndex, cellIndex);\r\n if (this._isWorkSpaceWithCount() && this._isFirstDayOfMonth(date)) {\r\n return this._formatMonthAndDay(date)\r\n }\r\n return dateLocalization.format(date, \"dd\")\r\n },\r\n _formatMonthAndDay: function(date) {\r\n var monthName = dateLocalization.getMonthNames(\"abbreviated\")[date.getMonth()];\r\n return [monthName, dateLocalization.format(date, \"day\")].join(\" \")\r\n },\r\n _getDate: function(week, day) {\r\n var result = new Date(this._firstViewDate);\r\n var lastRowInDay = this._getRowCount();\r\n result.setDate(result.getDate() + week % lastRowInDay * DAYS_IN_WEEK + day);\r\n return result\r\n },\r\n _updateIndex: function(index) {\r\n return index\r\n },\r\n _prepareCellData: function(rowIndex, cellIndex, cell) {\r\n var data = this.callBase(rowIndex, cellIndex, cell);\r\n var $cell = $(cell);\r\n $cell.toggleClass(DATE_TABLE_CURRENT_DATE_CLASS, this._isCurrentDate(data.startDate)).toggleClass(DATE_TABLE_FIRST_OF_MONTH_CLASS, this._isFirstDayOfMonth(data.startDate)).toggleClass(DATE_TABLE_OTHER_MONTH_DATE_CLASS, this._isOtherMonth(data.startDate));\r\n return data\r\n },\r\n _isCurrentDate: function(cellDate) {\r\n var today = new Date;\r\n return dateUtils.sameDate(cellDate, today)\r\n },\r\n _isFirstDayOfMonth: function(cellDate) {\r\n return this._isWorkSpaceWithCount() && 1 === cellDate.getDate()\r\n },\r\n _isOtherMonth: function(cellDate) {\r\n return !dateUtils.dateInRange(cellDate, this._minVisibleDate, this._maxVisibleDate, \"date\")\r\n },\r\n needRenderDateTimeIndication: function() {\r\n return false\r\n },\r\n getCellDuration: function() {\r\n return 36e5 * this._calculateDayDuration()\r\n },\r\n getIntervalDuration: function() {\r\n return toMs(\"day\")\r\n },\r\n getTimePanelWidth: function() {\r\n return 0\r\n },\r\n getPositionShift: function(timeShift) {\r\n return {\r\n cellPosition: timeShift * this.getCellWidth(),\r\n top: 0,\r\n left: 0\r\n }\r\n },\r\n getCellCountToLastViewDate: function(date) {\r\n var firstDateTime = date.getTime();\r\n var lastDateTime = this.getEndViewDate().getTime();\r\n var dayDurationInMs = this.getCellDuration();\r\n return Math.ceil((lastDateTime - firstDateTime) / dayDurationInMs)\r\n },\r\n supportAllDayRow: function() {\r\n return false\r\n },\r\n keepOriginalHours: function() {\r\n return true\r\n },\r\n calculateEndDate: function(startDate) {\r\n var startDateCopy = new Date(startDate);\r\n return new Date(startDateCopy.setHours(this.option(\"endDayHour\")))\r\n },\r\n getWorkSpaceLeftOffset: function() {\r\n return 0\r\n },\r\n needApplyCollectorOffset: function() {\r\n return true\r\n },\r\n _getDateTableBorderOffset: function() {\r\n return this._getDateTableBorder()\r\n },\r\n _getCellPositionByIndex: function(index, groupIndex) {\r\n var position = this.callBase(index, groupIndex);\r\n var rowIndex = this._getCellCoordinatesByIndex(index).rowIndex;\r\n var calculatedTopOffset;\r\n if (!this._isVerticalGroupedWorkSpace()) {\r\n calculatedTopOffset = this.getCellHeight() * rowIndex\r\n } else {\r\n calculatedTopOffset = this.getCellHeight() * (rowIndex + groupIndex * this._getRowCount())\r\n }\r\n if (calculatedTopOffset) {\r\n position.top = calculatedTopOffset\r\n }\r\n return position\r\n },\r\n _getHeaderDate: function() {\r\n return this._getViewStartByOptions()\r\n },\r\n _supportCompactDropDownAppointments: function() {\r\n return false\r\n },\r\n scrollToTime: noop,\r\n _getRowCountWithAllDayRows: function() {\r\n return this._getRowCount()\r\n }\r\n});\r\nregisterComponent(\"dxSchedulerWorkSpaceMonth\", SchedulerWorkSpaceMonth);\r\nmodule.exports = SchedulerWorkSpaceMonth;\r\n","/**\r\n * DevExtreme (ui/scheduler/rendering_strategies/ui.scheduler.appointments.strategy.horizontal_month_line.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _uiSchedulerAppointmentsStrategy = require(\"./ui.scheduler.appointments.strategy.horizontal\");\r\nvar _uiSchedulerAppointmentsStrategy2 = _interopRequireDefault(_uiSchedulerAppointmentsStrategy);\r\nvar _date = require(\"../../../core/utils/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _query = require(\"../../../data/query\");\r\nvar _query2 = _interopRequireDefault(_query);\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar HOURS_IN_DAY = 24;\r\nvar MINUTES_IN_HOUR = 60;\r\nvar MILLISECONDS_IN_MINUTE = 6e4;\r\nvar ZERO_APPOINTMENT_DURATION_IN_DAYS = 1;\r\nvar HorizontalMonthLineRenderingStrategy = function(_HorizontalAppointmen) {\r\n _inherits(HorizontalMonthLineRenderingStrategy, _HorizontalAppointmen);\r\n var _super = _createSuper(HorizontalMonthLineRenderingStrategy);\r\n\r\n function HorizontalMonthLineRenderingStrategy() {\r\n _classCallCheck(this, HorizontalMonthLineRenderingStrategy);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(HorizontalMonthLineRenderingStrategy, [{\r\n key: \"calculateAppointmentWidth\",\r\n value: function(appointment, position, isRecurring) {\r\n var startDate = _date2.default.trimTime(new Date(this.startDate(appointment, false, position)));\r\n var endDate = new Date(this.endDate(appointment, position, isRecurring, true));\r\n var cellWidth = this.getDefaultCellWidth() || this.getAppointmentMinSize();\r\n var duration = this._getDurationInDays(startDate, endDate);\r\n var width = this.cropAppointmentWidth(Math.ceil(duration) * cellWidth, cellWidth);\r\n return width\r\n }\r\n }, {\r\n key: \"_getDurationInDays\",\r\n value: function(startDate, endDate) {\r\n var adjustedDuration = this._adjustDurationByDaylightDiff(endDate.getTime() - startDate.getTime(), startDate, endDate);\r\n return adjustedDuration / _date2.default.dateToMilliseconds(\"day\") || ZERO_APPOINTMENT_DURATION_IN_DAYS\r\n }\r\n }, {\r\n key: \"getDeltaTime\",\r\n value: function(args, initialSize) {\r\n return HOURS_IN_DAY * MINUTES_IN_HOUR * MILLISECONDS_IN_MINUTE * this._getDeltaWidth(args, initialSize)\r\n }\r\n }, {\r\n key: \"isAllDay\",\r\n value: function() {\r\n return false\r\n }\r\n }, {\r\n key: \"createTaskPositionMap\",\r\n value: function(items, skipSorting) {\r\n if (!skipSorting) {\r\n this.instance.getAppointmentsInstance()._sortAppointmentsByStartDate(items)\r\n }\r\n return _get(_getPrototypeOf(HorizontalMonthLineRenderingStrategy.prototype), \"createTaskPositionMap\", this).call(this, items)\r\n }\r\n }, {\r\n key: \"_getSortedPositions\",\r\n value: function(map, skipSorting) {\r\n var result = _get(_getPrototypeOf(HorizontalMonthLineRenderingStrategy.prototype), \"_getSortedPositions\", this).call(this, map);\r\n if (!skipSorting) {\r\n result = (0, _query2.default)(result).sortBy(\"top\").thenBy(\"left\").thenBy(\"cellPosition\").thenBy(\"i\").toArray()\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"needCorrectAppointmentDates\",\r\n value: function() {\r\n return false\r\n }\r\n }]);\r\n return HorizontalMonthLineRenderingStrategy\r\n}(_uiSchedulerAppointmentsStrategy2.default);\r\nmodule.exports = HorizontalMonthLineRenderingStrategy;\r\n","/**\r\n * DevExtreme (ui/scheduler/rendering_strategies/ui.scheduler.appointmentsPositioning.strategy.base.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _type = require(\"../../../core/utils/type\");\r\nvar _type2 = _interopRequireDefault(_type);\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 _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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 COLLECTOR_DEFAULT_WIDTH = 24;\r\nvar COLLECTOR_DEFAULT_OFFSET = 3;\r\nvar COMPACT_THEME_APPOINTMENT_DEFAULT_OFFSET = 22;\r\nvar APPOINTMENT_MIN_COUNT = 1;\r\nvar APPOINTMENT_DEFAULT_WIDTH = 40;\r\nvar COLLECTOR_WIDTH_IN_PERCENTS = 75;\r\nvar APPOINTMENT_INCREASED_WIDTH = 50;\r\nvar AppointmentPositioningStrategy = function() {\r\n function AppointmentPositioningStrategy(renderingStrategy) {\r\n _classCallCheck(this, AppointmentPositioningStrategy);\r\n this._renderingStrategy = renderingStrategy\r\n }\r\n _createClass(AppointmentPositioningStrategy, [{\r\n key: \"getRenderingStrategy\",\r\n value: function() {\r\n return this._renderingStrategy\r\n }\r\n }, {\r\n key: \"getDropDownAppointmentWidth\",\r\n value: function(intervalCount, isAllDay) {\r\n if (isAllDay || !_type2.default.isDefined(isAllDay)) {\r\n return COLLECTOR_WIDTH_IN_PERCENTS * this.getRenderingStrategy().getDefaultCellWidth() / 100\r\n } else {\r\n return COLLECTOR_DEFAULT_WIDTH\r\n }\r\n }\r\n }, {\r\n key: \"getCollectorTopOffset\",\r\n value: function() {\r\n return COLLECTOR_DEFAULT_OFFSET\r\n }\r\n }, {\r\n key: \"getCollectorLeftOffset\",\r\n value: function() {\r\n return COLLECTOR_DEFAULT_OFFSET\r\n }\r\n }, {\r\n key: \"getAppointmentDefaultOffset\",\r\n value: function() {\r\n if (this.getRenderingStrategy()._isCompactTheme()) {\r\n return COMPACT_THEME_APPOINTMENT_DEFAULT_OFFSET\r\n }\r\n return this.getRenderingStrategy().instance.option(\"_appointmentOffset\")\r\n }\r\n }, {\r\n key: \"getDynamicAppointmentCountPerCell\",\r\n value: function() {\r\n var renderingStrategy = this.getRenderingStrategy();\r\n var cellHeight = renderingStrategy.instance.fire(\"getCellHeight\");\r\n var allDayCount = Math.floor((cellHeight - renderingStrategy._getAppointmentDefaultOffset()) / renderingStrategy._getAppointmentDefaultHeight()) || this._getAppointmentMinCount();\r\n if (renderingStrategy.hasAllDayAppointments()) {\r\n return {\r\n allDay: \"vertical\" === renderingStrategy.instance._groupOrientation ? allDayCount : renderingStrategy.instance.option(\"_appointmentCountPerCell\"),\r\n simple: this._calculateDynamicAppointmentCountPerCell() || this._getAppointmentMinCount()\r\n }\r\n } else {\r\n return allDayCount\r\n }\r\n }\r\n }, {\r\n key: \"getDropDownAppointmentHeight\",\r\n value: function() {\r\n return\r\n }\r\n }, {\r\n key: \"_getAppointmentMinCount\",\r\n value: function() {\r\n return APPOINTMENT_MIN_COUNT\r\n }\r\n }, {\r\n key: \"_calculateDynamicAppointmentCountPerCell\",\r\n value: function() {\r\n return Math.floor(this.getRenderingStrategy()._getAppointmentMaxWidth() / APPOINTMENT_INCREASED_WIDTH)\r\n }\r\n }, {\r\n key: \"_getAppointmentDefaultWidth\",\r\n value: function() {\r\n return APPOINTMENT_DEFAULT_WIDTH\r\n }\r\n }]);\r\n return AppointmentPositioningStrategy\r\n}();\r\nmodule.exports = AppointmentPositioningStrategy;\r\n","/**\r\n * DevExtreme (ui/scheduler/ui.scheduler.publisher_mixin.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar publisherMixin = {\r\n 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 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};\r\nmodule.exports = publisherMixin;\r\n","/**\r\n * DevExtreme (ui/scheduler/appointmentDragBehavior.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nexports.default = void 0;\r\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _draggable = require(\"../draggable\");\r\nvar _draggable2 = _interopRequireDefault(_draggable);\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _translator2 = _interopRequireDefault(_translator);\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position = require(\"../../core/utils/position\");\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\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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 FIXED_CONTAINER_PROP_NAME = \"fixedContainer\";\r\nvar APPOINTMENT_ITEM_CLASS = \"dx-scheduler-appointment\";\r\nvar AppointmentDragBehavior = function() {\r\n function AppointmentDragBehavior(scheduler) {\r\n _classCallCheck(this, AppointmentDragBehavior);\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.currentAppointment = null\r\n }\r\n _createClass(AppointmentDragBehavior, [{\r\n key: \"isAllDay\",\r\n value: function(appointment) {\r\n return appointment.data(\"dxAppointmentSettings\").allDay\r\n }\r\n }, {\r\n key: \"getContainerShift\",\r\n value: function(isAllDay) {\r\n var appointmentContainer = this.appointments._getAppointmentContainer(isAllDay);\r\n var dragAndDropContainer = this.appointments.option(FIXED_CONTAINER_PROP_NAME);\r\n var appointmentContainerRect = (0, _position.getBoundingRect)(appointmentContainer[0]);\r\n var dragAndDropContainerRect = (0, _position.getBoundingRect)(dragAndDropContainer[0]);\r\n return {\r\n left: appointmentContainerRect.left - dragAndDropContainerRect.left,\r\n top: appointmentContainerRect.top - dragAndDropContainerRect.top\r\n }\r\n }\r\n }, {\r\n key: \"onDragStart\",\r\n value: function(e) {\r\n this.initialPosition = _translator2.default.locate((0, _renderer2.default)(e.itemElement));\r\n this.appointments.notifyObserver(\"hideAppointmentTooltip\")\r\n }\r\n }, {\r\n key: \"onDragMove\",\r\n value: function(e) {\r\n if (e.fromComponent !== e.toComponent) {\r\n this.appointments.notifyObserver(\"removeDroppableCellClass\")\r\n }\r\n }\r\n }, {\r\n key: \"getAppointmentElement\",\r\n value: function(e) {\r\n var itemElement = e.event.data && e.event.data.itemElement || e.itemElement;\r\n return (0, _renderer2.default)(itemElement)\r\n }\r\n }, {\r\n key: \"onDragEnd\",\r\n value: function(e) {\r\n var $appointment = this.getAppointmentElement(e);\r\n var container = this.appointments._getAppointmentContainer(this.isAllDay($appointment));\r\n container.append($appointment);\r\n this.currentAppointment = $appointment;\r\n this.appointments.notifyObserver(\"updateAppointmentAfterDrag\", {\r\n event: e,\r\n data: this.appointments._getItemData($appointment),\r\n $appointment: $appointment,\r\n coordinates: this.initialPosition\r\n })\r\n }\r\n }, {\r\n key: \"getItemData\",\r\n value: function(appointment) {\r\n var itemData = (0, _renderer2.default)(appointment).data(_constants.LIST_ITEM_DATA_KEY);\r\n return itemData && itemData.data || this.appointments._getItemData(appointment)\r\n }\r\n }, {\r\n key: \"getItemSettings\",\r\n value: function(appointment) {\r\n var itemData = (0, _renderer2.default)(appointment).data(_constants.LIST_ITEM_DATA_KEY);\r\n return itemData && itemData.settings || []\r\n }\r\n }, {\r\n key: \"createDragStartHandler\",\r\n value: 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 }, {\r\n key: \"createDragMoveHandler\",\r\n value: 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 }, {\r\n key: \"createDragEndHandler\",\r\n value: function(options, appointmentDragging) {\r\n return function(e) {\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 }, {\r\n key: \"createDropHandler\",\r\n value: function(appointmentDragging) {\r\n var _this2 = this;\r\n return function(e) {\r\n e.itemData = (0, _extend.extend)({}, e.itemData, _this2.appointments.invoke(\"getUpdatedData\", {\r\n data: e.itemData\r\n }));\r\n if (e.fromComponent !== e.toComponent) {\r\n appointmentDragging.onAdd && appointmentDragging.onAdd(e)\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"addTo\",\r\n value: 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, _draggable2.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 }, {\r\n key: \"moveBack\",\r\n value: function() {\r\n if (this.currentAppointment && void 0 !== this.initialPosition.left && void 0 !== this.initialPosition.top) {\r\n _translator2.default.move(this.currentAppointment, this.initialPosition)\r\n }\r\n }\r\n }]);\r\n return AppointmentDragBehavior\r\n}();\r\nexports.default = AppointmentDragBehavior;\r\nmodule.exports = AppointmentDragBehavior;\r\n","/**\r\n * DevExtreme (ui/scheduler/ui.scheduler.resource_manager.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nexports.default = void 0;\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _array2 = _interopRequireDefault(_array);\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _object = require(\"../../core/utils/object\");\r\nvar _object2 = _interopRequireDefault(_object);\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _iterator2 = _interopRequireDefault(_iterator);\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _query = require(\"../../data/query\");\r\nvar _query2 = _interopRequireDefault(_query);\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _data2 = _interopRequireDefault(_data);\r\nvar _data_source = require(\"../../data/data_source/data_source\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _utils = require(\"../../data/data_source/utils\");\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 _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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 getValueExpr = function(resource) {\r\n return resource.valueExpr || \"id\"\r\n};\r\nvar getDisplayExpr = function(resource) {\r\n return resource.displayExpr || \"text\"\r\n};\r\nvar ResourceManager = function() {\r\n function ResourceManager(resources) {\r\n _classCallCheck(this, ResourceManager);\r\n this._resourceLoader = {};\r\n this.setResources(resources)\r\n }\r\n _createClass(ResourceManager, [{\r\n key: \"_createWrappedDataSource\",\r\n value: function(dataSource) {\r\n if (dataSource instanceof _data_source.DataSource) {\r\n return dataSource\r\n }\r\n var result = {\r\n store: (0, _utils.normalizeDataSourceOptions)(dataSource).store,\r\n pageSize: 0\r\n };\r\n if (!Array.isArray(dataSource)) {\r\n result.filter = dataSource.filter\r\n }\r\n return new _data_source.DataSource(result)\r\n }\r\n }, {\r\n key: \"_mapResourceData\",\r\n value: function(resource, data) {\r\n var valueGetter = _data2.default.compileGetter(getValueExpr(resource));\r\n var displayGetter = _data2.default.compileGetter(getDisplayExpr(resource));\r\n return _iterator2.default.map(data, function(item) {\r\n var result = {\r\n id: valueGetter(item),\r\n text: displayGetter(item)\r\n };\r\n if (item.color) {\r\n result.color = item.color\r\n }\r\n return result\r\n })\r\n }\r\n }, {\r\n key: \"_isMultipleResource\",\r\n value: function(resourceField) {\r\n var result = false;\r\n _iterator2.default.each(this.getResources(), function(_, resource) {\r\n var field = this.getField(resource);\r\n if (field === resourceField) {\r\n result = resource.allowMultiple;\r\n return false\r\n }\r\n }.bind(this));\r\n return result\r\n }\r\n }, {\r\n key: \"getDataAccessors\",\r\n value: function(field, type) {\r\n var result = null;\r\n _iterator2.default.each(this._dataAccessors[type], function(accessorName, accessors) {\r\n if (field === accessorName) {\r\n result = accessors;\r\n return false\r\n }\r\n });\r\n return result\r\n }\r\n }, {\r\n key: \"getField\",\r\n value: function(resource) {\r\n return resource.fieldExpr || resource.field\r\n }\r\n }, {\r\n key: \"setResources\",\r\n value: function(resources) {\r\n this._resources = resources;\r\n this._dataAccessors = {\r\n getter: {},\r\n setter: {}\r\n };\r\n this._resourceFields = _iterator2.default.map(resources || [], function(resource) {\r\n var field = this.getField(resource);\r\n this._dataAccessors.getter[field] = _data2.default.compileGetter(field);\r\n this._dataAccessors.setter[field] = _data2.default.compileSetter(field);\r\n return field\r\n }.bind(this))\r\n }\r\n }, {\r\n key: \"getResources\",\r\n value: function() {\r\n return this._resources || []\r\n }\r\n }, {\r\n key: \"getResourcesData\",\r\n value: function() {\r\n return this._resourcesData || []\r\n }\r\n }, {\r\n key: \"getEditors\",\r\n value: function() {\r\n var result = [];\r\n var that = this;\r\n _iterator2.default.each(this.getResources(), function(i, resource) {\r\n var field = that.getField(resource);\r\n var currentResourceItems = that._getResourceDataByField(field);\r\n result.push({\r\n editorOptions: {\r\n dataSource: currentResourceItems.length ? currentResourceItems : that._createWrappedDataSource(resource.dataSource),\r\n displayExpr: getDisplayExpr(resource),\r\n valueExpr: getValueExpr(resource)\r\n },\r\n dataField: field,\r\n editorType: resource.allowMultiple ? \"dxTagBox\" : \"dxSelectBox\",\r\n label: {\r\n text: resource.label || field\r\n }\r\n })\r\n });\r\n return result\r\n }\r\n }, {\r\n key: \"getResourceDataByValue\",\r\n value: function(field, value) {\r\n var that = this;\r\n var result = new _deferred.Deferred;\r\n _iterator2.default.each(this.getResources(), function(_, resource) {\r\n var resourceField = that.getField(resource);\r\n if (resourceField === field) {\r\n var dataSource = that._createWrappedDataSource(resource.dataSource);\r\n var valueExpr = getValueExpr(resource);\r\n if (!that._resourceLoader[field]) {\r\n that._resourceLoader[field] = dataSource.load()\r\n }\r\n that._resourceLoader[field].done(function(data) {\r\n var filteredData = (0, _query2.default)(data).filter(valueExpr, value).toArray();\r\n delete that._resourceLoader[field];\r\n result.resolve(filteredData[0])\r\n }).fail(function() {\r\n delete that._resourceLoader[field];\r\n result.reject()\r\n });\r\n return false\r\n }\r\n });\r\n return result.promise()\r\n }\r\n }, {\r\n key: \"setResourcesToItem\",\r\n value: function(itemData, resources) {\r\n var resourcesSetter = this._dataAccessors.setter;\r\n for (var name in resources) {\r\n if (Object.prototype.hasOwnProperty.call(resources, name)) {\r\n var resourceData = resources[name];\r\n resourcesSetter[name](itemData, this._isMultipleResource(name) ? _array2.default.wrapToArray(resourceData) : resourceData)\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"getResourcesFromItem\",\r\n value: function(itemData, wrapOnlyMultipleResources) {\r\n var _this = this;\r\n var result = null;\r\n if (!(0, _type.isDefined)(wrapOnlyMultipleResources)) {\r\n wrapOnlyMultipleResources = false\r\n }\r\n this._resourceFields.forEach(function(field) {\r\n _iterator2.default.each(itemData, function(fieldName, fieldValue) {\r\n var tempObject = {};\r\n tempObject[fieldName] = fieldValue;\r\n var resourceData = _this.getDataAccessors(field, \"getter\")(tempObject);\r\n if ((0, _type.isDefined)(resourceData)) {\r\n if (!result) {\r\n result = {}\r\n }\r\n if (1 === resourceData.length) {\r\n resourceData = resourceData[0]\r\n }\r\n if (!wrapOnlyMultipleResources || wrapOnlyMultipleResources && _this._isMultipleResource(field)) {\r\n _this.getDataAccessors(field, \"setter\")(tempObject, _array2.default.wrapToArray(resourceData))\r\n } else {\r\n _this.getDataAccessors(field, \"setter\")(tempObject, resourceData)\r\n }(0, _extend.extend)(result, tempObject);\r\n return true\r\n }\r\n })\r\n });\r\n return result\r\n }\r\n }, {\r\n key: \"loadResources\",\r\n value: function(groups) {\r\n var result = new _deferred.Deferred;\r\n var that = this;\r\n var deferreds = [];\r\n _iterator2.default.each(this.getResourcesByFields(groups), function(i, resource) {\r\n var deferred = new _deferred.Deferred;\r\n var field = that.getField(resource);\r\n deferreds.push(deferred);\r\n that._createWrappedDataSource(resource.dataSource).load().done(function(data) {\r\n deferred.resolve({\r\n name: field,\r\n items: that._mapResourceData(resource, data),\r\n data: data\r\n })\r\n }).fail(function() {\r\n deferred.reject()\r\n })\r\n });\r\n if (!deferreds.length) {\r\n that._resourcesData = [];\r\n return result.resolve([])\r\n }\r\n _deferred.when.apply(null, deferreds).done(function() {\r\n var data = Array.prototype.slice.call(arguments);\r\n var mapFunction = function(obj) {\r\n return {\r\n name: obj.name,\r\n items: obj.items,\r\n data: obj.data\r\n }\r\n };\r\n that._resourcesData = data;\r\n result.resolve(data.map(mapFunction))\r\n }).fail(function() {\r\n result.reject()\r\n });\r\n return result.promise()\r\n }\r\n }, {\r\n key: \"getResourcesByFields\",\r\n value: function(fields) {\r\n return (0, _common.grep)(this.getResources(), function(resource) {\r\n var field = this.getField(resource);\r\n return (0, _array.inArray)(field, fields) > -1\r\n }.bind(this))\r\n }\r\n }, {\r\n key: \"getResourceByField\",\r\n value: function(field) {\r\n return this.getResourcesByFields([field])[0] || {}\r\n }\r\n }, {\r\n key: \"getResourceColor\",\r\n value: function(field, value) {\r\n var valueExpr = this.getResourceByField(field).valueExpr || \"id\";\r\n var valueGetter = _data2.default.compileGetter(valueExpr);\r\n var colorExpr = this.getResourceByField(field).colorExpr || \"color\";\r\n var colorGetter = _data2.default.compileGetter(colorExpr);\r\n var result = new _deferred.Deferred;\r\n var resourceData = this._getResourceDataByField(field);\r\n var resourceDataLength = resourceData.length;\r\n var color;\r\n if (resourceDataLength) {\r\n for (var i = 0; i < resourceDataLength; i++) {\r\n if (valueGetter(resourceData[i]) === value) {\r\n color = colorGetter(resourceData[i]);\r\n break\r\n }\r\n }\r\n result.resolve(color)\r\n } else {\r\n this.getResourceDataByValue(field, value).done(function(resourceData) {\r\n if (resourceData) {\r\n color = colorGetter(resourceData)\r\n }\r\n result.resolve(color)\r\n }).fail(function() {\r\n result.reject()\r\n })\r\n }\r\n return result.promise()\r\n }\r\n }, {\r\n key: \"getResourceForPainting\",\r\n value: function(groups) {\r\n var resources = this.getResources();\r\n var result;\r\n _iterator2.default.each(resources, function(index, resource) {\r\n if (resource.useColorAsDefault) {\r\n result = resource;\r\n return false\r\n }\r\n });\r\n if (!result) {\r\n if (Array.isArray(groups) && groups.length) {\r\n resources = this.getResourcesByFields(groups)\r\n }\r\n result = resources[resources.length - 1]\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"createResourcesTree\",\r\n value: function(groups) {\r\n var leafIndex = 0;\r\n var groupIndex = groupIndex || 0;\r\n\r\n function make(group, groupIndex, result, parent) {\r\n result = result || [];\r\n for (var i = 0; i < group.items.length; i++) {\r\n var currentGroupItem = group.items[i];\r\n var resultItem = {\r\n name: group.name,\r\n value: currentGroupItem.id,\r\n title: currentGroupItem.text,\r\n data: group.data && group.data[i],\r\n children: [],\r\n parent: parent ? parent : null\r\n };\r\n result.push(resultItem);\r\n var nextGroupIndex = groupIndex + 1;\r\n if (groups[nextGroupIndex]) {\r\n make.call(this, groups[nextGroupIndex], nextGroupIndex, resultItem.children, resultItem)\r\n }\r\n if (!resultItem.children.length) {\r\n resultItem.leafIndex = leafIndex;\r\n leafIndex++\r\n }\r\n }\r\n return result\r\n }\r\n return make.call(this, groups[0], 0)\r\n }\r\n }, {\r\n key: \"_hasGroupItem\",\r\n value: function(appointmentResources, groupName, itemValue) {\r\n var group = this.getDataAccessors(groupName, \"getter\")(appointmentResources);\r\n if (group) {\r\n if ((0, _array.inArray)(itemValue, group) > -1) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n }, {\r\n key: \"_getResourceDataByField\",\r\n value: function(fieldName) {\r\n var loadedResources = this.getResourcesData();\r\n var currentResourceData = [];\r\n for (var i = 0, resourceCount = loadedResources.length; i < resourceCount; i++) {\r\n if (loadedResources[i].name === fieldName) {\r\n currentResourceData = loadedResources[i].data;\r\n break\r\n }\r\n }\r\n return currentResourceData\r\n }\r\n }, {\r\n key: \"getResourceTreeLeaves\",\r\n value: function(tree, appointmentResources, result) {\r\n result = result || [];\r\n for (var i = 0; i < tree.length; i++) {\r\n if (!this._hasGroupItem(appointmentResources, tree[i].name, tree[i].value)) {\r\n continue\r\n }\r\n if ((0, _type.isDefined)(tree[i].leafIndex)) {\r\n result.push(tree[i].leafIndex)\r\n }\r\n if (tree[i].children) {\r\n this.getResourceTreeLeaves(tree[i].children, appointmentResources, result)\r\n }\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"groupAppointmentsByResources\",\r\n value: function(appointments, resources) {\r\n var tree = this.createResourcesTree(resources);\r\n var result = {};\r\n _iterator2.default.each(appointments, function(_, appointment) {\r\n var appointmentResources = this.getResourcesFromItem(appointment);\r\n var treeLeaves = this.getResourceTreeLeaves(tree, appointmentResources);\r\n for (var i = 0; i < treeLeaves.length; i++) {\r\n if (!result[treeLeaves[i]]) {\r\n result[treeLeaves[i]] = []\r\n }\r\n result[treeLeaves[i]].push(_object2.default.deepExtendArraySafe({}, appointment, true))\r\n }\r\n }.bind(this));\r\n return result\r\n }\r\n }, {\r\n key: \"reduceResourcesTree\",\r\n value: function(tree, existingAppointments, _result) {\r\n _result = _result ? _result.children : [];\r\n var that = this;\r\n tree.forEach(function(node, index) {\r\n var ok = false;\r\n var resourceName = node.name;\r\n var resourceValue = node.value;\r\n var resourceTitle = node.title;\r\n var resourceData = node.data;\r\n var resourceGetter = that.getDataAccessors(resourceName, \"getter\");\r\n existingAppointments.forEach(function(appointment) {\r\n if (!ok) {\r\n var resourceFromAppointment = resourceGetter(appointment);\r\n if (Array.isArray(resourceFromAppointment)) {\r\n if (resourceFromAppointment.indexOf(resourceValue) > -1) {\r\n _result.push({\r\n name: resourceName,\r\n value: resourceValue,\r\n title: resourceTitle,\r\n data: resourceData,\r\n children: []\r\n });\r\n ok = true\r\n }\r\n } else {\r\n if (resourceFromAppointment === resourceValue) {\r\n _result.push({\r\n name: resourceName,\r\n value: resourceValue,\r\n title: resourceTitle,\r\n data: resourceData,\r\n children: []\r\n });\r\n ok = true\r\n }\r\n }\r\n }\r\n });\r\n if (ok && node.children && node.children.length) {\r\n that.reduceResourcesTree(node.children, existingAppointments, _result[index])\r\n }\r\n });\r\n return _result\r\n }\r\n }]);\r\n return ResourceManager\r\n}();\r\nexports.default = ResourceManager;\r\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.agenda.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar $ = require(\"../../../core/renderer\");\r\nvar domAdapter = require(\"../../../core/dom_adapter\");\r\nvar noop = require(\"../../../core/utils/common\").noop;\r\nvar each = require(\"../../../core/utils/iterator\").each;\r\nvar getPublicElement = require(\"../../../core/utils/dom\").getPublicElement;\r\nvar registerComponent = require(\"../../../core/component_registrator\");\r\nvar SchedulerWorkSpace = require(\"./ui.scheduler.work_space\");\r\nvar extend = require(\"../../../core/utils/extend\").extend;\r\nvar dateLocalization = require(\"../../../localization/date\");\r\nvar tableCreator = require(\"../ui.scheduler.table_creator\");\r\nvar AGENDA_CLASS = \"dx-scheduler-agenda\";\r\nvar AGENDA_DATE_CLASS = \"dx-scheduler-agenda-date\";\r\nvar GROUP_TABLE_CLASS = \"dx-scheduler-group-table\";\r\nvar AGENDA_GROUPED_ATTR = \"dx-group-column-count\";\r\nvar TIME_PANEL_ROW_CLASS = \"dx-scheduler-time-panel-row\";\r\nvar TIME_PANEL_CELL_CLASS = \"dx-scheduler-time-panel-cell\";\r\nvar NODATA_CONTAINER_CLASS = \"dx-scheduler-agenda-nodata\";\r\nvar LAST_ROW_CLASS = \"dx-scheduler-date-table-last-row\";\r\nvar INNER_CELL_MARGIN = 5;\r\nvar OUTER_CELL_MARGIN = 20;\r\nvar SchedulerAgenda = SchedulerWorkSpace.inherit({\r\n _activeStateUnit: void 0,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n agendaDuration: 7,\r\n rowHeight: 60,\r\n noDataText: \"\"\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var value = args.value;\r\n switch (name) {\r\n case \"agendaDuration\":\r\n break;\r\n case \"noDataText\":\r\n case \"rowHeight\":\r\n this._recalculateAgenda(this._rows);\r\n break;\r\n case \"groups\":\r\n if (!value || !value.length) {\r\n if (this._$groupTable) {\r\n this._$groupTable.remove();\r\n this._$groupTable = null;\r\n this._detachGroupCountAttr()\r\n }\r\n } else {\r\n if (!this._$groupTable) {\r\n this._initGroupTable();\r\n this._dateTableScrollable.$content().prepend(this._$groupTable)\r\n }\r\n }\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _renderFocusState: noop,\r\n _renderFocusTarget: noop,\r\n _cleanFocusState: noop,\r\n supportAllDayRow: function() {\r\n return false\r\n },\r\n _isVerticalGroupedWorkSpace: function() {\r\n return false\r\n },\r\n _getElementClass: function() {\r\n return AGENDA_CLASS\r\n },\r\n _setFirstViewDate: function() {\r\n this._firstViewDate = new Date(this.option(\"currentDate\"));\r\n this._setStartDayHour(this._firstViewDate)\r\n },\r\n _getRowCount: function() {\r\n return this.option(\"agendaDuration\")\r\n },\r\n _getCellCount: function() {\r\n return 1\r\n },\r\n _getTimePanelRowCount: function() {\r\n return this.option(\"agendaDuration\")\r\n },\r\n _getDateByIndex: noop,\r\n _getFormat: function() {\r\n return \"d ddd\"\r\n },\r\n _renderAllDayPanel: noop,\r\n _toggleAllDayVisibility: noop,\r\n _initWorkSpaceUnits: function() {\r\n this._initGroupTable();\r\n this._$timePanel = $(\"\").addClass(this._getTimePanelClass());\r\n this._$dateTable = $(\"
\").addClass(this._getDateTableClass())\r\n },\r\n _initGroupTable: function() {\r\n var groups = this.option(\"groups\");\r\n if (groups && groups.length) {\r\n this._$groupTable = $(\"
\").addClass(GROUP_TABLE_CLASS)\r\n }\r\n },\r\n _renderView: function() {\r\n this._setFirstViewDate();\r\n this._rows = [];\r\n this.invoke(\"getAgendaRows\", {\r\n agendaDuration: this.option(\"agendaDuration\"),\r\n currentDate: new Date(this.option(\"currentDate\"))\r\n }).done(function(rows) {\r\n this._recalculateAgenda(rows)\r\n }.bind(this))\r\n },\r\n _recalculateAgenda: function(rows) {\r\n var cellTemplates = [];\r\n this._cleanView();\r\n if (this._rowsIsEmpty(rows)) {\r\n this._renderNoData();\r\n return\r\n }\r\n this._rows = rows;\r\n if (this._$groupTable) {\r\n cellTemplates = this._renderGroupHeader();\r\n this._setGroupHeaderCellsHeight()\r\n }\r\n this._renderTimePanel();\r\n this._renderDateTable();\r\n this.invoke(\"onAgendaReady\", rows);\r\n this._applyCellTemplates(cellTemplates);\r\n this._dateTableScrollable.update()\r\n },\r\n _renderNoData: function() {\r\n this._$noDataContainer = $(\"
\").addClass(NODATA_CONTAINER_CLASS).html(this.option(\"noDataText\"));\r\n this._dateTableScrollable.$content().append(this._$noDataContainer)\r\n },\r\n _setTableSizes: noop,\r\n _toggleHorizontalScrollClass: noop,\r\n _createCrossScrollingConfig: noop,\r\n _setGroupHeaderCellsHeight: function() {\r\n var $cells = this._getGroupHeaderCells().filter(function(_, element) {\r\n return !element.getAttribute(\"rowSpan\")\r\n });\r\n var rows = this._removeEmptyRows(this._rows);\r\n if (!rows.length) {\r\n return\r\n }\r\n for (var i = 0; i < $cells.length; i++) {\r\n var $cellContent = $cells.eq(i).find(\".dx-scheduler-group-header-content\");\r\n $cellContent.outerHeight(this._getGroupRowHeight(rows[i]))\r\n }\r\n },\r\n _rowsIsEmpty: function(rows) {\r\n var result = true;\r\n for (var i = 0; i < rows.length; i++) {\r\n var groupRow = rows[i];\r\n for (var j = 0; j < groupRow.length; j++) {\r\n if (groupRow[j]) {\r\n result = false;\r\n break\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n _detachGroupCountAttr: function() {\r\n this.$element().removeAttr(AGENDA_GROUPED_ATTR)\r\n },\r\n _attachGroupCountAttr: function() {\r\n this.$element().attr(AGENDA_GROUPED_ATTR, this.option(\"groups\").length)\r\n },\r\n _removeEmptyRows: function(rows) {\r\n var result = [];\r\n var isEmpty = function(data) {\r\n return !data.some(function(value) {\r\n return value > 0\r\n })\r\n };\r\n for (var i = 0; i < rows.length; i++) {\r\n if (rows[i].length && !isEmpty(rows[i])) {\r\n result.push(rows[i])\r\n }\r\n }\r\n return result\r\n },\r\n _getGroupHeaderContainer: function() {\r\n return this._$groupTable\r\n },\r\n _makeGroupRows: function() {\r\n var tree = this.invoke(\"createReducedResourcesTree\");\r\n var cellTemplate = this.option(\"resourceCellTemplate\");\r\n var getGroupHeaderContentClass = this._getGroupHeaderContentClass();\r\n var cellTemplates = [];\r\n var table = tableCreator.makeGroupedTableFromJSON(tableCreator.VERTICAL, tree, {\r\n cellTag: \"th\",\r\n groupTableClass: GROUP_TABLE_CLASS,\r\n groupRowClass: this._getGroupRowClass(),\r\n groupCellClass: this._getGroupHeaderClass(),\r\n groupCellCustomContent: function(cell, cellText, index, data) {\r\n var container = domAdapter.createElement(\"div\");\r\n var contentWrapper = domAdapter.createElement(\"div\");\r\n container.className = getGroupHeaderContentClass;\r\n contentWrapper.appendChild(cellText);\r\n container.appendChild(contentWrapper);\r\n container.className = getGroupHeaderContentClass;\r\n if (cellTemplate && cellTemplate.render) {\r\n cellTemplates.push(cellTemplate.render.bind(cellTemplate, {\r\n model: {\r\n data: data.data,\r\n id: data.value,\r\n color: data.color,\r\n text: cellText.textContent\r\n },\r\n container: getPublicElement($(container)),\r\n index: index\r\n }))\r\n } else {\r\n contentWrapper.appendChild(cellText);\r\n container.appendChild(contentWrapper)\r\n }\r\n cell.appendChild(container)\r\n },\r\n cellTemplate: cellTemplate\r\n });\r\n return {\r\n elements: $(table).find(\".\" + this._getGroupRowClass()),\r\n cellTemplates: cellTemplates\r\n }\r\n },\r\n _cleanView: function() {\r\n this._$dateTable.empty();\r\n this._$timePanel.empty();\r\n if (this._$groupTable) {\r\n this._$groupTable.empty()\r\n }\r\n if (this._$noDataContainer) {\r\n this._$noDataContainer.empty();\r\n this._$noDataContainer.remove();\r\n delete this._$noDataContainer\r\n }\r\n },\r\n _createWorkSpaceElements: function() {\r\n this._createWorkSpaceStaticElements()\r\n },\r\n _createWorkSpaceStaticElements: function() {\r\n if (this._$groupTable) {\r\n this._dateTableScrollable.$content().prepend(this._$groupTable)\r\n }\r\n this._dateTableScrollable.$content().append(this._$timePanel, this._$dateTable);\r\n this.$element().append(this._dateTableScrollable.$element())\r\n },\r\n _renderDateTable: function() {\r\n this._renderTableBody({\r\n container: getPublicElement(this._$dateTable),\r\n rowClass: this._getDateTableRowClass(),\r\n cellClass: this._getDateTableCellClass()\r\n })\r\n },\r\n _attachTablesEvents: noop,\r\n _attachEvents: noop,\r\n _cleanCellDataCache: noop,\r\n needRenderDateTimeIndication: function() {\r\n return false\r\n },\r\n _prepareCellTemplateOptions: function(text, date, rowIndex, $cell) {\r\n var groupsOpt = this.option(\"groups\");\r\n var groups = {};\r\n var path = groupsOpt.length && this._getPathToLeaf(rowIndex) || [];\r\n path.forEach(function(resourceValue, resourceIndex) {\r\n var resourceName = groupsOpt[resourceIndex].name;\r\n groups[resourceName] = resourceValue\r\n });\r\n return {\r\n model: {\r\n text: text,\r\n date: date,\r\n groups: groups\r\n },\r\n container: getPublicElement($cell),\r\n index: rowIndex\r\n }\r\n },\r\n _renderTableBody: function(options) {\r\n var cellTemplates = [];\r\n var cellTemplateOpt = options.cellTemplate;\r\n this._$rows = [];\r\n var i;\r\n var fillTableBody = function(rowIndex, rowSize) {\r\n if (rowSize) {\r\n var date;\r\n var cellDateNumber;\r\n var cellDayName;\r\n var $row = $(\"
\");\r\n var $td = $(\"\").append(this._$rows));\r\n this._applyCellTemplates(cellTemplates)\r\n },\r\n _setLastRowClass: function() {\r\n if (this._rows.length > 1 && this._$rows.length) {\r\n var $lastRow = this._$rows[this._$rows.length - 1];\r\n $lastRow.addClass(LAST_ROW_CLASS)\r\n }\r\n },\r\n _renderTimePanel: function() {\r\n this._renderTableBody({\r\n container: getPublicElement(this._$timePanel),\r\n rowCount: this._getTimePanelRowCount(),\r\n cellCount: 1,\r\n rowClass: TIME_PANEL_ROW_CLASS,\r\n cellClass: TIME_PANEL_CELL_CLASS,\r\n cellTemplate: this.option(\"dateCellTemplate\"),\r\n getStartDate: this._getTimePanelStartDate.bind(this)\r\n })\r\n },\r\n _getTimePanelStartDate: function(rowIndex) {\r\n var current = new Date(this.option(\"currentDate\"));\r\n var cellDate = new Date(current.setDate(current.getDate() + rowIndex));\r\n return cellDate\r\n },\r\n _getRowHeight: function(rowSize) {\r\n var baseHeight = this.option(\"rowHeight\");\r\n var innerOffset = (rowSize - 1) * INNER_CELL_MARGIN;\r\n return rowSize ? baseHeight * rowSize + innerOffset + OUTER_CELL_MARGIN : 0\r\n },\r\n _getGroupRowHeight: function(groupRows) {\r\n if (!groupRows) {\r\n return\r\n }\r\n var result = 0;\r\n for (var i = 0; i < groupRows.length; i++) {\r\n result += this._getRowHeight(groupRows[i])\r\n }\r\n return result\r\n },\r\n getAgendaVerticalStepHeight: function() {\r\n return this.option(\"rowHeight\")\r\n },\r\n getEndViewDate: function() {\r\n var currentDate = new Date(this.option(\"currentDate\"));\r\n var agendaDuration = this.option(\"agendaDuration\");\r\n currentDate.setHours(this.option(\"endDayHour\"));\r\n var result = currentDate.setDate(currentDate.getDate() + agendaDuration - 1) - 6e4;\r\n return new Date(result)\r\n },\r\n getEndViewDateByEndDayHour: function() {\r\n return this.getEndViewDate()\r\n },\r\n getCoordinatesByDate: function() {\r\n return {\r\n top: 0,\r\n left: 0,\r\n max: 0,\r\n groupIndex: 0\r\n }\r\n },\r\n getCellDataByCoordinates: function() {\r\n return {\r\n startDate: null,\r\n endDate: null\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxSchedulerAgenda\", SchedulerAgenda);\r\nmodule.exports = SchedulerAgenda;\r\n","/**\r\n * DevExtreme (ui/scheduler/ui.scheduler.appointments.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _dom_adapter = require(\"../../core/dom_adapter\");\r\nvar _dom_adapter2 = _interopRequireDefault(_dom_adapter);\r\nvar _events_engine = require(\"../../events/core/events_engine\");\r\nvar _events_engine2 = _interopRequireDefault(_events_engine);\r\nvar _element_data = require(\"../../core/element_data\");\r\nvar _element_data2 = _interopRequireDefault(_element_data);\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _translator2 = _interopRequireDefault(_translator);\r\nvar _date = require(\"../../core/utils/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _common2 = _interopRequireDefault(_common);\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _type2 = _interopRequireDefault(_type);\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _object = require(\"../../core/utils/object\");\r\nvar _object2 = _interopRequireDefault(_object);\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _array2 = _interopRequireDefault(_array);\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _dom = require(\"../../core/utils/dom\");\r\nvar _utils = require(\"./utils.recurrence\");\r\nvar _utils2 = _interopRequireDefault(_utils);\r\nvar _component_registrator = require(\"../../core/component_registrator\");\r\nvar _component_registrator2 = _interopRequireDefault(_component_registrator);\r\nvar _uiScheduler = require(\"./ui.scheduler.publisher_mixin\");\r\nvar _uiScheduler2 = _interopRequireDefault(_uiScheduler);\r\nvar _uiScheduler3 = require(\"./ui.scheduler.appointment\");\r\nvar _uiScheduler4 = _interopRequireDefault(_uiScheduler3);\r\nvar _utils3 = require(\"../../events/utils\");\r\nvar eventUtils = _interopRequireWildcard(_utils3);\r\nvar _double_click = require(\"../../events/double_click\");\r\nvar _double_click2 = _interopRequireDefault(_double_click);\r\nvar _message = require(\"../../localization/message\");\r\nvar _message2 = _interopRequireDefault(_message);\r\nvar _uiCollection_widget = require(\"../collection/ui.collection_widget.edit\");\r\nvar _uiCollection_widget2 = _interopRequireDefault(_uiCollection_widget);\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _utilsTimeZone = require(\"./utils.timeZone.js\");\r\nvar _utilsTimeZone2 = _interopRequireDefault(_utilsTimeZone);\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar APPOINTMENT_SETTINGS_NAME = \"dxAppointmentSettings\";\r\nvar COMPONENT_CLASS = \"dx-scheduler-scrollable-appointments\";\r\nvar APPOINTMENT_ITEM_CLASS = \"dx-scheduler-appointment\";\r\nvar APPOINTMENT_TITLE_CLASS = \"dx-scheduler-appointment-title\";\r\nvar APPOINTMENT_CONTENT_DETAILS_CLASS = \"dx-scheduler-appointment-content-details\";\r\nvar APPOINTMENT_DATE_CLASS = \"dx-scheduler-appointment-content-date\";\r\nvar RECURRING_ICON_CLASS = \"dx-scheduler-appointment-recurrence-icon\";\r\nvar ALL_DAY_CONTENT_CLASS = \"dx-scheduler-appointment-content-allday\";\r\nvar DBLCLICK_EVENT_NAME = eventUtils.addNamespace(_double_click2.default.name, \"dxSchedulerAppointment\");\r\nvar toMs = _date2.default.dateToMilliseconds;\r\nvar SchedulerAppointments = _uiCollection_widget2.default.inherit({\r\n ctor: function(element, options) {\r\n this.callBase(element, options)\r\n },\r\n _supportedKeys: function() {\r\n var parent = this.callBase();\r\n var tabHandler = function(e) {\r\n var appointments = this._getAccessAppointments();\r\n var focusedAppointment = appointments.filter(\".dx-state-focused\");\r\n var index = focusedAppointment.data(APPOINTMENT_SETTINGS_NAME).sortedIndex;\r\n var lastIndex = appointments.length - 1;\r\n if (index > 0 && e.shiftKey || index < lastIndex && !e.shiftKey) {\r\n e.preventDefault();\r\n e.shiftKey ? index-- : index++;\r\n var $nextAppointment = this._getAppointmentByIndex(index);\r\n this._resetTabIndex($nextAppointment);\r\n _events_engine2.default.trigger($nextAppointment, \"focus\")\r\n }\r\n };\r\n return (0, _extend.extend)(parent, {\r\n escape: function() {\r\n this.moveAppointmentBack();\r\n this._escPressed = true\r\n }.bind(this),\r\n del: function(e) {\r\n if (this.option(\"allowDelete\")) {\r\n e.preventDefault();\r\n var data = this._getItemData(e.target);\r\n this.notifyObserver(\"deleteAppointment\", {\r\n data: data,\r\n target: e.target\r\n });\r\n this.notifyObserver(\"hideAppointmentTooltip\")\r\n }\r\n }.bind(this),\r\n tab: tabHandler\r\n })\r\n },\r\n _getAppointmentByIndex: function(sortedIndex) {\r\n var appointments = this._getAccessAppointments();\r\n return appointments.filter(function(_, $item) {\r\n return _element_data2.default.data($item, APPOINTMENT_SETTINGS_NAME).sortedIndex === sortedIndex\r\n }).eq(0)\r\n },\r\n _getAccessAppointments: function() {\r\n return this._itemElements().filter(\":visible\").not(\".dx-state-disabled\")\r\n },\r\n _resetTabIndex: function($appointment) {\r\n this._focusTarget().attr(\"tabIndex\", -1);\r\n $appointment.attr(\"tabIndex\", this.option(\"tabIndex\"))\r\n },\r\n _moveFocus: _common2.default.noop,\r\n _focusTarget: function() {\r\n return this._itemElements()\r\n },\r\n _renderFocusTarget: function() {\r\n var $appointment = this._getAppointmentByIndex(0);\r\n this._resetTabIndex($appointment)\r\n },\r\n _focusInHandler: function(e) {\r\n this.callBase.apply(this, arguments);\r\n this._$currentAppointment = (0, _renderer2.default)(e.target);\r\n this.option(\"focusedElement\", (0, _dom.getPublicElement)((0, _renderer2.default)(e.target)))\r\n },\r\n _focusOutHandler: function() {\r\n var $appointment = this._getAppointmentByIndex(0);\r\n this.option(\"focusedElement\", (0, _dom.getPublicElement)($appointment));\r\n this.callBase.apply(this, arguments)\r\n },\r\n _eventBindingTarget: function() {\r\n return this._itemContainer()\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n noDataText: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n tabIndex: 0,\r\n fixedContainer: null,\r\n allDayContainer: null,\r\n allowDrag: true,\r\n allowResize: true,\r\n allowAllDayResize: true,\r\n onAppointmentDblClick: null,\r\n _collectorOffset: 0\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n this._cleanFocusState();\r\n this._clearDropDownItems();\r\n this._clearDropDownItemsElements();\r\n this._repaintAppointments(args.value);\r\n this._renderDropDownAppointments();\r\n this._attachAppointmentsEvents();\r\n break;\r\n case \"fixedContainer\":\r\n case \"allDayContainer\":\r\n case \"onAppointmentDblClick\":\r\n break;\r\n case \"allowDrag\":\r\n case \"allowResize\":\r\n case \"allowAllDayResize\":\r\n this._invalidate();\r\n break;\r\n case \"focusedElement\":\r\n this._resetTabIndex((0, _renderer2.default)(args.value));\r\n this.callBase(args);\r\n break;\r\n case \"allowDelete\":\r\n break;\r\n case \"focusStateEnabled\":\r\n this._clearDropDownItemsElements();\r\n this._renderDropDownAppointments();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _isAllDayAppointment: function(appointment) {\r\n return appointment.settings.length && appointment.settings[0].allDay || false\r\n },\r\n _isRepaintAppointment: function(appointment) {\r\n return !_type2.default.isDefined(appointment.needRepaint) || true === appointment.needRepaint\r\n },\r\n _isRepaintAll: function(appointments) {\r\n if (this.invoke(\"isCurrentViewAgenda\")) {\r\n return true\r\n }\r\n for (var i = 0; i < appointments.length; i++) {\r\n var appointment = appointments[i];\r\n if (!this._isRepaintAppointment(appointment)) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _applyFragment: function(fragment, allDay) {\r\n if (fragment.children().length > 0) {\r\n this._getAppointmentContainer(allDay).append(fragment)\r\n }\r\n },\r\n _onEachAppointment: function(appointment, index, container, isRepaintAll) {\r\n if (appointment && true === appointment.needRemove) {\r\n this._clearItem(appointment);\r\n return\r\n }\r\n if (this._isRepaintAppointment(appointment)) {\r\n appointment.needRepaint = false;\r\n !isRepaintAll && this._clearItem(appointment);\r\n this._renderItem(index, appointment, container)\r\n }\r\n },\r\n _repaintAppointments: function(appointments) {\r\n var _this = this;\r\n var isRepaintAll = this._isRepaintAll(appointments);\r\n var allDayFragment = (0, _renderer2.default)(this._getAppointmentContainer(true));\r\n var commonFragment = (0, _renderer2.default)(this._getAppointmentContainer(false));\r\n if (isRepaintAll) {\r\n this._getAppointmentContainer(true).html(\"\");\r\n this._getAppointmentContainer(false).html(\"\")\r\n }!appointments.length && this._cleanItemContainer();\r\n appointments.forEach(function(appointment, index) {\r\n var container = _this._isAllDayAppointment(appointment) ? allDayFragment : commonFragment;\r\n _this._onEachAppointment(appointment, index, container, isRepaintAll)\r\n });\r\n this._applyFragment(allDayFragment, true);\r\n this._applyFragment(commonFragment, false)\r\n },\r\n _attachAppointmentsEvents: function() {\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._attachContextMenuEvent();\r\n this._attachAppointmentDblClick();\r\n this._renderFocusState();\r\n this._attachFeedbackEvents();\r\n this._attachHoverEvents()\r\n },\r\n _clearItem: function(item) {\r\n var $items = this._findItemElementByItem(item.itemData);\r\n if (!$items.length) {\r\n return\r\n }(0, _iterator.each)($items, function(_, $item) {\r\n $item.detach();\r\n $item.remove()\r\n })\r\n },\r\n _clearDropDownItems: function() {\r\n this._virtualAppointments = {}\r\n },\r\n _clearDropDownItemsElements: function() {\r\n this.invoke(\"clearCompactAppointments\")\r\n },\r\n _findItemElementByItem: function(item) {\r\n var result = [];\r\n var that = this;\r\n this.itemElements().each(function() {\r\n var $item = (0, _renderer2.default)(this);\r\n if ($item.data(that._itemDataKey()) === item) {\r\n result.push($item)\r\n }\r\n });\r\n return result\r\n },\r\n _itemClass: function() {\r\n return APPOINTMENT_ITEM_CLASS\r\n },\r\n _itemContainer: function() {\r\n var $container = this.callBase();\r\n var $result = $container;\r\n var $allDayContainer = this.option(\"allDayContainer\");\r\n if ($allDayContainer) {\r\n $result = $container.add($allDayContainer)\r\n }\r\n return $result\r\n },\r\n _cleanItemContainer: function() {\r\n this.callBase();\r\n var $allDayContainer = this.option(\"allDayContainer\");\r\n if ($allDayContainer) {\r\n $allDayContainer.empty()\r\n }\r\n this._virtualAppointments = {}\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n delete this._$currentAppointment;\r\n delete this._initialSize;\r\n delete this._initialCoordinates\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(COMPONENT_CLASS);\r\n this._preventSingleAppointmentClick = false\r\n },\r\n _renderAppointmentTemplate: function($container, data, model) {\r\n var formatText = this.invoke(\"getTextAndFormatDate\", model.appointmentData, model.appointmentData.settings || model.targetedAppointmentData || {}, \"TIME\");\r\n (0, _renderer2.default)(\"
\").text(formatText.text).addClass(APPOINTMENT_TITLE_CLASS).appendTo($container);\r\n if (_type2.default.isPlainObject(data)) {\r\n if (data.html) {\r\n $container.html(data.html)\r\n }\r\n }\r\n var $contentDetails = (0, _renderer2.default)(\"
\").addClass(APPOINTMENT_CONTENT_DETAILS_CLASS);\r\n (0, _renderer2.default)(\"
\").addClass(APPOINTMENT_DATE_CLASS).text(formatText.formatDate).appendTo($contentDetails);\r\n $contentDetails.appendTo($container);\r\n if (data.recurrenceRule) {\r\n (0, _renderer2.default)(\"\").addClass(RECURRING_ICON_CLASS + \" dx-icon-repeat\").appendTo($container)\r\n }\r\n if (data.allDay) {\r\n (0, _renderer2.default)(\"
\").text(\" \" + _message2.default.format(\"dxScheduler-allDay\") + \": \").addClass(ALL_DAY_CONTENT_CLASS).prependTo($contentDetails)\r\n }\r\n },\r\n _executeItemRenderAction: function(index, itemData, itemElement) {\r\n var action = this._getItemRenderAction();\r\n if (action) {\r\n action(this.invoke(\"mapAppointmentFields\", {\r\n itemData: itemData,\r\n itemElement: itemElement\r\n }))\r\n }\r\n delete this._currentAppointmentSettings\r\n },\r\n _itemClickHandler: function(e) {\r\n this.callBase(e, {}, {\r\n afterExecute: function(e) {\r\n this._processItemClick(e.args[0].event)\r\n }.bind(this)\r\n })\r\n },\r\n _processItemClick: function(e) {\r\n var $target = (0, _renderer2.default)(e.currentTarget);\r\n var data = this._getItemData($target);\r\n if (\"keydown\" === e.type || eventUtils.isFakeClickEvent(e)) {\r\n this.notifyObserver(\"showEditAppointmentPopup\", {\r\n data: data,\r\n target: $target\r\n });\r\n return\r\n }\r\n this._appointmentClickTimeout = setTimeout(function() {\r\n if (!this._preventSingleAppointmentClick && _dom_adapter2.default.getBody().contains($target[0])) {\r\n this.notifyObserver(\"showAppointmentTooltip\", {\r\n data: data,\r\n target: $target\r\n })\r\n }\r\n this._preventSingleAppointmentClick = false\r\n }.bind(this), 300)\r\n },\r\n _extendActionArgs: function() {\r\n var args = this.callBase.apply(this, arguments);\r\n return this.invoke(\"mapAppointmentFields\", args)\r\n },\r\n _render: function() {\r\n this.callBase.apply(this, arguments);\r\n this._attachAppointmentDblClick()\r\n },\r\n _attachAppointmentDblClick: function() {\r\n var that = this;\r\n var itemSelector = that._itemSelector();\r\n var itemContainer = this._itemContainer();\r\n _events_engine2.default.off(itemContainer, DBLCLICK_EVENT_NAME, itemSelector);\r\n _events_engine2.default.on(itemContainer, DBLCLICK_EVENT_NAME, itemSelector, function(e) {\r\n that._itemDXEventHandler(e, \"onAppointmentDblClick\", {}, {\r\n afterExecute: function(e) {\r\n that._dblClickHandler(e.args[0].event)\r\n }\r\n })\r\n })\r\n },\r\n _dblClickHandler: function(e) {\r\n var $targetAppointment = (0, _renderer2.default)(e.currentTarget);\r\n var appointmentData = this._getItemData($targetAppointment);\r\n clearTimeout(this._appointmentClickTimeout);\r\n this._preventSingleAppointmentClick = true;\r\n this.notifyObserver(\"showEditAppointmentPopup\", {\r\n data: appointmentData,\r\n target: $targetAppointment\r\n })\r\n },\r\n _renderItem: function(index, item, container) {\r\n var itemData = item.itemData;\r\n for (var i = 0; i < item.settings.length; i++) {\r\n var setting = item.settings[i];\r\n this._currentAppointmentSettings = setting;\r\n var $item = this.callBase(index, itemData, container);\r\n $item.data(APPOINTMENT_SETTINGS_NAME, setting)\r\n }\r\n },\r\n _getItemContent: function($itemFrame) {\r\n $itemFrame.data(APPOINTMENT_SETTINGS_NAME, this._currentAppointmentSettings);\r\n var $itemContent = this.callBase($itemFrame);\r\n return $itemContent\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n var itemData = renderArgs.itemData,\r\n container = renderArgs.container,\r\n index = renderArgs.index;\r\n return itemTemplate.render({\r\n model: {\r\n appointmentData: itemData,\r\n targetedAppointmentData: this.invoke(\"getTargetedAppointmentData\", itemData, (0, _renderer2.default)(container).parent())\r\n },\r\n container: container,\r\n index: index\r\n })\r\n },\r\n _getAppointmentContainer: function(allDay) {\r\n var $allDayContainer = this.option(\"allDayContainer\");\r\n var $container = this.itemsContainer().not($allDayContainer);\r\n if (allDay && $allDayContainer) {\r\n $container = $allDayContainer\r\n }\r\n return $container\r\n },\r\n _postprocessRenderItem: function(args) {\r\n this._renderAppointment(args.itemElement, this._currentAppointmentSettings)\r\n },\r\n _renderAppointment: function($appointment, settings) {\r\n $appointment.data(APPOINTMENT_SETTINGS_NAME, settings);\r\n this._applyResourceDataAttr($appointment);\r\n var data = this._getItemData($appointment);\r\n var geometry = this.invoke(\"getAppointmentGeometry\", settings);\r\n var allowResize = this.option(\"allowResize\") && (!_type2.default.isDefined(settings.skipResizing) || _type2.default.isString(settings.skipResizing));\r\n var allowDrag = this.option(\"allowDrag\");\r\n var allDay = settings.allDay;\r\n this.invoke(\"setCellDataCacheAlias\", this._currentAppointmentSettings, geometry);\r\n var deferredColor = this._getAppointmentColor($appointment, settings.groupIndex);\r\n if (settings.virtual) {\r\n this._processVirtualAppointment(settings, $appointment, data, deferredColor)\r\n } else {\r\n this._createComponent($appointment, _uiScheduler4.default, {\r\n observer: this.option(\"observer\"),\r\n data: data,\r\n geometry: geometry,\r\n direction: settings.direction || \"vertical\",\r\n allowResize: allowResize,\r\n allowDrag: allowDrag,\r\n allDay: allDay,\r\n reduced: settings.appointmentReduced,\r\n isCompact: settings.isCompact,\r\n startDate: new Date(settings.startDate),\r\n cellWidth: this.invoke(\"getCellWidth\"),\r\n cellHeight: this.invoke(\"getCellHeight\"),\r\n resizableConfig: this._resizableConfig(data, settings)\r\n });\r\n deferredColor.done(function(color) {\r\n if (color) {\r\n $appointment.css(\"backgroundColor\", color)\r\n }\r\n })\r\n }\r\n },\r\n _applyResourceDataAttr: function($appointment) {\r\n var resources = this.invoke(\"getResourcesFromItem\", this._getItemData($appointment));\r\n if (resources) {\r\n (0, _iterator.each)(resources, function(name, values) {\r\n var attr = \"data-\" + _common2.default.normalizeKey(name.toLowerCase()) + \"-\";\r\n for (var i = 0; i < values.length; i++) {\r\n $appointment.attr(attr + _common2.default.normalizeKey(values[i]), true)\r\n }\r\n })\r\n }\r\n },\r\n _resizableConfig: function(appointmentData, itemSetting) {\r\n return {\r\n area: this._calculateResizableArea(itemSetting, appointmentData),\r\n onResizeStart: function(e) {\r\n this._$currentAppointment = (0, _renderer2.default)(e.element);\r\n if (this.invoke(\"needRecalculateResizableArea\")) {\r\n var updatedArea = this._calculateResizableArea(this._$currentAppointment.data(APPOINTMENT_SETTINGS_NAME), this._$currentAppointment.data(\"dxItemData\"));\r\n e.component.option(\"area\", updatedArea);\r\n e.component._renderDragOffsets(e.event)\r\n }\r\n this._initialSize = {\r\n width: e.width,\r\n height: e.height\r\n };\r\n this._initialCoordinates = _translator2.default.locate(this._$currentAppointment)\r\n }.bind(this),\r\n onResizeEnd: function(e) {\r\n if (this._escPressed) {\r\n e.event.cancel = true;\r\n return\r\n }\r\n this._resizeEndHandler(e)\r\n }.bind(this)\r\n }\r\n },\r\n _calculateResizableArea: function(itemSetting, appointmentData) {\r\n var area = this.$element().closest(\".dx-scrollable-content\");\r\n return this.invoke(\"getResizableAppointmentArea\", {\r\n coordinates: {\r\n left: itemSetting.left,\r\n top: 0,\r\n groupIndex: itemSetting.groupIndex\r\n },\r\n allDay: itemSetting.allDay\r\n }) || area\r\n },\r\n _resizeEndHandler: function(e) {\r\n var $element = (0, _renderer2.default)(e.element);\r\n var itemData = this._getItemData($element);\r\n var startDate = this.invoke(\"getStartDate\", itemData, true);\r\n var endDate = this.invoke(\"getEndDate\", itemData, true);\r\n var dateRange = this._getDateRange(e, startDate, endDate);\r\n var updatedDates = {};\r\n this.invoke(\"setField\", \"startDate\", updatedDates, new Date(dateRange[0]));\r\n this.invoke(\"setField\", \"endDate\", updatedDates, new Date(dateRange[1]));\r\n var data = (0, _extend.extend)({}, itemData, updatedDates);\r\n this.notifyObserver(\"updateAppointmentAfterResize\", {\r\n target: itemData,\r\n data: data,\r\n $appointment: $element\r\n })\r\n },\r\n _getDateRange: function(e, startDate, endDate) {\r\n var itemData = this._getItemData(e.element);\r\n var deltaTime = this.invoke(\"getDeltaTime\", e, this._initialSize, itemData);\r\n var renderingStrategyDirection = this.invoke(\"getRenderingStrategyDirection\");\r\n var isStartDateChanged = false;\r\n var isAllDay = this.invoke(\"isAllDay\", itemData);\r\n var needCorrectDates = this.invoke(\"needCorrectAppointmentDates\") && !isAllDay;\r\n var startTime;\r\n var endTime;\r\n if (\"vertical\" !== renderingStrategyDirection || isAllDay) {\r\n isStartDateChanged = this.option(\"rtlEnabled\") ? e.handles.right : e.handles.left\r\n } else {\r\n isStartDateChanged = e.handles.top\r\n }\r\n if (isStartDateChanged) {\r\n startTime = needCorrectDates ? this._correctStartDateByDelta(startDate, deltaTime) : startDate.getTime() - deltaTime;\r\n startTime += _utilsTimeZone2.default.getTimezoneOffsetChangeInMs(startDate, endDate, startTime, endDate);\r\n endTime = endDate.getTime()\r\n } else {\r\n startTime = startDate.getTime();\r\n endTime = needCorrectDates ? this._correctEndDateByDelta(endDate, deltaTime) : endDate.getTime() + deltaTime;\r\n endTime -= _utilsTimeZone2.default.getTimezoneOffsetChangeInMs(startDate, endDate, startDate, endTime)\r\n }\r\n return [startTime, endTime]\r\n },\r\n _correctEndDateByDelta: function(endDate, deltaTime) {\r\n var endDayHour = this.invoke(\"getEndDayHour\");\r\n var startDayHour = this.invoke(\"getStartDayHour\");\r\n var result = endDate.getTime() + deltaTime;\r\n var visibleDayDuration = (endDayHour - startDayHour) * toMs(\"hour\");\r\n var daysCount = deltaTime > 0 ? Math.ceil(deltaTime / visibleDayDuration) : Math.floor(deltaTime / visibleDayDuration);\r\n var maxDate = new Date(endDate);\r\n var minDate = new Date(endDate);\r\n minDate.setHours(startDayHour, 0, 0, 0);\r\n maxDate.setHours(endDayHour, 0, 0, 0);\r\n if (result > maxDate.getTime() || result <= minDate.getTime()) {\r\n var tailOfCurrentDay = maxDate.getTime() - endDate.getTime();\r\n var tailOfPrevDays = deltaTime - tailOfCurrentDay;\r\n var lastDay = new Date(endDate.setDate(endDate.getDate() + daysCount));\r\n lastDay.setHours(startDayHour, 0, 0, 0);\r\n result = lastDay.getTime() + tailOfPrevDays - visibleDayDuration * (daysCount - 1)\r\n }\r\n return result\r\n },\r\n _correctStartDateByDelta: function(startDate, deltaTime) {\r\n var endDayHour = this.invoke(\"getEndDayHour\");\r\n var startDayHour = this.invoke(\"getStartDayHour\");\r\n var result = startDate.getTime() - deltaTime;\r\n var visibleDayDuration = (endDayHour - startDayHour) * toMs(\"hour\");\r\n var daysCount = deltaTime > 0 ? Math.ceil(deltaTime / visibleDayDuration) : Math.floor(deltaTime / visibleDayDuration);\r\n var maxDate = new Date(startDate);\r\n var minDate = new Date(startDate);\r\n minDate.setHours(startDayHour, 0, 0, 0);\r\n maxDate.setHours(endDayHour, 0, 0, 0);\r\n if (result < minDate.getTime() || result >= maxDate.getTime()) {\r\n var tailOfCurrentDay = startDate.getTime() - minDate.getTime();\r\n var tailOfPrevDays = deltaTime - tailOfCurrentDay;\r\n var firstDay = new Date(startDate.setDate(startDate.getDate() - daysCount));\r\n firstDay.setHours(endDayHour, 0, 0, 0);\r\n result = firstDay.getTime() - tailOfPrevDays + visibleDayDuration * (daysCount - 1)\r\n }\r\n return result\r\n },\r\n _tryGetAppointmentColor: function(appointment) {\r\n var settings = (0, _renderer2.default)(appointment).data(APPOINTMENT_SETTINGS_NAME);\r\n if (!settings) {\r\n return\r\n }\r\n return this._getAppointmentColor(appointment, settings.groupIndex)\r\n },\r\n _getAppointmentColor: function($appointment, groupIndex) {\r\n var res = new _deferred.Deferred;\r\n var response = this.invoke(\"getAppointmentColor\", {\r\n itemData: this._getItemData($appointment),\r\n groupIndex: groupIndex\r\n });\r\n response.done(function(color) {\r\n return res.resolve(color)\r\n });\r\n return res.promise()\r\n },\r\n _calculateBoundOffset: function() {\r\n return this.invoke(\"getBoundOffset\")\r\n },\r\n _virtualAppointments: {},\r\n _processVirtualAppointment: function(appointmentSetting, $appointment, appointmentData, color) {\r\n var virtualAppointment = appointmentSetting.virtual;\r\n var virtualGroupIndex = virtualAppointment.index;\r\n if (!_type2.default.isDefined(this._virtualAppointments[virtualGroupIndex])) {\r\n this._virtualAppointments[virtualGroupIndex] = {\r\n coordinates: {\r\n top: virtualAppointment.top,\r\n left: virtualAppointment.left\r\n },\r\n items: {\r\n data: [],\r\n colors: [],\r\n settings: []\r\n },\r\n isAllDay: virtualAppointment.isAllDay ? true : false,\r\n buttonColor: color\r\n }\r\n }\r\n appointmentSetting.targetedAppointmentData = this.invoke(\"getTargetedAppointmentData\", appointmentData, $appointment);\r\n this._virtualAppointments[virtualGroupIndex].items.settings.push(appointmentSetting);\r\n this._virtualAppointments[virtualGroupIndex].items.data.push(appointmentData);\r\n this._virtualAppointments[virtualGroupIndex].items.colors.push(color);\r\n $appointment.remove()\r\n },\r\n _renderContentImpl: function() {\r\n this.callBase();\r\n this._renderDropDownAppointments()\r\n },\r\n _renderDropDownAppointments: function() {\r\n (0, _iterator.each)(this._virtualAppointments, function(groupIndex) {\r\n var virtualGroup = this._virtualAppointments[groupIndex];\r\n var virtualItems = virtualGroup.items;\r\n var virtualCoordinates = virtualGroup.coordinates;\r\n var $container = virtualGroup.isAllDay ? this.option(\"allDayContainer\") : this.$element();\r\n var left = virtualCoordinates.left;\r\n var buttonWidth = this.invoke(\"getDropDownAppointmentWidth\", virtualGroup.isAllDay);\r\n var buttonHeight = this.invoke(\"getDropDownAppointmentHeight\");\r\n var rtlOffset = this.option(\"rtlEnabled\") ? buttonWidth : 0;\r\n this.notifyObserver(\"renderCompactAppointments\", {\r\n $container: $container,\r\n coordinates: {\r\n top: virtualCoordinates.top,\r\n left: left + rtlOffset\r\n },\r\n items: virtualItems,\r\n buttonColor: virtualGroup.buttonColor,\r\n width: buttonWidth - this.option(\"_collectorOffset\"),\r\n height: buttonHeight,\r\n onAppointmentClick: this.option(\"onItemClick\"),\r\n allowDrag: this.option(\"allowDrag\"),\r\n cellWidth: this.invoke(\"getCellWidth\"),\r\n isCompact: this.invoke(\"isAdaptive\") || this._isGroupCompact(virtualGroup),\r\n applyOffset: !virtualGroup.isAllDay && this.invoke(\"isApplyCompactAppointmentOffset\")\r\n })\r\n }.bind(this))\r\n },\r\n _isGroupCompact: function(virtualGroup) {\r\n return !virtualGroup.isAllDay && this.invoke(\"supportCompactDropDownAppointments\")\r\n },\r\n _sortAppointmentsByStartDate: function(appointments) {\r\n appointments.sort(function(a, b) {\r\n var result = 0;\r\n var firstDate = new Date(this.invoke(\"getField\", \"startDate\", a.settings || a)).getTime();\r\n var secondDate = new Date(this.invoke(\"getField\", \"startDate\", b.settings || b)).getTime();\r\n if (firstDate < secondDate) {\r\n result = -1\r\n }\r\n if (firstDate > secondDate) {\r\n result = 1\r\n }\r\n return result\r\n }.bind(this))\r\n },\r\n _processRecurrenceAppointment: function(appointment, index, skipLongAppointments) {\r\n var recurrenceRule = this.invoke(\"getField\", \"recurrenceRule\", appointment);\r\n var result = {\r\n parts: [],\r\n indexes: []\r\n };\r\n if (recurrenceRule) {\r\n var dates = appointment.settings || appointment;\r\n var startDate = new Date(this.invoke(\"getField\", \"startDate\", dates));\r\n var endDate = new Date(this.invoke(\"getField\", \"endDate\", dates));\r\n var appointmentDuration = endDate.getTime() - startDate.getTime();\r\n var recurrenceException = this.invoke(\"getField\", \"recurrenceException\", appointment);\r\n var startViewDate = this.invoke(\"getStartViewDate\");\r\n var endViewDate = this.invoke(\"getEndViewDate\");\r\n var recurrentDates = _utils2.default.getDatesByRecurrence({\r\n rule: recurrenceRule,\r\n exception: recurrenceException,\r\n start: startDate,\r\n end: endDate,\r\n min: startViewDate,\r\n max: endViewDate\r\n });\r\n var recurrentDateCount = appointment.settings ? 1 : recurrentDates.length;\r\n for (var i = 0; i < recurrentDateCount; i++) {\r\n var appointmentPart = (0, _extend.extend)({}, appointment, true);\r\n if (recurrentDates[i]) {\r\n var appointmentSettings = this._applyStartDateToObj(recurrentDates[i], {});\r\n this._applyEndDateToObj(new Date(recurrentDates[i].getTime() + appointmentDuration), appointmentSettings);\r\n appointmentPart.settings = appointmentSettings\r\n } else {\r\n appointmentPart.settings = dates\r\n }\r\n result.parts.push(appointmentPart);\r\n if (!skipLongAppointments) {\r\n this._processLongAppointment(appointmentPart, result)\r\n }\r\n }\r\n result.indexes.push(index)\r\n }\r\n return result\r\n },\r\n _processLongAppointment: function(appointment, result) {\r\n var parts = this.splitAppointmentByDay(appointment);\r\n var partCount = parts.length;\r\n var endViewDate = this.invoke(\"getEndViewDate\").getTime();\r\n var startViewDate = this.invoke(\"getStartViewDate\").getTime();\r\n var startDateTimeZone = this.invoke(\"getField\", \"startDateTimeZone\", appointment);\r\n result = result || {\r\n parts: []\r\n };\r\n if (partCount > 1) {\r\n (0, _extend.extend)(appointment, parts[0]);\r\n for (var i = 1; i < partCount; i++) {\r\n var startDate = this.invoke(\"getField\", \"startDate\", parts[i].settings).getTime();\r\n startDate = this.invoke(\"convertDateByTimezone\", startDate, startDateTimeZone);\r\n if (startDate < endViewDate && startDate > startViewDate) {\r\n result.parts.push(parts[i])\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n _reduceRecurrenceAppointments: function(recurrenceIndexes, appointments) {\r\n (0, _iterator.each)(recurrenceIndexes, function(i, index) {\r\n appointments.splice(index - i, 1)\r\n })\r\n },\r\n _combineAppointments: function(appointments, additionalAppointments) {\r\n if (additionalAppointments.length) {\r\n _array2.default.merge(appointments, additionalAppointments)\r\n }\r\n this._sortAppointmentsByStartDate(appointments)\r\n },\r\n _applyStartDateToObj: function(startDate, obj) {\r\n this.invoke(\"setField\", \"startDate\", obj, startDate);\r\n return obj\r\n },\r\n _applyEndDateToObj: function(endDate, obj) {\r\n this.invoke(\"setField\", \"endDate\", obj, endDate);\r\n return obj\r\n },\r\n moveAppointmentBack: function(dragEvent) {\r\n var $appointment = this._$currentAppointment;\r\n var size = this._initialSize;\r\n var coords = this._initialCoordinates;\r\n if (dragEvent) {\r\n if (_type2.default.isDeferred(dragEvent.cancel)) {\r\n dragEvent.cancel.resolve(true)\r\n } else {\r\n dragEvent.cancel = true\r\n }\r\n }\r\n this.notifyObserver(\"moveBack\");\r\n if ($appointment && !dragEvent) {\r\n if (coords) {\r\n _translator2.default.move($appointment, coords);\r\n delete this._initialSize\r\n }\r\n if (size) {\r\n $appointment.outerWidth(size.width);\r\n $appointment.outerHeight(size.height);\r\n delete this._initialCoordinates\r\n }\r\n }\r\n },\r\n focus: function() {\r\n if (this._$currentAppointment) {\r\n var focusedElement = (0, _dom.getPublicElement)(this._$currentAppointment);\r\n this.option(\"focusedElement\", focusedElement);\r\n _events_engine2.default.trigger(focusedElement, \"focus\")\r\n }\r\n },\r\n splitAppointmentByDay: function(appointment) {\r\n var dates = appointment.settings || appointment;\r\n var originalStartDate = new Date(this.invoke(\"getField\", \"startDate\", dates));\r\n var startDate = _date2.default.makeDate(originalStartDate);\r\n var endDate = _date2.default.makeDate(this.invoke(\"getField\", \"endDate\", dates));\r\n var startDateTimeZone = this.invoke(\"getField\", \"startDateTimeZone\", appointment);\r\n var endDateTimeZone = this.invoke(\"getField\", \"endDateTimeZone\", appointment);\r\n var maxAllowedDate = this.invoke(\"getEndViewDate\");\r\n var startDayHour = this.invoke(\"getStartDayHour\");\r\n var endDayHour = this.invoke(\"getEndDayHour\");\r\n var appointmentIsLong = this.invoke(\"appointmentTakesSeveralDays\", appointment);\r\n var result = [];\r\n startDate = this.invoke(\"convertDateByTimezone\", startDate, startDateTimeZone);\r\n endDate = this.invoke(\"convertDateByTimezone\", endDate, endDateTimeZone);\r\n if (startDate.getHours() <= endDayHour && startDate.getHours() >= startDayHour && !appointmentIsLong) {\r\n result.push(this._applyStartDateToObj(new Date(startDate), {\r\n appointmentData: appointment\r\n }));\r\n startDate.setDate(startDate.getDate() + 1)\r\n }\r\n while (appointmentIsLong && startDate.getTime() < endDate.getTime() - 1 && startDate < maxAllowedDate) {\r\n var currentStartDate = new Date(startDate);\r\n var currentEndDate = new Date(startDate);\r\n this._checkStartDate(currentStartDate, originalStartDate, startDayHour);\r\n this._checkEndDate(currentEndDate, endDate, endDayHour);\r\n var appointmentData = _object2.default.deepExtendArraySafe({}, appointment, true);\r\n var appointmentSettings = {};\r\n this._applyStartDateToObj(currentStartDate, appointmentSettings);\r\n this._applyEndDateToObj(currentEndDate, appointmentSettings);\r\n appointmentData.settings = appointmentSettings;\r\n result.push(appointmentData);\r\n startDate.setDate(startDate.getDate() + 1);\r\n startDate.setHours(startDayHour)\r\n }\r\n return result\r\n },\r\n _checkStartDate: function(currentDate, originalDate, startDayHour) {\r\n if (!_date2.default.sameDate(currentDate, originalDate) || currentDate.getHours() <= startDayHour) {\r\n currentDate.setHours(startDayHour, 0, 0, 0)\r\n } else {\r\n currentDate.setHours(originalDate.getHours(), originalDate.getMinutes(), originalDate.getSeconds(), originalDate.getMilliseconds())\r\n }\r\n },\r\n _checkEndDate: function(currentDate, originalDate, endDayHour) {\r\n if (!_date2.default.sameDate(currentDate, originalDate) || currentDate.getHours() > endDayHour) {\r\n currentDate.setHours(endDayHour, 0, 0, 0)\r\n } else {\r\n currentDate.setHours(originalDate.getHours(), originalDate.getMinutes(), originalDate.getSeconds(), originalDate.getMilliseconds())\r\n }\r\n }\r\n}).include(_uiScheduler2.default);\r\n(0, _component_registrator2.default)(\"dxSchedulerAppointments\", SchedulerAppointments);\r\nmodule.exports = SchedulerAppointments;\r\n","/**\r\n * DevExtreme (ui/scheduler/ui.scheduler.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _callbacks = require(\"../../core/utils/callbacks\");\r\nvar _callbacks2 = _interopRequireDefault(_callbacks);\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _translator2 = _interopRequireDefault(_translator);\r\nvar _ui = require(\"../widget/ui.errors\");\r\nvar _ui2 = _interopRequireDefault(_ui);\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _window2 = _interopRequireDefault(_window);\r\nvar _dialog = require(\"../dialog\");\r\nvar _dialog2 = _interopRequireDefault(_dialog);\r\nvar _utils = require(\"./utils.recurrence\");\r\nvar _utils2 = _interopRequireDefault(_utils);\r\nvar _dom = require(\"../../core/utils/dom\");\r\nvar _dom2 = _interopRequireDefault(_dom);\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _data2 = _interopRequireDefault(_data);\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _date = require(\"../../core/utils/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _type2 = _interopRequireDefault(_type);\r\nvar _devices = require(\"../../core/devices\");\r\nvar _devices2 = _interopRequireDefault(_devices);\r\nvar _config = require(\"../../core/config\");\r\nvar _config2 = _interopRequireDefault(_config);\r\nvar _component_registrator = require(\"../../core/component_registrator\");\r\nvar _component_registrator2 = _interopRequireDefault(_component_registrator);\r\nvar _message = require(\"../../localization/message\");\r\nvar _message2 = _interopRequireDefault(_message);\r\nvar _date_serialization = require(\"../../core/utils/date_serialization\");\r\nvar _date_serialization2 = _interopRequireDefault(_date_serialization);\r\nvar _date3 = require(\"../../localization/date\");\r\nvar _date4 = _interopRequireDefault(_date3);\r\nvar _ui3 = require(\"../widget/ui.widget\");\r\nvar _ui4 = _interopRequireDefault(_ui3);\r\nvar _uiScheduler = require(\"./ui.scheduler.subscribes\");\r\nvar _uiScheduler2 = _interopRequireDefault(_uiScheduler);\r\nvar _desktopTooltipStrategy = require(\"./tooltip_strategies/desktopTooltipStrategy\");\r\nvar _mobileTooltipStrategy = require(\"./tooltip_strategies/mobileTooltipStrategy\");\r\nvar _appointmentPopup = require(\"./appointmentPopup\");\r\nvar _appointmentPopup2 = _interopRequireDefault(_appointmentPopup);\r\nvar _uiScheduler3 = require(\"./ui.scheduler.header\");\r\nvar _uiScheduler4 = _interopRequireDefault(_uiScheduler3);\r\nvar _uiScheduler5 = require(\"./workspaces/ui.scheduler.work_space_day\");\r\nvar _uiScheduler6 = _interopRequireDefault(_uiScheduler5);\r\nvar _uiScheduler7 = require(\"./workspaces/ui.scheduler.work_space_week\");\r\nvar _uiScheduler8 = _interopRequireDefault(_uiScheduler7);\r\nvar _uiScheduler9 = require(\"./workspaces/ui.scheduler.work_space_work_week\");\r\nvar _uiScheduler10 = _interopRequireDefault(_uiScheduler9);\r\nvar _uiScheduler11 = require(\"./workspaces/ui.scheduler.work_space_month\");\r\nvar _uiScheduler12 = _interopRequireDefault(_uiScheduler11);\r\nvar _uiScheduler13 = require(\"./workspaces/ui.scheduler.timeline_day\");\r\nvar _uiScheduler14 = _interopRequireDefault(_uiScheduler13);\r\nvar _uiScheduler15 = require(\"./workspaces/ui.scheduler.timeline_week\");\r\nvar _uiScheduler16 = _interopRequireDefault(_uiScheduler15);\r\nvar _uiScheduler17 = require(\"./workspaces/ui.scheduler.timeline_work_week\");\r\nvar _uiScheduler18 = _interopRequireDefault(_uiScheduler17);\r\nvar _uiScheduler19 = require(\"./workspaces/ui.scheduler.timeline_month\");\r\nvar _uiScheduler20 = _interopRequireDefault(_uiScheduler19);\r\nvar _uiScheduler21 = require(\"./workspaces/ui.scheduler.agenda\");\r\nvar _uiScheduler22 = _interopRequireDefault(_uiScheduler21);\r\nvar _uiScheduler23 = require(\"./ui.scheduler.resource_manager\");\r\nvar _uiScheduler24 = _interopRequireDefault(_uiScheduler23);\r\nvar _uiScheduler25 = require(\"./ui.scheduler.appointment_model\");\r\nvar _uiScheduler26 = _interopRequireDefault(_uiScheduler25);\r\nvar _uiScheduler27 = require(\"./ui.scheduler.appointments\");\r\nvar _uiScheduler28 = _interopRequireDefault(_uiScheduler27);\r\nvar _uiSchedulerAppointments = require(\"./ui.scheduler.appointments.layout_manager\");\r\nvar _uiSchedulerAppointments2 = _interopRequireDefault(_uiSchedulerAppointments);\r\nvar _compactAppointmentsHelper = require(\"./compactAppointmentsHelper\");\r\nvar _data_helper = require(\"../../data_helper\");\r\nvar _data_helper2 = _interopRequireDefault(_data_helper);\r\nvar _ui5 = require(\"./ui.loading\");\r\nvar _ui6 = _interopRequireDefault(_ui5);\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _deferred2 = _interopRequireDefault(_deferred);\r\nvar _empty_template = require(\"../../core/templates/empty_template\");\r\nvar _bindable_template = require(\"../../core/templates/bindable_template\");\r\nvar _themes = require(\"../themes\");\r\nvar _themes2 = _interopRequireDefault(_themes);\r\nvar _browser = require(\"../../core/utils/browser\");\r\nvar _browser2 = _interopRequireDefault(_browser);\r\nvar _support = require(\"../../core/utils/support\");\r\nvar _utils3 = require(\"./utils.timeZone\");\r\nvar _utils4 = _interopRequireDefault(_utils3);\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 _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\nvar when = _deferred2.default.when;\r\nvar Deferred = _deferred2.default.Deferred;\r\nvar toMs = _date2.default.dateToMilliseconds;\r\nvar MINUTES_IN_HOUR = 60;\r\nvar WIDGET_CLASS = \"dx-scheduler\";\r\nvar WIDGET_SMALL_CLASS = \"\".concat(WIDGET_CLASS, \"-small\");\r\nvar WIDGET_ADAPTIVE_CLASS = \"\".concat(WIDGET_CLASS, \"-adaptive\");\r\nvar WIDGET_WIN_NO_TOUCH_CLASS = \"\".concat(WIDGET_CLASS, \"-win-no-touch\");\r\nvar WIDGET_READONLY_CLASS = \"\".concat(WIDGET_CLASS, \"-readonly\");\r\nvar WIDGET_SMALL_WIDTH = 400;\r\nvar FULL_DATE_FORMAT = \"yyyyMMddTHHmmss\";\r\nvar UTC_FULL_DATE_FORMAT = FULL_DATE_FORMAT + \"Z\";\r\nvar VIEWS_CONFIG = {\r\n day: {\r\n workSpace: _uiScheduler6.default,\r\n renderingStrategy: \"vertical\"\r\n },\r\n week: {\r\n workSpace: _uiScheduler8.default,\r\n renderingStrategy: \"vertical\"\r\n },\r\n workWeek: {\r\n workSpace: _uiScheduler10.default,\r\n renderingStrategy: \"vertical\"\r\n },\r\n month: {\r\n workSpace: _uiScheduler12.default,\r\n renderingStrategy: \"horizontalMonth\"\r\n },\r\n timelineDay: {\r\n workSpace: _uiScheduler14.default,\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineWeek: {\r\n workSpace: _uiScheduler16.default,\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineWorkWeek: {\r\n workSpace: _uiScheduler18.default,\r\n renderingStrategy: \"horizontal\"\r\n },\r\n timelineMonth: {\r\n workSpace: _uiScheduler20.default,\r\n renderingStrategy: \"horizontalMonthLine\"\r\n },\r\n agenda: {\r\n workSpace: _uiScheduler22.default,\r\n renderingStrategy: \"agenda\"\r\n }\r\n};\r\nvar Scheduler = _ui4.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n views: [\"day\", \"week\"],\r\n currentView: \"day\",\r\n currentDate: _date2.default.trimTime(new Date),\r\n min: void 0,\r\n max: void 0,\r\n dateSerializationFormat: void 0,\r\n firstDayOfWeek: void 0,\r\n groups: [],\r\n resources: [],\r\n dataSource: null,\r\n customizeDateNavigatorText: void 0,\r\n appointmentTemplate: \"item\",\r\n dropDownAppointmentTemplate: \"dropDownAppointment\",\r\n appointmentCollectorTemplate: \"appointmentCollector\",\r\n dataCellTemplate: null,\r\n timeCellTemplate: null,\r\n resourceCellTemplate: null,\r\n dateCellTemplate: null,\r\n startDayHour: 0,\r\n endDayHour: 24,\r\n editing: {\r\n allowAdding: true,\r\n allowDeleting: true,\r\n allowDragging: true,\r\n allowResizing: true,\r\n allowUpdating: true,\r\n allowTimeZoneEditing: false,\r\n allowEditingTimeZones: false\r\n },\r\n showAllDayPanel: true,\r\n showCurrentTimeIndicator: true,\r\n shadeUntilCurrentTime: false,\r\n indicatorUpdateInterval: 3e5,\r\n indicatorTime: void 0,\r\n recurrenceEditMode: \"dialog\",\r\n cellDuration: 30,\r\n maxAppointmentsPerCell: \"auto\",\r\n selectedCellData: [],\r\n groupByDate: false,\r\n onAppointmentRendered: null,\r\n onAppointmentClick: null,\r\n onAppointmentDblClick: null,\r\n onAppointmentContextMenu: null,\r\n onCellClick: null,\r\n onCellContextMenu: null,\r\n onAppointmentAdding: null,\r\n onAppointmentAdded: null,\r\n onAppointmentUpdating: null,\r\n onAppointmentUpdated: null,\r\n onAppointmentDeleting: null,\r\n onAppointmentDeleted: null,\r\n onAppointmentFormOpening: null,\r\n appointmentTooltipTemplate: \"appointmentTooltip\",\r\n appointmentPopupTemplate: \"appointmentPopup\",\r\n crossScrollingEnabled: false,\r\n useDropDownViewSwitcher: false,\r\n startDateExpr: \"startDate\",\r\n endDateExpr: \"endDate\",\r\n textExpr: \"text\",\r\n descriptionExpr: \"description\",\r\n allDayExpr: \"allDay\",\r\n recurrenceRuleExpr: \"recurrenceRule\",\r\n recurrenceExceptionExpr: \"recurrenceException\",\r\n remoteFiltering: false,\r\n timeZone: \"\",\r\n startDateTimeZoneExpr: \"startDateTimeZone\",\r\n endDateTimeZoneExpr: \"endDateTimeZone\",\r\n noDataText: _message2.default.format(\"dxCollectionWidget-noDataText\"),\r\n adaptivityEnabled: false,\r\n allowMultipleCellSelection: true,\r\n _appointmentTooltipOffset: {\r\n x: 0,\r\n y: 0\r\n },\r\n _appointmentTooltipButtonsPosition: \"bottom\",\r\n _appointmentTooltipOpenButtonText: _message2.default.format(\"dxScheduler-openAppointment\"),\r\n _dropDownButtonIcon: \"overflow\",\r\n _appointmentCountPerCell: 2,\r\n _collectorOffset: 0,\r\n _appointmentOffset: 26\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === _devices2.default.real().deviceType && !_devices2.default.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return !_devices2.default.current().generic\r\n },\r\n options: {\r\n useDropDownViewSwitcher: true,\r\n editing: {\r\n allowDragging: false,\r\n allowResizing: false\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return _themes2.default.isMaterial()\r\n },\r\n options: {\r\n useDropDownViewSwitcher: true,\r\n dateCellTemplate: function(data, index, element) {\r\n var text = data.text;\r\n text.split(\" \").forEach(function(text, index) {\r\n var span = (0, _renderer2.default)(\"\").text(text).addClass(\"dx-scheduler-header-panel-cell-date\");\r\n (0, _renderer2.default)(element).append(span);\r\n if (!index) {\r\n (0, _renderer2.default)(element).append(\" \")\r\n }\r\n })\r\n },\r\n _appointmentTooltipOffset: {\r\n x: 0,\r\n y: 11\r\n },\r\n _appointmentTooltipButtonsPosition: \"top\",\r\n _appointmentTooltipOpenButtonText: null,\r\n _dropDownButtonIcon: \"chevrondown\",\r\n _appointmentCountPerCell: 1,\r\n _collectorOffset: 20,\r\n _appointmentOffset: 30\r\n }\r\n }])\r\n },\r\n _setDeprecatedOptions: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._deprecatedOptions, {\r\n onAppointmentFormCreated: {\r\n since: \"18.2\",\r\n alias: \"onAppointmentFormOpening\"\r\n },\r\n dropDownAppointmentTemplate: {\r\n since: \"19.2\",\r\n message: \"appointmentTooltipTemplate\"\r\n },\r\n allowEditingTimeZones: {\r\n since: \"20.1\",\r\n alias: \"allowTimeZoneEditing\"\r\n }\r\n })\r\n },\r\n _postponeDataSourceLoading: function(promise) {\r\n this.postponedOperations.add(\"_reloadDataSource\", this._reloadDataSource.bind(this), promise)\r\n },\r\n _postponeResourceLoading: function() {\r\n var _this = this;\r\n var whenLoaded = this.postponedOperations.add(\"_loadResources\", function() {\r\n return _this._loadResources()\r\n });\r\n var resolveCallbacks = new Deferred;\r\n whenLoaded.done(function(resources) {\r\n resolveCallbacks.resolve(resources)\r\n });\r\n this._postponeDataSourceLoading(whenLoaded);\r\n return resolveCallbacks.promise()\r\n },\r\n _optionChanged: function(args) {\r\n var _this2 = this;\r\n var value = args.value;\r\n var name = args.name;\r\n switch (args.name) {\r\n case \"customizeDateNavigatorText\":\r\n this._updateOption(\"header\", name, value);\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._updateOption(\"workSpace\", name, value);\r\n this._updateOption(\"header\", name, value);\r\n break;\r\n case \"currentDate\":\r\n value = this._dateOption(name);\r\n value = _date2.default.trimTime(new Date(value));\r\n this.option(\"selectedCellData\", []);\r\n this._workSpace.option(name, new Date(value));\r\n this._header.option(name, new Date(value));\r\n this._header.option(\"displayedDate\", this._workSpace._getViewStartByOptions());\r\n this._appointments.option(\"items\", []);\r\n this._filterAppointmentsByDate();\r\n this._postponeDataSourceLoading();\r\n break;\r\n case \"dataSource\":\r\n this._initDataSource();\r\n this._appointmentModel.setDataSource(this._dataSource);\r\n this._postponeResourceLoading().done(function(resources) {\r\n _this2._filterAppointmentsByDate();\r\n _this2._updateOption(\"workSpace\", \"showAllDayPanel\", _this2.option(\"showAllDayPanel\"))\r\n });\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n value = this._dateOption(name);\r\n this._updateOption(\"header\", name, new Date(value));\r\n this._updateOption(\"workSpace\", name, new Date(value));\r\n break;\r\n case \"views\":\r\n this._processCurrentView();\r\n if (this._getCurrentViewOptions()) {\r\n this.repaint()\r\n } else {\r\n this._header.option(name, value)\r\n }\r\n break;\r\n case \"useDropDownViewSwitcher\":\r\n this._header.option(name, value);\r\n break;\r\n case \"currentView\":\r\n this._processCurrentView();\r\n this.fire(\"validateDayHours\");\r\n this.getLayoutManager().initRenderingStrategy(this._getAppointmentsRenderingStrategy());\r\n this._validateCellDuration();\r\n this._appointments.option({\r\n items: [],\r\n allowDrag: this._allowDragging(),\r\n allowResize: this._allowResizing(),\r\n itemTemplate: this._getAppointmentTemplate(\"appointmentTemplate\")\r\n });\r\n this._postponeResourceLoading().done(function(resources) {\r\n _this2._refreshWorkSpace(resources);\r\n _this2._updateHeader();\r\n _this2._filterAppointmentsByDate();\r\n _this2._appointments.option(\"allowAllDayResize\", \"day\" !== value)\r\n });\r\n break;\r\n case \"appointmentTemplate\":\r\n this._appointments.option(\"itemTemplate\", value);\r\n break;\r\n case \"dateCellTemplate\":\r\n case \"resourceCellTemplate\":\r\n case \"dataCellTemplate\":\r\n case \"timeCellTemplate\":\r\n this._updateOption(\"workSpace\", name, value);\r\n this.repaint();\r\n break;\r\n case \"groups\":\r\n this._postponeResourceLoading().done(function(resources) {\r\n _this2._refreshWorkSpace(resources);\r\n _this2._filterAppointmentsByDate()\r\n });\r\n break;\r\n case \"resources\":\r\n this._resourcesManager.setResources(this.option(\"resources\"));\r\n this._appointmentModel.setDataAccessors(this._combineDataAccessors());\r\n this._postponeResourceLoading().done(function(resources) {\r\n _this2._appointments.option(\"items\", []);\r\n _this2._refreshWorkSpace(resources);\r\n _this2._filterAppointmentsByDate()\r\n });\r\n break;\r\n case \"startDayHour\":\r\n case \"endDayHour\":\r\n this.fire(\"validateDayHours\");\r\n this._appointments.option(\"items\", []);\r\n this._updateOption(\"workSpace\", name, value);\r\n this._appointments.repaint();\r\n this._filterAppointmentsByDate();\r\n this._postponeDataSourceLoading();\r\n break;\r\n case \"onAppointmentAdding\":\r\n case \"onAppointmentAdded\":\r\n case \"onAppointmentUpdating\":\r\n case \"onAppointmentUpdated\":\r\n case \"onAppointmentDeleting\":\r\n case \"onAppointmentDeleted\":\r\n case \"onAppointmentFormOpening\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n case \"onAppointmentRendered\":\r\n this._appointments.option(\"onItemRendered\", this._getAppointmentRenderedAction());\r\n break;\r\n case \"onAppointmentClick\":\r\n this._appointments.option(\"onItemClick\", this._createActionByOption(name));\r\n break;\r\n case \"onAppointmentDblClick\":\r\n this._appointments.option(name, this._createActionByOption(name));\r\n break;\r\n case \"onAppointmentContextMenu\":\r\n this._appointments.option(\"onItemContextMenu\", this._createActionByOption(name));\r\n break;\r\n case \"noDataText\":\r\n case \"allowMultipleCellSelection\":\r\n case \"selectedCellData\":\r\n case \"accessKey\":\r\n case \"onCellClick\":\r\n this._workSpace.option(name, value);\r\n break;\r\n case \"onCellContextMenu\":\r\n this._workSpace.option(name, value);\r\n break;\r\n case \"crossScrollingEnabled\":\r\n this._postponeResourceLoading().done(function(resources) {\r\n _this2._appointments.option(\"items\", []);\r\n _this2._refreshWorkSpace(resources);\r\n if (_this2._readyToRenderAppointments) {\r\n _this2._appointments.option(\"items\", _this2._getAppointmentsToRepaint())\r\n }\r\n });\r\n break;\r\n case \"cellDuration\":\r\n this._validateCellDuration();\r\n this._appointments.option(\"items\", []);\r\n if (this._readyToRenderAppointments) {\r\n this._updateOption(\"workSpace\", \"hoursInterval\", value / 60);\r\n this._appointments.option(\"items\", this._getAppointmentsToRepaint())\r\n }\r\n break;\r\n case \"tabIndex\":\r\n case \"focusStateEnabled\":\r\n this._updateOption(\"header\", name, value);\r\n this._updateOption(\"workSpace\", name, value);\r\n this._appointments.option(name, value);\r\n this.callBase(args);\r\n break;\r\n case \"width\":\r\n this._updateOption(\"header\", name, value);\r\n if (this.option(\"crossScrollingEnabled\")) {\r\n this._updateOption(\"workSpace\", \"width\", value)\r\n }\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"height\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"editing\":\r\n this._initEditing();\r\n var editing = this._editing;\r\n this._bringEditingModeToAppointments(editing);\r\n this.hideAppointmentTooltip();\r\n this._cleanPopup();\r\n break;\r\n case \"showAllDayPanel\":\r\n this._postponeResourceLoading().done(function(resources) {\r\n _this2._filterAppointmentsByDate();\r\n _this2._updateOption(\"workSpace\", \"allDayExpanded\", value);\r\n _this2._updateOption(\"workSpace\", name, value)\r\n });\r\n break;\r\n case \"showCurrentTimeIndicator\":\r\n case \"indicatorTime\":\r\n case \"indicatorUpdateInterval\":\r\n case \"shadeUntilCurrentTime\":\r\n case \"groupByDate\":\r\n this._updateOption(\"workSpace\", name, value);\r\n this.repaint();\r\n break;\r\n case \"appointmentDragging\":\r\n case \"appointmentTooltipTemplate\":\r\n case \"appointmentPopupTemplate\":\r\n case \"recurrenceEditMode\":\r\n case \"remoteFiltering\":\r\n case \"timeZone\":\r\n case \"dropDownAppointmentTemplate\":\r\n case \"appointmentCollectorTemplate\":\r\n case \"_appointmentTooltipOffset\":\r\n case \"_appointmentTooltipButtonsPosition\":\r\n case \"_appointmentTooltipOpenButtonText\":\r\n case \"_dropDownButtonIcon\":\r\n case \"_appointmentCountPerCell\":\r\n case \"_collectorOffset\":\r\n case \"_appointmentOffset\":\r\n this.repaint();\r\n break;\r\n case \"dateSerializationFormat\":\r\n break;\r\n case \"maxAppointmentsPerCell\":\r\n break;\r\n case \"startDateExpr\":\r\n case \"endDateExpr\":\r\n case \"startDateTimeZoneExpr\":\r\n case \"endDateTimeZoneExpr\":\r\n case \"textExpr\":\r\n case \"descriptionExpr\":\r\n case \"allDayExpr\":\r\n case \"recurrenceRuleExpr\":\r\n case \"recurrenceExceptionExpr\":\r\n this._updateExpression(name, value);\r\n this._appointmentModel.setDataAccessors(this._combineDataAccessors());\r\n this._initAppointmentTemplate();\r\n this.repaint();\r\n break;\r\n case \"adaptivityEnabled\":\r\n this._toggleAdaptiveClass();\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _updateHeader: function() {\r\n var viewCountConfig = this._getViewCountConfig();\r\n this._header.option(\"intervalCount\", viewCountConfig.intervalCount);\r\n this._header.option(\"displayedDate\", this._workSpace._getViewStartByOptions());\r\n this._header.option(\"min\", this._dateOption(\"min\"));\r\n this._header.option(\"max\", this._dateOption(\"max\"));\r\n this._header.option(\"currentDate\", this._dateOption(\"currentDate\"));\r\n this._header.option(\"firstDayOfWeek\", this._getCurrentViewOption(\"firstDayOfWeek\"));\r\n this._header.option(\"currentView\", this._currentView)\r\n },\r\n _dateOption: function(optionName) {\r\n var optionValue = this._getCurrentViewOption(optionName);\r\n return _date_serialization2.default.deserializeDate(optionValue)\r\n },\r\n _getSerializationFormat: function(optionName) {\r\n var value = this._getCurrentViewOption(optionName);\r\n if (\"number\" === typeof value) {\r\n return \"number\"\r\n }\r\n if (!_type2.default.isString(value)) {\r\n return\r\n }\r\n return _date_serialization2.default.getDateSerializationFormat(value)\r\n },\r\n _bringEditingModeToAppointments: function(editing) {\r\n var editingConfig = {\r\n allowDelete: editing.allowUpdating && editing.allowDeleting\r\n };\r\n if (!this._isAgenda()) {\r\n editingConfig.allowDrag = editing.allowDragging;\r\n editingConfig.allowResize = editing.allowResizing;\r\n editingConfig.allowAllDayResize = editing.allowResizing && this._supportAllDayResizing()\r\n }\r\n this._appointments.option(editingConfig);\r\n this.repaint()\r\n },\r\n _isAgenda: function() {\r\n return \"agenda\" === this._getAppointmentsRenderingStrategy()\r\n },\r\n _allowDragging: function() {\r\n return this._editing.allowDragging && !this._isAgenda()\r\n },\r\n _allowResizing: function() {\r\n return this._editing.allowResizing && !this._isAgenda()\r\n },\r\n _allowAllDayResizing: function() {\r\n return this._editing.allowResizing && this._supportAllDayResizing()\r\n },\r\n _supportAllDayResizing: function() {\r\n return \"day\" !== this._getCurrentViewType() || this._currentView.intervalCount > 1\r\n },\r\n _isAllDayExpanded: function(items) {\r\n return this.option(\"showAllDayPanel\") && this._appointmentModel.hasAllDayAppointments(items, this._getCurrentViewOption(\"startDayHour\"), this._getCurrentViewOption(\"endDayHour\"))\r\n },\r\n _getTimezoneOffsetByOption: function(date) {\r\n return _utils4.default.calculateTimezoneByValue(this.option(\"timeZone\"), date)\r\n },\r\n getCorrectedDatesByDaylightOffsets: function(originalStartDate, dates, appointmentData) {\r\n var _this3 = this;\r\n var startDateTimeZone = this.fire(\"getField\", \"startDateTimeZone\", appointmentData);\r\n var needCheckTimezoneOffset = _type2.default.isDefined(startDateTimeZone) && _type2.default.isDefined(this._getTimezoneOffsetByOption(originalStartDate));\r\n var convertedOriginalStartDate = this.fire(\"convertDateByTimezoneBack\", new Date(originalStartDate.getTime()), startDateTimeZone);\r\n if (needCheckTimezoneOffset) {\r\n dates = dates.map(function(date) {\r\n var convertedDate = _this3.fire(\"convertDateByTimezoneBack\", new Date(date.getTime()), startDateTimeZone);\r\n return _utils4.default.getCorrectedDateByDaylightOffsets(convertedOriginalStartDate, convertedDate, date, _this3.option(\"timeZone\"), startDateTimeZone)\r\n })\r\n }\r\n return dates\r\n },\r\n _filterAppointmentsByDate: function() {\r\n var dateRange = this._workSpace.getDateRange();\r\n this._appointmentModel.filterByDate(dateRange[0], dateRange[1], this.option(\"remoteFiltering\"), this.option(\"dateSerializationFormat\"))\r\n },\r\n _loadResources: function() {\r\n var groups = this._getCurrentViewOption(\"groups\");\r\n var result = new Deferred;\r\n this._resourcesManager.loadResources(groups).done(function(resources) {\r\n this._loadedResources = resources;\r\n result.resolve(resources)\r\n }.bind(this));\r\n return result.promise()\r\n },\r\n _dataSourceLoadedCallback: (0, _callbacks2.default)(),\r\n _reloadDataSource: function() {\r\n var result = new Deferred;\r\n if (this._dataSource) {\r\n this._dataSource.load().done(function() {\r\n _ui6.default.hide();\r\n this._fireContentReadyAction(result)\r\n }.bind(this)).fail(function() {\r\n _ui6.default.hide();\r\n result.reject()\r\n });\r\n this._dataSource.isLoading() && _ui6.default.show({\r\n container: this.$element(),\r\n position: {\r\n of: this.$element()\r\n }\r\n })\r\n } else {\r\n this._fireContentReadyAction(result)\r\n }\r\n return result.promise()\r\n },\r\n _fireContentReadyAction: function(result) {\r\n var contentReadyBase = this.callBase.bind(this);\r\n var fireContentReady = function() {\r\n contentReadyBase();\r\n null === result || void 0 === result ? void 0 : result.resolve()\r\n };\r\n if (this._workSpaceRecalculation) {\r\n var _this$_workSpaceRecal;\r\n null === (_this$_workSpaceRecal = this._workSpaceRecalculation) || void 0 === _this$_workSpaceRecal ? void 0 : _this$_workSpaceRecal.done(function() {\r\n fireContentReady()\r\n })\r\n } else {\r\n fireContentReady()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n var filteredItems = this.getFilteredItems();\r\n this._toggleSmallClass();\r\n if (!this._isAgenda() && filteredItems && this._isVisible()) {\r\n this._workSpace._cleanAllowedPositions();\r\n this._workSpace.option(\"allDayExpanded\", this._isAllDayExpanded(filteredItems));\r\n this._workSpace._dimensionChanged();\r\n var appointments = this._layoutManager.createAppointmentsMap(filteredItems);\r\n this._appointments.option(\"items\", appointments)\r\n }\r\n this.hideAppointmentTooltip();\r\n this._appointmentPopup.triggerResize();\r\n this._appointmentPopup.updatePopupFullScreenMode()\r\n },\r\n _clean: function() {\r\n this._cleanPopup();\r\n this.callBase()\r\n },\r\n _toggleSmallClass: function() {\r\n var width = (0, _position.getBoundingRect)(this.$element().get(0)).width;\r\n this.$element().toggleClass(WIDGET_SMALL_CLASS, width < WIDGET_SMALL_WIDTH)\r\n },\r\n _toggleAdaptiveClass: function() {\r\n this.$element().toggleClass(WIDGET_ADAPTIVE_CLASS, this.option(\"adaptivityEnabled\"))\r\n },\r\n _visibilityChanged: function(visible) {\r\n visible && this._dimensionChanged()\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _init: function() {\r\n this._initExpressions({\r\n startDate: this.option(\"startDateExpr\"),\r\n endDate: this.option(\"endDateExpr\"),\r\n startDateTimeZone: this.option(\"startDateTimeZoneExpr\"),\r\n endDateTimeZone: this.option(\"endDateTimeZoneExpr\"),\r\n allDay: this.option(\"allDayExpr\"),\r\n text: this.option(\"textExpr\"),\r\n description: this.option(\"descriptionExpr\"),\r\n recurrenceRule: this.option(\"recurrenceRuleExpr\"),\r\n recurrenceException: this.option(\"recurrenceExceptionExpr\")\r\n });\r\n this.callBase();\r\n this._initDataSource();\r\n this._loadedResources = [];\r\n this.$element().addClass(WIDGET_CLASS).toggleClass(WIDGET_WIN_NO_TOUCH_CLASS, !!(_browser2.default.msie && _support.touch));\r\n this._initEditing();\r\n this._resourcesManager = new _uiScheduler24.default(this.option(\"resources\"));\r\n var combinedDataAccessors = this._combineDataAccessors();\r\n this._appointmentModel = new _uiScheduler26.default(this._dataSource, combinedDataAccessors, this.getAppointmentDurationInMinutes());\r\n this._initActions();\r\n this._compactAppointmentsHelper = new _compactAppointmentsHelper.CompactAppointmentsHelper(this);\r\n this._asyncTemplatesTimers = [];\r\n this._subscribes = _uiScheduler2.default\r\n },\r\n _initTemplates: function() {\r\n this._initAppointmentTemplate();\r\n this._templateManager.addDefaultTemplates({\r\n appointmentTooltip: new _empty_template.EmptyTemplate,\r\n dropDownAppointment: new _empty_template.EmptyTemplate\r\n });\r\n this.callBase()\r\n },\r\n _initAppointmentTemplate: function() {\r\n var _this4 = this;\r\n var expr = this._dataAccessors.expr;\r\n var createGetter = function(property) {\r\n return _data2.default.compileGetter(\"appointmentData.\".concat(property))\r\n };\r\n this._templateManager.addDefaultTemplates(_defineProperty({}, \"item\", new _bindable_template.BindableTemplate(function($container, data, model) {\r\n _this4.getAppointmentsInstance()._renderAppointmentTemplate($container, data, model)\r\n }, [\"html\", \"text\", \"startDate\", \"endDate\", \"allDay\", \"description\", \"recurrenceRule\", \"recurrenceException\", \"startDateTimeZone\", \"endDateTimeZone\"], this.option(\"integrationOptions.watchMethod\"), {\r\n text: createGetter(expr.textExpr),\r\n startDate: createGetter(expr.startDateExpr),\r\n endDate: createGetter(expr.endDateExpr),\r\n startDateTimeZone: createGetter(expr.startDateTimeZoneExpr),\r\n endDateTimeZone: createGetter(expr.endDateTimeZoneExpr),\r\n allDay: createGetter(expr.allDayExpr),\r\n recurrenceRule: createGetter(expr.recurrenceRuleExpr)\r\n })))\r\n },\r\n _combineDataAccessors: function() {\r\n var resourcesDataAccessors = this._resourcesManager._dataAccessors;\r\n var result = (0, _extend.extend)(true, {}, this._dataAccessors);\r\n (0, _iterator.each)(resourcesDataAccessors, function(type, accessor) {\r\n result[type].resources = accessor\r\n }.bind(this));\r\n return result\r\n },\r\n _renderContent: function() {\r\n this._renderContentImpl()\r\n },\r\n _dataSourceChangedHandler: function(result) {\r\n if (this._readyToRenderAppointments) {\r\n this._workSpaceRecalculation.done(function() {\r\n this._filteredItems = this.fire(\"prerenderFilter\");\r\n this._workSpace.option(\"allDayExpanded\", this._isAllDayExpanded(this._filteredItems));\r\n if (this._isAgenda()) {\r\n this.getRenderingStrategyInstance().calculateRows(this._filteredItems, 7, this.option(\"currentDate\"), true)\r\n }\r\n if (this._filteredItems.length && this._isVisible()) {\r\n this._appointments.option(\"items\", this._getAppointmentsToRepaint());\r\n this._appointmentModel.cleanModelState()\r\n } else {\r\n this._appointments.option(\"items\", [])\r\n }\r\n if (this._isAgenda()) {\r\n this._workSpace._renderView();\r\n this._dataSourceLoadedCallback.fireWith(this, [result])\r\n }\r\n }.bind(this))\r\n }\r\n },\r\n _getAppointmentsToRepaint: function() {\r\n var appointments = this._layoutManager.createAppointmentsMap(this._filteredItems);\r\n return this._layoutManager.getRepaintedAppointments(appointments, this.getAppointmentsInstance().option(\"items\"))\r\n },\r\n _initExpressions: function(fields) {\r\n var isDateField = function(field) {\r\n return \"startDate\" === field || \"endDate\" === field\r\n };\r\n if (!this._dataAccessors) {\r\n this._dataAccessors = {\r\n getter: {},\r\n setter: {},\r\n expr: {}\r\n }\r\n }(0, _iterator.each)(fields, function(name, expr) {\r\n if (expr) {\r\n var getter = _data2.default.compileGetter(expr);\r\n var setter = _data2.default.compileSetter(expr);\r\n var dateGetter;\r\n var dateSetter;\r\n if (isDateField(name)) {\r\n var that = this;\r\n dateGetter = function() {\r\n var value = getter.apply(this, arguments);\r\n if ((0, _config2.default)().forceIsoDateParsing) {\r\n if (!that.option(\"dateSerializationFormat\")) {\r\n var format = _date_serialization2.default.getDateSerializationFormat(value);\r\n if (format) {\r\n that.option(\"dateSerializationFormat\", format)\r\n }\r\n }\r\n value = _date_serialization2.default.deserializeDate(value)\r\n }\r\n return value\r\n };\r\n dateSetter = function(object, value) {\r\n if ((0, _config2.default)().forceIsoDateParsing || that.option(\"dateSerializationFormat\")) {\r\n value = _date_serialization2.default.serializeDate(value, that.option(\"dateSerializationFormat\"))\r\n }\r\n setter.call(this, object, value)\r\n }\r\n }\r\n this._dataAccessors.getter[name] = dateGetter || getter;\r\n this._dataAccessors.setter[name] = dateSetter || setter;\r\n this._dataAccessors.expr[name + \"Expr\"] = expr\r\n } else {\r\n delete this._dataAccessors.getter[name];\r\n delete this._dataAccessors.setter[name];\r\n delete this._dataAccessors.expr[name + \"Expr\"]\r\n }\r\n }.bind(this))\r\n },\r\n _updateExpression: function(name, value) {\r\n var exprObj = {};\r\n exprObj[name.replace(\"Expr\", \"\")] = value;\r\n this._initExpressions(exprObj)\r\n },\r\n _initEditing: function() {\r\n var editing = this.option(\"editing\");\r\n this._editing = {\r\n allowAdding: !!editing,\r\n allowUpdating: !!editing,\r\n allowDeleting: !!editing,\r\n allowResizing: !!editing,\r\n allowDragging: !!editing\r\n };\r\n if (_type2.default.isObject(editing)) {\r\n this._editing = (0, _extend.extend)(this._editing, editing)\r\n }\r\n this._editing.allowDragging = this._editing.allowDragging && this._editing.allowUpdating;\r\n this._editing.allowResizing = this._editing.allowResizing && this._editing.allowUpdating;\r\n this.$element().toggleClass(WIDGET_READONLY_CLASS, this._isReadOnly())\r\n },\r\n _isReadOnly: function() {\r\n var result = true;\r\n var editing = this._editing;\r\n for (var prop in editing) {\r\n if (Object.prototype.hasOwnProperty.call(editing, prop)) {\r\n result = result && !editing[prop]\r\n }\r\n }\r\n return result\r\n },\r\n _dispose: function() {\r\n this._appointmentTooltip && this._appointmentTooltip.dispose();\r\n this.hideAppointmentPopup();\r\n this.hideAppointmentTooltip();\r\n this._asyncTemplatesTimers.forEach(clearTimeout);\r\n this._asyncTemplatesTimers = [];\r\n this.callBase()\r\n },\r\n _initActions: function() {\r\n this._actions = {\r\n onAppointmentAdding: this._createActionByOption(\"onAppointmentAdding\"),\r\n onAppointmentAdded: this._createActionByOption(\"onAppointmentAdded\"),\r\n onAppointmentUpdating: this._createActionByOption(\"onAppointmentUpdating\"),\r\n onAppointmentUpdated: this._createActionByOption(\"onAppointmentUpdated\"),\r\n onAppointmentDeleting: this._createActionByOption(\"onAppointmentDeleting\"),\r\n onAppointmentDeleted: this._createActionByOption(\"onAppointmentDeleted\"),\r\n onAppointmentFormOpening: this._createActionByOption(\"onAppointmentFormOpening\")\r\n }\r\n },\r\n _getAppointmentRenderedAction: function() {\r\n return this._createActionByOption(\"onAppointmentRendered\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _renderFocusTarget: _common.noop,\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.fire(\"validateDayHours\");\r\n this._validateCellDuration();\r\n this._processCurrentView();\r\n this._renderHeader();\r\n this._layoutManager = new _uiSchedulerAppointments2.default(this, this._getAppointmentsRenderingStrategy());\r\n this._appointments = this._createComponent(\"
\", _uiScheduler28.default, this._appointmentsConfig());\r\n this._appointments.option(\"itemTemplate\", this._getAppointmentTemplate(\"appointmentTemplate\"));\r\n this._appointmentTooltip = new(this.option(\"adaptivityEnabled\") ? _mobileTooltipStrategy.MobileTooltipStrategy : _desktopTooltipStrategy.DesktopTooltipStrategy)(this._getAppointmentTooltipOptions());\r\n this._appointmentPopup = new _appointmentPopup2.default(this);\r\n if (this._isLoaded() || this._isDataSourceLoading()) {\r\n this._initMarkupCore(this._loadedResources);\r\n this._dataSourceChangedHandler(this._dataSource.items());\r\n this._fireContentReadyAction()\r\n } else {\r\n this._loadResources().done(function(resources) {\r\n this._initMarkupCore(resources);\r\n this._reloadDataSource()\r\n }.bind(this))\r\n }\r\n },\r\n _getAppointmentTooltipOptions: function() {\r\n var _this5 = this;\r\n var that = this;\r\n return {\r\n createComponent: that._createComponent.bind(that),\r\n container: that.$element(),\r\n getScrollableContainer: that.getWorkSpaceScrollableContainer.bind(that),\r\n addDefaultTemplates: that._templateManager.addDefaultTemplates.bind(that._templateManager),\r\n getAppointmentTemplate: that._getAppointmentTemplate.bind(that),\r\n showAppointmentPopup: that.showAppointmentPopup.bind(that),\r\n getTextAndFormatDate: function(data, currentData, format) {\r\n return that.fire(\"getTextAndFormatDate\", data, currentData, format)\r\n },\r\n checkAndDeleteAppointment: that.checkAndDeleteAppointment.bind(that),\r\n isAppointmentInAllDayPanel: that.isAppointmentInAllDayPanel.bind(that),\r\n getSingleAppointmentData: function(appointmentData, targetElement) {\r\n var $appointment = (0, _renderer2.default)(targetElement);\r\n return _this5._getAppointmentData(appointmentData, {\r\n data: appointmentData,\r\n target: $appointment.get(0),\r\n $appointment: $appointment,\r\n skipHoursProcessing: true\r\n })\r\n }\r\n }\r\n },\r\n checkAndDeleteAppointment: function(data, appointmentData) {\r\n var that = this;\r\n var startDate = that.fire(\"getField\", \"startDate\", appointmentData);\r\n that._checkRecurringAppointment(data, appointmentData, startDate, function() {\r\n that.deleteAppointment(data)\r\n }, true)\r\n },\r\n _getExtraAppointmentTooltipOptions: function() {\r\n return {\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n editing: this.option(\"editing\"),\r\n offset: this.option(\"_appointmentTooltipOffset\")\r\n }\r\n },\r\n isAppointmentInAllDayPanel: function(appointmentData) {\r\n var workSpace = this._workSpace;\r\n var itTakesAllDay = this.appointmentTakesAllDay(appointmentData);\r\n return itTakesAllDay && workSpace.supportAllDayRow() && workSpace.option(\"showAllDayPanel\")\r\n },\r\n _initMarkupCore: function(resources) {\r\n var _this6 = this;\r\n this._readyToRenderAppointments = _window2.default.hasWindow();\r\n this._workSpace && this._cleanWorkspace();\r\n this._renderWorkSpace(resources);\r\n this._appointments.option({\r\n fixedContainer: this._workSpace.getFixedContainer(),\r\n allDayContainer: this._workSpace.getAllDayContainer()\r\n });\r\n this._waitAsyncTemplate(function() {\r\n var _this6$_workSpaceReca;\r\n return null === (_this6$_workSpaceReca = _this6._workSpaceRecalculation) || void 0 === _this6$_workSpaceReca ? void 0 : _this6$_workSpaceReca.resolve()\r\n });\r\n this._filterAppointmentsByDate()\r\n },\r\n _isLoaded: function() {\r\n return this._isResourcesLoaded() && this._isDataSourceLoaded()\r\n },\r\n _isResourcesLoaded: function() {\r\n return _type2.default.isDefined(this._loadedResources)\r\n },\r\n _isDataSourceLoaded: function() {\r\n return this._dataSource && this._dataSource.isLoaded()\r\n },\r\n _render: function() {\r\n this._toggleSmallClass();\r\n this._toggleAdaptiveClass();\r\n this.callBase()\r\n },\r\n _renderHeader: function() {\r\n var $header = (0, _renderer2.default)(\"
\").appendTo(this.$element());\r\n this._header = this._createComponent($header, _uiScheduler4.default, this._headerConfig())\r\n },\r\n _headerConfig: function() {\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n var countConfig = this._getViewCountConfig();\r\n var result = (0, _extend.extend)({\r\n isAdaptive: this.option(\"adaptivityEnabled\"),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n currentView: this._currentView,\r\n tabIndex: this.option(\"tabIndex\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n width: this.option(\"width\"),\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n useDropDownViewSwitcher: this.option(\"useDropDownViewSwitcher\"),\r\n _dropDownButtonIcon: this.option(\"_dropDownButtonIcon\"),\r\n customizeDateNavigatorText: this.option(\"customizeDateNavigatorText\")\r\n }, currentViewOptions);\r\n result.observer = this;\r\n result.intervalCount = countConfig.intervalCount;\r\n result.views = this.option(\"views\");\r\n result.min = new Date(this._dateOption(\"min\"));\r\n result.max = new Date(this._dateOption(\"max\"));\r\n result.currentDate = _date2.default.trimTime(new Date(this._dateOption(\"currentDate\")));\r\n return result\r\n },\r\n _appointmentsConfig: function() {\r\n var that = this;\r\n var config = {\r\n observer: this,\r\n onItemRendered: this._getAppointmentRenderedAction(),\r\n onItemClick: this._createActionByOption(\"onAppointmentClick\"),\r\n onItemContextMenu: this._createActionByOption(\"onAppointmentContextMenu\"),\r\n onAppointmentDblClick: this._createActionByOption(\"onAppointmentDblClick\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n allowDrag: this._allowDragging(),\r\n allowDelete: this._editing.allowUpdating && this._editing.allowDeleting,\r\n allowResize: this._allowResizing(),\r\n allowAllDayResize: this._allowAllDayResizing(),\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n currentView: this.option(\"currentView\"),\r\n onContentReady: function() {\r\n that._workSpace && that._workSpace.option(\"allDayExpanded\", that._isAllDayExpanded(that.getFilteredItems()))\r\n }\r\n };\r\n return config\r\n },\r\n getCollectorOffset: function() {\r\n if (this._workSpace.needApplyCollectorOffset() && !this.option(\"adaptivityEnabled\")) {\r\n return this.option(\"_collectorOffset\")\r\n } else {\r\n return 0\r\n }\r\n },\r\n getAppointmentDurationInMinutes: function() {\r\n return this._getCurrentViewOption(\"cellDuration\")\r\n },\r\n _processCurrentView: function() {\r\n var views = this.option(\"views\");\r\n var currentView = this.option(\"currentView\");\r\n var that = this;\r\n this._currentView = currentView;\r\n (0, _iterator.each)(views, function(_, view) {\r\n var isViewIsObject = _type2.default.isObject(view);\r\n var viewName = isViewIsObject ? view.name : view;\r\n var viewType = view.type;\r\n if (currentView === viewName || currentView === viewType) {\r\n that._currentView = view;\r\n return false\r\n }\r\n })\r\n },\r\n _validateCellDuration: function() {\r\n var endDayHour = this._getCurrentViewOption(\"endDayHour\");\r\n var startDayHour = this._getCurrentViewOption(\"startDayHour\");\r\n var cellDuration = this._getCurrentViewOption(\"cellDuration\");\r\n if ((endDayHour - startDayHour) * MINUTES_IN_HOUR % cellDuration !== 0) {\r\n _ui2.default.log(\"W1015\")\r\n }\r\n },\r\n _getCurrentViewType: function() {\r\n return this._currentView.type || this._currentView\r\n },\r\n _getAppointmentsRenderingStrategy: function() {\r\n return VIEWS_CONFIG[this._getCurrentViewType()].renderingStrategy\r\n },\r\n _renderWorkSpace: function(groups) {\r\n this._readyToRenderAppointments && this._toggleSmallClass();\r\n var $workSpace = (0, _renderer2.default)(\"
\").appendTo(this.$element());\r\n var countConfig = this._getViewCountConfig();\r\n this._workSpace = this._createComponent($workSpace, VIEWS_CONFIG[this._getCurrentViewType()].workSpace, this._workSpaceConfig(groups, countConfig));\r\n this._allowDragging() && this._workSpace.initDragBehavior(this);\r\n this._workSpace._attachTablesEvents();\r\n this._workSpace.getWorkArea().append(this._appointments.$element());\r\n this._recalculateWorkspace();\r\n countConfig.startDate && this._header && this._header.option(\"currentDate\", this._workSpace._getHeaderDate());\r\n this._appointments.option(\"_collectorOffset\", this.getCollectorOffset())\r\n },\r\n _getViewCountConfig: function() {\r\n var currentView = this.option(\"currentView\");\r\n var view = this._getViewByName(currentView);\r\n var viewCount = view && view.intervalCount || 1;\r\n var startDate = view && view.startDate || null;\r\n return {\r\n intervalCount: viewCount,\r\n startDate: startDate\r\n }\r\n },\r\n _getViewByName: function(name) {\r\n var views = this.option(\"views\");\r\n for (var i = 0; i < views.length; i++) {\r\n if (views[i].name === name || views[i].type === name || views[i] === name) {\r\n return views[i]\r\n }\r\n }\r\n },\r\n _recalculateWorkspace: function() {\r\n var _this7 = this;\r\n this._workSpaceRecalculation = new Deferred;\r\n this._waitAsyncTemplate(function() {\r\n _dom2.default.triggerResizeEvent(_this7._workSpace.$element());\r\n _this7._workSpace._refreshDateTimeIndication()\r\n })\r\n },\r\n _workSpaceConfig: function(groups, countConfig) {\r\n var _this8 = this;\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n var result = (0, _extend.extend)({\r\n noDataText: this.option(\"noDataText\"),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n startDayHour: this.option(\"startDayHour\"),\r\n endDayHour: this.option(\"endDayHour\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n accessKey: this.option(\"accessKey\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n cellDuration: this.option(\"cellDuration\"),\r\n showAllDayPanel: this.option(\"showAllDayPanel\"),\r\n showCurrentTimeIndicator: this.option(\"showCurrentTimeIndicator\"),\r\n indicatorTime: this.option(\"indicatorTime\"),\r\n indicatorUpdateInterval: this.option(\"indicatorUpdateInterval\"),\r\n shadeUntilCurrentTime: this.option(\"shadeUntilCurrentTime\"),\r\n allDayExpanded: this._appointments.option(\"items\"),\r\n crossScrollingEnabled: this.option(\"crossScrollingEnabled\"),\r\n dataCellTemplate: this.option(\"dataCellTemplate\"),\r\n timeCellTemplate: this.option(\"timeCellTemplate\"),\r\n resourceCellTemplate: this.option(\"resourceCellTemplate\"),\r\n dateCellTemplate: this.option(\"dateCellTemplate\"),\r\n allowMultipleCellSelection: this.option(\"allowMultipleCellSelection\"),\r\n selectedCellData: this.option(\"selectedCellData\"),\r\n onSelectionChanged: function(args) {\r\n _this8.option(\"selectedCellData\", args.selectedCellData)\r\n },\r\n groupByDate: this._getCurrentViewOption(\"groupByDate\")\r\n }, currentViewOptions);\r\n result.observer = this;\r\n result.intervalCount = countConfig.intervalCount;\r\n result.startDate = countConfig.startDate;\r\n result.groups = groups;\r\n result.onCellClick = this._createActionByOption(\"onCellClick\");\r\n result.onCellContextMenu = this._createActionByOption(\"onCellContextMenu\");\r\n result.min = new Date(this._dateOption(\"min\"));\r\n result.max = new Date(this._dateOption(\"max\"));\r\n result.currentDate = _date2.default.trimTime(new Date(this._dateOption(\"currentDate\")));\r\n result.hoursInterval = result.cellDuration / 60;\r\n result.allDayExpanded = this._isAllDayExpanded(this.getFilteredItems());\r\n result.dataCellTemplate = result.dataCellTemplate ? this._getTemplate(result.dataCellTemplate) : null;\r\n result.timeCellTemplate = result.timeCellTemplate ? this._getTemplate(result.timeCellTemplate) : null;\r\n result.resourceCellTemplate = result.resourceCellTemplate ? this._getTemplate(result.resourceCellTemplate) : null;\r\n result.dateCellTemplate = result.dateCellTemplate ? this._getTemplate(result.dateCellTemplate) : null;\r\n return result\r\n },\r\n _waitAsyncTemplate: function(callback) {\r\n if (this._options.silent(\"templatesRenderAsynchronously\")) {\r\n var timer = setTimeout(function() {\r\n callback();\r\n clearTimeout(timer)\r\n });\r\n this._asyncTemplatesTimers.push(timer)\r\n } else {\r\n callback()\r\n }\r\n },\r\n _getCurrentViewOptions: function() {\r\n return this._currentView\r\n },\r\n _getCurrentViewOption: function(optionName) {\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n if (currentViewOptions && void 0 !== currentViewOptions[optionName]) {\r\n return currentViewOptions[optionName]\r\n }\r\n return this.option(optionName)\r\n },\r\n _getAppointmentTemplate: function(optionName) {\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n if (currentViewOptions && currentViewOptions[optionName]) {\r\n return this._getTemplate(currentViewOptions[optionName])\r\n }\r\n return this._getTemplateByOption(optionName)\r\n },\r\n _updateOption: function(viewName, optionName, value) {\r\n var currentViewOptions = this._getCurrentViewOptions();\r\n if (!currentViewOptions || !_type2.default.isDefined(currentViewOptions[optionName])) {\r\n this[\"_\" + viewName].option(optionName, value)\r\n }\r\n },\r\n _refreshWorkSpace: function(groups) {\r\n var _this9 = this;\r\n this._cleanWorkspace();\r\n delete this._workSpace;\r\n this._renderWorkSpace(groups);\r\n if (this._readyToRenderAppointments) {\r\n this._appointments.option({\r\n fixedContainer: this._workSpace.getFixedContainer(),\r\n allDayContainer: this._workSpace.getAllDayContainer()\r\n });\r\n this._waitAsyncTemplate(function() {\r\n return _this9._workSpaceRecalculation.resolve()\r\n })\r\n }\r\n },\r\n _cleanWorkspace: function() {\r\n this._appointments.$element().detach();\r\n this._workSpace._dispose();\r\n this._workSpace.$element().remove();\r\n this.option(\"selectedCellData\", [])\r\n },\r\n getWorkSpaceScrollable: function() {\r\n return this._workSpace.getScrollable()\r\n },\r\n getWorkSpaceScrollableScrollTop: function(allDay) {\r\n return this._workSpace.getGroupedScrollableScrollTop(allDay)\r\n },\r\n getWorkSpaceScrollableScrollLeft: function() {\r\n return this._workSpace.getScrollableScrollLeft()\r\n },\r\n getWorkSpaceScrollableContainer: function() {\r\n return this._workSpace.getScrollableContainer()\r\n },\r\n getWorkSpaceAllDayHeight: function() {\r\n return this._workSpace.getAllDayHeight()\r\n },\r\n getWorkSpaceAllDayOffset: function() {\r\n return this._workSpace.getAllDayOffset()\r\n },\r\n getWorkSpaceHeaderPanelHeight: function() {\r\n return this._workSpace.getHeaderPanelHeight()\r\n },\r\n getWorkSpaceDateTableOffset: function() {\r\n return !this.option(\"crossScrollingEnabled\") || this.option(\"rtlEnabled\") ? this._workSpace.getWorkSpaceLeftOffset() : 0\r\n },\r\n getWorkSpace: function() {\r\n return this._workSpace\r\n },\r\n getAppointmentModel: function() {\r\n return this._appointmentModel\r\n },\r\n getHeader: function() {\r\n return this._header\r\n },\r\n getMaxAppointmentsPerCell: function() {\r\n return this._getCurrentViewOption(\"maxAppointmentsPerCell\")\r\n },\r\n _cleanPopup: function() {\r\n this._appointmentPopup && this._appointmentPopup.dispose()\r\n },\r\n _convertDatesByTimezoneBack: function(applyAppointmentTimezone, sourceAppointmentData, targetAppointmentData) {\r\n targetAppointmentData = targetAppointmentData || sourceAppointmentData;\r\n var processedStartDate = this.fire(\"convertDateByTimezoneBack\", this.fire(\"getField\", \"startDate\", sourceAppointmentData), applyAppointmentTimezone && this.fire(\"getField\", \"startDateTimeZone\", sourceAppointmentData));\r\n var processedEndDate = this.fire(\"convertDateByTimezoneBack\", this.fire(\"getField\", \"endDate\", sourceAppointmentData), applyAppointmentTimezone && this.fire(\"getField\", \"endDateTimeZone\", sourceAppointmentData));\r\n this.fire(\"setField\", \"startDate\", targetAppointmentData, processedStartDate);\r\n this.fire(\"setField\", \"endDate\", targetAppointmentData, processedEndDate)\r\n },\r\n _checkRecurringAppointment: function(targetAppointment, singleAppointment, exceptionDate, callback, isDeleted, isPopupEditing, dragEvent) {\r\n delete this._updatedRecAppointment;\r\n var recurrenceRule = this.fire(\"getField\", \"recurrenceRule\", targetAppointment);\r\n if (!_utils2.default.getRecurrenceRule(recurrenceRule).isValid || !this._editing.allowUpdating) {\r\n callback();\r\n return\r\n }\r\n var editMode = this.option(\"recurrenceEditMode\");\r\n switch (editMode) {\r\n case \"series\":\r\n callback();\r\n break;\r\n case \"occurrence\":\r\n this._singleAppointmentChangesHandler(targetAppointment, singleAppointment, exceptionDate, isDeleted, isPopupEditing, dragEvent);\r\n break;\r\n default:\r\n if (dragEvent) {\r\n dragEvent.cancel = new Deferred\r\n }\r\n this._showRecurrenceChangeConfirm(isDeleted).done(function(result) {\r\n result && callback();\r\n !result && this._singleAppointmentChangesHandler(targetAppointment, singleAppointment, exceptionDate, isDeleted, isPopupEditing, dragEvent)\r\n }.bind(this)).fail(function() {\r\n this._appointments.moveAppointmentBack(dragEvent)\r\n }.bind(this))\r\n }\r\n },\r\n _singleAppointmentChangesHandler: function(targetAppointment, singleAppointment, exceptionDate, isDeleted, isPopupEditing, dragEvent) {\r\n exceptionDate = new Date(exceptionDate);\r\n\r\n function processAppointmentDates(appointment, commonTimezoneOffset) {\r\n var startDate = this.fire(\"getField\", \"startDate\", appointment);\r\n var processedStartDate = this.fire(\"convertDateByTimezoneBack\", startDate, this.fire(\"getField\", \"startDateTimeZone\", appointment));\r\n var endDate = this.fire(\"getField\", \"endDate\", appointment);\r\n var processedEndDate = this.fire(\"convertDateByTimezoneBack\", endDate, this.fire(\"getField\", \"endDateTimeZone\", appointment));\r\n if (\"number\" === typeof commonTimezoneOffset && !isNaN(commonTimezoneOffset)) {\r\n var startDateClientTzOffset = -(this._subscribes.getClientTimezoneOffset(startDate) / toMs(\"hour\"));\r\n var endDateClientTzOffset = -(this._subscribes.getClientTimezoneOffset(endDate) / toMs(\"hour\"));\r\n var processedStartDateInUTC = processedStartDate.getTime() - startDateClientTzOffset * toMs(\"hour\");\r\n var processedEndDateInUTC = processedEndDate.getTime() - endDateClientTzOffset * toMs(\"hour\");\r\n processedStartDate = new Date(processedStartDateInUTC + commonTimezoneOffset * toMs(\"hour\"));\r\n processedEndDate = new Date(processedEndDateInUTC + commonTimezoneOffset * toMs(\"hour\"))\r\n }\r\n this.fire(\"setField\", \"startDate\", appointment, processedStartDate);\r\n this.fire(\"setField\", \"endDate\", appointment, processedEndDate)\r\n }\r\n this.fire(\"setField\", \"recurrenceRule\", singleAppointment, \"\");\r\n this.fire(\"setField\", \"recurrenceException\", singleAppointment, \"\");\r\n if (!isDeleted && !isPopupEditing) {\r\n processAppointmentDates.call(this, singleAppointment, this._getTimezoneOffsetByOption());\r\n this.addAppointment(singleAppointment)\r\n }\r\n var recurrenceException = this._makeDateAsRecurrenceException(exceptionDate, targetAppointment);\r\n var updatedAppointment = (0, _extend.extend)({}, targetAppointment);\r\n this.fire(\"setField\", \"recurrenceException\", updatedAppointment, recurrenceException);\r\n if (isPopupEditing) {\r\n this._updatedRecAppointment = updatedAppointment;\r\n this._showAppointmentPopup(singleAppointment, true, false);\r\n this._editAppointmentData = targetAppointment\r\n } else {\r\n this._updateAppointment(targetAppointment, updatedAppointment, function() {\r\n this._appointments.moveAppointmentBack(dragEvent)\r\n }, dragEvent)\r\n }\r\n },\r\n _makeDateAsRecurrenceException: function(exceptionDate, targetAppointment) {\r\n var startDate = this._getStartDate(targetAppointment, true);\r\n var isAllDay = this.fire(\"getField\", \"allDay\", targetAppointment);\r\n var startDateTimeZone = this.fire(\"getField\", \"startDateTimeZone\", targetAppointment);\r\n var exceptionByDate = this._getRecurrenceExceptionDate(exceptionDate, startDate, startDateTimeZone, isAllDay);\r\n var recurrenceException = this.fire(\"getField\", \"recurrenceException\", targetAppointment);\r\n return recurrenceException ? recurrenceException + \",\" + exceptionByDate : exceptionByDate\r\n },\r\n _getRecurrenceExceptionDate: function(exceptionStartDate, targetStartDate, startDateTimeZone, isAllDay) {\r\n exceptionStartDate = this.fire(\"convertDateByTimezoneBack\", exceptionStartDate, startDateTimeZone);\r\n var appointmentStartDate = this.fire(\"convertDateByTimezoneBack\", targetStartDate, startDateTimeZone);\r\n exceptionStartDate = _utils4.default.correctRecurrenceExceptionByTimezone(exceptionStartDate, appointmentStartDate, this.option(\"timeZone\"), startDateTimeZone, true);\r\n isAllDay && exceptionStartDate.setHours(appointmentStartDate.getHours(), appointmentStartDate.getMinutes(), appointmentStartDate.getSeconds(), appointmentStartDate.getMilliseconds());\r\n return _date_serialization2.default.serializeDate(exceptionStartDate, UTC_FULL_DATE_FORMAT)\r\n },\r\n _showRecurrenceChangeConfirm: function(isDeleted) {\r\n var message = _message2.default.format(isDeleted ? \"dxScheduler-confirmRecurrenceDeleteMessage\" : \"dxScheduler-confirmRecurrenceEditMessage\");\r\n var seriesText = _message2.default.format(isDeleted ? \"dxScheduler-confirmRecurrenceDeleteSeries\" : \"dxScheduler-confirmRecurrenceEditSeries\");\r\n var occurrenceText = _message2.default.format(isDeleted ? \"dxScheduler-confirmRecurrenceDeleteOccurrence\" : \"dxScheduler-confirmRecurrenceEditOccurrence\");\r\n return _dialog2.default.custom({\r\n messageHtml: message,\r\n showCloseButton: true,\r\n showTitle: true,\r\n buttons: [{\r\n text: seriesText,\r\n onClick: function() {\r\n return true\r\n }\r\n }, {\r\n text: occurrenceText,\r\n onClick: function() {\r\n return false\r\n }\r\n }]\r\n }).show()\r\n },\r\n _getUpdatedData: function(options) {\r\n var target = options.data || options;\r\n var cellData = this.getTargetCellData();\r\n var targetAllDay = this.fire(\"getField\", \"allDay\", target);\r\n var targetStartDate = new Date(this.fire(\"getField\", \"startDate\", target));\r\n var targetEndDate = new Date(this.fire(\"getField\", \"endDate\", target));\r\n var date = cellData.startDate || targetStartDate;\r\n if (!targetStartDate || isNaN(targetStartDate)) {\r\n targetStartDate = date\r\n }\r\n var targetStartTime = targetStartDate.getTime();\r\n if (!targetEndDate || isNaN(targetEndDate)) {\r\n targetEndDate = cellData.endDate\r\n }\r\n var targetEndTime = targetEndDate.getTime() || cellData.endData;\r\n var duration = targetEndTime - targetStartTime;\r\n if (this._workSpace.keepOriginalHours()) {\r\n var diff = targetStartTime - _date2.default.trimTime(targetStartDate).getTime();\r\n date = new Date(_date2.default.trimTime(date).getTime() + diff)\r\n }\r\n var updatedData = {};\r\n var allDay = cellData.allDay;\r\n this.fire(\"setField\", \"allDay\", updatedData, allDay);\r\n this.fire(\"setField\", \"startDate\", updatedData, date);\r\n var endDate = new Date(date.getTime() + duration);\r\n if (this.appointmentTakesAllDay(target) && !updatedData.allDay && this._workSpace.supportAllDayRow()) {\r\n endDate = this._workSpace.calculateEndDate(date)\r\n }\r\n if (targetAllDay && !this._workSpace.supportAllDayRow() && !this._workSpace.keepOriginalHours()) {\r\n var dateCopy = new Date(date);\r\n dateCopy.setHours(0);\r\n endDate = new Date(dateCopy.getTime() + duration);\r\n if (0 !== endDate.getHours()) {\r\n endDate.setHours(this._getCurrentViewOption(\"endDayHour\"))\r\n }\r\n }\r\n endDate = new Date(endDate.getTime() - _utils4.default.getTimezoneOffsetChangeInMs(targetStartDate, targetEndDate, date, endDate));\r\n this.fire(\"setField\", \"endDate\", updatedData, endDate);\r\n this._resourcesManager.setResourcesToItem(updatedData, cellData.groups);\r\n return updatedData\r\n },\r\n _getCoordinates: function(initialDates, dates, appointmentResources, allDay) {\r\n var result = [];\r\n for (var i = 0; i < dates.length; i++) {\r\n var currentCoords = this._workSpace.getCoordinatesByDateInGroup(dates[i], appointmentResources, allDay);\r\n for (var j = 0; j < currentCoords.length; j++) {\r\n (0, _extend.extend)(currentCoords[j], {\r\n startDate: dates[i],\r\n initialStartDate: initialDates[i]\r\n })\r\n }\r\n result = result.concat(currentCoords)\r\n }\r\n return result\r\n },\r\n _isAppointmentRecurrence: function(appointmentData) {\r\n var recurrenceRule = this.fire(\"getField\", \"recurrenceRule\", appointmentData);\r\n return recurrenceRule && _utils2.default.getRecurrenceRule(recurrenceRule).isValid\r\n },\r\n _getAppointmentData: function(appointmentData, options) {\r\n options = options || {};\r\n var $appointment = options.$appointment;\r\n var updatedData = options.skipDateCalculation ? {} : this._getUpdatedData(options);\r\n var resultAppointmentData = (0, _extend.extend)({}, appointmentData, updatedData);\r\n var allDay = this.fire(\"getField\", \"allDay\", appointmentData);\r\n var isAllDay = this._workSpace.supportAllDayRow() && allDay;\r\n var startDate = new Date(this.fire(\"getField\", \"startDate\", resultAppointmentData));\r\n var endDate = new Date(this.fire(\"getField\", \"endDate\", resultAppointmentData));\r\n var appointmentDuration = endDate.getTime() - startDate.getTime();\r\n var updatedStartDate = startDate;\r\n var appointmentStartDate;\r\n var appointmentEndDate;\r\n if (_type2.default.isDefined($appointment)) {\r\n var apptDataCalculator = this.getRenderingStrategyInstance().getAppointmentDataCalculator();\r\n if (_type2.default.isFunction(apptDataCalculator) && this._isAppointmentRecurrence(appointmentData)) {\r\n updatedStartDate = apptDataCalculator($appointment, startDate).startDate\r\n } else {\r\n if (options.isAppointmentResized) {\r\n var coordinates = _translator2.default.locate($appointment);\r\n updatedStartDate = new Date(this._workSpace.getCellDataByCoordinates(coordinates, isAllDay).startDate)\r\n } else {\r\n var settings = $appointment.data(\"dxAppointmentSettings\");\r\n appointmentStartDate = settings && settings.originalAppointmentStartDate;\r\n appointmentEndDate = settings && settings.originalAppointmentEndDate;\r\n if (this._isAppointmentRecurrence(appointmentData)) {\r\n appointmentStartDate = settings && settings.startDate;\r\n appointmentEndDate = settings && settings.endDate\r\n }\r\n if (appointmentStartDate) {\r\n updatedStartDate = appointmentStartDate\r\n }\r\n }\r\n }\r\n }\r\n this.fire(\"setField\", \"startDate\", resultAppointmentData, updatedStartDate);\r\n this.fire(\"setField\", \"endDate\", resultAppointmentData, appointmentEndDate || new Date(updatedStartDate.getTime() + appointmentDuration));\r\n if (!options.skipHoursProcessing && !options.isAppointmentResized) {\r\n this._convertDatesByTimezoneBack(false, resultAppointmentData)\r\n }\r\n return resultAppointmentData\r\n },\r\n subscribe: function(subject, action) {\r\n this._subscribes[subject] = _uiScheduler2.default[subject] = action\r\n },\r\n fire: function(subject) {\r\n var callback = this._subscribes[subject];\r\n var args = Array.prototype.slice.call(arguments);\r\n if (!_type2.default.isFunction(callback)) {\r\n throw _ui2.default.Error(\"E1031\", subject)\r\n }\r\n return callback.apply(this, args.slice(1))\r\n },\r\n getTargetCellData: function() {\r\n return this._workSpace.getDataByDroppableCell()\r\n },\r\n _updateAppointment: function(target, appointment, onUpdatePrevented, dragEvent) {\r\n var updatingOptions = {\r\n newData: appointment,\r\n oldData: (0, _extend.extend)({}, target),\r\n cancel: false\r\n };\r\n var performFailAction = function(err) {\r\n if (_type2.default.isFunction(onUpdatePrevented)) {\r\n onUpdatePrevented.call(this)\r\n }\r\n if (err && \"Error\" === err.name) {\r\n throw err\r\n }\r\n }.bind(this);\r\n this._actions.onAppointmentUpdating(updatingOptions);\r\n if (dragEvent && !_type2.default.isDeferred(dragEvent.cancel)) {\r\n dragEvent.cancel = new Deferred\r\n }\r\n return this._processActionResult(updatingOptions, function(canceled) {\r\n var deferred = new Deferred;\r\n if (!canceled) {\r\n this._expandAllDayPanel(appointment);\r\n try {\r\n deferred = this._appointmentModel.update(target, appointment).done(function() {\r\n dragEvent && dragEvent.cancel.resolve(false)\r\n }).always(function(e) {\r\n this._executeActionWhenOperationIsCompleted(this._actions.onAppointmentUpdated, appointment, e)\r\n }.bind(this)).fail(function() {\r\n performFailAction()\r\n })\r\n } catch (err) {\r\n performFailAction(err);\r\n deferred.resolve()\r\n }\r\n } else {\r\n performFailAction();\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n })\r\n },\r\n _processActionResult: function(actionOptions, callback) {\r\n var _this10 = this;\r\n var deferred = new Deferred;\r\n var resolveCallback = function(callbackResult) {\r\n when(_deferred2.default.fromPromise(callbackResult)).always(deferred.resolve)\r\n };\r\n if (_type2.default.isPromise(actionOptions.cancel)) {\r\n when(_deferred2.default.fromPromise(actionOptions.cancel)).always(function(cancel) {\r\n if (!_type2.default.isDefined(cancel)) {\r\n cancel = \"rejected\" === actionOptions.cancel.state()\r\n }\r\n resolveCallback(callback.call(_this10, cancel))\r\n })\r\n } else {\r\n resolveCallback(callback.call(this, actionOptions.cancel))\r\n }\r\n return deferred.promise()\r\n },\r\n _expandAllDayPanel: function(appointment) {\r\n if (!this._isAllDayExpanded(this.getFilteredItems()) && this.appointmentTakesAllDay(appointment)) {\r\n this._workSpace.option(\"allDayExpanded\", true)\r\n }\r\n },\r\n _executeActionWhenOperationIsCompleted: function(action, appointment, e) {\r\n var options = {\r\n appointmentData: appointment\r\n };\r\n var isError = e && \"Error\" === e.name;\r\n if (isError) {\r\n options.error = e\r\n } else {\r\n this._appointmentPopup.isVisible() && this._appointmentPopup.hide()\r\n }\r\n action(options);\r\n this._fireContentReadyAction()\r\n },\r\n _showAppointmentPopup: function(data, visibleButtons, isProcessTimeZone) {\r\n this._appointmentPopup.show(data, visibleButtons, isProcessTimeZone)\r\n },\r\n getAppointmentPopup: function() {\r\n return this._appointmentPopup.getPopup()\r\n },\r\n getUpdatedAppointment: function() {\r\n return this._appointmentModel.getUpdatedAppointment()\r\n },\r\n getUpdatedAppointmentKeys: function() {\r\n return this._appointmentModel.getUpdatedAppointmentKeys()\r\n },\r\n getAppointmentsInstance: function() {\r\n return this._appointments\r\n },\r\n getResourceManager: function() {\r\n return this._resourcesManager\r\n },\r\n getLayoutManager: function() {\r\n return this._layoutManager\r\n },\r\n getRenderingStrategyInstance: function() {\r\n return this._layoutManager.getRenderingStrategyInstance()\r\n },\r\n getFilteredItems: function() {\r\n return this._filteredItems\r\n },\r\n getActions: function() {\r\n return this._actions\r\n },\r\n appointmentTakesAllDay: function(appointment) {\r\n return this._appointmentModel.appointmentTakesAllDay(appointment, this._getCurrentViewOption(\"startDayHour\"), this._getCurrentViewOption(\"endDayHour\"))\r\n },\r\n _getStartDate: function(appointment, skipNormalize) {\r\n var startDate = this.fire(\"getField\", \"startDate\", appointment);\r\n var startDateTimeZone = this.fire(\"getField\", \"startDateTimeZone\", appointment);\r\n startDate = this.fire(\"convertDateByTimezone\", _date2.default.makeDate(startDate), startDateTimeZone);\r\n return !skipNormalize ? this.fire(\"updateAppointmentStartDate\", {\r\n startDate: startDate,\r\n appointment: appointment\r\n }) : startDate\r\n },\r\n _getEndDate: function(appointment, skipNormalize) {\r\n var endDate = new Date(this.fire(\"getField\", \"endDate\", appointment));\r\n var startDate = new Date(this.fire(\"getField\", \"startDate\", appointment));\r\n var isSameDate = _date2.default.sameDate(startDate, endDate);\r\n if (endDate) {\r\n var endDateTimeZone = this.fire(\"getField\", \"endDateTimeZone\", appointment);\r\n endDate = this.fire(\"convertDateByTimezone\", _date2.default.makeDate(endDate), endDateTimeZone);\r\n return !skipNormalize ? this.fire(\"updateAppointmentEndDate\", {\r\n endDate: endDate,\r\n isSameDate: isSameDate\r\n }) : endDate\r\n }\r\n return endDate\r\n },\r\n _getRecurrenceException: function(appointmentData) {\r\n var recurrenceException = this.fire(\"getField\", \"recurrenceException\", appointmentData);\r\n if (recurrenceException) {\r\n var startDate = this.fire(\"getField\", \"startDate\", appointmentData);\r\n var exceptions = recurrenceException.split(\",\");\r\n var startDateTimeZone = this.fire(\"getField\", \"startDateTimeZone\", appointmentData);\r\n for (var i = 0; i < exceptions.length; i++) {\r\n exceptions[i] = this._convertRecurrenceException(exceptions[i], startDate, startDateTimeZone)\r\n }\r\n recurrenceException = exceptions.join()\r\n }\r\n return recurrenceException\r\n },\r\n _convertRecurrenceException: function(exceptionString, startDate, startDateTimeZone) {\r\n exceptionString = exceptionString.replace(/\\s/g, \"\");\r\n var exceptionDate = _date_serialization2.default.deserializeDate(exceptionString);\r\n var convertedStartDate = this.fire(\"convertDateByTimezone\", startDate, startDateTimeZone);\r\n var convertedExceptionDate = this.fire(\"convertDateByTimezone\", exceptionDate, startDateTimeZone);\r\n convertedExceptionDate = _utils4.default.correctRecurrenceExceptionByTimezone(convertedExceptionDate, convertedStartDate, this.option(\"timeZone\"), startDateTimeZone);\r\n exceptionString = _date_serialization2.default.serializeDate(convertedExceptionDate, FULL_DATE_FORMAT);\r\n return exceptionString\r\n },\r\n dayHasAppointment: function(day, appointment, trimTime) {\r\n var startDate = new Date(this.fire(\"getField\", \"startDate\", appointment));\r\n var endDate = new Date(this.fire(\"getField\", \"endDate\", appointment));\r\n var startDateTimeZone = this.fire(\"getField\", \"startDateTimeZone\", appointment);\r\n var endDateTimeZone = this.fire(\"getField\", \"endDateTimeZone\", appointment);\r\n startDate = this.fire(\"convertDateByTimezone\", startDate, startDateTimeZone);\r\n endDate = this.fire(\"convertDateByTimezone\", endDate, endDateTimeZone);\r\n if (day.getTime() === endDate.getTime()) {\r\n return startDate.getTime() === endDate.getTime()\r\n }\r\n if (trimTime) {\r\n day = _date2.default.trimTime(day);\r\n startDate = _date2.default.trimTime(startDate);\r\n endDate = _date2.default.trimTime(endDate)\r\n }\r\n var dayTimeStamp = day.getTime();\r\n var startDateTimeStamp = startDate.getTime();\r\n var endDateTimeStamp = endDate.getTime();\r\n return (0, _array.inArray)(dayTimeStamp, [startDateTimeStamp, endDateTimeStamp]) > -1 || startDateTimeStamp < dayTimeStamp && endDateTimeStamp > dayTimeStamp\r\n },\r\n setTargetedAppointmentResources: function(targetedAppointment, appointmentElement, appointmentIndex) {\r\n var groups = this._getCurrentViewOption(\"groups\");\r\n if (groups && groups.length) {\r\n var resourcesSetter = this._resourcesManager._dataAccessors.setter;\r\n var workSpace = this._workSpace;\r\n var getGroups;\r\n var setResourceCallback;\r\n if (this._isAgenda()) {\r\n getGroups = function() {\r\n var apptSettings = this.getLayoutManager()._positionMap[appointmentIndex];\r\n return workSpace._getCellGroups(apptSettings[0].groupIndex)\r\n };\r\n setResourceCallback = function(_, group) {\r\n resourcesSetter[group.name](targetedAppointment, group.id)\r\n }\r\n } else {\r\n getGroups = function() {\r\n var setting = (0, _renderer2.default)(appointmentElement).data(\"dxAppointmentSettings\") || {};\r\n return workSpace.getCellDataByCoordinates({\r\n left: setting.left,\r\n top: setting.top\r\n }).groups\r\n };\r\n setResourceCallback = function(field, value) {\r\n resourcesSetter[field](targetedAppointment, value)\r\n }\r\n }(0, _iterator.each)(getGroups.call(this), setResourceCallback)\r\n }\r\n },\r\n getStartViewDate: function() {\r\n return this._workSpace.getStartViewDate()\r\n },\r\n getEndViewDate: function() {\r\n return this._workSpace.getEndViewDate()\r\n },\r\n showAppointmentPopup: function(appointmentData, createNewAppointment, currentAppointmentData) {\r\n var singleAppointment = currentAppointmentData || this._getAppointmentData(appointmentData, {\r\n skipDateCalculation: true\r\n });\r\n var startDate = this.fire(\"getField\", \"startDate\", currentAppointmentData || appointmentData);\r\n this._checkRecurringAppointment(appointmentData, singleAppointment, startDate, function() {\r\n if (createNewAppointment || _type2.default.isEmptyObject(appointmentData)) {\r\n delete this._editAppointmentData;\r\n this._editing.allowAdding && this._showAppointmentPopup(appointmentData, true, true)\r\n } else {\r\n this._editAppointmentData = appointmentData;\r\n this._showAppointmentPopup(appointmentData, this._editing.allowUpdating, true)\r\n }\r\n }.bind(this), false, true)\r\n },\r\n hideAppointmentPopup: function(saveChanges) {\r\n if (this._appointmentPopup && this._appointmentPopup.isVisible()) {\r\n saveChanges && this._appointmentPopup.saveChanges();\r\n this._appointmentPopup.hide()\r\n }\r\n },\r\n showAppointmentTooltip: function(appointmentData, target, currentAppointmentData) {\r\n if (appointmentData) {\r\n this.showAppointmentTooltipCore(target, [{\r\n color: this._appointments._tryGetAppointmentColor(target),\r\n data: appointmentData,\r\n currentData: currentAppointmentData\r\n }])\r\n }\r\n },\r\n showAppointmentTooltipCore: function(target, data, options) {\r\n if (this._appointmentTooltip.isAlreadyShown(target)) {\r\n this.hideAppointmentTooltip()\r\n } else {\r\n this._appointmentTooltip.show(target, data, (0, _extend.extend)(this._getExtraAppointmentTooltipOptions(), options))\r\n }\r\n },\r\n hideAppointmentTooltip: function() {\r\n this._appointmentTooltip && this._appointmentTooltip.hide()\r\n },\r\n scrollToTime: function(hours, minutes, date) {\r\n this._workSpace.scrollToTime(hours, minutes, date)\r\n },\r\n addAppointment: function(appointment) {\r\n var _this11 = this;\r\n var text = this.fire(\"getField\", \"text\", appointment);\r\n if (!text) {\r\n this.fire(\"setField\", \"text\", appointment, \"\")\r\n }\r\n this._convertDatesByTimezoneBack(true, appointment);\r\n var addingOptions = {\r\n appointmentData: appointment,\r\n cancel: false\r\n };\r\n this._actions.onAppointmentAdding(addingOptions);\r\n return this._processActionResult(addingOptions, function(canceled) {\r\n if (canceled) {\r\n return (new Deferred).resolve()\r\n }\r\n _this11._expandAllDayPanel(appointment);\r\n return _this11._appointmentModel.add(appointment, {\r\n value: _this11._getTimezoneOffsetByOption(),\r\n clientOffset: _this11.fire(\"getClientTimezoneOffset\")\r\n }).always(function(e) {\r\n return _this11._executeActionWhenOperationIsCompleted(_this11._actions.onAppointmentAdded, appointment, e)\r\n })\r\n })\r\n },\r\n updateAppointment: function(target, appointment) {\r\n return this._updateAppointment(target, appointment)\r\n },\r\n deleteAppointment: function(appointment) {\r\n var deletingOptions = {\r\n appointmentData: appointment,\r\n cancel: false\r\n };\r\n this._actions.onAppointmentDeleting(deletingOptions);\r\n this._processActionResult(deletingOptions, function(canceled) {\r\n if (!canceled) {\r\n this._appointmentModel.remove(appointment).always(function(e) {\r\n this._executeActionWhenOperationIsCompleted(this._actions.onAppointmentDeleted, appointment, e)\r\n }.bind(this))\r\n }\r\n })\r\n },\r\n focus: function() {\r\n if (this._editAppointmentData) {\r\n this._appointments.focus()\r\n } else {\r\n this._workSpace.focus()\r\n }\r\n },\r\n getFirstDayOfWeek: function() {\r\n return _type2.default.isDefined(this.option(\"firstDayOfWeek\")) ? this.option(\"firstDayOfWeek\") : _date4.default.firstDayOfWeekIndex()\r\n }\r\n}).include(_data_helper2.default);\r\n(0, _component_registrator2.default)(\"dxScheduler\", Scheduler);\r\nmodule.exports = Scheduler;\r\n","/**\r\n * DevExtreme (ui/scheduler/tooltip_strategies/mobileTooltipStrategy.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nexports.MobileTooltipStrategy = void 0;\r\nvar _overlay = require(\"../../overlay\");\r\nvar _overlay2 = _interopRequireDefault(_overlay);\r\nvar _tooltipStrategyBase = require(\"./tooltipStrategyBase\");\r\nvar _window = require(\"../../../core/utils/window\");\r\nvar _renderer = require(\"../../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar SLIDE_PANEL_CLASS_NAME = \"dx-scheduler-overlay-panel\";\r\nvar MAX_TABLET_OVERLAY_HEIGHT_FACTOR = .9;\r\nvar MAX_HEIGHT = {\r\n PHONE: 250,\r\n TABLET: \"90%\",\r\n DEFAULT: \"auto\"\r\n};\r\nvar MAX_WIDTH = {\r\n PHONE: \"100%\",\r\n TABLET: \"80%\"\r\n};\r\nvar animationConfig = {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: (0, _window.getWindow)()\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: (0, _window.getWindow)()\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 300,\r\n to: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: (0, _window.getWindow)()\r\n }\r\n },\r\n from: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: (0, _window.getWindow)()\r\n }\r\n }\r\n }\r\n};\r\nvar createPhoneDeviceConfig = function(listHeight) {\r\n return {\r\n shading: false,\r\n width: MAX_WIDTH.PHONE,\r\n height: listHeight > MAX_HEIGHT.PHONE ? MAX_HEIGHT.PHONE : MAX_HEIGHT.DEFAULT,\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: (0, _window.getWindow)()\r\n }\r\n }\r\n};\r\nvar createTabletDeviceConfig = function(listHeight) {\r\n var currentMaxHeight = (0, _renderer2.default)((0, _window.getWindow)()).height() * MAX_TABLET_OVERLAY_HEIGHT_FACTOR;\r\n return {\r\n shading: true,\r\n width: MAX_WIDTH.TABLET,\r\n height: listHeight > currentMaxHeight ? MAX_HEIGHT.TABLET : MAX_HEIGHT.DEFAULT,\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: (0, _window.getWindow)()\r\n }\r\n }\r\n};\r\nvar MobileTooltipStrategy = exports.MobileTooltipStrategy = function(_TooltipStrategyBase) {\r\n _inherits(MobileTooltipStrategy, _TooltipStrategyBase);\r\n var _super = _createSuper(MobileTooltipStrategy);\r\n\r\n function MobileTooltipStrategy() {\r\n _classCallCheck(this, MobileTooltipStrategy);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(MobileTooltipStrategy, [{\r\n key: \"_shouldUseTarget\",\r\n value: function() {\r\n return false\r\n }\r\n }, {\r\n key: \"_onShowing\",\r\n value: function() {\r\n var isTabletWidth = (0, _renderer2.default)((0, _window.getWindow)()).width() > 700;\r\n this._tooltip.option(\"height\", MAX_HEIGHT.DEFAULT);\r\n var listHeight = this._list.$element().outerHeight();\r\n this._tooltip.option(isTabletWidth ? createTabletDeviceConfig(listHeight) : createPhoneDeviceConfig(listHeight))\r\n }\r\n }, {\r\n key: \"_createTooltip\",\r\n value: function(target, dataList) {\r\n var _this = this;\r\n var element = this._createTooltipElement(SLIDE_PANEL_CLASS_NAME);\r\n return this._options.createComponent(element, _overlay2.default, {\r\n target: (0, _window.getWindow)(),\r\n closeOnOutsideClick: true,\r\n animation: animationConfig,\r\n onShowing: function() {\r\n return _this._onShowing()\r\n },\r\n onShown: this._onShown.bind(this),\r\n contentTemplate: this._getContentTemplate(dataList)\r\n })\r\n }\r\n }]);\r\n return MobileTooltipStrategy\r\n}(_tooltipStrategyBase.TooltipStrategyBase);\r\n","/**\r\n * DevExtreme (ui/scheduler/ui.scheduler.appointment_model.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _config = require(\"../../core/config\");\r\nvar _config2 = _interopRequireDefault(_config);\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _iterator2 = _interopRequireDefault(_iterator);\r\nvar _date_serialization = require(\"../../core/utils/date_serialization\");\r\nvar _date_serialization2 = _interopRequireDefault(_date_serialization);\r\nvar _utils = require(\"./utils.recurrence\");\r\nvar _utils2 = _interopRequireDefault(_utils);\r\nvar _date = require(\"../../core/utils/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _type2 = _interopRequireDefault(_type);\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _array2 = _interopRequireDefault(_array);\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _query = require(\"../../data/query\");\r\nvar _query2 = _interopRequireDefault(_query);\r\nvar _deferred = require(\"../../core/utils/deferred\");\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 _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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 = _date2.default.dateToMilliseconds;\r\nvar DATE_FILTER_POSITION = 0;\r\nvar USER_FILTER_POSITION = 1;\r\nvar FilterMaker = function() {\r\n function FilterMaker(dataAccessors) {\r\n _classCallCheck(this, FilterMaker);\r\n this._filterRegistry = null;\r\n this._dataAccessors = dataAccessors\r\n }\r\n _createClass(FilterMaker, [{\r\n key: \"isRegistered\",\r\n value: function() {\r\n return !!this._filterRegistry\r\n }\r\n }, {\r\n key: \"clearRegistry\",\r\n value: function() {\r\n delete this._filterRegistry\r\n }\r\n }, {\r\n key: \"make\",\r\n value: function(type, args) {\r\n if (!this._filterRegistry) {\r\n this._filterRegistry = {}\r\n }\r\n this._make(type).apply(this, args)\r\n }\r\n }, {\r\n key: \"_make\",\r\n value: function(type) {\r\n var _this = this;\r\n switch (type) {\r\n case \"date\":\r\n return function(min, max, useAccessors) {\r\n var startDate = useAccessors ? _this._dataAccessors.getter.startDate : _this._dataAccessors.expr.startDateExpr;\r\n var endDate = useAccessors ? _this._dataAccessors.getter.endDate : _this._dataAccessors.expr.endDateExpr;\r\n var recurrenceRule = _this._dataAccessors.expr.recurrenceRuleExpr;\r\n _this._filterRegistry.date = [\r\n [\r\n [endDate, \">\", min],\r\n [startDate, \"<\", max]\r\n ], \"or\", [recurrenceRule, \"startswith\", \"freq\"], \"or\", [\r\n [endDate, min],\r\n [startDate, min]\r\n ]\r\n ];\r\n if (!recurrenceRule) {\r\n _this._filterRegistry.date.splice(1, 2)\r\n }\r\n };\r\n case \"user\":\r\n return function(userFilter) {\r\n _this._filterRegistry.user = userFilter\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"combine\",\r\n value: function() {\r\n var filter = [];\r\n this._filterRegistry.date && filter.push(this._filterRegistry.date);\r\n this._filterRegistry.user && filter.push(this._filterRegistry.user);\r\n return filter\r\n }\r\n }, {\r\n key: \"dateFilter\",\r\n value: function() {\r\n return this._filterRegistry.date\r\n }\r\n }]);\r\n return FilterMaker\r\n}();\r\nvar compareDateWithStartDayHour = function(startDate, endDate, startDayHour, allDay, severalDays) {\r\n var startTime = _date2.default.dateTimeFromDecimal(startDayHour);\r\n var result = startDate.getHours() >= startTime.hours && startDate.getMinutes() >= startTime.minutes || endDate.getHours() === startTime.hours && endDate.getMinutes() > startTime.minutes || endDate.getHours() > startTime.hours || severalDays || allDay;\r\n return result\r\n};\r\nvar compareDateWithEndDayHour = function(startDate, endDate, startDayHour, endDayHour, allDay, severalDays, max, min) {\r\n var hiddenInterval = (24 - endDayHour + startDayHour) * toMs(\"hour\");\r\n var apptDuration = endDate.getTime() - startDate.getTime();\r\n var delta = (hiddenInterval - apptDuration) / toMs(\"hour\");\r\n var apptStartHour = startDate.getHours();\r\n var apptStartMinutes = startDate.getMinutes();\r\n var result;\r\n var endTime = _date2.default.dateTimeFromDecimal(endDayHour);\r\n var startTime = _date2.default.dateTimeFromDecimal(startDayHour);\r\n result = apptStartHour < endTime.hours || apptStartHour === endTime.hours && apptStartMinutes < endTime.minutes || allDay && startDate <= max || severalDays && startDate < max && endDate > min && (apptStartHour < endTime.hours || 60 * endDate.getHours() + endDate.getMinutes() > 60 * startTime.hours);\r\n if (apptDuration < hiddenInterval) {\r\n if (apptStartHour > endTime.hours && apptStartMinutes > endTime.minutes && delta <= apptStartHour - endDayHour) {\r\n result = false\r\n }\r\n }\r\n return result\r\n};\r\nvar AppointmentModel = function() {\r\n function AppointmentModel(dataSource, dataAccessors, baseAppointmentDuration) {\r\n _classCallCheck(this, AppointmentModel);\r\n this.setDataAccessors(dataAccessors);\r\n this.setDataSource(dataSource);\r\n this._updatedAppointmentKeys = [];\r\n this._filterMaker = new FilterMaker(dataAccessors);\r\n this._baseAppointmentDuration = baseAppointmentDuration\r\n }\r\n _createClass(AppointmentModel, [{\r\n key: \"_createFilter\",\r\n value: function(min, max, remoteFiltering, dateSerializationFormat) {\r\n this._filterMaker.make(\"date\", [min, max]);\r\n var userFilterPosition = this._excessFiltering() ? this._dataSource.filter()[USER_FILTER_POSITION] : this._dataSource.filter();\r\n this._filterMaker.make(\"user\", [userFilterPosition]);\r\n if (remoteFiltering) {\r\n this._dataSource.filter(this._combineRemoteFilter(dateSerializationFormat))\r\n }\r\n }\r\n }, {\r\n key: \"_excessFiltering\",\r\n value: function() {\r\n var dateFilter = this._filterMaker.dateFilter();\r\n var dataSourceFilter = this._dataSource.filter();\r\n return dataSourceFilter && ((0, _common.equalByValue)(dataSourceFilter, dateFilter) || dataSourceFilter.length && (0, _common.equalByValue)(dataSourceFilter[DATE_FILTER_POSITION], dateFilter))\r\n }\r\n }, {\r\n key: \"_combineFilter\",\r\n value: function() {\r\n return this._filterMaker.combine()\r\n }\r\n }, {\r\n key: \"_getStoreKey\",\r\n value: function(target) {\r\n var store = this._dataSource.store();\r\n return store.keyOf(target)\r\n }\r\n }, {\r\n key: \"_filterAppointmentByResources\",\r\n value: function(appointment, resources) {\r\n var _this2 = this;\r\n var result = false;\r\n var i;\r\n var len;\r\n var resourceName;\r\n var checkAppointmentResourceValues = function() {\r\n var resourceGetter = _this2._dataAccessors.getter.resources[resourceName];\r\n var resource;\r\n if (_type2.default.isFunction(resourceGetter)) {\r\n resource = resourceGetter(appointment)\r\n }\r\n var appointmentResourceValues = _array2.default.wrapToArray(resource);\r\n var resourceData = _iterator2.default.map(resources[i].items, function(item) {\r\n return item.id\r\n });\r\n for (var j = 0, itemDataCount = appointmentResourceValues.length; j < itemDataCount; j++) {\r\n if ((0, _array.inArray)(appointmentResourceValues[j], resourceData) > -1) {\r\n return true\r\n }\r\n }\r\n return false\r\n };\r\n for (i = 0, len = resources.length; i < len; i++) {\r\n resourceName = resources[i].name;\r\n result = checkAppointmentResourceValues.call(this);\r\n if (!result) {\r\n return false\r\n }\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"_filterAppointmentByRRule\",\r\n value: function(appointment, min, max, startDayHour, endDayHour, firstDayOfWeek) {\r\n var recurrenceRule = appointment.recurrenceRule;\r\n var recurrenceException = appointment.recurrenceException;\r\n var allDay = appointment.allDay;\r\n var result = true;\r\n var appointmentStartDate = appointment.startDate;\r\n var appointmentEndDate = appointment.endDate;\r\n if (allDay || this._appointmentPartInInterval(appointmentStartDate, appointmentEndDate, startDayHour, endDayHour)) {\r\n var trimmedDates = this._trimDates(min, max);\r\n min = trimmedDates.min;\r\n max = new Date(trimmedDates.max.getTime() - toMs(\"minute\"))\r\n }\r\n if (recurrenceRule && !_utils2.default.getRecurrenceRule(recurrenceRule).isValid) {\r\n result = appointmentEndDate > min && appointmentStartDate <= max\r\n }\r\n if (result && _utils2.default.getRecurrenceRule(recurrenceRule).isValid) {\r\n result = _utils2.default.dateInRecurrenceRange({\r\n rule: recurrenceRule,\r\n exception: recurrenceException,\r\n start: appointmentStartDate,\r\n end: appointmentEndDate,\r\n min: min,\r\n max: max,\r\n firstDayOfWeek: firstDayOfWeek\r\n })\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"_appointmentPartInInterval\",\r\n value: function(startDate, endDate, startDayHour, endDayHour) {\r\n var apptStartDayHour = startDate.getHours();\r\n var apptEndDayHour = endDate.getHours();\r\n return apptStartDayHour <= startDayHour && apptEndDayHour <= endDayHour && apptEndDayHour >= startDayHour || apptEndDayHour >= endDayHour && apptStartDayHour <= endDayHour && apptStartDayHour >= startDayHour\r\n }\r\n }, {\r\n key: \"_createCombinedFilter\",\r\n value: function(filterOptions, timeZoneProcessor) {\r\n var dataAccessors = this._dataAccessors;\r\n var startDayHour = filterOptions.startDayHour;\r\n var endDayHour = filterOptions.endDayHour;\r\n var min = new Date(filterOptions.min);\r\n var max = new Date(filterOptions.max);\r\n var resources = filterOptions.resources;\r\n var firstDayOfWeek = filterOptions.firstDayOfWeek;\r\n var getRecurrenceException = filterOptions.recurrenceException;\r\n var that = this;\r\n return [\r\n [function(appointment) {\r\n var result = true;\r\n var startDate = new Date(dataAccessors.getter.startDate(appointment));\r\n var endDate = new Date(dataAccessors.getter.endDate(appointment));\r\n var appointmentTakesAllDay = that.appointmentTakesAllDay(appointment, startDayHour, endDayHour);\r\n var appointmentTakesSeveralDays = that.appointmentTakesSeveralDays(appointment);\r\n var isAllDay = dataAccessors.getter.allDay(appointment);\r\n var appointmentIsLong = appointmentTakesSeveralDays || appointmentTakesAllDay;\r\n var useRecurrence = _type2.default.isDefined(dataAccessors.getter.recurrenceRule);\r\n var recurrenceRule;\r\n if (useRecurrence) {\r\n recurrenceRule = dataAccessors.getter.recurrenceRule(appointment)\r\n }\r\n if (resources && resources.length) {\r\n result = that._filterAppointmentByResources(appointment, resources)\r\n }\r\n if (appointmentTakesAllDay && false === filterOptions.allDay) {\r\n result = false\r\n }\r\n var startDateTimeZone = dataAccessors.getter.startDateTimeZone(appointment);\r\n var endDateTimeZone = dataAccessors.getter.endDateTimeZone(appointment);\r\n var comparableStartDate = timeZoneProcessor(startDate, startDateTimeZone);\r\n var comparableEndDate = timeZoneProcessor(endDate, endDateTimeZone);\r\n if (result && useRecurrence) {\r\n var recurrenceException = getRecurrenceException ? getRecurrenceException(appointment) : dataAccessors.getter.recurrenceException(appointment);\r\n result = that._filterAppointmentByRRule({\r\n startDate: comparableStartDate,\r\n endDate: comparableEndDate,\r\n recurrenceRule: recurrenceRule,\r\n recurrenceException: recurrenceException,\r\n allDay: appointmentTakesAllDay\r\n }, min, max, startDayHour, endDayHour, firstDayOfWeek)\r\n }\r\n if (result && comparableEndDate < min && appointmentIsLong && !isAllDay && (!useRecurrence || useRecurrence && !recurrenceRule)) {\r\n result = false\r\n }\r\n if (result && void 0 !== startDayHour) {\r\n result = compareDateWithStartDayHour(comparableStartDate, comparableEndDate, startDayHour, appointmentTakesAllDay, appointmentTakesSeveralDays)\r\n }\r\n if (result && void 0 !== endDayHour) {\r\n result = compareDateWithEndDayHour(comparableStartDate, comparableEndDate, startDayHour, endDayHour, appointmentTakesAllDay, appointmentTakesSeveralDays, max, min)\r\n }\r\n if (result && useRecurrence && !recurrenceRule) {\r\n if (comparableEndDate < min && !isAllDay) {\r\n result = false\r\n }\r\n }\r\n return result\r\n }]\r\n ]\r\n }\r\n }, {\r\n key: \"setDataSource\",\r\n value: function(dataSource) {\r\n this._dataSource = dataSource;\r\n this.cleanModelState();\r\n this._initStoreChangeHandlers();\r\n this._filterMaker && this._filterMaker.clearRegistry()\r\n }\r\n }, {\r\n key: \"_initStoreChangeHandlers\",\r\n value: function() {\r\n var _this3 = this;\r\n var dataSource = this._dataSource;\r\n var store = null === dataSource || void 0 === dataSource ? void 0 : dataSource.store();\r\n if (store) {\r\n store.on(\"updating\", function(newItem) {\r\n _this3._updatedAppointment = newItem\r\n });\r\n store.on(\"push\", function(pushItems) {\r\n var items = dataSource.items();\r\n var keyName = store.key();\r\n pushItems.forEach(function(pushItem) {\r\n var itemExists = 0 !== items.filter(function(item) {\r\n return item[keyName] === pushItem.key\r\n }).length;\r\n if (itemExists) {\r\n _this3._updatedAppointmentKeys.push({\r\n key: keyName,\r\n value: pushItem.key\r\n })\r\n } else {\r\n items.push(pushItem.data)\r\n }\r\n })\r\n })\r\n }\r\n }\r\n }, {\r\n key: \"getUpdatedAppointment\",\r\n value: function() {\r\n return this._updatedAppointment\r\n }\r\n }, {\r\n key: \"getUpdatedAppointmentKeys\",\r\n value: function() {\r\n return this._updatedAppointmentKeys\r\n }\r\n }, {\r\n key: \"cleanModelState\",\r\n value: function() {\r\n this._updatedAppointment = null;\r\n this._updatedAppointmentKeys = []\r\n }\r\n }, {\r\n key: \"setDataAccessors\",\r\n value: function(dataAccessors) {\r\n this._dataAccessors = dataAccessors;\r\n this._filterMaker = new FilterMaker(dataAccessors)\r\n }\r\n }, {\r\n key: \"filterByDate\",\r\n value: function(min, max, remoteFiltering, dateSerializationFormat) {\r\n if (!this._dataSource) {\r\n return\r\n }\r\n var trimmedDates = this._trimDates(min, max);\r\n if (!this._filterMaker.isRegistered()) {\r\n this._createFilter(trimmedDates.min, trimmedDates.max, remoteFiltering, dateSerializationFormat)\r\n } else {\r\n this._filterMaker.make(\"date\", [trimmedDates.min, trimmedDates.max]);\r\n if (this._dataSource.filter() && this._dataSource.filter().length > 1) {\r\n var userFilter = this._serializeRemoteFilter([this._dataSource.filter()[1]], dateSerializationFormat);\r\n this._filterMaker.make(\"user\", userFilter)\r\n }\r\n if (remoteFiltering) {\r\n this._dataSource.filter(this._combineRemoteFilter(dateSerializationFormat))\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"_combineRemoteFilter\",\r\n value: function(dateSerializationFormat) {\r\n var combinedFilter = this._filterMaker.combine();\r\n return this._serializeRemoteFilter(combinedFilter, dateSerializationFormat)\r\n }\r\n }, {\r\n key: \"_serializeRemoteFilter\",\r\n value: function(filter, dateSerializationFormat) {\r\n if (!Array.isArray(filter)) {\r\n return filter\r\n }\r\n filter = (0, _extend.extend)([], filter);\r\n var startDate = this._dataAccessors.expr.startDateExpr;\r\n var endDate = this._dataAccessors.expr.endDateExpr;\r\n if (_type2.default.isString(filter[0])) {\r\n if ((0, _config2.default)().forceIsoDateParsing && filter.length > 1) {\r\n if (filter[0] === startDate || filter[0] === endDate) {\r\n filter[filter.length - 1] = _date_serialization2.default.serializeDate(new Date(filter[filter.length - 1]), dateSerializationFormat)\r\n }\r\n }\r\n }\r\n for (var i = 0; i < filter.length; i++) {\r\n filter[i] = this._serializeRemoteFilter(filter[i], dateSerializationFormat)\r\n }\r\n return filter\r\n }\r\n }, {\r\n key: \"filterLoadedAppointments\",\r\n value: function(filterOptions, timeZoneProcessor) {\r\n if (!_type2.default.isFunction(timeZoneProcessor)) {\r\n timeZoneProcessor = function(date) {\r\n return date\r\n }\r\n }\r\n var combinedFilter = this._createCombinedFilter(filterOptions, timeZoneProcessor);\r\n if (this._filterMaker.isRegistered()) {\r\n this._filterMaker.make(\"user\", void 0);\r\n var trimmedDates = this._trimDates(filterOptions.min, filterOptions.max);\r\n this._filterMaker.make(\"date\", [trimmedDates.min, trimmedDates.max, true]);\r\n var dateFilter = this.customizeDateFilter(this._filterMaker.combine(), timeZoneProcessor);\r\n combinedFilter.push([dateFilter])\r\n }\r\n return (0, _query2.default)(this._dataSource.items()).filter(combinedFilter).toArray()\r\n }\r\n }, {\r\n key: \"_trimDates\",\r\n value: function(min, max) {\r\n var minCopy = _date2.default.trimTime(new Date(min));\r\n var maxCopy = _date2.default.trimTime(new Date(max));\r\n maxCopy.setDate(maxCopy.getDate() + 1);\r\n return {\r\n min: minCopy,\r\n max: maxCopy\r\n }\r\n }\r\n }, {\r\n key: \"hasAllDayAppointments\",\r\n value: function(items, startDayHour, endDayHour) {\r\n if (!items) {\r\n return false\r\n }\r\n var that = this;\r\n var result = false;\r\n _iterator2.default.each(items, function(index, item) {\r\n if (that.appointmentTakesAllDay(item, startDayHour, endDayHour)) {\r\n result = true;\r\n return false\r\n }\r\n });\r\n return result\r\n }\r\n }, {\r\n key: \"appointmentTakesAllDay\",\r\n value: function(appointment, startDayHour, endDayHour) {\r\n var dataAccessors = this._dataAccessors;\r\n var startDate = dataAccessors.getter.startDate(appointment);\r\n var endDate = dataAccessors.getter.endDate(appointment);\r\n var allDay = dataAccessors.getter.allDay(appointment);\r\n return allDay || this._appointmentHasAllDayDuration(startDate, endDate, startDayHour, endDayHour)\r\n }\r\n }, {\r\n key: \"_appointmentHasAllDayDuration\",\r\n value: function(startDate, endDate, startDayHour, endDayHour) {\r\n startDate = new Date(startDate);\r\n endDate = new Date(endDate);\r\n var dayDuration = 24;\r\n var appointmentDurationInHours = this._getAppointmentDurationInHours(startDate, endDate);\r\n return appointmentDurationInHours >= dayDuration || this._appointmentHasShortDayDuration(startDate, endDate, startDayHour, endDayHour)\r\n }\r\n }, {\r\n key: \"_appointmentHasShortDayDuration\",\r\n value: function(startDate, endDate, startDayHour, endDayHour) {\r\n var appointmentDurationInHours = this._getAppointmentDurationInHours(startDate, endDate);\r\n var shortDayDurationInHours = endDayHour - startDayHour;\r\n return appointmentDurationInHours >= shortDayDurationInHours && startDate.getHours() === startDayHour && endDate.getHours() === endDayHour\r\n }\r\n }, {\r\n key: \"_getAppointmentDurationInHours\",\r\n value: function(startDate, endDate) {\r\n return (endDate.getTime() - startDate.getTime()) / toMs(\"hour\")\r\n }\r\n }, {\r\n key: \"appointmentTakesSeveralDays\",\r\n value: function(appointment) {\r\n var dataAccessors = this._dataAccessors;\r\n var startDate = new Date(dataAccessors.getter.startDate(appointment));\r\n var endDate = new Date(dataAccessors.getter.endDate(appointment));\r\n return !_date2.default.sameDate(startDate, endDate)\r\n }\r\n }, {\r\n key: \"customizeDateFilter\",\r\n value: function(dateFilter, timeZoneProcessor) {\r\n var _this4 = this;\r\n var currentFilter = (0, _extend.extend)(true, [], dateFilter);\r\n return function(appointment) {\r\n var startDate = new Date(_this4._dataAccessors.getter.startDate(appointment));\r\n var endDate = new Date(_this4._dataAccessors.getter.endDate(appointment));\r\n endDate = _this4.fixWrongEndDate(appointment, startDate, endDate);\r\n appointment = (0, _extend.extend)(true, {}, appointment);\r\n var startDateTimeZone = _this4._dataAccessors.getter.startDateTimeZone(appointment);\r\n var endDateTimeZone = _this4._dataAccessors.getter.endDateTimeZone(appointment);\r\n var comparableStartDate = timeZoneProcessor(startDate, startDateTimeZone);\r\n var comparableEndDate = timeZoneProcessor(endDate, endDateTimeZone);\r\n _this4._dataAccessors.setter.startDate(appointment, comparableStartDate);\r\n _this4._dataAccessors.setter.endDate(appointment, comparableEndDate);\r\n return (0, _query2.default)([appointment]).filter(currentFilter).toArray().length > 0\r\n }.bind(this)\r\n }\r\n }, {\r\n key: \"fixWrongEndDate\",\r\n value: function(appointment, startDate, endDate) {\r\n if (this._isEndDateWrong(startDate, endDate)) {\r\n var isAllDay = this._dataAccessors.getter.allDay(appointment);\r\n endDate = this._calculateAppointmentEndDate(isAllDay, startDate);\r\n this._dataAccessors.setter.endDate(appointment, endDate)\r\n }\r\n return endDate\r\n }\r\n }, {\r\n key: \"_calculateAppointmentEndDate\",\r\n value: function(isAllDay, startDate) {\r\n if (isAllDay) {\r\n return _date2.default.setToDayEnd(new Date(startDate))\r\n }\r\n return new Date(startDate.getTime() + this._baseAppointmentDuration * toMs(\"minute\"))\r\n }\r\n }, {\r\n key: \"_isEndDateWrong\",\r\n value: function(startDate, endDate) {\r\n return !endDate || isNaN(endDate.getTime()) || startDate.getTime() > endDate.getTime()\r\n }\r\n }, {\r\n key: \"add\",\r\n value: function(data, tz) {\r\n var _this5 = this;\r\n return this._dataSource.store().insert(data).done(function() {\r\n _this5._dataSource.load()\r\n }.bind(this))\r\n }\r\n }, {\r\n key: \"update\",\r\n value: function(target, data) {\r\n var _this6 = this;\r\n var key = this._getStoreKey(target);\r\n var d = new _deferred.Deferred;\r\n this._dataSource.store().update(key, data).done(function() {\r\n _this6._dataSource.load().done(d.resolve).fail(d.reject)\r\n }).fail(d.reject);\r\n return d.promise()\r\n }\r\n }, {\r\n key: \"remove\",\r\n value: function(target) {\r\n var _this7 = this;\r\n var key = this._getStoreKey(target);\r\n return this._dataSource.store().remove(key).done(function() {\r\n _this7._dataSource.load()\r\n }.bind(this))\r\n }\r\n }]);\r\n return AppointmentModel\r\n}();\r\nmodule.exports = AppointmentModel;\r\n","/**\r\n * DevExtreme (ui/scheduler/timezones/ui.scheduler.timezone_editor.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar $ = require(\"../../../core/renderer\");\r\nvar registerComponent = require(\"../../../core/component_registrator\");\r\nvar extend = require(\"../../../core/utils/extend\").extend;\r\nvar publisherMixin = require(\"../ui.scheduler.publisher_mixin\");\r\nvar messageLocalization = require(\"../../../localization/message\");\r\nvar Editor = require(\"../../editor/editor\");\r\nvar SelectBox = require(\"../../select_box\");\r\nvar TIMEZONE_EDITOR_CLASS = \"dx-timezone-editor\";\r\nvar TIMEZONE_DISPLAY_NAME_SELECTBOX_CLASS = \"dx-timezone-display-name\";\r\nvar TIMEZONE_IANA_ID_SELECTBOX_CLASS = \"dx-timezone-iana-id\";\r\nvar SchedulerTimezoneEditor = Editor.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: null\r\n })\r\n },\r\n _createComponent: function(element, name, config) {\r\n config = config || {};\r\n this._extendConfig(config, {\r\n readOnly: this.option(\"readOnly\")\r\n });\r\n return this.callBase(element, name, config)\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TIMEZONE_EDITOR_CLASS)\r\n },\r\n _render: function() {\r\n this._renderDisplayNameEditor();\r\n this._renderIanaIdEditor();\r\n this.callBase()\r\n },\r\n _renderDisplayNameEditor: function() {\r\n var noTzTitle = messageLocalization.format(\"dxScheduler-noTimezoneTitle\");\r\n var value = this.invoke(\"getTimezoneDisplayNameById\", this.option(\"value\")) || noTzTitle;\r\n this._displayNameEditor = this._renderSelectBox(TIMEZONE_DISPLAY_NAME_SELECTBOX_CLASS, {\r\n items: [noTzTitle].concat(this.invoke(\"getTimezonesDisplayName\")),\r\n value: value,\r\n onValueChanged: function(e) {\r\n this._processDisplayNameChanging(e.value)\r\n }.bind(this)\r\n })\r\n },\r\n _renderIanaIdEditor: function() {\r\n this._ianaIdEditor = this._renderSelectBox(TIMEZONE_IANA_ID_SELECTBOX_CLASS, {\r\n items: this._idsDataSource(),\r\n value: this.option(\"value\"),\r\n onValueChanged: function(e) {\r\n this.option(\"value\", e.value)\r\n }.bind(this),\r\n valueExpr: \"id\",\r\n displayExpr: \"displayName\",\r\n disabled: this._calculateIanaIdEditorDisabledState()\r\n })\r\n },\r\n _renderSelectBox: function(cssClass, options) {\r\n options = options || {};\r\n var $element = $(\"
\").addClass(cssClass);\r\n var selectBox = this._createComponent($element, SelectBox, options);\r\n this.$element().append($element);\r\n return selectBox\r\n },\r\n _idsDataSource: function() {\r\n return this.invoke(\"getSimilarTimezones\", this.option(\"value\"))\r\n },\r\n _calculateIanaIdEditorDisabledState: function() {\r\n return !this.option(\"value\")\r\n },\r\n _processDisplayNameChanging: function(displayName) {\r\n var tzIds = this.invoke(\"getTimezonesIdsByDisplayName\", displayName);\r\n var tzId = tzIds.length ? tzIds[0].id : null;\r\n this.option(\"value\", tzId);\r\n this._ianaIdEditor.option({\r\n value: tzId,\r\n items: this._idsDataSource(tzIds),\r\n disabled: this._calculateIanaIdEditorDisabledState()\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n switch (args.name) {\r\n case \"value\":\r\n this._ianaIdEditor.option({\r\n value: value,\r\n items: this._idsDataSource()\r\n });\r\n if (value) {\r\n this._displayNameEditor.option(\"value\", this.invoke(\"getTimezoneDisplayNameById\", value))\r\n } else {\r\n this._displayNameEditor.option(\"value\", messageLocalization.format(\"dxScheduler-noTimezoneTitle\"))\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"readOnly\":\r\n this._displayNameEditor && this._displayNameEditor.option(\"readOnly\", value);\r\n this._ianaIdEditor && this._ianaIdEditor.option(\"readOnly\", value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(publisherMixin);\r\nregisterComponent(\"dxSchedulerTimezoneEditor\", {}, SchedulerTimezoneEditor);\r\nmodule.exports = SchedulerTimezoneEditor;\r\n","/**\r\n * DevExtreme (ui/radio_group.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nmodule.exports = require(\"./radio_group/radio_group\");\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/scheduler/timezones/ui.scheduler.timezones_data.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar displayNames = [\"(UTC) Monrovia, Reykjavik\", \"(UTC+03:00) Nairobi\", \"(UTC+02:00) Harare, Pretoria\", \"(UTC+01:00) West Central Africa\", \"(UTC+02:00) Athens, Bucharest\", \"(UTC+03:00) Kuwait, Riyadh\", \"(UTC+07:00) Bangkok, Hanoi, Jakarta\", \"(UTC+04:00) Abu Dhabi, Muscat\", \"(UTC+12:00) Auckland, Wellington\", \"(UTC-03:00) City of Buenos Aires\", \"(UTC-05:00) Bogota, Lima, Quito, Rio Branco\", \"(UTC-08:00) Pacific Time (US & Canada)\", \"(UTC-05:00) Indiana (East)\", \"(UTC-06:00) Central Time (US & Canada)\", \"(UTC-05:00) Eastern Time (US & Canada)\", \"(UTC-07:00) Mountain Time (US & Canada)\", \"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan\", \"(UTC+05:00) Ashgabat, Tashkent\", \"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi\", \"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi\", \"(UTC+06:00) Dhaka\", \"(UTC+06:00) Astana\", \"(UTC+05:45) Kathmandu\", \"(UTC+02:00) Jerusalem\", \"(UTC+08:00) Kuala Lumpur, Singapore\", \"(UTC+08:00) Ulaanbaatar\", \"(UTC) Dublin, Edinburgh, Lisbon, London\", \"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna\", \"(UTC+10:00) Canberra, Melbourne, Sydney\", \"(UTC+09:30) Darwin\", \"(UTC+10:00) Brisbane\", \"(UTC+09:30) Adelaide\", \"(UTC+10:00) Hobart\", \"(UTC+08:00) Perth\", \"(UTC-02:00) Coordinated Universal Time-02\", \"(UTC-03:00) Brasilia\", \"(UTC-04:00) Atlantic Time (Canada)\", \"(UTC-06:00) Saskatchewan\", \"(UTC-03:30) Newfoundland\", \"(UTC-03:00) Santiago\", \"(UTC+02:00) Cairo\", \"UTC\", \"(UTC+03:30) Tehran\", \"(UTC+09:00) Osaka, Sapporo, Tokyo\", \"(UTC+12:00) Coordinated Universal Time+12\", \"(UTC+02:00) Tripoli\", \"(UTC-07:00) Chihuahua, La Paz, Mazatlan\", \"(UTC-06:00) Guadalajara, Mexico City, Monterrey\", \"(UTC+11:00) Solomon Is., New Caledonia\", \"(UTC-11:00) Coordinated Universal Time-11\", \"(UTC+10:00) Guam, Port Moresby\", \"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb\", \"(UTC+08:00) Taipei\", \"(UTC+09:00) Seoul\", \"(UTC+02:00) Istanbul\", \"(UTC-09:00) Alaska\", \"(UTC-07:00) Arizona\", \"(UTC-10:00) Hawaii\", \"(UTC+03:00) Moscow, St. Petersburg, Volgograd\", \"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius\", \"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague\", \"(UTC) Casablanca\", \"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris\", \"(UTC+01:00) Windhoek\", \"(UTC-03:00) Cayenne, Fortaleza\", \"(UTC-04:00) Asuncion\", \"(UTC-03:00) Salvador\", \"(UTC-06:00) Central America\", \"(UTC-04:00) Cuiaba\", \"(UTC-04:30) Caracas\", \"(UTC-03:00) Greenland\", \"(UTC-03:00) Montevideo\", \"(UTC-08:00) Baja California\", \"(UTC-01:00) Azores\", \"(UTC+02:00) Amman\", \"(UTC+10:00) Magadan\", \"(UTC+03:00) Baghdad\", \"(UTC+04:00) Baku\", \"(UTC+02:00) Beirut\", \"(UTC+09:00) Yakutsk\", \"(UTC+05:30) Sri Jayawardenepura\", \"(UTC+02:00) Damascus\", \"(UTC+08:00) Irkutsk\", \"(UTC+04:30) Kabul\", \"(UTC+05:00) Islamabad, Karachi\", \"(UTC+07:00) Krasnoyarsk\", \"(UTC+06:00) Novosibirsk\", \"(UTC+06:30) Yangon (Rangoon)\", \"(UTC+10:00) Vladivostok\", \"(UTC+04:00) Tbilisi\", \"(UTC+05:00) Ekaterinburg\", \"(UTC+04:00) Yerevan\", \"(UTC-01:00) Cabo Verde Is.\", \"(UTC-12:00) International Date Line West\", \"(UTC+13:00) Nuku'alofa\", \"(UTC+14:00) Kiritimati Island\", \"(UTC+02:00) Kaliningrad\", \"(UTC+04:00) Port Louis\", \"(UTC+13:00) Samoa\", \"(UTC+12:00) Fiji\", \"(UTC+8:45) Eucla\", \"(UTC+10:30) Lord Howe Island\"];\r\nvar timezones = [{\r\n id: \"Africa/Bamako\",\r\n title: \"Bamako\",\r\n winIndex: 0,\r\n link: 185\r\n}, {\r\n id: \"Africa/Banjul\",\r\n title: \"Banjul\",\r\n winIndex: 0,\r\n link: 185\r\n}, {\r\n id: \"Africa/Conakry\",\r\n title: \"Conakry\",\r\n winIndex: 0,\r\n link: 185\r\n}, {\r\n id: \"Africa/Dakar\",\r\n title: \"Dakar\",\r\n winIndex: 0,\r\n link: 185\r\n}, {\r\n id: \"Africa/Freetown\",\r\n title: \"Freetown\",\r\n winIndex: 0,\r\n link: 185\r\n}, {\r\n id: \"Africa/Lome\",\r\n title: \"Lome\",\r\n winIndex: 0,\r\n link: 185\r\n}, {\r\n id: \"Africa/Nouakchott\",\r\n title: \"Nouakchott\",\r\n winIndex: 0,\r\n link: 185\r\n}, {\r\n id: \"Africa/Ouagadougou\",\r\n title: \"Ouagadougou\",\r\n winIndex: 0,\r\n link: 185\r\n}, {\r\n id: \"Africa/Sao_Tome\",\r\n title: \"Sao Tome\",\r\n winIndex: 0,\r\n link: 185\r\n}, {\r\n id: \"Atlantic/St_Helena\",\r\n title: \"St Helena\",\r\n winIndex: 0,\r\n link: 185\r\n}, {\r\n id: \"Africa/Addis_Ababa\",\r\n title: \"Addis Ababa\",\r\n winIndex: 1,\r\n link: 198\r\n}, {\r\n id: \"Africa/Asmara\",\r\n title: \"Asmara\",\r\n winIndex: 1,\r\n link: 198\r\n}, {\r\n id: \"Africa/Dar_es_Salaam\",\r\n title: \"Dar es Salaam\",\r\n winIndex: 1,\r\n link: 198\r\n}, {\r\n id: \"Africa/Djibouti\",\r\n title: \"Djibouti\",\r\n winIndex: 1,\r\n link: 198\r\n}, {\r\n id: \"Africa/Kampala\",\r\n title: \"Kampala\",\r\n winIndex: 1,\r\n link: 198\r\n}, {\r\n id: \"Africa/Mogadishu\",\r\n title: \"Mogadishu\",\r\n winIndex: 1,\r\n link: 198\r\n}, {\r\n id: \"Indian/Antananarivo\",\r\n title: \"Antananarivo\",\r\n winIndex: 1,\r\n link: 198\r\n}, {\r\n id: \"Indian/Comoro\",\r\n title: \"Comoro\",\r\n winIndex: 1,\r\n link: 198\r\n}, {\r\n id: \"Indian/Mayotte\",\r\n title: \"Mayotte\",\r\n winIndex: 1,\r\n link: 198\r\n}, {\r\n id: \"Africa/Blantyre\",\r\n title: \"Blantyre\",\r\n winIndex: 2,\r\n link: 196\r\n}, {\r\n id: \"Africa/Bujumbura\",\r\n title: \"Bujumbura\",\r\n winIndex: 2,\r\n link: 196\r\n}, {\r\n id: \"Africa/Gaborone\",\r\n title: \"Gaborone\",\r\n winIndex: 2,\r\n link: 196\r\n}, {\r\n id: \"Africa/Harare\",\r\n title: \"Harare\",\r\n winIndex: 2,\r\n link: 196\r\n}, {\r\n id: \"Africa/Kigali\",\r\n title: \"Kigali\",\r\n winIndex: 2,\r\n link: 196\r\n}, {\r\n id: \"Africa/Lubumbashi\",\r\n title: \"Lubumbashi\",\r\n winIndex: 2,\r\n link: 196\r\n}, {\r\n id: \"Africa/Lusaka\",\r\n title: \"Lusaka\",\r\n winIndex: 2,\r\n link: 196\r\n}, {\r\n id: \"Africa/Bangui\",\r\n title: \"Bangui\",\r\n winIndex: 3,\r\n link: 195\r\n}, {\r\n id: \"Africa/Brazzaville\",\r\n title: \"Brazzaville\",\r\n winIndex: 3,\r\n link: 195\r\n}, {\r\n id: \"Africa/Douala\",\r\n title: \"Douala\",\r\n winIndex: 3,\r\n link: 195\r\n}, {\r\n id: \"Africa/Kinshasa\",\r\n title: \"Kinshasa\",\r\n winIndex: 3,\r\n link: 195\r\n}, {\r\n id: \"Africa/Libreville\",\r\n title: \"Libreville\",\r\n winIndex: 3,\r\n link: 195\r\n}, {\r\n id: \"Africa/Luanda\",\r\n title: \"Luanda\",\r\n winIndex: 3,\r\n link: 195\r\n}, {\r\n id: \"Africa/Malabo\",\r\n title: \"Malabo\",\r\n winIndex: 3,\r\n link: 195\r\n}, {\r\n id: \"Africa/Niamey\",\r\n title: \"Niamey\",\r\n winIndex: 3,\r\n link: 195\r\n}, {\r\n id: \"Africa/Porto-Novo\",\r\n title: \"Porto-Novo\",\r\n winIndex: 3,\r\n link: 195\r\n}, {\r\n id: \"Africa/Maseru\",\r\n title: \"Maseru\",\r\n winIndex: 2,\r\n link: 193\r\n}, {\r\n id: \"Africa/Mbabane\",\r\n title: \"Mbabane\",\r\n winIndex: 2,\r\n link: 193\r\n}, {\r\n id: \"Africa/Juba\",\r\n title: \"Juba\",\r\n winIndex: 1,\r\n link: 194\r\n}, {\r\n id: \"Europe/Nicosia\",\r\n title: \"Nicosia\",\r\n winIndex: 4,\r\n link: 381\r\n}, {\r\n id: \"Asia/Bahrain\",\r\n title: \"Bahrain\",\r\n winIndex: 5,\r\n link: 388\r\n}, {\r\n id: \"Asia/Aden\",\r\n title: \"Aden\",\r\n winIndex: 5,\r\n link: 391\r\n}, {\r\n id: \"Asia/Kuwait\",\r\n title: \"Kuwait\",\r\n winIndex: 5,\r\n link: 391\r\n}, {\r\n id: \"Asia/Phnom_Penh\",\r\n title: \"Phnom Penh\",\r\n winIndex: 6,\r\n link: 349\r\n}, {\r\n id: \"Asia/Vientiane\",\r\n title: \"Vientiane\",\r\n winIndex: 6,\r\n link: 349\r\n}, {\r\n id: \"Asia/Muscat\",\r\n title: \"Muscat\",\r\n winIndex: 7,\r\n link: 359\r\n}, {\r\n id: \"Antarctica/McMurdo\",\r\n title: \"McMurdo\",\r\n winIndex: 8,\r\n link: 511\r\n}, {\r\n id: \"Africa/Asmera\",\r\n title: \"Asmera\",\r\n winIndex: 1,\r\n link: 198\r\n}, {\r\n id: \"Africa/Timbuktu\",\r\n title: \"Timbuktu\",\r\n winIndex: 0,\r\n link: 185\r\n}, {\r\n id: \"America/Buenos_Aires\",\r\n title: \"Buenos Aires\",\r\n winIndex: 9,\r\n link: 206\r\n}, {\r\n id: \"America/Catamarca\",\r\n title: \"Catamarca\",\r\n winIndex: 9,\r\n link: 207\r\n}, {\r\n id: \"America/Coral_Harbour\",\r\n title: \"Coral Harbour\",\r\n winIndex: 10,\r\n link: 219\r\n}, {\r\n id: \"America/Cordoba\",\r\n title: \"Cordoba\",\r\n winIndex: 9,\r\n link: 208\r\n}, {\r\n id: \"America/Ensenada\",\r\n title: \"Ensenada\",\r\n winIndex: 11,\r\n link: 325\r\n}, {\r\n id: \"America/Indianapolis\",\r\n title: \"Indianapolis\",\r\n winIndex: 12\r\n}, {\r\n id: \"America/Jujuy\",\r\n title: \"Jujuy\",\r\n winIndex: 9,\r\n link: 209\r\n}, {\r\n id: \"America/Knox_IN\",\r\n title: \"Knox IN\",\r\n winIndex: 13,\r\n link: 261\r\n}, {\r\n id: \"America/Louisville\",\r\n title: \"Louisville\",\r\n winIndex: 14,\r\n link: 272\r\n}, {\r\n id: \"America/Mendoza\",\r\n title: \"Mendoza\",\r\n winIndex: 9,\r\n link: 211\r\n}, {\r\n id: \"America/Porto_Acre\",\r\n title: \"Porto Acre\",\r\n winIndex: 10,\r\n link: 312\r\n}, {\r\n id: \"America/Shiprock\",\r\n title: \"Shiprock\",\r\n winIndex: 15,\r\n link: 244\r\n}, {\r\n id: \"America/Virgin\",\r\n title: \"Virgin\",\r\n winIndex: 16,\r\n link: 303\r\n}, {\r\n id: \"Antarctica/South_Pole\",\r\n title: \"South Pole\",\r\n winIndex: 8,\r\n link: 511\r\n}, {\r\n id: \"Asia/Ashkhabad\",\r\n title: \"Ashkhabad\",\r\n winIndex: 17,\r\n link: 346\r\n}, {\r\n id: \"Asia/Calcutta\",\r\n title: \"Calcutta\",\r\n winIndex: 18,\r\n link: 373\r\n}, {\r\n id: \"Asia/Chongqing\",\r\n title: \"Chongqing\",\r\n winIndex: 19,\r\n link: 395\r\n}, {\r\n id: \"Asia/Chungking\",\r\n title: \"Chungking\",\r\n winIndex: 19,\r\n link: 395\r\n}, {\r\n id: \"Asia/Dacca\",\r\n title: \"Dacca\",\r\n winIndex: 20,\r\n link: 357\r\n}, {\r\n id: \"Asia/Harbin\",\r\n title: \"Harbin\",\r\n winIndex: 19,\r\n link: 395\r\n}, {\r\n id: \"Asia/Kashgar\",\r\n title: \"Kashgar\",\r\n winIndex: 21,\r\n link: 405\r\n}, {\r\n id: \"Asia/Katmandu\",\r\n title: \"Katmandu\",\r\n winIndex: 22,\r\n link: 371\r\n}, {\r\n id: \"Asia/Macao\",\r\n title: \"Macao\",\r\n winIndex: 19,\r\n link: 377\r\n}, {\r\n id: \"Asia/Saigon\",\r\n title: \"Saigon\",\r\n winIndex: 6,\r\n link: 361\r\n}, {\r\n id: \"Asia/Tel_Aviv\",\r\n title: \"Tel Aviv\",\r\n winIndex: 23,\r\n link: 367\r\n}, {\r\n id: \"Asia/Thimbu\",\r\n title: \"Thimbu\",\r\n winIndex: 20,\r\n link: 402\r\n}, {\r\n id: \"Asia/Ujung_Pandang\",\r\n title: \"Ujung Pandang\",\r\n winIndex: 24,\r\n link: 379\r\n}, {\r\n id: \"Asia/Ulan_Bator\",\r\n title: \"Ulan Bator\",\r\n winIndex: 25,\r\n link: 404\r\n}, {\r\n id: \"Atlantic/Faeroe\",\r\n title: \"Faeroe\",\r\n winIndex: 26,\r\n link: 415\r\n}, {\r\n id: \"Atlantic/Jan_Mayen\",\r\n title: \"Jan Mayen\",\r\n winIndex: 27,\r\n link: 483\r\n}, {\r\n id: \"Australia/ACT\",\r\n title: \"ACT\",\r\n winIndex: 28,\r\n link: 429\r\n}, {\r\n id: \"Australia/Canberra\",\r\n title: \"Canberra\",\r\n winIndex: 28,\r\n link: 429\r\n}, {\r\n id: \"Australia/NSW\",\r\n title: \"NSW\",\r\n winIndex: 28,\r\n link: 429\r\n}, {\r\n id: \"Australia/North\",\r\n title: \"North\",\r\n winIndex: 29,\r\n link: 424\r\n}, {\r\n id: \"Australia/Queensland\",\r\n title: \"Queensland\",\r\n winIndex: 30,\r\n link: 421\r\n}, {\r\n id: \"Australia/South\",\r\n title: \"South\",\r\n winIndex: 31,\r\n link: 420\r\n}, {\r\n id: \"Australia/Tasmania\",\r\n title: \"Tasmania\",\r\n winIndex: 32,\r\n link: 425\r\n}, {\r\n id: \"Australia/Victoria\",\r\n title: \"Victoria\",\r\n winIndex: 28,\r\n link: 427\r\n}, {\r\n id: \"Australia/West\",\r\n title: \"West\",\r\n winIndex: 33,\r\n link: 428\r\n}, {\r\n id: \"Australia/Yancowinna\",\r\n title: \"Yancowinna\",\r\n winIndex: 31,\r\n link: 422\r\n}, {\r\n id: \"Brazil/Acre\",\r\n title: \"Acre\",\r\n winIndex: 10,\r\n link: 312\r\n}, {\r\n id: \"Brazil/DeNoronha\",\r\n title: \"DeNoronha\",\r\n winIndex: 34,\r\n link: 294\r\n}, {\r\n id: \"Brazil/East\",\r\n title: \"East\",\r\n winIndex: 35,\r\n link: 317\r\n}, {\r\n id: \"Brazil/West\",\r\n title: \"West\",\r\n winIndex: 16,\r\n link: 279\r\n}, {\r\n id: \"Canada/Atlantic\",\r\n title: \"Atlantic\",\r\n winIndex: 36,\r\n link: 257\r\n}, {\r\n id: \"Canada/Central\",\r\n title: \"Central\",\r\n winIndex: 13,\r\n link: 329\r\n}, {\r\n id: \"Canada/East-Saskatchewan\",\r\n title: \"East-Saskatchewan\",\r\n winIndex: 37,\r\n link: 310\r\n}, {\r\n id: \"Canada/Eastern\",\r\n title: \"Eastern\",\r\n winIndex: 14,\r\n link: 326\r\n}, {\r\n id: \"Canada/Mountain\",\r\n title: \"Mountain\",\r\n winIndex: 15,\r\n link: 246\r\n}, {\r\n id: \"Canada/Newfoundland\",\r\n title: \"Newfoundland\",\r\n winIndex: 38,\r\n link: 320\r\n}, {\r\n id: \"Canada/Pacific\",\r\n title: \"Pacific\",\r\n winIndex: 11,\r\n link: 327\r\n}, {\r\n id: \"Canada/Saskatchewan\",\r\n title: \"Saskatchewan\",\r\n winIndex: 37,\r\n link: 310\r\n}, {\r\n id: \"Canada/Yukon\",\r\n title: \"Yukon\",\r\n winIndex: 11,\r\n link: 328\r\n}, {\r\n id: \"Chile/Continental\",\r\n title: \"Continental\",\r\n winIndex: 39,\r\n link: 315\r\n}, {\r\n id: \"Cuba\",\r\n title: \"Cuba\",\r\n winIndex: 14,\r\n link: 258\r\n}, {\r\n id: \"Egypt\",\r\n title: \"Egypt\",\r\n winIndex: 40,\r\n link: 189\r\n}, {\r\n id: \"Eire\",\r\n title: \"Eire\",\r\n winIndex: 26,\r\n link: 469\r\n}, {\r\n id: \"Europe/Belfast\",\r\n title: \"Belfast\",\r\n winIndex: 26,\r\n link: 476\r\n}, {\r\n id: \"Europe/Tiraspol\",\r\n title: \"Tiraspol\",\r\n winIndex: 4,\r\n link: 467\r\n}, {\r\n id: \"GB\",\r\n title: \"GB\",\r\n winIndex: 26,\r\n link: 476\r\n}, {\r\n id: \"GB-Eire\",\r\n title: \"GB-Eire\",\r\n winIndex: 26,\r\n link: 476\r\n}, {\r\n id: \"GMT+0\",\r\n title: \"GMT+0\",\r\n winIndex: 41,\r\n link: 150\r\n}, {\r\n id: \"GMT-0\",\r\n title: \"GMT-0\",\r\n winIndex: 41,\r\n link: 150\r\n}, {\r\n id: \"GMT0\",\r\n title: \"GMT0\",\r\n winIndex: 41,\r\n link: 150\r\n}, {\r\n id: \"Greenwich\",\r\n title: \"Greenwich\",\r\n winIndex: 41,\r\n link: 150\r\n}, {\r\n id: \"Hongkong\",\r\n title: \"Hongkong\",\r\n winIndex: 19,\r\n link: 362\r\n}, {\r\n id: \"Iceland\",\r\n title: \"Iceland\",\r\n winIndex: 0,\r\n link: 417\r\n}, {\r\n id: \"Iran\",\r\n title: \"Iran\",\r\n winIndex: 42,\r\n link: 401\r\n}, {\r\n id: \"Israel\",\r\n title: \"Israel\",\r\n winIndex: 23,\r\n link: 367\r\n}, {\r\n id: \"Jamaica\",\r\n title: \"Jamaica\",\r\n winIndex: 10,\r\n link: 270\r\n}, {\r\n id: \"Japan\",\r\n title: \"Japan\",\r\n winIndex: 43,\r\n link: 403\r\n}, {\r\n id: \"Kwajalein\",\r\n title: \"Kwajalein\",\r\n winIndex: 44,\r\n link: 524\r\n}, {\r\n id: \"Libya\",\r\n title: \"Libya\",\r\n winIndex: 45,\r\n link: 200\r\n}, {\r\n id: \"Mexico/BajaNorte\",\r\n title: \"BajaNorte\",\r\n winIndex: 11,\r\n link: 325\r\n}, {\r\n id: \"Mexico/BajaSur\",\r\n title: \"BajaSur\",\r\n winIndex: 46,\r\n link: 282\r\n}, {\r\n id: \"Mexico/General\",\r\n title: \"General\",\r\n winIndex: 47,\r\n link: 285\r\n}, {\r\n id: \"NZ\",\r\n title: \"NZ\",\r\n winIndex: 8,\r\n link: 511\r\n}, {\r\n id: \"Navajo\",\r\n title: \"Navajo\",\r\n winIndex: 15,\r\n link: 244\r\n}, {\r\n id: \"PRC\",\r\n title: \"PRC\",\r\n winIndex: 19,\r\n link: 395\r\n}, {\r\n id: \"Pacific/Ponape\",\r\n title: \"Ponape\",\r\n winIndex: 48,\r\n link: 532\r\n}, {\r\n id: \"Pacific/Samoa\",\r\n title: \"Samoa\",\r\n winIndex: 49,\r\n link: 530\r\n}, {\r\n id: \"Pacific/Truk\",\r\n title: \"Truk\",\r\n winIndex: 50,\r\n link: 512\r\n}, {\r\n id: \"Poland\",\r\n title: \"Poland\",\r\n winIndex: 51,\r\n link: 498\r\n}, {\r\n id: \"Portugal\",\r\n title: \"Portugal\",\r\n winIndex: 26,\r\n link: 475\r\n}, {\r\n id: \"ROC\",\r\n title: \"ROC\",\r\n winIndex: 52,\r\n link: 398\r\n}, {\r\n id: \"ROK\",\r\n title: \"ROK\",\r\n winIndex: 53,\r\n link: 394\r\n}, {\r\n id: \"Singapore\",\r\n title: \"Singapore\",\r\n winIndex: 24,\r\n link: 396\r\n}, {\r\n id: \"Turkey\",\r\n title: \"Turkey\",\r\n winIndex: 54,\r\n link: 472\r\n}, {\r\n id: \"US/Alaska\",\r\n title: \"Alaska\",\r\n winIndex: 55,\r\n link: 203\r\n}, {\r\n id: \"US/Arizona\",\r\n title: \"Arizona\",\r\n winIndex: 56,\r\n link: 302\r\n}, {\r\n id: \"US/Central\",\r\n title: \"Central\",\r\n winIndex: 13,\r\n link: 235\r\n}, {\r\n id: \"US/Eastern\",\r\n title: \"Eastern\",\r\n winIndex: 14,\r\n link: 291\r\n}, {\r\n id: \"US/Hawaii\",\r\n title: \"Hawaii\",\r\n winIndex: 57,\r\n link: 521\r\n}, {\r\n id: \"US/Indiana-Starke\",\r\n title: \"Indiana-Starke\",\r\n winIndex: 13,\r\n link: 261\r\n}, {\r\n id: \"US/Michigan\",\r\n title: \"Michigan\",\r\n winIndex: 14,\r\n link: 245\r\n}, {\r\n id: \"US/Mountain\",\r\n title: \"Mountain\",\r\n winIndex: 15,\r\n link: 244\r\n}, {\r\n id: \"US/Pacific\",\r\n title: \"Pacific\",\r\n winIndex: 11,\r\n link: 276\r\n}, {\r\n id: \"US/Samoa\",\r\n title: \"Samoa\",\r\n winIndex: 49,\r\n link: 530\r\n}, {\r\n id: \"W-SU\",\r\n title: \"W-SU\",\r\n winIndex: 58,\r\n link: 482\r\n}, {\r\n id: \"GMT\",\r\n title: \"GMT\",\r\n winIndex: 41,\r\n link: 150\r\n}, {\r\n id: \"Etc/Greenwich\",\r\n title: \"Greenwich\",\r\n winIndex: 41,\r\n link: 150\r\n}, {\r\n id: \"Etc/GMT-0\",\r\n title: \"GMT-0\",\r\n winIndex: 41,\r\n link: 150\r\n}, {\r\n id: \"Etc/GMT+0\",\r\n title: \"GMT+0\",\r\n winIndex: 41,\r\n offsets: [0],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT0\",\r\n title: \"GMT0\",\r\n winIndex: 41,\r\n link: 150\r\n}, {\r\n id: \"Europe/Jersey\",\r\n title: \"Jersey\",\r\n winIndex: 26,\r\n link: 476\r\n}, {\r\n id: \"Europe/Guernsey\",\r\n title: \"Guernsey\",\r\n winIndex: 26,\r\n link: 476\r\n}, {\r\n id: \"Europe/Isle_of_Man\",\r\n title: \"Isle of Man\",\r\n winIndex: 26,\r\n link: 476\r\n}, {\r\n id: \"Europe/Mariehamn\",\r\n title: \"Mariehamn\",\r\n winIndex: 59,\r\n link: 471\r\n}, {\r\n id: \"Europe/Busingen\",\r\n title: \"Busingen\",\r\n winIndex: 27,\r\n link: 500\r\n}, {\r\n id: \"Europe/Vatican\",\r\n title: \"Vatican\",\r\n winIndex: 27,\r\n link: 487\r\n}, {\r\n id: \"Europe/San_Marino\",\r\n title: \"San Marino\",\r\n winIndex: 27,\r\n link: 487\r\n}, {\r\n id: \"Europe/Vaduz\",\r\n title: \"Vaduz\",\r\n winIndex: 27,\r\n link: 500\r\n}, {\r\n id: \"Arctic/Longyearbyen\",\r\n title: \"Longyearbyen\",\r\n winIndex: 27,\r\n link: 483\r\n}, {\r\n id: \"Europe/Ljubljana\",\r\n title: \"Ljubljana\",\r\n winIndex: 60,\r\n link: 462\r\n}, {\r\n id: \"Europe/Podgorica\",\r\n title: \"Podgorica\",\r\n winIndex: 60,\r\n link: 462\r\n}, {\r\n id: \"Europe/Sarajevo\",\r\n title: \"Sarajevo\",\r\n winIndex: 60,\r\n link: 462\r\n}, {\r\n id: \"Europe/Skopje\",\r\n title: \"Skopje\",\r\n winIndex: 60,\r\n link: 462\r\n}, {\r\n id: \"Europe/Zagreb\",\r\n title: \"Zagreb\",\r\n winIndex: 60,\r\n link: 462\r\n}, {\r\n id: \"Europe/Bratislava\",\r\n title: \"Bratislava\",\r\n winIndex: 60,\r\n link: 485\r\n}, {\r\n id: \"Asia/Istanbul\",\r\n title: \"Istanbul\",\r\n winIndex: 54,\r\n link: 472\r\n}, {\r\n id: \"Pacific/Johnston\",\r\n title: \"Johnston\",\r\n winIndex: 57,\r\n link: 521\r\n}, {\r\n id: \"US/Pacific-New\",\r\n title: \"Pacific-New\",\r\n winIndex: 11,\r\n link: 276\r\n}, {\r\n id: \"America/Aruba\",\r\n title: \"Aruba\",\r\n winIndex: 16,\r\n link: 240\r\n}, {\r\n id: \"America/Lower_Princes\",\r\n title: \"Lower Princes\",\r\n winIndex: 16,\r\n link: 240\r\n}, {\r\n id: \"America/Kralendijk\",\r\n title: \"Kralendijk\",\r\n winIndex: 16,\r\n link: 240\r\n}, {\r\n id: \"America/Anguilla\",\r\n title: \"Anguilla\",\r\n winIndex: 16,\r\n link: 303\r\n}, {\r\n id: \"America/Dominica\",\r\n title: \"Dominica\",\r\n winIndex: 16,\r\n link: 303\r\n}, {\r\n id: \"America/Grenada\",\r\n title: \"Grenada\",\r\n winIndex: 16,\r\n link: 303\r\n}, {\r\n id: \"America/Guadeloupe\",\r\n title: \"Guadeloupe\",\r\n winIndex: 16,\r\n link: 303\r\n}, {\r\n id: \"America/Marigot\",\r\n title: \"Marigot\",\r\n winIndex: 16,\r\n link: 303\r\n}, {\r\n id: \"America/Montserrat\",\r\n title: \"Montserrat\",\r\n winIndex: 16,\r\n link: 303\r\n}, {\r\n id: \"America/St_Barthelemy\",\r\n title: \"St Barthelemy\",\r\n winIndex: 16,\r\n link: 303\r\n}, {\r\n id: \"America/St_Kitts\",\r\n title: \"St Kitts\",\r\n winIndex: 16,\r\n link: 303\r\n}, {\r\n id: \"America/St_Lucia\",\r\n title: \"St Lucia\",\r\n winIndex: 16,\r\n link: 303\r\n}, {\r\n id: \"America/St_Thomas\",\r\n title: \"St Thomas\",\r\n winIndex: 16,\r\n link: 303\r\n}, {\r\n id: \"America/St_Vincent\",\r\n title: \"St Vincent\",\r\n winIndex: 16,\r\n link: 303\r\n}, {\r\n id: \"America/Tortola\",\r\n title: \"Tortola\",\r\n winIndex: 16,\r\n link: 303\r\n}, {\r\n id: \"Africa/Abidjan\",\r\n title: \"Abidjan\",\r\n winIndex: 0,\r\n offsets: [-.2688888888888889, 0],\r\n offsetIndices: \"01\",\r\n untils: \"-u9rgl4|Infinity\"\r\n}, {\r\n id: \"Africa/Accra\",\r\n title: \"Accra\",\r\n winIndex: 0,\r\n offsets: [-.014444444444444446, 0, .3333333333333333],\r\n offsetIndices: \"012121212121212121212121212121212121212121212121\",\r\n untils: \"-r507yk|1e3pak|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|cjvlc|681qo|clq9c|681qo|cjvlc|681qo|cjvlc|681qo|Infinity\"\r\n}, {\r\n id: \"Africa/Algiers\",\r\n title: \"Algiers\",\r\n winIndex: 3,\r\n offsets: [.15583333333333332, 0, 1, 2],\r\n offsetIndices: \"0121212121212121232321212122321212\",\r\n untils: \"-uozn3l|2qx1nl|5luo0|8y800|a4tc0|7vc00|auqo0|7idc0|b7pc0|6sg00|cyo00|7ayo0|53c00|9idxc0|3i040|51mw0|253uk0|9o2k0|92040|8l3s0|jutc0|4uy840|3rdzw0|46xc00|7x6o0|2xco40|8n180|7x9g0|9d440|kiqg0|9d440|9q2s0|9cyk0|Infinity\"\r\n}, {\r\n id: \"Africa/Bissau\",\r\n title: \"Bissau\",\r\n winIndex: 0,\r\n offsets: [-1.038888888888889, -1, 0],\r\n offsetIndices: \"012\",\r\n untils: \"-u9reg4|wvoyk4|Infinity\"\r\n}, {\r\n id: \"Africa/Cairo\",\r\n title: \"Cairo\",\r\n winIndex: 40,\r\n offsets: [2, 3],\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-fdls80|40d80|a31g0|7x3w0|a4w40|aqyk0|80ys0|b07w0|7tk40|b07w0|8jhg0|a8fw0|60go40|7el80|awo40|7v980|awqw0|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7tk40|ayd80|7tk40|b07w0|7tk40|ayd80|7tk40|ayd80|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|f9x80|3i040|eluk0|462s0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|b5rw0|7m5g0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|awik0|7ves0|awik0|7ves0|aqvs0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7k580|b5xg0|6u7w0|bvus0|6h980|c8tg0|64ak0|cyqs0|5anw0|1jms0|12t80|1w22s0|25p80|1sw40|2vmk0|Infinity\"\r\n}, {\r\n id: \"Africa/Casablanca\",\r\n title: \"Casablanca\",\r\n winIndex: 61,\r\n offsets: [-.5055555555555555, 0, 1],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-tblt9g|di7nxg|3huk0|51k40|2znuk0|2dp9g0|776k0|8nt2s0|657w0|3ifxg0|3jp80|va040|4qak0|e1ms0|7pp80|cnms0|3afw0|2xi840|xqqk0|bp56s0|4qak0|e1ms0|45x80|d2g40|51ek0|c8tg0|64ak0|e1sc0|47uo0|1leo0|23xc0|asw00|3lmo0|1qyo0|40g00|7x6o0|4mo00|1stc0|4deo0|7x6o0|3ylc0|1stc0|51hc0|7x6o0|3lmo0|1stc0|5reo0|7k800|2vpc0|25s00|64dc0|7k800|2iqo0|1stc0|6uao0|7x6o0|1stc0|1stc0|779c0|7x6o0|12w00|1stc0|7x6o0|7x6o0|pxc0|1stc0|8n400|9q000|902o0|902o0|9q000|8n400|a2yo0|8a5c0|afxc0|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|afxc0|8a5c0|9q000|Infinity\"\r\n}, {\r\n id: \"Africa/Ceuta\",\r\n title: \"Ceuta\",\r\n winIndex: 62,\r\n offsets: [0, 1, 2],\r\n offsetIndices: \"010101010101010101010121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-qyiys0|7x3w0|2vt440|8so00|st1c0|8n400|9q000|902o0|a2yo0|902o0|k69g40|657w0|3ifxg0|3jp80|va040|4qak0|e1ms0|7pp80|cnms0|3afw0|2xi840|129us0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Africa/El_Aaiun\",\r\n title: \"El Aaiun\",\r\n winIndex: 61,\r\n offsets: [-.88, -1, 0, 1],\r\n offsetIndices: \"01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-isdxk0|m2g0c0|vek0|4qak0|e1ms0|7pp80|cnms0|3afw0|fke5g0|4qak0|e1ms0|45x80|d2g40|51ek0|c8tg0|64ak0|e1sc0|47uo0|1leo0|23xc0|asw00|3lmo0|1qyo0|40g00|7x6o0|4mo00|1stc0|4deo0|7x6o0|3ylc0|1stc0|51hc0|7x6o0|3lmo0|1stc0|5reo0|7k800|2vpc0|25s00|64dc0|7k800|2iqo0|1stc0|6uao0|7x6o0|1stc0|1stc0|779c0|7x6o0|12w00|1stc0|7x6o0|7x6o0|pxc0|1stc0|8n400|9q000|902o0|902o0|9q000|8n400|a2yo0|8a5c0|afxc0|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|afxc0|8a5c0|9q000|Infinity\"\r\n}, {\r\n id: \"Africa/Johannesburg\",\r\n title: \"Johannesburg\",\r\n winIndex: 2,\r\n offsets: [1.5, 2, 3],\r\n offsetIndices: \"012121\",\r\n untils: \"-yvtdi0|kn7o60|9cyk0|9d440|9cyk0|Infinity\"\r\n}, {\r\n id: \"Africa/Khartoum\",\r\n title: \"Khartoum\",\r\n winIndex: 1,\r\n offsets: [2.1688888888888886, 2, 3],\r\n offsetIndices: \"01212121212121212121212121212121212\",\r\n untils: \"-kcrsow|kixv4w|8l6k0|a4w40|8n180|a6qs0|8n180|a31g0|8ovw0|a16s0|8qqk0|9zc40|8sl80|9xhg0|8wak0|9ts40|8y580|a4w40|8n180|a31g0|8ovw0|a16s0|8sl80|9xhg0|8ufw0|9vms0|8wak0|9ts40|8y580|a4w40|8ovw0|a16s0|8qqk0|7frw40|Infinity\"\r\n}, {\r\n id: \"Africa/Lagos\",\r\n title: \"Lagos\",\r\n winIndex: 3,\r\n offsets: [.22666666666666666, 1],\r\n offsetIndices: \"01\",\r\n untils: \"-q9qbao|Infinity\"\r\n}, {\r\n id: \"Africa/Maputo\",\r\n title: \"Maputo\",\r\n winIndex: 2,\r\n offsets: [2.1722222222222225, 2],\r\n offsetIndices: \"01\",\r\n untils: \"-yvtfd8|Infinity\"\r\n}, {\r\n id: \"Africa/Monrovia\",\r\n title: \"Monrovia\",\r\n winIndex: 0,\r\n offsets: [-.7188888888888889, -.7416666666666667, 0],\r\n offsetIndices: \"012\",\r\n untils: \"-qj6zc4|rqyyqa|Infinity\"\r\n}, {\r\n id: \"Africa/Nairobi\",\r\n title: \"Nairobi\",\r\n winIndex: 1,\r\n offsets: [2.454444444444445, 3, 2.5, 2.75],\r\n offsetIndices: \"01231\",\r\n untils: \"-lnsetg|s8mhg|57v020|afrrb0|Infinity\"\r\n}, {\r\n id: \"Africa/Ndjamena\",\r\n title: \"Ndjamena\",\r\n winIndex: 3,\r\n offsets: [1.0033333333333334, 1, 2],\r\n offsetIndices: \"0121\",\r\n untils: \"-u9rk4c|zdk5cc|7iak0|Infinity\"\r\n}, {\r\n id: \"Africa/Tripoli\",\r\n title: \"Tripoli\",\r\n winIndex: 45,\r\n offsets: [.8788888888888889, 1, 2],\r\n offsetIndices: \"012121212121212121212121212122122\",\r\n untils: \"-q3gfrw|gl6ajw|422c0|xado0|4bbo0|wrpg0|4s580|1kdpg0|c05bw0|4mqs0|9et80|9d440|9et80|9eys0|9et80|9mdg0|95jw0|9io40|9cyk0|99es0|9et80|9eys0|9et80|9d440|9et80|b2840|3cf3w0|9kis0|9et80|7vqyw0|75eo0|asw00|Infinity\"\r\n}, {\r\n id: \"Africa/Tunis\",\r\n title: \"Tunis\",\r\n winIndex: 3,\r\n offsets: [.15583333333333332, 1, 2],\r\n offsetIndices: \"0121212121212121212121212121212121\",\r\n untils: \"-uozn3l|enxevl|b5uo0|53c00|u8w00|7x9g0|c8w80|7k800|z3w0|ew40|8bx80|9d440|9nx00|925o0|8l100|gi3440|7k800|b9k00|7vc00|51mw00|5ytc0|9d1c0|9d1c0|b9k00|7thc0|7m0tc0|7tk40|93us0|b5uo0|7k800|b5uo0|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Africa/Windhoek\",\r\n title: \"Windhoek\",\r\n winIndex: 63,\r\n offsets: [1.5, 2, 3, 1],\r\n offsetIndices: \"012113131313131313131313131313131313131313131313131313131313131313131313131313131313131313131\",\r\n untils: \"-yvtdi0|kn7o60|9cyk0|oj2nw0|23tmo0|7xf00|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7x9g0|ast80|7x9g0|Infinity\"\r\n}, {\r\n id: \"America/Anchorage\",\r\n title: \"Anchorage\",\r\n winIndex: 55,\r\n offsets: [-10, -9, -8],\r\n offsetIndices: \"011001010101010101010101010101010111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-ek1qo0|1tyx80|2e400|b7yik0|12y080|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1l940|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Antigua\",\r\n title: \"Antigua\",\r\n winIndex: 16,\r\n link: 303\r\n}, {\r\n id: \"America/Araguaina\",\r\n title: \"Araguaina\",\r\n winIndex: 64,\r\n offsets: [-3.2133333333333334, -3, -2],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121\",\r\n untils: \"-t85j2o|99k8mo|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|2yl440|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|51udg0|64ak0|Infinity\"\r\n}, {\r\n id: \"America/Argentina/Buenos_Aires\",\r\n title: \"Buenos Aires\",\r\n winIndex: 9,\r\n offsets: [-4.28, -4, -3, -2],\r\n offsetIndices: \"0121212121212121212121212121212121212121212323232323232223232\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvus0|6u7w0|bvus0|776k0|3fidg0|7thc0|430lc0|3yik0|b5xg0|7k580|Infinity\"\r\n}, {\r\n id: \"America/Argentina/Catamarca\",\r\n title: \"Catamarca\",\r\n winIndex: 9,\r\n offsets: [-4.28, -4, -3, -2],\r\n offsetIndices: \"0121212121212121212121212121212121212121212323232313232221232\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|3fidg0|7thc0|27s800|z9g0|1u93w0|3yik0|Infinity\"\r\n}, {\r\n id: \"America/Argentina/Cordoba\",\r\n title: \"Cordoba\",\r\n winIndex: 9,\r\n offsets: [-4.28, -4, -3, -2],\r\n offsetIndices: \"0121212121212121212121212121212121212121212323232313232223232\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|3fidg0|7thc0|430lc0|3yik0|b5xg0|7k580|Infinity\"\r\n}, {\r\n id: \"America/Argentina/Jujuy\",\r\n title: \"Jujuy\",\r\n winIndex: 9,\r\n offsets: [-4.28, -4, -3, -2],\r\n offsetIndices: \"01212121212121212121212121212121212121212123232312132322232\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|c8w80|776k0|ag040|7k2g0|bvus0|776k0|3fidg0|7thc0|430lc0|3yik0|Infinity\"\r\n}, {\r\n id: \"America/Argentina/La_Rioja\",\r\n title: \"La Rioja\",\r\n winIndex: 9,\r\n offsets: [-4.28, -4, -3, -2],\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323123232221232\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6qik0|3g880|8jbw0|6u7w0|bvus0|776k0|3fidg0|7thc0|27s800|z9g0|1u93w0|3yik0|Infinity\"\r\n}, {\r\n id: \"America/Argentina/Mendoza\",\r\n title: \"Mendoza\",\r\n winIndex: 9,\r\n offsets: [-4.28, -4, -3, -2],\r\n offsetIndices: \"0121212121212121212121212121212121212121212323231212132221232\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bktk0|71mk0|bqas0|73h80|bvus0|773s0|3fidg0|7thc0|27bk00|6hes0|1p7mk0|3yik0|Infinity\"\r\n}, {\r\n id: \"America/Argentina/Rio_Gallegos\",\r\n title: \"Rio Gallegos\",\r\n winIndex: 9,\r\n offsets: [-4.28, -4, -3, -2],\r\n offsetIndices: \"0121212121212121212121212121212121212121212323232323232221232\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvus0|6u7w0|bvus0|776k0|3fidg0|7thc0|27s800|z9g0|1u93w0|3yik0|Infinity\"\r\n}, {\r\n id: \"America/Argentina/Salta\",\r\n title: \"Salta\",\r\n winIndex: 9,\r\n offsets: [-4.28, -4, -3, -2],\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323132322232\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|3fidg0|7thc0|430lc0|3yik0|Infinity\"\r\n}, {\r\n id: \"America/Argentina/San_Juan\",\r\n title: \"San Juan\",\r\n winIndex: 9,\r\n offsets: [-4.28, -4, -3, -2],\r\n offsetIndices: \"01212121212121212121212121212121212121212123232323123232221232\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6qik0|3g880|8jbw0|6u7w0|bvus0|776k0|3fidg0|7thc0|27qdc0|2txg0|1sgak0|3yik0|Infinity\"\r\n}, {\r\n id: \"America/Argentina/San_Luis\",\r\n title: \"San Luis\",\r\n winIndex: 9,\r\n offsets: [-4.28, -4, -3, -2],\r\n offsetIndices: \"01212121212121212121212121212121212121212123232312122212321212\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|7pp80|b2aw0|71mk0|4qg40|4conw0|7thc0|27qdc0|2txg0|1sgak0|14nw0|2gys0|b5xg0|7k580|b5xg0|Infinity\"\r\n}, {\r\n id: \"America/Argentina/Tucuman\",\r\n title: \"Tucuman\",\r\n winIndex: 9,\r\n offsets: [-4.28, -4, -3, -2],\r\n offsetIndices: \"012121212121212121212121212121212121212121232323231323222123232\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvxk0|6u540|bvus0|776k0|3fidg0|7thc0|27s800|mas0|1um2k0|3yik0|b5xg0|7k580|Infinity\"\r\n}, {\r\n id: \"America/Argentina/Ushuaia\",\r\n title: \"Ushuaia\",\r\n winIndex: 9,\r\n offsets: [-4.28, -4, -3, -2],\r\n offsetIndices: \"0121212121212121212121212121212121212121212323232323232221232\",\r\n untils: \"-px7ys0|5iv8k0|67zw0|a4w40|73h80|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|cls40|66580|cls40|66580|cls40|66580|cls40|67zw0|6a040|hy7w0|6a040|xovw0|3uys0|18nbw0|b0dg0|8ve2k0|3uys0|3yik0|bqas0|71mk0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|7m2qs0|4tzw0|biw40|776k0|bvus0|6u7w0|bvus0|6u7w0|bvus0|776k0|3fidg0|7thc0|27oio0|12ys0|1u93w0|3yik0|Infinity\"\r\n}, {\r\n id: \"America/Asuncion\",\r\n title: \"Asuncion\",\r\n winIndex: 65,\r\n offsets: [-3.844444444444444, -4, -3],\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\",\r\n untils: \"-jy93zk|ldwofk|s4vw0|s6w40|7tek0|b0dg0|7rjw0|b0dg0|7rjw0|b0dg0|9cyk0|9eys0|9et80|9eys0|9cyk0|9eys0|9cyk0|9eys0|9cyk0|9eys0|9et80|9eys0|9cyk0|9eys0|9cyk0|9eys0|9cyk0|9eys0|9et80|9eys0|9cyk0|ahus0|8a2k0|9eys0|9cyk0|9o840|7k580|b7s40|93p80|9gtg0|7nuk0|b42s0|7lzw0|b5xg0|7tek0|b9ms0|776k0|biw40|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|9cyk0|7kas0|b5rw0|7x9g0|ast80|a31g0|7k580|b5xg0|7k580|b5xg0|7k580|biw40|776k0|biw40|776k0|biw40|8zzw0|905g0|9px80|905g0|9px80|9d440|8n180|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|a31g0|8n180|a31g0|8n180|a31g0|Infinity\"\r\n}, {\r\n id: \"America/Atikokan\",\r\n title: \"Atikokan\",\r\n winIndex: 10,\r\n offsets: [-6, -5],\r\n offsetIndices: \"0101111\",\r\n untils: \"-qzov40|a2vw0|bfxjw0|pmdk0|1tz8c0|2dsw0|Infinity\"\r\n}, {\r\n id: \"America/Bahia\",\r\n title: \"Bahia\",\r\n winIndex: 66,\r\n offsets: [-2.5677777777777777, -3, -2],\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-t85kv8|99kaf8|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|cyqs0|64ak0|cls40|5rbw0|dbpg0|51ek0|dbpg0|6h980|c8tg0|6h980|c8tg0|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|4irc40|6u7w0|Infinity\"\r\n}, {\r\n id: \"America/Bahia_Banderas\",\r\n title: \"Bahia Banderas\",\r\n winIndex: 47,\r\n offsets: [-7.016666666666667, -7, -6, -8, -5],\r\n offsetIndices: \"0121212131212121212121212121212121212142424242424242424242424242424242424242424242424242424242\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|591h80|3ie2s0|axvpg0|dpgw40|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|asqg0|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\"\r\n}, {\r\n id: \"America/Barbados\",\r\n title: \"Barbados\",\r\n winIndex: 16,\r\n offsets: [-3.974722222222222, -4, -3],\r\n offsetIndices: \"00121212121\",\r\n untils: \"-o0aiaj|46b400|npv1mj|5rbw0|a31g0|8n180|a31g0|8n180|ag040|84ik0|Infinity\"\r\n}, {\r\n id: \"America/Belem\",\r\n title: \"Belem\",\r\n winIndex: 64,\r\n offsets: [-3.232222222222222, -3, -2],\r\n offsetIndices: \"012121212121212121212121212121\",\r\n untils: \"-t85j0s|99k8ks|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|Infinity\"\r\n}, {\r\n id: \"America/Belize\",\r\n title: \"Belize\",\r\n winIndex: 67,\r\n offsets: [-5.88, -6, -5.5, -5],\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121213131\",\r\n untils: \"-u52ic0|3edkc0|6ham0|c8s20|6u9a0|bvte0|6u9a0|bvte0|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|bvte0|6u9a0|bvte0|6u9a0|bvte0|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|bvte0|6u9a0|bvte0|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|bvte0|6u9a0|bvte0|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|bvte0|6u9a0|g2t2q0|3e580|4mcys0|2vmk0|Infinity\"\r\n}, {\r\n id: \"America/Blanc-Sablon\",\r\n title: \"Blanc-Sablon\",\r\n winIndex: 16,\r\n offsets: [-4, -3],\r\n offsetIndices: \"010110\",\r\n untils: \"-qzp0o0|a2vw0|c5jxg0|1tzdw0|2dnc0|Infinity\"\r\n}, {\r\n id: \"America/Boa_Vista\",\r\n title: \"Boa Vista\",\r\n winIndex: 16,\r\n offsets: [-4.044444444444444, -4, -3],\r\n offsetIndices: \"0121212121212121212121212121212121\",\r\n untils: \"-t85grk|99k93k|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|62xk40|7k580|biw40|cvw0|Infinity\"\r\n}, {\r\n id: \"America/Bogota\",\r\n title: \"Bogota\",\r\n winIndex: 10,\r\n offsets: [-4.937777777777778, -5, -4],\r\n offsetIndices: \"0121\",\r\n untils: \"-srdoy8|14f1hi8|ha580|Infinity\"\r\n}, {\r\n id: \"America/Boise\",\r\n title: \"Boise\",\r\n winIndex: 15,\r\n offsets: [-8, -7, -6],\r\n offsetIndices: \"0101012212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-r0emw0|ast80|7x9g0|ast80|1um840|9s7jw0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|51k40|doik0|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Cambridge_Bay\",\r\n title: \"Cambridge Bay\",\r\n winIndex: 15,\r\n offsets: [0, -7, -6, -5],\r\n offsetIndices: \"0122131212121212121212121212121212121212121212233221212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-q3gdc0|bjeec0|1tz5k0|2dvo0|a7n3w0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x6o0|ast80|ct40|7kj40|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Campo_Grande\",\r\n title: \"Campo Grande\",\r\n winIndex: 68,\r\n offsets: [-3.641111111111111, -4, -3],\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\",\r\n untils: \"-t85hvw|99ka7w|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|cyqs0|64ak0|cls40|5rbw0|dbpg0|51ek0|dbpg0|6h980|c8tg0|6h980|c8tg0|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|cls40|64ak0|dfes0|5nmk0|c8tg0|6h980|dbpg0|5rbw0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6u7w0|c8tg0|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|cls40|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6u7w0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|cls40|64ak0|cls40|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6u7w0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|Infinity\"\r\n}, {\r\n id: \"America/Cancun\",\r\n title: \"Cancun\",\r\n winIndex: 47,\r\n offsets: [-5.7844444444444445, -6, -5, -4],\r\n offsetIndices: \"0123232321212121212121212121212121212121212\",\r\n untils: \"-p1u7c0|vauo00|7ggw40|afuk0|8a840|afuk0|8a840|64ak0|4bms0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|51k40|Infinity\"\r\n}, {\r\n id: \"America/Caracas\",\r\n title: \"Caracas\",\r\n winIndex: 69,\r\n offsets: [-4.461111111111111, -4.5, -4],\r\n offsetIndices: \"01212\",\r\n untils: \"-u7lcxw|rlo83w|meoxm0|4dps00|Infinity\"\r\n}, {\r\n id: \"America/Cayenne\",\r\n title: \"Cayenne\",\r\n winIndex: 64,\r\n offsets: [-3.488888888888889, -4, -3],\r\n offsetIndices: \"012\",\r\n untils: \"-uj7yb4|tcw6r4|Infinity\"\r\n}, {\r\n id: \"America/Cayman\",\r\n title: \"Cayman\",\r\n winIndex: 10,\r\n link: 299\r\n}, {\r\n id: \"America/Chicago\",\r\n title: \"Chicago\",\r\n winIndex: 13,\r\n offsets: [-6, -5],\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bvus0|776k0|7kas0|b5rw0|9d440|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|7x9g0|dbjw0|8a840|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|6w840|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Chihuahua\",\r\n title: \"Chihuahua\",\r\n winIndex: 46,\r\n offsets: [-7.072222222222222, -7, -6, -5],\r\n offsetIndices: \"0121212323221212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|xes2s0|afuk0|8a840|afuk0|8aaw0|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\"\r\n}, {\r\n id: \"America/Costa_Rica\",\r\n title: \"Costa Rica\",\r\n winIndex: 67,\r\n offsets: [-5.60361111111111, -6, -5],\r\n offsetIndices: \"0121212121\",\r\n untils: \"-pjw8fn|ubtl3n|51ek0|doo40|51ek0|5jso40|8drw0|acas0|2xh80|Infinity\"\r\n}, {\r\n id: \"America/Creston\",\r\n title: \"Creston\",\r\n winIndex: 56,\r\n offsets: [-7, -8],\r\n offsetIndices: \"010\",\r\n untils: \"-rshz80|vbus0|Infinity\"\r\n}, {\r\n id: \"America/Cuiaba\",\r\n title: \"Cuiaba\",\r\n winIndex: 68,\r\n offsets: [-3.738888888888889, -4, -3],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\",\r\n untils: \"-t85hm4|99k9y4|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|cyqs0|64ak0|cls40|5rbw0|dbpg0|51ek0|dbpg0|6h980|c8tg0|6h980|c8tg0|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|w5hg0|5nmk0|c8tg0|6h980|dbpg0|5rbw0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6u7w0|c8tg0|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|cls40|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6u7w0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|cls40|64ak0|cls40|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6u7w0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|Infinity\"\r\n}, {\r\n id: \"America/Curacao\",\r\n title: \"Curacao\",\r\n winIndex: 16,\r\n offsets: [-4.59638888888889, -4.5, -4],\r\n offsetIndices: \"012\",\r\n untils: \"-u7lckd|rlo7qd|Infinity\"\r\n}, {\r\n id: \"America/Danmarkshavn\",\r\n title: \"Danmarkshavn\",\r\n winIndex: 41,\r\n offsets: [-1.2444444444444445, -3, -2, 0],\r\n offsetIndices: \"01212121212121212121212121212121213\",\r\n untils: \"-rvusjk|x8nx3k|8zrk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|53hk0|Infinity\"\r\n}, {\r\n id: \"America/Dawson\",\r\n title: \"Dawson\",\r\n winIndex: 11,\r\n offsets: [-9, -8, -7],\r\n offsetIndices: \"0101011020121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-qzoms0|a2vw0|asys0|882c0|bmiwc0|1tz000|2e180|a7n3w0|9q000|465k00|3e2is0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Dawson_Creek\",\r\n title: \"Dawson Creek\",\r\n winIndex: 56,\r\n offsets: [-8, -7],\r\n offsetIndices: \"0101101010101010101010101010101010101010101010101010101011\",\r\n untils: \"-qzopk0|a2vw0|c5jxg0|1tz2s0|2dyg0|tj1g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|69uk0|Infinity\"\r\n}, {\r\n id: \"America/Denver\",\r\n title: \"Denver\",\r\n winIndex: 15,\r\n offsets: [-7, -6],\r\n offsetIndices: \"01010101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|2vmk0|ataw40|1tz5k0|2dvo0|a7n9g0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Detroit\",\r\n title: \"Detroit\",\r\n winIndex: 14,\r\n offsets: [-5.536388888888889, -6, -5, -4],\r\n offsetIndices: \"01233232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-xx8dyd|5eraud|dyeyk0|1tzb40|2dq40|1c9440|7x3w0|9rlhg0|71mk0|2vcg40|9cyk0|3lpg0|f4d80|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Edmonton\",\r\n title: \"Edmonton\",\r\n winIndex: 15,\r\n offsets: [-7.564444444444445, -7, -6],\r\n offsetIndices: \"01212121212121221212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-x1yazk|629ink|a2vw0|8n6s0|29ek0|h6lg0|9px80|905g0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|9l0g40|1tz5k0|2dvo0|tj1g0|7x3w0|a80840|9cyk0|s36s0|9cyk0|1b6840|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Eirunepe\",\r\n title: \"Eirunepe\",\r\n winIndex: 10,\r\n offsets: [-4.657777777777778, -5, -4],\r\n offsetIndices: \"0121212121212121212121212121212121\",\r\n untils: \"-t85f28|99ka68|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|2yy2s0|6h980|7hg2s0|2t2t80|Infinity\"\r\n}, {\r\n id: \"America/El_Salvador\",\r\n title: \"El Salvador\",\r\n winIndex: 67,\r\n offsets: [-5.946666666666667, -6, -5],\r\n offsetIndices: \"012121\",\r\n untils: \"-pkm4tc|ymao5c|7k580|b5xg0|7k580|Infinity\"\r\n}, {\r\n id: \"America/Fortaleza\",\r\n title: \"Fortaleza\",\r\n winIndex: 64,\r\n offsets: [-2.566666666666667, -3, -2],\r\n offsetIndices: \"0121212121212121212121212121212121212121\",\r\n untils: \"-t85kvc|99kafc|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|514g40|7k580|biw40|puk0|id6s0|6h980|Infinity\"\r\n}, {\r\n id: \"America/Glace_Bay\",\r\n title: \"Glace Bay\",\r\n winIndex: 36,\r\n offsets: [-3.996666666666667, -4, -3],\r\n offsetIndices: \"012122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-z94kwc|89fk8c|a2vw0|c5jxg0|1tzdw0|2dnc0|3y8g40|7x3w0|9pa5g0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Godthab\",\r\n title: \"Godthab\",\r\n winIndex: 70,\r\n offsets: [-3.448888888888889, -3, -2],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-rvumf4|x8nqz4|8zrk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"America/Goose_Bay\",\r\n title: \"Goose Bay\",\r\n winIndex: 36,\r\n offsets: [-3.5144444444444445, -2.5144444444444445, -3.5, -2.5, -4, -3, -2],\r\n offsetIndices: \"010232323232323233232323232323232323232323232323232323232324545454545454545454545454545454545454545454546454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454\",\r\n untils: \"-qzp20k|a2vw0|8kjbw0|kzjyk|7k580|b5xg0|7k580|b5xg0|7k580|biw40|776k0|biw40|7k580|b5xg0|7k580|b5xg0|1pb260|2dly0|biw40|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|biw40|7k580|ag040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|6y2s0|22420|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a2lo|afuk0|8a840|asqg0|7xc80|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8tec|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Grand_Turk\",\r\n title: \"Grand Turk\",\r\n winIndex: 16,\r\n offsets: [-5.119722222222222, -5, -4],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212122\",\r\n untils: \"-u85og1|z3brw1|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Guatemala\",\r\n title: \"Guatemala\",\r\n winIndex: 67,\r\n offsets: [-6.0344444444444445, -6, -5],\r\n offsetIndices: \"0121212121\",\r\n untils: \"-qqqskk|ss0akk|4ofw0|4tidg0|6djw0|3wwas0|8n180|7n5ms0|7x3w0|Infinity\"\r\n}, {\r\n id: \"America/Guayaquil\",\r\n title: \"Guayaquil\",\r\n winIndex: 10,\r\n offsets: [-5.233333333333333, -5],\r\n offsetIndices: \"01\",\r\n untils: \"-kcr84o|Infinity\"\r\n}, {\r\n id: \"America/Guyana\",\r\n title: \"Guyana\",\r\n winIndex: 16,\r\n offsets: [-3.8777777777777778, -3.75, -3, -4],\r\n offsetIndices: \"01123\",\r\n untils: \"-smcak8|qqnjn8|4sh9c0|81rf90|Infinity\"\r\n}, {\r\n id: \"America/Halifax\",\r\n title: \"Halifax\",\r\n winIndex: 36,\r\n offsets: [-4.24, -4, -3],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-z94k80|777go0|9et80|st9o0|a2vw0|ssyk0|5rbw0|cv1g0|69uk0|c6ys0|6kyk0|ci2s0|67zw0|ci2s0|6w2k0|bu040|7lzw0|bu040|66580|bu040|7lzw0|bu040|64ak0|cls40|5v180|cv1g0|6j3w0|c6ys0|79180|b42s0|7lzw0|b42s0|7yyk0|bu040|64ak0|dbpg0|66580|cls40|5ed80|bu040|7lzw0|b42s0|7lzw0|cjxg0|66580|bh1g0|7lzw0|b42s0|7lzw0|6uj00|1tzdw0|2dnc0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|tw040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|tw040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|1cm2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Havana\",\r\n title: \"Havana\",\r\n winIndex: 14,\r\n offsets: [-5.493333333333334, -5, -4],\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-n7762o|1icfyo|69uk0|62s040|4ofw0|e1ms0|51ek0|e1ms0|4ofw0|1fhs40|4ofw0|e1ms0|4ofw0|9s9k40|67zw0|cedg0|6h980|9o840|7yyk0|b5xg0|7k580|bvus0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|8a2k0|ag040|8bx80|ae5g0|8drw0|acas0|9cyk0|9d440|9px80|905g0|9px80|9q2s0|7x3w0|8a840|ast80|7x9g0|ast80|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|8a2k0|ag040|8a2k0|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|905g0|a2vw0|905g0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|8n400|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|7x6o0|1cm000|6uao0|bvs00|779c0|bitc0|6uao0|bvs00|779c0|bvs00|779c0|c8qo0|779c0|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|Infinity\"\r\n}, {\r\n id: \"America/Hermosillo\",\r\n title: \"Hermosillo\",\r\n winIndex: 56,\r\n offsets: [-7.397777777777778, -7, -6, -8],\r\n offsetIndices: \"0121212131212121\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|591h80|3ie2s0|axvpg0|dpgw40|afuk0|8a840|afuk0|8a840|afuk0|Infinity\"\r\n}, {\r\n id: \"America/Indiana/Indianapolis\",\r\n title: \"Indianapolis\",\r\n winIndex: 12\r\n}, {\r\n id: \"America/Indiana/Knox\",\r\n title: \"Knox\",\r\n winIndex: 13,\r\n offsets: [-6, -5],\r\n offsetIndices: \"0101011010101010101010101010101010101010101010101010101010101010101010101010101010101010111010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|tj1g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|7x3w0|asys0|7x3w0|asys0|9cyk0|9d440|9px80|9d440|9cyk0|9d440|s3180|1twas0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|7j5400|asw00|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Indiana/Marengo\",\r\n title: \"Marengo\",\r\n winIndex: 12,\r\n offsets: [-6, -5, -4],\r\n offsetIndices: \"0101011010101010101010101212121212111212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|2wsas0|7x3w0|1c9440|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|465h80|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4g00|64dc0|clmk0|fvt9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Indiana/Petersburg\",\r\n title: \"Petersburg\",\r\n winIndex: 14,\r\n offsets: [-6, -5, -4],\r\n offsetIndices: \"01010110101010101010101010101010101010101010101010111011212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|501ek0|7kas0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|sfzw0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|eu02o0|asw00|6udg0|c8nw0|6hc00|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Indiana/Tell_City\",\r\n title: \"Tell City\",\r\n winIndex: 13,\r\n offsets: [-6, -5, -4],\r\n offsetIndices: \"01010110101010101010101010101010121211010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|asys0|7x3w0|3fidg0|7x3w0|asys0|7x3w0|b5rw0|7kas0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|2lz980|9cyk0|9d440|9cyk0|ihslg0|asw00|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Indiana/Vevay\",\r\n title: \"Vevay\",\r\n winIndex: 12,\r\n offsets: [-6, -5, -4],\r\n offsetIndices: \"010101101212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|4gyis0|7txx80|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|hfzhg0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Indiana/Vincennes\",\r\n title: \"Vincennes\",\r\n winIndex: 14,\r\n offsets: [-6, -5, -4],\r\n offsetIndices: \"01010110101010101010101010101010121211011212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|asys0|7x3w0|3fidg0|7x3w0|asys0|7x3w0|b5rw0|7kas0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|2lz980|9cyk0|9d440|9cyk0|ihslg0|asw00|6udg0|c8nw0|6hc00|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Indiana/Winamac\",\r\n title: \"Winamac\",\r\n winIndex: 14,\r\n offsets: [-6, -5, -4],\r\n offsetIndices: \"01010110101010101010101010101010101010121211021212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|465h80|9cyk0|9d440|9cyk0|ihslg0|asw00|6udg0|c8l40|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Inuvik\",\r\n title: \"Inuvik\",\r\n winIndex: 15,\r\n offsets: [0, -8, -6, -7],\r\n offsetIndices: \"0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\",\r\n untils: \"-8ve5c0|6fce80|9q000|71i2w0|ipzw0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Iqaluit\",\r\n title: \"Iqaluit\",\r\n winIndex: 14,\r\n offsets: [0, -4, -5, -3, -6],\r\n offsetIndices: \"01123212121212121212121212121212121212121212142212121212121212121212121212121212121212121212121212121212121212121212121212\",\r\n untils: \"-eb6ao0|1l3h80|2dq40|a7n3w0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7xc80|ast80|7x6o0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Jamaica\",\r\n title: \"Jamaica\",\r\n winIndex: 10,\r\n offsets: [-5.119722222222222, -5, -4],\r\n offsetIndices: \"0121212121212121212121\",\r\n untils: \"-u85og1|wbl181|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|Infinity\"\r\n}, {\r\n id: \"America/Juneau\",\r\n title: \"Juneau\",\r\n winIndex: 55,\r\n offsets: [-8, -7, -9],\r\n offsetIndices: \"01101010101010101010101010001010122020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202\",\r\n untils: \"-ek1w80|1tz2s0|2dyg0|cawis0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9d1c0|9d1c0|9cyk0|9d440|9px80|905g0|9px80|1leo0|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Kentucky/Louisville\",\r\n title: \"Louisville\",\r\n winIndex: 14,\r\n offsets: [-6, -5, -4],\r\n offsetIndices: \"0101010101101010101010101010101010101121212121212111212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|sg5g0|6bp80|a98o40|7x3w0|6w840|1tz8c0|2dsw0|4s580|7tk40|gxc40|1s3bw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|4bh80|3j3xc0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4g00|64dc0|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Kentucky/Monticello\",\r\n title: \"Monticello\",\r\n winIndex: 14,\r\n offsets: [-6, -5, -4],\r\n offsetIndices: \"0101011010101010101010101010101010101010101010101010101010101010101010101121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|bs6g40|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x6o0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/La_Paz\",\r\n title: \"La Paz\",\r\n winIndex: 16,\r\n offsets: [-4.543333333333334, -3.5433333333333334, -4],\r\n offsetIndices: \"012\",\r\n untils: \"-jxzspo|84ik0|Infinity\"\r\n}, {\r\n id: \"America/Lima\",\r\n title: \"Lima\",\r\n winIndex: 10,\r\n offsets: [-5.1433333333333335, -5, -4],\r\n offsetIndices: \"0121212121212121\",\r\n untils: \"-w25lpo|fcxjlo|4ml80|93us0|9cyk0|9d440|9cyk0|nw16s0|4ml80|e5c40|4ml80|1fr1g0|4ml80|1yiys0|4ml80|Infinity\"\r\n}, {\r\n id: \"America/Los_Angeles\",\r\n title: \"Los Angeles\",\r\n winIndex: 11,\r\n offsets: [-8, -7],\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-r0emw0|ast80|7x9g0|ast80|bmtus0|1tz2s0|2dyg0|1a3c40|f2ik0|owdg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Maceio\",\r\n title: \"Maceio\",\r\n winIndex: 64,\r\n offsets: [-2.381111111111111, -3, -2],\r\n offsetIndices: \"012121212121212121212121212121212121212121\",\r\n untils: \"-t85ldw|99kaxw|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|2yl440|64ak0|1wf1g0|7k580|biw40|puk0|id6s0|6h980|Infinity\"\r\n}, {\r\n id: \"America/Managua\",\r\n title: \"Managua\",\r\n winIndex: 67,\r\n offsets: [-5.753333333333333, -6, -5],\r\n offsetIndices: \"0121212121212121\",\r\n untils: \"-ijh6oo|ka1i0o|xqqk0|24p6s0|53980|dmtg0|53980|60itw0|dq240|53es0|235h80|4beis0|8zzw0|at4c0|7x140|Infinity\"\r\n}, {\r\n id: \"America/Manaus\",\r\n title: \"Manaus\",\r\n winIndex: 16,\r\n offsets: [-4.001111111111111, -4, -3],\r\n offsetIndices: \"01212121212121212121212121212121\",\r\n untils: \"-t85gvw|99k97w|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|2yy2s0|6h980|Infinity\"\r\n}, {\r\n id: \"America/Martinique\",\r\n title: \"Martinique\",\r\n winIndex: 16,\r\n offsets: [-4.072222222222222, -4, -3],\r\n offsetIndices: \"0121\",\r\n untils: \"-umcvcs|zz5x4s|8zzw0|Infinity\"\r\n}, {\r\n id: \"America/Matamoros\",\r\n title: \"Matamoros\",\r\n winIndex: 13,\r\n offsets: [-6.666666666666667, -6, -5],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-p1u7c0|ykt480|ast80|3vppg0|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Mazatlan\",\r\n title: \"Mazatlan\",\r\n winIndex: 46,\r\n offsets: [-7.094444444444445, -7, -6, -8],\r\n offsetIndices: \"0121212131212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|591h80|3ie2s0|axvpg0|dpgw40|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\"\r\n}, {\r\n id: \"America/Menominee\",\r\n title: \"Menominee\",\r\n winIndex: 13,\r\n offsets: [-6, -5],\r\n offsetIndices: \"01010110101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|asys0|7x3w0|a7n9g0|9px80|1at9g0|2396k0|9d1c0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Merida\",\r\n title: \"Merida\",\r\n winIndex: 47,\r\n offsets: [-5.974444444444444, -6, -5],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-p1u7c0|vauo00|hoyk0|6ys0c0|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\"\r\n}, {\r\n id: \"America/Mexico_City\",\r\n title: \"Mexico City\",\r\n winIndex: 47,\r\n offsets: [-6.61, -7, -6, -5],\r\n offsetIndices: \"012121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|3knek0|776k0|rf440|5t6k0|1evk40|71mk0|30p1g0|8n180|nufxo0|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\"\r\n}, {\r\n id: \"America/Moncton\",\r\n title: \"Moncton\",\r\n winIndex: 36,\r\n offsets: [-5, -4, -3],\r\n offsetIndices: \"012121212121212121212122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-z94i40|89fhg0|a2vw0|7mqqo0|4ofw0|e1ms0|4ofw0|e1ms0|4ofw0|e1ms0|4ofw0|e1ms0|4ofw0|e1ms0|4ofw0|dmtg0|64ak0|cao40|6fek0|bkqs0|7iak0|6y5k0|1tzdw0|2dnc0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|s36s0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a2lo|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6uiyc|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Monterrey\",\r\n title: \"Monterrey\",\r\n winIndex: 47,\r\n offsets: [-6.687777777777778, -6, -5],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-p1u7c0|ykt480|ast80|3vppg0|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|Infinity\"\r\n}, {\r\n id: \"America/Montevideo\",\r\n title: \"Montevideo\",\r\n winIndex: 71,\r\n offsets: [-3.7455555555555553, -3.5, -3, -2, -2.5],\r\n offsetIndices: \"012121212121212121212121213232323232324242423243232323232323232323232323232323232323232\",\r\n untils: \"-px809g|1s8xzg|9czy0|9exe0|9czy0|9exe0|9czy0|3ydyq0|7x5a0|asxe0|7x5a0|asxe0|7x5a0|b5w20|7k6m0|b5w20|7k6m0|b5w20|7k6m0|b5w20|7x5a0|asxe0|7x5a0|6do20|7vam0|humq0|4mju0|8g9s40|8zzw0|38qs0|2inw0|2nf9g0|8zzw0|9q2s0|aunw0|7ves0|awik0|ar440|9pym0|91yq0|9pym0|91yq0|9pym0|q6mq0|5t6k0|tfc40|erfy0|xdta0|m2is0|62fw0|s6w40|ayd80|3z5s40|4ofw0|dzs40|4ofw0|bvus0|6h980|bvus0|6u7w0|c8tg0|6h980|bvus0|6u7w0|614qs0|9q2s0|a31g0|7x3w0|ag040|8a2k0|asys0|7x3w0|asys0|7x3w0|asys0|8a2k0|ag040|8a2k0|ag040|8a2k0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|Infinity\"\r\n}, {\r\n id: \"America/Montreal\",\r\n title: \"Montreal\",\r\n winIndex: 14,\r\n link: 326\r\n}, {\r\n id: \"America/Nassau\",\r\n title: \"Nassau\",\r\n winIndex: 14,\r\n offsets: [-5.158333333333333, -5, -4],\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-u6m4c6|r7u7s6|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/New_York\",\r\n title: \"New York\",\r\n winIndex: 14,\r\n offsets: [-5, -4],\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-r0ev80|ast80|7x9g0|ast80|7x9g0|b5rw0|905g0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|6w840|1tzb40|2dq40|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Nipigon\",\r\n title: \"Nipigon\",\r\n winIndex: 14,\r\n offsets: [-5, -4],\r\n offsetIndices: \"010111010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-qzoxw0|a2vw0|bfxjw0|pmdk0|1tzb40|2dq40|ewvus0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Nome\",\r\n title: \"Nome\",\r\n winIndex: 55,\r\n offsets: [-11, -10, -9, -8],\r\n offsetIndices: \"011001010101010101010101010101010122323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-ek1nw0|1tyug0|2e6s0|b7yik0|12y080|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1l6c0|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Noronha\",\r\n title: \"Noronha\",\r\n winIndex: 34,\r\n offsets: [-2.161111111111111, -2, -1],\r\n offsetIndices: \"0121212121212121212121212121212121212121\",\r\n untils: \"-t85lzw|99k8rw|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|514g40|7k580|biw40|cvw0|iq5g0|6h980|Infinity\"\r\n}, {\r\n id: \"America/North_Dakota/Beulah\",\r\n title: \"Beulah\",\r\n winIndex: 13,\r\n offsets: [-7, -6, -5],\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101011212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hc00|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/North_Dakota/Center\",\r\n title: \"Center\",\r\n winIndex: 13,\r\n offsets: [-7, -6, -5],\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101011212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a5c0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/North_Dakota/New_Salem\",\r\n title: \"New Salem\",\r\n winIndex: 13,\r\n offsets: [-7, -6, -5],\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a5c0|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Ojinaga\",\r\n title: \"Ojinaga\",\r\n winIndex: 15,\r\n offsets: [-6.961111111111111, -7, -6, -5],\r\n offsetIndices: \"0121212323221212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-p1u4k0|2u7jw0|1sgdc0|8n400|7thc0|9eys0|xes2s0|afuk0|8a840|afuk0|8aaw0|afuk0|8a840|ast80|7x9g0|ast80|9q2s0|7k580|9q2s0|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Panama\",\r\n title: \"Panama\",\r\n winIndex: 10,\r\n offsets: [-5.326666666666667, -5],\r\n offsetIndices: \"01\",\r\n untils: \"-w757vc|Infinity\"\r\n}, {\r\n id: \"America/Pangnirtung\",\r\n title: \"Pangnirtung\",\r\n winIndex: 14,\r\n offsets: [0, -4, -3, -2, -5, -6],\r\n offsetIndices: \"012213121212121212121212121212121212114141414154414141414141414141414141414141414141414141414141414141414141414141414141414\",\r\n untils: \"-pkmlc0|b0ke00|1tzdw0|2dnc0|a7n3w0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|asw00|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7xc80|ast80|7x6o0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Paramaribo\",\r\n title: \"Paramaribo\",\r\n winIndex: 64,\r\n offsets: [-3.6777777777777776, -3.6811111111111114, -3.6766666666666667, -3.5, -3],\r\n offsetIndices: \"012334\",\r\n untils: \"-usj4g8|cixc0c|5lydbk|fq7bic|4mkao0|Infinity\"\r\n}, {\r\n id: \"America/Phoenix\",\r\n title: \"Phoenix\",\r\n winIndex: 56,\r\n offsets: [-7, -6],\r\n offsetIndices: \"01010101010\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|zjedo|4olg0|9et80|bs6lmc|9cyk0|Infinity\"\r\n}, {\r\n id: \"America/Port_of_Spain\",\r\n title: \"Port of Spain\",\r\n winIndex: 16,\r\n offsets: [-4.101111111111111, -4],\r\n offsetIndices: \"01\",\r\n untils: \"-u6m79w|Infinity\"\r\n}, {\r\n id: \"America/Port-au-Prince\",\r\n title: \"Port-au-Prince\",\r\n winIndex: 14,\r\n offsets: [-4.816666666666666, -5, -4],\r\n offsetIndices: \"01212121212121212121212121212121212121212121\",\r\n untils: \"-rmk9ac|ylcf6c|8zzw0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8aaw0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|3vpjw0|ast80|7x9g0|ast80|2stv00|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Porto_Velho\",\r\n title: \"Porto Velho\",\r\n winIndex: 16,\r\n offsets: [-4.26, -4, -3],\r\n offsetIndices: \"012121212121212121212121212121\",\r\n untils: \"-t85g60|99k8i0|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|Infinity\"\r\n}, {\r\n id: \"America/Puerto_Rico\",\r\n title: \"Puerto Rico\",\r\n winIndex: 16,\r\n offsets: [-4, -3],\r\n offsetIndices: \"0110\",\r\n untils: \"-efsnk0|1ppu40|2dnc0|Infinity\"\r\n}, {\r\n id: \"America/Rainy_River\",\r\n title: \"Rainy River\",\r\n winIndex: 13,\r\n offsets: [-6, -5],\r\n offsetIndices: \"010111010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-qzov40|a2vw0|bfxjw0|pmdk0|1tz8c0|2dsw0|ewvus0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Rankin_Inlet\",\r\n title: \"Rankin Inlet\",\r\n winIndex: 13,\r\n offsets: [0, -6, -4, -5],\r\n offsetIndices: \"012131313131313131313131313131313131313131313331313131313131313131313131313131313131313131313131313131313131313131313131\",\r\n untils: \"-6s8lc0|4c6oo0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Recife\",\r\n title: \"Recife\",\r\n winIndex: 64,\r\n offsets: [-2.3266666666666667, -3, -2],\r\n offsetIndices: \"0121212121212121212121212121212121212121\",\r\n untils: \"-t85ljc|99kb3c|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|514g40|7k580|biw40|cvw0|iq5g0|6h980|Infinity\"\r\n}, {\r\n id: \"America/Regina\",\r\n title: \"Regina\",\r\n winIndex: 37,\r\n offsets: [-6.9766666666666675, -7, -6],\r\n offsetIndices: \"012121212121212121212121221212121212121212121212121212\",\r\n untils: \"-xkq9yc|6l1hmc|a2vw0|60enw0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|1b6840|9cyk0|9d440|8zzw0|9q2s0|9cyk0|9q2s0|9cyk0|9d440|9cyk0|66gc0|1tz5k0|2dvo0|a31g0|9cyk0|a31g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|tj1g0|9cyk0|9d440|Infinity\"\r\n}, {\r\n id: \"America/Resolute\",\r\n title: \"Resolute\",\r\n winIndex: 13,\r\n offsets: [0, -6, -4, -5],\r\n offsetIndices: \"012131313131313131313131313131313131313131313331313131313331313131313131313131313131313131313131313131313131313131313131\",\r\n untils: \"-bnp9c0|97nco0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Rio_Branco\",\r\n title: \"Rio Branco\",\r\n winIndex: 10,\r\n offsets: [-4.52, -5, -4],\r\n offsetIndices: \"01212121212121212121212121212121\",\r\n untils: \"-t85fg0|99kak0|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|amves0|2t2t80|Infinity\"\r\n}, {\r\n id: \"America/Santa_Isabel\",\r\n title: \"Santa Isabel\",\r\n winIndex: 72,\r\n link: 325\r\n}, {\r\n id: \"America/Santarem\",\r\n title: \"Santarem\",\r\n winIndex: 64,\r\n offsets: [-3.646666666666667, -4, -3],\r\n offsetIndices: \"0121212121212121212121212121212\",\r\n untils: \"-t85hvc|99ka7c|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5mf440|49mk0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|amves0|Infinity\"\r\n}, {\r\n id: \"America/Santiago\",\r\n title: \"Santiago\",\r\n winIndex: 39,\r\n offsets: [-4.712777777777777, -5, -4, -3],\r\n offsetIndices: \"010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\",\r\n untils: \"-vauawq|3dlssq|157b7a|f4e0q|49hzba|aye0q|7ves0|awik0|7ves0|awik0|7ves0|awik0|7ves0|ayd80|7ves0|534ik0|351g0|229zw0|2gt80|awo40|2mg00|b73400|7k580|c8tg0|6h980|a31g0|7x3w0|asys0|7x3w0|b5xg0|7k580|ag040|8a2k0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|9cyk0|9d440|7x3w0|asys0|7x3w0|b5xg0|7k580|9q2s0|8zzw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|a31g0|9px80|9q2s0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|asys0|8zzw0|9q2s0|ast80|5eis0|cyl80|6hes0|c8nw0|6udg0|bvp80|6udg0|vonw0|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|51k40|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|51k40|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|51k40|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|Infinity\"\r\n}, {\r\n id: \"America/Santo_Domingo\",\r\n title: \"Santo Domingo\",\r\n winIndex: 16,\r\n offsets: [-4.666666666666667, -5, -4, -4.5],\r\n offsetIndices: \"01213131313131212\",\r\n untils: \"-j6hz1c|hiw29c|67zw0|1dy840|62ha0|cnle0|4h2m0|elyq0|47ta0|ei9e0|4bim0|eek20|4dda0|ecpe0|dkmtg0|1stc0|Infinity\"\r\n}, {\r\n id: \"America/Sao_Paulo\",\r\n title: \"Sao Paulo\",\r\n winIndex: 35,\r\n offsets: [-3.1077777777777778, -3, -2],\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\",\r\n untils: \"-t85jd8|99k8x8|9a9c0|9io40|99980|8p65g0|6zuo0|bs2o0|67zw0|cjxg0|69uk0|cjxg0|4ml80|5k02s0|6onw0|haas0|316k0|cls40|4ml80|cls40|66580|cls40|67zw0|981s40|6u7w0|biw40|5rbw0|d0lg0|5ed80|cyqs0|5ed80|dbpg0|64ak0|cyqs0|64ak0|cls40|5rbw0|dbpg0|51ek0|dbpg0|6h980|c8tg0|6h980|c8tg0|64ak0|c8tg0|6u7w0|bxpg0|7iak0|biw40|6u7w0|biw40|7k580|biw40|6u7w0|c8tg0|6h980|dbpg0|5ed80|cls40|64ak0|dfes0|5nmk0|c8tg0|6h980|dbpg0|5rbw0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6u7w0|c8tg0|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|cls40|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6u7w0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|cls40|64ak0|cls40|64ak0|cls40|64ak0|cls40|6h980|c8tg0|6u7w0|bvus0|6h980|cls40|64ak0|cls40|6h980|c8tg0|Infinity\"\r\n}, {\r\n id: \"America/Scoresbysund\",\r\n title: \"Scoresbysund\",\r\n winIndex: 73,\r\n offsets: [-1.4644444444444444, -2, -1, 0],\r\n offsetIndices: \"0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-rvurxk|x8ntpk|902o0|9cvs0|9cyk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"America/Sitka\",\r\n title: \"Sitka\",\r\n winIndex: 55,\r\n offsets: [-8, -7, -9],\r\n offsetIndices: \"01101010101010101010101010101010122020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202\",\r\n untils: \"-ek1w80|1tz2s0|2dyg0|cawis0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1leo0|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/St_Johns\",\r\n title: \"St Johns\",\r\n winIndex: 38,\r\n offsets: [-3.5144444444444445, -2.5144444444444445, -3.5, -2.5, -1.5],\r\n offsetIndices: \"01010101010101010101010101010101010102323232323232323323232323232323232323232323232323232323232323232323232323232323232323232323232323232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-ris3ck|8bx80|ar440|a2vw0|9tjs0|53980|dkys0|9cyk0|9d440|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|9cyk0|9d440|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|9cyk0|9q2s0|8zzw0|9q2s0|8zzw0|7tmw0|1wfuk|8zzw0|a3480|7k580|b5xg0|7k580|b5xg0|7k580|biw40|776k0|biw40|7k580|b5xg0|7k580|b5xg0|1pb260|2dly0|biw40|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|biw40|7k580|ag040|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a2lo|afuk0|8a840|asqg0|7xc80|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8tec|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Swift_Current\",\r\n title: \"Swift Current\",\r\n winIndex: 37,\r\n offsets: [-7.188888888888888, -7, -6],\r\n offsetIndices: \"012122121212121212121212\",\r\n untils: \"-xkq9d4|6l1h14|a2vw0|c5jxg0|1tz5k0|2dvo0|asys0|8n180|a31g0|7x3w0|asys0|7x3w0|asys0|7x3w0|3yles0|9cyk0|s36s0|9cyk0|9d440|7x3w0|b5xg0|7k580|5j4lg0|Infinity\"\r\n}, {\r\n id: \"America/Tegucigalpa\",\r\n title: \"Tegucigalpa\",\r\n winIndex: 67,\r\n offsets: [-5.814444444444445, -6, -5],\r\n offsetIndices: \"01212121\",\r\n untils: \"-pfzh6k|yho0ik|7k580|b5xg0|7k580|96x1g0|4qak0|Infinity\"\r\n}, {\r\n id: \"America/Thule\",\r\n title: \"Thule\",\r\n winIndex: 36,\r\n offsets: [-4.585555555555556, -4, -3],\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-rvuj9g|12yzilg|9cyk0|9d440|9cyk0|9q2s0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Thunder_Bay\",\r\n title: \"Thunder Bay\",\r\n winIndex: 14,\r\n offsets: [-6, -5, -4],\r\n offsetIndices: \"0122121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-vbavc0|gr8qs0|1tzb40|2dq40|ctmlg0|9cyk0|9d440|9px80|9d440|9cyk0|s36s0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Tijuana\",\r\n title: \"Tijuana\",\r\n winIndex: 11,\r\n offsets: [-7.801111111111111, -7, -8],\r\n offsetIndices: \"012121211212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212\",\r\n untils: \"-p1u1s0|11jrw0|1sns00|1sgdc0|71s40|9cyk0|5iidg0|1q6700|4lfk0|190g40|eluk0|2r4r00|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|84qys0|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|77c40|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Toronto\",\r\n title: \"Toronto\",\r\n winIndex: 14,\r\n offsets: [-5, -4],\r\n offsetIndices: \"01010101010101010101010101010101010101010101011101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-qzoxw0|a2vw0|7yx60|aqzy0|9q8c0|7jzo0|bw0c0|6bp80|cedg0|6h980|c8tg0|6h980|bvus0|776k0|biw40|776k0|biw40|776k0|biw40|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|xjeo0|1tzb40|2dq40|asys0|7x3w0|ast80|7x3w0|asys0|7x3w0|asys0|b5rw0|7xf00|ast80|7x9g0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Vancouver\",\r\n title: \"Vancouver\",\r\n winIndex: 11,\r\n offsets: [-8, -7],\r\n offsetIndices: \"0101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-qzopk0|a2vw0|c5jxg0|1tz2s0|2dyg0|asys0|8n180|a31g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Whitehorse\",\r\n title: \"Whitehorse\",\r\n winIndex: 11,\r\n offsets: [-9, -8, -7],\r\n offsetIndices: \"0101011020121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-qzoms0|a2vw0|asys0|882c0|bmiwc0|1tz000|2e180|a7n3w0|9q000|tiyo0|6qp440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Winnipeg\",\r\n title: \"Winnipeg\",\r\n winIndex: 13,\r\n offsets: [-6, -5],\r\n offsetIndices: \"010101011010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-s0s7c0|7k580|tj700|a2vw0|9ok840|6u7w0|2a5hg0|1tz8c0|2dsw0|biw40|7x3w0|a31g0|7x3w0|asys0|7x3w0|asys0|7x3w0|b7s40|7tek0|autg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|9cyk0|9d440|7x3w0|1cm2s0|7k580|1cm2s0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|asw00|7x6o0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Yakutat\",\r\n title: \"Yakutat\",\r\n winIndex: 55,\r\n offsets: [-9, -8],\r\n offsetIndices: \"01101010101010101010101010101010100101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-ek1tg0|1tz000|2e180|cawis0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|1lbw0|7rs80|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"America/Yellowknife\",\r\n title: \"Yellowknife\",\r\n winIndex: 15,\r\n offsets: [0, -7, -6, -5],\r\n offsetIndices: \"012213121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-i9m2o0|3pk3o0|1tz5k0|2dvo0|a7n3w0|9q000|7k85k0|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"Antarctica/Casey\",\r\n title: \"Casey\",\r\n winIndex: 33,\r\n offsets: [0, 8, 11],\r\n offsetIndices: \"012121\",\r\n untils: \"-irxc0|lag4o0|73bo0|uz1o0|60l80|Infinity\"\r\n}, {\r\n id: \"Antarctica/Davis\",\r\n title: \"Davis\",\r\n winIndex: 6,\r\n offsets: [0, 7, 5],\r\n offsetIndices: \"01012121\",\r\n untils: \"-6rmdc0|42jdw0|27wgs0|l8uss0|7eqs0|unmk0|60qs0|Infinity\"\r\n}, {\r\n id: \"Antarctica/DumontDUrville\",\r\n title: \"DumontDUrville\",\r\n winIndex: 50,\r\n offsets: [0, 10],\r\n offsetIndices: \"0101\",\r\n untils: \"-c05eo0|2mks80|2i72g0|Infinity\"\r\n}, {\r\n id: \"Antarctica/Macquarie\",\r\n title: \"Macquarie\",\r\n winIndex: 48,\r\n offsets: [10, 11, 0],\r\n offsetIndices: \"0102010101010101010101010101010101010101010101010101010101010101010101010101010101010101011\",\r\n untils: \"-rsj4w0|8zzw0|11wqk0|f4kh40|a6p8g0|9d1c0|asw00|6uao0|bvs00|6uao0|bvs00|779c0|bvs00|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|b5uo0|7k800|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|bvs00|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x6o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|7x6o0|asw00|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\"\r\n}, {\r\n id: \"Antarctica/Mawson\",\r\n title: \"Mawson\",\r\n winIndex: 17,\r\n offsets: [0, 6, 5],\r\n offsetIndices: \"012\",\r\n untils: \"-8aelc0|t22y80|Infinity\"\r\n}, {\r\n id: \"Antarctica/Palmer\",\r\n title: \"Palmer\",\r\n winIndex: 39,\r\n offsets: [0, -3, -4, -2],\r\n offsetIndices: \"0121212121213121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-2lxhc0|31ho0|bqas0|71mk0|bqas0|8ovw0|9d440|9px80|9d440|9cyk0|9d440|28t6k0|51ek0|46b6s0|8c2s0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|9cyk0|9d440|7x3w0|asys0|7x3w0|b5xg0|7k580|9q2s0|8zzw0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|a31g0|9px80|9q2s0|7x3w0|b5xg0|7k580|b5xg0|7k580|b5xg0|7k580|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7k580|b5xg0|8n180|a31g0|7x3w0|asys0|8zzw0|9q2s0|ast80|5eis0|cyl80|6hes0|c8nw0|6udg0|bvp80|6udg0|vonw0|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|51k40|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|51k40|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|51k40|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|e1h80|4olg0|Infinity\"\r\n}, {\r\n id: \"Antarctica/Rothera\",\r\n title: \"Rothera\",\r\n winIndex: 64,\r\n offsets: [0, -3],\r\n offsetIndices: \"01\",\r\n untils: \"3lxs00|Infinity\"\r\n}, {\r\n id: \"Antarctica/Syowa\",\r\n title: \"Syowa\",\r\n winIndex: 1,\r\n offsets: [0, 3],\r\n offsetIndices: \"01\",\r\n untils: \"-6qsqo0|Infinity\"\r\n}, {\r\n id: \"Antarctica/Vostok\",\r\n title: \"Vostok\",\r\n winIndex: 21,\r\n offsets: [0, 6],\r\n offsetIndices: \"01\",\r\n untils: \"-6aaao0|Infinity\"\r\n}, {\r\n id: \"Asia/Almaty\",\r\n title: \"Almaty\",\r\n winIndex: 21,\r\n offsets: [5.13, 5, 6, 7],\r\n offsetIndices: \"012323232323232323232321232323232323232323232323232\",\r\n untils: \"-nu1a90|37a0d0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|Infinity\"\r\n}, {\r\n id: \"Asia/Amman\",\r\n title: \"Amman\",\r\n winIndex: 74,\r\n offsets: [2.395555555555555, 2, 3],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-kcrtbk|m566fk|60l80|awo40|7v980|awo40|7v980|ayis0|9gnw0|9b9g0|7v980|autg0|7v980|3e6840|9et80|9io40|9cyk0|9d440|9cyk0|9d440|9px80|ayis0|7rjw0|ag040|8a2k0|9zc40|8drw0|a31g0|8zzw0|9d440|9cyk0|9d440|8n180|ag040|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|epmo0|4deo0|9o5c0|9ew00|9b6o0|9ew00|9d1c0|9d1c0|9d1c0|asw00|7x6o0|afxc0|8n400|9d1c0|9d1c0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|wel80|51k40|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|Infinity\"\r\n}, {\r\n id: \"Asia/Anadyr\",\r\n title: \"Anadyr\",\r\n winIndex: 75,\r\n offsets: [11.83222222222222, 12, 13, 14, 11],\r\n offsetIndices: \"01232212121212121212121141212121212121212121212121212121212121141\",\r\n untils: \"-nu1sv8|379zj8|qi27w0|9et80|9d440|9ew00|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5xg0|7k800|Infinity\"\r\n}, {\r\n id: \"Asia/Aqtau\",\r\n title: \"Aqtau\",\r\n winIndex: 17,\r\n offsets: [3.351111111111111, 4, 5, 6],\r\n offsetIndices: \"012323232323232323232123232312121212121212121212\",\r\n untils: \"-nu15b4|379y74|qrh3w0|iruk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|Infinity\"\r\n}, {\r\n id: \"Asia/Aqtobe\",\r\n title: \"Aqtobe\",\r\n winIndex: 17,\r\n offsets: [3.811111111111111, 4, 5, 6],\r\n offsetIndices: \"0123232323232323232321232323232323232323232323232\",\r\n untils: \"-nu16l4|379zh4|qi27w0|s6qk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|iq5g0|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|Infinity\"\r\n}, {\r\n id: \"Asia/Ashgabat\",\r\n title: \"Ashgabat\",\r\n winIndex: 17,\r\n offsets: [3.8922222222222222, 4, 5, 6],\r\n offsetIndices: \"012323232323232323232322112\",\r\n untils: \"-nu16t8|379zp8|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|1fp40|4bpk0|Infinity\"\r\n}, {\r\n id: \"Asia/Baghdad\",\r\n title: \"Baghdad\",\r\n winIndex: 76,\r\n offsets: [2.96, 3, 4],\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121\",\r\n untils: \"-r50g80|xkn3w0|7v980|9b9g0|9gnw0|9eys0|9et80|9d440|9b9g0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9f1k0|9ew00|9ew00|9ew00|9d1c0|9ew00|9d1c0|9ew00|9d1c0|9ew00|9ew00|9ew00|9d1c0|9ew00|9d1c0|9ew00|9d1c0|9ew00|9ew00|9ew00|9d1c0|9ew00|9d1c0|9ew00|9d1c0|9ew00|9ew00|9ew00|9d1c0|9ew00|9d1c0|9ew00|9d1c0|9ew00|Infinity\"\r\n}, {\r\n id: \"Asia/Baku\",\r\n title: \"Baku\",\r\n winIndex: 77,\r\n offsets: [3.3233333333333333, 3, 4, 5],\r\n offsetIndices: \"01232323232323232323232221223232323232323232323232323232323232323232\",\r\n untils: \"-nu158c|h4tkwc|ckinw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|7tbs0|1jsc0|9d1c0|9cq80|1twoo0|asw00|7x3w0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Asia/Bangkok\",\r\n title: \"Bangkok\",\r\n winIndex: 6,\r\n offsets: [6.7011111111111115, 7],\r\n offsetIndices: \"01\",\r\n untils: \"-pysda4|Infinity\"\r\n}, {\r\n id: \"Asia/Beirut\",\r\n title: \"Beirut\",\r\n winIndex: 78,\r\n offsets: [2, 3],\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-pyzew0|aunw0|88dg0|9et80|8yas0|a2vw0|a31g0|7k580|hjqo40|7v980|awo40|7v980|awo40|7v980|ayis0|7v980|awo40|7v980|5lhs40|56yk0|awo40|7v980|awo40|7v980|awo40|7v980|ayis0|7v980|awo40|7v980|autg0|7v980|2wxus0|8n180|a4w40|8n180|a4w40|8n180|a4w40|8n180|bs5g0|71mk0|alk40|86d80|a4w40|8n180|a4w40|8n180|a6qs0|80t80|905g0|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|Infinity\"\r\n}, {\r\n id: \"Asia/Bishkek\",\r\n title: \"Bishkek\",\r\n winIndex: 21,\r\n offsets: [4.973333333333333, 5, 6, 7],\r\n offsetIndices: \"01232323232323232323232212121212121212121212121212122\",\r\n untils: \"-nu19tc|379zxc|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|7vc00|bkl80|8n180|a31g0|8n180|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|9db20|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|73aa0|Infinity\"\r\n}, {\r\n id: \"Asia/Brunei\",\r\n title: \"Brunei\",\r\n winIndex: 24,\r\n offsets: [7.661111111111111, 7.5, 8],\r\n offsetIndices: \"012\",\r\n untils: \"-mvofy4|3khxs4|Infinity\"\r\n}, {\r\n id: \"Asia/Chita\",\r\n title: \"Chita\",\r\n winIndex: 79,\r\n offsets: [7.564444444444445, 8, 9, 10],\r\n offsetIndices: \"0123232323232323232323221232323232323232323232323232323232323232312\",\r\n untils: \"-q4cfog|5hkxgg|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|qnew0|Infinity\"\r\n}, {\r\n id: \"Asia/Choibalsan\",\r\n title: \"Choibalsan\",\r\n winIndex: 25,\r\n offsets: [7.633333333333334, 7, 8, 10, 9],\r\n offsetIndices: \"0123434343434343434343434343434343434343434343424242424242424242424242424242424242424242424242\",\r\n untils: \"-xmct7c|11sndrc|2qk2k0|9eqg0|9eys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|1ckdo0|7x3w0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|s6qk0|3nc0c0|9ct00|9d9o0|9ct00|9d9o0|9pro0|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9pro0|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9pro0|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9pro0|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|Infinity\"\r\n}, {\r\n id: \"Asia/Colombo\",\r\n title: \"Colombo\",\r\n winIndex: 80,\r\n offsets: [5.325555555555556, 5.5, 6, 6.5],\r\n offsetIndices: \"01231321\",\r\n untils: \"-xehask|isle6k|cajy0|1mp2u0|qetjw0|7x5a0|4xvqq0|Infinity\"\r\n}, {\r\n id: \"Asia/Damascus\",\r\n title: \"Damascus\",\r\n winIndex: 81,\r\n offsets: [2.42, 2, 3],\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-q3gk20|5k6q0|8n180|a31g0|8n180|a31g0|8n180|a31g0|8zzw0|k4hk40|7yyk0|awo40|7tek0|b0dg0|7v980|awo40|7tek0|alk40|887w0|awo40|7v980|ayis0|7v980|awo40|7v980|awo40|7v980|awo40|7v980|ayis0|7v980|awo40|7v980|awo40|7v980|awo40|7v980|ayis0|7v980|awo40|6bp80|cg840|6bp80|2eh1g0|8zzw0|9ts40|8zzw0|pvk40|c33w0|7cw40|cjrw0|6zxg0|btuk0|7rpg0|9gnw0|9d440|9cyk0|9et80|9et80|9rxg0|91uk0|92040|9et80|9o840|9et80|9d440|9et80|9eys0|9et80|9b9g0|9gnw0|99es0|9iik0|9d440|9et80|9eys0|9et80|9d440|9et80|9d440|9et80|9d440|9et80|9eys0|9et80|9d440|9et80|9d440|8y580|9q2s0|b5rw0|7x9g0|aunw0|7ig40|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|Infinity\"\r\n}, {\r\n id: \"Asia/Dhaka\",\r\n title: \"Dhaka\",\r\n winIndex: 20,\r\n offsets: [5.888888888888888, 6.5, 5.5, 6, 7],\r\n offsetIndices: \"01213343\",\r\n untils: \"-eqtpow|bmgyw|5lxg0|4qknw0|a63o20|jyevw0|a1400|Infinity\"\r\n}, {\r\n id: \"Asia/Dili\",\r\n title: \"Dili\",\r\n winIndex: 43,\r\n offsets: [8.372222222222222, 8, 9],\r\n offsetIndices: \"012212\",\r\n untils: \"-u9s4l8|fqcu98|1vc2o0|fz3pc0|cpz440|Infinity\"\r\n}, {\r\n id: \"Asia/Dubai\",\r\n title: \"Dubai\",\r\n winIndex: 7,\r\n offsets: [3.6866666666666665, 4],\r\n offsetIndices: \"01\",\r\n untils: \"-q3gnko|Infinity\"\r\n}, {\r\n id: \"Asia/Dushanbe\",\r\n title: \"Dushanbe\",\r\n winIndex: 17,\r\n offsets: [4.586666666666667, 5, 6, 7],\r\n offsetIndices: \"0123232323232323232323221\",\r\n untils: \"-nu18qo|379yuo|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|8c2s0|Infinity\"\r\n}, {\r\n id: \"Asia/Ho_Chi_Minh\",\r\n title: \"Ho Chi Minh\",\r\n winIndex: 6,\r\n offsets: [7.111111111111112, 7.108333333333333, 7, 8, 9],\r\n offsetIndices: \"0123423232\",\r\n untils: \"-x56934|2isioa|gj25iu|15ct80|8so00|tmtk0|4azjw0|2cmao0|8285c0|Infinity\"\r\n}, {\r\n id: \"Asia/Hong_Kong\",\r\n title: \"Hong Kong\",\r\n winIndex: 19,\r\n offsets: [7.611666666666666, 8, 9],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-y0i2h6|j09kn6|9cyk0|4f2e0|1xyfw0|b6760|bkl80|6udg0|df980|6dpg0|9cyk0|7x9g0|ast80|7x9g0|ast80|7x9g0|ast80|8a840|adzw0|8c2s0|ast80|77c40|biqk0|77c40|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|bvp80|6udg0|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|8n6s0|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|3lpg0|f4d80|9d440|9cyk0|9d440|9cyk0|1c9440|8a2k0|Infinity\"\r\n}, {\r\n id: \"Asia/Hovd\",\r\n title: \"Hovd\",\r\n winIndex: 6,\r\n offsets: [6.11, 6, 7, 8],\r\n offsetIndices: \"012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-xmcoz0|11sncb0|2qk2k0|9et80|9eys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|1ckdo0|7x3w0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|4fio40|9ct00|9d9o0|9ct00|9d9o0|9pro0|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9pro0|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9pro0|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9pro0|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|Infinity\"\r\n}, {\r\n id: \"Asia/Irkutsk\",\r\n title: \"Irkutsk\",\r\n winIndex: 82,\r\n offsets: [6.951388888888888, 7, 8, 9],\r\n offsetIndices: \"012323232323232323232322123232323232323232323232323232323232323232\",\r\n untils: \"-q28gn5|5fh175|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\"\r\n}, {\r\n id: \"Asia/Jakarta\",\r\n title: \"Jakarta\",\r\n winIndex: 6,\r\n offsets: [7.12, 7.333333333333333, 7.5, 9, 8, 7],\r\n offsetIndices: \"01232425\",\r\n untils: \"-o0bdpc|4lzxc0|4wdzjc|1tu960|1cx860|11jta0|74uc20|Infinity\"\r\n}, {\r\n id: \"Asia/Jayapura\",\r\n title: \"Jayapura\",\r\n winIndex: 43,\r\n offsets: [9.379999999999999, 9, 9.5],\r\n offsetIndices: \"0121\",\r\n untils: \"-jebm20|66bqe0|a37vy0|Infinity\"\r\n}, {\r\n id: \"Asia/Jerusalem\",\r\n title: \"Jerusalem\",\r\n winIndex: 23,\r\n offsets: [2.344444444444444, 2, 3, 4],\r\n offsetIndices: \"01212121212132121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-r50eig|bp54yg|19f3w0|7rv00|b02c0|7tk40|b07w0|8jhg0|a8lg0|8jhg0|a8ac0|t9s40|56vs0|35700|9b3w0|9gtg0|8jbw0|7tmw0|a6ig0|biyw0|8a5c0|9d1c0|902o0|7x6o0|e1eg0|4ofw0|dzxo0|4q500|doo40|64iw0|auqo0|7i500|8rfms0|51ek0|9q2s0|6u7w0|50rhg0|7x3w0|cls40|5rbw0|bbhg0|7rjw0|asys0|7k580|c8tg0|6h980|ag040|7x3w0|asys0|8a2k0|asys0|8a2k0|ap9g0|80t80|ap9g0|7nuk0|b2840|80t80|9zc40|9iik0|9kis0|93p80|9mdg0|8qqk0|apf00|7x3w0|biw40|8zx40|9io40|8n180|9kis0|9vh80|8ulg0|9px80|9mdg0|8n180|9tuw0|9tmk0|8wg40|9gnw0|99es0|8qqk0|9zc40|9tmk0|8wg40|9gnw0|99es0|8qqk0|acas0|9gnw0|99es0|93p80|9mdg0|awik0|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|7tk40|b9h80|7glg0|b9h80|7glg0|b9h80|7glg0|b9h80|7tk40|awik0|7tk40|awik0|Infinity\"\r\n}, {\r\n id: \"Asia/Kabul\",\r\n title: \"Kabul\",\r\n winIndex: 83,\r\n offsets: [4, 4.5],\r\n offsetIndices: \"01\",\r\n untils: \"-d1pkg0|Infinity\"\r\n}, {\r\n id: \"Asia/Kamchatka\",\r\n title: \"Kamchatka\",\r\n winIndex: 75,\r\n offsets: [10.576666666666666, 11, 12, 13],\r\n offsetIndices: \"01232323232323232323232212323232323232323232323232323232323232212\",\r\n untils: \"-olrupo|3z045o|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5xg0|7k800|Infinity\"\r\n}, {\r\n id: \"Asia/Karachi\",\r\n title: \"Karachi\",\r\n winIndex: 84,\r\n offsets: [4.47, 5.5, 6.5, 5, 6],\r\n offsetIndices: \"012133434343\",\r\n untils: \"-wvpb30|im3zt0|1mn180|33xpg0|a63o20|g72qo0|9cyk0|2y85g0|7v980|8hms0|aaak0|Infinity\"\r\n}, {\r\n id: \"Asia/Kathmandu\",\r\n title: \"Kathmandu\",\r\n winIndex: 22,\r\n offsets: [5.687777777777778, 5.5, 5.75],\r\n offsetIndices: \"012\",\r\n untils: \"-q3gt4s|yg2lus|Infinity\"\r\n}, {\r\n id: \"Asia/Khandyga\",\r\n title: \"Khandyga\",\r\n winIndex: 79,\r\n offsets: [9.036944444444446, 8, 9, 10, 11],\r\n offsetIndices: \"01232323232323232323232212323232323232323232323232343434343434343432\",\r\n untils: \"-q4cjrp|5hl1jp|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|3fx40|4h6s0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|8ql00|1mlho0|Infinity\"\r\n}, {\r\n id: \"Asia/Kolkata\",\r\n title: \"Kolkata\",\r\n winIndex: 18,\r\n offsets: [5.888888888888888, 6.5, 5.5],\r\n offsetIndices: \"01212\",\r\n untils: \"-eqtpow|bmgyw|5lxg0|1mn180|Infinity\"\r\n}, {\r\n id: \"Asia/Krasnoyarsk\",\r\n title: \"Krasnoyarsk\",\r\n winIndex: 85,\r\n offsets: [6.190555555555556, 6, 7, 8],\r\n offsetIndices: \"012323232323232323232322123232323232323232323232323232323232323232\",\r\n untils: \"-q37l72|5gg8j2|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\"\r\n}, {\r\n id: \"Asia/Kuala_Lumpur\",\r\n title: \"Kuala Lumpur\",\r\n winIndex: 24,\r\n offsets: [6.923611111111112, 7, 7.333333333333333, 7.5, 9, 8],\r\n offsetIndices: \"01223435\",\r\n untils: \"-xphpwd|eeb94d|1kbr2o|2yhc00|8n3jc|1v2p60|iy3o60|Infinity\"\r\n}, {\r\n id: \"Asia/Kuching\",\r\n title: \"Kuching\",\r\n winIndex: 24,\r\n offsets: [7.355555555555555, 7.5, 8, 8.333333333333334, 9],\r\n offsetIndices: \"01232323232323232422\",\r\n untils: \"-mvof3k|3khwxk|1epvy0|4ohqo|e5a9c|4ohqo|e3flc|4ohqo|e3flc|4ohqo|e3flc|4ohqo|e5a9c|4ohqo|e3flc|4ohqo|3ajlc|1v2qk0|iy3ms0|Infinity\"\r\n}, {\r\n id: \"Asia/Macau\",\r\n title: \"Macau\",\r\n winIndex: 19,\r\n offsets: [7.572222222222222, 8, 9],\r\n offsetIndices: \"0121212121212121212121212121212121212121211\",\r\n untils: \"-u9s2d8|pon9v8|bvp80|6udg0|bvp80|6u3q0|bvyy0|77c40|biqk0|772e0|biqk0|8ngi0|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9cue0|9cyk0|9d440|9px80|9d440|9d8a0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9cue0|9cyk0|9d440|9px80|9d440|9cyk0|a04w40|Infinity\"\r\n}, {\r\n id: \"Asia/Magadan\",\r\n title: \"Magadan\",\r\n winIndex: 75,\r\n offsets: [10.053333333333335, 10, 11, 12],\r\n offsetIndices: \"0123232323232323232323221232323232323232323232323232323232323232312\",\r\n untils: \"-nu1nxc|37a05c|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|s39k0|Infinity\"\r\n}, {\r\n id: \"Asia/Makassar\",\r\n title: \"Makassar\",\r\n winIndex: 24,\r\n offsets: [7.96, 8, 9],\r\n offsetIndices: \"00121\",\r\n untils: \"-q3gzg0|6p5hc0|4u87w0|1w02k0|Infinity\"\r\n}, {\r\n id: \"Asia/Manila\",\r\n title: \"Manila\",\r\n winIndex: 24,\r\n offsets: [8, 9],\r\n offsetIndices: \"010101010\",\r\n untils: \"-hb5y80|4qak0|2qidg0|1b2d80|4xf440|442k0|cdqdg0|9et80|Infinity\"\r\n}, {\r\n id: \"Asia/Nicosia\",\r\n title: \"Nicosia\",\r\n winIndex: 4,\r\n offsets: [2.2244444444444444, 2, 3],\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-p4bq6g|rvhxyg|9cyk0|b42s0|7nuk0|8yas0|8zzw0|9q2s0|9et80|9b9g0|9cyk0|9q2s0|8zzw0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|at4c0|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Asia/Novokuznetsk\",\r\n title: \"Novokuznetsk\",\r\n winIndex: 86,\r\n offsets: [5.8133333333333335, 6, 7, 8],\r\n offsetIndices: \"012323232323232323232322123232323232323232323232323232323232322122\",\r\n untils: \"-nu36tc|37bu5c|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5xg0|7k800|1vbzw0|Infinity\"\r\n}, {\r\n id: \"Asia/Novosibirsk\",\r\n title: \"Novosibirsk\",\r\n winIndex: 86,\r\n offsets: [5.527777777777778, 6, 7, 8],\r\n offsetIndices: \"0123232323232323232323221232321212121212121212121212121212121212121\",\r\n untils: \"-q4do0s|5hmbcs|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|2vh00|6hn40|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\"\r\n}, {\r\n id: \"Asia/Omsk\",\r\n title: \"Omsk\",\r\n winIndex: 86,\r\n offsets: [4.891666666666667, 5, 6, 7],\r\n offsetIndices: \"012323232323232323232322123232323232323232323232323232323232323232\",\r\n untils: \"-q5xmx6|5j6d16|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\"\r\n}, {\r\n id: \"Asia/Oral\",\r\n title: \"Oral\",\r\n winIndex: 17,\r\n offsets: [3.4233333333333333, 4, 5, 6],\r\n offsetIndices: \"01232323232323232121212121212121212121212121212\",\r\n untils: \"-nu15ic|379yec|qi27w0|s6qk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|iq5g0|9d1c0|9q000|9d1c0|9d1c0|5reo0|cyo00|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|Infinity\"\r\n}, {\r\n id: \"Asia/Pontianak\",\r\n title: \"Pontianak\",\r\n winIndex: 6,\r\n offsets: [7.288888888888889, 7.5, 9, 8, 7],\r\n offsetIndices: \"001213134\",\r\n untils: \"-w6piww|cse2o0|4tnu2w|1wkei0|1cx860|11jta0|74uc20|cixam0|Infinity\"\r\n}, {\r\n id: \"Asia/Pyongyang\",\r\n title: \"Pyongyang\",\r\n winIndex: 53,\r\n offsets: [8.383333333333333, 8.5, 9],\r\n offsetIndices: \"012221\",\r\n untils: \"-w895yc|1yh10c|dfsmm0|44cqo0|10ipmo0|Infinity\"\r\n}, {\r\n id: \"Asia/Qatar\",\r\n title: \"Qatar\",\r\n winIndex: 5,\r\n offsets: [3.4355555555555553, 4, 3],\r\n offsetIndices: \"012\",\r\n untils: \"-q3gmvk|rctnrk|Infinity\"\r\n}, {\r\n id: \"Asia/Qyzylorda\",\r\n title: \"Qyzylorda\",\r\n winIndex: 21,\r\n offsets: [4.364444444444445, 4, 5, 6],\r\n offsetIndices: \"0123232323232323232323232323232323232323232323\",\r\n untils: \"-nu184g|37a10g|qi27w0|s6qk0|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|ohhc0|cyo00|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|Infinity\"\r\n}, {\r\n id: \"Asia/Rangoon\",\r\n title: \"Rangoon\",\r\n winIndex: 87,\r\n offsets: [6.411111111111111, 6.5, 9],\r\n offsetIndices: \"0121\",\r\n untils: \"-q3gv54|bnjp34|1kh520|Infinity\"\r\n}, {\r\n id: \"Asia/Riyadh\",\r\n title: \"Riyadh\",\r\n winIndex: 5,\r\n offsets: [3.1144444444444446, 3],\r\n offsetIndices: \"01\",\r\n untils: \"-bwgbbg|Infinity\"\r\n}, {\r\n id: \"Asia/Sakhalin\",\r\n title: \"Sakhalin\",\r\n winIndex: 88,\r\n offsets: [9.513333333333332, 9, 11, 12, 10],\r\n offsetIndices: \"01123232323232323232323224232323232322424242424242424242424242424242\",\r\n untils: \"-xl87rc|gr8pfc|44elc0|ikvh40|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asys0|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|qnc40|Infinity\"\r\n}, {\r\n id: \"Asia/Samarkand\",\r\n title: \"Samarkand\",\r\n winIndex: 17,\r\n offsets: [4.464722222222222, 4, 5, 6],\r\n offsetIndices: \"01233323232323232323232332\",\r\n untils: \"-nu18eh|37a1ah|qi27w0|9et80|9d1c0|9ew00|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|7wyc0|1g300|Infinity\"\r\n}, {\r\n id: \"Asia/Seoul\",\r\n title: \"Seoul\",\r\n winIndex: 53,\r\n offsets: [8.464444444444444, 8.5, 9, 9.5, 10],\r\n offsetIndices: \"01222131313131313124242\",\r\n untils: \"-w8966g|1yh18g|dfsmm0|454io0|4gadc0|l3aq0|6j3w0|d2g40|6u7w0|b5xg0|776k0|biw40|776k0|biw40|776k0|biw40|776k0|grs40|dfqxi0|7x6o0|asw00|7x6o0|Infinity\"\r\n}, {\r\n id: \"Asia/Shanghai\",\r\n title: \"Shanghai\",\r\n winIndex: 19,\r\n offsets: [8, 9],\r\n offsetIndices: \"01010101010101010\",\r\n untils: \"-ffs0w0|66580|8jhg0|a8fw0|n9rc40|6u7w0|asys0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|asys0|7x3w0|asys0|7x3w0|Infinity\"\r\n}, {\r\n id: \"Asia/Singapore\",\r\n title: \"Singapore\",\r\n winIndex: 24,\r\n offsets: [6.923611111111112, 7, 7.333333333333333, 7.5, 9, 8],\r\n offsetIndices: \"012234335\",\r\n untils: \"-xphpwd|eeb94d|1kbr2o|2yhc00|8n3jc|1v2p60|ae0xi0|8k2qo0|Infinity\"\r\n}, {\r\n id: \"Asia/Srednekolymsk\",\r\n title: \"Srednekolymsk\",\r\n winIndex: 75,\r\n offsets: [10.247777777777777, 10, 11, 12],\r\n offsetIndices: \"012323232323232323232322123232323232323232323232323232323232323232\",\r\n untils: \"-nu1ogs|37a0os|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\"\r\n}, {\r\n id: \"Asia/Taipei\",\r\n title: \"Taipei\",\r\n winIndex: 52,\r\n offsets: [8, 9],\r\n offsetIndices: \"01010101010101010101010101010101010101010\",\r\n untils: \"-gtzfk0|45slc0|c51c0|75bw0|a31g0|aaak0|9d440|7v980|awo40|7v980|awo40|7v980|awo40|7v980|7tk40|clmk0|7rpg0|b07w0|7rpg0|b07w0|7rpg0|9et80|9eys0|9et80|9d440|9et80|9d440|9et80|9d440|9et80|cjxg0|69uk0|ci2s0|69uk0|6its40|9et80|9d440|9et80|1yf9g0|4qak0|Infinity\"\r\n}, {\r\n id: \"Asia/Tashkent\",\r\n title: \"Tashkent\",\r\n winIndex: 17,\r\n offsets: [4.619722222222222, 5, 6, 7],\r\n offsetIndices: \"01232323232323232323232221\",\r\n untils: \"-nu18tz|379yxz|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|7x140|1g300|Infinity\"\r\n}, {\r\n id: \"Asia/Tbilisi\",\r\n title: \"Tbilisi\",\r\n winIndex: 89,\r\n offsets: [2.986388888888889, 3, 4, 5],\r\n offsetIndices: \"0123232323232323232323222121212232323232323232323212\",\r\n untils: \"-nu14an|h4tjyn|ckinw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|gig0|8wlo0|9cvs0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d1c0|9cyk0|9q2s0|tivw0|7x9g0|ast80|7x9g0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7x9g0|ast80|7x9g0|ast80|7x9g0|4ofw0|6hn40|7k800|Infinity\"\r\n}, {\r\n id: \"Asia/Tehran\",\r\n title: \"Tehran\",\r\n winIndex: 42,\r\n offsets: [3.428888888888889, 3.5, 4, 5, 4.5],\r\n offsetIndices: \"00123214141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141\",\r\n untils: \"-s6m6uw|fnolc0|gm3h4w|777y0|b07w0|3pes0|42c20|9cyk0|9gtg0|9kd80|5ja5g0|7avw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|1av440|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9d440|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|9b9g0|9gnw0|Infinity\"\r\n}, {\r\n id: \"Asia/Thimphu\",\r\n title: \"Thimphu\",\r\n winIndex: 20,\r\n offsets: [5.9766666666666675, 5.5, 6],\r\n offsetIndices: \"012\",\r\n untils: \"-bojclo|kxymno|Infinity\"\r\n}, {\r\n id: \"Asia/Tokyo\",\r\n title: \"Tokyo\",\r\n winIndex: 43,\r\n offsets: [9, 10],\r\n offsetIndices: \"0010101010\",\r\n untils: \"-gtzic0|5ivew0|6sd80|ahus0|887w0|cao40|6fek0|cao40|6fek0|Infinity\"\r\n}, {\r\n id: \"Asia/Ulaanbaatar\",\r\n title: \"Ulaanbaatar\",\r\n winIndex: 25,\r\n offsets: [7.125555555555556, 7, 8, 9],\r\n offsetIndices: \"012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-xmcrsk|11sncck|2qk2k0|9et80|9eys0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|1ckdo0|7x3w0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|4fio40|9ct00|9d9o0|9ct00|9d9o0|9pro0|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9pro0|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9pro0|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9pro0|9d9o0|9ct00|9d9o0|9ct00|9d9o0|9ct00|Infinity\"\r\n}, {\r\n id: \"Asia/Urumqi\",\r\n title: \"Urumqi\",\r\n winIndex: 21,\r\n offsets: [5.838888888888889, 6],\r\n offsetIndices: \"01\",\r\n untils: \"-lx5pjw|Infinity\"\r\n}, {\r\n id: \"Asia/Ust-Nera\",\r\n title: \"Ust-Nera\",\r\n winIndex: 88,\r\n offsets: [9.548333333333334, 8, 9, 12, 11, 10],\r\n offsetIndices: \"0123434343434343434343445434343434343434343434343434343434343434345\",\r\n untils: \"-q4cl6u|5hl2yu|qi27w0|9eno0|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|8ql00|1mlho0|Infinity\"\r\n}, {\r\n id: \"Asia/Vladivostok\",\r\n title: \"Vladivostok\",\r\n winIndex: 88,\r\n offsets: [8.791944444444445, 9, 10, 11],\r\n offsetIndices: \"012323232323232323232322123232323232323232323232323232323232323232\",\r\n untils: \"-oligf7|3yqvf7|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\"\r\n}, {\r\n id: \"Asia/Yakutsk\",\r\n title: \"Yakutsk\",\r\n winIndex: 79,\r\n offsets: [8.649444444444445, 8, 9, 10],\r\n offsetIndices: \"012323232323232323232322123232323232323232323232323232323232323232\",\r\n untils: \"-q4cioy|5hl0gy|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\"\r\n}, {\r\n id: \"Asia/Yekaterinburg\",\r\n title: \"Yekaterinburg\",\r\n winIndex: 90,\r\n offsets: [4.0425, 3.751388888888889, 4, 5, 6],\r\n offsetIndices: \"0123434343434343434343433234343434343434343434343434343434343434343\",\r\n untils: \"-rx5hw9|1kybx4|5pfyv5|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\"\r\n}, {\r\n id: \"Asia/Yerevan\",\r\n title: \"Yerevan\",\r\n winIndex: 91,\r\n offsets: [2.966666666666667, 3, 4, 5],\r\n offsetIndices: \"0123232323232323232323222121212122323232323232323232323232323232\",\r\n untils: \"-nu148o|h4tjwo|ckinw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|91rs0|bcc0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|sfzw0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|Infinity\"\r\n}, {\r\n id: \"Atlantic/Azores\",\r\n title: \"Azores\",\r\n winIndex: 73,\r\n offsets: [-1.9088888888888889, -2, -1, 0],\r\n offsetIndices: \"01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323233323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-u9rc14|2bug54|6zxg0|66580|bq800|73k00|bodc0|71pc0|bq800|73k00|bq800|71pc0|bq800|1b2g00|9b6o0|saio0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|st1c0|8n400|9d1c0|9d1c0|sg2o0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|bitc0|9d1c0|9ew00|88ao0|25p80|5reo0|3lpg0|779c0|1sqk0|6uao0|38qs0|6uao0|25p80|6hc00|38qs0|6uao0|25p80|6hc00|38qs0|8a5c0|9d1c0|9d9o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|s3400|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|5qbjo0|9d1c0|9q000|9d1c0|9d1c0|9d440|9cyk0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9cyk0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9cyk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Atlantic/Bermuda\",\r\n title: \"Bermuda\",\r\n winIndex: 36,\r\n offsets: [-4.321666666666667, -4, -3],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-kvj2fu|n4pr3u|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"Atlantic/Canary\",\r\n title: \"Canary\",\r\n winIndex: 26,\r\n offsets: [-1.0266666666666666, -1, 0, 1],\r\n offsetIndices: \"01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-oytbtc|ctvupc|hhq7s0|905g0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Atlantic/Cape_Verde\",\r\n title: \"Cape Verde\",\r\n winIndex: 92,\r\n offsets: [-1.5677777777777777, -2, -1],\r\n offsetIndices: \"01212\",\r\n untils: \"-wvoub8|im43v8|1mn180|fpqwc0|Infinity\"\r\n}, {\r\n id: \"Atlantic/Faroe\",\r\n title: \"Faroe\",\r\n winIndex: 26,\r\n offsets: [-.45111111111111113, 0, 1],\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-wcehew|127keuw|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Atlantic/Madeira\",\r\n title: \"Madeira\",\r\n winIndex: 26,\r\n offsets: [-1.1266666666666665, -1, 0, 1],\r\n offsetIndices: \"01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-u9re7c|2bufjc|6zxg0|66580|bq800|73k00|bodc0|71pc0|bq800|73k00|bq800|71pc0|bq800|1b2g00|9b6o0|saio0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|st1c0|8n400|9d1c0|9d1c0|sg2o0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|bitc0|9d1c0|9ew00|88ao0|25p80|5reo0|3lpg0|779c0|1sqk0|6uao0|38qs0|6uao0|25p80|6hc00|38qs0|6uao0|25p80|6hc00|38qs0|8a5c0|9d1c0|9d9o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|s3400|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|5qbjo0|9d1c0|9q000|9d1c0|9d1c0|9d440|9cyk0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9cyk0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Atlantic/Reykjavik\",\r\n title: \"Reykjavik\",\r\n winIndex: 0,\r\n offsets: [-1.4666666666666666, -1, 0],\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212\",\r\n untils: \"-wcwx9c|4rpd9c|ci2s0|69uk0|du840|4xp80|du840|p7bw0|4w040|9bdzw0|9d6w0|64g40|cyl80|64dc0|clpc0|6hc00|bvs00|6uao0|bvs00|6uao0|bvs00|6uao0|c8qo0|6hc00|c8qo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|7x6o0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|asw00|8a5c0|Infinity\"\r\n}, {\r\n id: \"Atlantic/South_Georgia\",\r\n title: \"South Georgia\",\r\n winIndex: 34,\r\n offsets: [-2],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Atlantic/Stanley\",\r\n title: \"Stanley\",\r\n winIndex: 64,\r\n offsets: [-3.856666666666667, -4, -3, -2],\r\n offsetIndices: \"0121212121212123232212121212121212121212121212121212121212121212121212\",\r\n untils: \"-u63pac|dbvxqc|8zzw0|9q2s0|8zzw0|a31g0|8zzw0|9q2s0|8zzw0|9q2s0|8zzw0|9q2s0|4xp80|l1pus0|7k580|b5rw0|77c40|biqk0|77c40|b5uo0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|biqk0|77c40|biqk0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|biqk0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5rw0|7kas0|b5xg0|77c40|bvp80|6udg0|bvp80|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|biqk0|77c40|bvp80|77c40|biqk0|77c40|biqk0|77c40|Infinity\"\r\n}, {\r\n id: \"Australia/Adelaide\",\r\n title: \"Adelaide\",\r\n winIndex: 31,\r\n offsets: [9.5, 10.5],\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|6hc00|c8qo0|7k800|b5uo0|6uao0|c8qo0|779c0|bitc0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\"\r\n}, {\r\n id: \"Australia/Brisbane\",\r\n title: \"Brisbane\",\r\n winIndex: 30,\r\n offsets: [10, 11],\r\n offsetIndices: \"01010101010101010\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|97zuo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|Infinity\"\r\n}, {\r\n id: \"Australia/Broken_Hill\",\r\n title: \"Broken Hill\",\r\n winIndex: 31,\r\n offsets: [9.5, 10.5],\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|8a5c0|asw00|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\"\r\n}, {\r\n id: \"Australia/Currie\",\r\n title: \"Currie\",\r\n winIndex: 32,\r\n offsets: [10, 11],\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\",\r\n untils: \"-rsj4w0|8zzw0|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|b5uo0|7k800|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|bvs00|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x6o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|7x6o0|asw00|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\"\r\n}, {\r\n id: \"Australia/Darwin\",\r\n title: \"Darwin\",\r\n winIndex: 29,\r\n offsets: [9.5, 10.5],\r\n offsetIndices: \"010101010\",\r\n untils: \"-rnsvoc|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|Infinity\"\r\n}, {\r\n id: \"Australia/Hobart\",\r\n title: \"Hobart\",\r\n winIndex: 32,\r\n offsets: [10, 11],\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\",\r\n untils: \"-rsj4w0|8zzw0|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|c9tms0|9d1c0|asw00|6uao0|bvs00|6uao0|bvs00|779c0|bvs00|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|b5uo0|7k800|b5uo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|bvs00|7k800|bitc0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x6o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|7x6o0|asw00|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\"\r\n}, {\r\n id: \"Australia/Lindeman\",\r\n title: \"Lindeman\",\r\n winIndex: 30,\r\n offsets: [10, 11],\r\n offsetIndices: \"010101010101010101010\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|97zuo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|Infinity\"\r\n}, {\r\n id: \"Australia/Melbourne\",\r\n title: \"Melbourne\",\r\n winIndex: 28,\r\n offsets: [10, 11],\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|b5uo0|7x6o0|bitc0|779c0|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|7x6o0|asw00|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\"\r\n}, {\r\n id: \"Australia/Perth\",\r\n title: \"Perth\",\r\n winIndex: 33,\r\n offsets: [8, 9],\r\n offsetIndices: \"0101010101010101010\",\r\n untils: \"-rnsric|49s2c|cxfms0|4h180|9d440|9cyk0|ghf1g0|6hc00|4ir9c0|6hc00|40r400|5eg00|7p9hc0|5reo0|b5uo0|7x6o0|asw00|7x6o0|Infinity\"\r\n}, {\r\n id: \"Australia/Sydney\",\r\n title: \"Sydney\",\r\n winIndex: 28,\r\n offsets: [10, 11],\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101\",\r\n untils: \"-rnsx2c|49s2c|cxfms0|4h180|9d440|9cyk0|9q2s0|8zzw0|eeiqs0|64dc0|clpc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|8a5c0|asw00|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|779c0|b5uo0|7k800|bitc0|7k800|bitc0|779c0|bitc0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|7x6o0|asw00|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|8a5c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|Infinity\"\r\n}, {\r\n id: \"CST6CDT\",\r\n title: \"CST6CDT\",\r\n winIndex: 13,\r\n offsets: [-6, -5],\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-r0esg0|ast80|7x9g0|ast80|bmtus0|1tz8c0|2dsw0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"EST5EDT\",\r\n title: \"EST5EDT\",\r\n winIndex: 14,\r\n offsets: [-5, -4],\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-r0ev80|ast80|7x9g0|ast80|bmtus0|1tzb40|2dq40|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"Etc/GMT\",\r\n title: \"GMT\",\r\n winIndex: 41,\r\n link: 150\r\n}, {\r\n id: \"Etc/GMT+1\",\r\n title: \"GMT+1\",\r\n winIndex: 92,\r\n offsets: [-1],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT+10\",\r\n title: \"GMT+10\",\r\n winIndex: 57,\r\n offsets: [-10],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT+11\",\r\n title: \"GMT+11\",\r\n winIndex: 49,\r\n offsets: [-11],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT+12\",\r\n title: \"GMT+12\",\r\n winIndex: 93,\r\n offsets: [-12],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT+2\",\r\n title: \"GMT+2\",\r\n winIndex: 34,\r\n offsets: [-2],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT+3\",\r\n title: \"GMT+3\",\r\n winIndex: 64,\r\n offsets: [-3],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT+4\",\r\n title: \"GMT+4\",\r\n winIndex: 16,\r\n offsets: [-4],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT+5\",\r\n title: \"GMT+5\",\r\n winIndex: 10,\r\n offsets: [-5],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT+6\",\r\n title: \"GMT+6\",\r\n winIndex: 67,\r\n offsets: [-6],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT+7\",\r\n title: \"GMT+7\",\r\n winIndex: 56,\r\n offsets: [-7],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT-1\",\r\n title: \"GMT-1\",\r\n winIndex: 3,\r\n offsets: [1],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT-10\",\r\n title: \"GMT-10\",\r\n winIndex: 50,\r\n offsets: [10],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT-11\",\r\n title: \"GMT-11\",\r\n winIndex: 48,\r\n offsets: [11],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT-12\",\r\n title: \"GMT-12\",\r\n winIndex: 44,\r\n offsets: [12],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT-13\",\r\n title: \"GMT-13\",\r\n winIndex: 94,\r\n offsets: [13],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT-14\",\r\n title: \"GMT-14\",\r\n winIndex: 95,\r\n offsets: [14],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT-2\",\r\n title: \"GMT-2\",\r\n winIndex: 2,\r\n offsets: [2],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT-3\",\r\n title: \"GMT-3\",\r\n winIndex: 1,\r\n offsets: [3],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT-4\",\r\n title: \"GMT-4\",\r\n winIndex: 7,\r\n offsets: [4],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT-5\",\r\n title: \"GMT-5\",\r\n winIndex: 17,\r\n offsets: [5],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT-6\",\r\n title: \"GMT-6\",\r\n winIndex: 21,\r\n offsets: [6],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT-7\",\r\n title: \"GMT-7\",\r\n winIndex: 6,\r\n offsets: [7],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT-8\",\r\n title: \"GMT-8\",\r\n winIndex: 24,\r\n offsets: [8],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/GMT-9\",\r\n title: \"GMT-9\",\r\n winIndex: 43,\r\n offsets: [9],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/UCT\",\r\n title: \"UCT\",\r\n winIndex: 41,\r\n offsets: [0],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Etc/UTC\",\r\n title: \"UTC\",\r\n winIndex: 41,\r\n offsets: [0],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Europe/Amsterdam\",\r\n title: \"Amsterdam\",\r\n winIndex: 27,\r\n offsets: [.3255555555555556, 1.3255555555555556, 1.3333333333333333, .3333333333333333, 2, 1],\r\n offsetIndices: \"010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545\",\r\n untils: \"-s0dvkk|7v980|a51o0|7x6o0|a2yo0|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9b6o0|a2yo0|c51c0|6l1c0|902o0|9q000|ci000|682o0|bgyo0|79400|bitc0|779c0|bmio0|7gio0|bbeo0|7eo00|bd9c0|7ctc0|bf400|7ayo0|bvs00|6uao0|bko00|7idc0|b9k00|7gio0|bbeo0|7eo00|bf400|7ayo0|btxc0|21uc0|4uaz8|bitc0|779c0|bko00|7idc0|bd3s0|1aarpc|7k800|9q000|9d1c0|9d1c0|9d1c0|8l9c0|ggp1c0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Andorra\",\r\n title: \"Andorra\",\r\n winIndex: 27,\r\n offsets: [0, 1, 2],\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-c4xmo0|k3ctg0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Athens\",\r\n title: \"Athens\",\r\n winIndex: 4,\r\n offsets: [1.581111111111111, 2, 3, 1],\r\n offsetIndices: \"012121313121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-rvv0cg|8bjasg|2vmk0|4hiw40|16ik0|scog0|7lx40|9o2k0|9eys0|4atzw0|6djw0|bplus0|bq800|71uw0|9d1c0|902o0|91xc0|9o5c0|905g0|9qgo0|9akg0|9iik0|99980|9dcg0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Belgrade\",\r\n title: \"Belgrade\",\r\n winIndex: 60,\r\n offsets: [1, 2],\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-ezayw0|swz00|7k800|9q000|9d1c0|9d1c0|b7pc0|6qlc0|jl1hc0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Berlin\",\r\n title: \"Berlin\",\r\n winIndex: 27,\r\n offsets: [1, 2, 3],\r\n offsetIndices: \"01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|2o7w0|6bs00|2txg0|7k800|91xc0|9b9g0|1sqk0|2inw0|51k40|a2yo0|8n400|9q000|902o0|fx91c0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Brussels\",\r\n title: \"Brussels\",\r\n winIndex: 62,\r\n offsets: [0, 1, 2],\r\n offsetIndices: \"0121212101010101010101010101010101010101010101010101212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-ss5uo0|rrx80|7vc00|a4yw0|7x6o0|asw00|7x6o0|2wh40|5omo0|b5uo0|6uao0|cyo00|7ayo0|bko00|7rmo0|a2yo0|a2yo0|8n400|902o0|9q000|9d1c0|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|90b00|a2yo0|8n400|9q000|902o0|a2yo0|8n400|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|4deo0|1a36k0|7k800|9q000|9d1c0|8l9c0|a4tc0|8l9c0|clpc0|79400|fwu800|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Bucharest\",\r\n title: \"Bucharest\",\r\n winIndex: 4,\r\n offsets: [1.74, 2, 3],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-k29zi0|fj8m0|6w5c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|kp0dc0|6h980|9q000|905g0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9cvs0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9cyk0|9d440|9cyk0|9q2s0|ast80|7xhs0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Budapest\",\r\n title: \"Budapest\",\r\n winIndex: 60,\r\n offsets: [1, 2],\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|a31g0|8n180|autg0|bgvw0|b5jeg0|th9k0|7k800|9q000|9d1c0|9d1c0|awd00|9ew00|7q0c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9q000|902o0|a4tc0|9q000|1va2g0|6u7w0|bxpg0|6u7w0|cjxg0|64ak0|cluw0|64g40|br3ek0|905g0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Chisinau\",\r\n title: \"Chisinau\",\r\n winIndex: 4,\r\n offsets: [1.9166666666666667, 1.74, 2, 3, 1, 4],\r\n offsetIndices: \"012323232323232323232424235353535353535353535323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-r2p1bo|70f1to|fj8m0|6w5c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|geqo0|ha580|oc8g0|7k800|9q000|9d1c0|7cl00|j3pbw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|25p80|7kdk0|9d1c0|9d1c0|9cvs0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|ast80|7xf00|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Copenhagen\",\r\n title: \"Copenhagen\",\r\n winIndex: 62,\r\n offsets: [1, 2],\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-rzo2w0|75bw0|cbs2w0|1aco80|7k800|9q000|9d1c0|9d1c0|9d1c0|6y000|dbmo0|6bs00|clpc0|51hc0|e1k00|4oio0|giutc0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Dublin\",\r\n title: \"Dublin\",\r\n winIndex: 26,\r\n offsets: [-.42250000000000004, .5775, 0, 1],\r\n offsetIndices: \"01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-rzcmlr|6uao0|9pytr|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|3g8580|8a840|bvp80|8n6s0|a2yo0|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Gibraltar\",\r\n title: \"Gibraltar\",\r\n winIndex: 27,\r\n offsets: [0, 1, 2],\r\n offsetIndices: \"010101010101010101010101010101010101010101010101012121212121010121010101010101010101012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|d0tp80|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Helsinki\",\r\n title: \"Helsinki\",\r\n winIndex: 59,\r\n offsets: [1.6636111111111112, 2, 3],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-peghyd|ax3tqd|9gqo0|k31s80|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Istanbul\",\r\n title: \"Istanbul\",\r\n winIndex: 54,\r\n offsets: [1.948888888888889, 2, 3, 4],\r\n offsetIndices: \"012121212121212121212121212121212121212121212121212121232323232322121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-ux9xew|2wvx6w|7v980|1tjc40|aunw0|88dg0|9et80|8yas0|a2vw0|tzpg0|79180|awo40|7v980|7p25g0|4zjw0|2xms0|f4d80|9vms0|b07w0|19f9g0|9px80|c5440|69uk0|acas0|8n180|a31g0|8n180|9q2s0|8zzw0|a8lg0|8ufw0|a31g0|8ovw0|5mbes0|4dbw0|u3es0|75bw0|2wxus0|7x3w0|asys0|7x3w0|b5xg0|7x3w0|c8w80|7x9g0|7k800|b6080|7jww0|ast80|b9ms0|7tek0|7x9g0|a2vw0|8n6s0|a2vw0|iruk0|8yj40|9rjk0|8lkg0|a4i80|8lkg0|a4i80|f2o40|38l80|t4840|8a5c0|9f4c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9cyk0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7kdk0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7m2o0|b4000|7k800|b5uo0|7x6o0|asw00|7z1c0|ar1c0|7x6o0|bitc0|779c0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Kaliningrad\",\r\n title: \"Kaliningrad\",\r\n winIndex: 96,\r\n offsets: [1, 2, 3, 4],\r\n offsetIndices: \"0101010101010121232323232323232322121212121212121212121212121212121212121212121\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|9d1c0|4od40|62fw0|9kd80|351g0|ie8nw0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\"\r\n}, {\r\n id: \"Europe/Kiev\",\r\n title: \"Kiev\",\r\n winIndex: 59,\r\n offsets: [2.0344444444444445, 2, 3, 1, 4],\r\n offsetIndices: \"0121313242424242424242424242121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-nu11ng|37a03g|5vd6k0|kzv40|7k800|9q000|1oyg0|jipzs0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|51ek0|neqw0|9cvs0|9cyk0|9d440|9cyk0|9d440|9cyk0|9dcg0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Lisbon\",\r\n title: \"Lisbon\",\r\n winIndex: 26,\r\n offsets: [-.6125, 0, 1, 2],\r\n offsetIndices: \"012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121212121212121212121212121212121212122323232212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-u9rfmr|2bue6r|6zxg0|66580|bq800|73k00|bodc0|71pc0|bq800|73k00|bq800|71pc0|bq800|1b2g00|9b6o0|saio0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|st1c0|8n400|9d1c0|9d1c0|sg2o0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|bitc0|9d1c0|9ew00|88ao0|25p80|5reo0|3lpg0|779c0|1sqk0|6uao0|38qs0|6uao0|25p80|6hc00|38qs0|6uao0|25p80|6hc00|38qs0|8a5c0|9d1c0|9d9o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|s3400|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|5gyl40|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d440|9cyk0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9cyk0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/London\",\r\n title: \"London\",\r\n winIndex: 26,\r\n offsets: [0, 1, 2],\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-rzcns0|6uao0|9q000|8c000|9o5c0|9ruo0|9b6o0|9ew00|9b6o0|auqo0|88ao0|9ew00|8y800|a2yo0|a2yo0|7k800|asw00|8a5c0|asw00|8n400|a2yo0|8n400|9q000|902o0|afxc0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|a2yo0|b5uo0|51hc0|mbmk0|51hc0|c8qo0|6hc00|c8qo0|6uao0|bvs00|8n400|a4tc0|5clc0|4bms0|9q000|902o0|8a5c0|1frw0|64dc0|4bms0|6uao0|bvs00|7x6o0|asw00|8n400|9q000|902o0|9q000|9d1c0|9q000|902o0|8n400|9q000|902o0|a2yo0|8n400|afxc0|8n400|9q000|902o0|a2yo0|8n400|a2yo0|8n400|9q000|902o0|902o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|5reo0|1xhuo0|779c0|bitc0|779c0|bitc0|779c0|bitc0|779c0|bitc0|7k800|b5uo0|7k800|b5uo0|7k800|bitc0|779c0|bitc0|779c0|bitc0|7x3w0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|8a5c0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Luxembourg\",\r\n title: \"Luxembourg\",\r\n winIndex: 27,\r\n offsets: [.41000000000000003, 1, 2, 0],\r\n offsetIndices: \"0121212131313131313131313131313131313131313131313131212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-y89550|68l290|75hg0|ast80|796s0|at1k0|7x6o0|3lh40|4zmo0|b6300|6u2c0|cytk0|7at40|bktk0|7rh40|a31g0|a2vw0|8n9k0|8zx40|9q2s0|9et80|9b9g0|a2vw0|8n6s0|9px80|905g0|a2vw0|905g0|a2vw0|8ncc0|9q000|902o0|a2yo0|8n400|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51hc0|42ao0|1aeak0|7k800|9q000|9d1c0|8n400|a2yo0|8l9c0|clpc0|79400|fwu800|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Madrid\",\r\n title: \"Madrid\",\r\n winIndex: 62,\r\n offsets: [0, 1, 2],\r\n offsetIndices: \"01010101010101010101010121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-rhcqs0|7x6o0|9tpc0|8y800|9b6o0|9gqo0|2d2yo0|8so00|st1c0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|3zb9c0|6uao0|8so00|9xeo0|a2yo0|902o0|8a5c0|13yt80|69xc0|bq800|8oyo0|a1400|95mo0|9kg00|8n6s0|a2vw0|8oyo0|1ck5c0|7tk40|ct07w0|905g0|a2vw0|8n6s0|8zzw0|9d440|9px80|905g0|9rrw0|9b9g0|9d6w0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Malta\",\r\n title: \"Malta\",\r\n winIndex: 27,\r\n offsets: [1, 2],\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-ryotg0|66800|9d1c0|9d1c0|8a5c0|asw00|7k800|b5uo0|8n400|9d1c0|aau000|18r9k0|7k800|9q000|9d1c0|9d1c0|9d1c0|8j940|9f1k0|afxc0|89zs0|afxc0|7kdk0|b5uo0|979rs0|6h980|cls40|64ak0|cls40|64ak0|cyqs0|64ak0|cls40|64ak0|c8tg0|6hc00|clpc0|6h980|9b9g0|9d1c0|ahs00|7m2o0|b45k0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|asys0|7x3w0|a4w40|8y580|9q2s0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Minsk\",\r\n title: \"Minsk\",\r\n winIndex: 96,\r\n offsets: [1.8333333333333333, 2, 3, 1, 4],\r\n offsetIndices: \"012131312424242424242424242212121212121212121212121212121212121212122\",\r\n untils: \"-nu113c|379zjc|5r1mk0|pbf40|7k800|9q000|9d1c0|4oac0|j6dmk0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|sg2o0|9d440|9cvs0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbx40|Infinity\"\r\n}, {\r\n id: \"Europe/Monaco\",\r\n title: \"Monaco\",\r\n winIndex: 27,\r\n offsets: [.15583333333333332, 0, 1, 2],\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-uozn3l|2qx1nl|5luo0|8y800|a4tc0|7vc00|auqo0|7idc0|b7pc0|6sg00|cyo00|7ayo0|bko00|7rmo0|a2yo0|bvs00|6uao0|902o0|9q000|9d1c0|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51po0|mdbo0|7x3w0|7x9g0|c8w80|7k800|9q000|9d1c0|9nzs0|922w0|8l9c0|fxlx80|9cyk0|9q5k0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Moscow\",\r\n title: \"Moscow\",\r\n winIndex: 58,\r\n offsets: [2.504722222222222, 2.5219444444444443, 3.5219444444444443, 4.521944444444444, 4, 3, 5, 2],\r\n offsetIndices: \"012132345464575454545454545454545455754545454545454545454545454545454545454545\",\r\n untils: \"-rx5dmh|ipzua|97hc0|7yyk0|5i840|d9p80|1jpk0|2d2k7|s8o00|1qvw0|8fpc0|1jms0|is040|412as0|qi27w0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|5reo0|3ljw0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\"\r\n}, {\r\n id: \"Europe/Oslo\",\r\n title: \"Oslo\",\r\n winIndex: 27,\r\n offsets: [1, 2],\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-rzayo0|6qfs0|cgcqo0|15tsc0|7k800|9q000|9d1c0|9d1c0|9d1c0|9d1c0|70q5c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|b5uo0|7k800|7law00|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Paris\",\r\n title: \"Paris\",\r\n winIndex: 62,\r\n offsets: [.15583333333333332, 0, 1, 2],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212123232332323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-uozn1x|2qx1lx|5luo0|8y800|a4tc0|7vc00|auqo0|7idc0|b7pc0|6sg00|cyo00|7ayo0|bko00|7rmo0|a2yo0|bvs00|6uao0|902o0|9q000|9d1c0|9d1c0|a2yo0|8n400|9q000|902o0|a2yo0|902o0|a2yo0|8n400|9q000|902o0|a2yo0|8n400|9d1c0|9d1c0|902o0|a2yo0|9d1c0|9d1c0|902o0|9q000|a2yo0|8n400|9d1c0|9d1c0|902o0|9q000|a2yo0|b5uo0|51po0|5p8w0|18rcc0|7k800|9q000|9d1c0|7efo0|29k40|922w0|8l9c0|fxlx80|9cyk0|9q5k0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Prague\",\r\n title: \"Prague\",\r\n winIndex: 60,\r\n offsets: [1, 2],\r\n offsetIndices: \"010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|b8qdc0|1cm000|7k800|9q000|9d1c0|8l9c0|afxc0|bitc0|8oyo0|7vc00|a2yo0|8n400|a2yo0|8n400|9o5c0|91xc0|fe6000|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Riga\",\r\n title: \"Riga\",\r\n winIndex: 59,\r\n offsets: [1.6094444444444445, 2.6094444444444442, 2, 3, 1, 4],\r\n offsetIndices: \"010102324242435353535353535353323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-qznlky|7x6o0|a4tc0|2mg00|3myns0|7fhlky|gz180|p5v40|7k800|9q000|9d1c0|9d1c0|k7s0|j14ns0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d440|asw00|7x6o0|asw00|7x6o0|b5uo0|qaao0|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Rome\",\r\n title: \"Rome\",\r\n winIndex: 27,\r\n offsets: [1, 2],\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-ryotg0|66800|9d1c0|9d1c0|8a5c0|asw00|7k800|b5uo0|8n400|9d1c0|aau000|18r9k0|7k800|9q000|9d1c0|8l3s0|a4yw0|8j940|9f1k0|afxc0|89zs0|afxc0|7kdk0|b5uo0|979rs0|6h980|cls40|64ak0|cls40|64ak0|cyqs0|64ak0|cls40|64ak0|c8tg0|6hc00|clpc0|6h980|cls40|64ak0|c8tg0|6h980|cls40|64dc0|clpc0|64dc0|c8qo0|6hc00|clpc0|6hc00|c8qo0|6hc00|9q5k0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Samara\",\r\n title: \"Samara\",\r\n winIndex: 58,\r\n offsets: [3.338888888888889, 3, 4, 5],\r\n offsetIndices: \"012232323232323232322121112323232323232323232323232323232323232212\",\r\n untils: \"-qcx7pw|5q63dw|2egvw0|o3lc00|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|9d1c0|9d440|12w00|89zs0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5xg0|7k800|Infinity\"\r\n}, {\r\n id: \"Europe/Simferopol\",\r\n title: \"Simferopol\",\r\n winIndex: 58,\r\n offsets: [2.2666666666666666, 2, 3, 1, 4],\r\n offsetIndices: \"012131312424242424242424242121212424242212121212121212121212121212121212142\",\r\n untils: \"-nu12ao|37a0qo|5xiyk0|iu340|7k800|9q000|9d1c0|iac0|jajmk0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|eeio0|wrjw0|9cyk0|9d440|9cyk0|9d440|1sqk0|7k580|9d440|9cyk0|9q2s0|at4c0|7x9g0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x3w0|asqg0|Infinity\"\r\n}, {\r\n id: \"Europe/Sofia\",\r\n title: \"Sofia\",\r\n winIndex: 59,\r\n offsets: [2, 1, 3],\r\n offsetIndices: \"01010102020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020\",\r\n untils: \"-e6dzw0|7k800|9q000|9d1c0|9d1c0|9d440|hqq240|9eys0|9o2k0|92040|9o2k0|90880|9pug0|90b00|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9cvs0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|ast80|7xhs0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Stockholm\",\r\n title: \"Stockholm\",\r\n winIndex: 27,\r\n offsets: [1, 2],\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-rzo2w0|75hg0|x5bew0|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Tallinn\",\r\n title: \"Tallinn\",\r\n winIndex: 59,\r\n offsets: [1.65, 1, 2, 3, 4],\r\n offsetIndices: \"012102321212343434343434343433232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232\",\r\n untils: \"-r3exx0|3re10|7x6o0|et6g0|ygov0|a1zgd0|ktx80|l94g0|7k800|9q000|9d1c0|8uac0|j27mk0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asys0|7x6o0|b5uo0|19dc00|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Tirane\",\r\n title: \"Tirane\",\r\n winIndex: 60,\r\n offsets: [1.3222222222222222, 1, 2],\r\n offsetIndices: \"01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-t85vo8|dt2gw8|18pew0|7k800|m800|g7ot40|7rjw0|autg0|7x3w0|ayis0|7x3w0|b5xg0|7k580|b42s0|7lzw0|b42s0|7lzw0|b42s0|7x3w0|ahus0|7x3w0|b5xg0|7x3w0|a4w40|8jbw0|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Uzhgorod\",\r\n title: \"Uzhgorod\",\r\n winIndex: 59,\r\n offsets: [1, 2, 3, 4],\r\n offsetIndices: \"010101023232323232323232320121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-fizzw0|1cm000|7k800|9q000|9d1c0|al900|cnms0|int140|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|eeio0|e1sc0|iprk0|9cyk0|9d440|9cyk0|9d440|9cyk0|9dcg0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Vienna\",\r\n title: \"Vienna\",\r\n winIndex: 27,\r\n offsets: [1, 2],\r\n offsetIndices: \"0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-s0e080|7ves0|a4yw0|7x6o0|asw00|7x6o0|t6000|8a5c0|a7a800|1cm000|7k800|9q000|9d1c0|9d1c0|9d1c0|iio0|ivmo0|902o0|9d1c0|9d1c0|a2yo0|8n400|gfyyg0|8zzw0|9d9o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Vilnius\",\r\n title: \"Vilnius\",\r\n winIndex: 59,\r\n offsets: [1.4, 1.5933333333333333, 1, 2, 3, 4],\r\n offsetIndices: \"012324323234545454545454545443434343434343434332334343434343434343434343434343434343434343434343434343434343434343434343\",\r\n untils: \"-rns980|1g224o|e75nc|4kqk0|acbs40|gpp40|pits0|7k800|9q000|9d1c0|65zo0|j4vx80|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x9g0|asw00|7x6o0|b5uo0|1s3eo0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Volgograd\",\r\n title: \"Volgograd\",\r\n winIndex: 58,\r\n offsets: [2.961111111111111, 3, 4, 5],\r\n offsetIndices: \"011223232323232323221212122121212121212121212121212121212121212121\",\r\n untils: \"-q3cw84|2qrjw4|2pu800|gdt980|a48yo0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9d1c0|9d1c0|9q000|9d1c0|ipzw0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|1vbzw0|Infinity\"\r\n}, {\r\n id: \"Europe/Warsaw\",\r\n title: \"Warsaw\",\r\n winIndex: 51,\r\n offsets: [1.4, 1, 2, 3],\r\n offsetIndices: \"012121223212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-se9yk0|dvyc0|7ves0|a4yw0|7x6o0|asw00|7x6o0|aunw0|7x6o0|1evbs0|9fcwc0|18cao0|7k800|9q000|9d1c0|9gnw0|an980|9kd80|8fs40|922w0|ar1c0|7x6o0|a2yo0|8n400|9q000|902o0|4013w0|64dc0|9d1c0|9d1c0|clpc0|6hc00|9d1c0|9d1c0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|clpc0|64dc0|6j4tc0|902o0|9q000|9d1c0|9d1c0|9d1c0|9q000|902o0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d440|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Zaporozhye\",\r\n title: \"Zaporozhye\",\r\n winIndex: 59,\r\n offsets: [2.3333333333333335, 2, 3, 1, 4],\r\n offsetIndices: \"01213132424242424242424242422121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-nu12hc|37a0xc|5u1180|mc0g0|7k800|9q000|12qg0|jjc7s0|9et80|9d440|9et80|9d440|9et80|9eys0|9d6w0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9cvs0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9dcg0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Europe/Zurich\",\r\n title: \"Zurich\",\r\n winIndex: 27,\r\n offsets: [1, 2],\r\n offsetIndices: \"01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-eyh6o0|7x6o0|asw00|7x6o0|k2zus0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9d1c0|9q000|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|7x6o0|b5uo0|7k800|b5uo0|7k800|b5uo0|7k800|b5uo0|7x6o0|asw00|7x6o0|asw00|Infinity\"\r\n}, {\r\n id: \"Indian/Chagos\",\r\n title: \"Chagos\",\r\n winIndex: 21,\r\n offsets: [4.827777777777778, 5, 6],\r\n offsetIndices: \"012\",\r\n untils: \"-wvpc2s|1ag64us|Infinity\"\r\n}, {\r\n id: \"Indian/Christmas\",\r\n title: \"Christmas\",\r\n winIndex: 6,\r\n offsets: [7],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Indian/Cocos\",\r\n title: \"Cocos\",\r\n winIndex: 87,\r\n offsets: [6.5],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Indian/Kerguelen\",\r\n title: \"Kerguelen\",\r\n winIndex: 17,\r\n offsets: [0, 5],\r\n offsetIndices: \"01\",\r\n untils: \"-afrs00|Infinity\"\r\n}, {\r\n id: \"Indian/Mahe\",\r\n title: \"Mahe\",\r\n winIndex: 97,\r\n offsets: [3.6966666666666668, 4],\r\n offsetIndices: \"01\",\r\n untils: \"-x6pjlo|Infinity\"\r\n}, {\r\n id: \"Indian/Maldives\",\r\n title: \"Maldives\",\r\n winIndex: 17,\r\n offsets: [4.9, 5],\r\n offsetIndices: \"01\",\r\n untils: \"-57x6y0|Infinity\"\r\n}, {\r\n id: \"Indian/Mauritius\",\r\n title: \"Mauritius\",\r\n winIndex: 97,\r\n offsets: [3.8333333333333335, 4, 5],\r\n offsetIndices: \"012121\",\r\n untils: \"-wvp9bc|13jnu7c|8bx80|dd0wc0|7x3w0|Infinity\"\r\n}, {\r\n id: \"Indian/Reunion\",\r\n title: \"Reunion\",\r\n winIndex: 97,\r\n offsets: [3.697777777777778, 4],\r\n offsetIndices: \"01\",\r\n untils: \"-uks29s|Infinity\"\r\n}, {\r\n id: \"MST7MDT\",\r\n title: \"MST7MDT\",\r\n winIndex: 15,\r\n offsets: [-7, -6],\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-r0epo0|ast80|7x9g0|ast80|bmtus0|1tz5k0|2dvo0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"Pacific/Apia\",\r\n title: \"Apia\",\r\n winIndex: 98,\r\n offsets: [-11.448888888888888, -11.5, -11, -10, 14, 13],\r\n offsetIndices: \"01232345454545454545454545454545454545454545454545454545454\",\r\n untils: \"-usiiv4|kcrmt4|vp3la0|9odo0|902o0|4zbk0|4qog0|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\"\r\n}, {\r\n id: \"Pacific/Auckland\",\r\n title: \"Auckland\",\r\n winIndex: 8,\r\n offsets: [11.5, 12.5, 12, 13],\r\n offsetIndices: \"01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323\",\r\n untils: \"-m01p20|64ak0|biw40|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|8a3y0|afyq0|8a3y0|afyq0|afvy0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|asum0|7x820|b5ta0|7k9e0|b5ta0|7x820|hsl2m0|5reo0|clpc0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6hc00|c8qo0|6uao0|c8qo0|6hc00|b5uo0|8a5c0|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|afxc0|8a5c0|afxc0|8a5c0|afxc0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|8n400|a2yo0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|a2yo0|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|902o0|9q000|9d1c0|9q000|902o0|9q000|902o0|Infinity\"\r\n}, {\r\n id: \"Pacific/Chuuk\",\r\n title: \"Chuuk\",\r\n winIndex: 50,\r\n offsets: [10],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Pacific/Efate\",\r\n title: \"Efate\",\r\n winIndex: 48,\r\n offsets: [11.22111111111111, 11, 12],\r\n offsetIndices: \"0121212121212121212121\",\r\n untils: \"-u964i4|11f4ba4|9cyk0|awo40|7tek0|9q2s0|8zzw0|9q2s0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9q2s0|64ak0|e1ms0|4ofw0|Infinity\"\r\n}, {\r\n id: \"Pacific/Enderbury\",\r\n title: \"Enderbury\",\r\n winIndex: 94,\r\n offsets: [-12, -11, 13],\r\n offsetIndices: \"012\",\r\n untils: \"535io0|7ykl80|Infinity\"\r\n}, {\r\n id: \"Pacific/Fakaofo\",\r\n title: \"Fakaofo\",\r\n winIndex: 94,\r\n offsets: [-11, 13],\r\n offsetIndices: \"01\",\r\n untils: \"lx0jw0|Infinity\"\r\n}, {\r\n id: \"Pacific/Fiji\",\r\n title: \"Fiji\",\r\n winIndex: 99,\r\n offsets: [11.928888888888888, 12, 13],\r\n offsetIndices: \"0121212121212121212121212121212121212121212121212121212121212121\",\r\n untils: \"-sa2x4w|17bs00w|64dc0|cyo00|5reo0|53a5c0|64dc0|asw00|6uao0|bvs00|4oio0|e1k00|4oio0|eeio0|4bh80|erk40|3ylc0|erhc0|3ylc0|f4g00|3lmo0|f4g00|3ylc0|erhc0|3ylc0|erhc0|3ylc0|erhc0|3ylc0|f4g00|3lmo0|f4g00|3lmo0|f4g00|3ylc0|erhc0|3ylc0|erhc0|3ylc0|erhc0|3ylc0|f4g00|3lmo0|f4g00|3ylc0|erhc0|3ylc0|erhc0|3ylc0|erhc0|3ylc0|f4g00|3lmo0|f4g00|3lmo0|f4g00|3ylc0|erhc0|3ylc0|erhc0|3ylc0|erhc0|3ylc0|Infinity\"\r\n}, {\r\n id: \"Pacific/Funafuti\",\r\n title: \"Funafuti\",\r\n winIndex: 44,\r\n offsets: [12],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Pacific/Galapagos\",\r\n title: \"Galapagos\",\r\n winIndex: 67,\r\n offsets: [-5.973333333333333, -5, -6],\r\n offsetIndices: \"012\",\r\n untils: \"-kcr62o|spdryo|Infinity\"\r\n}, {\r\n id: \"Pacific/Guadalcanal\",\r\n title: \"Guadalcanal\",\r\n winIndex: 48,\r\n offsets: [10.663333333333332, 11],\r\n offsetIndices: \"01\",\r\n untils: \"-tvowac|Infinity\"\r\n}, {\r\n id: \"Pacific/Guam\",\r\n title: \"Guam\",\r\n winIndex: 50,\r\n offsets: [10],\r\n offsetIndices: \"00\",\r\n untils: \"g5z2w0|Infinity\"\r\n}, {\r\n id: \"Pacific/Honolulu\",\r\n title: \"Honolulu\",\r\n winIndex: 57,\r\n offsets: [-10.5, -9.5, -10],\r\n offsetIndices: \"010102\",\r\n untils: \"-j50la0|13l00|4jvb00|1wd180|votg0|Infinity\"\r\n}, {\r\n id: \"Pacific/Kiritimati\",\r\n title: \"Kiritimati\",\r\n winIndex: 95,\r\n offsets: [-10.666666666666666, -10, 14],\r\n offsetIndices: \"012\",\r\n untils: \"535eyo|7ykm5c|Infinity\"\r\n}, {\r\n id: \"Pacific/Kosrae\",\r\n title: \"Kosrae\",\r\n winIndex: 48,\r\n offsets: [11, 12],\r\n offsetIndices: \"010\",\r\n untils: \"-4r7w0|f9l3w0|Infinity\"\r\n}, {\r\n id: \"Pacific/Kwajalein\",\r\n title: \"Kwajalein\",\r\n winIndex: 44,\r\n offsets: [11, -12, 12],\r\n offsetIndices: \"012\",\r\n untils: \"-4r7w0|cgtbw0|Infinity\"\r\n}, {\r\n id: \"Pacific/Majuro\",\r\n title: \"Majuro\",\r\n winIndex: 44,\r\n offsets: [11, 12],\r\n offsetIndices: \"01\",\r\n untils: \"-4r7w0|Infinity\"\r\n}, {\r\n id: \"Pacific/Midway\",\r\n title: \"Midway\",\r\n winIndex: 49,\r\n link: 530\r\n}, {\r\n id: \"Pacific/Nauru\",\r\n title: \"Nauru\",\r\n winIndex: 44,\r\n offsets: [11.127777777777776, 11.5, 9, 12],\r\n offsetIndices: \"01213\",\r\n untils: \"-pjxiws|b1kxms|19h8a0|i43qe0|Infinity\"\r\n}, {\r\n id: \"Pacific/Niue\",\r\n title: \"Niue\",\r\n winIndex: 49,\r\n offsets: [-11.333333333333334, -11.5, -11],\r\n offsetIndices: \"012\",\r\n untils: \"-9wyz6o|ehcj4o|Infinity\"\r\n}, {\r\n id: \"Pacific/Noumea\",\r\n title: \"Noumea\",\r\n winIndex: 48,\r\n offsets: [11.096666666666666, 11, 12],\r\n offsetIndices: \"01212121\",\r\n untils: \"-u9645o|ye0ixo|4dbw0|ecqs0|4f6k0|99p700|4oio0|Infinity\"\r\n}, {\r\n id: \"Pacific/Pago_Pago\",\r\n title: \"Pago Pago\",\r\n winIndex: 49,\r\n offsets: [-11.379999999999999, -11],\r\n offsetIndices: \"0111\",\r\n untils: \"-usij20|tcsey0|8p4800|Infinity\"\r\n}, {\r\n id: \"Pacific/Palau\",\r\n title: \"Palau\",\r\n winIndex: 43,\r\n offsets: [9],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Pacific/Pohnpei\",\r\n title: \"Pohnpei\",\r\n winIndex: 48,\r\n offsets: [11],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Pacific/Port_Moresby\",\r\n title: \"Port Moresby\",\r\n winIndex: 50,\r\n offsets: [10],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Pacific/Rarotonga\",\r\n title: \"Rarotonga\",\r\n winIndex: 57,\r\n offsets: [-10.5, -9.5, -10],\r\n offsetIndices: \"012121212121212121212121212\",\r\n untils: \"4mj960|5rbw0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|6ham0|Infinity\"\r\n}, {\r\n id: \"Pacific/Saipan\",\r\n title: \"Saipan\",\r\n winIndex: 50,\r\n link: 520\r\n}, {\r\n id: \"Pacific/Tahiti\",\r\n title: \"Tahiti\",\r\n winIndex: 57,\r\n offsets: [-9.97111111111111, -10],\r\n offsetIndices: \"01\",\r\n untils: \"-tvnayw|Infinity\"\r\n}, {\r\n id: \"Pacific/Tarawa\",\r\n title: \"Tarawa\",\r\n winIndex: 44,\r\n offsets: [12],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Pacific/Tongatapu\",\r\n title: \"Tongatapu\",\r\n winIndex: 94,\r\n offsets: [12.333333333333334, 13, 14],\r\n offsetIndices: \"01212121\",\r\n untils: \"-f4vrlc|uo2edc|8fpc0|bvs00|4bh80|eelg0|4bh80|Infinity\"\r\n}, {\r\n id: \"Pacific/Wake\",\r\n title: \"Wake\",\r\n winIndex: 44,\r\n offsets: [12],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"Pacific/Wallis\",\r\n title: \"Wallis\",\r\n winIndex: 44,\r\n offsets: [12],\r\n offsetIndices: \"0\",\r\n untils: \"Infinity\"\r\n}, {\r\n id: \"PST8PDT\",\r\n title: \"PST8PDT\",\r\n winIndex: 11,\r\n offsets: [-8, -7],\r\n offsetIndices: \"010101101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010\",\r\n untils: \"-r0emw0|ast80|7x9g0|ast80|bmtus0|1tz2s0|2dyg0|b9gdg0|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|9d440|9cyk0|9d440|9cyk0|3lpg0|f4d80|64g40|clmk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|9d440|9px80|905g0|9px80|9d440|9cyk0|9d440|9cyk0|9d440|9cyk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|8a840|afuk0|8a840|afuk0|8a840|ast80|7x9g0|ast80|7x9g0|ast80|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6udg0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|6hes0|c8nw0|Infinity\"\r\n}, {\r\n id: \"Australia/Eucla\",\r\n title: \"Eucla\",\r\n winIndex: 100,\r\n offsets: [8.591111111111111, 8.75, 9.75],\r\n offsetIndices: \"01212121212121212121\",\r\n untils: \"-12nxx74|b053ls|49s2c|cxfms0|4h180|9d440|9cyk0|ghf1g0|6hc00|4ir9c0|6hc00|40r400|5eg00|7p9hc0|5reo0|b5uo0|7x6o0|asw00|7x6o0|Infinity\"\r\n}, {\r\n id: \"Australia/Lord_Howe\",\r\n title: \"Eucla\",\r\n winIndex: 101,\r\n offsets: [10.605555555555556, 10, 10.5, 11.5, 11],\r\n offsetIndices: \"01232323232424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424\",\r\n untils: \"-133j6sk|18x8f0k|c8uu0|6u7w0|c8tg0|6h980|c8tg0|6h980|c8tg0|6h980|c8tg0|777y0|b5w20|7k6m0|biuq0|7k6m0|biuq0|777y0|biuq0|6ham0|c8s20|6ham0|c8s20|6ham0|c8s20|6u9a0|c8s20|6ham0|c8s20|6ham0|c8s20|7x5a0|asxe0|7x5a0|asxe0|7x5a0|asxe0|7x5a0|b5w20|7k6m0|7x820|asum0|b5w20|7x5a0|asxe0|7x5a0|asxe0|7x5a0|b5w20|7k6m0|b5w20|7x5a0|asxe0|7k6m0|b5w20|8a3y0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9pym0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9d2q0|9czy0|9q1e0|9czy0|9d2q0|9czy0|9d2q0|Infinity\"\r\n}];\r\nmodule.exports = {\r\n displayNames: displayNames,\r\n timezones: timezones\r\n};\r\n","/**\r\n * DevExtreme (ui/scheduler/ui.scheduler.table_creator.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _dom_adapter = require(\"../../core/dom_adapter\");\r\nvar _dom_adapter2 = _interopRequireDefault(_dom_adapter);\r\nvar _element_data = require(\"../../core/element_data\");\r\nvar _element_data2 = _interopRequireDefault(_element_data);\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _type2 = _interopRequireDefault(_type);\r\nvar _dom = require(\"../../core/utils/dom\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ROW_SELECTOR = \"tr\";\r\nvar SchedulerTableCreator = {\r\n VERTICAL: \"vertical\",\r\n HORIZONTAL: \"horizontal\",\r\n insertAllDayRow: function(allDayElements, tableBody, index) {\r\n if (allDayElements[index]) {\r\n var row = allDayElements[index].find(ROW_SELECTOR);\r\n if (!row.length) {\r\n row = (0, _renderer2.default)(_dom_adapter2.default.createElement(ROW_SELECTOR));\r\n row.append(allDayElements[index].get(0))\r\n }\r\n tableBody.appendChild(row.get ? row.get(0) : row)\r\n }\r\n },\r\n makeTable: function(options) {\r\n var tableBody = _dom_adapter2.default.createElement(\"tbody\");\r\n var templateCallbacks = [];\r\n var row;\r\n var rowCountInGroup = options.groupCount ? options.rowCount / options.groupCount : options.rowCount;\r\n var allDayElementIndex = 0;\r\n var allDayElements = options.allDayElements;\r\n var groupIndex = options.groupIndex;\r\n var rowCount = options.rowCount;\r\n (0, _renderer2.default)(options.container).append(tableBody);\r\n if (allDayElements) {\r\n this.insertAllDayRow(allDayElements, tableBody, 0);\r\n allDayElementIndex++\r\n }\r\n for (var i = 0; i < rowCount; i++) {\r\n row = _dom_adapter2.default.createElement(ROW_SELECTOR);\r\n tableBody.appendChild(row);\r\n var isLastRowInGroup = (i + 1) % rowCountInGroup === 0;\r\n if (options.rowClass) {\r\n row.className = options.rowClass\r\n }\r\n for (var j = 0; j < options.cellCount; j++) {\r\n var td = _dom_adapter2.default.createElement(\"td\");\r\n row.appendChild(td);\r\n if (options.cellClass) {\r\n if (_type2.default.isFunction(options.cellClass)) {\r\n td.className = options.cellClass(i, j)\r\n } else {\r\n td.className = options.cellClass\r\n }\r\n }\r\n var cellDataObject = void 0;\r\n var dataKey = void 0;\r\n var dataValue = void 0;\r\n if (options.getCellData) {\r\n cellDataObject = options.getCellData(td, i, j, groupIndex);\r\n dataKey = cellDataObject.key;\r\n dataValue = cellDataObject.value;\r\n dataKey && _element_data2.default.data(td, dataKey, dataValue)\r\n }\r\n if (options.cellTemplate && options.cellTemplate.render) {\r\n var templateOptions = {\r\n model: {\r\n text: options.getCellText ? options.getCellText(i, j) : \"\",\r\n date: options.getCellDate ? options.getCellDate(i) : void 0\r\n },\r\n container: (0, _dom.getPublicElement)((0, _renderer2.default)(td)),\r\n index: i * options.cellCount + j\r\n };\r\n if (dataValue) {\r\n if (dataValue.startDate) {\r\n templateOptions.model.startDate = dataValue.startDate\r\n }\r\n if (dataValue.endDate) {\r\n templateOptions.model.endDate = dataValue.endDate\r\n }\r\n if (dataValue.groups) {\r\n templateOptions.model.groups = dataValue.groups\r\n }\r\n if (dataValue.allDay) {\r\n templateOptions.model.allDay = dataValue.allDay\r\n }\r\n }\r\n templateCallbacks.push(options.cellTemplate.render.bind(options.cellTemplate, templateOptions))\r\n } else {\r\n if (options.getCellText) {\r\n td.innerHTML = \"
\" + options.getCellText(i, j) + \"
\"\r\n }\r\n }\r\n }\r\n if (allDayElements && isLastRowInGroup) {\r\n this.insertAllDayRow(allDayElements, tableBody, allDayElementIndex);\r\n allDayElementIndex++\r\n }\r\n }\r\n return templateCallbacks\r\n },\r\n makeGroupedTable: function(type, groups, cssClasses, cellCount, cellTemplate, rowCount, groupByDate) {\r\n var rows = [];\r\n if (type === this.VERTICAL) {\r\n rows = this._makeVerticalGroupedRows(groups, cssClasses, cellTemplate, rowCount)\r\n } else {\r\n rows = this._makeHorizontalGroupedRows(groups, cssClasses, cellCount, cellTemplate, groupByDate)\r\n }\r\n return rows\r\n },\r\n makeGroupedTableFromJSON: function(type, data, config) {\r\n var table;\r\n var cellStorage = [];\r\n var rowIndex = 0;\r\n config = config || {};\r\n var cellTag = config.cellTag || \"td\";\r\n var childrenField = config.childrenField || \"children\";\r\n var titleField = config.titleField || \"title\";\r\n var groupTableClass = config.groupTableClass;\r\n var groupRowClass = config.groupRowClass;\r\n var groupCellClass = config.groupCellClass;\r\n var groupCellCustomContent = config.groupCellCustomContent;\r\n\r\n function createTable() {\r\n table = _dom_adapter2.default.createElement(\"table\");\r\n if (groupTableClass) {\r\n table.className = groupTableClass\r\n }\r\n }\r\n\r\n function getChildCount(item) {\r\n if (item[childrenField]) {\r\n return item[childrenField].length\r\n }\r\n return 0\r\n }\r\n\r\n function createCell(text, childCount, index, data) {\r\n var cell = {\r\n element: _dom_adapter2.default.createElement(cellTag),\r\n childCount: childCount\r\n };\r\n if (groupCellClass) {\r\n cell.element.className = groupCellClass\r\n }\r\n var cellText = _dom_adapter2.default.createTextNode(text);\r\n if (\"function\" === typeof groupCellCustomContent) {\r\n groupCellCustomContent(cell.element, cellText, index, data)\r\n } else {\r\n cell.element.appendChild(cellText)\r\n }\r\n return cell\r\n }\r\n\r\n function generateCells(data) {\r\n for (var i = 0; i < data.length; i++) {\r\n var childCount = getChildCount(data[i]);\r\n var cell = createCell(data[i][titleField], childCount, i, data[i]);\r\n if (!cellStorage[rowIndex]) {\r\n cellStorage[rowIndex] = []\r\n }\r\n cellStorage[rowIndex].push(cell);\r\n if (childCount) {\r\n generateCells(data[i][childrenField])\r\n } else {\r\n rowIndex++\r\n }\r\n }\r\n }\r\n\r\n function putCellsToRows() {\r\n cellStorage.forEach(function(cells) {\r\n var row = _dom_adapter2.default.createElement(ROW_SELECTOR);\r\n if (groupRowClass) {\r\n row.className = groupRowClass\r\n }\r\n var rowspans = [];\r\n for (var i = cells.length - 1; i >= 0; i--) {\r\n var prev = cells[i + 1];\r\n var rowspan = cells[i].childCount;\r\n if (prev && prev.childCount) {\r\n rowspan *= prev.childCount\r\n }\r\n rowspans.push(rowspan)\r\n }\r\n rowspans.reverse();\r\n cells.forEach(function(cell, index) {\r\n if (rowspans[index]) {\r\n cell.element.setAttribute(\"rowSpan\", rowspans[index])\r\n }\r\n row.appendChild(cell.element)\r\n });\r\n table.appendChild(row)\r\n })\r\n }\r\n createTable();\r\n generateCells(data);\r\n putCellsToRows();\r\n return table\r\n },\r\n _makeFlexGroupedRowCells: function(group, repeatCount, cssClasses, cellTemplate) {\r\n var repeatByDate = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 1;\r\n var cells = [];\r\n var items = group.items;\r\n var itemCount = items.length;\r\n for (var i = 0; i < repeatCount * repeatByDate; i++) {\r\n for (var j = 0; j < itemCount; j++) {\r\n var $container = (0, _renderer2.default)(\"
\");\r\n var cell = {};\r\n if (cellTemplate && cellTemplate.render) {\r\n var templateOptions = {\r\n model: items[j],\r\n container: (0, _dom.getPublicElement)($container),\r\n index: i * itemCount + j\r\n };\r\n if (group.data) {\r\n templateOptions.model.data = group.data[j]\r\n }\r\n cell.template = cellTemplate.render.bind(cellTemplate, templateOptions)\r\n } else {\r\n $container.text(items[j].text).attr(\"title\", items[j].text).addClass(\"dx-scheduler-group-header-content\");\r\n $container = (0, _renderer2.default)(\"
\").append($container)\r\n }\r\n var cssClass = _type2.default.isFunction(cssClasses.groupHeaderClass) ? cssClasses.groupHeaderClass(j) : cssClasses.groupHeaderClass;\r\n cell.element = $container.addClass(cssClass);\r\n cells.push(cell)\r\n }\r\n }\r\n return cells\r\n },\r\n _makeVerticalGroupedRows: function(groups, cssClasses, cellTemplate) {\r\n var cellTemplates = [];\r\n var repeatCount = 1;\r\n var cellsArray = [];\r\n var cellIterator = function(cell) {\r\n if (cell.template) {\r\n cellTemplates.push(cell.template)\r\n }\r\n };\r\n for (var i = 0; i < groups.length; i++) {\r\n if (i > 0) {\r\n repeatCount = groups[i - 1].items.length * repeatCount\r\n }\r\n var cells = this._makeFlexGroupedRowCells(groups[i], repeatCount, cssClasses, cellTemplate);\r\n cells.forEach(cellIterator);\r\n cellsArray.push(cells)\r\n }\r\n var rows = [];\r\n var groupCount = cellsArray.length;\r\n for (var _i = 0; _i < groupCount; _i++) {\r\n rows.push((0, _renderer2.default)(\"
\").addClass(cssClasses.groupHeaderRowClass))\r\n }\r\n for (var _i2 = groupCount - 1; _i2 >= 0; _i2--) {\r\n var currentColumnLength = cellsArray[_i2].length;\r\n for (var j = 0; j < currentColumnLength; j++) {\r\n rows[_i2].append(cellsArray[_i2][j].element)\r\n }\r\n }\r\n return {\r\n elements: (0, _renderer2.default)(\"
\").addClass(\"dx-scheduler-group-flex-container\").append(rows),\r\n cellTemplates: cellTemplates\r\n }\r\n },\r\n _makeHorizontalGroupedRows: function(groups, cssClasses, cellCount, cellTemplate, groupByDate) {\r\n var repeatCount = 1;\r\n var groupCount = groups.length;\r\n var rows = [];\r\n var cellTemplates = [];\r\n var repeatByDate = groupByDate ? cellCount : 1;\r\n var cellIterator = function(cell) {\r\n if (cell.template) {\r\n cellTemplates.push(cell.template)\r\n }\r\n return cell.element\r\n };\r\n for (var i = 0; i < groupCount; i++) {\r\n if (i > 0) {\r\n repeatCount = groups[i - 1].items.length * repeatCount\r\n }\r\n var cells = this._makeGroupedRowCells(groups[i], repeatCount, cssClasses, cellTemplate, repeatByDate);\r\n rows.push((0, _renderer2.default)(\"
\").addClass(cssClasses.groupRowClass).append(cells.map(cellIterator)))\r\n }\r\n var maxCellCount = rows[groupCount - 1].find(\"th\").length;\r\n for (var j = 0; j < groupCount; j++) {\r\n var $cell = rows[j].find(\"th\");\r\n var colspan = maxCellCount / $cell.length;\r\n if (!groupByDate) {\r\n colspan *= cellCount\r\n }\r\n if (colspan > 1 && 1 === repeatByDate || groupByDate && groupCount > 1) {\r\n $cell.attr(\"colSpan\", colspan)\r\n }\r\n }\r\n return {\r\n elements: rows,\r\n cellTemplates: cellTemplates\r\n }\r\n },\r\n _makeGroupedRowCells: function(group, repeatCount, cssClasses, cellTemplate, repeatByDate) {\r\n repeatByDate = repeatByDate || 1;\r\n repeatCount *= repeatByDate;\r\n var cells = [];\r\n var items = group.items;\r\n var itemCount = items.length;\r\n for (var i = 0; i < repeatCount; i++) {\r\n for (var j = 0; j < itemCount; j++) {\r\n var $container = (0, _renderer2.default)(\"
\");\r\n var cell = {};\r\n if (cellTemplate && cellTemplate.render) {\r\n var templateOptions = {\r\n model: items[j],\r\n container: (0, _dom.getPublicElement)($container),\r\n index: i * itemCount + j\r\n };\r\n if (group.data) {\r\n templateOptions.model.data = group.data[j]\r\n }\r\n cell.template = cellTemplate.render.bind(cellTemplate, templateOptions)\r\n } else {\r\n $container.text(items[j].text);\r\n $container = (0, _renderer2.default)(\"
\").append($container)\r\n }\r\n $container.addClass(cssClasses.groupHeaderContentClass);\r\n var cssClass = void 0;\r\n if (_type2.default.isFunction(cssClasses.groupHeaderClass)) {\r\n cssClass = cssClasses.groupHeaderClass(j)\r\n } else {\r\n cssClass = cssClasses.groupHeaderClass\r\n }\r\n cell.element = (0, _renderer2.default)(\"
\").height(this._getRowHeight(rowSize));\r\n if (options.getStartDate) {\r\n date = options.getStartDate && options.getStartDate(rowIndex);\r\n cellDateNumber = dateLocalization.format(date, \"d\");\r\n cellDayName = dateLocalization.format(date, this._formatWeekday)\r\n }\r\n if (cellTemplateOpt && cellTemplateOpt.render) {\r\n var templateOptions = this._prepareCellTemplateOptions(cellDateNumber + \" \" + cellDayName, date, i, $td);\r\n cellTemplates.push(cellTemplateOpt.render.bind(cellTemplateOpt, templateOptions))\r\n } else {\r\n if (cellDateNumber && cellDayName) {\r\n $td.addClass(AGENDA_DATE_CLASS).text(cellDateNumber + \" \" + cellDayName)\r\n }\r\n }\r\n if (options.rowClass) {\r\n $row.addClass(options.rowClass)\r\n }\r\n if (options.cellClass) {\r\n $td.addClass(options.cellClass)\r\n }\r\n $row.append($td);\r\n this._$rows.push($row)\r\n }\r\n }.bind(this);\r\n for (i = 0; i < this._rows.length; i++) {\r\n each(this._rows[i], fillTableBody);\r\n this._setLastRowClass()\r\n }\r\n $(options.container).append($(\"
\").addClass(cssClass).append($container);\r\n cells.push(cell)\r\n }\r\n }\r\n return cells\r\n }\r\n};\r\nmodule.exports = SchedulerTableCreator;\r\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.timeline_month.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar registerComponent = require(\"../../../core/component_registrator\");\r\nvar SchedulerTimeline = require(\"./ui.scheduler.timeline\");\r\nvar dateUtils = require(\"../../../core/utils/date\");\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline-month\";\r\nvar DAY_IN_MILLISECONDS = 864e5;\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar SchedulerTimelineMonth = SchedulerTimeline.inherit({\r\n _renderView: function() {\r\n this.callBase();\r\n this._updateScrollable()\r\n },\r\n _getElementClass: function() {\r\n return TIMELINE_CLASS\r\n },\r\n _getDateHeaderTemplate: function() {\r\n return this.option(\"dateCellTemplate\")\r\n },\r\n _getHiddenInterval: function() {\r\n return 0\r\n },\r\n _getIndicationFirstViewDate: function() {\r\n return dateUtils.trimTime(new Date(this._firstViewDate))\r\n },\r\n getCellDuration: function() {\r\n return toMs(\"day\")\r\n },\r\n calculateEndViewDate: function(dateOfLastViewCell) {\r\n return new Date(dateOfLastViewCell.getTime() + this._calculateDayDuration() * toMs(\"hour\"))\r\n },\r\n _getCellCount: function() {\r\n var currentDate = this.option(\"currentDate\");\r\n var cellCount = 0;\r\n if (this._isWorkSpaceWithCount()) {\r\n var intervalCount = this.option(\"intervalCount\");\r\n for (var i = 1; i <= intervalCount; i++) {\r\n cellCount += new Date(currentDate.getFullYear(), currentDate.getMonth() + i, 0).getDate()\r\n }\r\n } else {\r\n cellCount = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0).getDate()\r\n }\r\n return cellCount\r\n },\r\n _setFirstViewDate: function() {\r\n this._firstViewDate = dateUtils.getFirstMonthDate(this.option(\"currentDate\"));\r\n this._setStartDayHour(this._firstViewDate)\r\n },\r\n _getFormat: function() {\r\n return this._formatWeekdayAndDay\r\n },\r\n _getDateByIndex: function(headerIndex) {\r\n var resultDate = new Date(this._firstViewDate);\r\n resultDate.setDate(this._firstViewDate.getDate() + headerIndex);\r\n return resultDate\r\n },\r\n _getInterval: function() {\r\n return DAY_IN_MILLISECONDS\r\n },\r\n _getIntervalBetween: function(currentDate) {\r\n var firstViewDate = this.getStartViewDate();\r\n var timeZoneOffset = dateUtils.getTimezonesDifference(firstViewDate, currentDate);\r\n return currentDate.getTime() - (firstViewDate.getTime() - 36e5 * this.option(\"startDayHour\")) - timeZoneOffset\r\n },\r\n calculateEndDate: function(startDate) {\r\n var startDateCopy = new Date(startDate);\r\n return new Date(startDateCopy.setHours(this.option(\"endDayHour\")))\r\n },\r\n _calculateHiddenInterval: function() {\r\n return 0\r\n },\r\n _getDateByCellIndexes: function(rowIndex, cellIndex) {\r\n var date = this.callBase(rowIndex, cellIndex);\r\n this._setStartDayHour(date);\r\n return date\r\n },\r\n needUpdateScrollPosition: function(hours, minutes, bounds, date) {\r\n return this._dateWithinBounds(bounds, date)\r\n },\r\n getPositionShift: function() {\r\n return {\r\n top: 0,\r\n left: 0,\r\n cellPosition: 0\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxSchedulerTimelineMonth\", SchedulerTimelineMonth);\r\nmodule.exports = SchedulerTimelineMonth;\r\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.timeline_week.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar registerComponent = require(\"../../../core/component_registrator\");\r\nvar SchedulerTimeline = require(\"./ui.scheduler.timeline\");\r\nvar getBoundingRect = require(\"../../../core/utils/position\").getBoundingRect;\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline-week\";\r\nvar SchedulerTimelineWeek = SchedulerTimeline.inherit({\r\n _getElementClass: function() {\r\n return TIMELINE_CLASS\r\n },\r\n _getCellCount: function() {\r\n return this.callBase() * this._getWeekDuration()\r\n },\r\n _getHeaderPanelCellWidth: function($headerRow) {\r\n return getBoundingRect($headerRow.children().first().get(0)).width\r\n },\r\n _getWeekDuration: function() {\r\n return 7\r\n },\r\n _needRenderWeekHeader: function() {\r\n return true\r\n },\r\n _incrementDate: function(date) {\r\n date.setDate(date.getDate() + 1)\r\n }\r\n});\r\nregisterComponent(\"dxSchedulerTimelineWeek\", SchedulerTimelineWeek);\r\nmodule.exports = SchedulerTimelineWeek;\r\n","/**\r\n * DevExtreme (ui/scheduler/rendering_strategies/ui.scheduler.appointments.strategy.base.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _uiSchedulerAppointmentsPositioningStrategy = require(\"./ui.scheduler.appointmentsPositioning.strategy.base\");\r\nvar _uiSchedulerAppointmentsPositioningStrategy2 = _interopRequireDefault(_uiSchedulerAppointmentsPositioningStrategy);\r\nvar _uiSchedulerAppointmentsPositioningStrategy3 = require(\"./ui.scheduler.appointmentsPositioning.strategy.adaptive\");\r\nvar _uiSchedulerAppointmentsPositioningStrategy4 = _interopRequireDefault(_uiSchedulerAppointmentsPositioningStrategy3);\r\nvar _extend = require(\"../../../core/utils/extend\");\r\nvar _ui = require(\"../../widget/ui.errors\");\r\nvar _ui2 = _interopRequireDefault(_ui);\r\nvar _date = require(\"../../../core/utils/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _type = require(\"../../../core/utils/type\");\r\nvar _type2 = _interopRequireDefault(_type);\r\nvar _themes = require(\"../../themes\");\r\nvar _themes2 = _interopRequireDefault(_themes);\r\nvar _utils = require(\"../utils.timeZone\");\r\nvar _utils2 = _interopRequireDefault(_utils);\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 _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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 = _date2.default.dateToMilliseconds;\r\nvar APPOINTMENT_MIN_SIZE = 2;\r\nvar APPOINTMENT_DEFAULT_HEIGHT = 20;\r\nvar COMPACT_THEME_APPOINTMENT_DEFAULT_HEIGHT = 18;\r\nvar DROP_DOWN_BUTTON_ADAPTIVE_SIZE = 28;\r\nvar BaseRenderingStrategy = function() {\r\n function BaseRenderingStrategy(instance) {\r\n _classCallCheck(this, BaseRenderingStrategy);\r\n this.instance = instance;\r\n this._initPositioningStrategy()\r\n }\r\n _createClass(BaseRenderingStrategy, [{\r\n key: \"_isAdaptive\",\r\n value: function() {\r\n return this.instance.fire(\"isAdaptive\")\r\n }\r\n }, {\r\n key: \"_correctCollectorCoordinatesInAdaptive\",\r\n value: function(coordinates, isAllDay) {\r\n coordinates.top = coordinates.top + this.getCollectorTopOffset(isAllDay);\r\n coordinates.left = coordinates.left + this.getCollectorLeftOffset()\r\n }\r\n }, {\r\n key: \"_initPositioningStrategy\",\r\n value: function() {\r\n this._positioningStrategy = this._isAdaptive() ? new _uiSchedulerAppointmentsPositioningStrategy4.default(this) : new _uiSchedulerAppointmentsPositioningStrategy2.default(this)\r\n }\r\n }, {\r\n key: \"getPositioningStrategy\",\r\n value: function() {\r\n return this._positioningStrategy\r\n }\r\n }, {\r\n key: \"getAppointmentMinSize\",\r\n value: function() {\r\n return APPOINTMENT_MIN_SIZE\r\n }\r\n }, {\r\n key: \"keepAppointmentSettings\",\r\n value: function() {\r\n return false\r\n }\r\n }, {\r\n key: \"getDeltaTime\",\r\n value: function() {}\r\n }, {\r\n key: \"getAppointmentGeometry\",\r\n value: function(coordinates) {\r\n return coordinates\r\n }\r\n }, {\r\n key: \"needCorrectAppointmentDates\",\r\n value: function() {\r\n return true\r\n }\r\n }, {\r\n key: \"getDirection\",\r\n value: function() {\r\n return \"horizontal\"\r\n }\r\n }, {\r\n key: \"createTaskPositionMap\",\r\n value: function(items) {\r\n delete this._maxAppointmentCountPerCell;\r\n var length = items && items.length;\r\n if (!length) {\r\n return\r\n }\r\n this._defaultWidth = this.instance._cellWidth;\r\n this._defaultHeight = this.instance._cellHeight;\r\n this._allDayHeight = this.instance._allDayCellHeight;\r\n var map = [];\r\n for (var i = 0; i < length; i++) {\r\n var coordinates = this._getItemPosition(items[i]);\r\n if (this._isRtl()) {\r\n coordinates = this._correctRtlCoordinates(coordinates)\r\n }\r\n map.push(coordinates)\r\n }\r\n var positionArray = this._getSortedPositions(map);\r\n var resultPositions = this._getResultPositions(positionArray);\r\n return this._getExtendedPositionMap(map, resultPositions)\r\n }\r\n }, {\r\n key: \"_getDeltaWidth\",\r\n value: function(args, initialSize) {\r\n var intervalWidth = this.instance.fire(\"getResizableStep\") || this.getAppointmentMinSize();\r\n var initialWidth = initialSize.width;\r\n return Math.round((args.width - initialWidth) / intervalWidth)\r\n }\r\n }, {\r\n key: \"_correctRtlCoordinates\",\r\n value: function(coordinates) {\r\n var width = coordinates[0].width || this._getAppointmentMaxWidth();\r\n coordinates.forEach(function(coordinate) {\r\n if (!coordinate.appointmentReduced) {\r\n coordinate.left -= width\r\n }\r\n });\r\n return coordinates\r\n }\r\n }, {\r\n key: \"_getAppointmentMaxWidth\",\r\n value: function() {\r\n return this.getDefaultCellWidth()\r\n }\r\n }, {\r\n key: \"_getItemPosition\",\r\n value: function(item) {\r\n var position = this._getAppointmentCoordinates(item);\r\n var allDay = this.isAllDay(item);\r\n var result = [];\r\n var startDate = new Date(this.instance.fire(\"getField\", \"startDate\", item));\r\n var isRecurring = !!this.instance.fire(\"getField\", \"recurrenceRule\", item);\r\n for (var j = 0; j < position.length; j++) {\r\n var height = this.calculateAppointmentHeight(item, position[j], isRecurring);\r\n var width = this.calculateAppointmentWidth(item, position[j], isRecurring);\r\n var resultWidth = width;\r\n var appointmentReduced = null;\r\n var multiWeekAppointmentParts = [];\r\n var initialRowIndex = position[j].rowIndex;\r\n var initialCellIndex = position[j].cellIndex;\r\n if (this._needVerifyItemSize() || allDay) {\r\n var currentMaxAllowedPosition = position[j].hMax;\r\n if (this.isAppointmentGreaterThan(currentMaxAllowedPosition, {\r\n left: position[j].left,\r\n width: width\r\n })) {\r\n appointmentReduced = \"head\";\r\n initialRowIndex = position[j].rowIndex;\r\n initialCellIndex = position[j].cellIndex;\r\n resultWidth = this._reduceMultiWeekAppointment(width, {\r\n left: position[j].left,\r\n right: currentMaxAllowedPosition\r\n });\r\n multiWeekAppointmentParts = this._getAppointmentParts({\r\n sourceAppointmentWidth: width,\r\n reducedWidth: resultWidth,\r\n height: height\r\n }, position[j], startDate);\r\n if (this._isRtl()) {\r\n position[j].left = currentMaxAllowedPosition\r\n }\r\n }\r\n }(0, _extend.extend)(position[j], {\r\n height: height,\r\n width: resultWidth,\r\n allDay: allDay,\r\n rowIndex: initialRowIndex,\r\n cellIndex: initialCellIndex,\r\n appointmentReduced: appointmentReduced,\r\n originalAppointmentStartDate: this.startDate(item, true),\r\n originalAppointmentEndDate: this.endDate(item),\r\n endDate: this.endDate(item, position[j], isRecurring)\r\n });\r\n result = this._getAppointmentPartsPosition(multiWeekAppointmentParts, position[j], result)\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"_getAppointmentPartsPosition\",\r\n value: function(appointmentParts, position, result) {\r\n if (appointmentParts.length) {\r\n appointmentParts.unshift(position);\r\n result = result.concat(appointmentParts)\r\n } else {\r\n result.push(position)\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"_getAppointmentCoordinates\",\r\n value: function(itemData) {\r\n return this.instance.fire(\"needCoordinates\", {\r\n startDate: this.startDate(itemData),\r\n originalStartDate: this.startDate(itemData, true),\r\n appointmentData: itemData\r\n })\r\n }\r\n }, {\r\n key: \"_isRtl\",\r\n value: function() {\r\n return this.instance.option(\"rtlEnabled\")\r\n }\r\n }, {\r\n key: \"_getAppointmentParts\",\r\n value: function() {\r\n return []\r\n }\r\n }, {\r\n key: \"_getCompactAppointmentParts\",\r\n value: function(appointmentWidth) {\r\n var cellWidth = this.getDefaultCellWidth() || this.getAppointmentMinSize();\r\n return Math.round(appointmentWidth / cellWidth)\r\n }\r\n }, {\r\n key: \"_reduceMultiWeekAppointment\",\r\n value: function(sourceAppointmentWidth, bound) {\r\n if (this._isRtl()) {\r\n sourceAppointmentWidth = Math.floor(bound.left - bound.right)\r\n } else {\r\n sourceAppointmentWidth = bound.right - Math.floor(bound.left)\r\n }\r\n return sourceAppointmentWidth\r\n }\r\n }, {\r\n key: \"calculateAppointmentHeight\",\r\n value: function() {\r\n return 0\r\n }\r\n }, {\r\n key: \"calculateAppointmentWidth\",\r\n value: function() {\r\n return 0\r\n }\r\n }, {\r\n key: \"isAppointmentGreaterThan\",\r\n value: function(etalon, comparisonParameters) {\r\n var result = comparisonParameters.left + comparisonParameters.width - etalon;\r\n if (this._isRtl()) {\r\n result = etalon + comparisonParameters.width - comparisonParameters.left\r\n }\r\n return result > this.getDefaultCellWidth() / 2\r\n }\r\n }, {\r\n key: \"isAllDay\",\r\n value: function() {\r\n return false\r\n }\r\n }, {\r\n key: \"cropAppointmentWidth\",\r\n value: function(width, cellWidth) {\r\n if (this.instance.fire(\"isGroupedByDate\")) {\r\n width = cellWidth\r\n }\r\n return width\r\n }\r\n }, {\r\n key: \"_getSortedPositions\",\r\n value: function(positionList) {\r\n var _this = this;\r\n var result = [];\r\n var round = function(value) {\r\n return Math.round(100 * value) / 100\r\n };\r\n var createItem = function(rowIndex, cellIndex, top, left, bottom, right, position, allDay) {\r\n return {\r\n i: rowIndex,\r\n j: cellIndex,\r\n top: round(top),\r\n left: round(left),\r\n bottom: round(bottom),\r\n right: round(right),\r\n cellPosition: position,\r\n allDay: allDay\r\n }\r\n };\r\n for (var rowIndex = 0, rowCount = positionList.length; rowIndex < rowCount; rowIndex++) {\r\n for (var cellIndex = 0, cellCount = positionList[rowIndex].length; cellIndex < cellCount; cellIndex++) {\r\n var _positionList$rowInde = positionList[rowIndex][cellIndex],\r\n top = _positionList$rowInde.top,\r\n left = _positionList$rowInde.left,\r\n height = _positionList$rowInde.height,\r\n width = _positionList$rowInde.width,\r\n cellPosition = _positionList$rowInde.cellPosition,\r\n allDay = _positionList$rowInde.allDay;\r\n result.push(createItem(rowIndex, cellIndex, top, left, top + height, left + width, cellPosition, allDay))\r\n }\r\n }\r\n return result.sort(function(a, b) {\r\n return _this._sortCondition(a, b)\r\n })\r\n }\r\n }, {\r\n key: \"_sortCondition\",\r\n value: function() {}\r\n }, {\r\n key: \"_getConditions\",\r\n value: function(a, b) {\r\n var isSomeEdge = this._isSomeEdge(a, b);\r\n return {\r\n columnCondition: isSomeEdge || this._normalizeCondition(a.left, b.left),\r\n rowCondition: isSomeEdge || this._normalizeCondition(a.top, b.top),\r\n cellPositionCondition: isSomeEdge || this._normalizeCondition(a.cellPosition, b.cellPosition)\r\n }\r\n }\r\n }, {\r\n key: \"_rowCondition\",\r\n value: function(a, b) {\r\n var conditions = this._getConditions(a, b);\r\n return conditions.columnCondition || conditions.rowCondition\r\n }\r\n }, {\r\n key: \"_columnCondition\",\r\n value: function(a, b) {\r\n var conditions = this._getConditions(a, b);\r\n return conditions.rowCondition || conditions.columnCondition\r\n }\r\n }, {\r\n key: \"_isSomeEdge\",\r\n value: function(a, b) {\r\n return a.i === b.i && a.j === b.j\r\n }\r\n }, {\r\n key: \"_normalizeCondition\",\r\n value: function(first, second) {\r\n var result = first - second;\r\n return Math.abs(result) > 1 ? result : 0\r\n }\r\n }, {\r\n key: \"_isItemsCross\",\r\n value: function(firstItem, secondItem) {\r\n var areItemsInTheSameTable = !!firstItem.allDay === !!secondItem.allDay;\r\n var areItemsAllDay = firstItem.allDay && secondItem.allDay;\r\n if (areItemsInTheSameTable) {\r\n var orientation = this._getOrientation(areItemsAllDay);\r\n return this._checkItemsCrossing(firstItem, secondItem, orientation)\r\n } else {\r\n return false\r\n }\r\n }\r\n }, {\r\n key: \"_checkItemsCrossing\",\r\n value: function(firstItem, secondItem, orientation) {\r\n var firstItemSide_1 = Math.floor(firstItem[orientation[0]]);\r\n var firstItemSide_2 = Math.floor(firstItem[orientation[1]]);\r\n var secondItemSide_1 = Math.ceil(secondItem[orientation[0]]);\r\n var secondItemSide_2 = Math.ceil(secondItem[orientation[1]]);\r\n var isItemCross = Math.abs(firstItem[orientation[2]] - secondItem[orientation[2]]) <= 1;\r\n return isItemCross && (firstItemSide_1 <= secondItemSide_1 && firstItemSide_2 > secondItemSide_1 || firstItemSide_1 < secondItemSide_2 && firstItemSide_2 >= secondItemSide_2 || firstItemSide_1 === secondItemSide_1 && firstItemSide_2 === secondItemSide_2)\r\n }\r\n }, {\r\n key: \"_getOrientation\",\r\n value: function(isAllDay) {\r\n return isAllDay ? [\"left\", \"right\", \"top\"] : [\"top\", \"bottom\", \"left\"]\r\n }\r\n }, {\r\n key: \"_getResultPositions\",\r\n value: function(sortedArray) {\r\n var _this2 = this;\r\n var result = [];\r\n var i;\r\n var sortedIndex = 0;\r\n var currentItem;\r\n var indexes;\r\n var itemIndex;\r\n var maxIndexInStack = 0;\r\n var stack = {};\r\n var findFreeIndex = function findFreeIndex(indexes, index) {\r\n var isFind = indexes.some(function(item) {\r\n return item === index\r\n });\r\n if (isFind) {\r\n return findFreeIndex(indexes, ++index)\r\n } else {\r\n return index\r\n }\r\n };\r\n var createItem = function(currentItem, index) {\r\n var currentIndex = index || 0;\r\n return {\r\n index: currentIndex,\r\n i: currentItem.i,\r\n j: currentItem.j,\r\n left: currentItem.left,\r\n right: currentItem.right,\r\n top: currentItem.top,\r\n bottom: currentItem.bottom,\r\n allDay: currentItem.allDay,\r\n sortedIndex: _this2._skipSortedIndex(currentIndex) ? null : sortedIndex++\r\n }\r\n };\r\n var startNewStack = function(currentItem) {\r\n stack.items = [createItem(currentItem)];\r\n stack.left = currentItem.left;\r\n stack.right = currentItem.right;\r\n stack.top = currentItem.top;\r\n stack.bottom = currentItem.bottom;\r\n stack.allDay = currentItem.allDay\r\n };\r\n var pushItemsInResult = function(items) {\r\n items.forEach(function(item) {\r\n result.push({\r\n index: item.index,\r\n count: maxIndexInStack + 1,\r\n i: item.i,\r\n j: item.j,\r\n sortedIndex: item.sortedIndex\r\n })\r\n })\r\n };\r\n for (i = 0; i < sortedArray.length; i++) {\r\n currentItem = sortedArray[i];\r\n indexes = [];\r\n if (!stack.items) {\r\n startNewStack(currentItem)\r\n } else {\r\n if (this._isItemsCross(stack, currentItem)) {\r\n stack.items.forEach(function(item, index) {\r\n if (_this2._isItemsCross(item, currentItem)) {\r\n indexes.push(item.index)\r\n }\r\n });\r\n itemIndex = indexes.length ? findFreeIndex(indexes, 0) : 0;\r\n stack.items.push(createItem(currentItem, itemIndex));\r\n maxIndexInStack = Math.max(itemIndex, maxIndexInStack);\r\n stack.left = Math.min(stack.left, currentItem.left);\r\n stack.right = Math.max(stack.right, currentItem.right);\r\n stack.top = Math.min(stack.top, currentItem.top);\r\n stack.bottom = Math.max(stack.bottom, currentItem.bottom);\r\n stack.allDay = currentItem.allDay\r\n } else {\r\n pushItemsInResult(stack.items);\r\n stack = {};\r\n startNewStack(currentItem);\r\n maxIndexInStack = 0\r\n }\r\n }\r\n }\r\n if (stack.items) {\r\n pushItemsInResult(stack.items)\r\n }\r\n return result.sort(function(a, b) {\r\n var columnCondition = a.j - b.j;\r\n var rowCondition = a.i - b.i;\r\n return rowCondition ? rowCondition : columnCondition\r\n })\r\n }\r\n }, {\r\n key: \"_skipSortedIndex\",\r\n value: function(index) {\r\n return index > this._getMaxAppointmentCountPerCell() - 1\r\n }\r\n }, {\r\n key: \"_findIndexByKey\",\r\n value: function(arr, iKey, jKey, iValue, jValue) {\r\n var result = 0;\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (arr[i][iKey] === iValue && arr[i][jKey] === jValue) {\r\n result = i;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"_getExtendedPositionMap\",\r\n value: function(map, positions) {\r\n var positionCounter = 0;\r\n var result = [];\r\n for (var i = 0, mapLength = map.length; i < mapLength; i++) {\r\n var resultString = [];\r\n for (var j = 0, itemLength = map[i].length; j < itemLength; j++) {\r\n map[i][j].index = positions[positionCounter].index;\r\n map[i][j].sortedIndex = positions[positionCounter].sortedIndex;\r\n map[i][j].count = positions[positionCounter++].count;\r\n resultString.push(map[i][j]);\r\n this._checkLongCompactAppointment(map[i][j], resultString)\r\n }\r\n result.push(resultString)\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"_checkLongCompactAppointment\",\r\n value: function(item, result) {\r\n this._splitLongCompactAppointment(item, result);\r\n return result\r\n }\r\n }, {\r\n key: \"_splitLongCompactAppointment\",\r\n value: function(item, result) {\r\n var appointmentCountPerCell = this._getMaxAppointmentCountPerCellByType(item.allDay);\r\n var compactCount = 0;\r\n if (void 0 !== appointmentCountPerCell && item.index > appointmentCountPerCell - 1) {\r\n item.isCompact = true;\r\n compactCount = this._getCompactAppointmentParts(item.width);\r\n for (var k = 1; k < compactCount; k++) {\r\n var compactPart = (0, _extend.extend)(true, {}, item);\r\n compactPart.left = this._getCompactLeftCoordinate(item.left, k);\r\n compactPart.cellIndex = compactPart.cellIndex + k;\r\n compactPart.sortedIndex = null;\r\n result.push(compactPart)\r\n }\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"startDate\",\r\n value: function startDate(appointment, skipNormalize, position) {\r\n var startDate = position && position.startDate;\r\n var rangeStartDate = this.instance._getStartDate(appointment, skipNormalize);\r\n var text = this.instance.fire(\"getField\", \"text\", appointment);\r\n if (startDate && rangeStartDate > startDate || !startDate) {\r\n startDate = rangeStartDate\r\n }\r\n if (isNaN(startDate.getTime())) {\r\n throw _ui2.default.Error(\"E1032\", text)\r\n }\r\n return startDate\r\n }\r\n }, {\r\n key: \"endDate\",\r\n value: function endDate(appointment, position, isRecurring) {\r\n var ignoreViewDates = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : false;\r\n var endDate = this.instance._getEndDate(appointment, ignoreViewDates);\r\n var realStartDate = this.startDate(appointment, true);\r\n var viewStartDate = this.startDate(appointment, false, position);\r\n if (viewStartDate.getTime() > endDate.getTime() || isRecurring) {\r\n var recurrencePartStartDate = position ? position.initialStartDate || position.startDate : realStartDate;\r\n var recurrencePartCroppedByViewStartDate = position ? position.startDate : realStartDate;\r\n var fullDuration = viewStartDate.getTime() > endDate.getTime() ? this.instance.fire(\"getField\", \"endDate\", appointment).getTime() - this.instance.fire(\"getField\", \"startDate\", appointment).getTime() : endDate.getTime() - realStartDate.getTime();\r\n fullDuration = this._adjustDurationByDaylightDiff(fullDuration, realStartDate, endDate);\r\n endDate = new Date(viewStartDate.getTime() >= recurrencePartStartDate.getTime() ? recurrencePartStartDate.getTime() : viewStartDate.getTime());\r\n if (isRecurring) {\r\n endDate = new Date(endDate.getTime() + fullDuration)\r\n }\r\n if (!_date2.default.sameDate(realStartDate, endDate) && recurrencePartCroppedByViewStartDate.getTime() < viewStartDate.getTime()) {\r\n var headDuration = _date2.default.trimTime(endDate).getTime() - recurrencePartCroppedByViewStartDate.getTime();\r\n var tailDuration = fullDuration - headDuration || fullDuration;\r\n endDate = new Date(_date2.default.trimTime(viewStartDate).getTime() + tailDuration)\r\n }\r\n }\r\n if (!this.isAllDay(appointment)) {\r\n var viewEndDate = _date2.default.roundToHour(this.instance.fire(\"getEndViewDate\"));\r\n if (endDate > viewEndDate) {\r\n endDate = viewEndDate\r\n }\r\n }\r\n var currentViewEndTime = new Date(new Date(endDate).setHours(this.instance.option(\"endDayHour\"), 0, 0));\r\n if (endDate.getTime() > currentViewEndTime.getTime()) {\r\n endDate = currentViewEndTime\r\n }\r\n return endDate\r\n }\r\n }, {\r\n key: \"_adjustDurationByDaylightDiff\",\r\n value: function(duration, startDate, endDate) {\r\n var daylightDiff = _utils2.default.getDaylightOffset(startDate, endDate);\r\n return this._needAdjustDuration(daylightDiff) ? this._calculateDurationByDaylightDiff(duration, daylightDiff) : duration\r\n }\r\n }, {\r\n key: \"_needAdjustDuration\",\r\n value: function(diff) {\r\n return 0 !== diff\r\n }\r\n }, {\r\n key: \"_calculateDurationByDaylightDiff\",\r\n value: function(duration, diff) {\r\n return duration + diff * toMs(\"minute\")\r\n }\r\n }, {\r\n key: \"_getAppointmentDurationInMs\",\r\n value: function(startDate, endDate, allDay) {\r\n return this.instance.fire(\"getAppointmentDurationInMs\", {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay\r\n })\r\n }\r\n }, {\r\n key: \"_markAppointmentAsVirtual\",\r\n value: function(coordinates, isAllDay) {\r\n var countFullWidthAppointmentInCell = this._getMaxAppointmentCountPerCellByType(isAllDay);\r\n if (coordinates.count - countFullWidthAppointmentInCell > 0) {\r\n coordinates.virtual = {\r\n top: coordinates.top,\r\n left: coordinates.left,\r\n index: \"tail\" === coordinates.appointmentReduced ? coordinates.groupIndex + \"-\" + coordinates.rowIndex + \"-\" + coordinates.cellIndex : coordinates.groupIndex + \"-\" + coordinates.rowIndex + \"-\" + coordinates.cellIndex + \"-tail\",\r\n isAllDay: isAllDay\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"_getMaxAppointmentCountPerCellByType\",\r\n value: function(isAllDay) {\r\n var appointmentCountPerCell = this._getMaxAppointmentCountPerCell();\r\n if (_type2.default.isObject(appointmentCountPerCell)) {\r\n return isAllDay ? this._getMaxAppointmentCountPerCell().allDay : this._getMaxAppointmentCountPerCell().simple\r\n } else {\r\n return appointmentCountPerCell\r\n }\r\n }\r\n }, {\r\n key: \"getDropDownAppointmentWidth\",\r\n value: function(intervalCount, isAllDay) {\r\n return this.getPositioningStrategy().getDropDownAppointmentWidth(intervalCount, isAllDay)\r\n }\r\n }, {\r\n key: \"getDropDownAppointmentHeight\",\r\n value: function() {\r\n return this.getPositioningStrategy().getDropDownAppointmentHeight()\r\n }\r\n }, {\r\n key: \"getDropDownButtonAdaptiveSize\",\r\n value: function() {\r\n return DROP_DOWN_BUTTON_ADAPTIVE_SIZE\r\n }\r\n }, {\r\n key: \"getDefaultCellWidth\",\r\n value: function() {\r\n return this._defaultWidth\r\n }\r\n }, {\r\n key: \"getDefaultCellHeight\",\r\n value: function() {\r\n return this._defaultHeight\r\n }\r\n }, {\r\n key: \"getDefaultAllDayCellHeight\",\r\n value: function() {\r\n return this._allDayHeight\r\n }\r\n }, {\r\n key: \"getCollectorTopOffset\",\r\n value: function(allDay) {\r\n return this.getPositioningStrategy().getCollectorTopOffset(allDay)\r\n }\r\n }, {\r\n key: \"getCollectorLeftOffset\",\r\n value: function() {\r\n return this.getPositioningStrategy().getCollectorLeftOffset()\r\n }\r\n }, {\r\n key: \"getAppointmentDataCalculator\",\r\n value: function() {}\r\n }, {\r\n key: \"_customizeCoordinates\",\r\n value: function(coordinates, height, appointmentCountPerCell, topOffset, isAllDay) {\r\n var index = coordinates.index;\r\n var appointmentHeight = height / appointmentCountPerCell;\r\n var appointmentTop = coordinates.top + index * appointmentHeight;\r\n var top = appointmentTop + topOffset;\r\n var width = coordinates.width;\r\n var left = coordinates.left;\r\n if (coordinates.isCompact) {\r\n this._isAdaptive() && this._correctCollectorCoordinatesInAdaptive(coordinates, isAllDay);\r\n this._markAppointmentAsVirtual(coordinates, isAllDay)\r\n }\r\n return {\r\n height: appointmentHeight,\r\n width: width,\r\n top: top,\r\n left: left,\r\n empty: this._isAppointmentEmpty(height, width)\r\n }\r\n }\r\n }, {\r\n key: \"_isAppointmentEmpty\",\r\n value: function(height, width) {\r\n return height < this._getAppointmentMinHeight() || width < this._getAppointmentMinWidth()\r\n }\r\n }, {\r\n key: \"_calculateGeometryConfig\",\r\n value: function(coordinates) {\r\n var overlappingMode = this.instance.fire(\"getMaxAppointmentsPerCell\");\r\n var offsets = this._getOffsets();\r\n var appointmentDefaultOffset = this._getAppointmentDefaultOffset();\r\n var appointmentCountPerCell = this._getAppointmentCount(overlappingMode, coordinates);\r\n var ratio = this._getDefaultRatio(coordinates, appointmentCountPerCell);\r\n var maxHeight = this._getMaxHeight();\r\n if (!(0, _type.isNumeric)(appointmentCountPerCell)) {\r\n appointmentCountPerCell = coordinates.count;\r\n ratio = (maxHeight - offsets.unlimited) / maxHeight\r\n }\r\n var topOffset = (1 - ratio) * maxHeight;\r\n if (\"auto\" === overlappingMode || (0, _type.isNumeric)(overlappingMode)) {\r\n ratio = 1;\r\n maxHeight -= appointmentDefaultOffset;\r\n topOffset = appointmentDefaultOffset\r\n }\r\n return {\r\n height: ratio * maxHeight,\r\n appointmentCountPerCell: appointmentCountPerCell,\r\n offset: topOffset\r\n }\r\n }\r\n }, {\r\n key: \"_getAppointmentCount\",\r\n value: function() {}\r\n }, {\r\n key: \"_getDefaultRatio\",\r\n value: function() {}\r\n }, {\r\n key: \"_getOffsets\",\r\n value: function() {}\r\n }, {\r\n key: \"_getMaxHeight\",\r\n value: function() {}\r\n }, {\r\n key: \"_needVerifyItemSize\",\r\n value: function() {\r\n return false\r\n }\r\n }, {\r\n key: \"needSeparateAppointment\",\r\n value: function(allDay) {\r\n return this.instance.fire(\"isGroupedByDate\") && allDay\r\n }\r\n }, {\r\n key: \"_getMaxAppointmentCountPerCell\",\r\n value: function() {\r\n if (!this._maxAppointmentCountPerCell) {\r\n var overlappingMode = this.instance.fire(\"getMaxAppointmentsPerCell\");\r\n var appointmentCountPerCell;\r\n if ((0, _type.isNumeric)(overlappingMode)) {\r\n appointmentCountPerCell = overlappingMode\r\n }\r\n if (\"auto\" === overlappingMode) {\r\n appointmentCountPerCell = this._getDynamicAppointmentCountPerCell()\r\n }\r\n if (\"unlimited\" === overlappingMode) {\r\n appointmentCountPerCell = void 0\r\n }\r\n this._maxAppointmentCountPerCell = appointmentCountPerCell\r\n }\r\n return this._maxAppointmentCountPerCell\r\n }\r\n }, {\r\n key: \"_getDynamicAppointmentCountPerCell\",\r\n value: function() {\r\n return this.getPositioningStrategy().getDynamicAppointmentCountPerCell()\r\n }\r\n }, {\r\n key: \"hasAllDayAppointments\",\r\n value: function() {\r\n return false\r\n }\r\n }, {\r\n key: \"_isCompactTheme\",\r\n value: function() {\r\n return \"compact\" === (_themes2.default.current() || \"\").split(\".\").pop()\r\n }\r\n }, {\r\n key: \"_getAppointmentDefaultOffset\",\r\n value: function() {\r\n return this.getPositioningStrategy().getAppointmentDefaultOffset()\r\n }\r\n }, {\r\n key: \"_getAppointmentDefaultHeight\",\r\n value: function() {\r\n return this._getAppointmentHeightByTheme()\r\n }\r\n }, {\r\n key: \"_getAppointmentMinHeight\",\r\n value: function() {\r\n return this._getAppointmentDefaultHeight()\r\n }\r\n }, {\r\n key: \"_getAppointmentHeightByTheme\",\r\n value: function() {\r\n return this._isCompactTheme() ? COMPACT_THEME_APPOINTMENT_DEFAULT_HEIGHT : APPOINTMENT_DEFAULT_HEIGHT\r\n }\r\n }, {\r\n key: \"_getAppointmentDefaultWidth\",\r\n value: function() {\r\n return this.getPositioningStrategy()._getAppointmentDefaultWidth()\r\n }\r\n }, {\r\n key: \"_getAppointmentMinWidth\",\r\n value: function() {\r\n return this._getAppointmentDefaultWidth()\r\n }\r\n }, {\r\n key: \"_needVerticalGroupBounds\",\r\n value: function() {\r\n return false\r\n }\r\n }, {\r\n key: \"_needHorizontalGroupBounds\",\r\n value: function() {\r\n return false\r\n }\r\n }]);\r\n return BaseRenderingStrategy\r\n}();\r\nmodule.exports = BaseRenderingStrategy;\r\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.timeline_day.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar registerComponent = require(\"../../../core/component_registrator\");\r\nvar SchedulerTimeline = require(\"./ui.scheduler.timeline\");\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline-day\";\r\nvar SchedulerTimelineDay = SchedulerTimeline.inherit({\r\n _getElementClass: function() {\r\n return TIMELINE_CLASS\r\n },\r\n _setFirstViewDate: function() {\r\n this._firstViewDate = this.option(\"currentDate\");\r\n this._setStartDayHour(this._firstViewDate)\r\n },\r\n _needRenderWeekHeader: function() {\r\n return this._isWorkSpaceWithCount()\r\n }\r\n});\r\nregisterComponent(\"dxSchedulerTimelineDay\", SchedulerTimelineDay);\r\nmodule.exports = SchedulerTimelineDay;\r\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.work_space.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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 $ = require(\"../../../core/renderer\");\r\nvar domAdapter = require(\"../../../core/dom_adapter\");\r\nvar eventsEngine = require(\"../../../events/core/events_engine\");\r\nvar dataUtils = require(\"../../../core/element_data\");\r\nvar dateUtils = require(\"../../../core/utils/date\");\r\nvar typeUtils = require(\"../../../core/utils/type\");\r\nvar windowUtils = require(\"../../../core/utils/window\");\r\nvar getPublicElement = require(\"../../../core/utils/dom\").getPublicElement;\r\nvar extend = require(\"../../../core/utils/extend\").extend;\r\nvar each = require(\"../../../core/utils/iterator\").each;\r\nvar getBoundingRect = require(\"../../../core/utils/position\").getBoundingRect;\r\nvar messageLocalization = require(\"../../../localization/message\");\r\nvar dateLocalization = require(\"../../../localization/date\");\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar Widget = require(\"../../widget/ui.widget\");\r\nvar abstract = Widget.abstract;\r\nvar noop = require(\"../../../core/utils/common\").noop;\r\nvar isDefined = require(\"../../../core/utils/type\").isDefined;\r\nvar publisherMixin = require(\"../ui.scheduler.publisher_mixin\");\r\nvar eventUtils = require(\"../../../events/utils\");\r\nvar pointerEvents = require(\"../../../events/pointer\");\r\nvar errors = require(\"../../widget/ui.errors\");\r\nvar clickEvent = require(\"../../../events/click\");\r\nvar contextMenuEvent = require(\"../../../events/contextmenu\");\r\nvar dragEvents = require(\"../../../events/drag\");\r\nvar Scrollable = require(\"../../scroll_view/ui.scrollable\");\r\nvar HorizontalGroupedStrategy = require(\"./ui.scheduler.work_space.grouped.strategy.horizontal\");\r\nvar VerticalGroupedStrategy = require(\"./ui.scheduler.work_space.grouped.strategy.vertical\");\r\nvar tableCreator = require(\"../ui.scheduler.table_creator\");\r\nvar VerticalShader = require(\"../shaders/ui.scheduler.current_time_shader.vertical\");\r\nvar AppointmentDragBehavior = require(\"../appointmentDragBehavior\");\r\nvar FIXED_CONTAINER_CLASS = require(\"../constants\").FIXED_CONTAINER_CLASS;\r\nvar timeZoneUtils = require(\"../utils.timeZone\");\r\nvar COMPONENT_CLASS = \"dx-scheduler-work-space\";\r\nvar GROUPED_WORKSPACE_CLASS = \"dx-scheduler-work-space-grouped\";\r\nvar VERTICAL_GROUPED_WORKSPACE_CLASS = \"dx-scheduler-work-space-vertical-grouped\";\r\nvar WORKSPACE_VERTICAL_GROUP_TABLE_CLASS = \"dx-scheduler-work-space-vertical-group-table\";\r\nvar WORKSPACE_WITH_BOTH_SCROLLS_CLASS = \"dx-scheduler-work-space-both-scrollbar\";\r\nvar WORKSPACE_WITH_COUNT_CLASS = \"dx-scheduler-work-space-count\";\r\nvar WORKSPACE_WITH_GROUP_BY_DATE_CLASS = \"dx-scheduler-work-space-group-by-date\";\r\nvar WORKSPACE_WITH_ODD_CELLS_CLASS = \"dx-scheduler-work-space-odd-cells\";\r\nvar TIME_PANEL_CLASS = \"dx-scheduler-time-panel\";\r\nvar TIME_PANEL_CELL_CLASS = \"dx-scheduler-time-panel-cell\";\r\nvar TIME_PANEL_ROW_CLASS = \"dx-scheduler-time-panel-row\";\r\nvar ALL_DAY_PANEL_CLASS = \"dx-scheduler-all-day-panel\";\r\nvar ALL_DAY_TABLE_CLASS = \"dx-scheduler-all-day-table\";\r\nvar ALL_DAY_CONTAINER_CLASS = \"dx-scheduler-all-day-appointments\";\r\nvar ALL_DAY_TITLE_CLASS = \"dx-scheduler-all-day-title\";\r\nvar ALL_DAY_TITLE_HIDDEN_CLASS = \"dx-scheduler-all-day-title-hidden\";\r\nvar ALL_DAY_TABLE_CELL_CLASS = \"dx-scheduler-all-day-table-cell\";\r\nvar ALL_DAY_TABLE_ROW_CLASS = \"dx-scheduler-all-day-table-row\";\r\nvar WORKSPACE_WITH_ALL_DAY_CLASS = \"dx-scheduler-work-space-all-day\";\r\nvar WORKSPACE_WITH_COLLAPSED_ALL_DAY_CLASS = \"dx-scheduler-work-space-all-day-collapsed\";\r\nvar WORKSPACE_WITH_MOUSE_SELECTION_CLASS = \"dx-scheduler-work-space-mouse-selection\";\r\nvar HORIZONTAL_SIZES_CLASS = \"dx-scheduler-cell-sizes-horizontal\";\r\nvar VERTICAL_SIZES_CLASS = \"dx-scheduler-cell-sizes-vertical\";\r\nvar HEADER_PANEL_CLASS = \"dx-scheduler-header-panel\";\r\nvar HEADER_PANEL_CELL_CLASS = \"dx-scheduler-header-panel-cell\";\r\nvar HEADER_ROW_CLASS = \"dx-scheduler-header-row\";\r\nvar GROUP_ROW_CLASS = \"dx-scheduler-group-row\";\r\nvar GROUP_HEADER_CLASS = \"dx-scheduler-group-header\";\r\nvar GROUP_HEADER_CONTENT_CLASS = \"dx-scheduler-group-header-content\";\r\nvar DATE_TABLE_CLASS = \"dx-scheduler-date-table\";\r\nvar DATE_TABLE_CELL_CLASS = \"dx-scheduler-date-table-cell\";\r\nvar DATE_TABLE_ROW_CLASS = \"dx-scheduler-date-table-row\";\r\nvar DATE_TABLE_FOCUSED_CELL_CLASS = \"dx-scheduler-focused-cell\";\r\nvar DATE_TABLE_DROPPABLE_CELL_CLASS = \"dx-scheduler-date-table-droppable-cell\";\r\nvar SCHEDULER_HEADER_SCROLLABLE_CLASS = \"dx-scheduler-header-scrollable\";\r\nvar SCHEDULER_SIDEBAR_SCROLLABLE_CLASS = \"dx-scheduler-sidebar-scrollable\";\r\nvar SCHEDULER_DATE_TABLE_SCROLLABLE_CLASS = \"dx-scheduler-date-table-scrollable\";\r\nvar SCHEDULER_WORKSPACE_DXPOINTERDOWN_EVENT_NAME = eventUtils.addNamespace(pointerEvents.down, \"dxSchedulerWorkSpace\");\r\nvar SCHEDULER_CELL_DXDRAGENTER_EVENT_NAME = eventUtils.addNamespace(dragEvents.enter, \"dxSchedulerDateTable\");\r\nvar SCHEDULER_CELL_DXDROP_EVENT_NAME = eventUtils.addNamespace(dragEvents.drop, \"dxSchedulerDateTable\");\r\nvar SCHEDULER_CELL_DXDRAGLEAVE_EVENT_NAME = eventUtils.addNamespace(dragEvents.leave, \"dxSchedulerDateTable\");\r\nvar SCHEDULER_CELL_DXCLICK_EVENT_NAME = eventUtils.addNamespace(clickEvent.name, \"dxSchedulerDateTable\");\r\nvar SCHEDULER_CELL_DXPOINTERDOWN_EVENT_NAME = eventUtils.addNamespace(pointerEvents.down, \"dxSchedulerDateTable\");\r\nvar SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME = eventUtils.addNamespace(pointerEvents.up, \"dxSchedulerDateTable\");\r\nvar SCHEDULER_CELL_DXPOINTERMOVE_EVENT_NAME = eventUtils.addNamespace(pointerEvents.move, \"dxSchedulerDateTable\");\r\nvar CELL_DATA = \"dxCellData\";\r\nvar DATE_TABLE_CELL_BORDER = 1;\r\nvar DATE_TABLE_MIN_CELL_WIDTH = 75;\r\nvar DAY_MS = toMs(\"day\");\r\nvar HOUR_MS = toMs(\"hour\");\r\nvar SCHEDULER_DRAG_AND_DROP_SELECTOR = \".\".concat(DATE_TABLE_CLASS, \" td, .\").concat(ALL_DAY_TABLE_CLASS, \" td\");\r\nvar ScrollSemaphore = function() {\r\n function ScrollSemaphore() {\r\n _classCallCheck(this, ScrollSemaphore);\r\n this.counter = 0\r\n }\r\n _createClass(ScrollSemaphore, [{\r\n key: \"isFree\",\r\n value: function() {\r\n return 0 === this.counter\r\n }\r\n }, {\r\n key: \"take\",\r\n value: function() {\r\n this.counter++\r\n }\r\n }, {\r\n key: \"release\",\r\n value: function() {\r\n this.counter--;\r\n if (this.counter < 0) {\r\n this.counter = 0\r\n }\r\n }\r\n }]);\r\n return ScrollSemaphore\r\n}();\r\nvar formatWeekday = function(date) {\r\n return dateLocalization.getDayNames(\"abbreviated\")[date.getDay()]\r\n};\r\nvar SchedulerWorkSpace = Widget.inherit({\r\n _supportedKeys: function() {\r\n var clickHandler = function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (this._focusedCells && this._focusedCells.length) {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n var $cellElement = $itemElement.length ? $itemElement : this._focusedCells;\r\n e.target = this._focusedCells;\r\n this._showPopup = true;\r\n this._cellClickAction({\r\n event: e,\r\n cellElement: $(this._focusedCells),\r\n cellData: this.getCellData($cellElement)\r\n })\r\n }\r\n };\r\n var arrowPressHandler = function(e, cell) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._moveToCell(cell, e.shiftKey)\r\n };\r\n return extend(this.callBase(), {\r\n enter: clickHandler,\r\n space: clickHandler,\r\n downArrow: function(e) {\r\n var $cell = this._getCellFromNextRow(\"next\", e.shiftKey);\r\n arrowPressHandler.call(this, e, $cell)\r\n },\r\n upArrow: function(e) {\r\n var $cell = this._getCellFromNextRow(\"prev\", e.shiftKey);\r\n arrowPressHandler.call(this, e, $cell)\r\n },\r\n rightArrow: function(e) {\r\n var $rightCell = this._getCellFromNextColumn(\"next\", e.shiftKey);\r\n arrowPressHandler.call(this, e, $rightCell)\r\n },\r\n leftArrow: function(e) {\r\n var $leftCell = this._getCellFromNextColumn(\"prev\", e.shiftKey);\r\n arrowPressHandler.call(this, e, $leftCell)\r\n }\r\n })\r\n },\r\n _isRTL: function() {\r\n return this.option(\"rtlEnabled\")\r\n },\r\n _getFocusedCell: function() {\r\n return this._$focusedCell || this._$dateTable.find(\".\" + DATE_TABLE_CELL_CLASS).eq(0)\r\n },\r\n _getAllFocusedCells: function() {\r\n return this._focusedCells || this._$dateTable.find(\".\" + DATE_TABLE_CELL_CLASS).eq(0)\r\n },\r\n _getCellFromNextRow: function(direction) {\r\n var $currentCell = this._$focusedCell;\r\n if (isDefined($currentCell)) {\r\n var cellIndex = $currentCell.index();\r\n var $row = $currentCell.parent();\r\n var $cell = $row[direction]().children().eq(cellIndex);\r\n $cell = this._checkForViewBounds($cell);\r\n return $cell\r\n }\r\n },\r\n _checkForViewBounds: function($item) {\r\n if (!$item.length) {\r\n $item = this._$focusedCell\r\n }\r\n return $item\r\n },\r\n _getCellFromNextColumn: function(direction, isMultiSelection) {\r\n var $focusedCell = this._$focusedCell;\r\n if (!isDefined($focusedCell)) {\r\n return\r\n }\r\n var $nextCell;\r\n var $row = $focusedCell.parent();\r\n var nextColumnDirection = direction;\r\n var isDirectionNext = \"next\" === direction;\r\n var previousColumnDirection = isDirectionNext ? \"prev\" : \"next\";\r\n var isRTL = this._isRTL();\r\n var groupCount = this._getGroupCount();\r\n var isHorizontalGrouping = this._isHorizontalGroupedWorkSpace();\r\n var isGroupedByDate = this.isGroupedByDate();\r\n var totalCellCount = this._getTotalCellCount(groupCount);\r\n var rowCellCount = isMultiSelection && !isGroupedByDate ? this._getCellCount() : totalCellCount;\r\n var lastIndexInRow = rowCellCount - 1;\r\n var currentIndex = $focusedCell.index();\r\n var step = isGroupedByDate && isMultiSelection ? groupCount : 1;\r\n var isEdgeCell = this._isEdgeCell(isHorizontalGrouping ? totalCellCount - 1 : lastIndexInRow, currentIndex, step, direction);\r\n var sign = isRTL ? 1 : -1;\r\n var directionSign = isDirectionNext ? 1 : -1;\r\n var resultingSign = sign * directionSign;\r\n if (isEdgeCell || isMultiSelection && this._isGroupEndCell($focusedCell, direction)) {\r\n var nextIndex = currentIndex - resultingSign * step + resultingSign * rowCellCount;\r\n var rowDirection = isRTL ? previousColumnDirection : nextColumnDirection;\r\n $nextCell = $row[rowDirection]().children().eq(nextIndex);\r\n $nextCell = this._checkForViewBounds($nextCell)\r\n } else {\r\n $nextCell = $row.children().eq(currentIndex - resultingSign * step)\r\n }\r\n return $nextCell\r\n },\r\n _isEdgeCell: function(lastIndexInRow, cellIndex, step, direction) {\r\n var isRTL = this._isRTL();\r\n var isDirectionNext = \"next\" === direction;\r\n var rightEdgeCellIndex = isRTL ? 0 : lastIndexInRow;\r\n var leftEdgeCellIndex = isRTL ? lastIndexInRow : 0;\r\n var edgeCellIndex = isDirectionNext ? rightEdgeCellIndex : leftEdgeCellIndex;\r\n var isNextCellGreaterThanEdge = cellIndex + step > edgeCellIndex;\r\n var isNextCellLessThanEdge = cellIndex - step < edgeCellIndex;\r\n var isRightEdgeCell = isRTL ? isNextCellLessThanEdge : isNextCellGreaterThanEdge;\r\n var isLeftEdgeCell = isRTL ? isNextCellGreaterThanEdge : isNextCellLessThanEdge;\r\n return isDirectionNext ? isRightEdgeCell : isLeftEdgeCell\r\n },\r\n _isGroupEndCell: function($cell, direction) {\r\n if (this.isGroupedByDate()) {\r\n return false\r\n }\r\n var isDirectionNext = \"next\" === direction;\r\n var cellsInRow = this._getCellCount();\r\n var currentCellIndex = $cell.index();\r\n var result = currentCellIndex % cellsInRow;\r\n var endCell = isDirectionNext ? cellsInRow - 1 : 0;\r\n var startCell = isDirectionNext ? 0 : cellsInRow - 1;\r\n return this._isRTL() ? result === startCell : result === endCell\r\n },\r\n _moveToCell: function($cell, isMultiSelection) {\r\n isMultiSelection = isMultiSelection && this.option(\"allowMultipleCellSelection\");\r\n this._setFocusedCell($cell, isMultiSelection);\r\n this._dateTableScrollable.scrollToElement($cell)\r\n },\r\n _setFocusedCell: function($cell, isMultiSelection) {\r\n if (!isDefined($cell) || !$cell.length) {\r\n return\r\n }\r\n this._releaseFocusedCell();\r\n this._focusedCells = [];\r\n if (isMultiSelection) {\r\n $cell = this._correctCellForGroup($cell);\r\n var orientation = \"day\" === this.option(\"type\") && (!this.option(\"groups\").length || \"vertical\" === this.option(\"groupOrientation\")) ? \"vertical\" : \"horizontal\";\r\n var $targetCells = this._getCellsBetween($cell, this._$prevCell, orientation);\r\n this._focusedCells = $targetCells.toArray()\r\n } else {\r\n this._focusedCells = [$cell.get(0)];\r\n this._$prevCell = $cell\r\n }\r\n var $focusedCells = $(this._focusedCells);\r\n this._toggleFocusClass(true, $focusedCells);\r\n this.setAria(\"label\", \"Add appointment\", $focusedCells);\r\n this._toggleFocusedCellClass(true, $cell);\r\n this._$focusedCell = $cell;\r\n var selectedCellData = this.getFocusedCellData();\r\n this.option(\"selectedCellData\", selectedCellData);\r\n this._selectionChangedAction({\r\n selectedCellData: selectedCellData\r\n })\r\n },\r\n _correctCellForGroup: function($cell) {\r\n var $focusedCell = this._$focusedCell;\r\n var cellGroupIndex = this._getGroupIndexByCell($cell);\r\n var focusedCellGroupIndex = this._getGroupIndexByCell($focusedCell);\r\n var isDifferentTables = this._hasAllDayClass($cell) !== this._hasAllDayClass($focusedCell);\r\n return focusedCellGroupIndex !== cellGroupIndex || isDifferentTables ? $focusedCell : $cell\r\n },\r\n _getCellsBetween: function($first, $last, direction) {\r\n var isAllDayTable = this._hasAllDayClass($last);\r\n var $cells = this._getCells(isAllDayTable, direction);\r\n var firstIndex = $cells.index($first);\r\n var lastIndex = $cells.index($last);\r\n if (firstIndex > lastIndex) {\r\n var buffer = firstIndex;\r\n firstIndex = lastIndex;\r\n lastIndex = buffer\r\n }\r\n $cells = $cells.slice(firstIndex, lastIndex + 1);\r\n if (this._getGroupCount() > 1) {\r\n var result = [];\r\n var focusedGroupIndex = this._getGroupIndexByCell($first);\r\n each($cells, function(_, cell) {\r\n var groupIndex = this._getGroupIndexByCell($(cell));\r\n if (focusedGroupIndex === groupIndex) {\r\n result.push(cell)\r\n }\r\n }.bind(this));\r\n $cells = $(result)\r\n }\r\n return $cells\r\n },\r\n _hasAllDayClass: function($cell) {\r\n return $cell.hasClass(ALL_DAY_TABLE_CELL_CLASS)\r\n },\r\n _getGroupIndexByCell: function($cell) {\r\n return this._groupedStrategy.getGroupIndexByCell($cell)\r\n },\r\n _toggleFocusedCellClass: function(isFocused, $element) {\r\n var $focusTarget = $element && $element.length ? $element : this._focusTarget();\r\n $focusTarget.toggleClass(DATE_TABLE_FOCUSED_CELL_CLASS, isFocused)\r\n },\r\n _releaseFocusedCell: function($cell) {\r\n $cell = $cell || $(this._focusedCells);\r\n if (isDefined($cell) && $cell.length) {\r\n this._toggleFocusClass(false, $cell);\r\n this._toggleFocusedCellClass(false, $cell);\r\n this.setAria(\"label\", void 0, $cell)\r\n }\r\n this.option(\"selectedCellData\", [])\r\n },\r\n _focusInHandler: function(e) {\r\n if ($(e.target).is(this._focusTarget()) && false !== this._isCellClick) {\r\n delete this._isCellClick;\r\n delete this._contextMenuHandled;\r\n this.callBase.apply(this, arguments);\r\n var $cell = this._getFocusedCell();\r\n this._setFocusedCell($cell)\r\n }\r\n },\r\n _focusOutHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n if (!this._contextMenuHandled) {\r\n this._releaseFocusedCell()\r\n }\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _activeStateUnit: \".\" + DATE_TABLE_CELL_CLASS + \", .\" + ALL_DAY_TABLE_CELL_CLASS,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n currentDate: new Date,\r\n intervalCount: 1,\r\n startDate: null,\r\n firstDayOfWeek: void 0,\r\n startDayHour: 0,\r\n endDayHour: 24,\r\n hoursInterval: .5,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n groups: [],\r\n showAllDayPanel: true,\r\n allDayExpanded: false,\r\n onCellClick: null,\r\n crossScrollingEnabled: false,\r\n dataCellTemplate: null,\r\n timeCellTemplate: null,\r\n resourceCellTemplate: null,\r\n dateCellTemplate: null,\r\n allowMultipleCellSelection: true,\r\n indicatorTime: new Date,\r\n indicatorUpdateInterval: 5 * toMs(\"minute\"),\r\n shadeUntilCurrentTime: true,\r\n groupOrientation: \"horizontal\",\r\n selectedCellData: [],\r\n groupByDate: false\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"startDayHour\":\r\n case \"endDayHour\":\r\n this.invoke(\"validateDayHours\");\r\n this._cleanWorkSpace();\r\n break;\r\n case \"dateCellTemplate\":\r\n case \"resourceCellTemplate\":\r\n case \"dataCellTemplate\":\r\n case \"timeCellTemplate\":\r\n case \"hoursInterval\":\r\n case \"firstDayOfWeek\":\r\n case \"currentDate\":\r\n case \"startDate\":\r\n this._cleanWorkSpace();\r\n break;\r\n case \"groups\":\r\n this._cleanView();\r\n this._removeAllDayElements();\r\n this._initGrouping();\r\n this.repaint();\r\n break;\r\n case \"groupOrientation\":\r\n this._initGroupedStrategy();\r\n this._createAllDayPanelElements();\r\n this._removeAllDayElements();\r\n this._cleanWorkSpace();\r\n this._toggleGroupByDateClass();\r\n break;\r\n case \"showAllDayPanel\":\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this._cleanView();\r\n this._removeAllDayElements();\r\n this._initGrouping();\r\n this.repaint()\r\n } else {\r\n this._toggleAllDayVisibility()\r\n }\r\n break;\r\n case \"allDayExpanded\":\r\n this._changeAllDayVisibility();\r\n this._attachTablesEvents();\r\n this.headerPanelOffsetRecalculate();\r\n this._updateScrollable();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._createSelectionChangedAction();\r\n break;\r\n case \"onCellClick\":\r\n this._createCellClickAction();\r\n break;\r\n case \"onCellContextMenu\":\r\n this._attachContextMenuEvent();\r\n break;\r\n case \"intervalCount\":\r\n this._cleanWorkSpace();\r\n this._toggleWorkSpaceCountClass();\r\n this._toggleFixedScrollableClass();\r\n break;\r\n case \"groupByDate\":\r\n this._cleanWorkSpace();\r\n this._toggleGroupByDateClass();\r\n break;\r\n case \"crossScrollingEnabled\":\r\n this._toggleHorizontalScrollClass();\r\n this._dateTableScrollable.option(this._dateTableScrollableConfig());\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"allowMultipleCellSelection\":\r\n break;\r\n case \"selectedCellData\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _cleanWorkSpace: function() {\r\n this._cleanView();\r\n this._toggleGroupedClass();\r\n this._toggleWorkSpaceWithOddCells();\r\n this._renderView()\r\n },\r\n _init: function() {\r\n this._headerSemaphore = new ScrollSemaphore;\r\n this._sideBarSemaphore = new ScrollSemaphore;\r\n this._dataTableSemaphore = new ScrollSemaphore;\r\n this.callBase();\r\n this._initGrouping();\r\n this._toggleHorizontalScrollClass();\r\n this._toggleWorkSpaceCountClass();\r\n this._toggleGroupByDateClass();\r\n this._toggleWorkSpaceWithOddCells();\r\n this.$element().addClass(COMPONENT_CLASS).addClass(this._getElementClass())\r\n },\r\n _initGrouping: function() {\r\n this._initGroupedStrategy();\r\n this._toggleGroupingDirectionClass();\r\n this._toggleGroupByDateClass()\r\n },\r\n _initGroupedStrategy: function() {\r\n var strategyName = this.option(\"groups\").length ? this.option(\"groupOrientation\") : this._getDefaultGroupStrategy();\r\n var Strategy = \"vertical\" === strategyName ? VerticalGroupedStrategy : HorizontalGroupedStrategy;\r\n this._groupedStrategy = new Strategy(this)\r\n },\r\n _getDefaultGroupStrategy: function() {\r\n return \"horizontal\"\r\n },\r\n _isVerticalGroupedWorkSpace: function() {\r\n return !!this.option(\"groups\").length && \"vertical\" === this.option(\"groupOrientation\")\r\n },\r\n _isHorizontalGroupedWorkSpace: function() {\r\n return !!this.option(\"groups\").length && \"horizontal\" === this.option(\"groupOrientation\")\r\n },\r\n _toggleHorizontalScrollClass: function() {\r\n this.$element().toggleClass(WORKSPACE_WITH_BOTH_SCROLLS_CLASS, this.option(\"crossScrollingEnabled\"))\r\n },\r\n _toggleGroupByDateClass: function() {\r\n this.$element().toggleClass(WORKSPACE_WITH_GROUP_BY_DATE_CLASS, this.isGroupedByDate())\r\n },\r\n _toggleWorkSpaceCountClass: function() {\r\n this.$element().toggleClass(WORKSPACE_WITH_COUNT_CLASS, this._isWorkSpaceWithCount())\r\n },\r\n _isWorkSpaceWithCount: function() {\r\n return this.option(\"intervalCount\") > 1\r\n },\r\n _toggleWorkSpaceWithOddCells: function() {\r\n this.$element().toggleClass(WORKSPACE_WITH_ODD_CELLS_CLASS, this._isWorkspaceWithOddCells())\r\n },\r\n _isWorkspaceWithOddCells: function() {\r\n return .5 === this.option(\"hoursInterval\")\r\n },\r\n _toggleGroupingDirectionClass: function() {\r\n this.$element().toggleClass(VERTICAL_GROUPED_WORKSPACE_CLASS, this._isVerticalGroupedWorkSpace())\r\n },\r\n _getRealGroupOrientation: function() {\r\n return this._isVerticalGroupedWorkSpace() ? \"vertical\" : \"horizontal\"\r\n },\r\n _getTimePanelClass: function() {\r\n return TIME_PANEL_CLASS\r\n },\r\n _getDateTableClass: function() {\r\n return DATE_TABLE_CLASS\r\n },\r\n _getDateTableRowClass: function() {\r\n return DATE_TABLE_ROW_CLASS\r\n },\r\n _getDateTableCellClass: function(i, j) {\r\n var cellClass = DATE_TABLE_CELL_CLASS + \" \" + HORIZONTAL_SIZES_CLASS + \" \" + VERTICAL_SIZES_CLASS;\r\n return this._needApplyLastGroupCellClass() ? this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, j + 1, i, j) : cellClass\r\n },\r\n _needApplyLastGroupCellClass: function() {\r\n return true\r\n },\r\n _getGroupRowClass: function() {\r\n return GROUP_ROW_CLASS\r\n },\r\n _getGroupHeaderClass: function(i) {\r\n var cellClass = GROUP_HEADER_CLASS;\r\n return this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, i + 1)\r\n },\r\n _getGroupHeaderContentClass: function() {\r\n return GROUP_HEADER_CONTENT_CLASS\r\n },\r\n _initWorkSpaceUnits: function() {\r\n this._$headerPanel = $(\"\");\r\n this._$thead = $(\"\").appendTo(this._$headerPanel);\r\n this._$fixedContainer = $(\"
\").addClass(FIXED_CONTAINER_CLASS);\r\n this._$allDayContainer = $(\"
\").addClass(ALL_DAY_CONTAINER_CLASS);\r\n this._initAllDayPanelElements();\r\n this._createAllDayPanelElements();\r\n this._$timePanel = $(\"
\").addClass(this._getTimePanelClass());\r\n this._$dateTable = $(\"
\");\r\n this._$groupTable = $(\"
\").addClass(WORKSPACE_VERTICAL_GROUP_TABLE_CLASS)\r\n },\r\n _initAllDayPanelElements: function() {\r\n this._allDayTitles = [];\r\n this._allDayTables = [];\r\n this._allDayPanels = []\r\n },\r\n _createAllDayPanelElements: function() {\r\n var groupCount = this._getGroupCount();\r\n if (this._isVerticalGroupedWorkSpace() && 0 !== groupCount) {\r\n for (var i = 0; i < groupCount; i++) {\r\n var $allDayTitle = $(\"
\").addClass(ALL_DAY_TITLE_CLASS).text(messageLocalization.format(\"dxScheduler-allDay\"));\r\n this._allDayTitles.push($allDayTitle);\r\n this._$allDayTable = $(\"
\");\r\n this._allDayTables.push(this._$allDayTable);\r\n this._$allDayPanel = $(\"
\").addClass(ALL_DAY_PANEL_CLASS).append(this._$allDayTable);\r\n this._allDayPanels.push(this._$allDayPanel)\r\n }\r\n } else {\r\n this._$allDayTitle = $(\"
\").addClass(ALL_DAY_TITLE_CLASS).text(messageLocalization.format(\"dxScheduler-allDay\")).appendTo(this.$element());\r\n this._$allDayTable = $(\"
\");\r\n this._$allDayPanel = $(\"
\").addClass(ALL_DAY_PANEL_CLASS).append(this._$allDayTable)\r\n }\r\n },\r\n _initDateTableScrollable: function() {\r\n var $dateTableScrollable = $(\"
\").addClass(SCHEDULER_DATE_TABLE_SCROLLABLE_CLASS);\r\n this._dateTableScrollable = this._createComponent($dateTableScrollable, Scrollable, this._dateTableScrollableConfig())\r\n },\r\n _dateTableScrollableConfig: function() {\r\n var config = {\r\n useKeyboard: false,\r\n bounceEnabled: false,\r\n updateManually: true,\r\n pushBackValue: 0\r\n };\r\n if (this._needCreateCrossScrolling()) {\r\n config = extend(config, this._createCrossScrollingConfig())\r\n }\r\n return config\r\n },\r\n _createCrossScrollingConfig: function() {\r\n var _this = this;\r\n var config = {};\r\n config.direction = \"both\";\r\n config.onScroll = function(e) {\r\n _this._dataTableSemaphore.take();\r\n _this._sideBarSemaphore.isFree() && _this._sidebarScrollable && _this._sidebarScrollable.scrollTo({\r\n top: e.scrollOffset.top\r\n });\r\n _this._headerSemaphore.isFree() && _this._headerScrollable && _this._headerScrollable.scrollTo({\r\n left: e.scrollOffset.left\r\n });\r\n _this._dataTableSemaphore.release()\r\n };\r\n config.onEnd = function() {\r\n _this.notifyObserver(\"updateResizableArea\", {})\r\n };\r\n return config\r\n },\r\n _createWorkSpaceElements: function() {\r\n if (this.option(\"crossScrollingEnabled\")) {\r\n this._createWorkSpaceScrollableElements()\r\n } else {\r\n this._createWorkSpaceStaticElements()\r\n }\r\n },\r\n _createWorkSpaceStaticElements: function() {\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this._dateTableScrollable.$content().append(this._$allDayContainer, this._$groupTable, this._$timePanel, this._$dateTable);\r\n this.$element().append(this._$fixedContainer, this._$headerPanel, this._dateTableScrollable.$element())\r\n } else {\r\n this._dateTableScrollable.$content().append(this._$timePanel, this._$dateTable);\r\n this.$element().append(this._$fixedContainer, this._$headerPanel, this._$allDayContainer, this._$allDayPanel, this._dateTableScrollable.$element())\r\n }\r\n },\r\n _createWorkSpaceScrollableElements: function() {\r\n this.$element().append(this._$fixedContainer);\r\n this._createHeaderScrollable();\r\n this._createSidebarScrollable();\r\n this.$element().append(this._dateTableScrollable.$element());\r\n this._headerScrollable.$content().append(this._$headerPanel);\r\n this._dateTableScrollable.$content().append(this._$dateTable);\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this._dateTableScrollable.$content().prepend(this._$allDayContainer);\r\n this._sidebarScrollable.$content().append(this._$groupTable, this._$timePanel)\r\n } else {\r\n this._headerScrollable.$content().append(this._$allDayContainer, this._$allDayPanel)\r\n }\r\n this._sidebarScrollable.$content().append(this._$timePanel)\r\n },\r\n _createHeaderScrollable: function() {\r\n var $headerScrollable = $(\"
\").addClass(SCHEDULER_HEADER_SCROLLABLE_CLASS).appendTo(this.$element());\r\n this._headerScrollable = this._createComponent($headerScrollable, Scrollable, this._headerScrollableConfig())\r\n },\r\n _headerScrollableConfig: function() {\r\n var _this2 = this;\r\n var config = {\r\n useKeyboard: false,\r\n showScrollbar: false,\r\n direction: \"horizontal\",\r\n useNative: false,\r\n updateManually: true,\r\n bounceEnabled: false,\r\n pushBackValue: 0,\r\n onScroll: function(e) {\r\n _this2._headerSemaphore.take();\r\n _this2._dataTableSemaphore.isFree() && _this2._dateTableScrollable.scrollTo({\r\n left: e.scrollOffset.left\r\n });\r\n _this2._headerSemaphore.release()\r\n }\r\n };\r\n return config\r\n },\r\n _createSidebarScrollable: function() {\r\n var _this3 = this;\r\n var $timePanelScrollable = $(\"
\").addClass(SCHEDULER_SIDEBAR_SCROLLABLE_CLASS).appendTo(this.$element());\r\n this._sidebarScrollable = this._createComponent($timePanelScrollable, Scrollable, {\r\n useKeyboard: false,\r\n showScrollbar: false,\r\n direction: \"vertical\",\r\n useNative: false,\r\n updateManually: true,\r\n bounceEnabled: false,\r\n pushBackValue: 0,\r\n onScroll: function(e) {\r\n _this3._sideBarSemaphore.take();\r\n _this3._dataTableSemaphore.isFree() && _this3._dateTableScrollable.scrollTo({\r\n top: e.scrollOffset.top\r\n });\r\n _this3._sideBarSemaphore.release()\r\n }\r\n })\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible && this._isVerticalGroupedWorkSpace()) {\r\n this._setHorizontalGroupHeaderCellsHeight()\r\n }\r\n if (visible && this._needCreateCrossScrolling()) {\r\n this._setTableSizes()\r\n }\r\n },\r\n _attachTableClasses: function() {\r\n this._addTableClass(this._$dateTable, this._getDateTableClass());\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n var groupCount = this._getGroupCount();\r\n for (var i = 0; i < groupCount; i++) {\r\n this._addTableClass(this._allDayTables[i], ALL_DAY_TABLE_CLASS)\r\n }\r\n } else {\r\n this._addTableClass(this._$allDayTable, ALL_DAY_TABLE_CLASS)\r\n }\r\n },\r\n _attachHeaderTableClasses: function() {\r\n this._addTableClass(this._$headerPanel, HEADER_PANEL_CLASS)\r\n },\r\n _addTableClass: function($el, className) {\r\n $el && !$el.hasClass(className) && $el.addClass(className)\r\n },\r\n _setTableSizes: function() {\r\n this._attachTableClasses();\r\n var cellWidth = this.getCellWidth();\r\n if (cellWidth < this.getCellMinWidth()) {\r\n cellWidth = this.getCellMinWidth()\r\n }\r\n var minWidth = this.getWorkSpaceMinWidth();\r\n var $headerCells = this._$headerPanel.find(\"tr\").last().find(\"th\");\r\n var width = cellWidth * $headerCells.length;\r\n if (width < minWidth) {\r\n width = minWidth\r\n }\r\n this._$headerPanel.width(width);\r\n this._$dateTable.width(width);\r\n this._$allDayTable && this._$allDayTable.width(width);\r\n this._attachHeaderTableClasses();\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n this._setHorizontalGroupHeaderCellsHeight()\r\n }\r\n },\r\n getWorkSpaceMinWidth: function() {\r\n return this._groupedStrategy.getWorkSpaceMinWidth()\r\n },\r\n _dimensionChanged: function() {\r\n if (this.option(\"crossScrollingEnabled\")) {\r\n this._setTableSizes()\r\n }\r\n this.headerPanelOffsetRecalculate();\r\n this._cleanCellDataCache();\r\n this._cleanAllowedPositions()\r\n },\r\n _needCreateCrossScrolling: function() {\r\n return this.option(\"crossScrollingEnabled\")\r\n },\r\n _getElementClass: noop,\r\n _getRowCount: noop,\r\n _getCellCount: noop,\r\n _getRowCountWithAllDayRows: function() {\r\n var allDayRowCount = this.option(\"showAllDayPanel\") ? 1 : 0;\r\n return this._getRowCount() + allDayRowCount\r\n },\r\n _initMarkup: function() {\r\n this._initWorkSpaceUnits();\r\n this._initDateTableScrollable();\r\n this._createWorkSpaceElements();\r\n this.callBase();\r\n if (!this.option(\"crossScrollingEnabled\")) {\r\n this._attachTableClasses();\r\n this._attachHeaderTableClasses()\r\n }\r\n this._toggleGroupedClass();\r\n this._toggleFixedScrollableClass();\r\n this._renderView();\r\n this._attachEvents();\r\n this._setFocusOnCellByOption(this.option(\"selectedCellData\"))\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderDateTimeIndication();\r\n this._setIndicationUpdateInterval()\r\n },\r\n _toggleGroupedClass: function() {\r\n this.$element().toggleClass(GROUPED_WORKSPACE_CLASS, this._getGroupCount() > 0)\r\n },\r\n _toggleFixedScrollableClass: noop,\r\n _renderView: function() {\r\n this._setFirstViewDate();\r\n this._applyCellTemplates(this._renderGroupHeader());\r\n this._renderDateHeader();\r\n this._renderTimePanel();\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n var groupCount = this._getGroupCount();\r\n for (var i = 0; i < groupCount; i++) {\r\n this._renderAllDayPanel(i)\r\n }\r\n }\r\n this._renderDateTable();\r\n this._renderAllDayPanel();\r\n this._updateGroupTableHeight();\r\n this._shader = new VerticalShader(this)\r\n },\r\n _updateGroupTableHeight: function() {\r\n if (this._isVerticalGroupedWorkSpace() && windowUtils.hasWindow()) {\r\n this._setHorizontalGroupHeaderCellsHeight()\r\n }\r\n },\r\n _renderDateTimeIndication: noop,\r\n _setIndicationUpdateInterval: noop,\r\n _refreshDateTimeIndication: noop,\r\n _setFocusOnCellByOption: function(data) {\r\n var cells = [];\r\n this._releaseFocusedCell();\r\n for (var i = 0; i < data.length; i++) {\r\n var groups = data[i].groups;\r\n var groupIndex = this.option(\"groups\").length && groups ? this._getGroupIndexByResourceId(groups) : 0;\r\n var allDay = !!data[i].allDay;\r\n var coordinates = this.getCoordinatesByDate(data[i].startDate, groupIndex, allDay);\r\n var $cell = this._getCellByCoordinates(coordinates, groupIndex);\r\n if (isDefined($cell)) {\r\n this._toggleFocusClass(true, $cell);\r\n cells.push($cell.get(0))\r\n }\r\n }\r\n this._focusedCells = cells\r\n },\r\n _getGroupIndexByResourceId: function(id) {\r\n var groups = this.option(\"groups\");\r\n var resourceTree = this.invoke(\"createResourcesTree\", groups);\r\n if (!resourceTree.length) {\r\n return 0\r\n }\r\n return this._getGroupIndexRecursively(resourceTree, id)\r\n },\r\n _getGroupIndexRecursively: function(resourceTree, id) {\r\n var _this4 = this;\r\n var currentKey = resourceTree[0].name;\r\n var currentValue = id[currentKey];\r\n return resourceTree.reduce(function(prevIndex, _ref) {\r\n var leafIndex = _ref.leafIndex,\r\n value = _ref.value,\r\n children = _ref.children;\r\n var areValuesEqual = currentValue === value;\r\n if (areValuesEqual && void 0 !== leafIndex) {\r\n return leafIndex\r\n }\r\n if (areValuesEqual) {\r\n return _this4._getGroupIndexRecursively(children, id)\r\n }\r\n return prevIndex\r\n }, 0)\r\n },\r\n _setFirstViewDate: function() {\r\n var firstDayOfWeek = isDefined(this._firstDayOfWeek()) ? this._firstDayOfWeek() : dateLocalization.firstDayOfWeekIndex();\r\n this._firstViewDate = dateUtils.getFirstWeekDate(this._getViewStartByOptions(), firstDayOfWeek);\r\n this._setStartDayHour(this._firstViewDate)\r\n },\r\n _getViewStartByOptions: function() {\r\n if (!this.option(\"startDate\")) {\r\n return this.option(\"currentDate\")\r\n } else {\r\n var startDate = dateUtils.trimTime(this._getStartViewDate());\r\n var currentDate = this.option(\"currentDate\");\r\n var diff = startDate.getTime() <= currentDate.getTime() ? 1 : -1;\r\n var endDate = new Date(startDate.getTime() + this._getIntervalDuration() * diff);\r\n while (!this._dateInRange(currentDate, startDate, endDate, diff)) {\r\n startDate = endDate;\r\n endDate = new Date(startDate.getTime() + this._getIntervalDuration() * diff)\r\n }\r\n return diff > 0 ? startDate : endDate\r\n }\r\n },\r\n _getHeaderDate: function() {\r\n return this.getStartViewDate()\r\n },\r\n _getStartViewDate: function() {\r\n return this.option(\"startDate\")\r\n },\r\n _dateInRange: function(date, startDate, endDate, diff) {\r\n return diff > 0 ? dateUtils.dateInRange(date, startDate, new Date(endDate.getTime() - 1)) : dateUtils.dateInRange(date, endDate, startDate, \"date\")\r\n },\r\n _getIntervalDuration: function() {\r\n return toMs(\"day\") * this.option(\"intervalCount\")\r\n },\r\n _setStartDayHour: function(date) {\r\n var startDayHour = this.option(\"startDayHour\");\r\n if (isDefined(startDayHour)) {\r\n date.setHours(startDayHour, startDayHour % 1 * 60, 0, 0)\r\n }\r\n },\r\n _firstDayOfWeek: function() {\r\n return this.option(\"firstDayOfWeek\")\r\n },\r\n _attachEvents: function() {\r\n this._createSelectionChangedAction();\r\n this._attachClickEvent();\r\n this._attachContextMenuEvent()\r\n },\r\n _attachClickEvent: function() {\r\n var that = this;\r\n var pointerDownAction = this._createAction(function(e) {\r\n that._pointerDownHandler(e.event)\r\n });\r\n this._createCellClickAction();\r\n var cellSelector = \".\" + DATE_TABLE_CELL_CLASS + \",.\" + ALL_DAY_TABLE_CELL_CLASS;\r\n var $element = this.$element();\r\n eventsEngine.off($element, SCHEDULER_WORKSPACE_DXPOINTERDOWN_EVENT_NAME);\r\n eventsEngine.off($element, SCHEDULER_CELL_DXCLICK_EVENT_NAME);\r\n eventsEngine.on($element, SCHEDULER_WORKSPACE_DXPOINTERDOWN_EVENT_NAME, function(e) {\r\n if (eventUtils.isMouseEvent(e) && e.which > 1) {\r\n e.preventDefault();\r\n return\r\n }\r\n pointerDownAction({\r\n event: e\r\n })\r\n });\r\n eventsEngine.on($element, SCHEDULER_CELL_DXCLICK_EVENT_NAME, cellSelector, function(e) {\r\n var $cell = $(e.target);\r\n that._cellClickAction({\r\n event: e,\r\n cellElement: getPublicElement($cell),\r\n cellData: that.getCellData($cell)\r\n })\r\n })\r\n },\r\n _createCellClickAction: function() {\r\n var that = this;\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\", {\r\n afterExecute: function(e) {\r\n that._moveToClosestNonStub(e.args[0].event)\r\n }\r\n })\r\n },\r\n _createSelectionChangedAction: function() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\")\r\n },\r\n _moveToClosestNonStub: function(e) {\r\n var $target = $(e.target);\r\n if (this._showPopup && this._hasFocusClass($target)) {\r\n delete this._showPopup;\r\n this._showAddAppointmentPopup($target)\r\n }\r\n },\r\n _pointerDownHandler: function(e) {\r\n var $target = $(e.target);\r\n if (!$target.hasClass(DATE_TABLE_CELL_CLASS) && !$target.hasClass(ALL_DAY_TABLE_CELL_CLASS)) {\r\n this._isCellClick = false;\r\n return\r\n }\r\n this._isCellClick = true;\r\n if ($target.hasClass(DATE_TABLE_FOCUSED_CELL_CLASS)) {\r\n this._showPopup = true\r\n } else {\r\n this._setFocusedCell($target)\r\n }\r\n },\r\n _showAddAppointmentPopup: function($cell) {\r\n var firstCellData = this.getCellData($cell.first());\r\n var lastCellData = this.getCellData($cell.last());\r\n var args = {\r\n startDate: this.invoke(\"convertDateByTimezoneBack\", firstCellData.startDate) || firstCellData.startDate,\r\n endDate: this.invoke(\"convertDateByTimezoneBack\", lastCellData.endDate) || lastCellData.endDate\r\n };\r\n if (isDefined(lastCellData.allDay)) {\r\n args.allDay = lastCellData.allDay\r\n }\r\n extend(args, lastCellData.groups);\r\n this.notifyObserver(\"showAddAppointmentPopup\", args)\r\n },\r\n _attachContextMenuEvent: function() {\r\n this._createContextMenuAction();\r\n var cellSelector = \".\" + DATE_TABLE_CELL_CLASS + \",.\" + ALL_DAY_TABLE_CELL_CLASS;\r\n var $element = this.$element();\r\n var eventName = eventUtils.addNamespace(contextMenuEvent.name, this.NAME);\r\n eventsEngine.off($element, eventName, cellSelector);\r\n eventsEngine.on($element, eventName, cellSelector, this._contextMenuHandler.bind(this))\r\n },\r\n _contextMenuHandler: function(e) {\r\n var $cell = $(e.target);\r\n this._contextMenuAction({\r\n event: e,\r\n cellElement: getPublicElement($cell),\r\n cellData: this.getCellData($cell)\r\n });\r\n this._contextMenuHandled = true\r\n },\r\n _createContextMenuAction: function() {\r\n this._contextMenuAction = this._createActionByOption(\"onCellContextMenu\")\r\n },\r\n _getGroupHeaderContainer: function() {\r\n if (this._isVerticalGroupedWorkSpace()) {\r\n return this._$groupTable\r\n }\r\n return this._$thead\r\n },\r\n _getDateHeaderContainer: function() {\r\n return this._$thead\r\n },\r\n _renderGroupHeader: function() {\r\n var $container = this._getGroupHeaderContainer();\r\n var groupCount = this._getGroupCount();\r\n var cellTemplates = [];\r\n if (groupCount) {\r\n var groupRows = this._makeGroupRows(this.option(\"groups\"), this.option(\"groupByDate\"));\r\n this._attachGroupCountAttr(groupCount, groupRows);\r\n $container.append(groupRows.elements);\r\n cellTemplates = groupRows.cellTemplates\r\n } else {\r\n this._detachGroupCountAttr()\r\n }\r\n return cellTemplates\r\n },\r\n _applyCellTemplates: function(templates) {\r\n templates.forEach(function(template) {\r\n template()\r\n })\r\n },\r\n _detachGroupCountAttr: function() {\r\n var groupedAttr = this._groupedStrategy.getGroupCountAttr();\r\n this.$element().removeAttr(groupedAttr.attr)\r\n },\r\n _attachGroupCountAttr: function(groupRowCount, groupRows) {\r\n var groupedAttr = this._groupedStrategy.getGroupCountAttr(groupRowCount, groupRows);\r\n this.$element().attr(groupedAttr.attr, groupedAttr.count)\r\n },\r\n headerPanelOffsetRecalculate: function() {\r\n if (!this.option(\"resourceCellTemplate\") && !this.option(\"dateCellTemplate\")) {\r\n return\r\n }\r\n var headerPanelHeight = this.getHeaderPanelHeight();\r\n var headerHeight = this.invoke(\"getHeaderHeight\");\r\n var allDayPanelHeight = this.supportAllDayRow() && this.option(\"showAllDayPanel\") ? this._groupedStrategy.getAllDayTableHeight() : 0;\r\n headerPanelHeight && this._headerScrollable && this._headerScrollable.$element().height(headerPanelHeight + allDayPanelHeight);\r\n headerPanelHeight && this._dateTableScrollable.$element().css({\r\n paddingBottom: allDayPanelHeight + headerPanelHeight + \"px\",\r\n marginBottom: -1 * (parseInt(headerPanelHeight, 10) + allDayPanelHeight) + \"px\"\r\n });\r\n headerPanelHeight && this._sidebarScrollable && this._sidebarScrollable.$element().css({\r\n paddingBottom: allDayPanelHeight + headerPanelHeight + \"px\",\r\n marginBottom: -1 * (parseInt(headerPanelHeight, 10) + allDayPanelHeight) + \"px\"\r\n });\r\n this._$allDayTitle && this._$allDayTitle.css(\"top\", headerHeight + headerPanelHeight + \"px\")\r\n },\r\n _makeGroupRows: function(groups, groupByDate) {\r\n var tableCreatorStrategy = this._isVerticalGroupedWorkSpace() ? tableCreator.VERTICAL : tableCreator.HORIZONTAL;\r\n return tableCreator.makeGroupedTable(tableCreatorStrategy, groups, {\r\n groupHeaderRowClass: this._getGroupRowClass(),\r\n groupRowClass: this._getGroupRowClass(),\r\n groupHeaderClass: this._getGroupHeaderClass.bind(this),\r\n groupHeaderContentClass: this._getGroupHeaderContentClass()\r\n }, this._getCellCount() || 1, this.option(\"resourceCellTemplate\"), this._getGroupCount(), groupByDate)\r\n },\r\n _getDateHeaderTemplate: function() {\r\n return this.option(\"dateCellTemplate\")\r\n },\r\n _renderDateHeader: function() {\r\n var $container = this._getDateHeaderContainer();\r\n var $headerRow = $(\"
\").addClass(HEADER_ROW_CLASS);\r\n var count = this._getCellCount();\r\n var cellTemplate = this._getDateHeaderTemplate();\r\n var repeatCount = this._calculateHeaderCellRepeatCount();\r\n var templateCallbacks = [];\r\n var groupByDate = this.isGroupedByDate();\r\n var colspan = groupByDate ? this._getGroupCount() : 1;\r\n var i;\r\n var j;\r\n if (!groupByDate) {\r\n for (j = 0; j < repeatCount; j++) {\r\n for (i = 0; i < count; i++) {\r\n this._renderDateHeaderTemplate($headerRow, i, j * repeatCount + i, cellTemplate, templateCallbacks)\r\n }\r\n }\r\n $container.append($headerRow)\r\n } else {\r\n for (i = 0; i < count; i++) {\r\n var $cell = this._renderDateHeaderTemplate($headerRow, i, i * repeatCount, cellTemplate, templateCallbacks);\r\n $cell.attr(\"colSpan\", colspan)\r\n }\r\n $container.prepend($headerRow)\r\n }\r\n this._applyCellTemplates(templateCallbacks);\r\n return $headerRow\r\n },\r\n _renderDateHeaderTemplate: function($container, i, calculatedIndex, cellTemplate, templateCallbacks) {\r\n var text = this._getHeaderText(i);\r\n var $cell = $(\"\").addClass(HEADER_ROW_CLASS).append($cells);\r\n $headerRow.before($row)\r\n }\r\n },\r\n _needRenderWeekHeader: function() {\r\n return false\r\n },\r\n _incrementDate: function(date) {\r\n date.setDate(date.getDate() + 1)\r\n },\r\n _getWeekDuration: function() {\r\n return 1\r\n },\r\n _renderView: function() {\r\n this._setFirstViewDate();\r\n var groupCellTemplates = this._renderGroupHeader();\r\n this._renderDateHeader();\r\n this._renderAllDayPanel();\r\n this._renderTimePanel();\r\n this._renderDateTable();\r\n this._shader = new HorizontalShader(this);\r\n this._updateGroupTableHeight();\r\n this._$sidebarTable.appendTo(this._sidebarScrollable.$content());\r\n this._applyCellTemplates(groupCellTemplates)\r\n },\r\n _setHorizontalGroupHeaderCellsHeight: noop,\r\n getIndicationCellCount: function() {\r\n var today = this._getToday();\r\n var date = this._getIndicationFirstViewDate();\r\n var hiddenInterval = this._getHiddenInterval();\r\n var timeDiff = today.getTime() - date.getTime();\r\n var differenceInDays = Math.ceil(timeDiff / toMs(\"day\")) - 1;\r\n var duration = timeDiff - differenceInDays * hiddenInterval;\r\n var cellCount = duration / this.getCellDuration();\r\n return cellCount\r\n },\r\n getIndicationWidth: function() {\r\n if (this.isGroupedByDate()) {\r\n var cellCount = this.getIndicationCellCount();\r\n var integerPart = Math.floor(cellCount);\r\n var fractionPart = cellCount - integerPart;\r\n return this.getCellWidth() * (integerPart * this._getGroupCount() + fractionPart)\r\n } else {\r\n return this.getIndicationCellCount() * this.getCellWidth()\r\n }\r\n },\r\n _renderIndicator: function(height, rtlOffset, $container, groupCount) {\r\n var $indicator;\r\n var width = this.getIndicationWidth();\r\n if (\"vertical\" === this.option(\"groupOrientation\")) {\r\n $indicator = this._createIndicator($container);\r\n $indicator.height(getBoundingRect($container.get(0)).height);\r\n $indicator.css(\"left\", rtlOffset ? rtlOffset - width : width)\r\n } else {\r\n for (var i = 0; i < groupCount; i++) {\r\n var offset = this.isGroupedByDate() ? i * this.getCellWidth() : this._getCellCount() * this.getCellWidth() * i;\r\n $indicator = this._createIndicator($container);\r\n $indicator.height(getBoundingRect($container.get(0)).height);\r\n $indicator.css(\"left\", rtlOffset ? rtlOffset - width - offset : width + offset)\r\n }\r\n }\r\n },\r\n _isVerticalShader: function() {\r\n return false\r\n },\r\n _isCurrentTimeHeaderCell: function(headerIndex) {\r\n var result = false;\r\n if (this.option(\"showCurrentTimeIndicator\") && this._needRenderDateTimeIndicator()) {\r\n var date = this._getDateByIndex(headerIndex);\r\n var now = this._getToday();\r\n date = new Date(date);\r\n if (dateUtils.sameDate(now, date)) {\r\n var startCellDate = new Date(date);\r\n var endCellDate = new Date(date);\r\n endCellDate = endCellDate.setMilliseconds(date.getMilliseconds() + this.getCellDuration());\r\n result = dateUtils.dateInRange(now, startCellDate, endCellDate)\r\n }\r\n }\r\n return result\r\n },\r\n _cleanView: function() {\r\n this.callBase();\r\n this._$sidebarTable.empty()\r\n },\r\n _visibilityChanged: function(visible) {\r\n this.callBase(visible)\r\n },\r\n _setTableSizes: function() {\r\n var cellHeight = this.getCellHeight();\r\n var minHeight = this._getWorkSpaceMinHeight();\r\n var $groupCells = this._$sidebarTable.find(\"tr\");\r\n var height = cellHeight * $groupCells.length;\r\n if (height < minHeight) {\r\n height = minHeight\r\n }\r\n this._$sidebarTable.height(height);\r\n this._$dateTable.height(height);\r\n this.callBase()\r\n },\r\n _getWorkSpaceMinHeight: function() {\r\n var minHeight = this._getWorkSpaceHeight();\r\n var workspaceContainerHeight = this.$element().outerHeight(true) - this.getHeaderPanelHeight() - 2 * DATE_TABLE_CELL_BORDER - DATE_TABLE_HEADER_MARGIN;\r\n if (minHeight < workspaceContainerHeight) {\r\n minHeight = workspaceContainerHeight\r\n }\r\n return minHeight\r\n },\r\n _makeGroupRows: function(groups, groupByDate) {\r\n var tableCreatorStrategy = \"vertical\" === this.option(\"groupOrientation\") ? tableCreator.VERTICAL : tableCreator.HORIZONTAL;\r\n return tableCreator.makeGroupedTable(tableCreatorStrategy, groups, {\r\n groupRowClass: this._getGroupRowClass(),\r\n groupHeaderRowClass: this._getGroupRowClass(),\r\n groupHeaderClass: this._getGroupHeaderClass.bind(this),\r\n groupHeaderContentClass: this._getGroupHeaderContentClass()\r\n }, this._getCellCount() || 1, this.option(\"resourceCellTemplate\"), this._getTotalRowCount(this._getGroupCount()), groupByDate)\r\n },\r\n _ensureGroupHeaderCellsHeight: function(cellHeight) {\r\n var minCellHeight = this._calculateMinCellHeight();\r\n if (cellHeight < minCellHeight) {\r\n return minCellHeight\r\n }\r\n return cellHeight\r\n },\r\n _calculateMinCellHeight: function() {\r\n var dateTable = this._getDateTable();\r\n var dateTableRowSelector = \".\" + this._getDateTableRowClass();\r\n return getBoundingRect(dateTable).height / dateTable.find(dateTableRowSelector).length - 2 * DATE_TABLE_CELL_BORDER\r\n },\r\n _getCellCoordinatesByIndex: function(index) {\r\n return {\r\n cellIndex: index % this._getCellCount(),\r\n rowIndex: 0\r\n }\r\n },\r\n _getCellByCoordinates: function(cellCoordinates, groupIndex) {\r\n var indexes = this._groupedStrategy.prepareCellIndexes(cellCoordinates, groupIndex);\r\n return this._$dateTable.find(\"tr\").eq(indexes.rowIndex).find(\"td\").eq(indexes.cellIndex)\r\n },\r\n _getWorkSpaceWidth: function() {\r\n return this._$dateTable.outerWidth(true)\r\n },\r\n _getIndicationFirstViewDate: function() {\r\n return new Date(this._firstViewDate)\r\n },\r\n _getIntervalBetween: function(currentDate, allDay) {\r\n var startDayHour = this.option(\"startDayHour\");\r\n var endDayHour = this.option(\"endDayHour\");\r\n var firstViewDate = this.getStartViewDate();\r\n var firstViewDateTime = firstViewDate.getTime();\r\n var hiddenInterval = (24 - endDayHour + startDayHour) * toMs(\"hour\");\r\n var timeZoneOffset = dateUtils.getTimezonesDifference(firstViewDate, currentDate);\r\n var apptStart = currentDate.getTime();\r\n var fullInterval = apptStart - firstViewDateTime - timeZoneOffset;\r\n var fullDays = Math.floor(fullInterval / toMs(\"day\"));\r\n var tailDuration = fullInterval - fullDays * toMs(\"day\");\r\n var tailDelta = 0;\r\n var cellCount = this._getCellCountInDay() * (fullDays - this._getWeekendsCount(fullDays));\r\n var gapBeforeAppt = apptStart - dateUtils.trimTime(new Date(currentDate)).getTime();\r\n var result = cellCount * this.option(\"hoursInterval\") * toMs(\"hour\");\r\n if (!allDay) {\r\n if (currentDate.getHours() < startDayHour) {\r\n tailDelta = tailDuration - hiddenInterval + gapBeforeAppt\r\n } else {\r\n if (currentDate.getHours() >= startDayHour && currentDate.getHours() < endDayHour) {\r\n tailDelta = tailDuration\r\n } else {\r\n if (currentDate.getHours() >= startDayHour && currentDate.getHours() >= endDayHour) {\r\n tailDelta = tailDuration - (gapBeforeAppt - endDayHour * toMs(\"hour\"))\r\n } else {\r\n if (!fullDays) {\r\n result = fullInterval\r\n }\r\n }\r\n }\r\n }\r\n result += tailDelta\r\n }\r\n return result\r\n },\r\n _getWeekendsCount: function() {\r\n return 0\r\n },\r\n getAllDayContainer: function() {\r\n return null\r\n },\r\n getTimePanelWidth: function() {\r\n return 0\r\n },\r\n getPositionShift: function(timeShift) {\r\n var positionShift = this.callBase(timeShift);\r\n var left = this.getCellWidth() * timeShift;\r\n if (this.option(\"rtlEnabled\")) {\r\n left *= -1\r\n }\r\n left += positionShift.left;\r\n return {\r\n top: 0,\r\n left: left,\r\n cellPosition: left\r\n }\r\n },\r\n getVisibleBounds: function() {\r\n var isRtl = this.option(\"rtlEnabled\");\r\n var result = {};\r\n var $scrollable = this.getScrollable().$element();\r\n var cellWidth = this.getCellWidth();\r\n var scrollableOffset = isRtl ? this.getScrollableOuterWidth() - this.getScrollableScrollLeft() : this.getScrollableScrollLeft();\r\n var scrolledCellCount = scrollableOffset / cellWidth;\r\n var visibleCellCount = $scrollable.width() / cellWidth;\r\n var totalCellCount = isRtl ? scrolledCellCount - visibleCellCount : scrolledCellCount + visibleCellCount;\r\n var leftDate = this._getDateByIndex(scrolledCellCount);\r\n var rightDate = this._getDateByIndex(totalCellCount);\r\n if (isRtl) {\r\n leftDate = this._getDateByIndex(totalCellCount);\r\n rightDate = this._getDateByIndex(scrolledCellCount)\r\n }\r\n result.left = {\r\n hours: leftDate.getHours(),\r\n minutes: leftDate.getMinutes() >= 30 ? 30 : 0,\r\n date: dateUtils.trimTime(leftDate)\r\n };\r\n result.right = {\r\n hours: rightDate.getHours(),\r\n minutes: rightDate.getMinutes() >= 30 ? 30 : 0,\r\n date: dateUtils.trimTime(rightDate)\r\n };\r\n return result\r\n },\r\n needUpdateScrollPosition: function(hours, minutes, bounds, date) {\r\n var isUpdateNeeded = false;\r\n isUpdateNeeded = this._dateWithinBounds(bounds, date);\r\n if (hours < bounds.left.hours || hours > bounds.right.hours) {\r\n isUpdateNeeded = true\r\n }\r\n if (hours === bounds.left.hours && minutes < bounds.left.minutes) {\r\n isUpdateNeeded = true\r\n }\r\n if (hours === bounds.right.hours && minutes > bounds.right.minutes) {\r\n isUpdateNeeded = true\r\n }\r\n return isUpdateNeeded\r\n },\r\n getIntervalDuration: function(allDay) {\r\n return this.getCellDuration()\r\n },\r\n _dateWithinBounds: function(bounds, date) {\r\n var trimmedDate = dateUtils.trimTime(new Date(date));\r\n var isUpdateNeeded = false;\r\n if (trimmedDate < bounds.left.date || trimmedDate > bounds.right.date) {\r\n isUpdateNeeded = true\r\n }\r\n return isUpdateNeeded\r\n },\r\n _supportCompactDropDownAppointments: function() {\r\n return false\r\n },\r\n getCellMinWidth: function() {\r\n return 0\r\n },\r\n getWorkSpaceLeftOffset: function() {\r\n return 0\r\n },\r\n scrollToTime: function(hours, minutes, date) {\r\n var coordinates = this._getScrollCoordinates(hours, minutes, date);\r\n var scrollable = this.getScrollable();\r\n var offset = this.option(\"rtlEnabled\") ? getBoundingRect(this.getScrollableContainer().get(0)).width : 0;\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n setTimeout(function() {\r\n scrollable.scrollBy({\r\n left: coordinates.left - scrollable.scrollLeft() - offset,\r\n top: 0\r\n })\r\n })\r\n } else {\r\n scrollable.scrollBy({\r\n left: coordinates.left - scrollable.scrollLeft() - offset,\r\n top: 0\r\n })\r\n }\r\n },\r\n _getRowCountWithAllDayRows: function() {\r\n return this._getRowCount()\r\n }\r\n});\r\nregisterComponent(\"dxSchedulerTimeline\", SchedulerTimeline);\r\nmodule.exports = SchedulerTimeline;\r\n","/**\r\n * DevExtreme (ui/scheduler/rendering_strategies/ui.scheduler.appointmentsPositioning.strategy.adaptive.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _uiSchedulerAppointmentsPositioningStrategy = require(\"./ui.scheduler.appointmentsPositioning.strategy.base\");\r\nvar _uiSchedulerAppointmentsPositioningStrategy2 = _interopRequireDefault(_uiSchedulerAppointmentsPositioningStrategy);\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar COLLECTOR_ADAPTIVE_SIZE = 28;\r\nvar COLLECTOR_ADAPTIVE_BOTTOM_OFFSET = 40;\r\nvar ADAPTIVE_APPOINTMENT_DEFAULT_OFFSET = 35;\r\nvar ADAPTIVE_APPOINTMENT_DEFAULT_WIDTH = 30;\r\nvar AdaptivePositioningStrategy = function(_BasePositioningStrat) {\r\n _inherits(AdaptivePositioningStrategy, _BasePositioningStrat);\r\n var _super = _createSuper(AdaptivePositioningStrategy);\r\n\r\n function AdaptivePositioningStrategy() {\r\n _classCallCheck(this, AdaptivePositioningStrategy);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(AdaptivePositioningStrategy, [{\r\n key: \"getDropDownAppointmentWidth\",\r\n value: function(intervalCount, isAllDay) {\r\n return this.getDropDownButtonAdaptiveSize()\r\n }\r\n }, {\r\n key: \"getDropDownButtonAdaptiveSize\",\r\n value: function() {\r\n return COLLECTOR_ADAPTIVE_SIZE\r\n }\r\n }, {\r\n key: \"getCollectorTopOffset\",\r\n value: function(allDay) {\r\n var renderingStrategy = this.getRenderingStrategy();\r\n if (renderingStrategy.hasAllDayAppointments() && allDay) {\r\n return (renderingStrategy.getDefaultAllDayCellHeight() - renderingStrategy.getDropDownButtonAdaptiveSize()) / 2\r\n } else {\r\n return this.getRenderingStrategy().getDefaultCellHeight() - COLLECTOR_ADAPTIVE_BOTTOM_OFFSET\r\n }\r\n }\r\n }, {\r\n key: \"getCollectorLeftOffset\",\r\n value: function() {\r\n return (this.getRenderingStrategy().getDefaultCellWidth() - COLLECTOR_ADAPTIVE_SIZE) / 2\r\n }\r\n }, {\r\n key: \"getAppointmentDefaultOffset\",\r\n value: function() {\r\n return ADAPTIVE_APPOINTMENT_DEFAULT_OFFSET\r\n }\r\n }, {\r\n key: \"getDynamicAppointmentCountPerCell\",\r\n value: function() {\r\n var renderingStrategy = this.getRenderingStrategy();\r\n if (renderingStrategy.hasAllDayAppointments()) {\r\n return {\r\n allDay: 0,\r\n simple: this._calculateDynamicAppointmentCountPerCell() || this._getAppointmentMinCount()\r\n }\r\n } else {\r\n return 0\r\n }\r\n }\r\n }, {\r\n key: \"getDropDownAppointmentHeight\",\r\n value: function() {\r\n return COLLECTOR_ADAPTIVE_SIZE\r\n }\r\n }, {\r\n key: \"_getAppointmentMinCount\",\r\n value: function() {\r\n return 0\r\n }\r\n }, {\r\n key: \"_getAppointmentDefaultWidth\",\r\n value: function() {\r\n var renderingStrategy = this.getRenderingStrategy();\r\n if (renderingStrategy.hasAllDayAppointments()) {\r\n return ADAPTIVE_APPOINTMENT_DEFAULT_WIDTH\r\n }\r\n return _get(_getPrototypeOf(AdaptivePositioningStrategy.prototype), \"_getAppointmentDefaultWidth\", this).call(this)\r\n }\r\n }, {\r\n key: \"_calculateDynamicAppointmentCountPerCell\",\r\n value: function() {\r\n return Math.floor(this.getRenderingStrategy()._getAppointmentMaxWidth() / this.getRenderingStrategy()._getAppointmentDefaultWidth())\r\n }\r\n }]);\r\n return AdaptivePositioningStrategy\r\n}(_uiSchedulerAppointmentsPositioningStrategy2.default);\r\nmodule.exports = AdaptivePositioningStrategy;\r\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.work_space_work_week.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar registerComponent = require(\"../../../core/component_registrator\");\r\nvar dateUtils = require(\"../../../core/utils/date\");\r\nvar workWeekUtils = require(\"./utils.work_week\");\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar SchedulerWorkSpaceWeek = require(\"./ui.scheduler.work_space_week\");\r\nvar WORK_WEEK_CLASS = \"dx-scheduler-work-space-work-week\";\r\nvar dayIndexes = [1, 2, 3, 4, 5];\r\nvar weekCounter = 0;\r\nvar SchedulerWorkSpaceWorkWeek = function(_SchedulerWorkSpaceWe) {\r\n _inherits(SchedulerWorkSpaceWorkWeek, _SchedulerWorkSpaceWe);\r\n var _super = _createSuper(SchedulerWorkSpaceWorkWeek);\r\n\r\n function SchedulerWorkSpaceWorkWeek() {\r\n var _this;\r\n _classCallCheck(this, SchedulerWorkSpaceWorkWeek);\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n _this = _super.call.apply(_super, [this].concat(args));\r\n _this._isSkippedData = workWeekUtils.isDataOnWeekend;\r\n _this._getWeekendsCount = workWeekUtils.getWeekendsCount;\r\n return _this\r\n }\r\n _createClass(SchedulerWorkSpaceWorkWeek, [{\r\n key: \"_getElementClass\",\r\n value: function() {\r\n return WORK_WEEK_CLASS\r\n }\r\n }, {\r\n key: \"_getCellCount\",\r\n value: function() {\r\n return 5 * this.option(\"intervalCount\")\r\n }\r\n }, {\r\n key: \"_firstDayOfWeek\",\r\n value: function() {\r\n return workWeekUtils.getFirstDayOfWeek(this.option(\"firstDayOfWeek\"))\r\n }\r\n }, {\r\n key: \"_getDateByIndex\",\r\n value: function(headerIndex) {\r\n var resultDate = new Date(this._firstViewDate);\r\n if (headerIndex % this._getCellCount() === 0) {\r\n weekCounter = 0\r\n }\r\n resultDate.setDate(this._firstViewDate.getDate() + headerIndex + weekCounter);\r\n var index = resultDate.getDay();\r\n while (dayIndexes.indexOf(index) === -1) {\r\n resultDate.setDate(resultDate.getDate() + 1);\r\n index = resultDate.getDay();\r\n weekCounter++\r\n }\r\n return resultDate\r\n }\r\n }, {\r\n key: \"_renderView\",\r\n value: function() {\r\n weekCounter = 0;\r\n _get(_getPrototypeOf(SchedulerWorkSpaceWorkWeek.prototype), \"_renderView\", this).call(this)\r\n }\r\n }, {\r\n key: \"_setFirstViewDate\",\r\n value: function() {\r\n this._firstViewDate = workWeekUtils.getFirstViewDate(this._getViewStartByOptions(), this._firstDayOfWeek());\r\n this._setStartDayHour(this._firstViewDate)\r\n }\r\n }, {\r\n key: \"_getOffsetByCount\",\r\n value: function(cellIndex) {\r\n var cellsInGroup = this._getCellCount();\r\n var inGroup = Math.floor(cellIndex / cellsInGroup);\r\n cellIndex -= cellsInGroup * inGroup;\r\n var weekendCount = Math.floor(cellIndex / 5);\r\n return toMs(\"day\") * weekendCount * 2\r\n }\r\n }]);\r\n return SchedulerWorkSpaceWorkWeek\r\n}(SchedulerWorkSpaceWeek);\r\nregisterComponent(\"dxSchedulerWorkSpaceWorkWeek\", SchedulerWorkSpaceWorkWeek);\r\nmodule.exports = SchedulerWorkSpaceWorkWeek;\r\n","/**\r\n * DevExtreme (ui/switch.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar $ = require(\"../core/renderer\");\r\nvar eventsEngine = require(\"../events/core/events_engine\");\r\nvar devices = require(\"../core/devices\");\r\nvar extend = require(\"../core/utils/extend\").extend;\r\nvar inkRipple = require(\"./widget/utils.ink_ripple\");\r\nvar registerComponent = require(\"../core/component_registrator\");\r\nvar Editor = require(\"./editor/editor\");\r\nvar eventUtils = require(\"../events/utils\");\r\nvar feedbackEvents = require(\"../events/core/emitter.feedback\");\r\nvar getBoundingRect = require(\"../core/utils/position\").getBoundingRect;\r\nvar themes = require(\"./themes\");\r\nvar fx = require(\"../animation/fx\");\r\nvar messageLocalization = require(\"../localization/message\");\r\nvar clickEvent = require(\"../events/click\");\r\nvar Swipeable = require(\"../events/gesture/swipeable\");\r\nvar Deferred = require(\"../core/utils/deferred\").Deferred;\r\nvar SWITCH_CLASS = \"dx-switch\";\r\nvar SWITCH_WRAPPER_CLASS = SWITCH_CLASS + \"-wrapper\";\r\nvar SWITCH_CONTAINER_CLASS = SWITCH_CLASS + \"-container\";\r\nvar SWITCH_INNER_CLASS = SWITCH_CLASS + \"-inner\";\r\nvar SWITCH_HANDLE_CLASS = SWITCH_CLASS + \"-handle\";\r\nvar SWITCH_ON_VALUE_CLASS = SWITCH_CLASS + \"-on-value\";\r\nvar SWITCH_ON_CLASS = SWITCH_CLASS + \"-on\";\r\nvar SWITCH_OFF_CLASS = SWITCH_CLASS + \"-off\";\r\nvar SWITCH_ANIMATION_DURATION = 100;\r\nvar Switch = Editor.inherit({\r\n _supportedKeys: function() {\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var click = function(e) {\r\n e.preventDefault();\r\n this._clickAction({\r\n event: e\r\n })\r\n };\r\n var move = function(value, e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._animateValue(value)\r\n };\r\n return extend(this.callBase(), {\r\n space: click,\r\n enter: click,\r\n leftArrow: move.bind(this, isRTL ? true : false),\r\n rightArrow: move.bind(this, isRTL ? false : true)\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n switchedOnText: this._getLocalizationMessage(\"On\"),\r\n switchedOffText: this._getLocalizationMessage(\"Off\"),\r\n value: false,\r\n useInkRipple: false,\r\n _animateHandle: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = themes.current();\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function(_device) {\r\n return themes.isIos7(themeName)\r\n },\r\n options: {\r\n _animateHandle: false\r\n }\r\n }])\r\n },\r\n _setDeprecatedOptions: function() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n onText: {\r\n since: \"18.2\",\r\n alias: \"switchedOnText\"\r\n },\r\n offText: {\r\n since: \"18.2\",\r\n alias: \"switchedOffText\"\r\n }\r\n })\r\n },\r\n _getLocalizationMessage: function(state) {\r\n var newMessage = messageLocalization.format(\"dxSwitch-switched\" + state + \"Text\");\r\n var oldMessage = messageLocalization.format(\"dxSwitch-\" + state.toLowerCase() + \"Text\");\r\n return newMessage || oldMessage\r\n },\r\n _feedbackHideTimeout: 0,\r\n _animating: false,\r\n _initMarkup: function() {\r\n this._renderContainers();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.$element().addClass(SWITCH_CLASS).append(this._$switchWrapper);\r\n this._renderSubmitElement();\r\n this._renderClick();\r\n this.setAria(\"role\", \"button\");\r\n this._renderSwipeable();\r\n this.callBase();\r\n this._renderSwitchInner();\r\n this._renderLabels();\r\n this._renderValue()\r\n },\r\n _getInnerOffset: function(value, offset) {\r\n var ratio = (offset - this._offsetDirection() * Number(!value)) / 2;\r\n return 100 * ratio + \"%\"\r\n },\r\n _getHandleOffset: function(value, offset) {\r\n if (this.option(\"rtlEnabled\")) {\r\n value = !value\r\n }\r\n if (value) {\r\n var calcValue = -100 + 100 * -offset;\r\n return calcValue + \"%\"\r\n } else {\r\n return 100 * -offset + \"%\"\r\n }\r\n },\r\n _renderSwitchInner: function() {\r\n this._$switchInner = $(\"
\").addClass(SWITCH_INNER_CLASS).appendTo(this._$switchContainer);\r\n this._$handle = $(\"
\").addClass(SWITCH_HANDLE_CLASS).appendTo(this._$switchInner)\r\n },\r\n _renderLabels: function() {\r\n this._$labelOn = $(\"
\").addClass(SWITCH_ON_CLASS).prependTo(this._$switchInner);\r\n this._$labelOff = $(\"
\").addClass(SWITCH_OFF_CLASS).appendTo(this._$switchInner);\r\n this._setLabelsText()\r\n },\r\n _renderContainers: function() {\r\n this._$switchContainer = $(\"
\").addClass(SWITCH_CONTAINER_CLASS);\r\n this._$switchWrapper = $(\"
\").addClass(SWITCH_WRAPPER_CLASS).append(this._$switchContainer)\r\n },\r\n _renderSwipeable: function() {\r\n this._createComponent(this.$element(), Swipeable, {\r\n elastic: false,\r\n immediate: true,\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._getItemSizeFunc.bind(this)\r\n })\r\n },\r\n _getItemSizeFunc: function() {\r\n return this._$switchContainer.outerWidth(true) - getBoundingRect(this._$handle.get(0)).width\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = inkRipple.render({\r\n waveSizeCoefficient: 1.7,\r\n isCentered: true,\r\n useHoldAnimation: false,\r\n wavesNumber: 2\r\n })\r\n },\r\n _renderInkWave: function(element, dxEvent, doRender, waveIndex) {\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: element,\r\n event: dxEvent,\r\n wave: waveIndex\r\n };\r\n if (doRender) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _updateFocusState: function(e, value) {\r\n this.callBase.apply(this, arguments);\r\n this._renderInkWave(this._$handle, e, value, 0)\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n this._renderInkWave(this._$handle, e, value, 1)\r\n },\r\n _offsetDirection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _renderPosition: function(state, swipeOffset) {\r\n var innerOffset = this._getInnerOffset(state, swipeOffset);\r\n var handleOffset = this._getHandleOffset(state, swipeOffset);\r\n if (this.option(\"_animateHandle\")) {\r\n this._$switchInner.css(\"transform\", \" translateX(\" + innerOffset + \")\");\r\n this._$handle.css(\"transform\", \" translateX(\" + handleOffset + \")\")\r\n }\r\n },\r\n _validateValue: function() {\r\n var check = this.option(\"value\");\r\n if (\"boolean\" !== typeof check) {\r\n this._options.silent(\"value\", !!check)\r\n }\r\n },\r\n _renderClick: function() {\r\n var eventName = eventUtils.addNamespace(clickEvent.name, this.NAME);\r\n var $element = this.$element();\r\n this._clickAction = this._createAction(this._clickHandler.bind(this));\r\n eventsEngine.off($element, eventName);\r\n eventsEngine.on($element, eventName, function(e) {\r\n this._clickAction({\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _clickHandler: function(args) {\r\n var e = args.event;\r\n this._saveValueChangeEvent(e);\r\n if (this._animating || this._swiping) {\r\n return\r\n }\r\n this._animateValue(!this.option(\"value\"))\r\n },\r\n _animateValue: function(value) {\r\n var startValue = this.option(\"value\");\r\n var endValue = value;\r\n if (startValue === endValue) {\r\n return\r\n }\r\n this._animating = true;\r\n var fromInnerOffset = this._getInnerOffset(startValue, 0);\r\n var toInnerOffset = this._getInnerOffset(endValue, 0);\r\n var fromHandleOffset = this._getHandleOffset(startValue, 0);\r\n var toHandleOffset = this._getHandleOffset(endValue, 0);\r\n var that = this;\r\n var fromInnerConfig = {};\r\n var toInnerConfig = {};\r\n var fromHandleConfig = {};\r\n var toHandlerConfig = {};\r\n fromInnerConfig.transform = \" translateX(\" + fromInnerOffset + \")\";\r\n toInnerConfig.transform = \" translateX(\" + toInnerOffset + \")\";\r\n fromHandleConfig.transform = \" translateX(\" + fromHandleOffset + \")\";\r\n toHandlerConfig.transform = \" translateX(\" + toHandleOffset + \")\";\r\n this.$element().toggleClass(SWITCH_ON_VALUE_CLASS, endValue);\r\n fx.animate(this._$handle, {\r\n from: fromHandleConfig,\r\n to: toHandlerConfig,\r\n duration: SWITCH_ANIMATION_DURATION\r\n });\r\n fx.animate(this._$switchInner, {\r\n from: fromInnerConfig,\r\n to: toInnerConfig,\r\n duration: SWITCH_ANIMATION_DURATION,\r\n complete: function() {\r\n that._animating = false;\r\n that.option(\"value\", endValue)\r\n }\r\n })\r\n },\r\n _swipeStartHandler: function(e) {\r\n var state = this.option(\"value\");\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var maxOffOffset = rtlEnabled ? 0 : 1;\r\n var maxOnOffset = rtlEnabled ? 1 : 0;\r\n e.event.maxLeftOffset = state ? maxOffOffset : maxOnOffset;\r\n e.event.maxRightOffset = state ? maxOnOffset : maxOffOffset;\r\n this._swiping = true;\r\n this._feedbackDeferred = new Deferred;\r\n feedbackEvents.lock(this._feedbackDeferred);\r\n this._toggleActiveState(this.$element(), this.option(\"activeStateEnabled\"))\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n this._renderPosition(this.option(\"value\"), e.event.offset)\r\n },\r\n _swipeEndHandler: function(e) {\r\n var that = this;\r\n var offsetDirection = this._offsetDirection();\r\n var toInnerConfig = {};\r\n var toHandleConfig = {};\r\n var innerOffset = this._getInnerOffset(that.option(\"value\"), e.event.targetOffset);\r\n var handleOffset = this._getHandleOffset(that.option(\"value\"), e.event.targetOffset);\r\n toInnerConfig.transform = \" translateX(\" + innerOffset + \")\";\r\n toHandleConfig.transform = \" translateX(\" + handleOffset + \")\";\r\n fx.animate(this._$handle, {\r\n to: toHandleConfig,\r\n duration: SWITCH_ANIMATION_DURATION\r\n });\r\n fx.animate(this._$switchInner, {\r\n to: toInnerConfig,\r\n duration: SWITCH_ANIMATION_DURATION,\r\n complete: function() {\r\n that._swiping = false;\r\n var pos = that.option(\"value\") + offsetDirection * e.event.targetOffset;\r\n that._saveValueChangeEvent(e.event);\r\n that.option(\"value\", Boolean(pos));\r\n that._feedbackDeferred.resolve();\r\n that._toggleActiveState(that.$element(), false)\r\n }\r\n })\r\n },\r\n _renderValue: function() {\r\n this._validateValue();\r\n var val = this.option(\"value\");\r\n this._renderPosition(val, 0);\r\n this.$element().toggleClass(SWITCH_ON_VALUE_CLASS, val);\r\n this._getSubmitElement().val(val);\r\n this.setAria({\r\n pressed: val,\r\n label: val ? this.option(\"switchedOnText\") : this.option(\"switchedOffText\")\r\n })\r\n },\r\n _setLabelsText: function() {\r\n this._$labelOn && this._$labelOn.text(this.option(\"switchedOnText\"));\r\n this._$labelOff && this._$labelOff.text(this.option(\"switchedOffText\"))\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this.repaint()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"width\":\r\n delete this._marginBound;\r\n this._refresh();\r\n break;\r\n case \"switchedOnText\":\r\n case \"switchedOffText\":\r\n this._setLabelsText();\r\n break;\r\n case \"value\":\r\n this._renderValue();\r\n this.callBase(args);\r\n break;\r\n case \"_animateHandle\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n delete this._inkRipple;\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxSwitch\", Switch);\r\nmodule.exports = Switch;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/scheduler/utils.timeZone.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _date = require(\"../../core/utils/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _uiScheduler = require(\"./timezones/ui.scheduler.timezones\");\r\nvar _uiScheduler2 = _interopRequireDefault(_uiScheduler);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar toMs = _date2.default.dateToMilliseconds;\r\nvar MINUTES_IN_HOUR = 60;\r\nvar getTimezoneOffsetChangeInMinutes = function(startDate, endDate, updatedStartDate, updatedEndDate) {\r\n return getDaylightOffset(updatedStartDate, updatedEndDate) - getDaylightOffset(startDate, endDate)\r\n};\r\nvar getTimezoneOffsetChangeInMs = function(startDate, endDate, updatedStartDate, updatedEndDate) {\r\n return getTimezoneOffsetChangeInMinutes(startDate, endDate, updatedStartDate, updatedEndDate) * toMs(\"minute\")\r\n};\r\nvar getDaylightOffset = function(startDate, endDate) {\r\n return new Date(startDate).getTimezoneOffset() - new Date(endDate).getTimezoneOffset()\r\n};\r\nvar getDaylightOffsetInMs = function(startDate, endDate) {\r\n return getDaylightOffset(startDate, endDate) * toMs(\"minute\")\r\n};\r\nvar calculateTimezoneByValue = function(timezone, date) {\r\n if (\"string\" === typeof timezone) {\r\n date = date || new Date;\r\n var dateUtc = Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes());\r\n timezone = _uiScheduler2.default.getTimezoneOffsetById(timezone, dateUtc)\r\n }\r\n return timezone\r\n};\r\nvar _getDaylightOffsetByTimezone = function(startDate, endDate, timeZone) {\r\n return calculateTimezoneByValue(timeZone, startDate) - calculateTimezoneByValue(timeZone, endDate)\r\n};\r\nvar getCorrectedDateByDaylightOffsets = function(convertedOriginalStartDate, convertedDate, date, timeZone, startDateTimezone) {\r\n var daylightOffsetByCommonTimezone = _getDaylightOffsetByTimezone(convertedOriginalStartDate, convertedDate, timeZone);\r\n var daylightOffsetByAppointmentTimezone = _getDaylightOffsetByTimezone(convertedOriginalStartDate, convertedDate, startDateTimezone);\r\n var diff = daylightOffsetByCommonTimezone - daylightOffsetByAppointmentTimezone;\r\n return new Date(date.getTime() - diff * toMs(\"hour\"))\r\n};\r\nvar correctRecurrenceExceptionByTimezone = function(exception, exceptionByStartDate, timeZone, startDateTimeZone) {\r\n var isBackConversion = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n var timezoneOffset = (exception.getTimezoneOffset() - exceptionByStartDate.getTimezoneOffset()) / MINUTES_IN_HOUR;\r\n if (startDateTimeZone) {\r\n timezoneOffset = _getDaylightOffsetByTimezone(exceptionByStartDate, exception, startDateTimeZone)\r\n } else {\r\n if (timeZone) {\r\n timezoneOffset = _getDaylightOffsetByTimezone(exceptionByStartDate, exception, timeZone)\r\n }\r\n }\r\n return new Date(exception.getTime() + (isBackConversion ? -1 : 1) * timezoneOffset * toMs(\"hour\"))\r\n};\r\nvar isTimezoneChangeInDate = function(date) {\r\n var startDayDate = new Date(new Date(date).setHours(0, 0, 0, 0));\r\n var endDayDate = new Date(new Date(date).setHours(23, 59, 59, 0));\r\n return startDayDate.getTimezoneOffset() - endDayDate.getTimezoneOffset() !== 0\r\n};\r\nvar isSameAppointmentDates = function(startDate, endDate) {\r\n endDate = new Date(endDate.getTime() - 1);\r\n return _date2.default.sameDate(startDate, endDate)\r\n};\r\nvar utils = {\r\n getDaylightOffset: getDaylightOffset,\r\n getDaylightOffsetInMs: getDaylightOffsetInMs,\r\n getTimezoneOffsetChangeInMinutes: getTimezoneOffsetChangeInMinutes,\r\n getTimezoneOffsetChangeInMs: getTimezoneOffsetChangeInMs,\r\n calculateTimezoneByValue: calculateTimezoneByValue,\r\n getCorrectedDateByDaylightOffsets: getCorrectedDateByDaylightOffsets,\r\n isTimezoneChangeInDate: isTimezoneChangeInDate,\r\n isSameAppointmentDates: isSameAppointmentDates,\r\n correctRecurrenceExceptionByTimezone: correctRecurrenceExceptionByTimezone\r\n};\r\nmodule.exports = utils;\r\n","/**\r\n * DevExtreme (ui/scheduler/ui.loading.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar $ = require(\"../../core/renderer\");\r\nvar viewPortUtils = require(\"../../core/utils/view_port\");\r\nvar LoadPanel = require(\"../load_panel\");\r\nvar Deferred = require(\"../../core/utils/deferred\").Deferred;\r\nvar loading = null;\r\nvar createLoadPanel = function(options) {\r\n return new LoadPanel($(\"
\").appendTo(options && options.container || viewPortUtils.value()), options)\r\n};\r\nvar removeLoadPanel = function() {\r\n if (!loading) {\r\n return\r\n }\r\n loading.$element().remove();\r\n loading = null\r\n};\r\nexports.show = function(options) {\r\n removeLoadPanel();\r\n loading = createLoadPanel(options);\r\n return loading.show()\r\n};\r\nexports.hide = function() {\r\n if (!loading) {\r\n return (new Deferred).resolve()\r\n }\r\n return loading.hide().done(removeLoadPanel).promise()\r\n};\r\n","/**\r\n * DevExtreme (ui/scheduler/shaders/ui.scheduler.current_time_shader.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _position = require(\"../../../core/utils/position\");\r\nvar _renderer = require(\"../../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\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 _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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 DATE_TIME_SHADER_CLASS = \"dx-scheduler-date-time-shader\";\r\nvar CurrentTimeShader = function() {\r\n function CurrentTimeShader(workSpace) {\r\n _classCallCheck(this, CurrentTimeShader);\r\n this._workSpace = workSpace;\r\n this._$container = this._workSpace._dateTableScrollable.$content()\r\n }\r\n _createClass(CurrentTimeShader, [{\r\n key: \"render\",\r\n value: function() {\r\n var _this = this;\r\n this.initShaderElements();\r\n this.renderShader();\r\n this.applyShaderMargin(this._$shader);\r\n this._shader.forEach(function(shader, index) {\r\n _this._$container.append(shader)\r\n })\r\n }\r\n }, {\r\n key: \"initShaderElements\",\r\n value: function() {\r\n this._$shader = this.createShader();\r\n this._shader = [];\r\n this._shader.push(this._$shader)\r\n }\r\n }, {\r\n key: \"renderShader\",\r\n value: function() {}\r\n }, {\r\n key: \"applyShaderMargin\",\r\n value: function($shader) {\r\n if ($shader && this._workSpace.option(\"crossScrollingEnabled\")) {\r\n $shader.css(\"marginTop\", -(0, _position.getBoundingRect)(this._$container.get(0)).height);\r\n $shader.css(\"height\", (0, _position.getBoundingRect)(this._$container.get(0)).height)\r\n }\r\n }\r\n }, {\r\n key: \"createShader\",\r\n value: function() {\r\n return (0, _renderer2.default)(\"
\").addClass(DATE_TIME_SHADER_CLASS)\r\n }\r\n }, {\r\n key: \"clean\",\r\n value: function() {\r\n this._$container && this._$container.find(\".\" + DATE_TIME_SHADER_CLASS).remove()\r\n }\r\n }]);\r\n return CurrentTimeShader\r\n}();\r\nmodule.exports = CurrentTimeShader;\r\n","/**\r\n * DevExtreme (ui/scheduler/tooltip_strategies/desktopTooltipStrategy.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nexports.DesktopTooltipStrategy = void 0;\r\nvar _tooltipStrategyBase = require(\"./tooltipStrategyBase\");\r\nvar _tooltip = require(\"../../tooltip\");\r\nvar _tooltip2 = _interopRequireDefault(_tooltip);\r\nvar _support = require(\"../../../core/utils/support\");\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar APPOINTMENT_TOOLTIP_WRAPPER_CLASS = \"dx-scheduler-appointment-tooltip-wrapper\";\r\nvar MAX_TOOLTIP_HEIGHT = 200;\r\nvar DesktopTooltipStrategy = exports.DesktopTooltipStrategy = function(_TooltipStrategyBase) {\r\n _inherits(DesktopTooltipStrategy, _TooltipStrategyBase);\r\n var _super = _createSuper(DesktopTooltipStrategy);\r\n\r\n function DesktopTooltipStrategy() {\r\n _classCallCheck(this, DesktopTooltipStrategy);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(DesktopTooltipStrategy, [{\r\n key: \"_prepareBeforeVisibleChanged\",\r\n value: function(dataList) {\r\n this._tooltip.option(\"position\", {\r\n my: \"bottom\",\r\n at: \"top\",\r\n boundary: this._getBoundary(dataList),\r\n offset: this._extraOptions.offset,\r\n collision: \"fit flipfit\"\r\n })\r\n }\r\n }, {\r\n key: \"_getBoundary\",\r\n value: function(dataList) {\r\n return this._options.isAppointmentInAllDayPanel(dataList[0].data) ? this._options.container : this._options.getScrollableContainer()\r\n }\r\n }, {\r\n key: \"_onShown\",\r\n value: function() {\r\n _get(_getPrototypeOf(DesktopTooltipStrategy.prototype), \"_onShown\", this).call(this);\r\n if (this._extraOptions.isButtonClick) {\r\n this._list.focus();\r\n this._list.option(\"focusedElement\", null)\r\n }\r\n }\r\n }, {\r\n key: \"_createListOption\",\r\n value: function(target, dataList) {\r\n var result = _get(_getPrototypeOf(DesktopTooltipStrategy.prototype), \"_createListOption\", this).call(this, target, dataList);\r\n result.showScrollbar = _support.touch ? \"always\" : \"onHover\";\r\n return result\r\n }\r\n }, {\r\n key: \"_createTooltip\",\r\n value: function(target, dataList) {\r\n var tooltip = this._createTooltipElement(APPOINTMENT_TOOLTIP_WRAPPER_CLASS);\r\n return this._options.createComponent(tooltip, _tooltip2.default, {\r\n target: target,\r\n maxHeight: MAX_TOOLTIP_HEIGHT,\r\n rtlEnabled: this._extraOptions.rtlEnabled,\r\n onShown: this._onShown.bind(this),\r\n contentTemplate: this._getContentTemplate(dataList)\r\n })\r\n }\r\n }, {\r\n key: \"_onListRender\",\r\n value: function(e) {\r\n return this._extraOptions.dragBehavior && this._extraOptions.dragBehavior(e)\r\n }\r\n }]);\r\n return DesktopTooltipStrategy\r\n}(_tooltipStrategyBase.TooltipStrategyBase);\r\n","/**\r\n * DevExtreme (ui/scheduler/ui.scheduler.subscribes.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _array2 = _interopRequireDefault(_array);\r\nvar _utils = require(\"./utils.recurrence\");\r\nvar _utils2 = _interopRequireDefault(_utils);\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _type2 = _interopRequireDefault(_type);\r\nvar _date = require(\"../../core/utils/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _ui = require(\"../widget/ui.errors\");\r\nvar _ui2 = _interopRequireDefault(_ui);\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _translator2 = _interopRequireDefault(_translator);\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiScheduler = require(\"./timezones/ui.scheduler.timezones\");\r\nvar _uiScheduler2 = _interopRequireDefault(_uiScheduler);\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _date3 = require(\"../../localization/date\");\r\nvar _date4 = _interopRequireDefault(_date3);\r\nvar _utils3 = require(\"./utils.timeZone\");\r\nvar _utils4 = _interopRequireDefault(_utils3);\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 MINUTES_IN_HOUR = 60;\r\nvar toMs = _date2.default.dateToMilliseconds;\r\nvar subscribes = {\r\n isCurrentViewAgenda: function() {\r\n return \"agenda\" === this.option(\"currentView\")\r\n },\r\n currentViewUpdated: function(currentView) {\r\n this.option(\"currentView\", currentView)\r\n },\r\n currentDateUpdated: function(date) {\r\n this.option(\"currentDate\", date)\r\n },\r\n setCellDataCacheAlias: function(appointment, geometry) {\r\n this._workSpace.setCellDataCacheAlias(appointment, geometry)\r\n },\r\n needCoordinates: function(options) {\r\n var _this = this;\r\n var appointmentData = options.appointmentData;\r\n var startDate = options.startDate;\r\n var endDate = this._getEndDate(appointmentData);\r\n var recurrenceRule = this.fire(\"getField\", \"recurrenceRule\", appointmentData);\r\n var recurrenceException = this._getRecurrenceException(appointmentData);\r\n var dateRange = this._workSpace.getDateRange();\r\n var allDay = this.appointmentTakesAllDay(appointmentData);\r\n var startViewDate = this.appointmentTakesAllDay(appointmentData) ? _date2.default.trimTime(new Date(dateRange[0])) : dateRange[0];\r\n var originalStartDate = options.originalStartDate || startDate;\r\n var renderingStrategy = this.getLayoutManager().getRenderingStrategyInstance();\r\n var firstDayOfWeek = this.getFirstDayOfWeek();\r\n var recurrenceOptions = {\r\n rule: recurrenceRule,\r\n exception: recurrenceException,\r\n start: originalStartDate,\r\n end: endDate,\r\n min: startViewDate,\r\n max: dateRange[1],\r\n firstDayOfWeek: firstDayOfWeek\r\n };\r\n var dates = _utils2.default.getDatesByRecurrence(recurrenceOptions);\r\n var initialDates;\r\n if (!dates.length) {\r\n dates.push(startDate);\r\n initialDates = dates\r\n } else {\r\n dates = this.getCorrectedDatesByDaylightOffsets(originalStartDate, dates, appointmentData);\r\n initialDates = dates;\r\n dates = dates.map(function(date) {\r\n return _date2.default.roundDateByStartDayHour(date, _this._getCurrentViewOption(\"startDayHour\"))\r\n })\r\n }\r\n if (renderingStrategy.needSeparateAppointment(allDay)) {\r\n var datesLength = dates.length;\r\n var longParts = [];\r\n var resultDates = [];\r\n var _loop = function(i) {\r\n var endDateOfPart = renderingStrategy.endDate(appointmentData, {\r\n startDate: dates[i]\r\n }, !!recurrenceRule);\r\n longParts = _date2.default.getDatesOfInterval(dates[i], endDateOfPart, {\r\n milliseconds: _this.getWorkSpace().getIntervalDuration(allDay)\r\n });\r\n var maxDate = new Date(dateRange[1]);\r\n resultDates = resultDates.concat(longParts.filter(function(el) {\r\n return new Date(el) < maxDate\r\n }))\r\n };\r\n for (var i = 0; i < datesLength; i++) {\r\n _loop(i)\r\n }\r\n dates = resultDates\r\n }\r\n var itemResources = this._resourcesManager.getResourcesFromItem(appointmentData);\r\n allDay = this.appointmentTakesAllDay(appointmentData) && this._workSpace.supportAllDayRow();\r\n return this._getCoordinates(initialDates, dates, itemResources, allDay)\r\n },\r\n isGroupedByDate: function() {\r\n return this.getWorkSpace().isGroupedByDate()\r\n },\r\n showAppointmentTooltip: function(options) {\r\n var appointmentData = options.data;\r\n var targetedData = this.fire(\"getTargetedAppointmentData\", appointmentData, (0, _renderer2.default)(options.target));\r\n this.showAppointmentTooltip(appointmentData, options.target, targetedData)\r\n },\r\n hideAppointmentTooltip: function() {\r\n this.hideAppointmentTooltip()\r\n },\r\n showAddAppointmentPopup: function(appointmentData) {\r\n var processedData = {};\r\n (0, _iterator.each)([\"startDate\", \"endDate\", \"allDay\"], function(_, field) {\r\n if (void 0 !== appointmentData[field]) {\r\n this.fire(\"setField\", field, processedData, appointmentData[field]);\r\n delete appointmentData[field]\r\n }\r\n }.bind(this));\r\n this.showAppointmentPopup((0, _extend.extend)(processedData, appointmentData), true)\r\n },\r\n showEditAppointmentPopup: function(options) {\r\n var appointmentData = options.data;\r\n options.$appointment = (0, _renderer2.default)(options.target);\r\n options.skipHoursProcessing = true;\r\n var targetedData = this._getAppointmentData(appointmentData, options);\r\n var startDate = this.fire(\"getField\", \"startDate\", targetedData);\r\n this.showAppointmentPopup(appointmentData, false, targetedData, startDate)\r\n },\r\n updateAppointmentAfterResize: function(options) {\r\n var targetAppointment = options.target;\r\n options.isAppointmentResized = true;\r\n var targetedData = this._getAppointmentData(targetAppointment, options);\r\n var startDate = this.fire(\"getField\", \"startDate\", targetedData);\r\n var updatedData = (0, _extend.extend)(true, {}, options.data);\r\n this._convertDatesByTimezoneBack(true, updatedData);\r\n this._checkRecurringAppointment(targetAppointment, targetedData, startDate, function() {\r\n this._updateAppointment(targetAppointment, updatedData, function() {\r\n this._appointments.moveAppointmentBack()\r\n })\r\n }.bind(this))\r\n },\r\n getUpdatedData: function(options) {\r\n return this._getUpdatedData({\r\n data: options.data\r\n })\r\n },\r\n updateAppointmentAfterDrag: function(options) {\r\n var target = options.data;\r\n var updatedData = this._getUpdatedData(options);\r\n var newCellIndex = this._workSpace.getDroppableCellIndex();\r\n var oldCellIndex = this._workSpace.getCellIndexByCoordinates(options.coordinates);\r\n var becomeAllDay = this.fire(\"getField\", \"allDay\", updatedData);\r\n var wasAllDay = this.fire(\"getField\", \"allDay\", target);\r\n var dragEvent = options.event;\r\n var appointment = (0, _extend.extend)({}, target, updatedData);\r\n var movedToAllDay = this._workSpace.supportAllDayRow() && becomeAllDay;\r\n var cellData = this._workSpace.getCellDataByCoordinates(options.coordinates, movedToAllDay);\r\n var movedBetweenAllDayAndSimple = this._workSpace.supportAllDayRow() && (wasAllDay && !becomeAllDay || !wasAllDay && becomeAllDay);\r\n if (newCellIndex !== oldCellIndex || movedBetweenAllDayAndSimple) {\r\n this._checkRecurringAppointment(target, appointment, cellData.startDate, function() {\r\n this._convertDatesByTimezoneBack(true, updatedData, appointment);\r\n this._updateAppointment(target, appointment, function() {\r\n this._appointments.moveAppointmentBack(dragEvent)\r\n }, dragEvent)\r\n }.bind(this), void 0, void 0, dragEvent)\r\n } else {\r\n this._appointments.moveAppointmentBack(dragEvent)\r\n }\r\n },\r\n deleteAppointment: function(options) {\r\n options.$appointment = (0, _renderer2.default)(options.target);\r\n var appointmentData = options.data;\r\n var targetedData = this._getAppointmentData(appointmentData, options);\r\n this.checkAndDeleteAppointment(appointmentData, targetedData)\r\n },\r\n getAppointmentColor: function(options) {\r\n var resourcesManager = this._resourcesManager;\r\n var resourceForPainting = resourcesManager.getResourceForPainting(this._getCurrentViewOption(\"groups\"));\r\n var response = (new _deferred.Deferred).resolve().promise();\r\n if (resourceForPainting) {\r\n var field = resourcesManager.getField(resourceForPainting);\r\n var groupIndex = options.groupIndex;\r\n var groups = this._workSpace._getCellGroups(groupIndex);\r\n var resourceValues = _array2.default.wrapToArray(resourcesManager.getDataAccessors(field, \"getter\")(options.itemData));\r\n var groupId = resourceValues.length ? resourceValues[0] : void 0;\r\n for (var i = 0; i < groups.length; i++) {\r\n if (groups[i].name === field) {\r\n groupId = groups[i].id;\r\n break\r\n }\r\n }\r\n response = resourcesManager.getResourceColor(field, groupId)\r\n }\r\n return response\r\n },\r\n getHeaderHeight: function() {\r\n return this._header._$element && parseInt(this._header._$element.outerHeight(), 10)\r\n },\r\n getResourcesFromItem: function(itemData) {\r\n return this._resourcesManager.getResourcesFromItem(itemData)\r\n },\r\n getBoundOffset: function() {\r\n return {\r\n top: -this.getWorkSpaceAllDayHeight()\r\n }\r\n },\r\n appointmentTakesSeveralDays: function(appointment) {\r\n return this._appointmentModel.appointmentTakesSeveralDays(appointment)\r\n },\r\n getTextAndFormatDate: function(data, currentData, format) {\r\n var fields = [\"startDate\", \"endDate\", \"startDateTimeZone\", \"endDateTimeZone\", \"allDay\", \"text\"];\r\n var appointmentFields = this.fire(\"_getAppointmentFields\", (0, _extend.extend)({}, data, currentData), fields);\r\n var startDate = appointmentFields.startDate;\r\n var endDate = appointmentFields.endDate;\r\n var formatType = format || this.fire(\"_getTypeFormat\", startDate, endDate, appointmentFields.allDay);\r\n return {\r\n text: this.fire(\"_createAppointmentTitle\", appointmentFields),\r\n formatDate: this.fire(\"_formatDates\", startDate, endDate, formatType)\r\n }\r\n },\r\n _getAppointmentFields: function(data, arrayOfFields) {\r\n var _this2 = this;\r\n return arrayOfFields.reduce(function(accumulator, field) {\r\n accumulator[field] = _this2.fire(\"getField\", field, data);\r\n return accumulator\r\n }, {})\r\n },\r\n _getTypeFormat: function(startDate, endDate, isAllDay) {\r\n if (isAllDay) {\r\n return \"DATE\"\r\n }\r\n if (\"month\" !== this.option(\"currentView\") && _date2.default.sameDate(startDate, endDate)) {\r\n return \"TIME\"\r\n }\r\n return \"DATETIME\"\r\n },\r\n _createAppointmentTitle: function(data) {\r\n if (_type2.default.isPlainObject(data)) {\r\n return data.text\r\n }\r\n return String(data)\r\n },\r\n _formatDates: function(startDate, endDate, formatType) {\r\n var dateFormat = \"monthandday\";\r\n var timeFormat = \"shorttime\";\r\n var isSameDate = startDate.getDate() === endDate.getDate();\r\n var isDurationLessThanDay = endDate.getTime() - startDate.getTime() <= toMs(\"day\");\r\n switch (formatType) {\r\n case \"DATETIME\":\r\n return [_date4.default.format(startDate, dateFormat), \" \", _date4.default.format(startDate, timeFormat), \" - \", isSameDate ? \"\" : _date4.default.format(endDate, dateFormat) + \" \", _date4.default.format(endDate, timeFormat)].join(\"\");\r\n case \"TIME\":\r\n return \"\".concat(_date4.default.format(startDate, timeFormat), \" - \").concat(_date4.default.format(endDate, timeFormat));\r\n case \"DATE\":\r\n return \"\".concat(_date4.default.format(startDate, dateFormat)).concat(isDurationLessThanDay || isSameDate ? \"\" : \" - \" + _date4.default.format(endDate, dateFormat))\r\n }\r\n },\r\n getResizableAppointmentArea: function(options) {\r\n var allDay = options.allDay;\r\n var groups = this._getCurrentViewOption(\"groups\");\r\n if (groups && groups.length) {\r\n if (allDay || this.getLayoutManager().getRenderingStrategyInstance()._needHorizontalGroupBounds()) {\r\n var horizontalGroupBounds = this._workSpace.getGroupBounds(options.coordinates);\r\n return {\r\n left: horizontalGroupBounds.left,\r\n right: horizontalGroupBounds.right,\r\n top: 0,\r\n bottom: 0\r\n }\r\n }\r\n if (this.getLayoutManager().getRenderingStrategyInstance()._needVerticalGroupBounds(allDay) && this._workSpace._isVerticalGroupedWorkSpace()) {\r\n var verticalGroupBounds = this._workSpace.getGroupBounds(options.coordinates);\r\n return {\r\n left: 0,\r\n right: 0,\r\n top: verticalGroupBounds.top,\r\n bottom: verticalGroupBounds.bottom\r\n }\r\n }\r\n }\r\n },\r\n needRecalculateResizableArea: function() {\r\n return this.getWorkSpace().needRecalculateResizableArea()\r\n },\r\n getAppointmentGeometry: function(settings) {\r\n return this.getLayoutManager().getRenderingStrategyInstance().getAppointmentGeometry(settings)\r\n },\r\n isAllDay: function(appointmentData) {\r\n return this.getLayoutManager().getRenderingStrategyInstance().isAllDay(appointmentData)\r\n },\r\n getDeltaTime: function(e, initialSize, itemData) {\r\n return this.getLayoutManager().getRenderingStrategyInstance().getDeltaTime(e, initialSize, itemData)\r\n },\r\n getDropDownAppointmentWidth: function(isAllDay) {\r\n return this.getLayoutManager().getRenderingStrategyInstance().getDropDownAppointmentWidth(this._getViewCountConfig().intervalCount, isAllDay)\r\n },\r\n getDropDownAppointmentHeight: function() {\r\n return this.getLayoutManager().getRenderingStrategyInstance().getDropDownAppointmentHeight()\r\n },\r\n getStartDate: function(appointmentData, skipNormalize) {\r\n return this._getStartDate(appointmentData, skipNormalize)\r\n },\r\n getCellWidth: function() {\r\n return this._cellWidth\r\n },\r\n getCellHeight: function() {\r\n return this._cellHeight\r\n },\r\n getResizableStep: function() {\r\n var cellWidth = this._cellWidth;\r\n var workSpace = this.getWorkSpace();\r\n if (workSpace.isGroupedByDate()) {\r\n return workSpace._getGroupCount() * cellWidth\r\n }\r\n return cellWidth\r\n },\r\n getEndDate: function(appointmentData, skipNormalize) {\r\n return this._getEndDate(appointmentData, skipNormalize)\r\n },\r\n getRenderingStrategy: function() {\r\n return this._getAppointmentsRenderingStrategy()\r\n },\r\n getMaxAppointmentCountPerCellByType: function(isAllDay) {\r\n return this.getRenderingStrategyInstance()._getMaxAppointmentCountPerCellByType(isAllDay)\r\n },\r\n needCorrectAppointmentDates: function() {\r\n return this.getRenderingStrategyInstance().needCorrectAppointmentDates()\r\n },\r\n getRenderingStrategyDirection: function() {\r\n return this.getRenderingStrategyInstance().getDirection()\r\n },\r\n getWorkSpaceDateTableOffset: function() {\r\n return this.getWorkSpaceDateTableOffset()\r\n },\r\n getFullWeekAppointmentWidth: function(options) {\r\n var groupIndex = options.groupIndex;\r\n return this._workSpace.getGroupWidth(groupIndex)\r\n },\r\n getMaxAppointmentWidth: function(options) {\r\n var workSpace = this._workSpace;\r\n return workSpace.getCellCountToLastViewDate(options.date) * workSpace.getCellWidth()\r\n },\r\n updateAppointmentStartDate: function(options) {\r\n var appointment = options.appointment;\r\n var firstViewDate = this._workSpace.getStartViewDate();\r\n var startDate = new Date(options.startDate);\r\n var startDayHour = this._getCurrentViewOption(\"startDayHour\");\r\n var updatedStartDate;\r\n if (this.appointmentTakesAllDay(appointment)) {\r\n updatedStartDate = _date2.default.normalizeDate(startDate, firstViewDate)\r\n } else {\r\n if (startDate < firstViewDate) {\r\n startDate = firstViewDate\r\n }\r\n updatedStartDate = _date2.default.normalizeDate(options.startDate, new Date(startDate))\r\n }\r\n return _date2.default.roundDateByStartDayHour(updatedStartDate, startDayHour)\r\n },\r\n updateAppointmentEndDate: function(options) {\r\n var endDate = options.endDate;\r\n var endDayHour = this._getCurrentViewOption(\"endDayHour\");\r\n var startDayHour = this._getCurrentViewOption(\"startDayHour\");\r\n var updatedEndDate = endDate;\r\n if (endDate.getHours() >= endDayHour) {\r\n updatedEndDate.setHours(endDayHour, 0, 0, 0)\r\n } else {\r\n if (!options.isSameDate && startDayHour > 0 && 60 * endDate.getHours() + endDate.getMinutes() < 60 * startDayHour) {\r\n updatedEndDate = new Date(updatedEndDate.getTime() - toMs(\"day\"));\r\n updatedEndDate.setHours(endDayHour, 0, 0, 0)\r\n }\r\n }\r\n return updatedEndDate\r\n },\r\n renderCompactAppointments: function(options) {\r\n this._compactAppointmentsHelper.render(options)\r\n },\r\n clearCompactAppointments: function() {\r\n this._compactAppointmentsHelper.clear()\r\n },\r\n supportCompactDropDownAppointments: function() {\r\n return this._workSpace._supportCompactDropDownAppointments()\r\n },\r\n isApplyCompactAppointmentOffset: function() {\r\n return this._workSpace._isApplyCompactAppointmentOffset()\r\n },\r\n getGroupCount: function() {\r\n return this._workSpace._getGroupCount()\r\n },\r\n mapAppointmentFields: function(config) {\r\n var targetedData = this.fire(\"getTargetedAppointmentData\", config.itemData, config.itemElement, true);\r\n return {\r\n appointmentData: config.itemData,\r\n appointmentElement: config.itemElement,\r\n targetedAppointmentData: targetedData\r\n }\r\n },\r\n getOffsetByAllDayPanel: function(groupIndex) {\r\n return this._workSpace._getOffsetByAllDayPanel(groupIndex)\r\n },\r\n getGroupTop: function(groupIndex) {\r\n return this._workSpace._getGroupTop(groupIndex)\r\n },\r\n updateResizableArea: function() {\r\n var $allResizableElements = this.$element().find(\".dx-scheduler-appointment.dx-resizable\");\r\n var horizontalResizables = (0, _common.grep)($allResizableElements, function(el) {\r\n var $el = (0, _renderer2.default)(el);\r\n var resizableInst = $el.dxResizable(\"instance\");\r\n var area = resizableInst.option(\"area\");\r\n return (0, _array.inArray)(resizableInst.option(\"handles\"), [\"right left\", \"left right\"]) > -1 && _type2.default.isPlainObject(area)\r\n });\r\n (0, _iterator.each)(horizontalResizables, function(_, el) {\r\n var $el = (0, _renderer2.default)(el);\r\n var position = _translator2.default.locate($el);\r\n var appointmentData = this._appointments._getItemData($el);\r\n var area = this._appointments._calculateResizableArea({\r\n left: position.left\r\n }, appointmentData);\r\n $el.dxResizable(\"instance\").option(\"area\", area)\r\n }.bind(this))\r\n },\r\n getField: function(field, obj) {\r\n if (!_type2.default.isDefined(this._dataAccessors.getter[field])) {\r\n return\r\n }\r\n return this._dataAccessors.getter[field](obj)\r\n },\r\n setField: function(field, obj, value) {\r\n if (!_type2.default.isDefined(this._dataAccessors.setter[field])) {\r\n return\r\n }\r\n var splitExprStr = this.option(field + \"Expr\").split(\".\");\r\n var rootField = splitExprStr[0];\r\n if (void 0 === obj[rootField] && splitExprStr.length > 1) {\r\n var emptyChain = function(arr) {\r\n var result = {};\r\n var tmp = result;\r\n var arrLength = arr.length - 1;\r\n for (var i = 1; i < arrLength; i++) {\r\n tmp = tmp[arr[i]] = {}\r\n }\r\n return result\r\n }(splitExprStr);\r\n obj[rootField] = emptyChain\r\n }\r\n this._dataAccessors.setter[field](obj, value);\r\n return obj\r\n },\r\n prerenderFilter: function() {\r\n var dateRange = this.getWorkSpace().getDateRange();\r\n var resources = this._resourcesManager.getResourcesData();\r\n var allDay;\r\n if (!this.option(\"showAllDayPanel\") && this._workSpace.supportAllDayRow()) {\r\n allDay = false\r\n }\r\n return this._appointmentModel.filterLoadedAppointments({\r\n startDayHour: this._getCurrentViewOption(\"startDayHour\"),\r\n endDayHour: this._getCurrentViewOption(\"endDayHour\"),\r\n min: dateRange[0],\r\n max: dateRange[1],\r\n resources: resources,\r\n allDay: allDay,\r\n firstDayOfWeek: this.getFirstDayOfWeek(),\r\n recurrenceException: this._getRecurrenceException.bind(this)\r\n }, this._subscribes.convertDateByTimezone.bind(this))\r\n },\r\n dayHasAppointment: function(day, appointment, trimTime) {\r\n return this.dayHasAppointment(day, appointment, trimTime)\r\n },\r\n createResourcesTree: function() {\r\n return this._resourcesManager.createResourcesTree(this._loadedResources)\r\n },\r\n getResourceTreeLeaves: function(tree, appointmentResources) {\r\n return this._resourcesManager.getResourceTreeLeaves(tree, appointmentResources)\r\n },\r\n createReducedResourcesTree: function() {\r\n var tree = this._resourcesManager.createResourcesTree(this._loadedResources);\r\n return this._resourcesManager.reduceResourcesTree(tree, this.getFilteredItems())\r\n },\r\n groupAppointmentsByResources: function(appointments) {\r\n var result = {\r\n 0: appointments\r\n };\r\n var groups = this._getCurrentViewOption(\"groups\");\r\n if (groups && groups.length && this._resourcesManager.getResourcesData().length) {\r\n result = this._resourcesManager.groupAppointmentsByResources(appointments, this._loadedResources)\r\n }\r\n var totalResourceCount = 0;\r\n (0, _iterator.each)(this._loadedResources, function(i, resource) {\r\n if (!i) {\r\n totalResourceCount = resource.items.length\r\n } else {\r\n totalResourceCount *= resource.items.length\r\n }\r\n });\r\n for (var j = 0; j < totalResourceCount; j++) {\r\n var index = j.toString();\r\n if (result[index]) {\r\n continue\r\n }\r\n result[index] = []\r\n }\r\n return result\r\n },\r\n getAgendaRows: function(options) {\r\n var renderingStrategy = this._layoutManager.getRenderingStrategyInstance();\r\n var calculateRows = renderingStrategy.calculateRows.bind(renderingStrategy);\r\n var d = new _deferred.Deferred;\r\n\r\n function rowsCalculated(appointments) {\r\n var result = calculateRows(appointments, options.agendaDuration, options.currentDate);\r\n this._dataSourceLoadedCallback.remove(rowsCalculated);\r\n d.resolve(result)\r\n }\r\n this._dataSourceLoadedCallback.add(rowsCalculated);\r\n return d.promise()\r\n },\r\n getAgendaVerticalStepHeight: function() {\r\n return this.getWorkSpace().getAgendaVerticalStepHeight()\r\n },\r\n getAgendaDuration: function() {\r\n return this._getCurrentViewOption(\"agendaDuration\")\r\n },\r\n getStartViewDate: function() {\r\n return this.getStartViewDate()\r\n },\r\n getEndViewDate: function() {\r\n return this.getEndViewDate()\r\n },\r\n getMaxAppointmentsPerCell: function() {\r\n return this.getMaxAppointmentsPerCell()\r\n },\r\n forceMaxAppointmentPerCell: function() {\r\n return this.forceMaxAppointmentPerCell()\r\n },\r\n onAgendaReady: function(rows) {\r\n var $appts = this.getAppointmentsInstance()._itemElements();\r\n var total = 0;\r\n var applyClass = function(_, count) {\r\n var index = count + total - 1;\r\n $appts.eq(index).addClass(_constants.AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS);\r\n total += count\r\n };\r\n for (var i = 0; i < rows.length; i++) {\r\n (0, _iterator.each)(rows[i], applyClass)\r\n }\r\n },\r\n getTimezone: function() {\r\n return this._getTimezoneOffsetByOption()\r\n },\r\n getClientTimezoneOffset: function(date) {\r\n date = date || new Date;\r\n return _uiScheduler2.default.getClientTimezoneOffset(date)\r\n },\r\n convertDateByTimezone: function(date, appointmentTimezone) {\r\n date = new Date(date);\r\n var tzOffsets = this._subscribes.getComplexOffsets(this, date, appointmentTimezone);\r\n date = this._subscribes.translateDateToAppointmentTimeZone(date, tzOffsets);\r\n date = this._subscribes.translateDateToCommonTimeZone(date, tzOffsets);\r\n return date\r\n },\r\n convertDateByTimezoneBack: function(date, appointmentTimezone) {\r\n date = new Date(date);\r\n var tzOffsets = this._subscribes.getComplexOffsets(this, date, appointmentTimezone);\r\n date = this._subscribes.translateDateToAppointmentTimeZone(date, tzOffsets, true);\r\n date = this._subscribes.translateDateToCommonTimeZone(date, tzOffsets, true);\r\n return date\r\n },\r\n translateDateToAppointmentTimeZone: function(date, offsets, back) {\r\n var operation = back ? -1 : 1;\r\n var dateInUTC = date.getTime() - operation * offsets.client * toMs(\"hour\");\r\n return new Date(dateInUTC + operation * offsets.appointment * toMs(\"hour\"))\r\n },\r\n translateDateToCommonTimeZone: function(date, offsets, back) {\r\n var operation = back ? -1 : 1;\r\n if (\"number\" === typeof offsets.common) {\r\n var offset = offsets.common - offsets.appointment;\r\n var hoursOffset = (offset < 0 ? -1 : 1) * Math.floor(Math.abs(offset));\r\n var minutesOffset = offset % 1;\r\n date.setHours(date.getHours() + operation * hoursOffset);\r\n date.setMinutes(date.getMinutes() + operation * minutesOffset * MINUTES_IN_HOUR)\r\n }\r\n return date\r\n },\r\n getComplexOffsets: function(scheduler, date, appointmentTimezone) {\r\n var clientTimezoneOffset = -this.getClientTimezoneOffset(date) / toMs(\"hour\");\r\n var commonTimezoneOffset = scheduler._getTimezoneOffsetByOption(date);\r\n var appointmentTimezoneOffset = _utils4.default.calculateTimezoneByValue(appointmentTimezone, date);\r\n if (\"number\" !== typeof appointmentTimezoneOffset) {\r\n appointmentTimezoneOffset = clientTimezoneOffset\r\n }\r\n return {\r\n client: clientTimezoneOffset,\r\n common: commonTimezoneOffset,\r\n appointment: appointmentTimezoneOffset\r\n }\r\n },\r\n getTimezonesDisplayName: function() {\r\n return _uiScheduler2.default.getTimezonesDisplayName()\r\n },\r\n getTimezoneDisplayNameById: function(id) {\r\n return _uiScheduler2.default.getTimezoneDisplayNameById(id)\r\n },\r\n getSimilarTimezones: function(id) {\r\n return _uiScheduler2.default.getSimilarTimezones(id)\r\n },\r\n getTimezonesIdsByDisplayName: function(displayName) {\r\n return _uiScheduler2.default.getTimezonesIdsByDisplayName(displayName)\r\n },\r\n getTargetedAppointmentData: function(appointmentData, appointmentElement, needConvertByTimezones) {\r\n var $appointmentElement = (0, _renderer2.default)(appointmentElement);\r\n var appointmentIndex = $appointmentElement.data(this._appointments._itemIndexKey());\r\n var targetedData = this._getAppointmentData(appointmentData, {\r\n skipDateCalculation: true,\r\n $appointment: $appointmentElement,\r\n skipHoursProcessing: needConvertByTimezones ? false : true\r\n });\r\n var result = {};\r\n (0, _extend.extend)(true, result, appointmentData, targetedData);\r\n appointmentElement && this.setTargetedAppointmentResources(result, appointmentElement, appointmentIndex);\r\n return result\r\n },\r\n getAppointmentDurationInMs: function(options) {\r\n var startDate = options.startDate;\r\n var endDate = options.endDate;\r\n var allDay = options.allDay;\r\n var appointmentDuration = endDate.getTime() - startDate.getTime();\r\n var dayDuration = toMs(\"day\");\r\n var visibleDayDuration = this._workSpace.getVisibleDayDuration();\r\n var result = 0;\r\n if (allDay) {\r\n var ceilQuantityOfDays = Math.ceil(appointmentDuration / dayDuration);\r\n result = ceilQuantityOfDays * visibleDayDuration\r\n } else {\r\n var isDifferentDates = !_utils4.default.isSameAppointmentDates(startDate, endDate);\r\n var floorQuantityOfDays = Math.floor(appointmentDuration / dayDuration);\r\n var tailDuration;\r\n if (isDifferentDates) {\r\n var startDateEndHour = new Date(new Date(startDate).setHours(this.option(\"endDayHour\"), 0, 0));\r\n var hiddenDayDuration = dayDuration - visibleDayDuration - (startDate.getTime() > startDateEndHour.getTime() ? startDate.getTime() - startDateEndHour.getTime() : 0);\r\n tailDuration = appointmentDuration - (floorQuantityOfDays ? floorQuantityOfDays * dayDuration : hiddenDayDuration);\r\n var startDayTime = this.option(\"startDayHour\") * toMs(\"hour\");\r\n var endPartDuration = endDate - _date2.default.trimTime(endDate);\r\n if (endPartDuration < startDayTime) {\r\n if (floorQuantityOfDays) {\r\n tailDuration -= hiddenDayDuration\r\n }\r\n tailDuration += startDayTime - endPartDuration\r\n }\r\n } else {\r\n tailDuration = appointmentDuration % dayDuration\r\n }\r\n if (tailDuration > visibleDayDuration) {\r\n tailDuration = visibleDayDuration\r\n }\r\n result = floorQuantityOfDays * visibleDayDuration + tailDuration || toMs(\"minute\")\r\n }\r\n return result\r\n },\r\n fixWrongEndDate: function(appointment, startDate, endDate) {\r\n return this._appointmentModel.fixWrongEndDate(appointment, startDate, endDate)\r\n },\r\n calculateAppointmentEndDate: function(isAllDay, startDate) {\r\n return this._appointmentModel._calculateAppointmentEndDate(isAllDay, startDate)\r\n },\r\n getEndDayHour: function() {\r\n return this._workSpace.option(\"endDayHour\") || this.option(\"endDayHour\")\r\n },\r\n getStartDayHour: function() {\r\n return this._workSpace.option(\"startDayHour\") || this.option(\"startDayHour\")\r\n },\r\n isAdaptive: function() {\r\n return this.option(\"adaptivityEnabled\")\r\n },\r\n moveBack: function() {\r\n var dragBehavior = this.getWorkSpace().dragBehavior;\r\n dragBehavior && dragBehavior.moveBack()\r\n },\r\n validateDayHours: function() {\r\n var endDayHour = this._getCurrentViewOption(\"endDayHour\");\r\n var startDayHour = this._getCurrentViewOption(\"startDayHour\");\r\n if (startDayHour >= endDayHour) {\r\n throw _ui2.default.Error(\"E1058\")\r\n }\r\n },\r\n removeDroppableCellClass: function() {\r\n this._workSpace.removeDroppableCellClass()\r\n }\r\n};\r\nmodule.exports = subscribes;\r\n","/**\r\n * DevExtreme (ui/scheduler/ui.scheduler.appointment_form.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _form = require(\"../form\");\r\nvar _form2 = _interopRequireDefault(_form);\r\nvar _date_serialization = require(\"../../core/utils/date_serialization\");\r\nvar _date_serialization2 = _interopRequireDefault(_date_serialization);\r\nvar _message = require(\"../../localization/message\");\r\nvar _message2 = _interopRequireDefault(_message);\r\nvar _devices = require(\"../../core/devices\");\r\nvar _devices2 = _interopRequireDefault(_devices);\r\nrequire(\"./ui.scheduler.recurrence_editor\");\r\nrequire(\"./timezones/ui.scheduler.timezone_editor\");\r\nrequire(\"../text_area\");\r\nrequire(\"../tag_box\");\r\nrequire(\"../switch\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SCREEN_SIZE_OF_SINGLE_COLUMN = 600;\r\nvar APPOINTMENT_FORM_GROUP_NAMES = {\r\n Main: \"mainGroup\",\r\n Recurrence: \"recurrenceGroup\"\r\n};\r\nvar SchedulerAppointmentForm = {\r\n _appointmentForm: {},\r\n _lockDateShiftFlag: false,\r\n _validateAppointmentFormDate: function(editor, value, previousValue) {\r\n var isCurrentDateCorrect = null === value || !!value;\r\n var isPreviousDateCorrect = null === previousValue || !!previousValue;\r\n if (!isCurrentDateCorrect && isPreviousDateCorrect) {\r\n editor.option(\"value\", previousValue)\r\n }\r\n },\r\n _getAllDayStartDate: function(startDate) {\r\n return new Date(new Date(startDate).setHours(0, 0, 0, 0))\r\n },\r\n _getAllDayEndDate: function(startDate) {\r\n return new Date(new Date(startDate).setDate(startDate.getDate() + 1))\r\n },\r\n _getStartDateWithStartHour: function(startDate, startDayHour) {\r\n return new Date(new Date(startDate).setHours(startDayHour))\r\n },\r\n create: function(componentCreator, $container, isReadOnly, formData) {\r\n this._appointmentForm = componentCreator($container, _form2.default, {\r\n items: this._editors,\r\n readOnly: isReadOnly,\r\n showValidationSummary: true,\r\n scrollingEnabled: true,\r\n colCount: \"auto\",\r\n colCountByScreen: {\r\n lg: 2,\r\n xs: 1\r\n },\r\n formData: formData,\r\n showColonAfterLabel: false,\r\n labelLocation: \"top\",\r\n screenByWidth: function(width) {\r\n return width < SCREEN_SIZE_OF_SINGLE_COLUMN || \"desktop\" !== _devices2.default.current().deviceType ? \"xs\" : \"lg\"\r\n }\r\n });\r\n return this._appointmentForm\r\n },\r\n _dateBoxValueChanged: function(args, dateExpr, isNeedCorrect) {\r\n this._validateAppointmentFormDate(args.component, args.value, args.previousValue);\r\n var value = _date_serialization2.default.deserializeDate(args.value);\r\n var previousValue = _date_serialization2.default.deserializeDate(args.previousValue);\r\n var dateEditor = this._appointmentForm.getEditor(dateExpr);\r\n var dateValue = _date_serialization2.default.deserializeDate(dateEditor.option(\"value\"));\r\n if (!this._appointmentForm._lockDateShiftFlag && dateValue && value && isNeedCorrect(dateValue, value)) {\r\n var duration = previousValue ? dateValue.getTime() - previousValue.getTime() : 0;\r\n dateEditor.option(\"value\", new Date(value.getTime() + duration))\r\n }\r\n },\r\n _getTimezoneEditor: function(timeZoneExpr, secondTimeZoneExpr, visibleIndex, colSpan, schedulerInst, isMainTimeZone) {\r\n var _this = this;\r\n var isShow = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : false;\r\n return {\r\n dataField: timeZoneExpr,\r\n editorType: \"dxSchedulerTimezoneEditor\",\r\n visibleIndex: visibleIndex,\r\n colSpan: colSpan,\r\n label: {\r\n text: \" \"\r\n },\r\n editorOptions: {\r\n observer: schedulerInst,\r\n onValueChanged: function(args) {\r\n var form = _this._appointmentForm;\r\n var secondTimezoneEditor = form.getEditor(secondTimeZoneExpr);\r\n if (isMainTimeZone) {\r\n secondTimezoneEditor.option(\"value\", args.value)\r\n }\r\n }\r\n },\r\n visible: isShow\r\n }\r\n },\r\n _getDateBoxEditor: function(dataExpr, colSpan, firstDayOfWeek, label, callback) {\r\n return {\r\n dataField: dataExpr,\r\n editorType: \"dxDateBox\",\r\n colSpan: colSpan,\r\n label: {\r\n text: _message2.default.format(label)\r\n },\r\n validationRules: [{\r\n type: \"required\"\r\n }],\r\n editorOptions: {\r\n width: \"100%\",\r\n calendarOptions: {\r\n firstDayOfWeek: firstDayOfWeek\r\n },\r\n onValueChanged: callback\r\n }\r\n }\r\n },\r\n _getDateBoxItems: function(dataExprs, schedulerInst, allowTimeZoneEditing) {\r\n var _this2 = this;\r\n var colSpan = allowTimeZoneEditing ? 2 : 1;\r\n var firstDayOfWeek = schedulerInst.option(\"firstDayOfWeek\");\r\n return [this._getDateBoxEditor(dataExprs.startDateExpr, colSpan, firstDayOfWeek, \"dxScheduler-editorLabelStartDate\", function(args) {\r\n _this2._dateBoxValueChanged(args, dataExprs.endDateExpr, function(endValue, startValue) {\r\n return endValue < startValue\r\n })\r\n }), this._getTimezoneEditor(dataExprs.startDateTimeZoneExpr, dataExprs.endDateTimeZoneExpr, 1, colSpan, schedulerInst, true, allowTimeZoneEditing), this._getDateBoxEditor(dataExprs.endDateExpr, colSpan, firstDayOfWeek, \"dxScheduler-editorLabelEndDate\", function(args) {\r\n _this2._dateBoxValueChanged(args, dataExprs.startDateExpr, function(startValue, endValue) {\r\n return endValue < startValue\r\n })\r\n }), this._getTimezoneEditor(dataExprs.endDateTimeZoneExpr, dataExprs.startDateTimeZoneExpr, 3, colSpan, schedulerInst, false, allowTimeZoneEditing)]\r\n },\r\n _getMainItems: function(dataExprs, schedulerInst, triggerResize, changeSize, allowTimeZoneEditing) {\r\n var _this3 = this;\r\n return [{\r\n dataField: dataExprs.textExpr,\r\n editorType: \"dxTextBox\",\r\n colSpan: 2,\r\n label: {\r\n text: _message2.default.format(\"dxScheduler-editorLabelTitle\")\r\n }\r\n }, {\r\n itemType: \"group\",\r\n colSpan: 2,\r\n colCountByScreen: {\r\n lg: 2,\r\n xs: 1\r\n },\r\n items: this._getDateBoxItems(dataExprs, schedulerInst, allowTimeZoneEditing)\r\n }, {\r\n itemType: \"group\",\r\n colCountByScreen: {\r\n lg: 3,\r\n xs: 3\r\n },\r\n colSpan: 2,\r\n items: [{\r\n dataField: dataExprs.allDayExpr,\r\n cssClass: \"dx-appointment-form-switch\",\r\n editorType: \"dxSwitch\",\r\n label: {\r\n text: _message2.default.format(\"dxScheduler-allDay\"),\r\n location: \"right\"\r\n },\r\n editorOptions: {\r\n onValueChanged: function(args) {\r\n var value = args.value;\r\n var startDateEditor = _this3._appointmentForm.getEditor(dataExprs.startDateExpr);\r\n var endDateEditor = _this3._appointmentForm.getEditor(dataExprs.endDateExpr);\r\n var startDate = _date_serialization2.default.deserializeDate(startDateEditor.option(\"value\"));\r\n if (!_this3._appointmentForm._lockDateShiftFlag && startDate) {\r\n if (value) {\r\n var allDayStartDate = _this3._getAllDayStartDate(startDate);\r\n startDateEditor.option(\"value\", allDayStartDate);\r\n endDateEditor.option(\"value\", _this3._getAllDayEndDate(allDayStartDate))\r\n } else {\r\n var startDateWithStartHour = _this3._getStartDateWithStartHour(startDate, schedulerInst.option(\"startDayHour\"));\r\n var endDate = schedulerInst._workSpace.calculateEndDate(startDateWithStartHour);\r\n startDateEditor.option(\"value\", startDateWithStartHour);\r\n endDateEditor.option(\"value\", endDate)\r\n }\r\n }\r\n startDateEditor.option(\"type\", value ? \"date\" : \"datetime\");\r\n endDateEditor.option(\"type\", value ? \"date\" : \"datetime\")\r\n }\r\n }\r\n }, {\r\n editorType: \"dxSwitch\",\r\n dataField: \"repeat\",\r\n cssClass: \"dx-appointment-form-switch\",\r\n name: \"visibilityChanged\",\r\n label: {\r\n text: _message2.default.format(\"dxScheduler-editorLabelRecurrence\"),\r\n location: \"right\"\r\n },\r\n editorOptions: {\r\n onValueChanged: function(args) {\r\n var form = _this3._appointmentForm;\r\n var colSpan = args.value ? 1 : 2;\r\n form.itemOption(APPOINTMENT_FORM_GROUP_NAMES.Main, \"colSpan\", colSpan);\r\n form.itemOption(APPOINTMENT_FORM_GROUP_NAMES.Recurrence, \"colSpan\", colSpan);\r\n _this3._updateRecurrenceItemVisibility(dataExprs.recurrenceRuleExpr, args.value, form);\r\n changeSize(args.value);\r\n triggerResize()\r\n }\r\n }\r\n }]\r\n }, {\r\n itemType: \"empty\",\r\n colSpan: 2\r\n }, {\r\n dataField: dataExprs.descriptionExpr,\r\n editorType: \"dxTextArea\",\r\n colSpan: 2,\r\n label: {\r\n text: _message2.default.format(\"dxScheduler-editorLabelDescription\")\r\n }\r\n }, {\r\n itemType: \"empty\",\r\n colSpan: 2\r\n }]\r\n },\r\n _updateRecurrenceItemVisibility: function(recurrenceRuleExpr, value, form) {\r\n var _form$getEditor;\r\n form.itemOption(APPOINTMENT_FORM_GROUP_NAMES.Recurrence, \"visible\", value);\r\n !value && form.updateData(recurrenceRuleExpr, \"\");\r\n null === (_form$getEditor = form.getEditor(recurrenceRuleExpr)) || void 0 === _form$getEditor ? void 0 : _form$getEditor.changeValueByVisibility(value)\r\n },\r\n prepareAppointmentFormEditors: function(dataExprs, schedulerInst, triggerResize, changeSize, appointmentData, allowTimeZoneEditing, readOnly) {\r\n var recurrenceEditorVisibility = !!this.getRecurrenceRule(appointmentData, dataExprs);\r\n changeSize(recurrenceEditorVisibility);\r\n this._editors = [{\r\n itemType: \"group\",\r\n name: APPOINTMENT_FORM_GROUP_NAMES.Main,\r\n colCountByScreen: {\r\n lg: 2,\r\n xs: 1\r\n },\r\n colSpan: recurrenceEditorVisibility ? 1 : 2,\r\n items: this._getMainItems(dataExprs, schedulerInst, triggerResize, changeSize, allowTimeZoneEditing)\r\n }, {\r\n itemType: \"group\",\r\n name: APPOINTMENT_FORM_GROUP_NAMES.Recurrence,\r\n visible: recurrenceEditorVisibility,\r\n colSpan: recurrenceEditorVisibility ? 1 : 2,\r\n items: this._createRecurrenceEditor(dataExprs, schedulerInst, recurrenceEditorVisibility, readOnly)\r\n }];\r\n return this._editors\r\n },\r\n _createRecurrenceEditor: function(dataExprs, schedulerInst, recurrenceEditorVisibility, readOnly) {\r\n return [{\r\n dataField: dataExprs.recurrenceRuleExpr,\r\n editorType: \"dxRecurrenceEditor\",\r\n editorOptions: {\r\n readOnly: readOnly,\r\n firstDayOfWeek: schedulerInst.option(\"firstDayOfWeek\")\r\n },\r\n label: {\r\n text: \" \",\r\n visible: false\r\n }\r\n }]\r\n },\r\n getRecurrenceRule: function(data, dataExprs) {\r\n return data[dataExprs.recurrenceRuleExpr]\r\n },\r\n concatResources: function(resources) {\r\n this._editors[0].items = this._editors[0].items.concat(resources)\r\n },\r\n setEditorsType: function(form, startDateExpr, endDateExpr, allDay) {\r\n var startDateItemPath = \"\".concat(APPOINTMENT_FORM_GROUP_NAMES.Main, \".\").concat(startDateExpr);\r\n var endDateItemPath = \"\".concat(APPOINTMENT_FORM_GROUP_NAMES.Recurrence, \".\").concat(endDateExpr);\r\n var startDateFormItem = form.itemOption(startDateItemPath);\r\n var endDateFormItem = form.itemOption(endDateItemPath);\r\n if (startDateFormItem && endDateFormItem) {\r\n var startDateEditorOptions = startDateFormItem.editorOptions;\r\n var endDateEditorOptions = endDateFormItem.editorOptions;\r\n startDateEditorOptions.type = endDateEditorOptions.type = allDay ? \"date\" : \"datetime\";\r\n form.itemOption(startDateItemPath, \"editorOptions\", startDateEditorOptions);\r\n form.itemOption(endDateItemPath, \"editorOptions\", endDateEditorOptions)\r\n }\r\n },\r\n updateFormData: function(appointmentForm, formData) {\r\n appointmentForm._lockDateShiftFlag = true;\r\n appointmentForm.option(\"formData\", formData);\r\n appointmentForm._lockDateShiftFlag = false\r\n }\r\n};\r\nmodule.exports = {\r\n AppointmentForm: SchedulerAppointmentForm,\r\n APPOINTMENT_FORM_GROUP_NAMES: APPOINTMENT_FORM_GROUP_NAMES\r\n};\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('meta',{attrs:{\"name\":\"viewport\",\"content\":\"width=device-width,initial-scale=1,user-scalable=no\"}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!!_vm.menu.nm_menu_titulo),expression:\"!!menu.nm_menu_titulo\"}],staticClass:\"row items-center margin1\"},[_c('div',{staticClass:\"text-h6 text-bold\"},[_vm._v(\"\\n \"+_vm._s(_vm.menu.nm_menu_titulo)+\"\\n \")]),_c('q-space'),_c('q-expansion-item',{attrs:{\"expand-separator\":\"\",\"dense\":\"\",\"icon\":\"legend_toggle\",\"label\":\"Legendas\"}},[_c('q-card',{staticStyle:{\"background-color\":\"#F2F2F2\"}},[_c('q-card-section',[_c('div',{staticClass:\"margin1 legenda\",staticStyle:{\"background-color\":\"blue\"}},[_c('div',{staticClass:\"text-bold\",staticStyle:{\"margin-left\":\"28px\"}},[_vm._v(\"\\n \"+_vm._s(\"Agendado\")+\"\\n \")])]),_c('div',{staticClass:\"margin1 legenda\",staticStyle:{\"background-color\":\"orange\"}},[_c('div',{staticClass:\"text-bold\",staticStyle:{\"margin-left\":\"28px\"}},[_vm._v(\"\\n \"+_vm._s(\"Disponível\")+\"\\n \")])])])],1)],1),_c('q-btn',{staticClass:\"margin1\",attrs:{\"rounded\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.select_data = true}}},[_vm._v(\"Gerar Agenda\")]),_c('q-btn',{staticClass:\"margin1\",attrs:{\"round\":\"\",\"color\":_vm.colorID,\"icon\":\"refresh\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.carregaDados()}}},[_c('q-tooltip',[_vm._v(\"Recarregar\")])],1)],1),_c('div',{staticClass:\"margin1\"},[_c('DxScheduler',{ref:\"agendaComponete\",attrs:{\"time-zone\":\"America/Sao_Paulo\",\"data-source\":_vm.dataSourceConfig,\"current-date\":new Date(),\"views\":_vm.views,\"show-all-day-panel\":true,\"height\":600,\"current-view\":\"month\",\"editing\":_vm.editing,\"appointment-tooltip-template\":\"tooltip\",\"appointmentTemplate\":\"editing\",\"onAppointmentFormOpening\":_vm.OpenCell,\"onAppointmentClick\":_vm.ClickCell,\"startDayHour\":8},on:{\"appointmentAdded\":function($event){return _vm.addEvento($event)},\"appointmentUpdated\":function($event){return _vm.AttEvento($event)}},scopedSlots:_vm._u([{key:\"editing\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',[_vm._v(_vm._s(data.appointmentData.text))])]}},{key:\"tooltip\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('tooltip',{attrs:{\"template-tooltip-model\":data},on:{\"click\":function($event){return _vm.fechaPopup(data)}}})]}}])},[_c('DxResource',{attrs:{\"data-source\":_vm.clientes,\"use-color-as-default\":true,\"value-expr\":\"cd_cliente\",\"display-expr\":\"nm_fantasia_cliente\",\"field-expr\":\"cd_cliente\",\"label\":\"Cliente\"}}),_c('DxResource',{attrs:{\"data-source\":_vm.usuarios,\"use-color-as-default\":true,\"value-expr\":\"cd_usuario\",\"display-expr\":\"nm_usuario\",\"field-expr\":\"cd_usuario\",\"label\":\"Usuários\"}})],1)],1),_c('q-dialog',{model:{value:(_vm.select_data),callback:function ($$v) {_vm.select_data=$$v},expression:\"select_data\"}},[_c('q-expansion-item',{staticClass:\"overflow-hidden bg-white\",staticStyle:{\"border-radius\":\"20px\",\"height\":\"auto\",\"margin\":\"0\",\"width\":\"700px\",\"max-width\":\"80vw\"},attrs:{\"icon\":\"event\",\"label\":\"Selecione as Datas\",\"default-opened\":\"\",\"header-class\":'bg-' + this.colorID + ' text-white items-center text-h6',\"expand-icon-class\":\"text-white \"},model:{value:(_vm.Expansor),callback:function ($$v) {_vm.Expansor=$$v},expression:\"Expansor\"}},[_c('q-card',{staticStyle:{\"width\":\"700px\",\"max-width\":\"80vw\",\"margin\":\"0\",\"padding\":\"0\"}},[_c('RangeData',{staticClass:\"margin1 card-column\",on:{\"trocouData\":function($event){return _vm.onGeraAgenda()}}})],1)],1)],1),_c('q-dialog',{model:{value:(_vm.PopupAppointment),callback:function ($$v) {_vm.PopupAppointment=$$v},expression:\"PopupAppointment\"}},[_c('q-expansion-item',{staticClass:\"overflow-hidden bg-white\",staticStyle:{\"border-radius\":\"20px\",\"height\":\"auto\",\"margin\":\"0\",\"width\":\"700px\",\"max-width\":\"80vw\"},attrs:{\"icon\":\"event\",\"label\":\"Atendimento\",\"default-opened\":\"\",\"header-class\":'bg-' + this.colorID + ' text-white items-center text-h6',\"expand-icon-class\":\"text-white \"},model:{value:(_vm.Expansor),callback:function ($$v) {_vm.Expansor=$$v},expression:\"Expansor\"}},[_c('q-card',{staticStyle:{\"width\":\"700px\",\"max-width\":\"80vw\",\"margin\":\"0\",\"padding\":\"0\"}},[_c('q-card-section',{staticClass:\"margin1\"},[_c('q-input',{attrs:{\"color\":_vm.colorID,\"label\":\"Data do Atendimento\",\"mask\":\"##/##/#### ##:##\"},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('q-icon',{attrs:{\"name\":\"event\"}})]},proxy:true},{key:\"append\",fn:function(){return [_c('q-btn',{staticClass:\"margin1\",attrs:{\"round\":\"\",\"color\":_vm.colorID,\"icon\":\"event\",\"size\":\"sm\"}},[_c('q-popup-proxy',{attrs:{\"cover\":\"\",\"transition-show\":\"scale\",\"transition-hide\":\"scale\"}},[_c('div',{staticClass:\"row\"},[_c('q-date',{attrs:{\"color\":_vm.colorID,\"mask\":\"DD/MM/YYYY HH:mm\",\"tabindex\":\"-1\"},model:{value:(_vm.dt_atendimento),callback:function ($$v) {_vm.dt_atendimento=$$v},expression:\"dt_atendimento\"}}),_c('q-time',{attrs:{\"color\":_vm.colorID,\"mask\":\"DD/MM/YYYY HH:mm\"},model:{value:(_vm.dt_atendimento),callback:function ($$v) {_vm.dt_atendimento=$$v},expression:\"dt_atendimento\"}},[_c('div',{staticClass:\"row items-center justify-end q-gutter-sm\"},[_c('q-btn',{directives:[{name:\"close-popup\",rawName:\"v-close-popup\"}],attrs:{\"label\":\"Fechar\",\"color\":_vm.colorID,\"flat\":\"\"}})],1)])],1)]),_c('q-tooltip',[_vm._v(\"Data\")])],1)]},proxy:true}]),model:{value:(_vm.dt_atendimento),callback:function ($$v) {_vm.dt_atendimento=$$v},expression:\"dt_atendimento\"}}),_c('div',{staticClass:\"row\"},[_c('q-select',{staticClass:\"margin1 col\",attrs:{\"options\":_vm.clientes,\"color\":_vm.colorID,\"label\":\"Clientes\",\"option-label\":\"nm_fantasia_cliente\",\"option-value\":\"cd_cliente\"},on:{\"input\":function($event){return _vm.onCliente()}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('q-icon',{attrs:{\"name\":\"person\"}})]},proxy:true}]),model:{value:(_vm.cliente),callback:function ($$v) {_vm.cliente=$$v},expression:\"cliente\"}}),_c('q-select',{staticClass:\"margin1 col\",attrs:{\"options\":_vm.usuarios,\"color\":_vm.colorID,\"label\":\"Solicitante\",\"option-label\":\"nm_usuario\",\"option-value\":\"cd_usuario\"},on:{\"input\":function($event){return _vm.onUsuario()}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('q-icon',{attrs:{\"name\":\"support_agent\"}})]},proxy:true}]),model:{value:(_vm.usuario),callback:function ($$v) {_vm.usuario=$$v},expression:\"usuario\"}})],1)],1),_c('q-card-section',{staticStyle:{\"display\":\"flex\"}},[_c('q-btn',{staticClass:\"margin1\",attrs:{\"rounded\":\"\",\"color\":_vm.colorID,\"label\":\"Salvar\",\"icon\":\"check\"},on:{\"click\":function($event){_vm.list_cell.cd_horario_composicao == undefined\n ? _vm.addEvento()\n : _vm.AttEvento($event)}}},[_c('q-tooltip',[_vm._v(\"Salvar\")])],1),(_vm.list_cell.cd_horario_composicao != undefined && _vm.cliente)?_c('q-btn',{directives:[{name:\"close-popup\",rawName:\"v-close-popup\"}],staticClass:\"margin1\",attrs:{\"rounded\":\"\",\"color\":_vm.colorID,\"label\":\"Cancelar\",\"icon\":\"close\"},on:{\"click\":function($event){return _vm.CancelaEvento($event)}}},[_c('q-tooltip',[_vm._v(\"Cancelar\")])],1):_vm._e(),_c('q-space'),_c('q-btn',{directives:[{name:\"close-popup\",rawName:\"v-close-popup\"}],staticClass:\"margin1\",attrs:{\"rounded\":\"\",\"color\":_vm.colorID,\"label\":\"Fechar\",\"icon\":\"cancel\"}},[_c('q-tooltip',[_vm._v(\"Fechar\")])],1)],1)],1)],1)],1),_c('q-dialog',{attrs:{\"maximized\":\"\",\"persistent\":\"\"},model:{value:(_vm.load),callback:function ($$v) {_vm.load=$$v},expression:\"load\"}},[_c('carregando',{attrs:{\"colorID\":_vm.colorID}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","f@a\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.transform-quasar-imports.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agenda.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.transform-quasar-imports.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agenda.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./agenda.vue?vue&type=template&id=d9bafc72&scoped=true&\"\nimport script from \"./agenda.vue?vue&type=script&lang=js&\"\nexport * from \"./agenda.vue?vue&type=script&lang=js&\"\nimport style0 from \"./agenda.vue?vue&type=style&index=0&id=d9bafc72&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d9bafc72\",\n null\n \n)\n\nexport default component.exports\nimport QSpace from 'quasar/src/components/space/QSpace.js';\nimport QExpansionItem from 'quasar/src/components/expansion-item/QExpansionItem.js';\nimport QCard from 'quasar/src/components/card/QCard.js';\nimport QCardSection from 'quasar/src/components/card/QCardSection.js';\nimport QBtn from 'quasar/src/components/btn/QBtn.js';\nimport QTooltip from 'quasar/src/components/tooltip/QTooltip.js';\nimport QDialog from 'quasar/src/components/dialog/QDialog.js';\nimport QInput from 'quasar/src/components/input/QInput.js';\nimport QIcon from 'quasar/src/components/icon/QIcon.js';\nimport QPopupProxy from 'quasar/src/components/popup-proxy/QPopupProxy.js';\nimport QDate from 'quasar/src/components/date/QDate.js';\nimport QTime from 'quasar/src/components/time/QTime.js';\nimport QSelect from 'quasar/src/components/select/QSelect.js';import ClosePopup from 'quasar/src/directives/ClosePopup.js';\nimport qInstall from \"../../node_modules/vue-cli-plugin-quasar/lib/runtime.auto-import.js\";\nqInstall(component, 'components', {QSpace,QExpansionItem,QCard,QCardSection,QBtn,QTooltip,QDialog,QInput,QIcon,QPopupProxy,QDate,QTime,QSelect});qInstall(component, 'directives', {ClosePopup});\n"],"sourceRoot":""}
\").addClass(this._getHeaderPanelCellClass(i)).attr(\"title\", text);\r\n if (cellTemplate && cellTemplate.render) {\r\n templateCallbacks.push(cellTemplate.render.bind(cellTemplate, {\r\n model: {\r\n text: text,\r\n date: this._getDateByIndex(i)\r\n },\r\n index: calculatedIndex,\r\n container: getPublicElement($cell)\r\n }))\r\n } else {\r\n $cell.text(text)\r\n }\r\n $container.append($cell);\r\n return $cell\r\n },\r\n _getHeaderPanelCellClass: function(i) {\r\n var cellClass = HEADER_PANEL_CELL_CLASS + \" \" + HORIZONTAL_SIZES_CLASS;\r\n return this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, i + 1)\r\n },\r\n _calculateHeaderCellRepeatCount: function() {\r\n return this._groupedStrategy.calculateHeaderCellRepeatCount()\r\n },\r\n _renderAllDayPanel: function(index) {\r\n var cellCount = this._getCellCount();\r\n if (!this._isVerticalGroupedWorkSpace()) {\r\n cellCount *= this._getGroupCount() || 1\r\n }\r\n var cellTemplates = this._renderTableBody({\r\n container: this._allDayPanels.length ? getPublicElement(this._allDayTables[index]) : getPublicElement(this._$allDayTable),\r\n rowCount: 1,\r\n cellCount: cellCount,\r\n cellClass: this._getAllDayPanelCellClass.bind(this),\r\n rowClass: ALL_DAY_TABLE_ROW_CLASS,\r\n cellTemplate: this.option(\"dataCellTemplate\"),\r\n getCellData: this._getAllDayCellData.bind(this),\r\n groupIndex: index\r\n }, true);\r\n this._toggleAllDayVisibility();\r\n this._applyCellTemplates(cellTemplates)\r\n },\r\n _getAllDayPanelCellClass: function(i, j) {\r\n var cellClass = ALL_DAY_TABLE_CELL_CLASS + \" \" + HORIZONTAL_SIZES_CLASS;\r\n return this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, j + 1)\r\n },\r\n _getAllDayCellData: function(cell, rowIndex, cellIndex, groupIndex) {\r\n var startDate = this._getDateByCellIndexes(rowIndex, cellIndex);\r\n startDate = dateUtils.trimTime(startDate);\r\n var data = {\r\n startDate: startDate,\r\n endDate: new Date(startDate.getTime() + DAY_MS),\r\n allDay: true\r\n };\r\n var groups = this._getCellGroups(groupIndex || this._getGroupIndex(rowIndex, cellIndex));\r\n if (groups.length) {\r\n data.groups = {}\r\n }\r\n for (var i = 0; i < groups.length; i++) {\r\n data.groups[groups[i].name] = groups[i].id\r\n }\r\n return {\r\n key: CELL_DATA,\r\n value: data\r\n }\r\n },\r\n _toggleAllDayVisibility: function() {\r\n var showAllDayPanel = this.option(\"showAllDayPanel\");\r\n this._$allDayPanel.toggle(showAllDayPanel);\r\n this._$allDayTitle && this._$allDayTitle.toggleClass(ALL_DAY_TITLE_HIDDEN_CLASS, !showAllDayPanel);\r\n this.$element().toggleClass(WORKSPACE_WITH_ALL_DAY_CLASS, showAllDayPanel);\r\n this._changeAllDayVisibility();\r\n this._updateScrollable()\r\n },\r\n _changeAllDayVisibility: function() {\r\n this.$element().toggleClass(WORKSPACE_WITH_COLLAPSED_ALL_DAY_CLASS, !this.option(\"allDayExpanded\") && this.option(\"showAllDayPanel\"))\r\n },\r\n _updateScrollable: function() {\r\n this._dateTableScrollable.update();\r\n this._headerScrollable && this._headerScrollable.update();\r\n this._sidebarScrollable && this._sidebarScrollable.update()\r\n },\r\n _renderTimePanel: function() {\r\n var _this5 = this;\r\n var repeatCount = this._groupedStrategy.calculateTimeCellRepeatCount();\r\n var startViewDate = this._getDateWithSkippedDST();\r\n var _getTimeText = function(i) {\r\n var index = i % _this5._getRowCount();\r\n if (index % 2 === 0) {\r\n return dateLocalization.format(_this5._getTimeCellDateCore(startViewDate, i), \"shorttime\")\r\n }\r\n return \"\"\r\n };\r\n this._renderTableBody({\r\n container: getPublicElement(this._$timePanel),\r\n rowCount: this._getTimePanelRowCount() * repeatCount,\r\n cellCount: 1,\r\n cellClass: this._getTimeCellClass.bind(this),\r\n rowClass: TIME_PANEL_ROW_CLASS,\r\n cellTemplate: this.option(\"timeCellTemplate\"),\r\n getCellText: _getTimeText.bind(this),\r\n getCellDate: this._getTimeCellDate.bind(this),\r\n groupCount: this._getGroupCount(),\r\n allDayElements: this._insertAllDayRowsIntoDateTable() ? this._allDayTitles : void 0\r\n })\r\n },\r\n _getDateWithSkippedDST: function() {\r\n var result = new Date(this.getStartViewDate());\r\n if (timeZoneUtils.isTimezoneChangeInDate(result)) {\r\n result = new Date(result.setDate(result.getDate() + 1))\r\n }\r\n return result\r\n },\r\n _getTimePanelRowCount: function() {\r\n return this._getCellCountInDay()\r\n },\r\n _getCellCountInDay: function(skipRound) {\r\n var result = this._calculateDayDuration() / this.option(\"hoursInterval\");\r\n return skipRound ? result : Math.ceil(result)\r\n },\r\n _calculateDayDuration: function() {\r\n return this.option(\"endDayHour\") - this.option(\"startDayHour\")\r\n },\r\n _getTimeCellClass: function(i) {\r\n var cellClass = TIME_PANEL_CELL_CLASS + \" \" + VERTICAL_SIZES_CLASS;\r\n return this._groupedStrategy.addAdditionalGroupCellClasses(cellClass, i, i)\r\n },\r\n _getTimeCellDateAdjustedDST: function(i) {\r\n var startViewDate = new Date(this.getStartViewDate());\r\n if (timeZoneUtils.isTimezoneChangeInDate(startViewDate)) {\r\n startViewDate = new Date(startViewDate.setDate(startViewDate.getDate() + 1))\r\n }\r\n return this._getTimeCellDateCore(startViewDate, i)\r\n },\r\n _getTimeCellDate: function(i) {\r\n return this._getTimeCellDateCore(this.getStartViewDate(), i)\r\n },\r\n _getTimeCellDateCore: function(startViewDate, i) {\r\n var result = new Date(startViewDate);\r\n var timeCellDuration = Math.round(this.getCellDuration());\r\n var cellCountInDay = this._getCellCountInDay(true);\r\n result.setMilliseconds(result.getMilliseconds() + timeCellDuration * (i % cellCountInDay));\r\n return result\r\n },\r\n _renderDateTable: function() {\r\n var groupCount = this._getGroupCount();\r\n this._renderTableBody({\r\n container: getPublicElement(this._$dateTable),\r\n rowCount: this._getTotalRowCount(groupCount),\r\n cellCount: this._getTotalCellCount(groupCount),\r\n cellClass: this._getDateTableCellClass.bind(this),\r\n rowClass: this._getDateTableRowClass(),\r\n cellTemplate: this.option(\"dataCellTemplate\"),\r\n getCellData: this._getCellData.bind(this),\r\n allDayElements: this._insertAllDayRowsIntoDateTable() ? this._allDayPanels : void 0,\r\n groupCount: groupCount,\r\n groupByDate: this.option(\"groupByDate\")\r\n })\r\n },\r\n _insertAllDayRowsIntoDateTable: function() {\r\n return this._groupedStrategy.insertAllDayRowsIntoDateTable()\r\n },\r\n _getTotalCellCount: function(groupCount) {\r\n return this._groupedStrategy.getTotalCellCount(groupCount)\r\n },\r\n _getTotalRowCount: function() {\r\n return this._groupedStrategy.getTotalRowCount()\r\n },\r\n _getCellData: function(cell, rowIndex, cellIndex) {\r\n var data = this._prepareCellData(rowIndex, cellIndex, cell);\r\n return {\r\n key: CELL_DATA,\r\n value: data\r\n }\r\n },\r\n _prepareCellData: function(rowIndex, cellIndex) {\r\n var startDate = this._getDateByCellIndexes(rowIndex, cellIndex);\r\n var endDate = this.calculateEndDate(startDate);\r\n var data = {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: this._getTableAllDay()\r\n };\r\n var groups = this._getCellGroups(this._getGroupIndex(rowIndex, cellIndex));\r\n if (groups.length) {\r\n data.groups = {}\r\n }\r\n for (var i = 0; i < groups.length; i++) {\r\n data.groups[groups[i].name] = groups[i].id\r\n }\r\n return data\r\n },\r\n _getGroupIndex: function(rowIndex, cellIndex) {\r\n return this._groupedStrategy.getGroupIndex(rowIndex, cellIndex)\r\n },\r\n _getTableAllDay: function() {\r\n return false\r\n },\r\n calculateEndDate: function(startDate) {\r\n var result = new Date(startDate);\r\n result.setMilliseconds(result.getMilliseconds() + Math.round(this._getInterval()));\r\n return result\r\n },\r\n _getGroupCount: function() {\r\n var groups = this.option(\"groups\");\r\n var result = 0;\r\n for (var i = 0, len = groups.length; i < len; i++) {\r\n if (!i) {\r\n result = groups[i].items.length\r\n } else {\r\n result *= groups[i].items.length\r\n }\r\n }\r\n return result\r\n },\r\n _getPathToLeaf: function(leafIndex) {\r\n var tree = this.invoke(\"createResourcesTree\", this.option(\"groups\"));\r\n\r\n function findLeafByIndex(data, index) {\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i].leafIndex === index) {\r\n return data[i]\r\n } else {\r\n var _leaf = findLeafByIndex(data[i].children, index);\r\n if (_leaf) {\r\n return _leaf\r\n }\r\n }\r\n }\r\n }\r\n\r\n function makeBranch(leaf, result) {\r\n result = result || [];\r\n result.push(leaf.value);\r\n if (leaf.parent) {\r\n makeBranch(leaf.parent, result)\r\n }\r\n return result\r\n }\r\n var leaf = findLeafByIndex(tree, leafIndex);\r\n return makeBranch(leaf).reverse()\r\n },\r\n _getCellGroups: function(groupIndex) {\r\n var result = [];\r\n if (this._getGroupCount()) {\r\n var groups = this.option(\"groups\");\r\n if (groupIndex < 0) {\r\n return\r\n }\r\n var path = this._getPathToLeaf(groupIndex);\r\n for (var i = 0; i < groups.length; i++) {\r\n result.push({\r\n name: groups[i].name,\r\n id: path[i]\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _attachTablesEvents: function() {\r\n var _this6 = this;\r\n var that = this;\r\n var isPointerDown = false;\r\n var cellHeight;\r\n var cellWidth;\r\n var $element = this.$element();\r\n eventsEngine.off($element, SCHEDULER_CELL_DXDRAGENTER_EVENT_NAME);\r\n eventsEngine.off($element, SCHEDULER_CELL_DXDRAGLEAVE_EVENT_NAME);\r\n eventsEngine.off($element, SCHEDULER_CELL_DXDROP_EVENT_NAME);\r\n eventsEngine.off($element, SCHEDULER_CELL_DXPOINTERMOVE_EVENT_NAME);\r\n eventsEngine.off($element, SCHEDULER_CELL_DXPOINTERDOWN_EVENT_NAME);\r\n eventsEngine.on($element, SCHEDULER_CELL_DXDRAGENTER_EVENT_NAME, SCHEDULER_DRAG_AND_DROP_SELECTOR, {\r\n itemSizeFunc: function($element) {\r\n if (!cellHeight) {\r\n cellHeight = getBoundingRect($element.get(0)).height\r\n }\r\n if (!cellWidth) {\r\n cellWidth = getBoundingRect($element.get(0)).width\r\n }\r\n return {\r\n width: cellWidth,\r\n height: cellHeight\r\n }\r\n },\r\n checkDropTarget: function(target, event) {\r\n return !_this6._isOutsideScrollable(target, event)\r\n }\r\n }, function(e) {\r\n if (that._$currentTableTarget) {\r\n that.removeDroppableCellClass(that._$currentTableTarget)\r\n }\r\n that._$currentTableTarget = $(e.target);\r\n that._$currentTableTarget.addClass(DATE_TABLE_DROPPABLE_CELL_CLASS)\r\n });\r\n eventsEngine.on($element, SCHEDULER_CELL_DXDRAGLEAVE_EVENT_NAME, function(e) {\r\n if (!$element.find($(e.draggingElement)).length) {\r\n that.removeDroppableCellClass()\r\n }\r\n });\r\n eventsEngine.on($element, SCHEDULER_CELL_DXDROP_EVENT_NAME, SCHEDULER_DRAG_AND_DROP_SELECTOR, function(e) {\r\n that.removeDroppableCellClass($(e.target));\r\n cellHeight = 0;\r\n cellWidth = 0\r\n });\r\n eventsEngine.on($element, SCHEDULER_CELL_DXPOINTERDOWN_EVENT_NAME, SCHEDULER_DRAG_AND_DROP_SELECTOR, function(e) {\r\n if (eventUtils.isMouseEvent(e) && 1 === e.which) {\r\n isPointerDown = true;\r\n that.$element().addClass(WORKSPACE_WITH_MOUSE_SELECTION_CLASS);\r\n eventsEngine.off(domAdapter.getDocument(), SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME);\r\n eventsEngine.on(domAdapter.getDocument(), SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME, function() {\r\n isPointerDown = false;\r\n that.$element().removeClass(WORKSPACE_WITH_MOUSE_SELECTION_CLASS)\r\n })\r\n }\r\n });\r\n eventsEngine.on($element, SCHEDULER_CELL_DXPOINTERMOVE_EVENT_NAME, SCHEDULER_DRAG_AND_DROP_SELECTOR, function(e) {\r\n if (isPointerDown && that._dateTableScrollable && !that._dateTableScrollable.option(\"scrollByContent\")) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n that._moveToCell($(e.target), true)\r\n }\r\n })\r\n },\r\n _getDateTables: function() {\r\n return this._$dateTable.add(this._$allDayTable)\r\n },\r\n _getDateTable: function() {\r\n return this._$dateTable\r\n },\r\n _getAllDayTable: function() {\r\n return this._$allDayTable\r\n },\r\n _getInterval: function() {\r\n if (void 0 === this._interval) {\r\n this._interval = this.option(\"hoursInterval\") * HOUR_MS\r\n }\r\n return this._interval\r\n },\r\n _getHeaderText: function(headerIndex) {\r\n return dateLocalization.format(this._getDateByIndex(headerIndex), this._getFormat())\r\n },\r\n _getDateByIndex: abstract,\r\n _getFormat: abstract,\r\n _calculateCellIndex: function(rowIndex, cellIndex) {\r\n return this._groupedStrategy.calculateCellIndex(rowIndex, cellIndex)\r\n },\r\n _renderTableBody: function(options, delayCellTemplateRendering) {\r\n var result = [];\r\n if (!delayCellTemplateRendering) {\r\n this._applyCellTemplates(tableCreator.makeTable(options))\r\n } else {\r\n result = tableCreator.makeTable(options)\r\n }\r\n return result\r\n },\r\n _removeAllDayElements: function() {\r\n this._$allDayTable && this._$allDayTable.remove();\r\n this._$allDayTitle && this._$allDayTitle.remove()\r\n },\r\n _cleanView: function() {\r\n this._cleanCellDataCache();\r\n this._cleanAllowedPositions();\r\n this._$thead.empty();\r\n this._$dateTable.empty();\r\n this._shader && this._shader.clean();\r\n this._$timePanel.empty();\r\n this._$allDayTable && this._$allDayTable.empty();\r\n this._$groupTable.empty();\r\n delete this._hiddenInterval;\r\n delete this._interval\r\n },\r\n _clean: function() {\r\n eventsEngine.off(domAdapter.getDocument(), SCHEDULER_CELL_DXPOINTERUP_EVENT_NAME);\r\n this.callBase()\r\n },\r\n getWorkArea: function() {\r\n return this._dateTableScrollable.$content()\r\n },\r\n getScrollable: function() {\r\n return this._dateTableScrollable\r\n },\r\n getScrollableScrollTop: function() {\r\n return this._dateTableScrollable.scrollTop()\r\n },\r\n getGroupedScrollableScrollTop: function(allDay) {\r\n return this._groupedStrategy.getScrollableScrollTop(allDay)\r\n },\r\n getScrollableScrollLeft: function() {\r\n return this._dateTableScrollable.scrollLeft()\r\n },\r\n getScrollableOuterWidth: function() {\r\n return this._dateTableScrollable.scrollWidth()\r\n },\r\n getScrollableContainer: function() {\r\n return this._dateTableScrollable._container()\r\n },\r\n getHeaderPanelHeight: function() {\r\n return this._$headerPanel && this._$headerPanel.outerHeight(true)\r\n },\r\n getTimePanelWidth: function() {\r\n return this._$timePanel && getBoundingRect(this._$timePanel.get(0)).width\r\n },\r\n getGroupTableWidth: function() {\r\n return this._$groupTable ? this._$groupTable.outerWidth() : 0\r\n },\r\n getWorkSpaceLeftOffset: function() {\r\n return this._groupedStrategy.getLeftOffset()\r\n },\r\n getGroupedStrategy: function() {\r\n return this._groupedStrategy\r\n },\r\n _getCellCoordinatesByIndex: function(index) {\r\n var cellIndex = Math.floor(index / this._getRowCount());\r\n var rowIndex = index - this._getRowCount() * cellIndex;\r\n return {\r\n cellIndex: cellIndex,\r\n rowIndex: rowIndex\r\n }\r\n },\r\n _getDateByCellIndexes: function(rowIndex, cellIndex, patchedIndexes) {\r\n cellIndex = !patchedIndexes ? this._patchCellIndex(cellIndex) : cellIndex;\r\n var firstViewDate = this.getStartViewDate();\r\n var currentDate = new Date(firstViewDate.getTime() + this._getMillisecondsOffset(rowIndex, cellIndex) + this._getOffsetByCount(cellIndex));\r\n currentDate.setTime(currentDate.getTime() + dateUtils.getTimezonesDifference(firstViewDate, currentDate));\r\n return currentDate\r\n },\r\n _patchCellIndex: function(cellIndex) {\r\n if (this.isGroupedByDate()) {\r\n cellIndex = Math.floor(cellIndex / this._getGroupCount())\r\n }\r\n return cellIndex\r\n },\r\n _getOffsetByCount: function() {\r\n return 0\r\n },\r\n _getMillisecondsOffset: function(rowIndex, cellIndex) {\r\n return this._getInterval() * this._calculateCellIndex(rowIndex, cellIndex) + this._calculateHiddenInterval(rowIndex, cellIndex)\r\n },\r\n _calculateHiddenInterval: function(rowIndex, cellIndex) {\r\n var dayCount = cellIndex % this._getCellCount();\r\n return dayCount * this._getHiddenInterval()\r\n },\r\n _getHiddenInterval: function() {\r\n if (void 0 === this._hiddenInterval) {\r\n this._hiddenInterval = DAY_MS - this.getVisibleDayDuration()\r\n }\r\n return this._hiddenInterval\r\n },\r\n _getIntervalBetween: function(currentDate, allDay) {\r\n var firstViewDate = this.getStartViewDate();\r\n var startDayTime = this.option(\"startDayHour\") * HOUR_MS;\r\n var timeZoneOffset = dateUtils.getTimezonesDifference(firstViewDate, currentDate);\r\n var fullInterval = currentDate.getTime() - firstViewDate.getTime() - timeZoneOffset;\r\n var days = this._getDaysOfInterval(fullInterval, startDayTime);\r\n var weekendsCount = this._getWeekendsCount(days);\r\n var result = (days - weekendsCount) * DAY_MS;\r\n if (!allDay) {\r\n result = fullInterval - days * this._getHiddenInterval() - weekendsCount * this.getVisibleDayDuration()\r\n }\r\n return result\r\n },\r\n _getWeekendsCount: function() {\r\n return 0\r\n },\r\n _getDaysOfInterval: function(fullInterval, startDayTime) {\r\n return Math.floor((fullInterval + startDayTime) / DAY_MS)\r\n },\r\n _getGroupIndexes: function(appointmentResources) {\r\n var result = [];\r\n if (appointmentResources && this.option(\"groups\").length) {\r\n var tree = this.invoke(\"createResourcesTree\", this.option(\"groups\"));\r\n result = this.invoke(\"getResourceTreeLeaves\", tree, appointmentResources)\r\n }\r\n return result\r\n },\r\n _updateIndex: function(index) {\r\n return index * this._getRowCount()\r\n },\r\n _getDroppableCell: function() {\r\n return this._getDateTables().find(\".\" + DATE_TABLE_DROPPABLE_CELL_CLASS)\r\n },\r\n _getWorkSpaceWidth: function() {\r\n if (this._needCreateCrossScrolling()) {\r\n return getBoundingRect(this._$dateTable.get(0)).width\r\n }\r\n return getBoundingRect(this.$element().get(0)).width - this.getTimePanelWidth()\r\n },\r\n _getCellPositionByIndex: function(index, groupIndex, inAllDayRow) {\r\n var cellCoordinates = this._getCellCoordinatesByIndex(index);\r\n var $cell = this._getCellByCoordinates(cellCoordinates, groupIndex, inAllDayRow);\r\n var result = this._getCellPosition($cell);\r\n this.setCellDataCache(cellCoordinates, groupIndex, $cell);\r\n if (result) {\r\n result.rowIndex = cellCoordinates.rowIndex;\r\n result.cellIndex = cellCoordinates.cellIndex\r\n }\r\n return result\r\n },\r\n _getCellPosition: function($cell) {\r\n var position = $cell.position();\r\n if (this.option(\"rtlEnabled\")) {\r\n position.left += getBoundingRect($cell.get(0)).width\r\n }\r\n return position\r\n },\r\n _getCellByCoordinates: function(cellCoordinates, groupIndex, inAllDayRow) {\r\n var indexes = this._groupedStrategy.prepareCellIndexes(cellCoordinates, groupIndex, inAllDayRow);\r\n return this._$dateTable.find(\"tr\").eq(indexes.rowIndex).find(\"td\").eq(indexes.cellIndex)\r\n },\r\n _getCells: function(allDay, direction) {\r\n var cellClass = allDay ? ALL_DAY_TABLE_CELL_CLASS : DATE_TABLE_CELL_CLASS;\r\n if (\"vertical\" === direction) {\r\n var result = [];\r\n for (var i = 1;; i++) {\r\n var cells = this.$element().find(\"tr .\".concat(cellClass, \":nth-child(\").concat(i, \")\"));\r\n if (!cells.length) {\r\n break\r\n }\r\n result = result.concat(cells.toArray())\r\n }\r\n return $(result)\r\n } else {\r\n return this.$element().find(\".\" + cellClass)\r\n }\r\n },\r\n _setHorizontalGroupHeaderCellsHeight: function() {\r\n var height = getBoundingRect(this._$dateTable.get(0)).height;\r\n this._$groupTable.outerHeight(height)\r\n },\r\n _getDateTableBorder: function() {\r\n return DATE_TABLE_CELL_BORDER\r\n },\r\n _getDateTableBorderOffset: function() {\r\n return 2 * this._getDateTableBorder()\r\n },\r\n _getGroupHeaderCellsContent: function() {\r\n return this.$element().find(\".\" + GROUP_HEADER_CONTENT_CLASS)\r\n },\r\n _getGroupHeaderCells: function() {\r\n return this.$element().find(\".\" + GROUP_HEADER_CLASS)\r\n },\r\n _getScrollCoordinates: function(hours, minutes, date) {\r\n var currentDate = date || new Date(this.option(\"currentDate\"));\r\n var startDayHour = this.option(\"startDayHour\");\r\n var endDayHour = this.option(\"endDayHour\");\r\n if (hours < startDayHour) {\r\n hours = startDayHour\r\n }\r\n if (hours >= endDayHour) {\r\n hours = endDayHour - 1\r\n }\r\n currentDate.setHours(hours, minutes, 0, 0);\r\n return this.getCoordinatesByDate(currentDate)\r\n },\r\n _isOutsideScrollable: function(target, event) {\r\n var $dateTableScrollableElement = this._dateTableScrollable.$element();\r\n var scrollableSize = getBoundingRect($dateTableScrollableElement.get(0));\r\n var window = windowUtils.getWindow();\r\n var isTargetInAllDayPanel = !$(target).closest($dateTableScrollableElement).length;\r\n var isOutsideHorizontalScrollable = event.pageX < scrollableSize.left || event.pageX > scrollableSize.left + scrollableSize.width + (window.scrollX || 0);\r\n var isOutsideVerticalScrollable = event.pageY < scrollableSize.top || event.pageY > scrollableSize.top + scrollableSize.height + (window.scrollY || 0);\r\n if (isTargetInAllDayPanel && !isOutsideHorizontalScrollable) {\r\n return false\r\n }\r\n return isOutsideVerticalScrollable || isOutsideHorizontalScrollable\r\n },\r\n setCellDataCache: function(cellCoordinates, groupIndex, $cell) {\r\n var cache = this.getCellDataCache();\r\n var data = this.getCellData($cell);\r\n var key = JSON.stringify({\r\n rowIndex: cellCoordinates.rowIndex,\r\n cellIndex: cellCoordinates.cellIndex,\r\n groupIndex: groupIndex\r\n });\r\n cache[key] = data\r\n },\r\n setCellDataCacheAlias: function(appointment, geometry) {\r\n var key = JSON.stringify({\r\n rowIndex: appointment.rowIndex,\r\n cellIndex: appointment.cellIndex,\r\n groupIndex: appointment.groupIndex\r\n });\r\n var aliasKey = JSON.stringify({\r\n top: geometry.top,\r\n left: geometry.left\r\n });\r\n var cache = this.getCellDataCache();\r\n if (cache[key]) {\r\n cache[aliasKey] = cache[key]\r\n }\r\n },\r\n getCellDataCache: function(key) {\r\n if (!this._cache) {\r\n this._cache = {}\r\n }\r\n return key ? this._cache[key] : this._cache\r\n },\r\n _cleanCellDataCache: function() {\r\n delete this._cache\r\n },\r\n _cleanAllowedPositions: function() {\r\n delete this._maxAllowedVerticalPosition;\r\n delete this._maxAllowedPosition\r\n },\r\n supportAllDayRow: function() {\r\n return true\r\n },\r\n keepOriginalHours: function() {\r\n return false\r\n },\r\n getFocusedCellData: function() {\r\n var $focusedCells = this._getAllFocusedCells();\r\n var result = [];\r\n if ($focusedCells.length > 1) {\r\n result = this._getMultipleCellsData($focusedCells)\r\n } else {\r\n var data = this.getCellData($focusedCells);\r\n data && result.push(data)\r\n }\r\n return result\r\n },\r\n _getMultipleCellsData: function($cells) {\r\n var data = [];\r\n for (var i = 0; i < $cells.length; i++) {\r\n data.push(dataUtils.data($cells[i], CELL_DATA))\r\n }\r\n return data\r\n },\r\n getCellData: function($cell) {\r\n var data = $cell[0] ? dataUtils.data($cell[0], CELL_DATA) : void 0;\r\n return extend(true, {}, data)\r\n },\r\n _getHorizontalMax: function(groupIndex) {\r\n groupIndex = this.isGroupedByDate() ? this._getGroupCount() - 1 : groupIndex;\r\n return this._groupedStrategy.getHorizontalMax(groupIndex)\r\n },\r\n getCoordinatesByDate: function(date, groupIndex, inAllDayRow) {\r\n groupIndex = groupIndex || 0;\r\n var index = this.getCellIndexByDate(date, inAllDayRow);\r\n var position = this._getCellPositionByIndex(index, groupIndex, inAllDayRow);\r\n var shift = this.getPositionShift(inAllDayRow ? 0 : this.getTimeShift(date), inAllDayRow);\r\n var horizontalHMax = this._getHorizontalMax(groupIndex, date);\r\n if (!position) {\r\n throw errors.Error(\"E1039\")\r\n }\r\n var coordinates = {\r\n cellPosition: position.left + shift.cellPosition,\r\n top: position.top + shift.top,\r\n left: position.left + shift.left,\r\n rowIndex: position.rowIndex,\r\n cellIndex: position.cellIndex,\r\n hMax: horizontalHMax,\r\n vMax: this.getVerticalMax(groupIndex),\r\n groupIndex: groupIndex\r\n };\r\n return coordinates\r\n },\r\n getVerticalMax: function(groupIndex) {\r\n return this._groupedStrategy.getVerticalMax(groupIndex)\r\n },\r\n _getOffsetByAllDayPanel: function(groupIndex) {\r\n return this._groupedStrategy._getOffsetByAllDayPanel(groupIndex)\r\n },\r\n _getGroupTop: function(groupIndex) {\r\n return this._groupedStrategy._getGroupTop(groupIndex)\r\n },\r\n isGroupedByDate: function() {\r\n return this.option(\"groupByDate\") && this._isHorizontalGroupedWorkSpace() && this._getGroupCount() > 0\r\n },\r\n getCellIndexByDate: function(date, inAllDayRow) {\r\n var timeInterval = inAllDayRow ? 864e5 : this._getInterval();\r\n var dateTimeStamp = this._getIntervalBetween(date, inAllDayRow);\r\n var index = Math.floor(dateTimeStamp / timeInterval);\r\n if (inAllDayRow) {\r\n index = this._updateIndex(index)\r\n }\r\n if (index < 0) {\r\n index = 0\r\n }\r\n return index\r\n },\r\n getPositionShift: function(timeShift, isAllDay) {\r\n return {\r\n top: timeShift * this.getCellHeight(),\r\n left: 0,\r\n cellPosition: 0\r\n }\r\n },\r\n getTimeShift: function(date) {\r\n var currentDayStart = new Date(date);\r\n var cellDuration = this.getCellDuration();\r\n var currentDayEndHour = new Date(new Date(date).setHours(this.option(\"endDayHour\"), 0, 0));\r\n if (date.getTime() <= currentDayEndHour.getTime()) {\r\n currentDayStart.setHours(this.option(\"startDayHour\"), 0, 0, 0)\r\n }\r\n var currentDateTime = date.getTime();\r\n var currentDayStartTime = currentDayStart.getTime();\r\n var minTime = this._firstViewDate.getTime();\r\n return currentDateTime > minTime ? (currentDateTime - currentDayStartTime) % cellDuration / cellDuration : 0\r\n },\r\n _isSkippedData: function() {\r\n return false\r\n },\r\n getCoordinatesByDateInGroup: function(date, appointmentResources, inAllDayRow) {\r\n var indexes = this._getGroupIndexes(appointmentResources);\r\n var result = [];\r\n if (this._isSkippedData(date)) {\r\n return result\r\n }\r\n if (indexes.length) {\r\n for (var i = 0; i < indexes.length; i++) {\r\n result.push(this.getCoordinatesByDate(date, indexes[i], inAllDayRow))\r\n }\r\n } else {\r\n result.push(this.getCoordinatesByDate(date, 0, inAllDayRow))\r\n }\r\n return result\r\n },\r\n getDroppableCellIndex: function() {\r\n var $droppableCell = this._getDroppableCell();\r\n var $row = $droppableCell.parent();\r\n var rowIndex = $row.index();\r\n return rowIndex * $row.find(\"td\").length + $droppableCell.index()\r\n },\r\n getDataByDroppableCell: function() {\r\n var cellData = this.getCellData(this._getDroppableCell());\r\n var allDay = cellData.allDay;\r\n var startDate = cellData.startDate;\r\n var endDate = startDate && this.invoke(\"calculateAppointmentEndDate\", allDay, startDate);\r\n return {\r\n startDate: startDate,\r\n endDate: endDate,\r\n allDay: allDay,\r\n groups: cellData.groups\r\n }\r\n },\r\n getDateRange: function() {\r\n return [this.getStartViewDate(), this.getEndViewDateByEndDayHour()]\r\n },\r\n getCellWidth: function() {\r\n var cell = this._getCells().first().get(0);\r\n return cell && getBoundingRect(cell).width\r\n },\r\n getCellMinWidth: function() {\r\n return DATE_TABLE_MIN_CELL_WIDTH\r\n },\r\n getRoundedCellWidth: function(groupIndex, startIndex, cellCount) {\r\n if (groupIndex < 0) {\r\n return 0\r\n }\r\n var $row = this.$element().find(\".\" + this._getDateTableRowClass()).eq(0);\r\n var width = 0;\r\n var $cells = $row.find(\".\" + DATE_TABLE_CELL_CLASS);\r\n var totalCellCount = this._getCellCount() * groupIndex;\r\n cellCount = cellCount || this._getCellCount();\r\n if (!typeUtils.isDefined(startIndex)) {\r\n startIndex = totalCellCount\r\n }\r\n for (var i = startIndex; i < totalCellCount + cellCount; i++) {\r\n width += getBoundingRect($($cells).eq(i).get(0)).width\r\n }\r\n return width / (totalCellCount + cellCount - startIndex)\r\n },\r\n getCellHeight: function() {\r\n var cell = this._getCells().first().get(0);\r\n return cell && getBoundingRect(cell).height\r\n },\r\n getAllDayHeight: function() {\r\n var cell = this._getCells(true).first().get(0);\r\n return this.option(\"showAllDayPanel\") ? cell && getBoundingRect(cell).height || 0 : 0\r\n },\r\n getAllDayOffset: function() {\r\n return this._groupedStrategy.getAllDayOffset()\r\n },\r\n getMaxAllowedPosition: function() {\r\n if (!this._maxAllowedPosition) {\r\n var isRtl = this.option(\"rtlEnabled\");\r\n this._maxAllowedPosition = [];\r\n this._$dateTable.find(\"tr\").first().find(\"td:nth-child(\" + this._getCellCount() + \"n)\").each(function(_, cell) {\r\n var maxPosition = $(cell).position().left;\r\n if (!isRtl) {\r\n maxPosition += getBoundingRect(cell).width\r\n }\r\n this._maxAllowedPosition.push(Math.round(maxPosition))\r\n }.bind(this))\r\n }\r\n return this._maxAllowedPosition\r\n },\r\n getMaxAllowedVerticalPosition: function() {\r\n if (!this._maxAllowedVerticalPosition) {\r\n var that = this;\r\n this._maxAllowedVerticalPosition = [];\r\n var rows = this._getRowCount();\r\n this._$dateTable.find(\"tr:nth-child(\" + rows + \"n)\").each(function(_, row) {\r\n var maxPosition = $(row).position().top + getBoundingRect(row).height;\r\n that._maxAllowedVerticalPosition.push(Math.round(maxPosition))\r\n })\r\n }\r\n return this._maxAllowedVerticalPosition\r\n },\r\n getFixedContainer: function() {\r\n return this._$fixedContainer\r\n },\r\n getAllDayContainer: function() {\r\n return this._$allDayContainer\r\n },\r\n getCellIndexByCoordinates: function(coordinates, allDay) {\r\n var cellCount = this._getTotalCellCount(this._getGroupCount());\r\n var cellWidth = Math.floor(this._getWorkSpaceWidth() / cellCount);\r\n var cellHeight = allDay ? this.getAllDayHeight() : this.getCellHeight();\r\n var leftOffset = this._isRTL() || this.option(\"crossScrollingEnabled\") ? 0 : this.getWorkSpaceLeftOffset();\r\n var topIndex = Math.floor(Math.floor(coordinates.top) / Math.floor(cellHeight));\r\n var leftIndex = Math.floor((coordinates.left + 5 - leftOffset) / cellWidth);\r\n if (this._isRTL()) {\r\n leftIndex = cellCount - leftIndex - 1\r\n }\r\n return cellCount * topIndex + leftIndex\r\n },\r\n getStartViewDate: function() {\r\n return this._firstViewDate\r\n },\r\n getEndViewDate: function() {\r\n var dateOfLastViewCell = this.getDateOfLastViewCell();\r\n var endDateOfLastViewCell = this.calculateEndViewDate(dateOfLastViewCell);\r\n return this._adjustEndViewDateByDaylightDiff(dateOfLastViewCell, endDateOfLastViewCell)\r\n },\r\n getEndViewDateByEndDayHour: function() {\r\n var dateOfLastViewCell = this.getDateOfLastViewCell();\r\n var endTime = dateUtils.dateTimeFromDecimal(this.option(\"endDayHour\"));\r\n var endDateOfLastViewCell = new Date(dateOfLastViewCell.setHours(endTime.hours, endTime.minutes));\r\n return this._adjustEndViewDateByDaylightDiff(dateOfLastViewCell, endDateOfLastViewCell)\r\n },\r\n calculateEndViewDate: function(dateOfLastViewCell) {\r\n return new Date(dateOfLastViewCell.getTime() + this.getCellDuration())\r\n },\r\n _adjustEndViewDateByDaylightDiff: function(startDate, endDate) {\r\n var daylightDiff = timeZoneUtils.getDaylightOffsetInMs(startDate, endDate);\r\n var endDateOfLastViewCell = new Date(endDate.getTime() - daylightDiff);\r\n return new Date(endDateOfLastViewCell.getTime() - toMs(\"minute\"))\r\n },\r\n getDateOfLastViewCell: function() {\r\n var rowIndex = this._getRowCount() - 1;\r\n var cellIndex = this._getCellCount();\r\n if (this.isGroupedByDate()) {\r\n cellIndex = cellIndex * this._getGroupCount() - 1\r\n } else {\r\n cellIndex -= 1\r\n }\r\n return this._getDateByCellIndexes(rowIndex, cellIndex, true)\r\n },\r\n getCellDuration: function() {\r\n return 36e5 * this.option(\"hoursInterval\")\r\n },\r\n getIntervalDuration: function(allDay) {\r\n return allDay ? toMs(\"day\") : this.getCellDuration()\r\n },\r\n getVisibleDayDuration: function() {\r\n return this.option(\"hoursInterval\") * this._getCellCountInDay() * HOUR_MS\r\n },\r\n getGroupBounds: function(coordinates) {\r\n var cellCount = this._getCellCount();\r\n var $cells = this._getCells();\r\n var cellWidth = this.getCellWidth();\r\n var result = this._groupedStrategy.getGroupBoundsOffset(cellCount, $cells, cellWidth, coordinates);\r\n if (this._isRTL()) {\r\n var startOffset = result.left;\r\n result.left = result.right - 2 * cellWidth;\r\n result.right = startOffset + 2 * cellWidth\r\n }\r\n return result\r\n },\r\n needRecalculateResizableArea: function() {\r\n return this._isVerticalGroupedWorkSpace() && 0 !== this.getScrollable().scrollTop()\r\n },\r\n getCellDataByCoordinates: function(coordinates, allDay) {\r\n var key = JSON.stringify({\r\n top: coordinates.top,\r\n left: coordinates.left\r\n });\r\n var data = this.getCellDataCache(key);\r\n if (data) {\r\n return data\r\n }\r\n var $cells = this._getCells(allDay);\r\n var cellIndex = this.getCellIndexByCoordinates(coordinates, allDay);\r\n var $cell = $cells.eq(cellIndex);\r\n return this.getCellData($cell)\r\n },\r\n getVisibleBounds: function() {\r\n var result = {};\r\n var $scrollable = this.getScrollable().$element();\r\n var cellHeight = this.getCellHeight();\r\n var scrolledCellCount = this.getScrollableScrollTop() / cellHeight;\r\n var totalCellCount = scrolledCellCount + $scrollable.height() / cellHeight;\r\n result.top = {\r\n hours: Math.floor(scrolledCellCount * this.option(\"hoursInterval\")) + this.option(\"startDayHour\"),\r\n minutes: scrolledCellCount % 2 ? 30 : 0\r\n };\r\n result.bottom = {\r\n hours: Math.floor(totalCellCount * this.option(\"hoursInterval\")) + this.option(\"startDayHour\"),\r\n minutes: Math.floor(totalCellCount) % 2 ? 30 : 0\r\n };\r\n return result\r\n },\r\n updateScrollPosition: function(date) {\r\n date = this.invoke(\"convertDateByTimezone\", date);\r\n var bounds = this.getVisibleBounds();\r\n var startDateHour = date.getHours();\r\n var startDateMinutes = date.getMinutes();\r\n if (this.needUpdateScrollPosition(startDateHour, startDateMinutes, bounds, date)) {\r\n this.scrollToTime(startDateHour, startDateMinutes, date)\r\n }\r\n },\r\n needUpdateScrollPosition: function(hours, minutes, bounds) {\r\n var isUpdateNeeded = false;\r\n if (hours < bounds.top.hours || hours > bounds.bottom.hours) {\r\n isUpdateNeeded = true\r\n }\r\n if (hours === bounds.top.hours && minutes < bounds.top.minutes) {\r\n isUpdateNeeded = true\r\n }\r\n if (hours === bounds.bottom.hours && minutes > bounds.top.minutes) {\r\n isUpdateNeeded = true\r\n }\r\n return isUpdateNeeded\r\n },\r\n getGroupWidth: function(groupIndex) {\r\n var result = this._getCellCount() * this.getCellWidth();\r\n var position = this.getMaxAllowedPosition();\r\n var currentPosition = position[groupIndex];\r\n if (position.length && currentPosition) {\r\n if (this._isRTL()) {\r\n result = currentPosition - position[groupIndex + 1]\r\n } else {\r\n if (0 === groupIndex) {\r\n result = currentPosition\r\n } else {\r\n result = currentPosition - position[groupIndex - 1]\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n scrollToTime: function(hours, minutes, date) {\r\n var min = this.getStartViewDate();\r\n var max = this.getEndViewDate();\r\n if (date < min || date > max) {\r\n errors.log(\"W1008\", date);\r\n return\r\n }\r\n var coordinates = this._getScrollCoordinates(hours, minutes, date);\r\n var scrollable = this.getScrollable();\r\n scrollable.scrollBy({\r\n top: coordinates.top - scrollable.scrollTop(),\r\n left: 0\r\n })\r\n },\r\n getDistanceBetweenCells: function(startIndex, endIndex) {\r\n var result = 0;\r\n this.$element().find(\".\" + this._getDateTableRowClass()).first().find(\".\" + DATE_TABLE_CELL_CLASS).each(function(index) {\r\n if (index < startIndex || index > endIndex) {\r\n return true\r\n }\r\n result += getBoundingRect(this).width\r\n });\r\n return result\r\n },\r\n needApplyCollectorOffset: function() {\r\n return false\r\n },\r\n initDragBehavior: function(scheduler) {\r\n if (!this.dragBehavior && scheduler) {\r\n this.dragBehavior = new AppointmentDragBehavior(scheduler);\r\n this.dragBehavior.addTo(this.getWorkArea());\r\n this.dragBehavior.addTo(this.getAllDayContainer());\r\n this.dragBehavior.addTo(this._$allDayPanel)\r\n }\r\n },\r\n _isApplyCompactAppointmentOffset: function() {\r\n return this._supportCompactDropDownAppointments()\r\n },\r\n _supportCompactDropDownAppointments: function() {\r\n return true\r\n },\r\n _formatWeekday: function(date) {\r\n return formatWeekday(date)\r\n },\r\n _formatWeekdayAndDay: function(date) {\r\n return formatWeekday(date) + \" \" + dateLocalization.format(date, \"day\")\r\n },\r\n removeDroppableCellClass: function($cellElement) {\r\n ($cellElement || this._getDroppableCell()).removeClass(DATE_TABLE_DROPPABLE_CELL_CLASS)\r\n }\r\n}).include(publisherMixin);\r\nmodule.exports = SchedulerWorkSpace;\r\n","/**\r\n * DevExtreme (ui/scheduler/rendering_strategies/ui.scheduler.appointments.strategy.horizontal.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _uiSchedulerAppointmentsStrategy = require(\"./ui.scheduler.appointments.strategy.base\");\r\nvar _uiSchedulerAppointmentsStrategy2 = _interopRequireDefault(_uiSchedulerAppointmentsStrategy);\r\nvar _date = require(\"../../../core/utils/date\");\r\nvar _date2 = _interopRequireDefault(_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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar DEFAULT_APPOINTMENT_HEIGHT = 60;\r\nvar MIN_APPOINTMENT_HEIGHT = 35;\r\nvar DROP_DOWN_BUTTON_OFFSET = 2;\r\nvar toMs = _date2.default.dateToMilliseconds;\r\nvar HorizontalRenderingStrategy = function(_BaseAppointmentsStra) {\r\n _inherits(HorizontalRenderingStrategy, _BaseAppointmentsStra);\r\n var _super = _createSuper(HorizontalRenderingStrategy);\r\n\r\n function HorizontalRenderingStrategy() {\r\n _classCallCheck(this, HorizontalRenderingStrategy);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(HorizontalRenderingStrategy, [{\r\n key: \"_needVerifyItemSize\",\r\n value: function() {\r\n return true\r\n }\r\n }, {\r\n key: \"calculateAppointmentWidth\",\r\n value: function(appointment, position, isRecurring) {\r\n var cellWidth = this.getDefaultCellWidth() || this.getAppointmentMinSize();\r\n var allDay = this.instance.fire(\"getField\", \"allDay\", appointment);\r\n var startDate = this.startDate(appointment, false, position);\r\n var endDate = this.endDate(appointment, position, isRecurring, false);\r\n var appointmentDuration = this._getAppointmentDurationInMs(startDate, endDate, allDay);\r\n appointmentDuration = this._adjustDurationByDaylightDiff(appointmentDuration, startDate, endDate);\r\n var cellDuration = this.instance.getAppointmentDurationInMinutes() * toMs(\"minute\");\r\n var durationInCells = appointmentDuration / cellDuration;\r\n var width = this.cropAppointmentWidth(durationInCells * cellWidth, cellWidth);\r\n return width\r\n }\r\n }, {\r\n key: \"_needAdjustDuration\",\r\n value: function(diff) {\r\n return diff < 0\r\n }\r\n }, {\r\n key: \"getAppointmentGeometry\",\r\n value: function(coordinates) {\r\n var result = this._customizeAppointmentGeometry(coordinates);\r\n return _get(_getPrototypeOf(HorizontalRenderingStrategy.prototype), \"getAppointmentGeometry\", this).call(this, result)\r\n }\r\n }, {\r\n key: \"_customizeAppointmentGeometry\",\r\n value: function(coordinates) {\r\n var config = this._calculateGeometryConfig(coordinates);\r\n return this._customizeCoordinates(coordinates, config.height, config.appointmentCountPerCell, config.offset)\r\n }\r\n }, {\r\n key: \"_getOffsets\",\r\n value: function() {\r\n return {\r\n unlimited: 0,\r\n auto: 0\r\n }\r\n }\r\n }, {\r\n key: \"_getCompactLeftCoordinate\",\r\n value: function(itemLeft, index) {\r\n var cellWidth = this.getDefaultCellWidth() || this.getAppointmentMinSize();\r\n return itemLeft + cellWidth * index\r\n }\r\n }, {\r\n key: \"_getMaxHeight\",\r\n value: function() {\r\n return this.getDefaultCellHeight() || this.getAppointmentMinSize()\r\n }\r\n }, {\r\n key: \"_getAppointmentCount\",\r\n value: function(overlappingMode, coordinates) {\r\n return this._getMaxAppointmentCountPerCellByType(false)\r\n }\r\n }, {\r\n key: \"_getAppointmentDefaultHeight\",\r\n value: function() {\r\n return DEFAULT_APPOINTMENT_HEIGHT\r\n }\r\n }, {\r\n key: \"_getAppointmentMinHeight\",\r\n value: function() {\r\n return MIN_APPOINTMENT_HEIGHT\r\n }\r\n }, {\r\n key: \"_sortCondition\",\r\n value: function(a, b) {\r\n return this._columnCondition(a, b)\r\n }\r\n }, {\r\n key: \"_getOrientation\",\r\n value: function() {\r\n return [\"left\", \"right\", \"top\"]\r\n }\r\n }, {\r\n key: \"_getMaxAppointmentWidth\",\r\n value: function(startDate) {\r\n return this.instance.fire(\"getMaxAppointmentWidth\", {\r\n date: startDate\r\n })\r\n }\r\n }, {\r\n key: \"getDropDownAppointmentWidth\",\r\n value: function() {\r\n return this.getDefaultCellWidth() - 2 * DROP_DOWN_BUTTON_OFFSET\r\n }\r\n }, {\r\n key: \"getDeltaTime\",\r\n value: function(args, initialSize) {\r\n var deltaTime = 0;\r\n var deltaWidth = args.width - initialSize.width;\r\n deltaTime = toMs(\"minute\") * Math.round(deltaWidth / this.getDefaultCellWidth() * this.instance.getAppointmentDurationInMinutes());\r\n return deltaTime\r\n }\r\n }, {\r\n key: \"isAllDay\",\r\n value: function(appointmentData) {\r\n return this.instance.fire(\"getField\", \"allDay\", appointmentData)\r\n }\r\n }, {\r\n key: \"needSeparateAppointment\",\r\n value: function() {\r\n return this.instance.fire(\"isGroupedByDate\")\r\n }\r\n }]);\r\n return HorizontalRenderingStrategy\r\n}(_uiSchedulerAppointmentsStrategy2.default);\r\nmodule.exports = HorizontalRenderingStrategy;\r\n","/**\r\n * DevExtreme (ui/scheduler/shaders/ui.scheduler.current_time_shader.vertical.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _renderer = require(\"../../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _uiScheduler = require(\"../shaders/ui.scheduler.current_time_shader\");\r\nvar _uiScheduler2 = _interopRequireDefault(_uiScheduler);\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar DATE_TIME_SHADER_ALL_DAY_CLASS = \"dx-scheduler-date-time-shader-all-day\";\r\nvar DATE_TIME_SHADER_TOP_CLASS = \"dx-scheduler-date-time-shader-top\";\r\nvar DATE_TIME_SHADER_BOTTOM_CLASS = \"dx-scheduler-date-time-shader-bottom\";\r\nvar VerticalCurrentTimeShader = function(_CurrentTimeShader) {\r\n _inherits(VerticalCurrentTimeShader, _CurrentTimeShader);\r\n var _super = _createSuper(VerticalCurrentTimeShader);\r\n\r\n function VerticalCurrentTimeShader() {\r\n _classCallCheck(this, VerticalCurrentTimeShader);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(VerticalCurrentTimeShader, [{\r\n key: \"renderShader\",\r\n value: function() {\r\n var shaderHeight = this._getShaderHeight();\r\n var maxHeight = this._getShaderMaxHeight();\r\n var isSolidShader = shaderHeight > maxHeight;\r\n if (shaderHeight >= 0) {\r\n if (shaderHeight > maxHeight) {\r\n shaderHeight = maxHeight\r\n }\r\n this._$shader.height(shaderHeight);\r\n var groupCount = this._workSpace._getGroupCount() || 1;\r\n if (this._workSpace.isGroupedByDate()) {\r\n this._renderGroupedByDateShaderParts(groupCount, shaderHeight, maxHeight, isSolidShader)\r\n } else {\r\n this._renderShaderParts(groupCount, shaderHeight, maxHeight, isSolidShader)\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"_renderShaderParts\",\r\n value: function(groupCount, shaderHeight, maxHeight, isSolidShader) {\r\n for (var i = 0; i < groupCount; i++) {\r\n var shaderWidth = this._getShaderWidth(i);\r\n this._renderTopShader(this._$shader, shaderHeight, shaderWidth, i);\r\n !isSolidShader && this._renderBottomShader(this._$shader, maxHeight - shaderHeight, shaderWidth, i);\r\n this._renderAllDayShader(shaderWidth, i)\r\n }\r\n }\r\n }, {\r\n key: \"_renderGroupedByDateShaderParts\",\r\n value: function(groupCount, shaderHeight, maxHeight, isSolidShader) {\r\n var shaderWidth = this._getShaderWidth(0);\r\n var bottomShaderWidth = (shaderWidth - this._workSpace.getCellWidth()) * groupCount + this._workSpace.getCellWidth();\r\n this._renderTopShader(this._$shader, shaderHeight, shaderWidth * groupCount, 0);\r\n !isSolidShader && this._renderBottomShader(this._$shader, maxHeight - shaderHeight, bottomShaderWidth, 0);\r\n this._renderAllDayShader(shaderWidth * groupCount, 0)\r\n }\r\n }, {\r\n key: \"_renderTopShader\",\r\n value: function($shader, height, width, i) {\r\n this._$topShader = (0, _renderer2.default)(\"
\").addClass(DATE_TIME_SHADER_TOP_CLASS);\r\n width && this._$topShader.width(width) && this._$topShader.height(height);\r\n this._$topShader.css(\"marginTop\", this._getShaderTopOffset(i));\r\n this._$topShader.css(\"left\", this._getShaderOffset(i, width));\r\n $shader.append(this._$topShader)\r\n }\r\n }, {\r\n key: \"_renderBottomShader\",\r\n value: function($shader, height, width, i) {\r\n this._$bottomShader = (0, _renderer2.default)(\"
\").addClass(DATE_TIME_SHADER_BOTTOM_CLASS);\r\n this._$bottomShader.width(width - this._workSpace.getCellWidth()) && this._$bottomShader.height(height);\r\n this._$bottomShader.css(\"left\", this._getShaderOffset(i, width - this._workSpace.getCellWidth()));\r\n $shader.append(this._$bottomShader)\r\n }\r\n }, {\r\n key: \"_renderAllDayShader\",\r\n value: function(shaderWidth, i) {\r\n if (this._workSpace.option(\"showAllDayPanel\")) {\r\n this._$allDayIndicator = (0, _renderer2.default)(\"
\").addClass(DATE_TIME_SHADER_ALL_DAY_CLASS);\r\n this._$allDayIndicator.height(this._workSpace.getAllDayHeight());\r\n this._$allDayIndicator.width(shaderWidth);\r\n this._$allDayIndicator.css(\"left\", this._getShaderOffset(i, shaderWidth));\r\n this._workSpace._$allDayPanel.prepend(this._$allDayIndicator)\r\n }\r\n }\r\n }, {\r\n key: \"_getShaderOffset\",\r\n value: function(i, width) {\r\n return this._workSpace.getGroupedStrategy().getShaderOffset(i, width)\r\n }\r\n }, {\r\n key: \"_getShaderTopOffset\",\r\n value: function(i) {\r\n return this._workSpace.getGroupedStrategy().getShaderTopOffset(i)\r\n }\r\n }, {\r\n key: \"_getShaderHeight\",\r\n value: function(i, width) {\r\n return this._workSpace.getGroupedStrategy().getShaderHeight()\r\n }\r\n }, {\r\n key: \"_getShaderMaxHeight\",\r\n value: function(i, width) {\r\n return this._workSpace.getGroupedStrategy().getShaderMaxHeight()\r\n }\r\n }, {\r\n key: \"_getShaderWidth\",\r\n value: function(i) {\r\n return this._workSpace.getGroupedStrategy().getShaderWidth(i)\r\n }\r\n }, {\r\n key: \"clean\",\r\n value: function() {\r\n _get(_getPrototypeOf(VerticalCurrentTimeShader.prototype), \"clean\", this).call(this);\r\n this._workSpace && this._workSpace._$allDayPanel && this._workSpace._$allDayPanel.find(\".\" + DATE_TIME_SHADER_ALL_DAY_CLASS).remove()\r\n }\r\n }]);\r\n return VerticalCurrentTimeShader\r\n}(_uiScheduler2.default);\r\nmodule.exports = VerticalCurrentTimeShader;\r\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.work_space_day.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _component_registrator = require(\"../../../core/component_registrator\");\r\nvar _component_registrator2 = _interopRequireDefault(_component_registrator);\r\nvar _uiScheduler = require(\"./ui.scheduler.work_space_vertical\");\r\nvar _uiScheduler2 = _interopRequireDefault(_uiScheduler);\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar DAY_CLASS = \"dx-scheduler-work-space-day\";\r\nvar SchedulerWorkSpaceDay = function(_SchedulerWorkSpaceVe) {\r\n _inherits(SchedulerWorkSpaceDay, _SchedulerWorkSpaceVe);\r\n var _super = _createSuper(SchedulerWorkSpaceDay);\r\n\r\n function SchedulerWorkSpaceDay() {\r\n _classCallCheck(this, SchedulerWorkSpaceDay);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(SchedulerWorkSpaceDay, [{\r\n key: \"_getElementClass\",\r\n value: function() {\r\n return DAY_CLASS\r\n }\r\n }, {\r\n key: \"_getRowCount\",\r\n value: function() {\r\n return this._getCellCountInDay()\r\n }\r\n }, {\r\n key: \"_getCellCount\",\r\n value: function() {\r\n return this.option(\"intervalCount\")\r\n }\r\n }, {\r\n key: \"_setFirstViewDate\",\r\n value: function() {\r\n this._firstViewDate = this._getViewStartByOptions();\r\n this._setStartDayHour(this._firstViewDate)\r\n }\r\n }, {\r\n key: \"_getDateByIndex\",\r\n value: function(headerIndex) {\r\n if (1 === this.option(\"intervalCount\")) {\r\n return this._firstViewDate\r\n }\r\n var resultDate = new Date(this._firstViewDate);\r\n resultDate.setDate(this._firstViewDate.getDate() + headerIndex);\r\n return resultDate\r\n }\r\n }, {\r\n key: \"_renderDateHeader\",\r\n value: function() {\r\n return 1 === this.option(\"intervalCount\") ? null : _get(_getPrototypeOf(SchedulerWorkSpaceDay.prototype), \"_renderDateHeader\", this).call(this)\r\n }\r\n }]);\r\n return SchedulerWorkSpaceDay\r\n}(_uiScheduler2.default);\r\n(0, _component_registrator2.default)(\"dxSchedulerWorkSpaceDay\", SchedulerWorkSpaceDay);\r\nmodule.exports = SchedulerWorkSpaceDay;\r\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agenda.vue?vue&type=style&index=0&id=d9bafc72&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agenda.vue?vue&type=style&index=0&id=d9bafc72&scoped=true&lang=css&\"","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.work_space_vertical.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _renderer = require(\"../../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _iterator = require(\"../../../core/utils/iterator\");\r\nvar _uiSchedulerWork_space = require(\"./ui.scheduler.work_space.indicator\");\r\nvar _uiSchedulerWork_space2 = _interopRequireDefault(_uiSchedulerWork_space);\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar SchedulerWorkspaceVertical = function(_SchedulerWorkSpace) {\r\n _inherits(SchedulerWorkspaceVertical, _SchedulerWorkSpace);\r\n var _super = _createSuper(SchedulerWorkspaceVertical);\r\n\r\n function SchedulerWorkspaceVertical() {\r\n _classCallCheck(this, SchedulerWorkspaceVertical);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(SchedulerWorkspaceVertical, [{\r\n key: \"_getCellsBetween\",\r\n value: function($first, $last) {\r\n if (this._hasAllDayClass($last)) {\r\n return _get(_getPrototypeOf(SchedulerWorkspaceVertical.prototype), \"_getCellsBetween\", this).call(this, $first, $last)\r\n }\r\n var $cells = this._getCells();\r\n var firstColumn = $first.index();\r\n var firstRow = $first.parent().index();\r\n var lastColumn = $last.index();\r\n var lastRow = $last.parent().index();\r\n var groupCount = this._getGroupCount();\r\n var cellCount = groupCount > 0 ? this._getTotalCellCount(groupCount) : this._getCellCount();\r\n var rowCount = this._getTotalRowCount(groupCount);\r\n var result = [];\r\n for (var i = 0; i < cellCount; i++) {\r\n for (var j = 0; j < rowCount; j++) {\r\n var cell = $cells.get(cellCount * j + i);\r\n result.push(cell)\r\n }\r\n }\r\n var lastCellGroup = this.getCellData($last).groups;\r\n var indexesDifference = this.option(\"showAllDayPanel\") && this._isVerticalGroupedWorkSpace() ? this._getGroupIndexByResourceId(lastCellGroup) + 1 : 0;\r\n var newFirstIndex = rowCount * firstColumn + firstRow - indexesDifference;\r\n var newLastIndex = rowCount * lastColumn + lastRow - indexesDifference;\r\n if (newFirstIndex > newLastIndex) {\r\n var buffer = newFirstIndex;\r\n newFirstIndex = newLastIndex;\r\n newLastIndex = buffer\r\n }\r\n $cells = (0, _renderer2.default)(result).slice(newFirstIndex, newLastIndex + 1);\r\n if (this._getGroupCount()) {\r\n var arr = [];\r\n var focusedGroupIndex = this._getGroupIndexByCell($first);\r\n (0, _iterator.each)($cells, function(_, cell) {\r\n var groupIndex = this._getGroupIndexByCell((0, _renderer2.default)(cell));\r\n if (focusedGroupIndex === groupIndex) {\r\n arr.push(cell)\r\n }\r\n }.bind(this));\r\n $cells = (0, _renderer2.default)(arr)\r\n }\r\n return $cells\r\n }\r\n }, {\r\n key: \"_getCellFromNextColumn\",\r\n value: function(direction, isMultiSelection) {\r\n var $nextCell = _get(_getPrototypeOf(SchedulerWorkspaceVertical.prototype), \"_getCellFromNextColumn\", this).call(this, direction, isMultiSelection);\r\n var $focusedCell = this._$focusedCell;\r\n if ($focusedCell.parent().index() !== $nextCell.parent().index() && isMultiSelection) {\r\n $nextCell = $focusedCell\r\n }\r\n return $nextCell\r\n }\r\n }, {\r\n key: \"_getFormat\",\r\n value: function() {\r\n return this._formatWeekdayAndDay\r\n }\r\n }]);\r\n return SchedulerWorkspaceVertical\r\n}(_uiSchedulerWork_space2.default);\r\nmodule.exports = SchedulerWorkspaceVertical;\r\n","/**\r\n * DevExtreme (ui/scheduler/utils.recurrence.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar errors = require(\"../../core/errors\");\r\nvar extend = require(\"../../core/utils/extend\").extend;\r\nvar each = require(\"../../core/utils/iterator\").each;\r\nvar inArray = require(\"../../core/utils/array\").inArray;\r\nvar isDefined = require(\"../../core/utils/type\").isDefined;\r\nvar dateUtils = require(\"../../core/utils/date\");\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar leastDaysInWeek = 4;\r\nvar ruleNames = [\"freq\", \"interval\", \"byday\", \"byweekno\", \"byyearday\", \"bymonth\", \"bymonthday\", \"count\", \"until\", \"byhour\", \"byminute\", \"bysecond\", \"bysetpos\", \"wkst\"];\r\nvar freqNames = [\"DAILY\", \"WEEKLY\", \"MONTHLY\", \"YEARLY\", \"SECONDLY\", \"MINUTELY\", \"HOURLY\"];\r\nvar days = {\r\n SU: 0,\r\n MO: 1,\r\n TU: 2,\r\n WE: 3,\r\n TH: 4,\r\n FR: 5,\r\n SA: 6\r\n};\r\nvar daysNames = {\r\n 0: \"SU\",\r\n 1: \"MO\",\r\n 2: \"TU\",\r\n 3: \"WE\",\r\n 4: \"TH\",\r\n 5: \"FR\",\r\n 6: \"SA\"\r\n};\r\nvar intervalMap = {\r\n secondly: \"seconds\",\r\n minutely: \"minutes\",\r\n hourly: \"hours\",\r\n daily: \"days\",\r\n weekly: \"weeks\",\r\n monthly: \"months\",\r\n yearly: \"years\"\r\n};\r\nvar resultUtils = {};\r\nvar dateSetterMap = {\r\n bysecond: function(date, value) {\r\n date.setSeconds(value)\r\n },\r\n byminute: function(date, value) {\r\n date.setMinutes(value)\r\n },\r\n byhour: function(date, value) {\r\n date.setHours(value)\r\n },\r\n bymonth: function(date, value) {\r\n date.setMonth(value)\r\n },\r\n bymonthday: function(date, value) {\r\n if (value < 0) {\r\n var initialDate = new Date(date);\r\n setDateByNegativeValue(initialDate, 1, -1);\r\n var daysInMonth = initialDate.getDate();\r\n if (daysInMonth >= Math.abs(value)) {\r\n setDateByNegativeValue(date, 1, value)\r\n } else {\r\n setDateByNegativeValue(date, 2, value)\r\n }\r\n } else {\r\n if (value <= dateUtils.getLastMonthDay(date)) {\r\n date.setDate(value)\r\n } else {\r\n markWrongDate(date)\r\n }\r\n }\r\n },\r\n byday: function(date, byDay, appointmentWeekStart, frequency, firstDayOfWeek) {\r\n var appointmentDayOfWeek = date.getDay();\r\n var weekStart = days[appointmentWeekStart];\r\n byDay += byDay >= weekStart === weekStart > appointmentDayOfWeek ? 7 : 0;\r\n date.setDate(date.getDate() - appointmentDayOfWeek + byDay)\r\n },\r\n byweekno: function(date, weekNumber, weekStart) {\r\n var initialDate = new Date(date);\r\n var firstYearDate = new Date(initialDate.setMonth(0, 1));\r\n var dayShift = firstYearDate.getDay() - days[weekStart];\r\n var firstDayOfYear = firstYearDate.getTime() - dayShift * toMs(\"day\");\r\n var newFirstYearDate = dayShift + 1;\r\n if (newFirstYearDate > leastDaysInWeek) {\r\n date.setTime(firstDayOfYear + 7 * weekNumber * toMs(\"day\"))\r\n } else {\r\n date.setTime(firstDayOfYear + 7 * (weekNumber - 1) * toMs(\"day\"))\r\n }\r\n var timezoneDiff = (date.getTimezoneOffset() - firstYearDate.getTimezoneOffset()) * toMs(\"minute\");\r\n timezoneDiff && date.setTime(date.getTime() + timezoneDiff)\r\n },\r\n byyearday: function(date, dayOfYear) {\r\n date.setMonth(0, 1);\r\n date.setDate(dayOfYear)\r\n }\r\n};\r\n\r\nfunction setDateByNegativeValue(date, month, value) {\r\n var initialDate = new Date(date);\r\n date.setMonth(date.getMonth() + month);\r\n if (date.getMonth() - initialDate.getMonth() > month) {\r\n date.setDate(value + 1)\r\n }\r\n date.setDate(value + 1)\r\n}\r\nvar dateGetterMap = {\r\n bysecond: function(date) {\r\n return date.getSeconds()\r\n },\r\n byminute: function(date) {\r\n return date.getMinutes()\r\n },\r\n byhour: function(date) {\r\n return date.getHours()\r\n },\r\n bymonth: function(date) {\r\n return date.getMonth()\r\n },\r\n bymonthday: function(date) {\r\n return date.getDate()\r\n },\r\n byday: function(date) {\r\n return date.getDay()\r\n },\r\n byweekno: function(date, weekStart) {\r\n var current = new Date(date);\r\n var diff = leastDaysInWeek - current.getDay() + days[weekStart] - 1;\r\n var dayInMilliseconds = toMs(\"day\");\r\n if (date.getDay() < days[weekStart]) {\r\n diff -= 7\r\n }\r\n current.setHours(0, 0, 0);\r\n current.setDate(current.getDate() + diff);\r\n var yearStart = new Date(current.getFullYear(), 0, 1);\r\n var timezoneDiff = (yearStart.getTimezoneOffset() - current.getTimezoneOffset()) * toMs(\"minute\");\r\n var daysFromYearStart = 1 + (current - yearStart + timezoneDiff) / dayInMilliseconds;\r\n return Math.ceil(daysFromYearStart / 7)\r\n },\r\n byyearday: function(date) {\r\n var yearStart = new Date(date.getFullYear(), 0, 0);\r\n var timezoneDiff = date.getTimezoneOffset() - yearStart.getTimezoneOffset();\r\n var diff = date - yearStart - timezoneDiff * toMs(\"minute\");\r\n var dayLength = toMs(\"day\");\r\n return Math.floor(diff / dayLength)\r\n }\r\n};\r\n\r\nfunction getTimeZoneOffset() {\r\n return (new Date).getTimezoneOffset()\r\n}\r\nvar dateInRecurrenceRange = function(options) {\r\n var result = [];\r\n if (options.rule) {\r\n result = getDatesByRecurrence(options)\r\n }\r\n return !!result.length\r\n};\r\nvar normalizeInterval = function(rule) {\r\n var interval = rule.interval;\r\n var freq = rule.freq;\r\n var intervalObject = {};\r\n var intervalField = intervalMap[freq.toLowerCase()];\r\n if (\"MONTHLY\" === freq && rule.byday) {\r\n intervalField = intervalMap.daily\r\n }\r\n intervalObject[intervalField] = interval;\r\n return intervalObject\r\n};\r\nvar getDatesByRecurrenceException = function(ruleValues, date) {\r\n var result = [];\r\n for (var i = 0, len = ruleValues.length; i < len; i++) {\r\n result[i] = getDateByAsciiString(ruleValues[i], date)\r\n }\r\n return result\r\n};\r\nvar dateIsRecurrenceException = function(date, recurrenceException) {\r\n var result = false;\r\n if (!recurrenceException) {\r\n return result\r\n }\r\n var splitDates = recurrenceException.split(\",\");\r\n var exceptDates = getDatesByRecurrenceException(splitDates, date);\r\n var shortFormat = /\\d{8}$/;\r\n for (var i = 0, len = exceptDates.length; i < len; i++) {\r\n if (splitDates[i].match(shortFormat)) {\r\n var diffs = getDatePartDiffs(date, exceptDates[i]);\r\n if (0 === diffs.years && 0 === diffs.months && 0 === diffs.days) {\r\n result = true\r\n }\r\n } else {\r\n if (date.getTime() === exceptDates[i].getTime()) {\r\n result = true\r\n }\r\n }\r\n }\r\n return result\r\n};\r\nvar doNextIteration = function(date, startIntervalDate, endIntervalDate, recurrenceRule, iterationCount) {\r\n var matchCountIsCorrect = true;\r\n endIntervalDate = endIntervalDate.getTime();\r\n if (recurrenceRule.until) {\r\n if (recurrenceRule.until.getTime() < endIntervalDate) {\r\n endIntervalDate = recurrenceRule.until.getTime()\r\n }\r\n }\r\n if (recurrenceRule.count) {\r\n if (iterationCount === recurrenceRule.count) {\r\n matchCountIsCorrect = false\r\n }\r\n }\r\n var dateInInterval = date.getTime() <= endIntervalDate;\r\n return dateInInterval && matchCountIsCorrect\r\n};\r\n\r\nfunction getDatesByRecurrence(options) {\r\n var result = [];\r\n var recurrenceRule = getRecurrenceRule(options.rule);\r\n var iterationResult = {};\r\n var rule = recurrenceRule.rule;\r\n var recurrenceStartDate = options.start;\r\n var maxDate = correctMaxDate(options.max, rule);\r\n if (!recurrenceRule.isValid || !rule.freq) {\r\n return result\r\n }\r\n rule.interval = normalizeInterval(rule);\r\n var dateRules = splitDateRules(rule, options.firstDayOfWeek);\r\n var duration = options.end ? options.end.getTime() - options.start.getTime() : toMs(\"day\");\r\n var config = {\r\n exception: options.exception,\r\n min: options.min,\r\n dateRules: dateRules,\r\n rule: rule,\r\n recurrenceStartDate: recurrenceStartDate,\r\n recurrenceEndDate: options.end,\r\n duration: duration\r\n };\r\n if (dateRules.length && rule.count) {\r\n var iteration = 0;\r\n getDatesByCount(dateRules, new Date(recurrenceStartDate), new Date(recurrenceStartDate), rule).forEach(function(currentDate, i) {\r\n if (currentDate < maxDate) {\r\n iteration++;\r\n iterationResult = pushToResult(iteration, iterationResult, currentDate, i, config, true)\r\n }\r\n })\r\n } else {\r\n getDatesByRules(dateRules, new Date(recurrenceStartDate), rule).forEach(function(currentDate, i) {\r\n var iteration = 0;\r\n while (doNextIteration(currentDate, recurrenceStartDate, maxDate, rule, iteration)) {\r\n iteration++;\r\n iterationResult = pushToResult(iteration, iterationResult, currentDate, i, config);\r\n currentDate = incrementDate(currentDate, recurrenceStartDate, rule, i)\r\n }\r\n })\r\n }\r\n if (rule.bysetpos) {\r\n each(iterationResult, function(iterationIndex, iterationDates) {\r\n iterationResult[iterationIndex] = filterDatesBySetPos(iterationDates, rule.bysetpos)\r\n })\r\n }\r\n each(iterationResult, function(_, iterationDates) {\r\n result = result.concat(iterationDates)\r\n });\r\n result = result.filter(function(date) {\r\n return date <= options.max\r\n });\r\n result.sort(function(a, b) {\r\n return a - b\r\n });\r\n return result\r\n}\r\n\r\nfunction pushToResult(iteration, iterationResult, currentDate, i, config, verifiedField) {\r\n if (!iterationResult[iteration]) {\r\n iterationResult[iteration] = []\r\n }\r\n if (checkDate(currentDate, i, config, verifiedField)) {\r\n iterationResult[iteration].push(currentDate)\r\n }\r\n return iterationResult\r\n}\r\n\r\nfunction checkDate(currentDate, i, config, verifiedField) {\r\n if (!dateIsRecurrenceException(currentDate, config.exception)) {\r\n var duration = dateUtils.sameDate(currentDate, config.recurrenceEndDate) && config.recurrenceEndDate.getTime() > currentDate.getTime() ? config.recurrenceEndDate.getTime() - currentDate.getTime() : config.duration;\r\n if (currentDate.getTime() >= config.recurrenceStartDate.getTime() && currentDate.getTime() + duration > config.min.getTime()) {\r\n return verifiedField || checkDateByRule(currentDate, [config.dateRules[i]], config.rule.wkst)\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction filterDatesBySetPos(dates, bySetPos) {\r\n var resultArray = [];\r\n bySetPos.split(\",\").forEach(function(index) {\r\n index = Number(index);\r\n var dateIndex = index > 0 ? index - 1 : dates.length + index;\r\n if (dates[dateIndex]) {\r\n resultArray.push(dates[dateIndex])\r\n }\r\n });\r\n return resultArray\r\n}\r\n\r\nfunction correctMaxDate(maxDate, rule) {\r\n var newMaxDate = new Date(maxDate);\r\n switch (rule.freq) {\r\n case \"MONTHLY\":\r\n newMaxDate.setMonth(newMaxDate.getMonth() + 1);\r\n break;\r\n case \"YEARLY\":\r\n newMaxDate.setYear(newMaxDate.getYear() + 1)\r\n }\r\n return newMaxDate > maxDate ? newMaxDate : maxDate\r\n}\r\n\r\nfunction correctDate(originalDate, date) {\r\n if (originalDate.getDate() !== date) {\r\n originalDate.setDate(date)\r\n }\r\n}\r\n\r\nfunction incrementDate(date, originalStartDate, rule, iterationStep) {\r\n var initialDate = new Date(date);\r\n var needCorrect = true;\r\n date = dateUtils.addInterval(date, rule.interval);\r\n if (\"DAILY\" === rule.freq && !isDefined(rule.byhour) && originalStartDate.getHours() !== date.getHours()) {\r\n date = new Date(date.getTime() - (initialDate.getHours() - originalStartDate.getHours()) * toMs(\"hour\"))\r\n }\r\n if (\"MONTHLY\" === rule.freq && !rule.byday) {\r\n var expectedDate = originalStartDate.getDate();\r\n if (rule.bymonthday) {\r\n expectedDate = Number(rule.bymonthday.split(\",\")[iterationStep]);\r\n if (expectedDate < 0) {\r\n initialDate.setMonth(initialDate.getMonth() + 1, 1);\r\n dateSetterMap.bymonthday(initialDate, expectedDate);\r\n date = initialDate;\r\n needCorrect = false\r\n }\r\n }\r\n needCorrect && correctDate(date, expectedDate)\r\n }\r\n if (\"YEARLY\" === rule.freq) {\r\n if (rule.byyearday) {\r\n var dayNumber = Number(rule.byyearday.split(\",\")[iterationStep]);\r\n dateSetterMap.byyearday(date, dayNumber)\r\n }\r\n var dateRules = splitDateRules(rule);\r\n for (var field in dateRules[iterationStep]) {\r\n dateSetterMap[field] && dateSetterMap[field](date, dateRules[iterationStep][field], rule.wkst)\r\n }\r\n }\r\n return date\r\n}\r\n\r\nfunction getDatePartDiffs(date1, date2) {\r\n return {\r\n years: date1.getFullYear() - date2.getFullYear(),\r\n months: date1.getMonth() - date2.getMonth(),\r\n days: date1.getDate() - date2.getDate(),\r\n hours: date1.getHours() - date2.getHours(),\r\n minutes: date1.getMinutes() - date2.getMinutes(),\r\n seconds: date1.getSeconds() - date2.getSeconds()\r\n }\r\n}\r\n\r\nfunction getRecurrenceRule(recurrence) {\r\n var result = {\r\n rule: {},\r\n isValid: false\r\n };\r\n if (recurrence) {\r\n result.rule = parseRecurrenceRule(recurrence);\r\n result.isValid = validateRRule(result.rule, recurrence)\r\n }\r\n return result\r\n}\r\nvar loggedWarnings = [];\r\n\r\nfunction validateRRule(rule, recurrence) {\r\n if (brokenRuleNameExists(rule) || inArray(rule.freq, freqNames) === -1 || wrongCountRule(rule) || wrongIntervalRule(rule) || wrongDayOfWeek(rule) || wrongByMonthDayRule(rule) || wrongByMonth(rule) || wrongUntilRule(rule)) {\r\n logBrokenRule(recurrence);\r\n return false\r\n }\r\n return true\r\n}\r\n\r\nfunction wrongUntilRule(rule) {\r\n var wrongUntil = false;\r\n var until = rule.until;\r\n if (void 0 !== until && !(until instanceof Date)) {\r\n wrongUntil = true\r\n }\r\n return wrongUntil\r\n}\r\n\r\nfunction wrongCountRule(rule) {\r\n var wrongCount = false;\r\n var count = rule.count;\r\n if (count && \"string\" === typeof count) {\r\n wrongCount = true\r\n }\r\n return wrongCount\r\n}\r\n\r\nfunction wrongByMonthDayRule(rule) {\r\n var wrongByMonthDay = false;\r\n var byMonthDay = rule.bymonthday;\r\n if (byMonthDay && isNaN(parseInt(byMonthDay))) {\r\n wrongByMonthDay = true\r\n }\r\n return wrongByMonthDay\r\n}\r\n\r\nfunction wrongByMonth(rule) {\r\n var wrongByMonth = false;\r\n var byMonth = rule.bymonth;\r\n if (byMonth && isNaN(parseInt(byMonth))) {\r\n wrongByMonth = true\r\n }\r\n return wrongByMonth\r\n}\r\n\r\nfunction wrongIntervalRule(rule) {\r\n var wrongInterval = false;\r\n var interval = rule.interval;\r\n if (interval && \"string\" === typeof interval) {\r\n wrongInterval = true\r\n }\r\n return wrongInterval\r\n}\r\n\r\nfunction wrongDayOfWeek(rule) {\r\n var daysByRule = daysFromByDayRule(rule);\r\n var brokenDaysExist = false;\r\n each(daysByRule, function(_, day) {\r\n if (!Object.prototype.hasOwnProperty.call(days, day)) {\r\n brokenDaysExist = true;\r\n return false\r\n }\r\n });\r\n return brokenDaysExist\r\n}\r\n\r\nfunction brokenRuleNameExists(rule) {\r\n var brokenRuleExists = false;\r\n each(rule, function(ruleName) {\r\n if (inArray(ruleName, ruleNames) === -1) {\r\n brokenRuleExists = true;\r\n return false\r\n }\r\n });\r\n return brokenRuleExists\r\n}\r\n\r\nfunction logBrokenRule(recurrence) {\r\n if (inArray(recurrence, loggedWarnings) === -1) {\r\n errors.log(\"W0006\", recurrence);\r\n loggedWarnings.push(recurrence)\r\n }\r\n}\r\n\r\nfunction parseRecurrenceRule(recurrence) {\r\n var ruleObject = {};\r\n var ruleParts = recurrence.split(\";\");\r\n for (var i = 0, len = ruleParts.length; i < len; i++) {\r\n var rule = ruleParts[i].split(\"=\");\r\n var ruleName = rule[0].toLowerCase();\r\n var ruleValue = rule[1];\r\n ruleObject[ruleName] = ruleValue\r\n }\r\n var count = parseInt(ruleObject.count);\r\n if (!isNaN(count)) {\r\n ruleObject.count = count\r\n }\r\n if (ruleObject.interval) {\r\n var interval = parseInt(ruleObject.interval);\r\n if (!isNaN(interval)) {\r\n ruleObject.interval = interval\r\n }\r\n } else {\r\n ruleObject.interval = 1\r\n }\r\n if (ruleObject.freq && ruleObject.until) {\r\n ruleObject.until = getDateByAsciiString(ruleObject.until)\r\n }\r\n return ruleObject\r\n}\r\n\r\nfunction getDateByAsciiString(string, initialDate) {\r\n if (\"string\" !== typeof string) {\r\n return string\r\n }\r\n var arrayDate = string.match(/(\\d{4})(\\d{2})(\\d{2})(T(\\d{2})(\\d{2})(\\d{2}))?(Z)?/);\r\n if (!arrayDate) {\r\n return null\r\n }\r\n var isUTC = void 0 !== arrayDate[8];\r\n var currentOffset = initialDate ? initialDate.getTimezoneOffset() : resultUtils.getTimeZoneOffset();\r\n var date = new(Function.prototype.bind.apply(Date, prepareDateArrayToParse(arrayDate)));\r\n currentOffset = 6e4 * currentOffset;\r\n if (isUTC) {\r\n date = new Date(date.getTime() - currentOffset)\r\n }\r\n return date\r\n}\r\n\r\nfunction prepareDateArrayToParse(arrayDate) {\r\n arrayDate.shift();\r\n if (void 0 === arrayDate[3]) {\r\n arrayDate.splice(3)\r\n } else {\r\n arrayDate.splice(3, 1);\r\n arrayDate.splice(6)\r\n }\r\n arrayDate[1]--;\r\n arrayDate.unshift(null);\r\n return arrayDate\r\n}\r\n\r\nfunction daysFromByDayRule(rule) {\r\n var result = [];\r\n if (rule.byday) {\r\n if (Array.isArray(rule.byday)) {\r\n result = rule.byday\r\n } else {\r\n result = rule.byday.split(\",\")\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction getAsciiStringByDate(date) {\r\n var currentOffset = 6e4 * resultUtils.getTimeZoneOffset();\r\n date = new Date(date.getTime() + currentOffset);\r\n return date.getFullYear() + (\"0\" + (date.getMonth() + 1)).slice(-2) + (\"0\" + date.getDate()).slice(-2) + \"T\" + (\"0\" + date.getHours()).slice(-2) + (\"0\" + date.getMinutes()).slice(-2) + (\"0\" + date.getSeconds()).slice(-2) + \"Z\"\r\n}\r\n\r\nfunction splitDateRules(rule) {\r\n var firstDayOfWeek = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;\r\n var result = [];\r\n if (isDefined(firstDayOfWeek)) {\r\n rule.fdow = firstDayOfWeek\r\n }\r\n if (!rule.wkst) {\r\n rule.wkst = isDefined(firstDayOfWeek) ? daysNames[firstDayOfWeek] : \"MO\"\r\n }\r\n if (rule.byweekno && !rule.byday) {\r\n var dayNames = Object.keys(days);\r\n for (var i = 0; i < days[rule.wkst]; i++) {\r\n dayNames.push(dayNames.shift())\r\n }\r\n rule.byday = dayNames.join(\",\")\r\n }\r\n for (var field in dateSetterMap) {\r\n if (!rule[field]) {\r\n continue\r\n }\r\n var ruleFieldValues = rule[field].split(\",\");\r\n var ruleArray = getDateRuleArray(field, ruleFieldValues);\r\n result = result.length ? extendObjectArray(ruleArray, result) : ruleArray\r\n }\r\n return result\r\n}\r\n\r\nfunction getDateRuleArray(field, values) {\r\n var result = [];\r\n for (var i = 0, length = values.length; i < length; i++) {\r\n var dateRule = {};\r\n dateRule[field] = handleRuleFieldValue(field, values[i]);\r\n result.push(dateRule)\r\n }\r\n return result\r\n}\r\n\r\nfunction handleRuleFieldValue(field, value) {\r\n var result = parseInt(value);\r\n if (\"bymonth\" === field) {\r\n result -= 1\r\n }\r\n if (\"byday\" === field) {\r\n result = days[value]\r\n }\r\n return result\r\n}\r\n\r\nfunction extendObjectArray(firstArray, secondArray) {\r\n var result = [];\r\n for (var i = 0, firstArrayLength = firstArray.length; i < firstArrayLength; i++) {\r\n for (var j = 0, secondArrayLength = secondArray.length; j < secondArrayLength; j++) {\r\n result.push(extend({}, firstArray[i], secondArray[j]))\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction getDatesByRules(dateRules, startDate, rule) {\r\n var result = [];\r\n for (var i = 0, len = dateRules.length; i < len; i++) {\r\n var current = dateRules[i];\r\n var updatedDate = prepareDate(startDate, dateRules, rule.wkst);\r\n for (var field in current) {\r\n dateSetterMap[field] && dateSetterMap[field](updatedDate, current[field], rule.wkst, rule.freq, rule.fdow)\r\n }\r\n if (Array.isArray(updatedDate)) {\r\n result = result.concat(updatedDate)\r\n } else {\r\n var date = !isWrongDate(updatedDate) ? new Date(updatedDate) : updatedDate;\r\n result.push(date)\r\n }\r\n }\r\n if (!result.length) {\r\n result.push(startDate)\r\n }\r\n return result\r\n}\r\n\r\nfunction getDatesByCount(dateRules, startDate, recurrenceStartDate, rule) {\r\n var result = [];\r\n var count = rule.count;\r\n var counter = 0;\r\n var date = prepareDate(startDate, dateRules, rule.wkst);\r\n var _loop = function() {\r\n var dates = getDatesByRules(dateRules, date, rule);\r\n var checkedDates = [];\r\n dates.forEach(function(checkedDate) {\r\n if (!isWrongDate(checkedDate)) {\r\n if (checkedDate.getTime() >= recurrenceStartDate.getTime()) {\r\n checkedDates.push(checkedDate)\r\n }\r\n }\r\n });\r\n var length = checkedDates.length;\r\n counter += length;\r\n var delCount = counter - count;\r\n if (counter > count) {\r\n checkedDates.splice(length - delCount, delCount)\r\n }\r\n checkedDates.forEach(function(checkedDate) {\r\n return result.push(checkedDate)\r\n });\r\n var interval = rule.interval;\r\n if (\"days\" === Object.keys(interval)[0]) {\r\n interval = {\r\n weeks: 1\r\n }\r\n }\r\n date = dateUtils.addInterval(date, interval)\r\n };\r\n while (counter < count) {\r\n _loop()\r\n }\r\n return result\r\n}\r\n\r\nfunction prepareDate(startDate, dateRules, weekStartRule) {\r\n var date = new Date(startDate);\r\n var day = date.getDay();\r\n if (dateRules.length && isDefined(dateRules[0].byday)) {\r\n date.setDate(date.getDate() - day + days[weekStartRule] - (day < days[weekStartRule] ? 7 : 0))\r\n } else {\r\n date.setDate(1)\r\n }\r\n return date\r\n}\r\n\r\nfunction checkDateByRule(date, rules, weekStart) {\r\n var result = false;\r\n for (var i = 0; i < rules.length; i++) {\r\n var current = rules[i];\r\n var currentRuleResult = true;\r\n for (var field in current) {\r\n var processNegative = \"bymonthday\" === field && current[field] < 0;\r\n if (dateGetterMap[field] && !processNegative && current[field] !== dateGetterMap[field](date, weekStart)) {\r\n currentRuleResult = false\r\n }\r\n }\r\n result = result || currentRuleResult\r\n }\r\n return result || !rules.length\r\n}\r\n\r\nfunction markWrongDate(date) {\r\n date.isWrongDate = true\r\n}\r\n\r\nfunction isWrongDate(date) {\r\n return date.isWrongDate\r\n}\r\nvar getRecurrenceString = function(object) {\r\n if (!object || !object.freq) {\r\n return\r\n }\r\n var result = \"\";\r\n for (var field in object) {\r\n var value = object[field];\r\n if (\"interval\" === field && value < 2) {\r\n continue\r\n }\r\n if (\"until\" === field) {\r\n value = getAsciiStringByDate(value)\r\n }\r\n result += field + \"=\" + value + \";\"\r\n }\r\n result = result.substring(0, result.length - 1);\r\n return result.toUpperCase()\r\n};\r\nextend(resultUtils, {\r\n getRecurrenceString: getRecurrenceString,\r\n getRecurrenceRule: getRecurrenceRule,\r\n getAsciiStringByDate: getAsciiStringByDate,\r\n getDatesByRecurrence: getDatesByRecurrence,\r\n dateInRecurrenceRange: dateInRecurrenceRange,\r\n getDateByAsciiString: getDateByAsciiString,\r\n daysFromByDayRule: daysFromByDayRule,\r\n getTimeZoneOffset: getTimeZoneOffset\r\n});\r\nmodule.exports = resultUtils;\r\n","/**\r\n * DevExtreme (ui/scheduler.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nmodule.exports = require(\"./scheduler/ui.scheduler\");\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/scheduler/ui.scheduler.appointments.layout_manager.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _common = require(\"../../core/utils/common\");\r\nvar _uiSchedulerAppointmentsStrategy = require(\"./rendering_strategies/ui.scheduler.appointments.strategy.vertical\");\r\nvar _uiSchedulerAppointmentsStrategy2 = _interopRequireDefault(_uiSchedulerAppointmentsStrategy);\r\nvar _uiSchedulerAppointmentsStrategy3 = require(\"./rendering_strategies/ui.scheduler.appointments.strategy.horizontal\");\r\nvar _uiSchedulerAppointmentsStrategy4 = _interopRequireDefault(_uiSchedulerAppointmentsStrategy3);\r\nvar _uiSchedulerAppointmentsStrategy5 = require(\"./rendering_strategies/ui.scheduler.appointments.strategy.horizontal_month_line\");\r\nvar _uiSchedulerAppointmentsStrategy6 = _interopRequireDefault(_uiSchedulerAppointmentsStrategy5);\r\nvar _uiSchedulerAppointmentsStrategy7 = require(\"./rendering_strategies/ui.scheduler.appointments.strategy.horizontal_month\");\r\nvar _uiSchedulerAppointmentsStrategy8 = _interopRequireDefault(_uiSchedulerAppointmentsStrategy7);\r\nvar _uiSchedulerAppointmentsStrategy9 = require(\"./rendering_strategies/ui.scheduler.appointments.strategy.agenda\");\r\nvar _uiSchedulerAppointmentsStrategy10 = _interopRequireDefault(_uiSchedulerAppointmentsStrategy9);\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 _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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 RENDERING_STRATEGIES = {\r\n horizontal: _uiSchedulerAppointmentsStrategy4.default,\r\n horizontalMonth: _uiSchedulerAppointmentsStrategy8.default,\r\n horizontalMonthLine: _uiSchedulerAppointmentsStrategy6.default,\r\n vertical: _uiSchedulerAppointmentsStrategy2.default,\r\n agenda: _uiSchedulerAppointmentsStrategy10.default\r\n};\r\nvar AppointmentLayoutManager = function() {\r\n function AppointmentLayoutManager(instance, renderingStrategy) {\r\n _classCallCheck(this, AppointmentLayoutManager);\r\n this.instance = instance;\r\n renderingStrategy && this.initRenderingStrategy(renderingStrategy)\r\n }\r\n _createClass(AppointmentLayoutManager, [{\r\n key: \"getCellDimensions\",\r\n value: function(options) {\r\n if (this.instance._workSpace) {\r\n return {\r\n width: this.instance._workSpace.getCellWidth(),\r\n height: this.instance._workSpace.getCellHeight(),\r\n allDayHeight: this.instance._workSpace.getAllDayHeight()\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"getGroupOrientation\",\r\n value: function(options) {\r\n if (this.instance._workSpace) {\r\n options.callback(this.instance._workSpace._getRealGroupOrientation())\r\n }\r\n }\r\n }, {\r\n key: \"initRenderingStrategy\",\r\n value: function(renderingStrategy) {\r\n var Strategy = RENDERING_STRATEGIES[renderingStrategy];\r\n this._renderingStrategyInstance = new Strategy(this.instance);\r\n this.renderingStrategy = renderingStrategy\r\n }\r\n }, {\r\n key: \"createAppointmentsMap\",\r\n value: function(items) {\r\n var _this = this;\r\n var _this$getCellDimensio = this.getCellDimensions(),\r\n width = _this$getCellDimensio.width,\r\n height = _this$getCellDimensio.height,\r\n allDayHeight = _this$getCellDimensio.allDayHeight;\r\n this.instance._cellWidth = width;\r\n this.instance._cellHeight = height;\r\n this.instance._allDayCellHeight = allDayHeight;\r\n this.getGroupOrientation({\r\n callback: function(groupOrientation) {\r\n return _this.instance._groupOrientation = groupOrientation\r\n }\r\n });\r\n this._positionMap = this._renderingStrategyInstance.createTaskPositionMap(items);\r\n return this._createAppointmentsMapCore(items || [], this._positionMap)\r\n }\r\n }, {\r\n key: \"_createAppointmentsMapCore\",\r\n value: function(list, positionMap) {\r\n var _this2 = this;\r\n return list.map(function(data, index) {\r\n if (!_this2._renderingStrategyInstance.keepAppointmentSettings()) {\r\n delete data.settings\r\n }\r\n var appointmentSettings = positionMap[index];\r\n appointmentSettings.forEach(function(settings) {\r\n settings.direction = \"vertical\" === _this2.renderingStrategy && !settings.allDay ? \"vertical\" : \"horizontal\"\r\n });\r\n return {\r\n itemData: data,\r\n settings: appointmentSettings,\r\n needRepaint: true,\r\n needRemove: false\r\n }\r\n })\r\n }\r\n }, {\r\n key: \"_isDataChanged\",\r\n value: function(data) {\r\n var updatedData = this.instance.getUpdatedAppointment();\r\n return updatedData === data || this.instance.getUpdatedAppointmentKeys().some(function(item) {\r\n return data[item.key] === item.value\r\n })\r\n }\r\n }, {\r\n key: \"_isAppointmentShouldAppear\",\r\n value: function(currentAppointment, sourceAppointment) {\r\n return currentAppointment.needRepaint && sourceAppointment.needRemove\r\n }\r\n }, {\r\n key: \"_isSettingChanged\",\r\n value: function(settings, sourceSetting) {\r\n if (settings.length !== sourceSetting.length) {\r\n return true\r\n }\r\n for (var i = 0; i < settings.length; i++) {\r\n var newSettings = settings[i];\r\n var oldSettings = sourceSetting[i];\r\n if (oldSettings) {\r\n oldSettings.sortedIndex = newSettings.sortedIndex\r\n }\r\n if (!(0, _common.equalByValue)(newSettings, oldSettings)) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n }, {\r\n key: \"_getAssociatedSourceAppointment\",\r\n value: function(currentAppointment, sourceAppointments) {\r\n for (var i = 0; i < sourceAppointments.length; i++) {\r\n var item = sourceAppointments[i];\r\n if (item.itemData === currentAppointment.itemData) {\r\n return item\r\n }\r\n }\r\n return null\r\n }\r\n }, {\r\n key: \"_getDeletedAppointments\",\r\n value: function(currentAppointments, sourceAppointments) {\r\n var result = [];\r\n for (var i = 0; i < sourceAppointments.length; i++) {\r\n var sourceAppointment = sourceAppointments[i];\r\n var currentAppointment = this._getAssociatedSourceAppointment(sourceAppointment, currentAppointments);\r\n if (!currentAppointment) {\r\n sourceAppointment.needRemove = true;\r\n result.push(sourceAppointment)\r\n }\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"getRepaintedAppointments\",\r\n value: function(currentAppointments, sourceAppointments) {\r\n var _this3 = this;\r\n if (0 === sourceAppointments.length || \"agenda\" === this.renderingStrategy) {\r\n return currentAppointments\r\n }\r\n currentAppointments.forEach(function(appointment) {\r\n var sourceAppointment = _this3._getAssociatedSourceAppointment(appointment, sourceAppointments);\r\n if (sourceAppointment) {\r\n appointment.needRepaint = _this3._isDataChanged(appointment.itemData) || _this3._isSettingChanged(appointment.settings, sourceAppointment.settings) || _this3._isAppointmentShouldAppear(appointment, sourceAppointment)\r\n }\r\n });\r\n return currentAppointments.concat(this._getDeletedAppointments(currentAppointments, sourceAppointments))\r\n }\r\n }, {\r\n key: \"getRenderingStrategyInstance\",\r\n value: function() {\r\n return this._renderingStrategyInstance\r\n }\r\n }]);\r\n return AppointmentLayoutManager\r\n}();\r\nmodule.exports = AppointmentLayoutManager;\r\n","/**\r\n * DevExtreme (ui/button_group.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _renderer = require(\"../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _ui = require(\"./widget/ui.widget\");\r\nvar _ui2 = _interopRequireDefault(_ui);\r\nvar _button = require(\"./button\");\r\nvar _button2 = _interopRequireDefault(_button);\r\nvar _uiCollection_widget = require(\"./collection/ui.collection_widget.edit\");\r\nvar _uiCollection_widget2 = _interopRequireDefault(_uiCollection_widget);\r\nvar _component_registrator = require(\"../core/component_registrator\");\r\nvar _component_registrator2 = _interopRequireDefault(_component_registrator);\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _bindable_template = require(\"../core/templates/bindable_template\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar BUTTON_GROUP_CLASS = \"dx-buttongroup\";\r\nvar BUTTON_GROUP_WRAPPER_CLASS = BUTTON_GROUP_CLASS + \"-wrapper\";\r\nvar BUTTON_GROUP_ITEM_CLASS = BUTTON_GROUP_CLASS + \"-item\";\r\nvar BUTTON_GROUP_FIRST_ITEM_CLASS = BUTTON_GROUP_CLASS + \"-first-item\";\r\nvar BUTTON_GROUP_LAST_ITEM_CLASS = BUTTON_GROUP_CLASS + \"-last-item\";\r\nvar BUTTON_GROUP_ITEM_HAS_WIDTH = BUTTON_GROUP_ITEM_CLASS + \"-has-width\";\r\nvar SHAPE_STANDARD_CLASS = \"dx-shape-standard\";\r\nvar ButtonCollection = _uiCollection_widget2.default.inherit({\r\n _initTemplates: function() {\r\n var _this = this;\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new _bindable_template.BindableTemplate(function($container, data, model) {\r\n _this._prepareItemStyles($container);\r\n _this._createComponent($container, _button2.default, (0, _extend.extend)({}, model, data, _this._getBasicButtonOptions(), {\r\n _templateData: model,\r\n template: model.template || _this.option(\"buttonTemplate\")\r\n }))\r\n }, [\"text\", \"type\", \"icon\", \"disabled\", \"visible\", \"hint\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _getBasicButtonOptions: function() {\r\n return {\r\n focusStateEnabled: false,\r\n onClick: null,\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n itemTemplateProperty: null\r\n })\r\n },\r\n _prepareItemStyles: function($item) {\r\n var itemIndex = $item.data(\"dxItemIndex\");\r\n 0 === itemIndex && $item.addClass(BUTTON_GROUP_FIRST_ITEM_CLASS);\r\n var items = this.option(\"items\");\r\n items && itemIndex === items.length - 1 && $item.addClass(BUTTON_GROUP_LAST_ITEM_CLASS);\r\n $item.addClass(SHAPE_STANDARD_CLASS)\r\n },\r\n _renderItemContent: function(args) {\r\n args.container = (0, _renderer2.default)(args.container).parent();\r\n return this.callBase(args)\r\n },\r\n _renderItemContentByNode: function(args, $node) {\r\n args.container = (0, _renderer2.default)(args.container.children().first());\r\n return this.callBase(args, $node)\r\n },\r\n _focusTarget: function() {\r\n return this.$element().parent()\r\n },\r\n _keyboardEventBindingTarget: function() {\r\n return this._focusTarget()\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _itemClass: function() {\r\n return BUTTON_GROUP_ITEM_CLASS\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n }\r\n});\r\nvar ButtonGroup = _ui2.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n hoverStateEnabled: true,\r\n focusStateEnabled: true,\r\n selectionMode: \"single\",\r\n selectedItems: [],\r\n selectedItemKeys: [],\r\n stylingMode: \"contained\",\r\n keyExpr: \"text\",\r\n items: [],\r\n buttonTemplate: \"content\",\r\n onSelectionChanged: null,\r\n onItemClick: null\r\n })\r\n },\r\n _setDeprecatedOptions: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._deprecatedOptions, {\r\n itemTemplate: {\r\n since: \"19.2\",\r\n alias: \"buttonTemplate\"\r\n }\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._createItemClickAction()\r\n },\r\n _createItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initMarkup: function() {\r\n this.setAria(\"role\", \"group\");\r\n this.$element().addClass(BUTTON_GROUP_CLASS);\r\n this._renderButtons();\r\n this._syncSelectionOptions();\r\n this.callBase()\r\n },\r\n _fireSelectionChangeEvent: function(addedItems, removedItems) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n _renderButtons: function() {\r\n var _this2 = this;\r\n var $buttons = (0, _renderer2.default)(\"
\").addClass(BUTTON_GROUP_WRAPPER_CLASS).appendTo(this.$element());\r\n var selectedItems = this.option(\"selectedItems\");\r\n var options = {\r\n selectionMode: this.option(\"selectionMode\"),\r\n items: this.option(\"items\"),\r\n keyExpr: this.option(\"keyExpr\"),\r\n buttonTemplate: this.option(\"buttonTemplate\"),\r\n scrollingEnabled: false,\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n stylingMode: this.option(\"stylingMode\"),\r\n accessKey: this.option(\"accessKey\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n noDataText: \"\",\r\n selectionRequired: false,\r\n onItemRendered: function(e) {\r\n var width = _this2.option(\"width\");\r\n (0, _type.isDefined)(width) && (0, _renderer2.default)(e.itemElement).addClass(BUTTON_GROUP_ITEM_HAS_WIDTH)\r\n },\r\n onSelectionChanged: function(e) {\r\n _this2._syncSelectionOptions();\r\n _this2._fireSelectionChangeEvent(e.addedItems, e.removedItems)\r\n },\r\n onItemClick: function(e) {\r\n _this2._itemClickAction(e)\r\n }\r\n };\r\n if ((0, _type.isDefined)(selectedItems) && selectedItems.length) {\r\n options.selectedItems = selectedItems\r\n }\r\n this._buttonsCollection = this._createComponent($buttons, ButtonCollection, options)\r\n },\r\n _syncSelectionOptions: function() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", this._buttonsCollection.option(\"selectedItems\"));\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._buttonsCollection.option(\"selectedItemKeys\"))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"stylingMode\":\r\n case \"selectionMode\":\r\n case \"keyExpr\":\r\n case \"buttonTemplate\":\r\n case \"items\":\r\n case \"activeStateEnabled\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n case \"tabIndex\":\r\n this._invalidate();\r\n break;\r\n case \"selectedItemKeys\":\r\n case \"selectedItems\":\r\n this._buttonsCollection.option(args.name, args.value);\r\n break;\r\n case \"onItemClick\":\r\n this._createItemClickAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._buttonsCollection.itemElements().toggleClass(BUTTON_GROUP_ITEM_HAS_WIDTH, !!args.value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n(0, _component_registrator2.default)(\"dxButtonGroup\", ButtonGroup);\r\nmodule.exports = ButtonGroup;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/radio_group/radio_group.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _devices = require(\"../../core/devices\");\r\nvar _devices2 = _interopRequireDefault(_devices);\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _utils = require(\"../widget/utils.ink_ripple\");\r\nvar _utils2 = _interopRequireDefault(_utils);\r\nvar _component_registrator = require(\"../../core/component_registrator\");\r\nvar _component_registrator2 = _interopRequireDefault(_component_registrator);\r\nvar _uiCollection_widget = require(\"../collection/ui.collection_widget.edit\");\r\nvar _uiCollection_widget2 = _interopRequireDefault(_uiCollection_widget);\r\nvar _ui = require(\"../editor/ui.data_expression\");\r\nvar _ui2 = _interopRequireDefault(_ui);\r\nvar _editor = require(\"../editor/editor\");\r\nvar _editor2 = _interopRequireDefault(_editor);\r\nvar _deferred = require(\"../../core/utils/deferred\");\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar RADIO_BUTTON_CHECKED_CLASS = \"dx-radiobutton-checked\";\r\nvar RADIO_BUTTON_CLASS = \"dx-radiobutton\";\r\nvar RADIO_BUTTON_ICON_CHECKED_CLASS = \"dx-radiobutton-icon-checked\";\r\nvar RADIO_BUTTON_ICON_CLASS = \"dx-radiobutton-icon\";\r\nvar RADIO_BUTTON_ICON_DOT_CLASS = \"dx-radiobutton-icon-dot\";\r\nvar RADIO_GROUP_HORIZONTAL_CLASS = \"dx-radiogroup-horizontal\";\r\nvar RADIO_GROUP_VERTICAL_CLASS = \"dx-radiogroup-vertical\";\r\nvar RADIO_VALUE_CONTAINER_CLASS = \"dx-radio-value-container\";\r\nvar RADIO_GROUP_CLASS = \"dx-radiogroup\";\r\nvar RADIO_FEEDBACK_HIDE_TIMEOUT = 100;\r\nvar RadioCollection = function(_CollectionWidget) {\r\n _inherits(RadioCollection, _CollectionWidget);\r\n var _super = _createSuper(RadioCollection);\r\n\r\n function RadioCollection() {\r\n _classCallCheck(this, RadioCollection);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(RadioCollection, [{\r\n key: \"_focusTarget\",\r\n value: function() {\r\n return this.$element().parent()\r\n }\r\n }, {\r\n key: \"_nullValueSelectionSupported\",\r\n value: function() {\r\n return true\r\n }\r\n }, {\r\n key: \"_getDefaultOptions\",\r\n value: function() {\r\n var defaultOptions = _get(_getPrototypeOf(RadioCollection.prototype), \"_getDefaultOptions\", this).call(this);\r\n return (0, _extend.extend)(defaultOptions, _ui2.default._dataExpressionDefaultOptions(), {\r\n _itemAttributes: {\r\n role: \"radio\"\r\n }\r\n })\r\n }\r\n }, {\r\n key: \"_initMarkup\",\r\n value: function() {\r\n var _this = this;\r\n _get(_getPrototypeOf(RadioCollection.prototype), \"_initMarkup\", this).call(this);\r\n (0, _common.deferRender)(function() {\r\n _this.itemElements().addClass(RADIO_BUTTON_CLASS)\r\n })\r\n }\r\n }, {\r\n key: \"_keyboardEventBindingTarget\",\r\n value: function() {\r\n return this._focusTarget()\r\n }\r\n }, {\r\n key: \"_postprocessRenderItem\",\r\n value: function(args) {\r\n var html = args.itemData.html,\r\n itemElement = args.itemElement;\r\n if (!html) {\r\n var $radio = (0, _renderer2.default)(\"
\").addClass(RADIO_BUTTON_ICON_CLASS);\r\n (0, _renderer2.default)(\"
\").addClass(RADIO_BUTTON_ICON_DOT_CLASS).appendTo($radio);\r\n var $radioContainer = (0, _renderer2.default)(\"
\").append($radio).addClass(RADIO_VALUE_CONTAINER_CLASS);\r\n (0, _renderer2.default)(itemElement).prepend($radioContainer)\r\n }\r\n _get(_getPrototypeOf(RadioCollection.prototype), \"_postprocessRenderItem\", this).call(this, args)\r\n }\r\n }, {\r\n key: \"_processSelectableItem\",\r\n value: function($itemElement, isSelected) {\r\n _get(_getPrototypeOf(RadioCollection.prototype), \"_processSelectableItem\", this).call(this, $itemElement, isSelected);\r\n $itemElement.toggleClass(RADIO_BUTTON_CHECKED_CLASS, isSelected).find(\".\".concat(RADIO_BUTTON_ICON_CLASS)).first().toggleClass(RADIO_BUTTON_ICON_CHECKED_CLASS, isSelected);\r\n this.setAria(\"checked\", isSelected, $itemElement)\r\n }\r\n }, {\r\n key: \"_refreshContent\",\r\n value: function() {\r\n this._prepareContent();\r\n this._renderContent()\r\n }\r\n }, {\r\n key: \"_supportedKeys\",\r\n value: function() {\r\n var parent = _get(_getPrototypeOf(RadioCollection.prototype), \"_supportedKeys\", this).call(this);\r\n return (0, _extend.extend)({}, parent, {\r\n enter: function(e) {\r\n e.preventDefault();\r\n return parent.enter.apply(this, arguments)\r\n },\r\n space: function(e) {\r\n e.preventDefault();\r\n return parent.space.apply(this, arguments)\r\n }\r\n })\r\n }\r\n }, {\r\n key: \"_itemElements\",\r\n value: function() {\r\n return this._itemContainer().children(this._itemSelector())\r\n }\r\n }]);\r\n return RadioCollection\r\n}(_uiCollection_widget2.default);\r\nvar RadioGroup = function(_Editor) {\r\n _inherits(RadioGroup, _Editor);\r\n var _super2 = _createSuper(RadioGroup);\r\n\r\n function RadioGroup() {\r\n _classCallCheck(this, RadioGroup);\r\n return _super2.apply(this, arguments)\r\n }\r\n _createClass(RadioGroup, [{\r\n key: \"_clean\",\r\n value: function() {\r\n delete this._inkRipple;\r\n _get(_getPrototypeOf(RadioGroup.prototype), \"_clean\", this).call(this)\r\n }\r\n }, {\r\n key: \"_dataSourceOptions\",\r\n value: function() {\r\n return {\r\n paginate: false\r\n }\r\n }\r\n }, {\r\n key: \"_defaultOptionsRules\",\r\n value: function() {\r\n var defaultOptionsRules = _get(_getPrototypeOf(RadioGroup.prototype), \"_defaultOptionsRules\", this).call(this);\r\n return defaultOptionsRules.concat([{\r\n device: {\r\n tablet: true\r\n },\r\n options: {\r\n layout: \"horizontal\"\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === _devices2.default.real().deviceType && !_devices2.default.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n }\r\n }, {\r\n key: \"_fireContentReadyAction\",\r\n value: function(force) {\r\n force && _get(_getPrototypeOf(RadioGroup.prototype), \"_fireContentReadyAction\", this).call(this)\r\n }\r\n }, {\r\n key: \"_focusTarget\",\r\n value: function() {\r\n return this.$element()\r\n }\r\n }, {\r\n key: \"_getAriaTarget\",\r\n value: function() {\r\n return this.$element()\r\n }\r\n }, {\r\n key: \"_getDefaultOptions\",\r\n value: function() {\r\n var defaultOptions = _get(_getPrototypeOf(RadioGroup.prototype), \"_getDefaultOptions\", this).call(this);\r\n return (0, _extend.extend)(defaultOptions, (0, _extend.extend)(_ui2.default._dataExpressionDefaultOptions(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n layout: \"vertical\",\r\n useInkRipple: false\r\n }))\r\n }\r\n }, {\r\n key: \"_getItemValue\",\r\n value: function(item) {\r\n return this._valueGetter ? this._valueGetter(item) : item.text\r\n }\r\n }, {\r\n key: \"_getSubmitElement\",\r\n value: function() {\r\n return this._$submitElement\r\n }\r\n }, {\r\n key: \"_init\",\r\n value: function() {\r\n _get(_getPrototypeOf(RadioGroup.prototype), \"_init\", this).call(this);\r\n this._activeStateUnit = \".\".concat(RADIO_BUTTON_CLASS);\r\n this._feedbackHideTimeout = RADIO_FEEDBACK_HIDE_TIMEOUT;\r\n this._initDataExpressions()\r\n }\r\n }, {\r\n key: \"_initMarkup\",\r\n value: function() {\r\n this.$element().addClass(RADIO_GROUP_CLASS);\r\n this._renderSubmitElement();\r\n this.setAria(\"role\", \"radiogroup\");\r\n this._renderRadios();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this._renderLayout();\r\n _get(_getPrototypeOf(RadioGroup.prototype), \"_initMarkup\", this).call(this)\r\n }\r\n }, {\r\n key: \"_itemClickHandler\",\r\n value: function(_ref) {\r\n var itemElement = _ref.itemElement,\r\n event = _ref.event,\r\n itemData = _ref.itemData;\r\n if (this.itemElements().is(itemElement)) {\r\n var newValue = this._getItemValue(itemData);\r\n if (newValue !== this.option(\"value\")) {\r\n this._saveValueChangeEvent(event);\r\n this.option(\"value\", newValue)\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"_setSelection\",\r\n value: function(currentValue) {\r\n this._setCollectionWidgetOption(\"selectedItemKeys\", [this._unwrappedValue(currentValue)])\r\n }\r\n }, {\r\n key: \"_optionChanged\",\r\n value: function(args) {\r\n var name = args.name,\r\n value = args.value;\r\n this._dataExpressionOptionChanged(args);\r\n switch (name) {\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"focusStateEnabled\":\r\n case \"accessKey\":\r\n case \"tabIndex\":\r\n this._setCollectionWidgetOption(name, value);\r\n break;\r\n case \"disabled\":\r\n _get(_getPrototypeOf(RadioGroup.prototype), \"_optionChanged\", this).call(this, args);\r\n this._setCollectionWidgetOption(name, value);\r\n break;\r\n case \"dataSource\":\r\n this._setCollectionWidgetOption(\"dataSource\", this._dataSource);\r\n this._setSelection(this.option(\"value\"));\r\n break;\r\n case \"valueExpr\":\r\n this._setCollectionWidgetOption(\"keyExpr\", this._getCollectionKeyExpr());\r\n break;\r\n case \"value\":\r\n this._setSelection(value);\r\n this._setSubmitValue(value);\r\n _get(_getPrototypeOf(RadioGroup.prototype), \"_optionChanged\", this).call(this, args);\r\n break;\r\n case \"items\":\r\n this._setSelection(this.option(\"value\"));\r\n break;\r\n case \"itemTemplate\":\r\n case \"displayExpr\":\r\n break;\r\n case \"layout\":\r\n this._renderLayout();\r\n this._updateItemsSize();\r\n break;\r\n default:\r\n _get(_getPrototypeOf(RadioGroup.prototype), \"_optionChanged\", this).call(this, args)\r\n }\r\n }\r\n }, {\r\n key: \"_render\",\r\n value: function() {\r\n _get(_getPrototypeOf(RadioGroup.prototype), \"_render\", this).call(this);\r\n this._updateItemsSize()\r\n }\r\n }, {\r\n key: \"_renderInkRipple\",\r\n value: function() {\r\n this._inkRipple = _utils2.default.render({\r\n waveSizeCoefficient: 3.3,\r\n useHoldAnimation: false,\r\n isCentered: true\r\n })\r\n }\r\n }, {\r\n key: \"_renderLayout\",\r\n value: function() {\r\n var layout = this.option(\"layout\");\r\n var $element = this.$element();\r\n $element.toggleClass(RADIO_GROUP_VERTICAL_CLASS, \"vertical\" === layout);\r\n $element.toggleClass(RADIO_GROUP_HORIZONTAL_CLASS, \"horizontal\" === layout)\r\n }\r\n }, {\r\n key: \"_renderRadios\",\r\n value: function() {\r\n var _this2 = this;\r\n this._areRadiosCreated = new _deferred.Deferred;\r\n var $radios = (0, _renderer2.default)(\"
\").appendTo(this.$element());\r\n var _this$option = this.option(),\r\n value = _this$option.value,\r\n displayExpr = _this$option.displayExpr,\r\n accessKey = _this$option.accessKey,\r\n focusStateEnabled = _this$option.focusStateEnabled,\r\n itemTemplate = _this$option.itemTemplate,\r\n tabIndex = _this$option.tabIndex,\r\n valueExpr = _this$option.valueExpr;\r\n var isNullSelectable = \"this\" !== valueExpr;\r\n this._radios = this._createComponent($radios, RadioCollection, {\r\n displayExpr: displayExpr,\r\n accessKey: accessKey,\r\n dataSource: this._dataSource,\r\n focusStateEnabled: focusStateEnabled,\r\n itemTemplate: itemTemplate,\r\n keyExpr: this._getCollectionKeyExpr(),\r\n noDataText: \"\",\r\n onContentReady: function() {\r\n return _this2._fireContentReadyAction(true)\r\n },\r\n onItemClick: this._itemClickHandler.bind(this),\r\n scrollingEnabled: false,\r\n selectionByClick: false,\r\n selectionMode: \"single\",\r\n selectedItemKeys: isNullSelectable || (0, _type.isDefined)(value) ? [value] : [],\r\n tabIndex: tabIndex\r\n });\r\n this._areRadiosCreated.resolve()\r\n }\r\n }, {\r\n key: \"_renderSubmitElement\",\r\n value: function() {\r\n this._$submitElement = (0, _renderer2.default)(\"\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue()\r\n }\r\n }, {\r\n key: \"_setOptionsByReference\",\r\n value: function() {\r\n _get(_getPrototypeOf(RadioGroup.prototype), \"_setOptionsByReference\", this).call(this);\r\n (0, _extend.extend)(this._optionsByReference, {\r\n value: true\r\n })\r\n }\r\n }, {\r\n key: \"_setSubmitValue\",\r\n value: function(value) {\r\n value = value || this.option(\"value\");\r\n var submitValue = \"this\" === this.option(\"valueExpr\") ? this._displayGetter(value) : value;\r\n this._$submitElement.val(submitValue)\r\n }\r\n }, {\r\n key: \"_setCollectionWidgetOption\",\r\n value: function() {\r\n this._areRadiosCreated.done(this._setWidgetOption.bind(this, \"_radios\", arguments))\r\n }\r\n }, {\r\n key: \"_toggleActiveState\",\r\n value: function($element, value, e) {\r\n _get(_getPrototypeOf(RadioGroup.prototype), \"_toggleActiveState\", this).call(this, $element, value, e);\r\n if (this._inkRipple) {\r\n var event = {\r\n element: $element.find(\".\".concat(RADIO_BUTTON_ICON_CLASS)),\r\n event: e\r\n };\r\n value ? this._inkRipple.showWave(event) : this._inkRipple.hideWave(event)\r\n }\r\n }\r\n }, {\r\n key: \"_updateItemsSize\",\r\n value: function() {\r\n if (\"horizontal\" === this.option(\"layout\")) {\r\n this.itemElements().css(\"height\", \"auto\")\r\n } else {\r\n var itemsCount = this.option(\"items\").length;\r\n this.itemElements().css(\"height\", 100 / itemsCount + \"%\")\r\n }\r\n }\r\n }, {\r\n key: \"focus\",\r\n value: function() {\r\n this._radios && this._radios.focus()\r\n }\r\n }, {\r\n key: \"itemElements\",\r\n value: function() {\r\n return this._radios.itemElements()\r\n }\r\n }]);\r\n return RadioGroup\r\n}(_editor2.default);\r\nRadioGroup.include(_ui2.default);\r\n(0, _component_registrator2.default)(\"dxRadioGroup\", RadioGroup);\r\nmodule.exports = RadioGroup;\r\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/utils.work_week.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nvar dateUtils = require(\"../../../core/utils/date\");\r\nvar MONDAY_INDEX = 1;\r\nvar SATURDAY_INDEX = 6;\r\nvar SUNDAY_INDEX = 0;\r\nvar isDataOnWeekend = exports.isDataOnWeekend = function(date) {\r\n var day = date.getDay();\r\n return day === SATURDAY_INDEX || day === SUNDAY_INDEX\r\n};\r\nvar getFirstDayOfWeek = exports.getFirstDayOfWeek = function(firstDayOfWeekOption) {\r\n return firstDayOfWeekOption || MONDAY_INDEX\r\n};\r\nvar getWeekendsCount = exports.getWeekendsCount = function(days) {\r\n return 2 * Math.floor(days / 7)\r\n};\r\nvar getFirstViewDate = exports.getFirstViewDate = function(viewStart, firstDayOfWeek) {\r\n var firstViewDate = dateUtils.getFirstWeekDate(viewStart, firstDayOfWeek);\r\n return dateUtils.normalizeDateByWeek(firstViewDate, viewStart)\r\n};\r\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.work_space_week.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _component_registrator = require(\"../../../core/component_registrator\");\r\nvar _component_registrator2 = _interopRequireDefault(_component_registrator);\r\nvar _date = require(\"../../../core/utils/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _date3 = require(\"../../../localization/date\");\r\nvar _date4 = _interopRequireDefault(_date3);\r\nvar _uiScheduler = require(\"./ui.scheduler.work_space_vertical\");\r\nvar _uiScheduler2 = _interopRequireDefault(_uiScheduler);\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar WEEK_CLASS = \"dx-scheduler-work-space-week\";\r\nvar toMs = _date2.default.dateToMilliseconds;\r\nvar SchedulerWorkSpaceWeek = function(_SchedulerWorkSpaceVe) {\r\n _inherits(SchedulerWorkSpaceWeek, _SchedulerWorkSpaceVe);\r\n var _super = _createSuper(SchedulerWorkSpaceWeek);\r\n\r\n function SchedulerWorkSpaceWeek() {\r\n _classCallCheck(this, SchedulerWorkSpaceWeek);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(SchedulerWorkSpaceWeek, [{\r\n key: \"_getElementClass\",\r\n value: function() {\r\n return WEEK_CLASS\r\n }\r\n }, {\r\n key: \"_getRowCount\",\r\n value: function() {\r\n return this._getCellCountInDay()\r\n }\r\n }, {\r\n key: \"_getCellCount\",\r\n value: function() {\r\n return 7 * this.option(\"intervalCount\")\r\n }\r\n }, {\r\n key: \"_getDateByIndex\",\r\n value: function(headerIndex) {\r\n var resultDate = new Date(this._firstViewDate);\r\n resultDate.setDate(this._firstViewDate.getDate() + headerIndex);\r\n return resultDate\r\n }\r\n }, {\r\n key: \"_getStartViewDate\",\r\n value: function() {\r\n return _date2.default.getFirstWeekDate(this.option(\"startDate\"), this._firstDayOfWeek() || _date4.default.firstDayOfWeekIndex())\r\n }\r\n }, {\r\n key: \"_getIntervalDuration\",\r\n value: function() {\r\n return 7 * toMs(\"day\") * this.option(\"intervalCount\")\r\n }\r\n }, {\r\n key: \"getPositionShift\",\r\n value: function(timeShift, isAllDay) {\r\n if (!isAllDay && this.invoke(\"isAdaptive\") && 0 === this.invoke(\"getMaxAppointmentCountPerCellByType\")) {\r\n return {\r\n top: 0,\r\n left: 0,\r\n cellPosition: 0\r\n }\r\n }\r\n return _get(_getPrototypeOf(SchedulerWorkSpaceWeek.prototype), \"getPositionShift\", this).call(this, timeShift, isAllDay)\r\n }\r\n }, {\r\n key: \"_isApplyCompactAppointmentOffset\",\r\n value: function() {\r\n if (this.invoke(\"isAdaptive\") && 0 === this.invoke(\"getMaxAppointmentCountPerCellByType\")) {\r\n return false\r\n }\r\n return _get(_getPrototypeOf(SchedulerWorkSpaceWeek.prototype), \"_isApplyCompactAppointmentOffset\", this).call(this)\r\n }\r\n }]);\r\n return SchedulerWorkSpaceWeek\r\n}(_uiScheduler2.default);\r\n(0, _component_registrator2.default)(\"dxSchedulerWorkSpaceWeek\", SchedulerWorkSpaceWeek);\r\nmodule.exports = SchedulerWorkSpaceWeek;\r\n","/**\r\n * DevExtreme (ui/scheduler/rendering_strategies/ui.scheduler.appointments.strategy.vertical.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _uiSchedulerAppointmentsStrategy = require(\"./ui.scheduler.appointments.strategy.base\");\r\nvar _uiSchedulerAppointmentsStrategy2 = _interopRequireDefault(_uiSchedulerAppointmentsStrategy);\r\nvar _extend = require(\"../../../core/utils/extend\");\r\nvar _type = require(\"../../../core/utils/type\");\r\nvar _date = require(\"../../../core/utils/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _utils = require(\"./../utils.timeZone\");\r\nvar _utils2 = _interopRequireDefault(_utils);\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar ALLDAY_APPOINTMENT_MIN_VERTICAL_OFFSET = 5;\r\nvar ALLDAY_APPOINTMENT_MAX_VERTICAL_OFFSET = 20;\r\nvar toMs = _date2.default.dateToMilliseconds;\r\nvar VerticalRenderingStrategy = function(_BaseAppointmentsStra) {\r\n _inherits(VerticalRenderingStrategy, _BaseAppointmentsStra);\r\n var _super = _createSuper(VerticalRenderingStrategy);\r\n\r\n function VerticalRenderingStrategy() {\r\n _classCallCheck(this, VerticalRenderingStrategy);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(VerticalRenderingStrategy, [{\r\n key: \"getDeltaTime\",\r\n value: function(args, initialSize, appointment) {\r\n var deltaTime = 0;\r\n if (this.isAllDay(appointment)) {\r\n deltaTime = this._getDeltaWidth(args, initialSize) * toMs(\"day\")\r\n } else {\r\n var deltaHeight = args.height - initialSize.height;\r\n deltaTime = toMs(\"minute\") * Math.round(deltaHeight / this.getDefaultCellHeight() * this.instance.getAppointmentDurationInMinutes())\r\n }\r\n return deltaTime\r\n }\r\n }, {\r\n key: \"_correctCollectorCoordinatesInAdaptive\",\r\n value: function(coordinates, isAllDay) {\r\n if (isAllDay) {\r\n _get(_getPrototypeOf(VerticalRenderingStrategy.prototype), \"_correctCollectorCoordinatesInAdaptive\", this).call(this, coordinates, isAllDay)\r\n } else {\r\n if (0 === this._getMaxAppointmentCountPerCellByType()) {\r\n var cellHeight = this.getDefaultCellHeight();\r\n var cellWidth = this.getDefaultCellWidth();\r\n coordinates.top += (cellHeight - this.getDropDownButtonAdaptiveSize()) / 2;\r\n coordinates.left += (cellWidth - this.getDropDownButtonAdaptiveSize()) / 2\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"getAppointmentGeometry\",\r\n value: function(coordinates) {\r\n var geometry = null;\r\n if (coordinates.allDay) {\r\n geometry = this._getAllDayAppointmentGeometry(coordinates)\r\n } else {\r\n geometry = this._isAdaptive() && coordinates.isCompact ? this._getAdaptiveGeometry(coordinates) : this._getVerticalAppointmentGeometry(coordinates)\r\n }\r\n return _get(_getPrototypeOf(VerticalRenderingStrategy.prototype), \"getAppointmentGeometry\", this).call(this, geometry)\r\n }\r\n }, {\r\n key: \"_getAdaptiveGeometry\",\r\n value: function(coordinates) {\r\n var config = this._calculateGeometryConfig(coordinates);\r\n return this._customizeCoordinates(coordinates, config.height, config.appointmentCountPerCell, config.offset)\r\n }\r\n }, {\r\n key: \"_getItemPosition\",\r\n value: function(item) {\r\n var allDay = this.isAllDay(item);\r\n var isRecurring = !!this.instance.fire(\"getField\", \"recurrenceRule\", item);\r\n var appointmentStartDate = this.startDate(item, true);\r\n var appointmentEndDate = this.endDate(item);\r\n var isAppointmentTakesSeveralDays = !_utils2.default.isSameAppointmentDates(appointmentStartDate, appointmentEndDate);\r\n if (allDay) {\r\n return _get(_getPrototypeOf(VerticalRenderingStrategy.prototype), \"_getItemPosition\", this).call(this, item)\r\n }\r\n var position = this._getAppointmentCoordinates(item);\r\n var result = [];\r\n for (var j = 0; j < position.length; j++) {\r\n var height = this.calculateAppointmentHeight(item, position[j], isRecurring);\r\n var width = this.calculateAppointmentWidth(item, position[j], isRecurring);\r\n var resultHeight = height;\r\n var appointmentReduced = null;\r\n var multiDaysAppointmentParts = [];\r\n var currentMaxAllowedPosition = position[j].vMax;\r\n if (this._isMultiDayAppointment(position[j], height) || isAppointmentTakesSeveralDays && !isRecurring) {\r\n if (_date2.default.sameDate(appointmentStartDate, position[j].startDate) || isRecurring) {\r\n appointmentReduced = \"head\";\r\n resultHeight = this._reduceMultiDayAppointment(height, {\r\n top: position[j].top,\r\n bottom: currentMaxAllowedPosition\r\n });\r\n multiDaysAppointmentParts = this._getAppointmentParts({\r\n sourceAppointmentHeight: height,\r\n reducedHeight: resultHeight,\r\n width: width\r\n }, position[j])\r\n } else {\r\n appointmentReduced = \"tail\"\r\n }\r\n }(0, _extend.extend)(position[j], {\r\n height: resultHeight,\r\n width: width,\r\n allDay: allDay,\r\n originalAppointmentStartDate: appointmentStartDate,\r\n originalAppointmentEndDate: appointmentEndDate,\r\n endDate: this.endDate(item, position[j], isRecurring),\r\n appointmentReduced: appointmentReduced\r\n });\r\n result = this._getAppointmentPartsPosition(multiDaysAppointmentParts, position[j], result)\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"_isMultiDayAppointment\",\r\n value: function(position, height) {\r\n var maxTop = position.vMax;\r\n var result = height > maxTop - position.top;\r\n return result\r\n }\r\n }, {\r\n key: \"_reduceMultiDayAppointment\",\r\n value: function(sourceAppointmentHeight, bound) {\r\n sourceAppointmentHeight = bound.bottom - Math.floor(bound.top);\r\n return sourceAppointmentHeight\r\n }\r\n }, {\r\n key: \"_getAppointmentParts\",\r\n value: function(appointmentGeometry, appointmentSettings) {\r\n var tailHeight = appointmentGeometry.sourceAppointmentHeight - appointmentGeometry.reducedHeight;\r\n var width = appointmentGeometry.width;\r\n var result = [];\r\n var currentPartTop = this.instance.fire(\"getGroupTop\", appointmentSettings.groupIndex);\r\n var offset = this.instance.fire(\"isGroupedByDate\") ? this.getDefaultCellWidth() * this.instance.fire(\"getGroupCount\") : this.getDefaultCellWidth();\r\n var left = appointmentSettings.left + offset;\r\n if (tailHeight) {\r\n var minHeight = this.getAppointmentMinSize();\r\n if (tailHeight < minHeight) {\r\n tailHeight = minHeight\r\n }\r\n currentPartTop += this.instance.fire(\"getOffsetByAllDayPanel\", appointmentSettings.groupIndex);\r\n result.push((0, _extend.extend)(true, {}, appointmentSettings, {\r\n top: currentPartTop,\r\n left: left,\r\n height: tailHeight,\r\n width: width,\r\n appointmentReduced: \"tail\",\r\n rowIndex: ++appointmentSettings.rowIndex\r\n }))\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"_getMinuteHeight\",\r\n value: function() {\r\n return this.getDefaultCellHeight() / this.instance.getAppointmentDurationInMinutes()\r\n }\r\n }, {\r\n key: \"_getCompactLeftCoordinate\",\r\n value: function(itemLeft, index) {\r\n var cellBorderSize = 1;\r\n var cellWidth = this.getDefaultCellWidth() || this.getAppointmentMinSize();\r\n return itemLeft + (cellBorderSize + cellWidth) * index\r\n }\r\n }, {\r\n key: \"_getVerticalAppointmentGeometry\",\r\n value: function(coordinates) {\r\n var config = this._calculateVerticalGeometryConfig(coordinates);\r\n return this._customizeVerticalCoordinates(coordinates, config.width, config.appointmentCountPerCell, config.offset)\r\n }\r\n }, {\r\n key: \"_customizeVerticalCoordinates\",\r\n value: function(coordinates, width, appointmentCountPerCell, topOffset, isAllDay) {\r\n var appointmentWidth = Math.max(width / appointmentCountPerCell, width / coordinates.count);\r\n var height = coordinates.height;\r\n var appointmentLeft = coordinates.left + coordinates.index * appointmentWidth;\r\n var top = coordinates.top;\r\n if (coordinates.isCompact) {\r\n this._markAppointmentAsVirtual(coordinates, isAllDay)\r\n }\r\n return {\r\n height: height,\r\n width: appointmentWidth,\r\n top: top,\r\n left: appointmentLeft,\r\n empty: this._isAppointmentEmpty(height, width)\r\n }\r\n }\r\n }, {\r\n key: \"_calculateVerticalGeometryConfig\",\r\n value: function(coordinates) {\r\n var overlappingMode = this.instance.fire(\"getMaxAppointmentsPerCell\");\r\n var offsets = this._getOffsets();\r\n var appointmentDefaultOffset = this._getAppointmentDefaultOffset();\r\n var appointmentCountPerCell = this._getAppointmentCount(overlappingMode, coordinates);\r\n var ratio = this._getDefaultRatio(coordinates, appointmentCountPerCell);\r\n var maxWidth = this._getMaxWidth();\r\n if (!appointmentCountPerCell) {\r\n appointmentCountPerCell = coordinates.count;\r\n ratio = (maxWidth - offsets.unlimited) / maxWidth\r\n }\r\n var topOffset = (1 - ratio) * maxWidth;\r\n if (\"auto\" === overlappingMode || (0, _type.isNumeric)(overlappingMode)) {\r\n ratio = 1;\r\n maxWidth -= appointmentDefaultOffset;\r\n topOffset = 0\r\n }\r\n return {\r\n width: ratio * maxWidth,\r\n appointmentCountPerCell: appointmentCountPerCell,\r\n offset: topOffset\r\n }\r\n }\r\n }, {\r\n key: \"_getMaxWidth\",\r\n value: function() {\r\n return this.getDefaultCellWidth() || this.invoke(\"getCellWidth\")\r\n }\r\n }, {\r\n key: \"isAllDay\",\r\n value: function(appointmentData) {\r\n var allDay = this.instance.fire(\"getField\", \"allDay\", appointmentData);\r\n if (allDay) {\r\n return true\r\n }\r\n return this.instance.appointmentTakesAllDay(appointmentData)\r\n }\r\n }, {\r\n key: \"_getAppointmentMaxWidth\",\r\n value: function() {\r\n return this.getDefaultCellWidth() - this._getAppointmentDefaultOffset()\r\n }\r\n }, {\r\n key: \"calculateAppointmentWidth\",\r\n value: function(appointment, position, isRecurring) {\r\n if (!this.isAllDay(appointment)) {\r\n return 0\r\n }\r\n var startDate = new Date(this.startDate(appointment, false, position));\r\n var endDate = this.endDate(appointment, position, isRecurring);\r\n var cellWidth = this.getDefaultCellWidth() || this.getAppointmentMinSize();\r\n startDate = _date2.default.trimTime(startDate);\r\n var durationInHours = (endDate.getTime() - startDate.getTime()) / toMs(\"hour\");\r\n var width = Math.ceil(durationInHours / 24) * cellWidth;\r\n width = this.cropAppointmentWidth(width, cellWidth);\r\n return width\r\n }\r\n }, {\r\n key: \"calculateAppointmentHeight\",\r\n value: function(appointment, position, isRecurring) {\r\n var endDate = this.endDate(appointment, position, isRecurring);\r\n var startDate = this.startDate(appointment, false, position);\r\n var allDay = this.instance.fire(\"getField\", \"allDay\", appointment);\r\n if (this.isAllDay(appointment)) {\r\n return 0\r\n }\r\n var fullDuration = this._getAppointmentDurationInMs(startDate, endDate, allDay);\r\n var durationInMinutes = this._adjustDurationByDaylightDiff(fullDuration, startDate, endDate) / toMs(\"minute\");\r\n var height = durationInMinutes * this._getMinuteHeight();\r\n return height\r\n }\r\n }, {\r\n key: \"getDirection\",\r\n value: function() {\r\n return \"vertical\"\r\n }\r\n }, {\r\n key: \"_sortCondition\",\r\n value: function(a, b) {\r\n var allDayCondition = a.allDay - b.allDay;\r\n var isAllDay = a.allDay && b.allDay;\r\n var condition = \"vertical\" === this.instance._groupOrientation && isAllDay ? this._columnCondition(a, b) : this._rowCondition(a, b);\r\n return allDayCondition ? allDayCondition : condition\r\n }\r\n }, {\r\n key: \"hasAllDayAppointments\",\r\n value: function() {\r\n return true\r\n }\r\n }, {\r\n key: \"_getAllDayAppointmentGeometry\",\r\n value: function(coordinates) {\r\n var config = this._calculateGeometryConfig(coordinates);\r\n return this._customizeCoordinates(coordinates, config.height, config.appointmentCountPerCell, config.offset, true)\r\n }\r\n }, {\r\n key: \"_calculateGeometryConfig\",\r\n value: function(coordinates) {\r\n if (!this.instance._allowResizing() || !this.instance._allowAllDayResizing()) {\r\n coordinates.skipResizing = true\r\n }\r\n var config = _get(_getPrototypeOf(VerticalRenderingStrategy.prototype), \"_calculateGeometryConfig\", this).call(this, coordinates);\r\n if (coordinates.count <= this._getDynamicAppointmentCountPerCell().allDay) {\r\n config.offset = 0\r\n }\r\n return config\r\n }\r\n }, {\r\n key: \"_getAppointmentCount\",\r\n value: function(overlappingMode, coordinates) {\r\n return \"auto\" !== overlappingMode && 1 === coordinates.count && !(0, _type.isNumeric)(overlappingMode) ? coordinates.count : this._getMaxAppointmentCountPerCellByType(coordinates.allDay)\r\n }\r\n }, {\r\n key: \"_getDefaultRatio\",\r\n value: function(coordinates, appointmentCountPerCell) {\r\n return coordinates.count > this.instance.option(\"_appointmentCountPerCell\") ? .65 : 1\r\n }\r\n }, {\r\n key: \"_getOffsets\",\r\n value: function() {\r\n return {\r\n unlimited: ALLDAY_APPOINTMENT_MIN_VERTICAL_OFFSET,\r\n auto: ALLDAY_APPOINTMENT_MAX_VERTICAL_OFFSET\r\n }\r\n }\r\n }, {\r\n key: \"_getMaxHeight\",\r\n value: function() {\r\n return this.getDefaultAllDayCellHeight() || this.getAppointmentMinSize()\r\n }\r\n }, {\r\n key: \"_needVerticalGroupBounds\",\r\n value: function(allDay) {\r\n return !allDay\r\n }\r\n }, {\r\n key: \"_needHorizontalGroupBounds\",\r\n value: function() {\r\n return false\r\n }\r\n }]);\r\n return VerticalRenderingStrategy\r\n}(_uiSchedulerAppointmentsStrategy2.default);\r\nmodule.exports = VerticalRenderingStrategy;\r\n","/**\r\n * DevExtreme (ui/scheduler/ui.scheduler.navigator.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _type2 = _interopRequireDefault(_type);\r\nvar _ui = require(\"../widget/ui.errors\");\r\nvar _ui2 = _interopRequireDefault(_ui);\r\nvar _date = require(\"../../core/utils/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _component_registrator = require(\"../../core/component_registrator\");\r\nvar _component_registrator2 = _interopRequireDefault(_component_registrator);\r\nvar _devices = require(\"../../core/devices\");\r\nvar _devices2 = _interopRequireDefault(_devices);\r\nvar _ui3 = require(\"../widget/ui.widget\");\r\nvar _ui4 = _interopRequireDefault(_ui3);\r\nvar _button = require(\"../button\");\r\nvar _button2 = _interopRequireDefault(_button);\r\nvar _calendar = require(\"../calendar\");\r\nvar _calendar2 = _interopRequireDefault(_calendar);\r\nvar _popover = require(\"../popover\");\r\nvar _popover2 = _interopRequireDefault(_popover);\r\nvar _popup = require(\"../popup\");\r\nvar _popup2 = _interopRequireDefault(_popup);\r\nvar _uiScheduler = require(\"./ui.scheduler.publisher_mixin\");\r\nvar _uiScheduler2 = _interopRequireDefault(_uiScheduler);\r\nvar _date3 = require(\"../../localization/date\");\r\nvar _date4 = _interopRequireDefault(_date3);\r\nvar _ui5 = require(\"../scroll_view/ui.scrollable\");\r\nvar _ui6 = _interopRequireDefault(_ui5);\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ELEMENT_CLASS = \"dx-scheduler-navigator\";\r\nvar CALENDAR_CLASS = \"dx-scheduler-navigator-calendar\";\r\nvar NEXT_BUTTON_CLASS = \"dx-scheduler-navigator-next\";\r\nvar CAPTION_BUTTON_CLASS = \"dx-scheduler-navigator-caption\";\r\nvar PREVIOUS_BUTTON_CLASS = \"dx-scheduler-navigator-previous\";\r\nvar CALENDAR_POPOVER_CLASS = \"dx-scheduler-navigator-calendar-popover\";\r\nvar MONDAY_INDEX = 1;\r\nvar getDefaultFirstDayOfWeekIndex = function(shift) {\r\n return shift ? MONDAY_INDEX : _date4.default.firstDayOfWeekIndex()\r\n};\r\nvar getDateMonthFormat = function(short) {\r\n return function(date) {\r\n var monthName = _date4.default.getMonthNames(short ? \"abbreviated\" : \"wide\")[date.getMonth()];\r\n return [_date4.default.format(date, \"day\"), monthName].join(\" \")\r\n }\r\n};\r\nvar getMonthYearFormat = function(date) {\r\n return _date4.default.getMonthNames(\"abbreviated\")[date.getMonth()] + \" \" + _date4.default.format(date, \"year\")\r\n};\r\nvar getCaptionFormat = function getCaptionFormat(short, intervalCount, duration) {\r\n var dateMonthFormat = getDateMonthFormat(short);\r\n return function(date) {\r\n if (intervalCount > 1) {\r\n var lastIntervalDate = new Date(date);\r\n var defaultViewDuration = duration;\r\n lastIntervalDate.setDate(date.getDate() + defaultViewDuration - 1);\r\n var isDifferentMonthDates = date.getMonth() !== lastIntervalDate.getMonth();\r\n var useShortFormat = isDifferentMonthDates || short;\r\n var firstWeekDateText = _date4.default.format(date, isDifferentMonthDates ? getDateMonthFormat(useShortFormat) : \"d\");\r\n var lastWeekDateText = _date4.default.format(lastIntervalDate, getCaptionFormat(useShortFormat));\r\n return firstWeekDateText + \"-\" + lastWeekDateText\r\n }\r\n return [dateMonthFormat(date), _date4.default.format(date, \"year\")].join(\" \")\r\n }\r\n};\r\nvar getWeekCaption = function(date, shift, rejectWeekend) {\r\n var firstDayOfWeek = this.option(\"firstDayOfWeek\");\r\n var firstDayOfWeekIndex = (0, _type.isDefined)(firstDayOfWeek) ? firstDayOfWeek : getDefaultFirstDayOfWeekIndex(shift);\r\n if (0 === firstDayOfWeekIndex && rejectWeekend) {\r\n firstDayOfWeekIndex = MONDAY_INDEX\r\n }\r\n var firstWeekDate = _date2.default.getFirstWeekDate(date, firstDayOfWeekIndex);\r\n var weekendDuration = 2;\r\n if (rejectWeekend) {\r\n firstWeekDate = _date2.default.normalizeDateByWeek(firstWeekDate, date)\r\n }\r\n if (firstDayOfWeek >= 6 && rejectWeekend) {\r\n firstWeekDate.setDate(firstWeekDate.getDate() + (7 - firstDayOfWeek + 1))\r\n }\r\n var lastWeekDate = new Date(firstWeekDate);\r\n var intervalCount = this.option(\"intervalCount\");\r\n shift = shift || 6;\r\n lastWeekDate = new Date(lastWeekDate.setDate(lastWeekDate.getDate() + (intervalCount > 1 ? 7 * (intervalCount - 1) + shift : shift)));\r\n if (lastWeekDate.getDay() % 6 === 0 && rejectWeekend) {\r\n lastWeekDate.setDate(lastWeekDate.getDate() + weekendDuration)\r\n }\r\n return {\r\n text: formatCaptionByMonths.call(this, lastWeekDate, firstWeekDate),\r\n startDate: firstWeekDate,\r\n endDate: lastWeekDate\r\n }\r\n};\r\nvar formatCaptionByMonths = function(lastDate, firstDate) {\r\n var isDifferentMonthDates = firstDate.getMonth() !== lastDate.getMonth();\r\n var isDifferentYears = firstDate.getFullYear() !== lastDate.getFullYear();\r\n var useShortFormat = isDifferentMonthDates || this.option(\"_useShortDateFormat\");\r\n var lastDateText;\r\n var firstDateText;\r\n if (isDifferentYears) {\r\n firstDateText = _date4.default.format(firstDate, getCaptionFormat(true));\r\n lastDateText = _date4.default.format(lastDate, getCaptionFormat(true))\r\n } else {\r\n firstDateText = _date4.default.format(firstDate, isDifferentMonthDates ? getDateMonthFormat(useShortFormat) : \"d\");\r\n lastDateText = _date4.default.format(lastDate, getCaptionFormat(useShortFormat))\r\n }\r\n return firstDateText + \"-\" + lastDateText\r\n};\r\nvar getMonthCaption = function(date) {\r\n var firstDate = new Date(_date2.default.getFirstMonthDate(date));\r\n var lastDate = new Date(_date2.default.getLastMonthDate(firstDate));\r\n var text;\r\n if (this.option(\"intervalCount\") > 1) {\r\n lastDate = new Date(firstDate);\r\n lastDate.setMonth(firstDate.getMonth() + this.option(\"intervalCount\") - 1);\r\n lastDate = new Date(_date2.default.getLastMonthDate(lastDate));\r\n var isSameYear = firstDate.getYear() === lastDate.getYear();\r\n var lastDateText = getMonthYearFormat(lastDate);\r\n var firstDateText = isSameYear ? _date4.default.getMonthNames(\"abbreviated\")[firstDate.getMonth()] : getMonthYearFormat(firstDate);\r\n text = firstDateText + \"-\" + lastDateText\r\n } else {\r\n text = _date4.default.format(date, \"monthandyear\")\r\n }\r\n return {\r\n text: text,\r\n startDate: firstDate,\r\n endDate: lastDate\r\n }\r\n};\r\nvar dateGetter = function(date, offset) {\r\n return new Date(date[this.setter](date[this.getter]() + offset))\r\n};\r\nvar getConfig = function(step) {\r\n var agendaDuration;\r\n switch (step) {\r\n case \"day\":\r\n return {\r\n duration: 1 * this.option(\"intervalCount\"), setter: \"setDate\", getter: \"getDate\", getDate: dateGetter, getCaption: function(date) {\r\n var format = getCaptionFormat(false, this.option(\"intervalCount\"), this._getConfig().duration);\r\n return {\r\n text: _date4.default.format(date, format),\r\n startDate: date,\r\n endDate: date\r\n }\r\n }\r\n };\r\n case \"week\":\r\n return {\r\n duration: 7 * this.option(\"intervalCount\"), setter: \"setDate\", getter: \"getDate\", getDate: dateGetter, getCaption: getWeekCaption\r\n };\r\n case \"workWeek\":\r\n return {\r\n duration: 7 * this.option(\"intervalCount\"), setter: \"setDate\", getter: \"getDate\", getDate: dateGetter, getCaption: function(date) {\r\n return getWeekCaption.call(this, date, 4, true)\r\n }\r\n };\r\n case \"month\":\r\n return {\r\n duration: 1 * this.option(\"intervalCount\"), setter: \"setMonth\", getter: \"getMonth\", getDate: function(date, offset) {\r\n var currentDate = date.getDate();\r\n date.setDate(1);\r\n date = dateGetter.call(this, date, offset);\r\n var lastDate = _date2.default.getLastMonthDay(date);\r\n date.setDate(currentDate < lastDate ? currentDate : lastDate);\r\n return date\r\n }, getCaption: getMonthCaption\r\n };\r\n case \"agenda\":\r\n agendaDuration = this.invoke(\"getAgendaDuration\");\r\n agendaDuration = (0, _type.isNumeric)(agendaDuration) && agendaDuration > 0 ? agendaDuration : 7;\r\n return {\r\n duration: agendaDuration, setter: \"setDate\", getter: \"getDate\", getDate: dateGetter, getCaption: function(date) {\r\n var format = getCaptionFormat(this.option(\"_useShortDateFormat\"));\r\n var firstDate = new Date(date);\r\n var lastDate = new Date(date);\r\n var text;\r\n if (agendaDuration > 1) {\r\n lastDate.setDate(lastDate.getDate() + agendaDuration - 1);\r\n text = formatCaptionByMonths.call(this, lastDate, date)\r\n } else {\r\n text = _date4.default.format(date, format)\r\n }\r\n return {\r\n text: text,\r\n startDate: firstDate,\r\n endDate: lastDate\r\n }\r\n }\r\n }\r\n }\r\n};\r\nvar SchedulerNavigator = _ui4.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n date: new Date,\r\n displayedDate: void 0,\r\n step: \"day\",\r\n intervalCount: 1,\r\n min: void 0,\r\n max: void 0,\r\n firstDayOfWeek: void 0,\r\n _useShortDateFormat: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return !_devices2.default.real().generic || _devices2.default.isSimulator()\r\n },\r\n options: {\r\n _useShortDateFormat: true\r\n }\r\n }])\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"step\":\r\n case \"date\":\r\n case \"intervalCount\":\r\n case \"displayedDate\":\r\n this._updateButtonsState();\r\n this._renderCaption();\r\n this._setCalendarOption(\"value\", this.option(\"date\"));\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._updateButtonsState();\r\n this._setCalendarOption(args.name, args.value);\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._setCalendarOption(args.name, args.value);\r\n break;\r\n case \"customizeDateNavigatorText\":\r\n this._renderCaption();\r\n break;\r\n case \"tabIndex\":\r\n case \"focusStateEnabled\":\r\n this._next.option(args.name, args.value);\r\n this._caption.option(args.name, args.value);\r\n this._prev.option(args.name, args.value);\r\n this._setCalendarOption(args.name, args.value);\r\n this.callBase(args);\r\n break;\r\n case \"_useShortDateFormat\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(ELEMENT_CLASS);\r\n this._initButtons()\r\n },\r\n _initButtons: function() {\r\n var $next = (0, _renderer2.default)(\"
\").addClass(NEXT_BUTTON_CLASS);\r\n this._next = this._createComponent($next, _button2.default, {\r\n icon: \"chevronnext\",\r\n onClick: this._updateCurrentDate.bind(this, 1),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n integrationOptions: {}\r\n });\r\n var $caption = (0, _renderer2.default)(\"
\").addClass(CAPTION_BUTTON_CLASS);\r\n this._caption = this._createComponent($caption, _button2.default, {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n integrationOptions: {}\r\n });\r\n var $prev = (0, _renderer2.default)(\"
\").addClass(PREVIOUS_BUTTON_CLASS);\r\n this._prev = this._createComponent($prev, _button2.default, {\r\n icon: \"chevronprev\",\r\n onClick: this._updateCurrentDate.bind(this, -1),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n integrationOptions: {}\r\n });\r\n this.setAria(\"label\", \"Next period\", $next);\r\n this.setAria(\"label\", \"Previous period\", $prev);\r\n this._updateButtonsState();\r\n this.$element().append($prev, $caption, $next)\r\n },\r\n _updateButtonsState: function() {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n var caption = this._getConfig().getCaption.call(this, this.option(\"displayedDate\") || this.option(\"date\"));\r\n min = min ? _date2.default.trimTime(min) : min;\r\n max = max ? _date2.default.trimTime(max) : max;\r\n max && max.setHours(23, 59, 59);\r\n this._prev.option(\"disabled\", min && !isNaN(min.getTime()) && this._getNextDate(-1, caption.endDate) < min);\r\n this._next.option(\"disabled\", max && !isNaN(max.getTime()) && this._getNextDate(1, caption.startDate) > max)\r\n },\r\n _updateCurrentDate: function(direction) {\r\n var date = this._getNextDate(direction);\r\n _date2.default.normalizeDate(date, this.option(\"min\"), this.option(\"max\"));\r\n this.notifyObserver(\"currentDateUpdated\", date)\r\n },\r\n _getNextDate: function(direction) {\r\n var initialDate = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;\r\n var stepConfig = this._getConfig();\r\n var offset = stepConfig.duration * direction;\r\n var date = stepConfig.getDate(new Date(initialDate || this.option(\"date\")), offset);\r\n return date\r\n },\r\n _renderFocusTarget: _common.noop,\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderCaption()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderPopover();\r\n this._renderCaptionKeys()\r\n },\r\n _isMobileLayout: function() {\r\n return !_devices2.default.current().generic\r\n },\r\n _renderPopover: function() {\r\n var _this = this;\r\n var overlayType = this._isMobileLayout() ? _popup2.default : _popover2.default;\r\n var popoverContainer = (0, _renderer2.default)(\"
\").addClass(CALENDAR_POPOVER_CLASS);\r\n this._popover = this._createComponent(popoverContainer, overlayType, {\r\n contentTemplate: function() {\r\n return _this._createPopupContent()\r\n },\r\n defaultOptionsRules: [{\r\n device: function() {\r\n return !_devices2.default.current().generic\r\n },\r\n options: {\r\n fullScreen: true,\r\n showCloseButton: false,\r\n toolbarItems: [{\r\n shortcut: \"cancel\"\r\n }]\r\n }\r\n }, {\r\n device: function() {\r\n return _devices2.default.current().generic\r\n },\r\n options: {\r\n target: this._caption.$element()\r\n }\r\n }]\r\n });\r\n this._popover.$element().appendTo(this.$element())\r\n },\r\n _createScrollable: function(content) {\r\n var result = this._createComponent((0, _renderer2.default)(\"
\"), _ui6.default, {\r\n direction: \"vertical\"\r\n });\r\n result.$content().append(content);\r\n return result\r\n },\r\n _createPopupContent: function() {\r\n var result = (0, _renderer2.default)(\"
\").addClass(CALENDAR_CLASS);\r\n this._calendar = this._createComponent(result, _calendar2.default, this._calendarOptions());\r\n if (this._isMobileLayout()) {\r\n var scrollable = this._createScrollable(result);\r\n return scrollable.$element()\r\n }\r\n return result\r\n },\r\n _calendarOptions: function() {\r\n return {\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n value: this.option(\"date\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n onValueChanged: function(e) {\r\n if (!this.option(\"visible\")) {\r\n return\r\n }\r\n this.notifyObserver(\"currentDateUpdated\", e.value);\r\n this._popover.hide()\r\n }.bind(this),\r\n hasFocus: function() {\r\n return true\r\n },\r\n tabIndex: null\r\n }\r\n },\r\n _renderCaption: function() {\r\n var _this2 = this;\r\n var date = this.option(\"displayedDate\") || this.option(\"date\");\r\n var captionConfig = this._getConfig().getCaption.call(this, date);\r\n var customizationFunction = this.option(\"customizeDateNavigatorText\");\r\n var caption = _type2.default.isFunction(customizationFunction) ? customizationFunction(captionConfig) : captionConfig.text;\r\n this._caption.option({\r\n text: caption,\r\n onKeyboardHandled: function(opts) {\r\n _this2.option(\"focusStateEnabled\") && !_this2.option(\"disabled\") && _this2._calendar._keyboardHandler(opts)\r\n },\r\n onClick: function() {\r\n return _this2._popover.toggle()\r\n }\r\n })\r\n },\r\n _renderCaptionKeys: function() {\r\n if (!this.option(\"focusStateEnabled\") || this.option(\"disabled\")) {\r\n return\r\n }\r\n var that = this;\r\n var executeHandler = function() {\r\n if (that._popover.$content().is(\":hidden\")) {\r\n that._popover.show()\r\n } else {\r\n return true\r\n }\r\n };\r\n var tabHandler = function() {\r\n that._popover.hide()\r\n };\r\n this._caption.registerKeyHandler(\"enter\", executeHandler);\r\n this._caption.registerKeyHandler(\"space\", executeHandler);\r\n this._caption.registerKeyHandler(\"tab\", tabHandler)\r\n },\r\n _setCalendarOption: function(name, value) {\r\n if (this._calendar) {\r\n this._calendar.option(name, value)\r\n }\r\n },\r\n _getConfig: function() {\r\n var step = this.option(\"step\");\r\n var config = getConfig.call(this, step);\r\n if (!config) {\r\n throw _ui2.default.Error(\"E1033\", step)\r\n }\r\n return config\r\n }\r\n}).include(_uiScheduler2.default);\r\n(0, _component_registrator2.default)(\"dxSchedulerNavigator\", SchedulerNavigator);\r\nmodule.exports = SchedulerNavigator;\r\n","/*!\n * devextreme-vue\n * Version: 20.1.7\n * Build date: Tue Aug 25 2020\n *\n * Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar VueType = require(\"vue\");\nvar Vue = VueType.default || VueType;\nvar scheduler_1 = require(\"devextreme/ui/scheduler\");\nvar component_1 = require(\"./core/component\");\nvar configuration_component_1 = require(\"./core/configuration-component\");\nvar DxScheduler = Vue.extend({\n extends: component_1.DxComponent,\n props: {\n accessKey: String,\n adaptivityEnabled: Boolean,\n allDayExpr: String,\n appointmentCollectorTemplate: {},\n appointmentDragging: Object,\n appointmentTemplate: {},\n appointmentTooltipTemplate: {},\n cellDuration: Number,\n crossScrollingEnabled: Boolean,\n currentDate: {},\n currentView: String,\n customizeDateNavigatorText: Function,\n dataCellTemplate: {},\n dataSource: [Array, Object, String],\n dateCellTemplate: {},\n dateSerializationFormat: String,\n descriptionExpr: String,\n disabled: Boolean,\n editing: [Boolean, Object],\n elementAttr: Object,\n endDateExpr: String,\n endDateTimeZoneExpr: String,\n endDayHour: Number,\n firstDayOfWeek: {\n type: Number,\n validator: function (v) { return typeof (v) !== \"number\" || [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6\n ].indexOf(v) !== -1; }\n },\n focusStateEnabled: Boolean,\n groupByDate: Boolean,\n groups: Array,\n height: [Function, Number, String],\n hint: String,\n indicatorUpdateInterval: Number,\n max: {},\n maxAppointmentsPerCell: [Number, String],\n min: {},\n noDataText: String,\n onAppointmentAdded: Function,\n onAppointmentAdding: Function,\n onAppointmentClick: [Function, String],\n onAppointmentContextMenu: [Function, String],\n onAppointmentDblClick: [Function, String],\n onAppointmentDeleted: Function,\n onAppointmentDeleting: Function,\n onAppointmentFormOpening: Function,\n onAppointmentRendered: Function,\n onAppointmentUpdated: Function,\n onAppointmentUpdating: Function,\n onCellClick: [Function, String],\n onCellContextMenu: [Function, String],\n onContentReady: Function,\n onDisposing: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n recurrenceEditMode: String,\n recurrenceExceptionExpr: String,\n recurrenceRuleExpr: String,\n remoteFiltering: Boolean,\n resourceCellTemplate: {},\n resources: Array,\n rtlEnabled: Boolean,\n selectedCellData: Array,\n shadeUntilCurrentTime: Boolean,\n showAllDayPanel: Boolean,\n showCurrentTimeIndicator: Boolean,\n startDateExpr: String,\n startDateTimeZoneExpr: String,\n startDayHour: Number,\n tabIndex: Number,\n textExpr: String,\n timeCellTemplate: {},\n timeZone: String,\n useDropDownViewSwitcher: Boolean,\n views: Array,\n visible: Boolean,\n width: [Function, Number, String]\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = scheduler_1.default;\n this.$_expectedChildren = {\n appointmentDragging: { isCollectionItem: false, optionName: \"appointmentDragging\" },\n editing: { isCollectionItem: false, optionName: \"editing\" },\n resource: { isCollectionItem: true, optionName: \"resources\" },\n view: { isCollectionItem: true, optionName: \"views\" }\n };\n }\n});\nexports.DxScheduler = DxScheduler;\nvar DxAppointmentDragging = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n autoScroll: Boolean,\n data: {},\n group: String,\n onAdd: Function,\n onDragEnd: Function,\n onDragMove: Function,\n onDragStart: Function,\n onRemove: Function,\n scrollSensitivity: Number,\n scrollSpeed: Number\n }\n});\nexports.DxAppointmentDragging = DxAppointmentDragging;\nDxAppointmentDragging.$_optionName = \"appointmentDragging\";\nvar DxEditing = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n allowAdding: Boolean,\n allowDeleting: Boolean,\n allowDragging: Boolean,\n allowEditingTimeZones: Boolean,\n allowResizing: Boolean,\n allowTimeZoneEditing: Boolean,\n allowUpdating: Boolean\n }\n});\nexports.DxEditing = DxEditing;\nDxEditing.$_optionName = \"editing\";\nvar DxResource = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n allowMultiple: Boolean,\n colorExpr: String,\n dataSource: [Array, Object, String],\n displayExpr: [Function, String],\n fieldExpr: String,\n label: String,\n useColorAsDefault: Boolean,\n valueExpr: [Function, String]\n }\n});\nexports.DxResource = DxResource;\nDxResource.$_optionName = \"resources\";\nDxResource.$_isCollectionItem = true;\nvar DxView = Vue.extend({\n extends: configuration_component_1.DxConfiguration,\n props: {\n agendaDuration: Number,\n appointmentCollectorTemplate: {},\n appointmentTemplate: {},\n appointmentTooltipTemplate: {},\n cellDuration: Number,\n dataCellTemplate: {},\n dateCellTemplate: {},\n dropDownAppointmentTemplate: {},\n endDayHour: Number,\n firstDayOfWeek: {\n type: Number,\n validator: function (v) { return typeof (v) !== \"number\" || [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6\n ].indexOf(v) !== -1; }\n },\n groupByDate: Boolean,\n groupOrientation: String,\n groups: Array,\n intervalCount: Number,\n maxAppointmentsPerCell: [Number, String],\n name: String,\n resourceCellTemplate: {},\n startDate: {},\n startDayHour: Number,\n timeCellTemplate: {},\n type: String\n }\n});\nexports.DxView = DxView;\nDxView.$_optionName = \"views\";\nDxView.$_isCollectionItem = true;\nexports.default = DxScheduler;\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.work_space.grouped.strategy.vertical.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _position = require(\"../../../core/utils/position\");\r\nvar _uiSchedulerWork_spaceGrouped = require(\"./ui.scheduler.work_space.grouped.strategy\");\r\nvar _uiSchedulerWork_spaceGrouped2 = _interopRequireDefault(_uiSchedulerWork_spaceGrouped);\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar VERTICAL_GROUPED_ATTR = \"dx-group-column-count\";\r\nvar DATE_HEADER_OFFSET = 10;\r\nvar WORK_SPACE_BORDER = 1;\r\nvar VerticalGroupedStrategy = function(_GroupedStrategy) {\r\n _inherits(VerticalGroupedStrategy, _GroupedStrategy);\r\n var _super = _createSuper(VerticalGroupedStrategy);\r\n\r\n function VerticalGroupedStrategy() {\r\n _classCallCheck(this, VerticalGroupedStrategy);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(VerticalGroupedStrategy, [{\r\n key: \"prepareCellIndexes\",\r\n value: function(cellCoordinates, groupIndex, inAllDayRow) {\r\n var rowIndex = cellCoordinates.rowIndex + groupIndex * this._workSpace._getRowCount();\r\n if (this._workSpace.supportAllDayRow() && this._workSpace.option(\"showAllDayPanel\")) {\r\n rowIndex += groupIndex;\r\n if (!inAllDayRow) {\r\n rowIndex += 1\r\n }\r\n }\r\n return {\r\n rowIndex: rowIndex,\r\n cellIndex: cellCoordinates.cellIndex\r\n }\r\n }\r\n }, {\r\n key: \"calculateCellIndex\",\r\n value: function(rowIndex, cellIndex) {\r\n rowIndex %= this._workSpace._getRowCount();\r\n return this._workSpace._getRowCount() * cellIndex + rowIndex\r\n }\r\n }, {\r\n key: \"getGroupIndex\",\r\n value: function(rowIndex) {\r\n return Math.floor(rowIndex / this._workSpace._getRowCount())\r\n }\r\n }, {\r\n key: \"calculateHeaderCellRepeatCount\",\r\n value: function() {\r\n return 1\r\n }\r\n }, {\r\n key: \"insertAllDayRowsIntoDateTable\",\r\n value: function() {\r\n return this._workSpace.option(\"showAllDayPanel\")\r\n }\r\n }, {\r\n key: \"getTotalCellCount\",\r\n value: function() {\r\n return this._workSpace._getCellCount()\r\n }\r\n }, {\r\n key: \"getTotalRowCount\",\r\n value: function() {\r\n return this._workSpace._getRowCount() * this._workSpace._getGroupCount()\r\n }\r\n }, {\r\n key: \"addAdditionalGroupCellClasses\",\r\n value: function(cellClass, index, i, j) {\r\n cellClass = this._addLastGroupCellClass(cellClass, i + 1);\r\n return this._addFirstGroupCellClass(cellClass, i + 1)\r\n }\r\n }, {\r\n key: \"_addLastGroupCellClass\",\r\n value: function(cellClass, index) {\r\n if (index % this._workSpace._getRowCount() === 0) {\r\n return cellClass + \" \" + this.getLastGroupCellClass()\r\n }\r\n return cellClass\r\n }\r\n }, {\r\n key: \"_addFirstGroupCellClass\",\r\n value: function(cellClass, index) {\r\n if ((index - 1) % this._workSpace._getRowCount() === 0) {\r\n return cellClass + \" \" + this.getFirstGroupCellClass()\r\n }\r\n return cellClass\r\n }\r\n }, {\r\n key: \"getHorizontalMax\",\r\n value: function() {\r\n return this._workSpace.getMaxAllowedPosition()[0]\r\n }\r\n }, {\r\n key: \"getVerticalMax\",\r\n value: function(groupIndex) {\r\n var maxAllowedPosition = this._workSpace.getMaxAllowedVerticalPosition()[groupIndex];\r\n maxAllowedPosition += this._getOffsetByAllDayPanel(groupIndex);\r\n return maxAllowedPosition\r\n }\r\n }, {\r\n key: \"_getOffsetByAllDayPanel\",\r\n value: function(groupIndex) {\r\n var result = 0;\r\n if (this._workSpace.supportAllDayRow() && this._workSpace.option(\"showAllDayPanel\")) {\r\n result = this._workSpace.getCellHeight() * (groupIndex + 1)\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"_getGroupTop\",\r\n value: function(groupIndex) {\r\n return this._workSpace.getMaxAllowedVerticalPosition()[groupIndex] - this._workSpace.getCellHeight() * this._workSpace._getRowCount()\r\n }\r\n }, {\r\n key: \"calculateTimeCellRepeatCount\",\r\n value: function() {\r\n return this._workSpace._getGroupCount() || 1\r\n }\r\n }, {\r\n key: \"getWorkSpaceMinWidth\",\r\n value: function() {\r\n var minWidth = this._workSpace._getWorkSpaceWidth();\r\n var workspaceContainerWidth = (0, _position.getBoundingRect)(this._workSpace.$element().get(0)).width - this._workSpace.getTimePanelWidth() - this._workSpace.getGroupTableWidth() - 2 * WORK_SPACE_BORDER;\r\n if (minWidth < workspaceContainerWidth) {\r\n minWidth = workspaceContainerWidth\r\n }\r\n return minWidth\r\n }\r\n }, {\r\n key: \"getAllDayOffset\",\r\n value: function() {\r\n return 0\r\n }\r\n }, {\r\n key: \"getAllDayTableHeight\",\r\n value: function() {\r\n return 0\r\n }\r\n }, {\r\n key: \"getGroupCountAttr\",\r\n value: function() {\r\n return {\r\n attr: VERTICAL_GROUPED_ATTR,\r\n count: this._workSpace.option(\"groups\") && this._workSpace.option(\"groups\").length\r\n }\r\n }\r\n }, {\r\n key: \"getLeftOffset\",\r\n value: function() {\r\n return this._workSpace.getTimePanelWidth() + this._workSpace.getGroupTableWidth()\r\n }\r\n }, {\r\n key: \"getGroupBoundsOffset\",\r\n value: function(cellCount, $cells, cellWidth, coordinates) {\r\n var groupIndex = coordinates.groupIndex;\r\n var startOffset = $cells.eq(0).offset().left;\r\n var endOffset = $cells.eq(cellCount - 1).offset().left + cellWidth;\r\n var dayHeight = this._workSpace._calculateDayDuration() / this._workSpace.option(\"hoursInterval\") * this._workSpace.getCellHeight();\r\n var scrollTop = this.getScrollableScrollTop();\r\n var topOffset = groupIndex * dayHeight + (0, _position.getBoundingRect)(this._workSpace._$thead.get(0)).height + this._workSpace.invoke(\"getHeaderHeight\") + DATE_HEADER_OFFSET - scrollTop;\r\n if (this._workSpace.option(\"showAllDayPanel\") && this._workSpace.supportAllDayRow()) {\r\n topOffset += this._workSpace.getCellHeight() * (groupIndex + 1)\r\n }\r\n var bottomOffset = topOffset + dayHeight;\r\n return {\r\n left: startOffset,\r\n right: endOffset,\r\n top: topOffset,\r\n bottom: bottomOffset\r\n }\r\n }\r\n }, {\r\n key: \"shiftIndicator\",\r\n value: function($indicator, height, rtlOffset, i) {\r\n var offset = this._workSpace.getIndicatorOffset(0);\r\n var tableOffset = this._workSpace.option(\"crossScrollingEnabled\") ? 0 : this._workSpace.getGroupTableWidth();\r\n var horizontalOffset = rtlOffset ? rtlOffset - offset : offset;\r\n var verticalOffset = this._workSpace._getRowCount() * this._workSpace.getCellHeight() * i;\r\n if (this._workSpace.supportAllDayRow() && this._workSpace.option(\"showAllDayPanel\")) {\r\n verticalOffset += this._workSpace.getAllDayHeight() * (i + 1)\r\n }\r\n $indicator.css(\"left\", horizontalOffset + tableOffset);\r\n $indicator.css(\"top\", height + verticalOffset)\r\n }\r\n }, {\r\n key: \"getShaderOffset\",\r\n value: function(i, width) {\r\n var offset = this._workSpace.option(\"crossScrollingEnabled\") ? 0 : this._workSpace.getGroupTableWidth();\r\n return this._workSpace.option(\"rtlEnabled\") ? (0, _position.getBoundingRect)(this._$container.get(0)).width - offset - this._workSpace.getWorkSpaceLeftOffset() - width : offset\r\n }\r\n }, {\r\n key: \"getShaderTopOffset\",\r\n value: function(i) {\r\n return 0\r\n }\r\n }, {\r\n key: \"getShaderHeight\",\r\n value: function() {\r\n var height = this._workSpace.getIndicationHeight();\r\n if (this._workSpace.supportAllDayRow() && this._workSpace.option(\"showAllDayPanel\")) {\r\n height += this._workSpace.getCellHeight()\r\n }\r\n return height\r\n }\r\n }, {\r\n key: \"getShaderMaxHeight\",\r\n value: function() {\r\n var height = this._workSpace._getRowCount() * this._workSpace.getCellHeight();\r\n if (this._workSpace.supportAllDayRow() && this._workSpace.option(\"showAllDayPanel\")) {\r\n height += this._workSpace.getCellHeight()\r\n }\r\n return height\r\n }\r\n }, {\r\n key: \"getShaderWidth\",\r\n value: function() {\r\n return this._workSpace.getIndicationWidth(0)\r\n }\r\n }, {\r\n key: \"getScrollableScrollTop\",\r\n value: function() {\r\n return this._workSpace.getScrollable().scrollTop()\r\n }\r\n }, {\r\n key: \"getGroupIndexByCell\",\r\n value: function($cell) {\r\n var rowIndex = $cell.parent().index();\r\n var rowCount = this._workSpace._getRowCountWithAllDayRows();\r\n return Math.ceil((rowIndex + 1) / rowCount)\r\n }\r\n }]);\r\n return VerticalGroupedStrategy\r\n}(_uiSchedulerWork_spaceGrouped2.default);\r\nmodule.exports = VerticalGroupedStrategy;\r\n","/**\r\n * DevExtreme (ui/scheduler/constants.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nvar LIST_ITEM_DATA_KEY = exports.LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar FIXED_CONTAINER_CLASS = exports.FIXED_CONTAINER_CLASS = \"dx-scheduler-fixed-appointments\";\r\nvar LIST_ITEM_CLASS = exports.LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar REDUCED_APPOINTMENT_CLASS = exports.REDUCED_APPOINTMENT_CLASS = \"dx-scheduler-appointment-reduced\";\r\nvar REDUCED_APPOINTMENT_ICON = exports.REDUCED_APPOINTMENT_ICON = \"dx-scheduler-appointment-reduced-icon\";\r\nvar RECURRENCE_APPOINTMENT_CLASS = exports.RECURRENCE_APPOINTMENT_CLASS = \"dx-scheduler-appointment-recurrence\";\r\nvar EMPTY_APPOINTMENT_CLASS = exports.EMPTY_APPOINTMENT_CLASS = \"dx-scheduler-appointment-empty\";\r\nvar ALL_DAY_APPOINTMENT_CLASS = exports.ALL_DAY_APPOINTMENT_CLASS = \"dx-scheduler-all-day-appointment\";\r\nvar REDUCED_APPOINTMENT_PARTS_CLASSES = exports.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\nvar DIRECTION_APPOINTMENT_CLASSES = exports.DIRECTION_APPOINTMENT_CLASSES = {\r\n horizontal: \"dx-scheduler-appointment-horizontal\",\r\n vertical: \"dx-scheduler-appointment-vertical\"\r\n};\r\nvar AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS = exports.AGENDA_LAST_IN_DATE_APPOINTMENT_CLASS = \"dx-scheduler-last-in-date-agenda-appointment\";\r\n","/**\r\n * DevExtreme (ui/scheduler/ui.scheduler.appointment.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _events_engine = require(\"../../events/core/events_engine\");\r\nvar _events_engine2 = _interopRequireDefault(_events_engine);\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _translator2 = _interopRequireDefault(_translator);\r\nvar _utils = require(\"./utils.recurrence\");\r\nvar _utils2 = _interopRequireDefault(_utils);\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _component_registrator = require(\"../../core/component_registrator\");\r\nvar _component_registrator2 = _interopRequireDefault(_component_registrator);\r\nvar _ui = require(\"../tooltip/ui.tooltip\");\r\nvar _ui2 = _interopRequireDefault(_ui);\r\nvar _uiScheduler = require(\"./ui.scheduler.publisher_mixin\");\r\nvar _uiScheduler2 = _interopRequireDefault(_uiScheduler);\r\nvar _utils3 = require(\"../../events/utils\");\r\nvar eventUtils = _interopRequireWildcard(_utils3);\r\nvar _pointer = require(\"../../events/pointer\");\r\nvar _pointer2 = _interopRequireDefault(_pointer);\r\nvar _dom_component = require(\"../../core/dom_component\");\r\nvar _dom_component2 = _interopRequireDefault(_dom_component);\r\nvar _resizable = require(\"../resizable\");\r\nvar _resizable2 = _interopRequireDefault(_resizable);\r\nvar _message = require(\"../../localization/message\");\r\nvar _message2 = _interopRequireDefault(_message);\r\nvar _date = require(\"../../localization/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _constants = require(\"./constants\");\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DEFAULT_HORIZONTAL_HANDLES = \"left right\";\r\nvar DEFAULT_VERTICAL_HANDLES = \"top bottom\";\r\nvar REDUCED_APPOINTMENT_POINTERENTER_EVENT_NAME = eventUtils.addNamespace(_pointer2.default.enter, \"dxSchedulerAppointment\");\r\nvar REDUCED_APPOINTMENT_POINTERLEAVE_EVENT_NAME = eventUtils.addNamespace(_pointer2.default.leave, \"dxSchedulerAppointment\");\r\nvar Appointment = _dom_component2.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n data: {},\r\n geometry: {\r\n top: 0,\r\n left: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n allowDrag: true,\r\n allowResize: true,\r\n reduced: null,\r\n isCompact: false,\r\n direction: \"vertical\",\r\n resizableConfig: {},\r\n cellHeight: 0,\r\n cellWidth: 0\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"data\":\r\n case \"geometry\":\r\n case \"allowDrag\":\r\n case \"allowResize\":\r\n case \"reduced\":\r\n case \"sortedIndex\":\r\n case \"isCompact\":\r\n case \"direction\":\r\n case \"resizableConfig\":\r\n case \"cellHeight\":\r\n case \"cellWidth\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getHorizontalResizingRule: function() {\r\n var reducedHandles = {\r\n head: this.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n body: \"\",\r\n tail: this.option(\"rtlEnabled\") ? \"left\" : \"right\"\r\n };\r\n return {\r\n handles: this.option(\"reduced\") ? reducedHandles[this.option(\"reduced\")] : DEFAULT_HORIZONTAL_HANDLES,\r\n minHeight: 0,\r\n minWidth: this.invoke(\"getCellWidth\"),\r\n step: this.invoke(\"getResizableStep\")\r\n }\r\n },\r\n _getVerticalResizingRule: function() {\r\n var height = this.invoke(\"getCellHeight\");\r\n return {\r\n handles: DEFAULT_VERTICAL_HANDLES,\r\n minWidth: 0,\r\n minHeight: height,\r\n step: height\r\n }\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderAppointmentGeometry();\r\n this._renderEmptyClass();\r\n this._renderReducedAppointment();\r\n this._renderAllDayClass();\r\n this._renderDirection();\r\n this.$element().data(\"dxAppointmentStartDate\", this.option(\"startDate\"));\r\n this.$element().attr(\"title\", this.invoke(\"getField\", \"text\", this.option(\"data\")));\r\n this.$element().attr(\"role\", \"button\");\r\n this._renderRecurrenceClass();\r\n this._renderResizable()\r\n },\r\n _renderAppointmentGeometry: function() {\r\n var geometry = this.option(\"geometry\");\r\n var $element = this.$element();\r\n _translator2.default.move($element, {\r\n top: geometry.top,\r\n left: geometry.left\r\n });\r\n $element.css({\r\n width: geometry.width < 0 ? 0 : geometry.width,\r\n height: geometry.height < 0 ? 0 : geometry.height\r\n })\r\n },\r\n _renderEmptyClass: function() {\r\n var geometry = this.option(\"geometry\");\r\n if (geometry.empty || this.option(\"isCompact\")) {\r\n this.$element().addClass(_constants.EMPTY_APPOINTMENT_CLASS)\r\n }\r\n },\r\n _renderReducedAppointment: function() {\r\n var reducedPart = this.option(\"reduced\");\r\n if (!reducedPart) {\r\n return\r\n }\r\n this.$element().toggleClass(_constants.REDUCED_APPOINTMENT_CLASS, true).toggleClass(_constants.REDUCED_APPOINTMENT_PARTS_CLASSES[reducedPart], true);\r\n this._renderAppointmentReducedIcon()\r\n },\r\n _renderAppointmentReducedIcon: function() {\r\n var $icon = (0, _renderer2.default)(\"
\").addClass(_constants.REDUCED_APPOINTMENT_ICON).appendTo(this.$element());\r\n var endDate = this._getEndDate();\r\n var tooltipLabel = _message2.default.format(\"dxScheduler-editorLabelEndDate\");\r\n var tooltipText = [tooltipLabel, \": \", _date2.default.format(endDate, \"monthAndDay\"), \", \", _date2.default.format(endDate, \"year\")].join(\"\");\r\n _events_engine2.default.off($icon, REDUCED_APPOINTMENT_POINTERENTER_EVENT_NAME);\r\n _events_engine2.default.on($icon, REDUCED_APPOINTMENT_POINTERENTER_EVENT_NAME, function() {\r\n _ui2.default.show({\r\n target: $icon,\r\n content: tooltipText\r\n })\r\n });\r\n _events_engine2.default.off($icon, REDUCED_APPOINTMENT_POINTERLEAVE_EVENT_NAME);\r\n _events_engine2.default.on($icon, REDUCED_APPOINTMENT_POINTERLEAVE_EVENT_NAME, function() {\r\n _ui2.default.hide()\r\n })\r\n },\r\n _getEndDate: function() {\r\n var result = this.invoke(\"getField\", \"endDate\", this.option(\"data\"));\r\n if (result) {\r\n return new Date(result)\r\n }\r\n return result\r\n },\r\n _renderAllDayClass: function() {\r\n this.$element().toggleClass(_constants.ALL_DAY_APPOINTMENT_CLASS, !!this.option(\"allDay\"))\r\n },\r\n _renderRecurrenceClass: function() {\r\n var rule = this.invoke(\"getField\", \"recurrenceRule\", this.option(\"data\"));\r\n if (_utils2.default.getRecurrenceRule(rule).isValid) {\r\n this.$element().addClass(_constants.RECURRENCE_APPOINTMENT_CLASS)\r\n }\r\n },\r\n _renderDirection: function() {\r\n this.$element().addClass(_constants.DIRECTION_APPOINTMENT_CLASSES[this.option(\"direction\")])\r\n },\r\n _createResizingConfig: function() {\r\n var config = \"vertical\" === this.option(\"direction\") ? this._getVerticalResizingRule() : this._getHorizontalResizingRule();\r\n config.roundStepValue = true;\r\n if (!this.invoke(\"isGroupedByDate\")) {\r\n config.stepPrecision = \"strict\"\r\n }\r\n return config\r\n },\r\n _renderResizable: function() {\r\n if (this.option(\"allowResize\")) {\r\n this._createComponent(this.$element(), _resizable2.default, (0, _extend.extend)(this._createResizingConfig(), this.option(\"resizableConfig\")))\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n}).include(_uiScheduler2.default);\r\n(0, _component_registrator2.default)(\"dxSchedulerAppointment\", Appointment);\r\nmodule.exports = Appointment;\r\n","/**\r\n * DevExtreme (ui/scheduler/compactAppointmentsHelper.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nexports.CompactAppointmentsHelper = void 0;\r\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _button = require(\"../button\");\r\nvar _button2 = _interopRequireDefault(_button);\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _translator2 = _interopRequireDefault(_translator);\r\nvar _message = require(\"../../localization/message\");\r\nvar _message2 = _interopRequireDefault(_message);\r\nvar _function_template = require(\"../../core/templates/function_template\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _deferred2 = _interopRequireDefault(_deferred);\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position = require(\"../../core/utils/position\");\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\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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 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 = exports.CompactAppointmentsHelper = function() {\r\n function CompactAppointmentsHelper(instance) {\r\n _classCallCheck(this, CompactAppointmentsHelper);\r\n this.instance = instance;\r\n this.elements = []\r\n }\r\n _createClass(CompactAppointmentsHelper, [{\r\n key: \"render\",\r\n value: 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._createAppointmentsData(items));\r\n return $button\r\n }\r\n }, {\r\n key: \"clear\",\r\n value: 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 }, {\r\n key: \"_createAppointmentsData\",\r\n value: function(items) {\r\n return items.data.map(function(item, index) {\r\n return {\r\n data: item,\r\n color: items.colors[index],\r\n settings: items.settings[index]\r\n }\r\n })\r\n }\r\n }, {\r\n key: \"_onButtonClick\",\r\n value: function(e, options) {\r\n var $button = (0, _renderer2.default)(e.element);\r\n this.instance.showAppointmentTooltipCore($button, $button.data(\"items\"), this._getExtraOptionsForTooltip(options))\r\n }\r\n }, {\r\n key: \"_getExtraOptionsForTooltip\",\r\n value: function(options) {\r\n return {\r\n clickEvent: this._clickEvent(options.onAppointmentClick).bind(this),\r\n dragBehavior: options.allowDrag && this._createTooltipDragBehavior(options).bind(this),\r\n dropDownAppointmentTemplate: this.instance.option().dropDownAppointmentTemplate,\r\n isButtonClick: true\r\n }\r\n }\r\n }, {\r\n key: \"_clickEvent\",\r\n value: function(onAppointmentClick) {\r\n var _this = this;\r\n return function(e) {\r\n var config = {\r\n itemData: e.itemData.data,\r\n itemElement: e.itemElement\r\n };\r\n var createClickEvent = (0, _extend.extendFromObject)(_this.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 }, {\r\n key: \"_createTooltipDragBehavior\",\r\n value: function(options) {\r\n var _this2 = this;\r\n return function(e) {\r\n var dragElement;\r\n var $element = (0, _renderer2.default)(e.element);\r\n var dragBehavior = _this2.instance.getWorkSpace().dragBehavior;\r\n dragBehavior.addTo($element, {\r\n filter: \".\".concat(_constants.LIST_ITEM_CLASS),\r\n container: _this2.instance.$element().find(\".\".concat(_constants.FIXED_CONTAINER_CLASS)),\r\n cursorOffset: function() {\r\n var $dragElement = (0, _renderer2.default)(dragElement);\r\n return {\r\n x: $dragElement.width() / 2,\r\n y: $dragElement.height() / 2\r\n }\r\n },\r\n dragTemplate: function() {\r\n return dragElement\r\n },\r\n onDragStart: function(e) {\r\n var event = e.event;\r\n var itemData = (0, _renderer2.default)(e.itemElement).data(_constants.LIST_ITEM_DATA_KEY);\r\n if (itemData && !itemData.data.disabled) {\r\n event.data = event.data || {};\r\n event.data.itemElement = dragElement = _this2._createDragAppointment(itemData.data, itemData.settings);\r\n dragBehavior.onDragStart(event.data);\r\n _translator2.default.resetPosition((0, _renderer2.default)(dragElement))\r\n }\r\n },\r\n onDragEnd: function(e) {\r\n var itemData = (0, _renderer2.default)(e.itemElement).data(_constants.LIST_ITEM_DATA_KEY);\r\n if (itemData && !itemData.data.disabled) {\r\n dragBehavior.onDragEnd(e)\r\n }\r\n }\r\n })\r\n }\r\n }\r\n }, {\r\n key: \"_createDragAppointment\",\r\n value: function(itemData, settings) {\r\n var appointments = this.instance.getAppointmentsInstance();\r\n var appointmentIndex = appointments.option(\"items\").length;\r\n settings.isCompact = false;\r\n settings.virtual = false;\r\n appointments._renderItem(appointmentIndex, {\r\n itemData: itemData,\r\n settings: [settings]\r\n });\r\n return appointments._findItemElementByItem(itemData)[0]\r\n }\r\n }, {\r\n key: \"_getCollectorOffset\",\r\n value: function(width, cellWidth) {\r\n return cellWidth - width - this._getCollectorRightOffset()\r\n }\r\n }, {\r\n key: \"_getCollectorRightOffset\",\r\n value: function() {\r\n return this.instance.getRenderingStrategyInstance()._isCompactTheme() ? COMPACT_THEME_WEEK_VIEW_COLLECTOR_OFFSET : WEEK_VIEW_COLLECTOR_OFFSET\r\n }\r\n }, {\r\n key: \"_makeBackgroundDarker\",\r\n value: 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 }, {\r\n key: \"_makeBackgroundColor\",\r\n value: function($button, colors, color) {\r\n _deferred2.default.when.apply(null, colors).done(function() {\r\n this._makeBackgroundColorCore($button, color, arguments)\r\n }.bind(this))\r\n }\r\n }, {\r\n key: \"_makeBackgroundColorCore\",\r\n value: 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 }, {\r\n key: \"_setPosition\",\r\n value: function(element, position) {\r\n _translator2.default.move(element, {\r\n top: position.top,\r\n left: position.left\r\n })\r\n }\r\n }, {\r\n key: \"_createCompactButton\",\r\n value: function(template, options) {\r\n var _this3 = this;\r\n var $button = this._createCompactButtonElement(options);\r\n return this.instance._createComponent($button, _button2.default, {\r\n type: \"default\",\r\n width: options.width,\r\n height: options.height,\r\n onClick: function(e) {\r\n return _this3._onButtonClick(e, options)\r\n },\r\n template: this._renderTemplate(template, options.items, options.isCompact)\r\n })\r\n }\r\n }, {\r\n key: \"_createCompactButtonElement\",\r\n value: 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, _renderer2.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 }, {\r\n key: \"_renderTemplate\",\r\n value: 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 }, {\r\n key: \"_createTemplate\",\r\n value: function(count, isCompact) {\r\n this._initButtonTemplate(count, isCompact);\r\n return this.instance._getAppointmentTemplate(\"appointmentCollectorTemplate\")\r\n }\r\n }, {\r\n key: \"_initButtonTemplate\",\r\n value: function(count, isCompact) {\r\n var _this4 = this;\r\n this.instance._templateManager.addDefaultTemplates({\r\n appointmentCollector: new _function_template.FunctionTemplate(function(options) {\r\n return _this4._createButtonTemplate(count, (0, _renderer2.default)(options.container), isCompact)\r\n })\r\n })\r\n }\r\n }, {\r\n key: \"_createButtonTemplate\",\r\n value: function(appointmentCount, element, isCompact) {\r\n var text = isCompact ? appointmentCount : _message2.default.getFormatter(\"dxScheduler-moreAppointments\")(appointmentCount);\r\n return element.append((0, _renderer2.default)(\"\").text(text)).addClass(APPOINTMENT_COLLECTOR_CONTENT_CLASS)\r\n }\r\n }]);\r\n return CompactAppointmentsHelper\r\n}();\r\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.work_space.grouped.strategy.horizontal.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _position = require(\"../../../core/utils/position\");\r\nvar _uiSchedulerWork_spaceGrouped = require(\"./ui.scheduler.work_space.grouped.strategy\");\r\nvar _uiSchedulerWork_spaceGrouped2 = _interopRequireDefault(_uiSchedulerWork_spaceGrouped);\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar HORIZONTAL_GROUPED_ATTR = \"dx-group-row-count\";\r\nvar HorizontalGroupedStrategy = function(_GroupedStrategy) {\r\n _inherits(HorizontalGroupedStrategy, _GroupedStrategy);\r\n var _super = _createSuper(HorizontalGroupedStrategy);\r\n\r\n function HorizontalGroupedStrategy() {\r\n _classCallCheck(this, HorizontalGroupedStrategy);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(HorizontalGroupedStrategy, [{\r\n key: \"prepareCellIndexes\",\r\n value: function(cellCoordinates, groupIndex, inAllDay) {\r\n var groupByDay = this._workSpace.isGroupedByDate();\r\n if (!groupByDay) {\r\n return {\r\n rowIndex: cellCoordinates.rowIndex,\r\n cellIndex: cellCoordinates.cellIndex + groupIndex * this._workSpace._getCellCount()\r\n }\r\n } else {\r\n return {\r\n rowIndex: cellCoordinates.rowIndex,\r\n cellIndex: cellCoordinates.cellIndex * this._workSpace._getGroupCount() + groupIndex\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"calculateCellIndex\",\r\n value: function(rowIndex, cellIndex) {\r\n cellIndex %= this._workSpace._getCellCount();\r\n return this._workSpace._getRowCount() * cellIndex + rowIndex\r\n }\r\n }, {\r\n key: \"getGroupIndex\",\r\n value: function(rowIndex, cellIndex) {\r\n var groupByDay = this._workSpace.isGroupedByDate();\r\n var groupCount = this._workSpace._getGroupCount();\r\n if (groupByDay) {\r\n return cellIndex % groupCount\r\n } else {\r\n return Math.floor(cellIndex / this._workSpace._getCellCount())\r\n }\r\n }\r\n }, {\r\n key: \"calculateHeaderCellRepeatCount\",\r\n value: function() {\r\n return this._workSpace._getGroupCount() || 1\r\n }\r\n }, {\r\n key: \"insertAllDayRowsIntoDateTable\",\r\n value: function() {\r\n return false\r\n }\r\n }, {\r\n key: \"getTotalCellCount\",\r\n value: function(groupCount) {\r\n groupCount = groupCount || 1;\r\n return this._workSpace._getCellCount() * groupCount\r\n }\r\n }, {\r\n key: \"getTotalRowCount\",\r\n value: function() {\r\n return this._workSpace._getRowCount()\r\n }\r\n }, {\r\n key: \"addAdditionalGroupCellClasses\",\r\n value: function(cellClass, index) {\r\n cellClass = this._addLastGroupCellClass(cellClass, index);\r\n return this._addFirstGroupCellClass(cellClass, index)\r\n }\r\n }, {\r\n key: \"_addLastGroupCellClass\",\r\n value: function(cellClass, index) {\r\n var groupByDay = this._workSpace.isGroupedByDate();\r\n if (groupByDay) {\r\n if (index % this._workSpace._getGroupCount() === 0) {\r\n return cellClass + \" \" + this.getLastGroupCellClass()\r\n }\r\n } else {\r\n if (index % this._workSpace._getCellCount() === 0) {\r\n return cellClass + \" \" + this.getLastGroupCellClass()\r\n }\r\n }\r\n return cellClass\r\n }\r\n }, {\r\n key: \"_addFirstGroupCellClass\",\r\n value: function(cellClass, index) {\r\n if ((index - 1) % this._workSpace._getCellCount() === 0) {\r\n return cellClass + \" \" + this.getFirstGroupCellClass()\r\n }\r\n return cellClass\r\n }\r\n }, {\r\n key: \"getHorizontalMax\",\r\n value: function(groupIndex) {\r\n return this._workSpace.getMaxAllowedPosition()[groupIndex]\r\n }\r\n }, {\r\n key: \"getVerticalMax\",\r\n value: function(groupIndex) {\r\n return this._workSpace.getMaxAllowedVerticalPosition()[0]\r\n }\r\n }, {\r\n key: \"calculateTimeCellRepeatCount\",\r\n value: function() {\r\n return 1\r\n }\r\n }, {\r\n key: \"getWorkSpaceMinWidth\",\r\n value: function() {\r\n return (0, _position.getBoundingRect)(this._workSpace.$element().get(0)).width - this._workSpace.getTimePanelWidth()\r\n }\r\n }, {\r\n key: \"getAllDayOffset\",\r\n value: function() {\r\n return this._workSpace.getAllDayHeight()\r\n }\r\n }, {\r\n key: \"getAllDayTableHeight\",\r\n value: function() {\r\n return (0, _position.getBoundingRect)(this._workSpace._$allDayTable.get(0)).height || 0\r\n }\r\n }, {\r\n key: \"getGroupCountAttr\",\r\n value: function(groupRowCount, groupRows) {\r\n return {\r\n attr: HORIZONTAL_GROUPED_ATTR,\r\n count: groupRows && groupRows.elements.length\r\n }\r\n }\r\n }, {\r\n key: \"getLeftOffset\",\r\n value: function() {\r\n return this._workSpace.getTimePanelWidth()\r\n }\r\n }, {\r\n key: \"getGroupBoundsOffset\",\r\n value: function(cellCount, $cells, cellWidth, coordinates) {\r\n var groupIndex;\r\n var cellIndex;\r\n var startCellIndex;\r\n var startOffset;\r\n var endOffset;\r\n if (this._workSpace.isGroupedByDate()) {\r\n startCellIndex = 0;\r\n startOffset = $cells.eq(startCellIndex).offset().left - cellWidth / 2;\r\n endOffset = $cells.eq(cellCount * this._workSpace._getGroupCount() - 1).offset().left + cellWidth + cellWidth / 2\r\n } else {\r\n cellIndex = this._workSpace.getCellIndexByCoordinates(coordinates);\r\n groupIndex = coordinates.groupIndex || Math.floor(cellIndex / cellCount);\r\n startCellIndex = groupIndex * cellCount;\r\n startOffset = $cells.eq(startCellIndex).offset().left - cellWidth / 2;\r\n endOffset = $cells.eq(startCellIndex + cellCount - 1).offset().left + cellWidth + cellWidth / 2\r\n }\r\n return {\r\n left: startOffset,\r\n right: endOffset,\r\n top: 0,\r\n bottom: 0\r\n }\r\n }\r\n }, {\r\n key: \"shiftIndicator\",\r\n value: function($indicator, height, rtlOffset, groupIndex) {\r\n var offset = this._getIndicatorOffset(groupIndex);\r\n var horizontalOffset = rtlOffset ? rtlOffset - offset : offset;\r\n $indicator.css(\"left\", horizontalOffset);\r\n $indicator.css(\"top\", height)\r\n }\r\n }, {\r\n key: \"_getIndicatorOffset\",\r\n value: function(groupIndex) {\r\n var groupByDay = this._workSpace.isGroupedByDate();\r\n return groupByDay ? this._calculateGroupByDateOffset(groupIndex) : this._calculateOffset(groupIndex)\r\n }\r\n }, {\r\n key: \"_calculateOffset\",\r\n value: function(groupIndex) {\r\n return this._workSpace._getCellCount() * this._workSpace.getRoundedCellWidth(groupIndex - 1, 0) * groupIndex + this._workSpace.getIndicatorOffset(groupIndex) + groupIndex\r\n }\r\n }, {\r\n key: \"_calculateGroupByDateOffset\",\r\n value: function(groupIndex) {\r\n return this._workSpace.getIndicatorOffset(0) * this._workSpace._getGroupCount() + this._workSpace.getRoundedCellWidth(groupIndex - 1, 0) * groupIndex\r\n }\r\n }, {\r\n key: \"getShaderOffset\",\r\n value: function(i, width) {\r\n var offset = this._workSpace._getCellCount() * this._workSpace.getRoundedCellWidth(i - 1) * i;\r\n return this._workSpace.option(\"rtlEnabled\") ? (0, _position.getBoundingRect)(this._workSpace._dateTableScrollable.$content().get(0)).width - offset - this._workSpace.getTimePanelWidth() - width : offset\r\n }\r\n }, {\r\n key: \"getShaderTopOffset\",\r\n value: function(i) {\r\n return -this.getShaderMaxHeight() * (i > 0 ? 1 : 0)\r\n }\r\n }, {\r\n key: \"getShaderHeight\",\r\n value: function() {\r\n var height = this._workSpace.getIndicationHeight();\r\n return height\r\n }\r\n }, {\r\n key: \"getShaderMaxHeight\",\r\n value: function() {\r\n return (0, _position.getBoundingRect)(this._workSpace._dateTableScrollable.$content().get(0)).height\r\n }\r\n }, {\r\n key: \"getShaderWidth\",\r\n value: function(i) {\r\n return this._workSpace.getIndicationWidth(i)\r\n }\r\n }, {\r\n key: \"getScrollableScrollTop\",\r\n value: function(allDay) {\r\n return !allDay ? this._workSpace.getScrollable().scrollTop() : 0\r\n }\r\n }, {\r\n key: \"getGroupIndexByCell\",\r\n value: function($cell) {\r\n var rowIndex = $cell.parent().index();\r\n var cellIndex = $cell.index();\r\n return this.getGroupIndex(rowIndex, cellIndex)\r\n }\r\n }]);\r\n return HorizontalGroupedStrategy\r\n}(_uiSchedulerWork_spaceGrouped2.default);\r\nmodule.exports = HorizontalGroupedStrategy;\r\n","/**\r\n * DevExtreme (ui/scheduler/rendering_strategies/ui.scheduler.appointments.strategy.horizontal_month.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _uiSchedulerAppointmentsStrategy = require(\"./ui.scheduler.appointments.strategy.horizontal_month_line\");\r\nvar _uiSchedulerAppointmentsStrategy2 = _interopRequireDefault(_uiSchedulerAppointmentsStrategy);\r\nvar _extend = require(\"../../../core/utils/extend\");\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _get(target, property, receiver) {\r\n if (\"undefined\" !== typeof Reflect && Reflect.get) {\r\n _get = Reflect.get\r\n } else {\r\n _get = function(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n if (!base) {\r\n return\r\n }\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n if (desc.get) {\r\n return desc.get.call(receiver)\r\n }\r\n return desc.value\r\n }\r\n }\r\n return _get(target, property, receiver || target)\r\n}\r\n\r\nfunction _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (null === object) {\r\n break\r\n }\r\n }\r\n return object\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar MONTH_APPOINTMENT_HEIGHT_RATIO = .6;\r\nvar MONTH_APPOINTMENT_MIN_OFFSET = 26;\r\nvar MONTH_APPOINTMENT_MAX_OFFSET = 30;\r\nvar MONTH_DROPDOWN_APPOINTMENT_MIN_RIGHT_OFFSET = 36;\r\nvar MONTH_DROPDOWN_APPOINTMENT_MAX_RIGHT_OFFSET = 60;\r\nvar HorizontalMonthRenderingStrategy = function(_HorizontalMonthLineA) {\r\n _inherits(HorizontalMonthRenderingStrategy, _HorizontalMonthLineA);\r\n var _super = _createSuper(HorizontalMonthRenderingStrategy);\r\n\r\n function HorizontalMonthRenderingStrategy() {\r\n _classCallCheck(this, HorizontalMonthRenderingStrategy);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(HorizontalMonthRenderingStrategy, [{\r\n key: \"_getAppointmentParts\",\r\n value: function(appointmentGeometry, appointmentSettings, startDate) {\r\n var deltaWidth = appointmentGeometry.sourceAppointmentWidth - appointmentGeometry.reducedWidth;\r\n var height = appointmentGeometry.height;\r\n var fullWeekAppointmentWidth = this._getFullWeekAppointmentWidth(appointmentSettings.groupIndex);\r\n var maxAppointmentWidth = this._getMaxAppointmentWidth(startDate);\r\n var longPartCount = Math.ceil(deltaWidth / fullWeekAppointmentWidth) - 1;\r\n var realTailWidth = Math.floor(deltaWidth % fullWeekAppointmentWidth);\r\n var tailWidth = longPartCount ? realTailWidth : realTailWidth || fullWeekAppointmentWidth;\r\n var result = [];\r\n var totalWidth = appointmentGeometry.reducedWidth + tailWidth;\r\n var currentPartTop = appointmentSettings.top + this.getDefaultCellHeight();\r\n var left = this._calculateMultiWeekAppointmentLeftOffset(appointmentSettings.hMax, fullWeekAppointmentWidth);\r\n if (\"vertical\" === this.instance._groupOrientation) {\r\n left += this.instance.fire(\"getWorkSpaceDateTableOffset\")\r\n }\r\n for (var i = 0; i < longPartCount; i++) {\r\n if (totalWidth > maxAppointmentWidth) {\r\n break\r\n }\r\n result.push((0, _extend.extend)(true, {}, appointmentSettings, {\r\n top: currentPartTop,\r\n left: left,\r\n height: height,\r\n width: fullWeekAppointmentWidth,\r\n appointmentReduced: \"body\",\r\n rowIndex: ++appointmentSettings.rowIndex,\r\n cellIndex: 0\r\n }));\r\n currentPartTop += this.getDefaultCellHeight();\r\n totalWidth += fullWeekAppointmentWidth\r\n }\r\n if (tailWidth) {\r\n if (this._isRtl()) {\r\n left += fullWeekAppointmentWidth - tailWidth\r\n }\r\n result.push((0, _extend.extend)(true, {}, appointmentSettings, {\r\n top: currentPartTop,\r\n left: left,\r\n height: height,\r\n width: tailWidth,\r\n appointmentReduced: \"tail\",\r\n rowIndex: ++appointmentSettings.rowIndex,\r\n cellIndex: 0\r\n }))\r\n }\r\n return result\r\n }\r\n }, {\r\n key: \"_calculateMultiWeekAppointmentLeftOffset\",\r\n value: function(max, width) {\r\n return this._isRtl() ? max : max - width\r\n }\r\n }, {\r\n key: \"_getFullWeekAppointmentWidth\",\r\n value: function(groupIndex) {\r\n this._maxFullWeekAppointmentWidth = this.instance.fire(\"getFullWeekAppointmentWidth\", {\r\n groupIndex: groupIndex\r\n });\r\n return this._maxFullWeekAppointmentWidth\r\n }\r\n }, {\r\n key: \"_getAppointmentDefaultHeight\",\r\n value: function() {\r\n return this._getAppointmentHeightByTheme()\r\n }\r\n }, {\r\n key: \"_getAppointmentMinHeight\",\r\n value: function() {\r\n return this._getAppointmentDefaultHeight()\r\n }\r\n }, {\r\n key: \"_columnCondition\",\r\n value: function(a, b) {\r\n var conditions = this._getConditions(a, b);\r\n return conditions.rowCondition || conditions.columnCondition || conditions.cellPositionCondition\r\n }\r\n }, {\r\n key: \"createTaskPositionMap\",\r\n value: function(items) {\r\n return _get(_getPrototypeOf(HorizontalMonthRenderingStrategy.prototype), \"createTaskPositionMap\", this).call(this, items, true)\r\n }\r\n }, {\r\n key: \"_getSortedPositions\",\r\n value: function(map) {\r\n return _get(_getPrototypeOf(HorizontalMonthRenderingStrategy.prototype), \"_getSortedPositions\", this).call(this, map, true)\r\n }\r\n }, {\r\n key: \"_getDefaultRatio\",\r\n value: function() {\r\n return MONTH_APPOINTMENT_HEIGHT_RATIO\r\n }\r\n }, {\r\n key: \"_getOffsets\",\r\n value: function() {\r\n return {\r\n unlimited: MONTH_APPOINTMENT_MIN_OFFSET,\r\n auto: MONTH_APPOINTMENT_MAX_OFFSET\r\n }\r\n }\r\n }, {\r\n key: \"getDropDownAppointmentWidth\",\r\n value: function(intervalCount) {\r\n if (this.instance.fire(\"isAdaptive\")) {\r\n return this.getDropDownButtonAdaptiveSize()\r\n }\r\n var offset = intervalCount > 1 ? MONTH_DROPDOWN_APPOINTMENT_MAX_RIGHT_OFFSET : MONTH_DROPDOWN_APPOINTMENT_MIN_RIGHT_OFFSET;\r\n return this.getDefaultCellWidth() - offset\r\n }\r\n }, {\r\n key: \"needCorrectAppointmentDates\",\r\n value: function() {\r\n return false\r\n }\r\n }, {\r\n key: \"_needVerticalGroupBounds\",\r\n value: function() {\r\n return false\r\n }\r\n }, {\r\n key: \"_needHorizontalGroupBounds\",\r\n value: function() {\r\n return true\r\n }\r\n }]);\r\n return HorizontalMonthRenderingStrategy\r\n}(_uiSchedulerAppointmentsStrategy2.default);\r\nmodule.exports = HorizontalMonthRenderingStrategy;\r\n","/**\r\n * DevExtreme (ui/scheduler/ui.scheduler.recurrence_editor.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _guid = require(\"../../core/guid\");\r\nvar _guid2 = _interopRequireDefault(_guid);\r\nvar _component_registrator = require(\"../../core/component_registrator\");\r\nvar _component_registrator2 = _interopRequireDefault(_component_registrator);\r\nvar _utils = require(\"./utils.recurrence\");\r\nvar _utils2 = _interopRequireDefault(_utils);\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _editor = require(\"../editor/editor\");\r\nvar _editor2 = _interopRequireDefault(_editor);\r\nvar _radio_group = require(\"../radio_group\");\r\nvar _radio_group2 = _interopRequireDefault(_radio_group);\r\nvar _button_group = require(\"../button_group\");\r\nvar _button_group2 = _interopRequireDefault(_button_group);\r\nvar _number_box = require(\"../number_box\");\r\nvar _number_box2 = _interopRequireDefault(_number_box);\r\nvar _select_box = require(\"../select_box\");\r\nvar _select_box2 = _interopRequireDefault(_select_box);\r\nvar _date_box = require(\"../date_box\");\r\nvar _date_box2 = _interopRequireDefault(_date_box);\r\nvar _message = require(\"../../localization/message\");\r\nvar _message2 = _interopRequireDefault(_message);\r\nvar _date = require(\"../../localization/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _date3 = require(\"../../core/utils/date\");\r\nvar _date4 = _interopRequireDefault(_date3);\r\nvar _uiScheduler = require(\"./ui.scheduler.publisher_mixin\");\r\nvar _uiScheduler2 = _interopRequireDefault(_uiScheduler);\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 _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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 RECURRENCE_EDITOR = \"dx-recurrence-editor\";\r\nvar LABEL_POSTFIX = \"-label\";\r\nvar WRAPPER_POSTFIX = \"-wrapper\";\r\nvar RECURRENCE_EDITOR_CONTAINER = \"dx-recurrence-editor-container\";\r\nvar FREQUENCY_EDITOR = \"dx-recurrence-selectbox-freq\";\r\nvar INTERVAL_EDITOR = \"dx-recurrence-numberbox-interval\";\r\nvar INTERVAL_EDITOR_FIELD = \"dx-recurrence-interval-field\";\r\nvar REPEAT_END_EDITOR = \"dx-recurrence-repeat-end\";\r\nvar REPEAT_END_EDITOR_CONTAINER = \"dx-recurrence-repeat-end-container\";\r\nvar REPEAT_TYPE_EDITOR = \"dx-recurrence-radiogroup-repeat-type\";\r\nvar REPEAT_COUNT_EDITOR = \"dx-recurrence-numberbox-repeat-count\";\r\nvar REPEAT_UNTIL_DATE_EDITOR = \"dx-recurrence-datebox-until-date\";\r\nvar REPEAT_ON_EDITOR = \"dx-recurrence-repeat-on\";\r\nvar REPEAT_ON_MONTH_EDITOR = \"dx-recurrence-repeat-on-month\";\r\nvar DAY_OF_MONTH = \"dx-recurrence-numberbox-day-of-month\";\r\nvar REPEAT_ON_YEAR_EDITOR = \"dx-recurrence-repeat-on-year\";\r\nvar MONTH_OF_YEAR = \"dx-recurrence-selectbox-month-of-year\";\r\nvar FIELD_CLASS = \"dx-field\";\r\nvar RECURRENCE_FREQ_FIELD = \"dx-recurrence-freq-field\";\r\nvar FIELD_LABEL_CLASS = \"dx-field-label\";\r\nvar FIELD_VALUE_CLASS = \"dx-field-value\";\r\nvar RECURRENCE_BUTTON_GROUP = \"dx-recurrence-button-group\";\r\nvar defaultRecurrenceTypeIndex = 1;\r\nvar frequenciesMessages = [{\r\n recurrence: \"dxScheduler-recurrenceHourly\",\r\n value: \"hourly\"\r\n}, {\r\n recurrence: \"dxScheduler-recurrenceDaily\",\r\n value: \"daily\"\r\n}, {\r\n recurrence: \"dxScheduler-recurrenceWeekly\",\r\n value: \"weekly\"\r\n}, {\r\n recurrence: \"dxScheduler-recurrenceMonthly\",\r\n value: \"monthly\"\r\n}, {\r\n recurrence: \"dxScheduler-recurrenceYearly\",\r\n value: \"yearly\"\r\n}];\r\nvar frequencies = frequenciesMessages.map(function(item) {\r\n return {\r\n text: function() {\r\n return _message2.default.format(item.recurrence)\r\n },\r\n value: item.value\r\n }\r\n});\r\nvar repeatEndTypes = [{\r\n text: function() {\r\n return _message2.default.format(\"dxScheduler-recurrenceNever\")\r\n },\r\n value: \"never\"\r\n}, {\r\n text: function() {\r\n return _message2.default.format(\"dxScheduler-recurrenceRepeatOnDate\")\r\n },\r\n value: \"until\"\r\n}, {\r\n text: function() {\r\n return _message2.default.format(\"dxScheduler-recurrenceRepeatCount\")\r\n },\r\n value: \"count\"\r\n}];\r\nvar days = [\"SU\", \"MO\", \"TU\", \"WE\", \"TH\", \"FR\", \"SA\"];\r\nvar DAYS_IN_WEEK = 7;\r\nvar RecurrenceRule = function() {\r\n function RecurrenceRule(recurrence) {\r\n _classCallCheck(this, RecurrenceRule);\r\n this._recurrenceRule = _utils2.default.getRecurrenceRule(recurrence).rule\r\n }\r\n _createClass(RecurrenceRule, [{\r\n key: \"makeRules\",\r\n value: function(string) {\r\n this._recurrenceRule = _utils2.default.getRecurrenceRule(string).rule\r\n }\r\n }, {\r\n key: \"makeRule\",\r\n value: function(field, value) {\r\n if (!value) {\r\n delete this._recurrenceRule[field];\r\n return\r\n }\r\n if ((0, _type.isDefined)(field)) {\r\n if (\"until\" === field) {\r\n delete this._recurrenceRule.count\r\n }\r\n if (\"count\" === field) {\r\n delete this._recurrenceRule.until\r\n }\r\n this._recurrenceRule[field] = value\r\n }\r\n }\r\n }, {\r\n key: \"repeatableRule\",\r\n value: function() {\r\n var rules = this._recurrenceRule;\r\n if (\"count\" in rules) {\r\n return \"count\"\r\n }\r\n if (\"until\" in rules) {\r\n return \"until\"\r\n }\r\n return null\r\n }\r\n }, {\r\n key: \"recurrenceString\",\r\n value: function() {\r\n return _utils2.default.getRecurrenceString(this._recurrenceRule)\r\n }\r\n }, {\r\n key: \"rules\",\r\n value: function() {\r\n return this._recurrenceRule\r\n }\r\n }, {\r\n key: \"daysFromByDayRule\",\r\n value: function() {\r\n return _utils2.default.daysFromByDayRule(this._recurrenceRule)\r\n }\r\n }]);\r\n return RecurrenceRule\r\n}();\r\nvar RecurrenceEditor = _editor2.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n value: null,\r\n startDate: new Date,\r\n firstDayOfWeek: void 0\r\n })\r\n },\r\n _getFirstDayOfWeek: function() {\r\n var firstDayOfWeek = this.option(\"firstDayOfWeek\");\r\n return (0, _type.isDefined)(firstDayOfWeek) ? firstDayOfWeek : _date2.default.firstDayOfWeekIndex()\r\n },\r\n _createComponent: function(element, name) {\r\n var config = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n this._extendConfig(config, {\r\n readOnly: this.option(\"readOnly\")\r\n });\r\n return this.callBase(element, name, config)\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._recurrenceRule = new RecurrenceRule(this.option(\"value\"))\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(RECURRENCE_EDITOR);\r\n this._$container = (0, _renderer2.default)(\"
\").addClass(RECURRENCE_EDITOR_CONTAINER).appendTo(this.$element());\r\n this._renderEditors()\r\n },\r\n changeValueByVisibility: function(value) {\r\n if (value) {\r\n if (!this.option(\"value\")) {\r\n this._handleDefaults()\r\n }\r\n } else {\r\n this._recurrenceRule.makeRules(\"\");\r\n this.option(\"value\", \"\")\r\n }\r\n },\r\n _handleDefaults: function() {\r\n this._recurrenceRule.makeRule(\"freq\", frequenciesMessages[defaultRecurrenceTypeIndex].value);\r\n this._changeEditorValue()\r\n },\r\n _changeEditorValue: function() {\r\n this.option(\"value\", this._recurrenceRule.recurrenceString() || \"\")\r\n },\r\n _renderEditors: function() {\r\n this._renderFreqEditor();\r\n this._renderIntervalEditor();\r\n this._renderRepeatOnEditor();\r\n this._renderRepeatEndEditor()\r\n },\r\n _renderFreqEditor: function() {\r\n var _this = this;\r\n var freq = (this._recurrenceRule.rules().freq || frequenciesMessages[defaultRecurrenceTypeIndex].value).toLowerCase();\r\n var $freqEditor = (0, _renderer2.default)(\"
\").addClass(FREQUENCY_EDITOR).addClass(FIELD_VALUE_CLASS);\r\n var $freqEditorLabel = (0, _renderer2.default)(\"
\").text(_message2.default.format(\"dxScheduler-editorLabelRecurrence\")).addClass(FIELD_LABEL_CLASS);\r\n this._freqEditor = this._createComponent($freqEditor, _select_box2.default, {\r\n field: \"freq\",\r\n items: frequencies,\r\n value: freq,\r\n valueExpr: \"value\",\r\n displayExpr: \"text\",\r\n layout: \"horizontal\",\r\n onValueChanged: function(args) {\r\n _this._valueChangedHandler(args)\r\n }\r\n });\r\n var $field = (0, _renderer2.default)(\"
\").addClass(FIELD_CLASS).addClass(RECURRENCE_FREQ_FIELD).append($freqEditorLabel, $freqEditor);\r\n this._$container.append($field)\r\n },\r\n _renderIntervalEditor: function() {\r\n var freq = this._recurrenceRule.rules().freq || \"daily\";\r\n var $intervalEditor = (0, _renderer2.default)(\"
\").addClass(INTERVAL_EDITOR).addClass(FIELD_VALUE_CLASS);\r\n var $intervalEditorLabel = (0, _renderer2.default)(\"
\").text(_message2.default.format(\"dxScheduler-recurrenceRepeatEvery\")).addClass(INTERVAL_EDITOR + LABEL_POSTFIX).addClass(FIELD_LABEL_CLASS);\r\n this._$intervalTypeLabel = (0, _renderer2.default)(\"
\").text(_message2.default.format(\"dxScheduler-recurrenceRepeat\".concat(freq.charAt(0).toUpperCase()).concat(freq.substr(1).toLowerCase()))).addClass(REPEAT_TYPE_EDITOR + LABEL_POSTFIX);\r\n var interval = this._recurrenceRule.rules().interval || 1;\r\n this._intervalEditor = this._createComponent($intervalEditor, _number_box2.default, {\r\n field: \"interval\",\r\n min: 1,\r\n value: interval,\r\n showSpinButtons: true,\r\n useLargeSpinButtons: false,\r\n onValueChanged: this._valueChangedHandler.bind(this)\r\n });\r\n var $field = (0, _renderer2.default)(\"
\").addClass(FIELD_CLASS).addClass(INTERVAL_EDITOR_FIELD).append($intervalEditorLabel, $intervalEditor, this._$intervalTypeLabel);\r\n this._$container.append($field);\r\n this._setAriaDescribedBy(this._intervalEditor, $intervalEditorLabel)\r\n },\r\n _renderRepeatOnEditor: function() {\r\n this._clearRepeatOnEditor();\r\n var freq = (this._recurrenceRule.rules().freq || \"\").toLowerCase();\r\n if (!(0, _type.isDefined)(this._$repeatOnEditor)) {\r\n this._$repeatOnEditor = (0, _renderer2.default)(\"
\").addClass(REPEAT_ON_EDITOR).addClass(FIELD_CLASS).appendTo(this._$container)\r\n }\r\n if (!freq || \"daily\" === freq || \"minutely\" === freq || \"hourly\" === freq) {\r\n this._clearRepeatOnEditor();\r\n this._clearRepeatOnLabel();\r\n return\r\n }\r\n if (!(0, _type.isDefined)(this._$repeatOnLabel)) {\r\n this._renderRepeatOnLabel(this._$repeatOnEditor)\r\n }\r\n if (\"weekly\" === freq && !this._$repeatOnWeek) {\r\n this._renderRepeatOnWeekEditor();\r\n return\r\n }\r\n if (\"monthly\" === freq && !this._$repeatOnMonth) {\r\n this._renderRepeatOnMonthEditor();\r\n return\r\n }\r\n if (\"yearly\" === freq && !this._$repeatOnYear) {\r\n this._renderRepeatOnYearEditor();\r\n return\r\n }\r\n },\r\n _renderRepeatOnLabel: function($element) {\r\n this._$repeatOnLabel = (0, _renderer2.default)(\"
\").text(_message2.default.format(\"dxScheduler-recurrenceRepeatOn\")).addClass(REPEAT_ON_EDITOR + LABEL_POSTFIX).addClass(FIELD_LABEL_CLASS);\r\n $element.append(this._$repeatOnLabel)\r\n },\r\n _clearRepeatOnEditor: function() {\r\n if ((0, _type.isDefined)(this._$repeatOnWeek)) {\r\n this._$repeatOnWeek.detach();\r\n this._$repeatOnWeek.remove();\r\n delete this._$repeatOnWeek\r\n }\r\n if ((0, _type.isDefined)(this._$repeatOnMonth)) {\r\n this._$repeatOnMonth.detach();\r\n this._$repeatOnMonth.remove();\r\n delete this._$repeatOnMonth\r\n }\r\n if ((0, _type.isDefined)(this._$repeatOnYear)) {\r\n this._$repeatOnYear.detach();\r\n this._$repeatOnYear.remove();\r\n delete this._$repeatOnYear\r\n }\r\n },\r\n _clearRepeatOnLabel: function() {\r\n if ((0, _type.isDefined)(this._$repeatOnLabel)) {\r\n this._$repeatOnLabel.detach();\r\n this._$repeatOnLabel.remove();\r\n delete this._$repeatOnLabel\r\n }\r\n },\r\n _getDayIndex: function() {\r\n var firstDayOfWeek = this._getFirstDayOfWeek();\r\n return function(index) {\r\n return (index + firstDayOfWeek) % DAYS_IN_WEEK\r\n }\r\n },\r\n _renderRepeatOnWeekEditor: function() {\r\n var _this2 = this;\r\n var firstDayOfWeek = this._getFirstDayOfWeek();\r\n var byDay = this._recurrenceRule.rules().byday ? this._recurrenceRule.rules().byday.split(\",\") : days[firstDayOfWeek];\r\n var localDaysNames = _date2.default.getDayNames(\"abbreviated\");\r\n var dayNames = days.slice(firstDayOfWeek).concat(days.slice(0, firstDayOfWeek));\r\n var itemsButtonGroup = localDaysNames.slice(firstDayOfWeek).concat(localDaysNames.slice(0, firstDayOfWeek)).map(function(item, index) {\r\n return {\r\n text: item,\r\n key: dayNames[index]\r\n }\r\n });\r\n this._$repeatOnWeek = (0, _renderer2.default)(\"
\").addClass(RECURRENCE_BUTTON_GROUP).appendTo(this._$repeatOnEditor);\r\n this._weekEditor = this._createComponent(this._$repeatOnWeek, _button_group2.default, {\r\n items: itemsButtonGroup,\r\n selectionMode: \"multiple\",\r\n selectedItemKeys: byDay,\r\n keyExpr: \"key\",\r\n onSelectionChanged: function(e) {\r\n var selectedKeys = e.component.option(\"selectedItemKeys\");\r\n _this2._recurrenceRule.makeRule(\"byday\", selectedKeys);\r\n _this2._changeEditorValue()\r\n }\r\n })\r\n },\r\n _daysOfWeekByRules: function() {\r\n var daysByRule = this._recurrenceRule.daysFromByDayRule();\r\n if (!daysByRule.length) {\r\n daysByRule = [days[this.option(\"startDate\").getDay()]]\r\n }\r\n return daysByRule\r\n },\r\n _renderRepeatOnMonthEditor: function() {\r\n this._$repeatOnMonth = (0, _renderer2.default)(\"
\").addClass(REPEAT_ON_MONTH_EDITOR).addClass(FIELD_VALUE_CLASS).appendTo(this._$repeatOnEditor);\r\n this._renderDayOfMonthEditor(this._$repeatOnMonth)\r\n },\r\n _renderRepeatOnYearEditor: function() {\r\n this._$repeatOnYear = (0, _renderer2.default)(\"
\").addClass(REPEAT_ON_YEAR_EDITOR).addClass(FIELD_VALUE_CLASS).appendTo(this._$repeatOnEditor);\r\n var months = [];\r\n var monthsNames = _date2.default.getMonthNames(\"wide\");\r\n for (var i = 0; i < 12; i++) {\r\n months[i] = {\r\n value: String(i + 1),\r\n text: monthsNames[i]\r\n }\r\n }\r\n var byMonth = this._monthOfYearByRules();\r\n var $monthOfYear = (0, _renderer2.default)(\"
\").addClass(MONTH_OF_YEAR).appendTo(this._$repeatOnYear);\r\n var monthChanged = function(args) {\r\n this._valueChangedHandler.call(this, args);\r\n var monthValue = parseInt(args.component.option(\"value\"));\r\n if (this._dayEditor && monthValue) {\r\n var maxAllowedDay = new Date((new Date).getFullYear(), parseInt(monthValue), 0).getDate();\r\n if (2 === monthValue) {\r\n maxAllowedDay = 29\r\n }\r\n this._dayEditor.option(\"max\", maxAllowedDay)\r\n }\r\n };\r\n this._monthEditor = this._createComponent($monthOfYear, _select_box2.default, {\r\n field: \"bymonth\",\r\n items: months,\r\n value: byMonth,\r\n displayExpr: \"text\",\r\n valueExpr: \"value\",\r\n onValueChanged: monthChanged.bind(this)\r\n });\r\n this._renderDayOfMonthEditor(this._$repeatOnYear)\r\n },\r\n _monthOfYearByRules: function() {\r\n var monthByRule = this._recurrenceRule.rules().bymonth;\r\n if (!monthByRule) {\r\n monthByRule = this.option(\"startDate\").getMonth() + 1\r\n }\r\n return monthByRule\r\n },\r\n _renderDayOfMonthEditor: function($element) {\r\n var byMonthDay = this._dayOfMonthByRules();\r\n var $dayEditor = (0, _renderer2.default)(\"
\").addClass(DAY_OF_MONTH);\r\n this._dayEditor = this._createComponent($dayEditor, _number_box2.default, {\r\n field: \"bymonthday\",\r\n min: 1,\r\n max: 31,\r\n showSpinButtons: true,\r\n useLargeSpinButtons: false,\r\n value: byMonthDay,\r\n onValueChanged: this._valueChangedHandler.bind(this)\r\n });\r\n $element.append($dayEditor)\r\n },\r\n _dayOfMonthByRules: function() {\r\n var dayByRule = this._recurrenceRule.rules().bymonthday;\r\n if (!dayByRule) {\r\n dayByRule = this.option(\"startDate\").getDate()\r\n }\r\n return dayByRule\r\n },\r\n _setAriaDescribedBy: function(editor, $label) {\r\n var labelId = \"label-\".concat(new _guid2.default);\r\n editor.setAria(\"describedby\", labelId);\r\n editor.setAria(\"id\", labelId, $label)\r\n },\r\n _handleRepeatEndDefaults: function() {\r\n this._recurrenceRule.makeRule(\"count\", 1);\r\n this._changeEditorValue()\r\n },\r\n _renderRepeatEndEditor: function(rule) {\r\n rule = (0, _type.isDefined)(rule) ? rule : this._recurrenceRule.repeatableRule();\r\n if (!rule) {\r\n rule = \"count\"\r\n }\r\n if (!(0, _type.isDefined)(this._$repeatEndEditor)) {\r\n (0, _renderer2.default)(\"
\").text(_message2.default.format(\"dxScheduler-recurrenceEnd\")).addClass(REPEAT_END_EDITOR_CONTAINER + LABEL_POSTFIX).addClass(FIELD_LABEL_CLASS).appendTo(this._$container);\r\n this._$repeatEndEditor = (0, _renderer2.default)(\"
\").addClass(REPEAT_END_EDITOR_CONTAINER).addClass(FIELD_CLASS).appendTo(this._$container);\r\n this._renderRepeatEndTypeEditor()\r\n }\r\n },\r\n _renderRepeatEndTypeEditor: function() {\r\n var _this3 = this;\r\n var repeatType = this._recurrenceRule.repeatableRule() || \"never\";\r\n this._$repeatTypeEditor = (0, _renderer2.default)(\"
\").addClass(REPEAT_TYPE_EDITOR).addClass(FIELD_VALUE_CLASS).appendTo(this._$repeatEndEditor);\r\n this._repeatTypeEditor = this._createComponent(this._$repeatTypeEditor, _radio_group2.default, {\r\n items: repeatEndTypes,\r\n value: repeatType,\r\n displayExpr: \"text\",\r\n valueExpr: \"value\",\r\n itemTemplate: function(itemData) {\r\n if (\"count\" === itemData.value) {\r\n return _this3._renderRepeatCountEditor()\r\n }\r\n if (\"until\" === itemData.value) {\r\n return _this3._renderRepeatUntilEditor()\r\n }\r\n return _this3._renderDefaultRepeatEnd()\r\n },\r\n layout: \"vertical\",\r\n onValueChanged: this._repeatTypeValueChangedHandler.bind(this)\r\n });\r\n this._disableRepeatEndParts(repeatType)\r\n },\r\n _renderDefaultRepeatEnd: function() {\r\n var $editorTemplate = (0, _renderer2.default)(\"
\").addClass(REPEAT_END_EDITOR + WRAPPER_POSTFIX);\r\n (0, _renderer2.default)(\"
\").text(_message2.default.format(\"dxScheduler-recurrenceNever\")).addClass(REPEAT_END_EDITOR + LABEL_POSTFIX).appendTo($editorTemplate);\r\n return $editorTemplate\r\n },\r\n _repeatTypeValueChangedHandler: function(args) {\r\n var value = args.value;\r\n this._disableRepeatEndParts(value);\r\n if (\"until\" === value) {\r\n this._recurrenceRule.makeRule(value, this._getUntilValue())\r\n }\r\n if (\"count\" === value) {\r\n this._recurrenceRule.makeRule(value, this._repeatCountEditor.option(\"value\"))\r\n }\r\n if (\"never\" === value) {\r\n this._recurrenceRule.makeRule(\"count\", \"\");\r\n this._recurrenceRule.makeRule(\"until\", \"\")\r\n }\r\n this._changeEditorValue()\r\n },\r\n _disableRepeatEndParts: function(value) {\r\n if (\"until\" === value) {\r\n this._repeatCountEditor.option(\"disabled\", true);\r\n this._repeatUntilDate.option(\"disabled\", false)\r\n }\r\n if (\"count\" === value) {\r\n this._repeatCountEditor.option(\"disabled\", false);\r\n this._repeatUntilDate.option(\"disabled\", true)\r\n }\r\n if (\"never\" === value) {\r\n this._repeatCountEditor.option(\"disabled\", true);\r\n this._repeatUntilDate.option(\"disabled\", true)\r\n }\r\n },\r\n _renderRepeatCountEditor: function() {\r\n var repeatCount = this._recurrenceRule.rules().count || 1;\r\n var $editorTemplate = (0, _renderer2.default)(\"
\").addClass(REPEAT_END_EDITOR + WRAPPER_POSTFIX);\r\n (0, _renderer2.default)(\"
\").text(_message2.default.format(\"dxScheduler-recurrenceAfter\")).addClass(REPEAT_END_EDITOR + LABEL_POSTFIX).appendTo($editorTemplate);\r\n this._$repeatCountEditor = (0, _renderer2.default)(\"
\").addClass(REPEAT_COUNT_EDITOR).addClass(FIELD_VALUE_CLASS).appendTo($editorTemplate);\r\n (0, _renderer2.default)(\"
\").text(_message2.default.format(\"dxScheduler-recurrenceRepeatCount\")).addClass(REPEAT_END_EDITOR + LABEL_POSTFIX).appendTo($editorTemplate);\r\n this._repeatCountEditor = this._createComponent(this._$repeatCountEditor, _number_box2.default, {\r\n field: \"count\",\r\n min: 1,\r\n showSpinButtons: true,\r\n useLargeSpinButtons: false,\r\n value: repeatCount,\r\n onValueChanged: this._repeatCountValueChangeHandler.bind(this)\r\n });\r\n return $editorTemplate\r\n },\r\n _repeatCountValueChangeHandler: function(args) {\r\n if (\"count\" !== this._recurrenceRule.repeatableRule()) {\r\n return\r\n }\r\n var value = args.value;\r\n this._recurrenceRule.makeRule(\"count\", value);\r\n this._changeEditorValue()\r\n },\r\n _formatUntilDate: function(date) {\r\n if (this._recurrenceRule.rules().until && _date4.default.sameDate(this._recurrenceRule.rules().until, date)) {\r\n return date\r\n }\r\n return _date4.default.setToDayEnd(date)\r\n },\r\n _renderRepeatUntilEditor: function() {\r\n var repeatUntil = this._recurrenceRule.rules().until || this._formatUntilDate(new Date);\r\n var $editorTemplate = (0, _renderer2.default)(\"
\").addClass(REPEAT_END_EDITOR + WRAPPER_POSTFIX);\r\n (0, _renderer2.default)(\"
\").text(_message2.default.format(\"dxScheduler-recurrenceOn\")).addClass(REPEAT_END_EDITOR + LABEL_POSTFIX).appendTo($editorTemplate);\r\n this._$repeatDateEditor = (0, _renderer2.default)(\"
\").addClass(REPEAT_UNTIL_DATE_EDITOR).addClass(FIELD_VALUE_CLASS).appendTo($editorTemplate);\r\n this._repeatUntilDate = this._createComponent(this._$repeatDateEditor, _date_box2.default, {\r\n field: \"until\",\r\n value: repeatUntil,\r\n type: \"date\",\r\n onValueChanged: this._repeatUntilValueChangeHandler.bind(this),\r\n calendarOptions: {\r\n firstDayOfWeek: this._getFirstDayOfWeek()\r\n }\r\n });\r\n return $editorTemplate\r\n },\r\n _repeatUntilValueChangeHandler: function(args) {\r\n if (\"until\" !== this._recurrenceRule.repeatableRule()) {\r\n return\r\n }\r\n var untilDate = this._formatUntilDate(new Date(args.value));\r\n this._repeatUntilDate.option(\"value\", untilDate);\r\n this._recurrenceRule.makeRule(\"until\", untilDate);\r\n this._changeEditorValue()\r\n },\r\n _valueChangedHandler: function(args) {\r\n var value = args.component.option(\"value\");\r\n var field = args.component.option(\"field\");\r\n if (!this.option(\"visible\")) {\r\n this.option(\"value\", \"\")\r\n } else {\r\n this._recurrenceRule.makeRule(field, value);\r\n this._makeRepeatOnRule(field, value);\r\n this._changeEditorValue()\r\n }\r\n },\r\n _makeRepeatOnRule: function(field, value) {\r\n if (\"freq\" !== field) {\r\n return\r\n }\r\n if (\"daily\" === value) {\r\n this._recurrenceRule.makeRule(\"byday\", \"\");\r\n this._recurrenceRule.makeRule(\"bymonth\", \"\");\r\n this._recurrenceRule.makeRule(\"bymonthday\", \"\")\r\n }\r\n if (\"weekly\" === value) {\r\n this._recurrenceRule.makeRule(\"byday\", this._daysOfWeekByRules());\r\n this._recurrenceRule.makeRule(\"bymonth\", \"\");\r\n this._recurrenceRule.makeRule(\"bymonthday\", \"\")\r\n }\r\n if (\"monthly\" === value) {\r\n this._recurrenceRule.makeRule(\"bymonthday\", this._dayOfMonthByRules());\r\n this._recurrenceRule.makeRule(\"bymonth\", \"\");\r\n this._recurrenceRule.makeRule(\"byday\", \"\")\r\n }\r\n if (\"yearly\" === value) {\r\n this._recurrenceRule.makeRule(\"bymonthday\", this._dayOfMonthByRules());\r\n this._recurrenceRule.makeRule(\"bymonth\", this._monthOfYearByRules());\r\n this._recurrenceRule.makeRule(\"byday\", \"\")\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._recurrenceRule.makeRules(args.value);\r\n this._changeRepeatCountValue();\r\n this._repeatTypeEditor.option(\"value\", this._recurrenceRule.repeatableRule() || \"never\");\r\n this._renderRepeatEndEditor();\r\n this._renderRepeatOnEditor();\r\n this._changeEditorsValues(this._recurrenceRule.rules());\r\n this.callBase(args);\r\n break;\r\n case \"startDate\":\r\n this._renderRepeatOnEditor();\r\n this._makeRepeatOnRule(\"freq\", this._recurrenceRule.rules().freq);\r\n if ((0, _type.isDefined)(this._recurrenceRule.recurrenceString())) {\r\n this._changeEditorValue()\r\n }\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._renderRepeatOnEditor();\r\n if (this._$repeatDateEditor) {\r\n this._repeatUntilDate.option(\"calendarOptions.firstDayOfWeek\", this._getFirstDayOfWeek())\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _changeEditorsValues: function(rules) {\r\n this._freqEditor.option(\"value\", (rules.freq || frequenciesMessages[defaultRecurrenceTypeIndex].value).toLowerCase());\r\n this._changeRepeatTypeLabel();\r\n this._intervalEditor.option(\"value\", rules.interval || 1);\r\n this._changeRepeatCountValue();\r\n this._changeRepeatUntilValue();\r\n this._changeDayOfMonthValue();\r\n this._changeMonthOfYearValue()\r\n },\r\n _changeRepeatTypeLabel: function() {\r\n var $labels = this.$element().find(\".\".concat(REPEAT_TYPE_EDITOR).concat(LABEL_POSTFIX));\r\n if (!$labels.length) {\r\n return\r\n }\r\n var freq = this._recurrenceRule.rules().freq || \"daily\";\r\n (0, _iterator.each)($labels, function(_, $label) {\r\n (0, _renderer2.default)($label).text(_message2.default.format(\"dxScheduler-recurrenceRepeat\".concat(freq.charAt(0).toUpperCase()).concat(freq.substr(1).toLowerCase())))\r\n })\r\n },\r\n _changeRepeatCountValue: function() {\r\n if (!this._$repeatCountEditor) {\r\n return\r\n }\r\n var count = this._recurrenceRule.rules().count || 1;\r\n this._repeatCountEditor.option(\"value\", count)\r\n },\r\n _changeRepeatUntilValue: function() {\r\n if (!this._$repeatDateEditor) {\r\n return\r\n }\r\n this._repeatUntilDate.option(\"value\", this._getUntilValue())\r\n },\r\n _getUntilValue: function() {\r\n return this._recurrenceRule.rules().until || this._formatUntilDate(new Date)\r\n },\r\n _changeDayOfMonthValue: function() {\r\n if (!this._$repeatOnMonth && !this._$repeatOnYear) {\r\n return\r\n }\r\n var day = this._dayOfMonthByRules() || 1;\r\n this._dayEditor.option(\"value\", day)\r\n },\r\n _changeMonthOfYearValue: function() {\r\n if (!this._$repeatOnYear) {\r\n return\r\n }\r\n var month = this._monthOfYearByRules() || 1;\r\n this._monthEditor.option(\"value\", month)\r\n },\r\n toggle: function() {\r\n this._freqEditor.focus()\r\n },\r\n setAria: function() {\r\n if (this._switchEditor) {\r\n this._switchEditor.setAria(arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 1 ? void 0 : arguments[1])\r\n }\r\n }\r\n}).include(_uiScheduler2.default);\r\n(0, _component_registrator2.default)(\"dxRecurrenceEditor\", RecurrenceEditor);\r\nmodule.exports = RecurrenceEditor;\r\n","/**\r\n * DevExtreme (ui/scheduler/shaders/ui.scheduler.current_time_shader.horizontal.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _position = require(\"../../../core/utils/position\");\r\nvar _uiScheduler = require(\"../shaders/ui.scheduler.current_time_shader\");\r\nvar _uiScheduler2 = _interopRequireDefault(_uiScheduler);\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar HorizontalCurrentTimeShader = function(_CurrentTimeShader) {\r\n _inherits(HorizontalCurrentTimeShader, _CurrentTimeShader);\r\n var _super = _createSuper(HorizontalCurrentTimeShader);\r\n\r\n function HorizontalCurrentTimeShader() {\r\n _classCallCheck(this, HorizontalCurrentTimeShader);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(HorizontalCurrentTimeShader, [{\r\n key: \"renderShader\",\r\n value: function() {\r\n var groupCount = this._workSpace._isHorizontalGroupedWorkSpace() ? this._workSpace._getGroupCount() : 1;\r\n for (var i = 0; i < groupCount; i++) {\r\n var isFirstShader = 0 === i;\r\n var $shader = isFirstShader ? this._$shader : this.createShader();\r\n this.applyShaderMargin($shader);\r\n if (this._workSpace.isGroupedByDate()) {\r\n this._customizeGroupedByDateShader($shader, i)\r\n } else {\r\n this._customizeShader($shader, i)\r\n }!isFirstShader && this._shader.push($shader)\r\n }\r\n }\r\n }, {\r\n key: \"_customizeShader\",\r\n value: function($shader, groupIndex) {\r\n var shaderWidth = this._workSpace.getIndicationWidth();\r\n this._applyShaderWidth($shader, shaderWidth);\r\n if (groupIndex >= 1) {\r\n var workSpace = this._workSpace;\r\n var indicationWidth = workSpace._getCellCount() * workSpace.getCellWidth();\r\n $shader.css(\"left\", indicationWidth)\r\n } else {\r\n $shader.css(\"left\", 0)\r\n }\r\n }\r\n }, {\r\n key: \"_applyShaderWidth\",\r\n value: function($shader, width) {\r\n var maxWidth = (0, _position.getBoundingRect)(this._$container.get(0)).width;\r\n if (width > maxWidth) {\r\n width = maxWidth\r\n }\r\n if (width > 0) {\r\n $shader.width(width)\r\n }\r\n }\r\n }, {\r\n key: \"_customizeGroupedByDateShader\",\r\n value: function($shader, groupIndex) {\r\n var cellCount = this._workSpace.getIndicationCellCount();\r\n var integerPart = Math.floor(cellCount);\r\n var fractionPart = cellCount - integerPart;\r\n var isFirstShaderPart = 0 === groupIndex;\r\n var workSpace = this._workSpace;\r\n var shaderWidth = isFirstShaderPart ? workSpace.getIndicationWidth() : fractionPart * workSpace.getCellWidth();\r\n var shaderLeft;\r\n this._applyShaderWidth($shader, shaderWidth);\r\n if (isFirstShaderPart) {\r\n shaderLeft = workSpace._getCellCount() * workSpace.getCellWidth() * groupIndex\r\n } else {\r\n shaderLeft = workSpace.getCellWidth() * integerPart * workSpace._getGroupCount() + groupIndex * workSpace.getCellWidth()\r\n }\r\n $shader.css(\"left\", shaderLeft)\r\n }\r\n }]);\r\n return HorizontalCurrentTimeShader\r\n}(_uiScheduler2.default);\r\nmodule.exports = HorizontalCurrentTimeShader;\r\n","/**\r\n * DevExtreme (ui/scheduler/appointmentPopup.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nexports.default = void 0;\r\nvar _renderer = require(\"../../core/renderer\");\r\nvar _renderer2 = _interopRequireDefault(_renderer);\r\nvar _popup = require(\"../popup\");\r\nvar _popup2 = _interopRequireDefault(_popup);\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _window2 = _interopRequireDefault(_window);\r\nvar _devices = require(\"../../core/devices\");\r\nvar _devices2 = _interopRequireDefault(_devices);\r\nvar _dom = require(\"../../core/utils/dom\");\r\nvar _dom2 = _interopRequireDefault(_dom);\r\nvar _object = require(\"../../core/utils/object\");\r\nvar _object2 = _interopRequireDefault(_object);\r\nvar _date = require(\"../../core/utils/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _message = require(\"../../localization/message\");\r\nvar _message2 = _interopRequireDefault(_message);\r\nvar _uiScheduler = require(\"./ui.scheduler.appointment_form\");\r\nvar _ui = require(\"./ui.loading\");\r\nvar _ui2 = _interopRequireDefault(_ui);\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 _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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 = _date2.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 AppointmentPopup = function() {\r\n function AppointmentPopup(scheduler) {\r\n _classCallCheck(this, AppointmentPopup);\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 processTimeZone: false,\r\n isEmptyText: false,\r\n isEmptyDescription: false\r\n }\r\n }\r\n }\r\n _createClass(AppointmentPopup, [{\r\n key: \"show\",\r\n value: 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 var processTimeZone = arguments.length > 2 ? arguments[2] : void 0;\r\n this.state.appointment.data = data;\r\n this.state.appointment.processTimeZone = processTimeZone;\r\n if (!this._popup) {\r\n var popupConfig = this._createPopupConfig();\r\n this._popup = this._createPopup(popupConfig)\r\n } else {\r\n this._updateForm()\r\n }\r\n this._popup.option(\"toolbarItems\", this._createPopupToolbarItems(isDoneButtonVisible));\r\n this._popup.show()\r\n }\r\n }, {\r\n key: \"hide\",\r\n value: function() {\r\n this._popup.hide()\r\n }\r\n }, {\r\n key: \"isVisible\",\r\n value: function() {\r\n return this._popup ? this._popup.option(\"visible\") : false\r\n }\r\n }, {\r\n key: \"dispose\",\r\n value: function() {\r\n if (this._$popup) {\r\n this._popup.$element().remove();\r\n this._$popup = null\r\n }\r\n }\r\n }, {\r\n key: \"_createPopup\",\r\n value: function(options) {\r\n var popupElement = (0, _renderer2.default)(\"
\").addClass(APPOINTMENT_POPUP_CLASS).appendTo(this.scheduler.$element());\r\n return this.scheduler._createComponent(popupElement, _popup2.default, options)\r\n }\r\n }, {\r\n key: \"_createPopupConfig\",\r\n value: 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: this._onShowing.bind(this),\r\n defaultOptionsRules: [{\r\n device: function() {\r\n return _devices2.default.current().android\r\n },\r\n options: {\r\n showTitle: false\r\n }\r\n }]\r\n }\r\n }\r\n }, {\r\n key: \"_onShowing\",\r\n value: function(e) {\r\n var _this2 = this;\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 }, {\r\n key: \"_createPopupContent\",\r\n value: function() {\r\n var formElement = (0, _renderer2.default)(\"
\");\r\n this._appointmentForm = this._createForm(formElement);\r\n this._updateForm();\r\n return formElement\r\n }\r\n }, {\r\n key: \"_createAppointmentFormData\",\r\n value: function(appointmentData) {\r\n var recurrenceRule = this.scheduler.fire(\"getField\", \"recurrenceRule\", appointmentData);\r\n var result = (0, _extend.extend)(true, {\r\n repeat: !!recurrenceRule\r\n }, appointmentData);\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 }, {\r\n key: \"_createForm\",\r\n value: 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 appointmentData = this.state.appointment.data;\r\n var formData = this._createAppointmentFormData(appointmentData);\r\n var readOnly = this._isReadOnly(appointmentData);\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 }, {\r\n key: \"_getAllowTimeZoneEditing\",\r\n value: function() {\r\n var scheduler = this.scheduler;\r\n return scheduler.option(\"editing.allowTimeZoneEditing\") || scheduler.option(\"editing.allowEditingTimeZones\")\r\n }\r\n }, {\r\n key: \"_isReadOnly\",\r\n value: function(data) {\r\n if (data && data.disabled) {\r\n return true\r\n }\r\n return this.scheduler._editAppointmentData ? !this.scheduler._editing.allowUpdating : false\r\n }\r\n }, {\r\n key: \"_updateForm\",\r\n value: function() {\r\n var _this$state$appointme = this.state.appointment,\r\n data = _this$state$appointme.data,\r\n processTimeZone = _this$state$appointme.processTimeZone;\r\n var allDay = this.scheduler.fire(\"getField\", \"allDay\", data);\r\n var startDate = this.scheduler.fire(\"getField\", \"startDate\", data);\r\n var endDate = this.scheduler.fire(\"getField\", \"endDate\", data);\r\n this.state.appointment.isEmptyText = void 0 === data || void 0 === data.text;\r\n this.state.appointment.isEmptyDescription = void 0 === data || void 0 === data.description;\r\n var formData = (0, _extend.extend)({}, {\r\n text: \"\",\r\n description: \"\",\r\n recurrenceRule: \"\"\r\n }, this._createAppointmentFormData(data));\r\n if (processTimeZone) {\r\n if (startDate) {\r\n startDate = this.scheduler.fire(\"convertDateByTimezone\", startDate);\r\n this.scheduler.fire(\"setField\", \"startDate\", formData, startDate)\r\n }\r\n if (endDate) {\r\n endDate = this.scheduler.fire(\"convertDateByTimezone\", endDate);\r\n this.scheduler.fire(\"setField\", \"endDate\", formData, endDate)\r\n }\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 recurrenceRuleExpr = _this$scheduler$_data.recurrenceRuleExpr;\r\n var recurrenceEditorOptions = this._getEditorOptions(recurrenceRuleExpr, _uiScheduler.APPOINTMENT_FORM_GROUP_NAMES.Recurrence);\r\n this._setEditorOptions(recurrenceRuleExpr, _uiScheduler.APPOINTMENT_FORM_GROUP_NAMES.Recurrence, (0, _extend.extend)({}, recurrenceEditorOptions, {\r\n startDate: startDate\r\n }));\r\n this._appointmentForm.option(\"readOnly\", this._isReadOnly(data));\r\n _uiScheduler.AppointmentForm.updateFormData(this._appointmentForm, formData);\r\n _uiScheduler.AppointmentForm.setEditorsType(this._appointmentForm, startDateExpr, endDateExpr, allDay)\r\n }\r\n }, {\r\n key: \"_getEditorOptions\",\r\n value: function(name, groupName) {\r\n var editor = this._appointmentForm.itemOption(\"\".concat(groupName, \".\").concat(name));\r\n return editor ? editor.editorOptions : {}\r\n }\r\n }, {\r\n key: \"_setEditorOptions\",\r\n value: function(name, groupName, options) {\r\n var editorPath = \"\".concat(groupName, \".\").concat(name);\r\n var editor = this._appointmentForm.itemOption(editorPath);\r\n editor && this._appointmentForm.itemOption(editorPath, \"editorOptions\", options)\r\n }\r\n }, {\r\n key: \"_isDeviceMobile\",\r\n value: function() {\r\n return \"desktop\" !== _devices2.default.current().deviceType\r\n }\r\n }, {\r\n key: \"_isPopupFullScreenNeeded\",\r\n value: 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 }, {\r\n key: \"_tryGetWindowWidth\",\r\n value: function() {\r\n if (_window2.default.hasWindow()) {\r\n var window = _window2.default.getWindow();\r\n return (0, _renderer2.default)(window).width()\r\n }\r\n }\r\n }, {\r\n key: \"triggerResize\",\r\n value: function() {\r\n this._popup && _dom2.default.triggerResizeEvent(this._popup.$element())\r\n }\r\n }, {\r\n key: \"_getMaxWidth\",\r\n value: 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 }, {\r\n key: \"changeSize\",\r\n value: 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 }, {\r\n key: \"updatePopupFullScreenMode\",\r\n value: 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 }, {\r\n key: \"_createPopupToolbarItems\",\r\n value: function(isDoneButtonVisible) {\r\n var _this3 = this;\r\n var result = [];\r\n var isIOs = \"ios\" === _devices2.default.current().platform;\r\n if (isDoneButtonVisible) {\r\n result.push({\r\n shortcut: \"done\",\r\n options: {\r\n text: _message2.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 }, {\r\n key: \"saveChanges\",\r\n value: 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 var convert = function(obj, dateFieldName) {\r\n var date = new Date(_this4.scheduler.fire(\"getField\", dateFieldName, obj));\r\n var tzDiff = _this4.scheduler._getTimezoneOffsetByOption() * toMs(\"hour\") + _this4.scheduler.fire(\"getClientTimezoneOffset\", date);\r\n return new Date(date.getTime() + tzDiff)\r\n };\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 = _object2.default.deepExtendArraySafe({}, _this4._getFormData(), true);\r\n var oldData = _this4.scheduler._editAppointmentData;\r\n var recData = _this4.scheduler._updatedRecAppointment;\r\n if (state.isEmptyText && \"\" === formData.text) {\r\n delete formData.text\r\n }\r\n if (state.isEmptyDescription && \"\" === formData.description) {\r\n delete formData.description\r\n }\r\n if (void 0 === state.data.recurrenceRule && \"\" === formData.recurrenceRule) {\r\n delete formData.recurrenceRule\r\n }\r\n if ((0, _type.isDefined)(formData.repeat)) {\r\n delete formData.repeat\r\n }\r\n if (oldData) {\r\n _this4.scheduler._convertDatesByTimezoneBack(false, formData)\r\n }\r\n if (oldData && !recData) {\r\n _this4.scheduler.updateAppointment(oldData, formData).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 if (\"number\" === typeof _this4.scheduler._getTimezoneOffsetByOption()) {\r\n _this4.scheduler.fire(\"setField\", \"startDate\", formData, convert.call(_this4, formData, \"startDate\"));\r\n _this4.scheduler.fire(\"setField\", \"endDate\", formData, convert.call(_this4, formData, \"endDate\"))\r\n }\r\n }\r\n _this4.scheduler.addAppointment(formData).done(deferred.resolve)\r\n }\r\n deferred.done(function() {\r\n _this4._hideLoadPanel();\r\n _this4.state.lastEditData = formData\r\n })\r\n });\r\n return deferred.promise()\r\n }\r\n }, {\r\n key: \"_getFormData\",\r\n value: function() {\r\n var formData = this._appointmentForm.option(\"formData\");\r\n var startDate = this.scheduler.fire(\"getField\", \"startDate\", formData);\r\n var endDate = this.scheduler.fire(\"getField\", \"endDate\", formData);\r\n this.scheduler.fire(\"setField\", \"startDate\", formData, startDate);\r\n this.scheduler.fire(\"setField\", \"endDate\", formData, endDate);\r\n return formData\r\n }\r\n }, {\r\n key: \"_doneButtonClickHandler\",\r\n value: function(e) {\r\n e.cancel = true;\r\n this.saveEditData()\r\n }\r\n }, {\r\n key: \"saveEditData\",\r\n value: 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 startDate = _this5.scheduler.fire(\"getField\", \"startDate\", _this5.state.lastEditData);\r\n _this5.scheduler._workSpace.updateScrollPosition(startDate);\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 }, {\r\n key: \"_hideLoadPanel\",\r\n value: function() {\r\n _ui2.default.hide()\r\n }\r\n }, {\r\n key: \"_showLoadPanel\",\r\n value: function() {\r\n var $overlayContent = this._popup.overlayContent();\r\n _ui2.default.show({\r\n container: $overlayContent,\r\n position: {\r\n of: $overlayContent\r\n }\r\n })\r\n }\r\n }, {\r\n key: \"_tryLockSaveChanges\",\r\n value: 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 }, {\r\n key: \"_unlockSaveChanges\",\r\n value: function() {\r\n this.state.saveChangesLocker = false\r\n }\r\n }]);\r\n return AppointmentPopup\r\n}();\r\nexports.default = AppointmentPopup;\r\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.timeline_work_week.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar registerComponent = require(\"../../../core/component_registrator\");\r\nvar SchedulerTimelineWeek = require(\"./ui.scheduler.timeline_week\");\r\nvar dateUtils = require(\"../../../core/utils/date\");\r\nvar workWeekUtils = require(\"./utils.work_week\");\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline-work-week\";\r\nvar LAST_DAY_WEEK_INDEX = 5;\r\nvar SchedulerTimelineWorkWeek = SchedulerTimelineWeek.inherit({\r\n _getElementClass: function() {\r\n return TIMELINE_CLASS\r\n },\r\n _getWeekDuration: function() {\r\n return 5\r\n },\r\n _firstDayOfWeek: function() {\r\n return workWeekUtils.getFirstDayOfWeek(this.option(\"firstDayOfWeek\"))\r\n },\r\n _isSkippedData: workWeekUtils.isDataOnWeekend,\r\n _incrementDate: function(date) {\r\n var day = date.getDay();\r\n if (day === LAST_DAY_WEEK_INDEX) {\r\n date.setDate(date.getDate() + 2)\r\n }\r\n this.callBase(date)\r\n },\r\n _getOffsetByCount: function(cellIndex) {\r\n var weekendCount = Math.floor(cellIndex / (5 * this._getCellCountInDay()));\r\n return toMs(\"day\") * weekendCount * 2\r\n },\r\n _getWeekendsCount: workWeekUtils.getWeekendsCount,\r\n _setFirstViewDate: function() {\r\n this._firstViewDate = workWeekUtils.getFirstViewDate(this.option(\"currentDate\"), this._firstDayOfWeek());\r\n this._setStartDayHour(this._firstViewDate)\r\n }\r\n});\r\nregisterComponent(\"dxSchedulerTimelineWorkWeek\", SchedulerTimelineWorkWeek);\r\nmodule.exports = SchedulerTimelineWorkWeek;\r\n","/**\r\n * DevExtreme (ui/scheduler/rendering_strategies/ui.scheduler.appointments.strategy.agenda.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar _date = require(\"../../../core/utils/date\");\r\nvar _date2 = _interopRequireDefault(_date);\r\nvar _iterator = require(\"../../../core/utils/iterator\");\r\nvar _array = require(\"../../../core/utils/array\");\r\nvar _array2 = _interopRequireDefault(_array);\r\nvar _uiSchedulerAppointmentsStrategy = require(\"./ui.scheduler.appointments.strategy.base\");\r\nvar _uiSchedulerAppointmentsStrategy2 = _interopRequireDefault(_uiSchedulerAppointmentsStrategy);\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 _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\")\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\n\r\nfunction _inherits(subClass, superClass) {\r\n if (\"function\" !== typeof superClass && null !== superClass) {\r\n throw new TypeError(\"Super expression must either be null or a function\")\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) {\r\n _setPrototypeOf(subClass, superClass)\r\n }\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 _createSuper(Derived) {\r\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\r\n return function() {\r\n var result, Super = _getPrototypeOf(Derived);\r\n if (hasNativeReflectConstruct) {\r\n var NewTarget = _getPrototypeOf(this).constructor;\r\n result = Reflect.construct(Super, arguments, NewTarget)\r\n } else {\r\n result = Super.apply(this, arguments)\r\n }\r\n return _possibleConstructorReturn(this, result)\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (call && (\"object\" === _typeof(call) || \"function\" === typeof call)) {\r\n return call\r\n }\r\n return _assertThisInitialized(self)\r\n}\r\n\r\nfunction _assertThisInitialized(self) {\r\n if (void 0 === self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\")\r\n }\r\n return self\r\n}\r\n\r\nfunction _isNativeReflectConstruct() {\r\n if (\"undefined\" === typeof Reflect || !Reflect.construct) {\r\n return false\r\n }\r\n if (Reflect.construct.sham) {\r\n return false\r\n }\r\n if (\"function\" === typeof Proxy) {\r\n return true\r\n }\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n}\r\n\r\nfunction _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o)\r\n };\r\n return _getPrototypeOf(o)\r\n}\r\nvar AgendaRenderingStrategy = function(_BaseAppointmentsStra) {\r\n _inherits(AgendaRenderingStrategy, _BaseAppointmentsStra);\r\n var _super = _createSuper(AgendaRenderingStrategy);\r\n\r\n function AgendaRenderingStrategy() {\r\n _classCallCheck(this, AgendaRenderingStrategy);\r\n return _super.apply(this, arguments)\r\n }\r\n _createClass(AgendaRenderingStrategy, [{\r\n key: \"getAppointmentMinSize\",\r\n value: function() {}\r\n }, {\r\n key: \"getDeltaTime\",\r\n value: function() {}\r\n }, {\r\n key: \"keepAppointmentSettings\",\r\n value: function() {\r\n return true\r\n }\r\n }, {\r\n key: \"getAppointmentGeometry\",\r\n value: function(geometry) {\r\n return geometry\r\n }\r\n }, {\r\n key: \"createTaskPositionMap\",\r\n value: function(appointments) {\r\n var height;\r\n var appointmentsByResources;\r\n if (appointments.length) {\r\n height = this.instance.fire(\"getAgendaVerticalStepHeight\");\r\n appointmentsByResources = this.instance.fire(\"groupAppointmentsByResources\", appointments);\r\n var groupedAppts = [];\r\n (0, _iterator.each)(appointmentsByResources, function(i, appts) {\r\n var additionalAppointments = [];\r\n var recurrentIndexes = [];\r\n (0, _iterator.each)(appts, function(index, appointment) {\r\n var recurrenceBatch = this.instance.getAppointmentsInstance()._processRecurrenceAppointment(appointment, index);\r\n var appointmentBatch = null;\r\n if (!recurrenceBatch.indexes.length) {\r\n appointmentBatch = {\r\n parts: []\r\n };\r\n appointmentBatch = this.instance.getAppointmentsInstance()._processLongAppointment(appointment);\r\n additionalAppointments = additionalAppointments.concat(appointmentBatch.parts)\r\n }\r\n additionalAppointments = additionalAppointments.concat(recurrenceBatch.parts);\r\n recurrentIndexes = recurrentIndexes.concat(recurrenceBatch.indexes)\r\n }.bind(this));\r\n this.instance.getAppointmentsInstance()._reduceRecurrenceAppointments(recurrentIndexes, appts);\r\n this.instance.getAppointmentsInstance()._combineAppointments(appts, additionalAppointments);\r\n groupedAppts = groupedAppts.concat(appts)\r\n }.bind(this));\r\n Array.prototype.splice.apply(appointments, [0, appointments.length].concat(groupedAppts))\r\n }\r\n var result = [];\r\n var sortedIndex = 0;\r\n appointments.forEach(function(appt, index) {\r\n result.push([{\r\n height: height,\r\n width: \"100%\",\r\n sortedIndex: sortedIndex++,\r\n groupIndex: this._calculateGroupIndex(index, appointmentsByResources)\r\n }])\r\n }.bind(this));\r\n return result\r\n }\r\n }, {\r\n key: \"_calculateGroupIndex\",\r\n value: function(apptIndex, appointmentsByResources) {\r\n var resultInd;\r\n var counter = 0;\r\n for (var i in appointmentsByResources) {\r\n var countApptInGroup = appointmentsByResources[i].length;\r\n if (apptIndex >= counter && apptIndex < counter + countApptInGroup) {\r\n resultInd = Number(i);\r\n break\r\n }\r\n counter += countApptInGroup\r\n }\r\n return resultInd\r\n }\r\n }, {\r\n key: \"_getDeltaWidth\",\r\n value: function() {}\r\n }, {\r\n key: \"_getAppointmentMaxWidth\",\r\n value: function() {\r\n return this.getDefaultCellWidth()\r\n }\r\n }, {\r\n key: \"_needVerifyItemSize\",\r\n value: function() {\r\n return false\r\n }\r\n }, {\r\n key: \"_isRtl\",\r\n value: function() {\r\n return this.instance.option(\"rtlEnabled\")\r\n }\r\n }, {\r\n key: \"_getAppointmentParts\",\r\n value: function() {}\r\n }, {\r\n key: \"_reduceMultiWeekAppointment\",\r\n value: function() {}\r\n }, {\r\n key: \"calculateAppointmentHeight\",\r\n value: function() {\r\n return 0\r\n }\r\n }, {\r\n key: \"calculateAppointmentWidth\",\r\n value: function() {\r\n return 0\r\n }\r\n }, {\r\n key: \"isAppointmentGreaterThan\",\r\n value: function() {}\r\n }, {\r\n key: \"isAllDay\",\r\n value: function() {\r\n return false\r\n }\r\n }, {\r\n key: \"_sortCondition\",\r\n value: function() {}\r\n }, {\r\n key: \"_rowCondition\",\r\n value: function() {}\r\n }, {\r\n key: \"_columnCondition\",\r\n value: function() {}\r\n }, {\r\n key: \"_findIndexByKey\",\r\n value: function() {}\r\n }, {\r\n key: \"_markAppointmentAsVirtual\",\r\n value: function() {}\r\n }, {\r\n key: \"getDropDownAppointmentWidth\",\r\n value: function() {}\r\n }, {\r\n key: \"getDefaultCellWidth\",\r\n value: function() {\r\n return this._defaultWidth\r\n }\r\n }, {\r\n key: \"getCollectorLeftOffset\",\r\n value: function() {}\r\n }, {\r\n key: \"getCollectorTopOffset\",\r\n value: function() {}\r\n }, {\r\n key: \"calculateRows\",\r\n value: function(appointments, agendaDuration, currentDate, needClearSettings) {\r\n this._rows = [];\r\n var groupedAppointments = this.instance.fire(\"groupAppointmentsByResources\", appointments);\r\n currentDate = _date2.default.trimTime(new Date(currentDate));\r\n (0, _iterator.each)(groupedAppointments, function(groupIndex, currentAppointments) {\r\n var groupResult = [];\r\n var appts = {\r\n indexes: [],\r\n parts: []\r\n };\r\n if (!currentAppointments.length) {\r\n this._rows.push([]);\r\n return true\r\n }(0, _iterator.each)(currentAppointments, function(index, appointment) {\r\n var startDate = this.instance.fire(\"getField\", \"startDate\", appointment);\r\n var endDate = this.instance.fire(\"getField\", \"endDate\", appointment);\r\n this.instance.fire(\"fixWrongEndDate\", appointment, startDate, endDate);\r\n needClearSettings && delete appointment.settings;\r\n var result = this.instance.getAppointmentsInstance()._processRecurrenceAppointment(appointment, index, false);\r\n appts.parts = appts.parts.concat(result.parts);\r\n appts.indexes = appts.indexes.concat(result.indexes)\r\n }.bind(this));\r\n this.instance.getAppointmentsInstance()._reduceRecurrenceAppointments(appts.indexes, currentAppointments);\r\n _array2.default.merge(currentAppointments, appts.parts);\r\n var appointmentCount = currentAppointments.length;\r\n for (var i = 0; i < agendaDuration; i++) {\r\n var day = new Date(currentDate);\r\n day.setMilliseconds(day.getMilliseconds() + 864e5 * i);\r\n if (void 0 === groupResult[i]) {\r\n groupResult[i] = 0\r\n }\r\n for (var j = 0; j < appointmentCount; j++) {\r\n var appointmentData = currentAppointments[j].settings || currentAppointments[j];\r\n var appointmentIsLong = this.instance.fire(\"appointmentTakesSeveralDays\", currentAppointments[j]);\r\n var appointmentIsRecurrence = this.instance.fire(\"getField\", \"recurrenceRule\", currentAppointments[j]);\r\n if (this.instance.fire(\"dayHasAppointment\", day, appointmentData, true) || !appointmentIsRecurrence && appointmentIsLong && this.instance.fire(\"dayHasAppointment\", day, currentAppointments[j], true)) {\r\n groupResult[i] += 1\r\n }\r\n }\r\n }\r\n this._rows.push(groupResult)\r\n }.bind(this));\r\n return this._rows\r\n }\r\n }, {\r\n key: \"_iterateRow\",\r\n value: function(row, obj, index) {\r\n for (var i = 0; i < row.length; i++) {\r\n obj.counter = obj.counter + row[i];\r\n if (obj.counter >= index) {\r\n obj.indexInRow = i;\r\n break\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"getDateByIndex\",\r\n value: function(index, rows, startViewDate) {\r\n var obj = {\r\n counter: 0,\r\n indexInRow: 0\r\n };\r\n index++;\r\n for (var i = 0; i < rows.length; i++) {\r\n this._iterateRow(rows[i], obj, index);\r\n if (obj.indexInRow) {\r\n break\r\n }\r\n }\r\n return new Date(new Date(startViewDate).setDate(startViewDate.getDate() + obj.indexInRow))\r\n }\r\n }, {\r\n key: \"getAppointmentDataCalculator\",\r\n value: function() {\r\n return function($appointment, originalStartDate) {\r\n var apptIndex = $appointment.index();\r\n var startViewDate = this.instance.getStartViewDate();\r\n var calculatedStartDate = this.getDateByIndex(apptIndex, this._rows, startViewDate);\r\n var wrappedOriginalStartDate = new Date(originalStartDate);\r\n return {\r\n startDate: new Date(calculatedStartDate.setHours(wrappedOriginalStartDate.getHours(), wrappedOriginalStartDate.getMinutes(), wrappedOriginalStartDate.getSeconds(), wrappedOriginalStartDate.getMilliseconds()))\r\n }\r\n }.bind(this)\r\n }\r\n }]);\r\n return AgendaRenderingStrategy\r\n}(_uiSchedulerAppointmentsStrategy2.default);\r\nmodule.exports = AgendaRenderingStrategy;\r\n","/**\r\n * DevExtreme (ui/scheduler/workspaces/ui.scheduler.timeline.js)\r\n * Version: 20.1.7\r\n * Build date: Tue Aug 25 2020\r\n *\r\n * Copyright (c) 2012 - 2020 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\nvar $ = require(\"../../../core/renderer\");\r\nvar noop = require(\"../../../core/utils/common\").noop;\r\nvar extend = require(\"../../../core/utils/extend\").extend;\r\nvar getBoundingRect = require(\"../../../core/utils/position\").getBoundingRect;\r\nvar registerComponent = require(\"../../../core/component_registrator\");\r\nvar SchedulerWorkSpace = require(\"./ui.scheduler.work_space.indicator\");\r\nvar dateUtils = require(\"../../../core/utils/date\");\r\nvar tableCreator = require(\"../ui.scheduler.table_creator\");\r\nvar HorizontalShader = require(\"../shaders/ui.scheduler.current_time_shader.horizontal\");\r\nvar TIMELINE_CLASS = \"dx-scheduler-timeline\";\r\nvar GROUP_TABLE_CLASS = \"dx-scheduler-group-table\";\r\nvar HORIZONTAL_GROUPED_WORKSPACE_CLASS = \"dx-scheduler-work-space-horizontal-grouped\";\r\nvar HEADER_PANEL_CELL_CLASS = \"dx-scheduler-header-panel-cell\";\r\nvar HEADER_PANEL_WEEK_CELL_CLASS = \"dx-scheduler-header-panel-week-cell\";\r\nvar HEADER_ROW_CLASS = \"dx-scheduler-header-row\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar DATE_TABLE_CELL_BORDER = 1;\r\nvar DATE_TABLE_HEADER_MARGIN = 10;\r\nvar toMs = dateUtils.dateToMilliseconds;\r\nvar SchedulerTimeline = SchedulerWorkSpace.inherit({\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TIMELINE_CLASS);\r\n this._$sidebarTable = $(\"
\").addClass(GROUP_TABLE_CLASS)\r\n },\r\n _getCellFromNextRow: function(direction, isMultiSelection) {\r\n if (!isMultiSelection) {\r\n return this.callBase(direction, isMultiSelection)\r\n }\r\n return this._$focusedCell\r\n },\r\n _getDefaultGroupStrategy: function() {\r\n return \"vertical\"\r\n },\r\n _toggleGroupingDirectionClass: function() {\r\n this.$element().toggleClass(HORIZONTAL_GROUPED_WORKSPACE_CLASS, this._isHorizontalGroupedWorkSpace())\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n groupOrientation: \"vertical\"\r\n })\r\n },\r\n _getRowCount: function() {\r\n return 1\r\n },\r\n _getCellCount: function() {\r\n return this._getCellCountInDay() * this.option(\"intervalCount\")\r\n },\r\n getGroupTableWidth: function() {\r\n return this._$sidebarTable ? this._$sidebarTable.outerWidth() : 0\r\n },\r\n _getTotalRowCount: function(groupCount) {\r\n if (this._isHorizontalGroupedWorkSpace()) {\r\n return this._getRowCount()\r\n } else {\r\n groupCount = groupCount || 1;\r\n return this._getRowCount() * groupCount\r\n }\r\n },\r\n _getDateByIndex: function(index) {\r\n var resultDate = new Date(this._firstViewDate);\r\n var dayIndex = Math.floor(index / this._getCellCountInDay());\r\n resultDate.setTime(this._firstViewDate.getTime() + this._calculateCellIndex(0, index) * this._getInterval() + dayIndex * this._getHiddenInterval());\r\n return resultDate\r\n },\r\n _getFormat: function() {\r\n return \"shorttime\"\r\n },\r\n _needApplyLastGroupCellClass: function() {\r\n return true\r\n },\r\n _calculateHiddenInterval: function(rowIndex, cellIndex) {\r\n var dayIndex = Math.floor(cellIndex / this._getCellCountInDay());\r\n return dayIndex * this._getHiddenInterval()\r\n },\r\n _getMillisecondsOffset: function(rowIndex, cellIndex) {\r\n cellIndex = this._calculateCellIndex(rowIndex, cellIndex);\r\n return this._getInterval() * cellIndex + this._calculateHiddenInterval(rowIndex, cellIndex)\r\n },\r\n _createWorkSpaceElements: function() {\r\n this._createWorkSpaceScrollableElements()\r\n },\r\n _getWorkSpaceHeight: function() {\r\n if (this.option(\"crossScrollingEnabled\")) {\r\n return getBoundingRect(this._$dateTable.get(0)).height\r\n }\r\n return getBoundingRect(this.$element().get(0)).height\r\n },\r\n _dateTableScrollableConfig: function() {\r\n var config = this.callBase();\r\n var timelineConfig = {\r\n direction: HORIZONTAL\r\n };\r\n return this.option(\"crossScrollingEnabled\") ? config : extend(config, timelineConfig)\r\n },\r\n _needCreateCrossScrolling: function() {\r\n return true\r\n },\r\n _headerScrollableConfig: function() {\r\n var config = this.callBase();\r\n return extend(config, {\r\n scrollByContent: true\r\n })\r\n },\r\n _renderTimePanel: noop,\r\n _renderAllDayPanel: noop,\r\n _getTableAllDay: function() {\r\n return false\r\n },\r\n _getDateHeaderTemplate: function() {\r\n return this.option(\"timeCellTemplate\")\r\n },\r\n _toggleAllDayVisibility: noop,\r\n _changeAllDayVisibility: noop,\r\n supportAllDayRow: function() {\r\n return false\r\n },\r\n _getGroupHeaderContainer: function() {\r\n if (this._isHorizontalGroupedWorkSpace()) {\r\n return this._$thead\r\n }\r\n return this._$sidebarTable\r\n },\r\n _insertAllDayRowsIntoDateTable: function() {\r\n return false\r\n },\r\n _createAllDayPanelElements: noop,\r\n _renderDateHeader: function() {\r\n var $headerRow = this.callBase();\r\n if (this._needRenderWeekHeader()) {\r\n var firstViewDate = new Date(this._firstViewDate);\r\n var $cells = [];\r\n var colspan = this._getCellCountInDay();\r\n var cellTemplate = this.option(\"dateCellTemplate\");\r\n for (var i = 0; i < this._getWeekDuration() * this.option(\"intervalCount\"); i++) {\r\n var $th = $(\"
\");\r\n var text = this._formatWeekdayAndDay(firstViewDate);\r\n if (cellTemplate) {\r\n var templateOptions = {\r\n model: {\r\n text: text,\r\n date: new Date(firstViewDate)\r\n },\r\n container: $th,\r\n index: i\r\n };\r\n cellTemplate.render(templateOptions)\r\n } else {\r\n $th.text(text)\r\n }\r\n $th.addClass(HEADER_PANEL_CELL_CLASS).addClass(HEADER_PANEL_WEEK_CELL_CLASS).attr(\"colSpan\", colspan);\r\n $cells.push($th);\r\n this._incrementDate(firstViewDate)\r\n }\r\n var $row = $(\"