{"version":3,"sources":["webpack:///./node_modules/devextreme/ui/calendar/ui.calendar.js","webpack:///./node_modules/devextreme/ui/calendar/ui.calendar.navigator.js","webpack:///./node_modules/devextreme/ui/calendar/ui.calendar.views.js","webpack:///./node_modules/devextreme/ui/calendar/ui.calendar.base_view.js","webpack:///./node_modules/devextreme/ui/check_box.js","webpack:///./node_modules/devextreme/ui/box.js","webpack:///./node_modules/devextreme/ui/calendar.js","webpack:///./node_modules/devextreme/ui/button_group.js","webpack:///./node_modules/devextreme/ui/button.js"],"names":["exports","default","_renderer","_interopRequireDefault","_guid","_component_registrator","_common","_type","_math","_extend","_button","_editor","_swipeable","_uiCalendar","_uiCalendar2","_translator","_browser","_date2","_date_serialization","_devices","_fx","_window","_message","_function_template","obj","__esModule","LEVEL_COMPARE_MAP","month","year","decade","century","ZOOM_LEVEL","isIE11","msie","parseInt","version","Calendar","inherit","_activeStateUnit","_getDefaultOptions","extend","this","callBase","hoverStateEnabled","activeStateEnabled","currentDate","Date","value","dateSerializationFormat","min","max","firstDayOfWeek","zoomLevel","maxZoomLevel","minZoomLevel","showTodayButton","cellTemplate","disabledDates","onCellClick","onContouredChanged","hasFocus","element","hasClass","_todayDate","_defaultOptionsRules","concat","device","real","deviceType","isSimulator","options","focusStateEnabled","_supportedKeys","rightArrow","e","preventDefault","ctrlKey","_waitRenderView","_moveCurrentDateByOffset","_getRtlCorrection","leftArrow","upArrow","_navigateUp","isAnimating","_view","$element","option","downArrow","_navigateDown","home","_dateOption","isDateDisabled","date","sameView","getViewFirstCellDate","_moveToClosestAvailableDate","end","getViewLastCellDate","pageUp","pageDown","tab","noop","enter","_isMaxZoomLevel","_updateTimeComponent","_dateValue","_getSerializationFormat","optionName","isNumeric","isString","getDateSerializationFormat","_convertToDate","deserializeDate","event","type","cellElement","_getContouredCell","get","target","_saveValueChangeEvent","optionValue","arguments","length","serializationFormat","serializeDate","_shiftDate","offset","reverse","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","baseDate","maxDate","_getMaxDate","minDate","_getMinDate","isDateForwardInNeighborView","_areDatesInNeighborView","isDateForwardInRange","inRange","dateForward","_areDatesInSameView","date1","date2","getYear","a","b","abs","Math","isDateForwardInStartView","isDateBackwardInStartView","createDate","isCurrentDateAvailable","_isDateNotAvailable","isDateForwardAvailable","isDateBackwardAvailable","dateBackward","_init","_correctZoomLevel","_initCurrentDate","_initActions","_getNormalizedDate","normalizeDate","isDefined","_getDate","_cellClickAction","_createActionByOption","_onContouredChanged","_initTemplates","_templateManager","addDefaultTemplates","cell","FunctionTemplate","data","model","container","append","text","String","_updateCurrentDate","_$viewsWrapper","stop","normalizedDate","getTime","_getViewsOffset","_isOtherViewCellClicked","_suppressNavigation","_navigate","_renderNavigator","_setViewContoured","_updateAriaId","_focusTarget","startDate","endDate","zoomCorrection","_getMonthsOffset","_this","_alreadyViewRender","_getDateByOffset","_waitRenderViewTimeout","setTimeout","_date","currentDay","difference","getDifferenceInMonth","lastDay","getLastMonthDate","_initMarkup","_renderSubmitElement","addClass","_renderBody","$body","_renderViews","_navigator","_renderSwipeable","_renderFooter","_updateAriaSelected","_render","_getKeyboardListeners","CALENDAR_VIEW_CLASS","_renderSpecificView","hasWindow","beforeDate","_beforeView","_isViewAvailable","afterDate","_afterView","_translateViews","specificView","$view","appendTo","config","_viewConfig","_createComponent","isFunction","_injectComponent","bind","tabIndex","_cellClickHandler","_getTemplateByOption","allowValueSelection","func","that","params","component","getViewMinBoundaryDate","getViewMaxBoundaryDate","dateInRange","move","left","top","_getViewPosition","coefficient","nextView","getViewDown","isMaxZoomLevel","currentTarget","newValue","result","currentValue","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","setMilliseconds","getMilliseconds","newCurrentDate","_animateShowView","_navigatorConfig","getNavigatorCaption","_updateButtonsVisibility","onClick","_navigatorClickHandler","onCaptionClick","rtlEnabled","direction","getViewUp","_isMinZoomLevel","toggleButton","_getRequiredView","onStart","_swipeStartHandler","onUpdated","_swipeUpdateHandler","onEnd","_swipeEndHandler","itemSizeFunc","_viewWidth","maxLeftOffset","maxRightOffset","name","view","isRtl","_updateNavigatorCaption","targetOffset","moveOffset","_isDateInInvalidRange","_animateWrapper","_viewWidthValue","width","isBoundary","$todayButton","format","args","_toTodayView","integrationOptions","_$footer","toggleClass","_$submitElement","attr","_setSubmitValue","dateValue","_getSubmitElement","val","_popAnimationView","promise","from","to","duration","animate","scale","opacity","newView","remove","endPosition","position","_preventViewChangeAnimation","_wrapperAnimationEndHandler","done","isDate","today","newDate","_rearrangeViews","_resetLocation","viewOffset","viewToCreateKey","viewToRemoveKey","destinationDate","dateByOffset","_clean","_clearViewWidthCache","_disposeViews","_dispose","clearTimeout","_refreshViews","_visibilityChanged","_focusInHandler","apply","_focusOutHandler","_updateViewsValue","previousValue","_value","$prevSelectedCell","_getCellByDate","$selectedCell","setAria","_value2","ariaId","$newCell","_suppressingNavigation","callback","_optionChanged","removeClass","_invalidate","_default","module","_ui","_clickAction","_captionClickAction","_renderButtons","_renderCaption","_prevButton","icon","$prevButton","_nextButton","$nextButton","_caption","$caption","buttonPrefix","button","_getViewName","rowCount","colCount","_renderImpl","_renderHeader","_$table","find","_renderFocusTarget","getCellAriaLabel","$headerRow","$header","prepend","colIndex","_renderHeaderCell","cellIndex","_this$_getDayCaption","_getDayCaption","_getFirstDayOfWeek","fullCaption","full","abbrCaption","abbreviated","$cell","scope","abbr","_appendCell","_isTodayCell","cellDate","sameDate","_isDateOutOfRange","_isOtherView","_getCellText","day","dayIndex","getDayNames","_getFirstCellData","firstDay","getFirstMonthDate","firstMonthDayOffset","getDay","daysInWeek","_getNextCellData","firstDayOfWeekIndex","getShortDateFormat","sameMonthAndYear","_getDefaultDisabledDatesHandler","some","item","getMonthNames","foundDate","sameYear","sameDecade","getFirstYearInDecade","createDateWithFullYear","firstYearInDecade","_isValueOnCurrentView","minDecade","maxDecade","sameCentury","getFirstDecadeInCentury","firstDecadeInCentury","_dom_adapter","_events_engine","_element_data","_element","_index","_click","abstract","CALENDAR_DXCLICK_EVENT_NAME","addNamespace","_createTable","_createDisabledDatesHandler","_renderContouredDate","_renderValue","_renderEvents","label","role","rowData","prevCellDate","rowIndex","row","_createRow","_renderCell","createElement","appendChild","_appendMethodName","_cacheAppendMethodName","_createCell","className","_getClassNameByDate","setAttribute","fixTimezoneGap","_this$_createCell","render","_prepareCellTemplateData","innerHTML","getPublicElement","index","_createCellClickAction","off","on","_disabledDatesHandler","Array","isArray","dateParts","contouredDate","$oldContouredCell","$newContouredCell","_changeValue","selectedCell","_selectedCell","_getFirstAvailableDate","getFirstDateView","_utils","CheckBox","space","useInkRipple","_canValueBeChangedByClick","_useTemplates","_feedbackHideTimeout","_$container","_renderIcon","_renderText","_renderInkRipple","_renderClick","_inkRipple","waveSizeCoefficient","useHoldAnimation","wavesNumber","isCentered","_renderInkWave","dxEvent","doRender","waveIndex","wave","showWave","hideWave","_updateFocusState","_$icon","_toggleActiveState","prependTo","textValue","_$text","eventName","NAME","_createAction","_clickHandler","checked","indeterminate","Boolean","_renderDimensions","_inflector","_style","_iterator","_item","_uiCollection_widget","_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","__proto__","MINSIZE_MAP","col","MAXSIZE_MAP","FLEX_JUSTIFY_CONTENT_MAP","start","center","FLEX_ALIGN_ITEMS_MAP","stretch","FLEX_DIRECTION_MAP","setFlexProp","prop","normalizeStyleProp","style","styleProp","styleExpr","dasherize","attributes","indexOf","FALLBACK_WRAP_MAP","FALLBACK_MAIN_SIZE_MAP","FALLBACK_CROSS_SIZE_MAP","FALLBACK_PRE_MARGIN_MAP","FALLBACK_POST_MARGIN_MAP","FALLBACK_CROSS_PRE_MARGIN_MAP","FALLBACK_CROSS_POST_MARGIN_MAP","MARGINS_RTL_FLIP_MAP","marginLeft","marginRight","BoxItem","_CollectionWidgetItem","_renderVisible","oldValue","call","_options","fireItemStateChangedAction","state","oldState","FlexLayoutStrategy","_$element","_option","initSize","update","_proto2","renderBox","css","display","stylePropPrefix","renderAlign","justifyContent","_normalizedAlign","align","renderCrossAlign","alignItems","_normalizedCrossAlign","crossAlign","renderItems","$items","flexPropPrefix","each","$item","maxSize","minSize","baseSize","ratio","shrink","children","_","itemContent","height","flexBasis","flexDirection","FallbackLayoutStrategy","_proto3","fontSize","whiteSpace","verticalAlign","_$items","totalItemSize","freeSpace","shift","_setItemsMargins","first","_chooseMarginSide","last","size","itemSize","totalRatio","totalWeightedShrink","totalBaseSize","itemData","_baseSize","freeSpaceSize","_boxSize","factor","totalFactor","round","_contentSize","_parseSize","match","parseFloat","_boxSizeValue","_totalBaseSize","_this2","is","detach","parent","closest","triggerHandler","Box","_CollectionWidget","_proto4","onItemStateChanged","_layoutStrategy","_queue","_itemClass","_itemDataKey","_itemElements","_itemContainer","_itemSelector","_initLayout","_initBoxQueue","_layout","_queueIsNotEmpty","_pushItemToQueue","push","_shiftItemFromQueue","_renderAlign","_renderActions","_onItemStateChanged","_renderItems","items","_this3","itemTemplate","itemHoldTimeout","onItemHold","onItemClick","onItemContextMenu","onItemRendered","_updateTimer","_isUpdated","_renderItemContent","$itemNode","node","_renderItemContentByNode","_postprocessRenderItem","boxConfig","box","_createItemByTemplate","source","visible","_dimensionChanged","_itemOptionChanged","property","_itemOptions","_this4","repaint","ItemClass","_bindable_template","ButtonCollection","BindableTemplate","$container","_prepareItemStyles","_getBasicButtonOptions","_templateData","template","stylingMode","itemTemplateProperty","itemIndex","BUTTON_GROUP_CLASS","$node","_keyboardEventBindingTarget","_refreshContent","_prepareContent","_renderContent","_itemSelectHandler","isItemSelected","ButtonGroup","selectionMode","selectedItems","selectedItemKeys","keyExpr","buttonTemplate","onSelectionChanged","_createItemClickAction","_itemClickAction","_syncSelectionOptions","_fireSelectionChangeEvent","addedItems","removedItems","excludeValidators","$buttons","scrollingEnabled","accessKey","noDataText","selectionRequired","itemElement","BUTTON_GROUP_ITEM_CLASS","_buttonsCollection","_setOptionWithoutOptionChange","itemElements","_themes","_action","_validation_engine","_short","_icon","_defineProperties","props","i","descriptor","enumerable","configurable","writable","defineProperty","key","Button","_Widget","_len","_key","Constructor","protoProps","staticProps","_proto","_$content","_$submitInput","_attachActiveEvents","active","inactive","$el","_eventBindingTarget","selector","namespace","showTimeout","_feedbackShowTimeout","hideTimeout","isMaterial","current","_executeClickAction","validationGroup","_validationGroupConfig","_findGroup","_modelByElement","findGroup","_getContentData","_this$option2","iconPosition","useSubmitBehavior","_getSubmitAction","needValidate","validationStatus","_ref","_validationGroup$vali","validate","status","complete","then","_ref2","_submitInput","click","stopPropagation","_renderType","_renderStylingMode","_updateAriaLabel","_updateContent","_getAnonymousTemplateName","content","_ref3","_ref3$model","$icon","getImageContainer","$textContainer","_updateClick","_updateType","_updateStylingMode","_updateSubmitInput","dxClick","_this5","_this$option3","isOnlyIconButton","changeWaveVisibility","_this5$option","_disposed","_ref4","_ref5","_renderSubmitInput","submitAction","$content","_this6","ariaTarget","_getAriaTarget","_this$option7","getImageSourceType","replace","_this7","afterExecute","_this$option8","empty","$template","transclude","anonymousTemplateName","replaceWith","$submitInput","map","mode","forEach","getGroupConfig"],"mappings":"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","file":"vendors~f341962c.4f77305e357716c30f27.bundle.js","sourcesContent":["/**\r\n * DevExtreme (ui/calendar/ui.calendar.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _guid = _interopRequireDefault(require(\"../../core/guid\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _math = require(\"../../core/utils/math\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\nvar _editor = _interopRequireDefault(require(\"../editor/editor\"));\r\nvar _swipeable = _interopRequireDefault(require(\"../../events/gesture/swipeable\"));\r\nvar _uiCalendar = _interopRequireDefault(require(\"./ui.calendar.navigator\"));\r\nvar _uiCalendar2 = _interopRequireDefault(require(\"./ui.calendar.views\"));\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _date2 = _interopRequireDefault(require(\"../../core/utils/date\"));\r\nvar _date_serialization = _interopRequireDefault(require(\"../../core/utils/date_serialization\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _function_template = require(\"../../core/templates/function_template\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar CALENDAR_CLASS = \"dx-calendar\";\r\nvar CALENDAR_BODY_CLASS = \"dx-calendar-body\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_FOOTER_CLASS = \"dx-calendar-footer\";\r\nvar CALENDAR_TODAY_BUTTON_CLASS = \"dx-calendar-today-button\";\r\nvar CALENDAR_HAS_FOOTER_CLASS = \"dx-calendar-with-footer\";\r\nvar CALENDAR_VIEWS_WRAPPER_CLASS = \"dx-calendar-views-wrapper\";\r\nvar CALENDAR_VIEW_CLASS = \"dx-calendar-view\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar ANIMATION_DURATION_SHOW_VIEW = 250;\r\nvar POP_ANIMATION_FROM = .6;\r\nvar POP_ANIMATION_TO = 1;\r\nvar CALENDAR_INPUT_STANDARD_PATTERN = \"yyyy-MM-dd\";\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar LEVEL_COMPARE_MAP = {\r\n month: 3,\r\n year: 2,\r\n decade: 1,\r\n century: 0\r\n};\r\nvar ZOOM_LEVEL = {\r\n MONTH: \"month\",\r\n YEAR: \"year\",\r\n DECADE: \"decade\",\r\n CENTURY: \"century\"\r\n};\r\nvar isIE11 = _browser.default.msie && parseInt(_browser.default.version) <= 11;\r\nvar Calendar = _editor.default.inherit({\r\n _activeStateUnit: \".\" + CALENDAR_CELL_CLASS,\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n currentDate: new Date,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: new Date(1e3, 0),\r\n max: new Date(3e3, 0),\r\n firstDayOfWeek: void 0,\r\n zoomLevel: ZOOM_LEVEL.MONTH,\r\n maxZoomLevel: ZOOM_LEVEL.MONTH,\r\n minZoomLevel: ZOOM_LEVEL.CENTURY,\r\n showTodayButton: false,\r\n cellTemplate: \"cell\",\r\n disabledDates: null,\r\n onCellClick: null,\r\n onContouredChanged: null,\r\n hasFocus: function(element) {\r\n return element.hasClass(FOCUSED_STATE_CLASS)\r\n },\r\n _todayDate: function() {\r\n return new Date\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === _devices.default.real().deviceType && !_devices.default.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _supportedKeys: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n rightArrow: function(e) {\r\n e.preventDefault();\r\n if (e.ctrlKey) {\r\n this._waitRenderView(1)\r\n } else {\r\n this._moveCurrentDateByOffset(1 * this._getRtlCorrection())\r\n }\r\n },\r\n leftArrow: function(e) {\r\n e.preventDefault();\r\n if (e.ctrlKey) {\r\n this._waitRenderView(-1)\r\n } else {\r\n this._moveCurrentDateByOffset(-1 * this._getRtlCorrection())\r\n }\r\n },\r\n upArrow: function(e) {\r\n e.preventDefault();\r\n if (e.ctrlKey) {\r\n this._navigateUp()\r\n } else {\r\n if (_fx.default.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(-1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n downArrow: function(e) {\r\n e.preventDefault();\r\n if (e.ctrlKey) {\r\n this._navigateDown()\r\n } else {\r\n if (_fx.default.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n home: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var min = this._dateOption(\"min\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = _date2.default.sameView(zoomLevel, currentDate, min) ? min : _date2.default.getViewFirstCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n end: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var max = this._dateOption(\"max\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = _date2.default.sameView(zoomLevel, currentDate, max) ? max : _date2.default.getViewLastCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n pageUp: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(-1 * this._getRtlCorrection())\r\n },\r\n pageDown: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(1 * this._getRtlCorrection())\r\n },\r\n tab: _common.noop,\r\n enter: function(e) {\r\n if (!this._isMaxZoomLevel()) {\r\n this._navigateDown()\r\n } else {\r\n if (!this._view.isDateDisabled(this.option(\"currentDate\"))) {\r\n var value = this._updateTimeComponent(this.option(\"currentDate\"));\r\n this._dateValue(value, e)\r\n }\r\n }\r\n }\r\n })\r\n },\r\n _getSerializationFormat: function(optionName) {\r\n var value = this.option(optionName || \"value\");\r\n if (this.option(\"dateSerializationFormat\")) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if ((0, _type.isNumeric)(value)) {\r\n return \"number\"\r\n }\r\n if (!(0, _type.isString)(value)) {\r\n return\r\n }\r\n return _date_serialization.default.getDateSerializationFormat(value)\r\n },\r\n _convertToDate: function(value, optionName) {\r\n return _date_serialization.default.deserializeDate(value)\r\n },\r\n _dateValue: function(value, event) {\r\n if (event) {\r\n if (\"keydown\" === event.type) {\r\n var cellElement = this._view._getContouredCell().get(0);\r\n event.target = cellElement\r\n }\r\n this._saveValueChangeEvent(event)\r\n }\r\n this._dateOption(\"value\", value)\r\n },\r\n _dateOption: function(optionName, optionValue) {\r\n if (1 === arguments.length) {\r\n return this._convertToDate(this.option(optionName), optionName)\r\n }\r\n var serializationFormat = this._getSerializationFormat(optionName);\r\n this.option(optionName, _date_serialization.default.serializeDate(optionValue, serializationFormat))\r\n },\r\n _shiftDate: function(zoomLevel, date, offset, reverse) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n date.setDate(date.getDate() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.YEAR:\r\n date.setMonth(date.getMonth() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n date.setFullYear(date.getFullYear() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.CENTURY:\r\n date.setFullYear(date.getFullYear() + 10 * offset * reverse)\r\n }\r\n },\r\n _moveCurrentDateByOffset: function(offset) {\r\n var baseDate = this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n this._shiftDate(zoomLevel, currentDate, offset, 1);\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n var isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, currentDate, baseDate);\r\n var isDateForwardInRange = (0, _math.inRange)(currentDate, minDate, maxDate) && isDateForwardInNeighborView;\r\n var dateForward = new Date(currentDate);\r\n while (isDateForwardInRange) {\r\n if (isDateForwardInRange && !this._view.isDateDisabled(dateForward)) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, offset, 1);\r\n isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, dateForward, baseDate);\r\n isDateForwardInRange = (0, _math.inRange)(dateForward, minDate, maxDate) && isDateForwardInNeighborView\r\n }\r\n if (this._view.isDateDisabled(baseDate) || this._view.isDateDisabled(currentDate)) {\r\n this._waitRenderView(offset > 0 ? 1 : -1)\r\n } else {\r\n this.option(\"currentDate\", currentDate)\r\n }\r\n },\r\n _areDatesInSameView: function(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return date1.getMonth() === date2.getMonth();\r\n case ZOOM_LEVEL.YEAR:\r\n return date1.getYear() === date2.getYear();\r\n case ZOOM_LEVEL.DECADE:\r\n return parseInt(date1.getYear() / 10) === parseInt(date2.getYear() / 10);\r\n case ZOOM_LEVEL.CENTURY:\r\n return parseInt(date1.getYear() / 100) === parseInt(date2.getYear() / 100)\r\n }\r\n },\r\n _areDatesInNeighborView: function(zoomLevel, date1, date2) {\r\n var monthMinDistance = function(a, b) {\r\n var abs = Math.abs(a - b);\r\n return Math.min(abs, 12 - abs)\r\n };\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return monthMinDistance(date1.getMonth(), date2.getMonth()) <= 1;\r\n case ZOOM_LEVEL.YEAR:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 1;\r\n case ZOOM_LEVEL.DECADE:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 10;\r\n case ZOOM_LEVEL.CENTURY:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 100\r\n }\r\n },\r\n _moveToClosestAvailableDate: function() {\r\n var baseDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.option(\"currentDate\");\r\n var currentDate = _date2.default.createDate(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var isCurrentDateAvailable = !this._isDateNotAvailable(currentDate);\r\n var isDateForwardAvailable = isCurrentDateAvailable;\r\n var isDateBackwardAvailable = isCurrentDateAvailable;\r\n var isDateForwardInStartView;\r\n var isDateBackwardInStartView;\r\n var dateForward = _date2.default.createDate(currentDate);\r\n var dateBackward = _date2.default.createDate(currentDate);\r\n do {\r\n if (isDateForwardAvailable) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n if (isDateBackwardAvailable) {\r\n currentDate = dateBackward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, 1, 1);\r\n this._shiftDate(zoomLevel, dateBackward, 1, -1);\r\n isDateForwardInStartView = this._areDatesInSameView(zoomLevel, dateForward, baseDate);\r\n isDateBackwardInStartView = this._areDatesInSameView(zoomLevel, dateBackward, baseDate);\r\n isDateForwardAvailable = isDateForwardInStartView && !this._isDateNotAvailable(dateForward);\r\n isDateBackwardAvailable = isDateBackwardInStartView && !this._isDateNotAvailable(dateBackward)\r\n } while (isDateForwardInStartView || isDateBackwardInStartView);\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _isDateNotAvailable: function(date) {\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n return !(0, _math.inRange)(date, minDate, maxDate) || this._view.isDateDisabled(date)\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._correctZoomLevel();\r\n this._initCurrentDate();\r\n this._initActions()\r\n },\r\n _correctZoomLevel: function() {\r\n var minZoomLevel = this.option(\"minZoomLevel\");\r\n var maxZoomLevel = this.option(\"maxZoomLevel\");\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (LEVEL_COMPARE_MAP[maxZoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n return\r\n }\r\n if (LEVEL_COMPARE_MAP[zoomLevel] > LEVEL_COMPARE_MAP[maxZoomLevel]) {\r\n this.option(\"zoomLevel\", maxZoomLevel)\r\n } else {\r\n if (LEVEL_COMPARE_MAP[zoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n this.option(\"zoomLevel\", minZoomLevel)\r\n }\r\n }\r\n },\r\n _initCurrentDate: function() {\r\n var currentDate = this._getNormalizedDate(this._dateOption(\"value\")) || this._getNormalizedDate(this.option(\"currentDate\"));\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _getNormalizedDate: function(date) {\r\n date = _date2.default.normalizeDate(date, this._getMinDate(), this._getMaxDate());\r\n return (0, _type.isDefined)(date) ? this._getDate(date) : date\r\n },\r\n _initActions: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\");\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n cell: new _function_template.FunctionTemplate(function(options) {\r\n var data = options.model;\r\n (0, _renderer.default)(options.container).append((0, _renderer.default)(\"\").text(data && data.text || String(data)))\r\n })\r\n });\r\n this.callBase()\r\n },\r\n _updateCurrentDate: function(date) {\r\n if (_fx.default.isAnimating(this._$viewsWrapper)) {\r\n _fx.default.stop(this._$viewsWrapper, true)\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n if (min > max) {\r\n this.option(\"currentDate\", new Date);\r\n return\r\n }\r\n var normalizedDate = this._getNormalizedDate(date);\r\n if (date.getTime() !== normalizedDate.getTime()) {\r\n this.option(\"currentDate\", _date2.default.createDate(normalizedDate));\r\n return\r\n }\r\n var offset = this._getViewsOffset(this._view.option(\"date\"), normalizedDate);\r\n if (0 !== offset && !this._isMaxZoomLevel() && this._isOtherViewCellClicked) {\r\n offset = 0\r\n }\r\n if (this._view && 0 !== offset && !this._suppressNavigation) {\r\n this._navigate(offset, normalizedDate)\r\n } else {\r\n this._renderNavigator();\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate)\r\n }\r\n },\r\n _setViewContoured: function(date) {\r\n if (this.option(\"hasFocus\")(this._focusTarget())) {\r\n this._view.option(\"contouredDate\", date)\r\n }\r\n },\r\n _getMinDate: function() {\r\n if (this.min) {\r\n return this.min\r\n }\r\n this.min = this._dateOption(\"min\") || new Date(1e3, 0);\r\n return this.min\r\n },\r\n _getMaxDate: function() {\r\n if (this.max) {\r\n return this.max\r\n }\r\n this.max = this._dateOption(\"max\") || new Date(3e3, 0);\r\n return this.max\r\n },\r\n _getViewsOffset: function(startDate, endDate) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (zoomLevel === ZOOM_LEVEL.MONTH) {\r\n return this._getMonthsOffset(startDate, endDate)\r\n }\r\n var zoomCorrection;\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.CENTURY:\r\n zoomCorrection = 100;\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n zoomCorrection = 10;\r\n break;\r\n default:\r\n zoomCorrection = 1\r\n }\r\n return parseInt(endDate.getFullYear() / zoomCorrection) - parseInt(startDate.getFullYear() / zoomCorrection)\r\n },\r\n _getMonthsOffset: function(startDate, endDate) {\r\n var yearOffset = endDate.getFullYear() - startDate.getFullYear();\r\n var monthOffset = endDate.getMonth() - startDate.getMonth();\r\n return 12 * yearOffset + monthOffset\r\n },\r\n _waitRenderView: function(offset) {\r\n var _this = this;\r\n if (this._alreadyViewRender) {\r\n return\r\n }\r\n this._alreadyViewRender = true;\r\n var date = this._getDateByOffset(offset * this._getRtlCorrection());\r\n this._moveToClosestAvailableDate(date);\r\n this._waitRenderViewTimeout = setTimeout(function() {\r\n _this._alreadyViewRender = false\r\n })\r\n },\r\n _getRtlCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _getDateByOffset: function(offset, date) {\r\n var _date;\r\n date = this._getDate(null !== (_date = date) && void 0 !== _date ? _date : this.option(\"currentDate\"));\r\n var currentDay = date.getDate();\r\n var difference = _date2.default.getDifferenceInMonth(this.option(\"zoomLevel\")) * offset;\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() + difference);\r\n var lastDay = _date2.default.getLastMonthDate(date).getDate();\r\n date.setDate(currentDay > lastDay ? lastDay : currentDay);\r\n return date\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n var $element = this.$element();\r\n $element.addClass(CALENDAR_CLASS);\r\n this._renderBody();\r\n $element.append(this.$body);\r\n this._renderViews();\r\n this._renderNavigator();\r\n $element.append(this._navigator.$element());\r\n this._renderSwipeable();\r\n this._renderFooter();\r\n this._updateAriaSelected();\r\n this._updateAriaId();\r\n this._moveToClosestAvailableDate()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._setViewContoured(this.option(\"currentDate\"))\r\n },\r\n _renderBody: function() {\r\n if (!this._$viewsWrapper) {\r\n this.$body = (0, _renderer.default)(\"
\").addClass(CALENDAR_BODY_CLASS);\r\n this._$viewsWrapper = (0, _renderer.default)(\"
\").addClass(CALENDAR_VIEWS_WRAPPER_CLASS);\r\n this.$body.append(this._$viewsWrapper)\r\n }\r\n },\r\n _getKeyboardListeners: function() {\r\n return this.callBase().concat([this._view])\r\n },\r\n _renderViews: function() {\r\n this.$element().addClass(CALENDAR_VIEW_CLASS + \"-\" + this.option(\"zoomLevel\"));\r\n var currentDate = this.option(\"currentDate\");\r\n this._view = this._renderSpecificView(currentDate);\r\n if ((0, _window.hasWindow)()) {\r\n var beforeDate = this._getDateByOffset(-1, currentDate);\r\n this._beforeView = this._isViewAvailable(beforeDate) ? this._renderSpecificView(beforeDate) : null;\r\n var afterDate = this._getDateByOffset(1, currentDate);\r\n afterDate.setDate(1);\r\n this._afterView = this._isViewAvailable(afterDate) ? this._renderSpecificView(afterDate) : null\r\n }\r\n this._translateViews()\r\n },\r\n _renderSpecificView: function(date) {\r\n var specificView = _uiCalendar2.default[this.option(\"zoomLevel\")];\r\n var $view = (0, _renderer.default)(\"
\").appendTo(this._$viewsWrapper);\r\n var config = this._viewConfig(date);\r\n return this._createComponent($view, specificView, config)\r\n },\r\n _viewConfig: function(date) {\r\n var disabledDates = this.option(\"disabledDates\");\r\n disabledDates = (0, _type.isFunction)(disabledDates) ? this._injectComponent(disabledDates.bind(this)) : disabledDates;\r\n return {\r\n date: date,\r\n min: this._getMinDate(),\r\n max: this._getMaxDate(),\r\n firstDayOfWeek: this.option(\"firstDayOfWeek\"),\r\n value: this._dateOption(\"value\"),\r\n tabIndex: void 0,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n disabledDates: disabledDates,\r\n onCellClick: this._cellClickHandler.bind(this),\r\n cellTemplate: this._getTemplateByOption(\"cellTemplate\"),\r\n allowValueSelection: this._isMaxZoomLevel(),\r\n _todayDate: this.option(\"_todayDate\")\r\n }\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n (0, _extend.extend)(params, {\r\n component: that\r\n });\r\n return func(params)\r\n }\r\n },\r\n _isViewAvailable: function(date) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var min = _date2.default.getViewMinBoundaryDate(zoomLevel, this._getMinDate());\r\n var max = _date2.default.getViewMaxBoundaryDate(zoomLevel, this._getMaxDate());\r\n return _date2.default.dateInRange(date, min, max)\r\n },\r\n _translateViews: function() {\r\n (0, _translator.move)(this._view.$element(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._beforeView && (0, _translator.move)(this._beforeView.$element(), {\r\n left: this._getViewPosition(-1),\r\n top: 0\r\n });\r\n this._afterView && (0, _translator.move)(this._afterView.$element(), {\r\n left: this._getViewPosition(1),\r\n top: 0\r\n })\r\n },\r\n _getViewPosition: function(coefficient) {\r\n var rtlCorrection = this.option(\"rtlEnabled\") && !_browser.default.msie ? -1 : 1;\r\n return 100 * coefficient * rtlCorrection + \"%\"\r\n },\r\n _cellClickHandler: function(e) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = _date2.default.getViewDown(zoomLevel);\r\n var isMaxZoomLevel = this._isMaxZoomLevel();\r\n if (nextView && !isMaxZoomLevel) {\r\n this._navigateDown(e.event.currentTarget)\r\n } else {\r\n var newValue = this._updateTimeComponent(e.value);\r\n this._dateValue(newValue, e.event);\r\n this._cellClickAction(e)\r\n }\r\n },\r\n _updateTimeComponent: function(date) {\r\n var result = _date2.default.createDate(date);\r\n var currentValue = this._dateOption(\"value\");\r\n if (currentValue) {\r\n result.setHours(currentValue.getHours());\r\n result.setMinutes(currentValue.getMinutes());\r\n result.setSeconds(currentValue.getSeconds());\r\n result.setMilliseconds(currentValue.getMilliseconds())\r\n }\r\n return result\r\n },\r\n _isMaxZoomLevel: function() {\r\n return this.option(\"zoomLevel\") === this.option(\"maxZoomLevel\")\r\n },\r\n _navigateDown: function(cell) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (this._isMaxZoomLevel()) {\r\n return\r\n }\r\n var nextView = _date2.default.getViewDown(zoomLevel);\r\n if (!nextView) {\r\n return\r\n }\r\n var newCurrentDate = this._view.option(\"contouredDate\") || this._view.option(\"date\");\r\n if (cell) {\r\n newCurrentDate = (0, _renderer.default)(cell).data(CALENDAR_DATE_VALUE_KEY)\r\n }\r\n this._isOtherViewCellClicked = true;\r\n this.option(\"currentDate\", newCurrentDate);\r\n this.option(\"zoomLevel\", nextView);\r\n this._isOtherViewCellClicked = false;\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _renderNavigator: function() {\r\n if (!this._navigator) {\r\n this._navigator = new _uiCalendar.default((0, _renderer.default)(\"
\"), this._navigatorConfig())\r\n }\r\n this._navigator.option(\"text\", this._view.getNavigatorCaption());\r\n this._updateButtonsVisibility()\r\n },\r\n _navigatorConfig: function() {\r\n return {\r\n text: this._view.getNavigatorCaption(),\r\n onClick: this._navigatorClickHandler.bind(this),\r\n onCaptionClick: this._navigateUp.bind(this),\r\n rtlEnabled: this.option(\"rtlEnabled\")\r\n }\r\n },\r\n _navigatorClickHandler: function(e) {\r\n var currentDate = this._getDateByOffset(e.direction, this.option(\"currentDate\"));\r\n this._moveToClosestAvailableDate(currentDate)\r\n },\r\n _navigateUp: function() {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = _date2.default.getViewUp(zoomLevel);\r\n if (!nextView || this._isMinZoomLevel(zoomLevel)) {\r\n return\r\n }\r\n this.option(\"zoomLevel\", nextView);\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _isMinZoomLevel: function(zoomLevel) {\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n return _date2.default.sameView(zoomLevel, min, max) || this.option(\"minZoomLevel\") === zoomLevel\r\n },\r\n _updateButtonsVisibility: function() {\r\n this._navigator.toggleButton(\"next\", !(0, _type.isDefined)(this._getRequiredView(\"next\")));\r\n this._navigator.toggleButton(\"prev\", !(0, _type.isDefined)(this._getRequiredView(\"prev\")))\r\n },\r\n _renderSwipeable: function() {\r\n if (!this._swipeable) {\r\n this._swipeable = this._createComponent(this.$element(), _swipeable.default, {\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._viewWidth.bind(this)\r\n })\r\n }\r\n },\r\n _swipeStartHandler: function(e) {\r\n _fx.default.stop(this._$viewsWrapper, true);\r\n e.event.maxLeftOffset = this._getRequiredView(\"next\") ? 1 : 0;\r\n e.event.maxRightOffset = this._getRequiredView(\"prev\") ? 1 : 0\r\n },\r\n _getRequiredView: function(name) {\r\n var view;\r\n var isRtl = this.option(\"rtlEnabled\");\r\n if (\"next\" === name) {\r\n view = isRtl ? this._beforeView : this._afterView\r\n } else {\r\n if (\"prev\" === name) {\r\n view = isRtl ? this._afterView : this._beforeView\r\n }\r\n }\r\n return view\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.event.offset;\r\n (0, _translator.move)(this._$viewsWrapper, {\r\n left: offset * this._viewWidth(),\r\n top: 0\r\n });\r\n this._updateNavigatorCaption(offset)\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.event.targetOffset;\r\n var moveOffset = !targetOffset ? 0 : targetOffset / Math.abs(targetOffset);\r\n if (0 === moveOffset) {\r\n this._animateWrapper(0, ANIMATION_DURATION_SHOW_VIEW);\r\n return\r\n }\r\n var date = this._getDateByOffset(-moveOffset * this._getRtlCorrection());\r\n if (this._isDateInInvalidRange(date)) {\r\n if (moveOffset >= 0) {\r\n date = new Date(this._getMinDate())\r\n } else {\r\n date = new Date(this._getMaxDate())\r\n }\r\n }\r\n this.option(\"currentDate\", date)\r\n },\r\n _viewWidth: function() {\r\n if (!this._viewWidthValue) {\r\n this._viewWidthValue = this.$element().width()\r\n }\r\n return this._viewWidthValue\r\n },\r\n _updateNavigatorCaption: function(offset) {\r\n offset *= this._getRtlCorrection();\r\n var view = this._view;\r\n if (offset > .5 && this._beforeView) {\r\n view = this._beforeView\r\n } else {\r\n if (offset < -.5 && this._afterView) {\r\n view = this._afterView\r\n }\r\n }\r\n this._navigator.option(\"text\", view.getNavigatorCaption())\r\n },\r\n _isDateInInvalidRange: function(date) {\r\n if (this._view.isBoundary(date)) {\r\n return\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n var normalizedDate = _date2.default.normalizeDate(date, min, max);\r\n return normalizedDate === min || normalizedDate === max\r\n },\r\n _renderFooter: function() {\r\n var showTodayButton = this.option(\"showTodayButton\");\r\n if (showTodayButton) {\r\n var $todayButton = this._createComponent((0, _renderer.default)(\"\"), _button.default, {\r\n focusStateEnabled: false,\r\n text: _message.default.format(\"dxCalendar-todayButtonText\"),\r\n onClick: function(args) {\r\n this._toTodayView(args)\r\n }.bind(this),\r\n integrationOptions: {}\r\n }).$element().addClass(CALENDAR_TODAY_BUTTON_CLASS);\r\n this._$footer = (0, _renderer.default)(\"
\").addClass(CALENDAR_FOOTER_CLASS).append($todayButton);\r\n this.$element().append(this._$footer)\r\n }\r\n this.$element().toggleClass(CALENDAR_HAS_FOOTER_CLASS, showTodayButton)\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = (0, _renderer.default)(\"\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue: function(value) {\r\n var dateValue = this._convertToDate(value);\r\n this._getSubmitElement().val(_date_serialization.default.serializeDate(dateValue, CALENDAR_INPUT_STANDARD_PATTERN))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _animateShowView: function() {\r\n _fx.default.stop(this._view.$element(), true);\r\n return this._popAnimationView(this._view, POP_ANIMATION_FROM, POP_ANIMATION_TO, ANIMATION_DURATION_SHOW_VIEW).promise()\r\n },\r\n _popAnimationView: function(view, from, to, duration) {\r\n return _fx.default.animate(view.$element(), {\r\n type: \"pop\",\r\n from: {\r\n scale: from,\r\n opacity: from\r\n },\r\n to: {\r\n scale: to,\r\n opacity: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _navigate: function(offset, value) {\r\n if (0 !== offset && 1 !== Math.abs(offset) && this._isViewAvailable(value)) {\r\n var newView = this._renderSpecificView(value);\r\n if (offset > 0) {\r\n this._afterView && this._afterView.$element().remove();\r\n this._afterView = newView\r\n } else {\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._beforeView = newView\r\n }\r\n this._translateViews()\r\n }\r\n var rtlCorrection = this._getRtlCorrection();\r\n var offsetSign = offset > 0 ? 1 : offset < 0 ? -1 : 0;\r\n var endPosition = -rtlCorrection * offsetSign * this._viewWidth();\r\n var viewsWrapperPosition = this._$viewsWrapper.position().left;\r\n if (viewsWrapperPosition !== endPosition) {\r\n if (this._preventViewChangeAnimation) {\r\n this._wrapperAnimationEndHandler(offset, value)\r\n } else {\r\n this._animateWrapper(endPosition, ANIMATION_DURATION_SHOW_VIEW).done(this._wrapperAnimationEndHandler.bind(this, offset, value))\r\n }\r\n }\r\n },\r\n _animateWrapper: function(to, duration) {\r\n return _fx.default.animate(this._$viewsWrapper, {\r\n type: \"slide\",\r\n from: {\r\n left: this._$viewsWrapper.position().left\r\n },\r\n to: {\r\n left: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _getDate: function(value) {\r\n var result = _date2.default.createDate(value);\r\n if (isIE11 && (0, _type.isDate)(value)) {\r\n result.setMilliseconds(0)\r\n }\r\n return result\r\n },\r\n _toTodayView: function(args) {\r\n this._saveValueChangeEvent(args.event);\r\n var today = new Date;\r\n if (this._isMaxZoomLevel()) {\r\n this._dateOption(\"value\", today);\r\n return\r\n }\r\n this._preventViewChangeAnimation = true;\r\n this.option(\"zoomLevel\", this.option(\"maxZoomLevel\"));\r\n this._dateOption(\"value\", today);\r\n this._animateShowView();\r\n this._preventViewChangeAnimation = false\r\n },\r\n _wrapperAnimationEndHandler: function(offset, newDate) {\r\n this._rearrangeViews(offset);\r\n this._translateViews();\r\n this._resetLocation();\r\n this._renderNavigator();\r\n this._setViewContoured(newDate);\r\n this._updateAriaId(newDate)\r\n },\r\n _rearrangeViews: function(offset) {\r\n if (0 === offset) {\r\n return\r\n }\r\n var viewOffset;\r\n var viewToCreateKey;\r\n var viewToRemoveKey;\r\n if (offset < 0) {\r\n viewOffset = 1;\r\n viewToCreateKey = \"_beforeView\";\r\n viewToRemoveKey = \"_afterView\"\r\n } else {\r\n viewOffset = -1;\r\n viewToCreateKey = \"_afterView\";\r\n viewToRemoveKey = \"_beforeView\"\r\n }\r\n if (!this[viewToCreateKey]) {\r\n return\r\n }\r\n var destinationDate = this[viewToCreateKey].option(\"date\");\r\n if (this[viewToRemoveKey]) {\r\n this[viewToRemoveKey].$element().remove()\r\n }\r\n if (offset === viewOffset) {\r\n this[viewToRemoveKey] = this._view\r\n } else {\r\n this[viewToRemoveKey] = this._renderSpecificView(this._getDateByOffset(viewOffset, destinationDate));\r\n this._view.$element().remove()\r\n }\r\n this._view = this[viewToCreateKey];\r\n var dateByOffset = this._getDateByOffset(-viewOffset, destinationDate);\r\n this[viewToCreateKey] = this._isViewAvailable(dateByOffset) ? this._renderSpecificView(dateByOffset) : null\r\n },\r\n _resetLocation: function() {\r\n (0, _translator.move)(this._$viewsWrapper, {\r\n left: 0,\r\n top: 0\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._clearViewWidthCache();\r\n delete this._$viewsWrapper;\r\n delete this._navigator;\r\n delete this._$footer\r\n },\r\n _clearViewWidthCache: function() {\r\n delete this._viewWidthValue\r\n },\r\n _disposeViews: function() {\r\n this._view.$element().remove();\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._afterView && this._afterView.$element().remove();\r\n delete this._view;\r\n delete this._beforeView;\r\n delete this._afterView\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._waitRenderViewTimeout);\r\n this.callBase()\r\n },\r\n _refreshViews: function() {\r\n this._disposeViews();\r\n this._renderViews()\r\n },\r\n _visibilityChanged: function() {\r\n this._translateViews()\r\n },\r\n _focusInHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._view.option(\"contouredDate\", this.option(\"currentDate\"))\r\n },\r\n _focusOutHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._view.option(\"contouredDate\", null)\r\n },\r\n _updateViewsValue: function(value) {\r\n var newValue = value ? new Date(value) : null;\r\n this._view.option(\"value\", newValue);\r\n this._beforeView && this._beforeView.option(\"value\", newValue);\r\n this._afterView && this._afterView.option(\"value\", newValue)\r\n },\r\n _updateAriaSelected: function(value, previousValue) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this._dateOption(\"value\");\r\n var $prevSelectedCell = this._view._getCellByDate(previousValue);\r\n var $selectedCell = this._view._getCellByDate(value);\r\n this.setAria(\"selected\", void 0, $prevSelectedCell);\r\n this.setAria(\"selected\", true, $selectedCell);\r\n if (value && this.option(\"currentDate\").getTime() === value.getTime()) {\r\n this._updateAriaId(value)\r\n }\r\n },\r\n _updateAriaId: function(value) {\r\n var _value2;\r\n value = null !== (_value2 = value) && void 0 !== _value2 ? _value2 : this.option(\"currentDate\");\r\n var ariaId = \"dx-\" + new _guid.default;\r\n var $newCell = this._view._getCellByDate(value);\r\n this.setAria(\"id\", ariaId, $newCell);\r\n this.setAria(\"activedescendant\", ariaId);\r\n this._onContouredChanged(ariaId)\r\n },\r\n _suppressingNavigation: function(callback, args) {\r\n this._suppressNavigation = true;\r\n callback.apply(this, args);\r\n delete this._suppressNavigation\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n var previousValue = args.previousValue;\r\n switch (args.name) {\r\n case \"width\":\r\n this.callBase(args);\r\n this._clearViewWidthCache();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this.min = void 0;\r\n this.max = void 0;\r\n this._suppressingNavigation(this._updateCurrentDate, [this.option(\"currentDate\")]);\r\n this._refreshViews();\r\n this._renderNavigator();\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._refreshViews();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"currentDate\":\r\n this.setAria(\"id\", void 0, this._view._getCellByDate(previousValue));\r\n this._updateCurrentDate(value);\r\n break;\r\n case \"zoomLevel\":\r\n this.$element().removeClass(CALENDAR_VIEW_CLASS + \"-\" + previousValue);\r\n this._correctZoomLevel();\r\n this._refreshViews();\r\n this._renderNavigator();\r\n this._updateAriaId();\r\n break;\r\n case \"minZoomLevel\":\r\n case \"maxZoomLevel\":\r\n this._correctZoomLevel();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"value\":\r\n value = this._convertToDate(value);\r\n previousValue = this._convertToDate(previousValue);\r\n this._updateAriaSelected(value, previousValue);\r\n this.option(\"currentDate\", (0, _type.isDefined)(value) ? _date2.default.createDate(value) : new Date);\r\n this._updateViewsValue(value);\r\n this._setSubmitValue(value);\r\n this.callBase(args);\r\n break;\r\n case \"onCellClick\":\r\n this._view.option(\"onCellClick\", value);\r\n break;\r\n case \"onContouredChanged\":\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\");\r\n break;\r\n case \"disabledDates\":\r\n case \"dateSerializationFormat\":\r\n case \"cellTemplate\":\r\n case \"showTodayButton\":\r\n this._invalidate();\r\n break;\r\n case \"hasFocus\":\r\n break;\r\n case \"_todayDate\":\r\n this._refreshViews();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxCalendar\", Calendar);\r\nvar _default = Calendar;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/calendar/ui.calendar.navigator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar CALENDAR_NAVIGATOR_CLASS = \"dx-calendar-navigator\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS = \"dx-calendar-navigator-previous-month\";\r\nvar CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS = \"dx-calendar-navigator-next-month\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS = \"dx-calendar-navigator-previous-view\";\r\nvar CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS = \"dx-calendar-navigator-next-view\";\r\nvar CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS = \"dx-calendar-disabled-navigator-link\";\r\nvar CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS = \"dx-calendar-caption-button\";\r\nvar Navigator = _ui.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n onClick: null,\r\n onCaptionClick: null,\r\n text: \"\"\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initActions()\r\n },\r\n _initActions: function() {\r\n this._clickAction = this._createActionByOption(\"onClick\");\r\n this._captionClickAction = this._createActionByOption(\"onCaptionClick\")\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(CALENDAR_NAVIGATOR_CLASS);\r\n this._renderButtons();\r\n this._renderCaption()\r\n },\r\n _renderButtons: function() {\r\n var that = this;\r\n var direction = this.option(\"rtlEnabled\") ? -1 : 1;\r\n this._prevButton = this._createComponent((0, _renderer.default)(\"\"), _button.default, {\r\n focusStateEnabled: false,\r\n icon: \"chevronleft\",\r\n onClick: function(e) {\r\n that._clickAction({\r\n direction: -direction,\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $prevButton = this._prevButton.$element().addClass(CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS);\r\n this._nextButton = this._createComponent((0, _renderer.default)(\"\"), _button.default, {\r\n focusStateEnabled: false,\r\n icon: \"chevronright\",\r\n onClick: function(e) {\r\n that._clickAction({\r\n direction: direction,\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $nextButton = this._nextButton.$element().addClass(CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS);\r\n this._caption = this._createComponent((0, _renderer.default)(\"\").addClass(CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS), _button.default, {\r\n focusStateEnabled: false,\r\n onClick: function(e) {\r\n that._captionClickAction({\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $caption = this._caption.$element();\r\n this.$element().append($prevButton, $caption, $nextButton)\r\n },\r\n _renderCaption: function() {\r\n this._caption.option(\"text\", this.option(\"text\"))\r\n },\r\n toggleButton: function(buttonPrefix, value) {\r\n var buttonName = \"_\" + buttonPrefix + \"Button\";\r\n var button = this[buttonName];\r\n if (button) {\r\n button.option(\"disabled\", value);\r\n button.$element().toggleClass(CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS, value)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"text\":\r\n this._renderCaption();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar _default = Navigator;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/calendar/ui.calendar.views.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiCalendar = _interopRequireDefault(require(\"./ui.calendar.base_view\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _date = _interopRequireDefault(require(\"../../core/utils/date\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _date2 = _interopRequireDefault(require(\"../../localization/date\"));\r\nvar _date_serialization = _interopRequireDefault(require(\"../../core/utils/date_serialization\"));\r\nvar _type = require(\"../../core/utils/type\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar CALENDAR_OTHER_MONTH_CLASS = \"dx-calendar-other-month\";\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar Views = {\r\n month: _uiCalendar.default.inherit({\r\n _getViewName: function() {\r\n return \"month\"\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n firstDayOfWeek: void 0,\r\n rowCount: 6,\r\n colCount: 7\r\n })\r\n },\r\n _renderImpl: function() {\r\n this.callBase();\r\n this._renderHeader()\r\n },\r\n _renderBody: function() {\r\n this.callBase();\r\n this._$table.find(\".\".concat(CALENDAR_OTHER_VIEW_CLASS)).addClass(CALENDAR_OTHER_MONTH_CLASS)\r\n },\r\n _renderFocusTarget: _common.noop,\r\n getCellAriaLabel: function(date) {\r\n return _date2.default.format(date, \"longdate\")\r\n },\r\n _renderHeader: function() {\r\n var $headerRow = (0, _renderer.default)(\"\");\r\n var $header = (0, _renderer.default)(\"\").append($headerRow);\r\n this._$table.prepend($header);\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderHeaderCell(colIndex, $headerRow)\r\n }\r\n },\r\n _renderHeaderCell: function(cellIndex, $headerRow) {\r\n var _this$_getDayCaption = this._getDayCaption(this._getFirstDayOfWeek() + cellIndex),\r\n fullCaption = _this$_getDayCaption.full,\r\n abbrCaption = _this$_getDayCaption.abbreviated;\r\n var $cell = (0, _renderer.default)(\"\").attr({\r\n scope: \"col\",\r\n abbr: fullCaption\r\n }).text(abbrCaption);\r\n this._appendCell($headerRow, $cell)\r\n },\r\n getNavigatorCaption: function() {\r\n return _date2.default.format(this.option(\"date\"), \"monthandyear\")\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return _date.default.sameDate(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var minDate = this.option(\"min\");\r\n var maxDate = this.option(\"max\");\r\n return !_date.default.dateInRange(cellDate, minDate, maxDate, \"date\")\r\n },\r\n _isOtherView: function(cellDate) {\r\n return cellDate.getMonth() !== this.option(\"date\").getMonth()\r\n },\r\n _getCellText: function(cellDate) {\r\n return _date2.default.format(cellDate, \"d\")\r\n },\r\n _getDayCaption: function(day) {\r\n var daysInWeek = this.option(\"colCount\");\r\n var dayIndex = day % daysInWeek;\r\n return {\r\n full: _date2.default.getDayNames()[dayIndex],\r\n abbreviated: _date2.default.getDayNames(\"abbreviated\")[dayIndex]\r\n }\r\n },\r\n _getFirstCellData: function() {\r\n var firstDay = _date.default.getFirstMonthDate(this.option(\"date\"));\r\n var firstMonthDayOffset = this._getFirstDayOfWeek() - firstDay.getDay();\r\n var daysInWeek = this.option(\"colCount\");\r\n if (firstMonthDayOffset >= 0) {\r\n firstMonthDayOffset -= daysInWeek\r\n }\r\n firstDay.setDate(firstDay.getDate() + firstMonthDayOffset);\r\n return firstDay\r\n },\r\n _getNextCellData: function(date) {\r\n date = _date.default.createDate(date);\r\n date.setDate(date.getDate() + 1);\r\n return date\r\n },\r\n _getFirstDayOfWeek: function() {\r\n return (0, _type.isDefined)(this.option(\"firstDayOfWeek\")) ? this.option(\"firstDayOfWeek\") : _date2.default.firstDayOfWeekIndex()\r\n },\r\n _getCellByDate: function(date) {\r\n return this._$table.find(\"td[data-value='\".concat(_date_serialization.default.serializeDate(date, _date.default.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return _date.default.sameMonthAndYear(date, this.option(\"min\")) || _date.default.sameMonthAndYear(date, this.option(\"max\"))\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return function(args) {\r\n var isDisabledDate = disabledDates.some(function(item) {\r\n return _date.default.sameDate(item, args.date)\r\n });\r\n if (isDisabledDate) {\r\n return true\r\n }\r\n }\r\n }\r\n }),\r\n year: _uiCalendar.default.inherit({\r\n _getViewName: function() {\r\n return \"year\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return _date.default.sameMonthAndYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n return !_date.default.dateInRange(cellDate, _date.default.getFirstMonthDate(this.option(\"min\")), _date.default.getLastMonthDate(this.option(\"max\")))\r\n },\r\n _isOtherView: function() {\r\n return false\r\n },\r\n _getCellText: function(cellDate) {\r\n return _date2.default.getMonthNames(\"abbreviated\")[cellDate.getMonth()]\r\n },\r\n _getFirstCellData: function() {\r\n var currentDate = this.option(\"date\");\r\n var data = _date.default.createDate(currentDate);\r\n data.setDate(1);\r\n data.setMonth(0);\r\n return data\r\n },\r\n _getNextCellData: function(date) {\r\n date = _date.default.createDate(date);\r\n date.setMonth(date.getMonth() + 1);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = _date.default.createDate(date);\r\n foundDate.setDate(1);\r\n return this._$table.find(\"td[data-value='\".concat(_date_serialization.default.serializeDate(foundDate, _date.default.getShortDateFormat()), \"']\"))\r\n },\r\n getCellAriaLabel: function(date) {\r\n return _date2.default.format(date, \"monthandyear\")\r\n },\r\n getNavigatorCaption: function() {\r\n return _date2.default.format(this.option(\"date\"), \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return _date.default.sameYear(date, this.option(\"min\")) || _date.default.sameYear(date, this.option(\"max\"))\r\n }\r\n }),\r\n decade: _uiCalendar.default.inherit({\r\n _getViewName: function() {\r\n return \"decade\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return _date.default.sameYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n return !_date.default.dateInRange(cellDate.getFullYear(), min && min.getFullYear(), max && max.getFullYear())\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = _date.default.createDate(cellDate);\r\n date.setMonth(1);\r\n return !_date.default.sameDecade(date, this.option(\"date\"))\r\n },\r\n _getCellText: function(cellDate) {\r\n return _date2.default.format(cellDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var year = _date.default.getFirstYearInDecade(this.option(\"date\")) - 1;\r\n return _date.default.createDateWithFullYear(year, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = _date.default.createDate(date);\r\n date.setFullYear(date.getFullYear() + 1);\r\n return date\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstYearInDecade = _date.default.getFirstYearInDecade(currentDate);\r\n var startDate = _date.default.createDate(currentDate);\r\n var endDate = _date.default.createDate(currentDate);\r\n startDate.setFullYear(firstYearInDecade);\r\n endDate.setFullYear(firstYearInDecade + 9);\r\n return _date2.default.format(startDate, \"yyyy\") + \"-\" + _date2.default.format(endDate, \"yyyy\")\r\n },\r\n _isValueOnCurrentView: function(currentDate, value) {\r\n return _date.default.sameDecade(currentDate, value)\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = _date.default.createDate(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n return this._$table.find(\"td[data-value='\".concat(_date_serialization.default.serializeDate(foundDate, _date.default.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return _date.default.sameDecade(date, this.option(\"min\")) || _date.default.sameDecade(date, this.option(\"max\"))\r\n }\r\n }),\r\n century: _uiCalendar.default.inherit({\r\n _getViewName: function() {\r\n return \"century\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return _date.default.sameDecade(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var decade = _date.default.getFirstYearInDecade(cellDate);\r\n var minDecade = _date.default.getFirstYearInDecade(this.option(\"min\"));\r\n var maxDecade = _date.default.getFirstYearInDecade(this.option(\"max\"));\r\n return !_date.default.dateInRange(decade, minDecade, maxDecade)\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = _date.default.createDate(cellDate);\r\n date.setMonth(1);\r\n return !_date.default.sameCentury(date, this.option(\"date\"))\r\n },\r\n _getCellText: function(cellDate) {\r\n var startDate = _date2.default.format(cellDate, \"yyyy\");\r\n var endDate = _date.default.createDate(cellDate);\r\n endDate.setFullYear(endDate.getFullYear() + 9);\r\n return startDate + \" - \" + _date2.default.format(endDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var decade = _date.default.getFirstDecadeInCentury(this.option(\"date\")) - 10;\r\n return _date.default.createDateWithFullYear(decade, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = _date.default.createDate(date);\r\n date.setFullYear(date.getFullYear() + 10);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = _date.default.createDate(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n foundDate.setFullYear(_date.default.getFirstYearInDecade(foundDate));\r\n return this._$table.find(\"td[data-value='\".concat(_date_serialization.default.serializeDate(foundDate, _date.default.getShortDateFormat()), \"']\"))\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstDecadeInCentury = _date.default.getFirstDecadeInCentury(currentDate);\r\n var startDate = _date.default.createDate(currentDate);\r\n var endDate = _date.default.createDate(currentDate);\r\n startDate.setFullYear(firstDecadeInCentury);\r\n endDate.setFullYear(firstDecadeInCentury + 99);\r\n return _date2.default.format(startDate, \"yyyy\") + \"-\" + _date2.default.format(endDate, \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return _date.default.sameCentury(date, this.option(\"min\")) || _date.default.sameCentury(date, this.option(\"max\"))\r\n }\r\n })\r\n};\r\nvar _default = Views;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/calendar/ui.calendar.base_view.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _element_data = require(\"../../core/element_data\");\r\nvar _element = require(\"../../core/element\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _date = _interopRequireDefault(require(\"../../core/utils/date\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _date_serialization = _interopRequireDefault(require(\"../../core/utils/date_serialization\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _click = require(\"../../events/click\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar abstract = _ui.default.abstract;\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_EMPTY_CELL_CLASS = \"dx-calendar-empty-cell\";\r\nvar CALENDAR_TODAY_CLASS = \"dx-calendar-today\";\r\nvar CALENDAR_SELECTED_DATE_CLASS = \"dx-calendar-selected-date\";\r\nvar CALENDAR_CONTOURED_DATE_CLASS = \"dx-calendar-contoured-date\";\r\nvar CALENDAR_DXCLICK_EVENT_NAME = (0, _index.addNamespace)(_click.name, \"dxCalendar\");\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar BaseView = _ui.default.inherit({\r\n _getViewName: function() {\r\n return \"base\"\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n date: new Date,\r\n focusStateEnabled: false,\r\n cellTemplate: null,\r\n disabledDates: null,\r\n onCellClick: null,\r\n rowCount: 3,\r\n colCount: 4,\r\n allowValueSelection: true,\r\n _todayDate: function() {\r\n return new Date\r\n }\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderImpl()\r\n },\r\n _renderImpl: function() {\r\n this.$element().append(this._createTable());\r\n this._createDisabledDatesHandler();\r\n this._renderBody();\r\n this._renderContouredDate();\r\n this._renderValue();\r\n this._renderEvents()\r\n },\r\n _createTable: function() {\r\n this._$table = (0, _renderer.default)(\"\");\r\n this.setAria({\r\n label: _message.default.format(\"dxCalendar-ariaWidgetName\"),\r\n role: \"grid\"\r\n }, this._$table);\r\n return this._$table\r\n },\r\n _renderBody: function() {\r\n this.$body = (0, _renderer.default)(\"\").appendTo(this._$table);\r\n var rowData = {\r\n cellDate: this._getFirstCellData(),\r\n prevCellDate: null\r\n };\r\n for (var rowIndex = 0, rowCount = this.option(\"rowCount\"); rowIndex < rowCount; rowIndex++) {\r\n rowData.row = this._createRow();\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderCell(rowData, colIndex)\r\n }\r\n }\r\n },\r\n _createRow: function() {\r\n var row = _dom_adapter.default.createElement(\"tr\");\r\n this.setAria(\"role\", \"row\", (0, _renderer.default)(row));\r\n this.$body.get(0).appendChild(row);\r\n return row\r\n },\r\n _appendCell: function(row, cell) {\r\n if (!this._appendMethodName) {\r\n this._cacheAppendMethodName()\r\n }(0, _renderer.default)(row)[this._appendMethodName](cell)\r\n },\r\n _cacheAppendMethodName: function(rtlEnabled) {\r\n this._appendMethodName = (null !== rtlEnabled && void 0 !== rtlEnabled ? rtlEnabled : this.option(\"rtlEnabled\")) ? \"prepend\" : \"append\"\r\n },\r\n _createCell: function(cellDate) {\r\n var cell = _dom_adapter.default.createElement(\"td\");\r\n var $cell = (0, _renderer.default)(cell);\r\n cell.className = this._getClassNameByDate(cellDate);\r\n cell.setAttribute(\"data-value\", _date_serialization.default.serializeDate(cellDate, _date.default.getShortDateFormat()));\r\n (0, _element_data.data)(cell, CALENDAR_DATE_VALUE_KEY, cellDate);\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: this.getCellAriaLabel(cellDate)\r\n }, $cell);\r\n return {\r\n cell: cell,\r\n $cell: $cell\r\n }\r\n },\r\n _renderCell: function(params, cellIndex) {\r\n var cellDate = params.cellDate,\r\n prevCellDate = params.prevCellDate,\r\n row = params.row;\r\n if (prevCellDate) {\r\n _date.default.fixTimezoneGap(prevCellDate, cellDate)\r\n }\r\n params.prevCellDate = cellDate;\r\n var _this$_createCell = this._createCell(cellDate),\r\n cell = _this$_createCell.cell,\r\n $cell = _this$_createCell.$cell;\r\n var cellTemplate = this.option(\"cellTemplate\");\r\n this._appendCell(row, cell);\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(cellDate, cellIndex, $cell))\r\n } else {\r\n cell.innerHTML = this._getCellText(cellDate)\r\n }\r\n params.cellDate = this._getNextCellData(cellDate)\r\n },\r\n _getClassNameByDate: function(cellDate) {\r\n var className = CALENDAR_CELL_CLASS;\r\n if (this._isTodayCell(cellDate)) {\r\n className += \" \".concat(CALENDAR_TODAY_CLASS)\r\n }\r\n if (this._isDateOutOfRange(cellDate) || this.isDateDisabled(cellDate)) {\r\n className += \" \".concat(CALENDAR_EMPTY_CELL_CLASS)\r\n }\r\n if (this._isOtherView(cellDate)) {\r\n className += \" \".concat(CALENDAR_OTHER_VIEW_CLASS)\r\n }\r\n return className\r\n },\r\n _prepareCellTemplateData: function(cellDate, cellIndex, $cell) {\r\n return {\r\n model: {\r\n text: this._getCellText(cellDate),\r\n date: cellDate,\r\n view: this._getViewName()\r\n },\r\n container: (0, _element.getPublicElement)($cell),\r\n index: cellIndex\r\n }\r\n },\r\n _renderEvents: function() {\r\n var _this = this;\r\n this._createCellClickAction();\r\n _events_engine.default.off(this._$table, CALENDAR_DXCLICK_EVENT_NAME);\r\n _events_engine.default.on(this._$table, CALENDAR_DXCLICK_EVENT_NAME, \"td\", function(e) {\r\n if (!(0, _renderer.default)(e.currentTarget).hasClass(CALENDAR_EMPTY_CELL_CLASS)) {\r\n _this._cellClickAction({\r\n event: e,\r\n value: (0, _renderer.default)(e.currentTarget).data(CALENDAR_DATE_VALUE_KEY)\r\n })\r\n }\r\n })\r\n },\r\n _createCellClickAction: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\")\r\n },\r\n _createDisabledDatesHandler: function() {\r\n var disabledDates = this.option(\"disabledDates\");\r\n this._disabledDatesHandler = Array.isArray(disabledDates) ? this._getDefaultDisabledDatesHandler(disabledDates) : disabledDates || _common.noop\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return _common.noop\r\n },\r\n _isTodayCell: abstract,\r\n _isDateOutOfRange: abstract,\r\n isDateDisabled: function(cellDate) {\r\n var dateParts = {\r\n date: cellDate,\r\n view: this._getViewName()\r\n };\r\n return this._disabledDatesHandler(dateParts)\r\n },\r\n _isOtherView: abstract,\r\n _getCellText: abstract,\r\n _getFirstCellData: abstract,\r\n _getNextCellData: abstract,\r\n _renderContouredDate: function(contouredDate) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n contouredDate = contouredDate || this.option(\"contouredDate\");\r\n var $oldContouredCell = this._getContouredCell();\r\n var $newContouredCell = this._getCellByDate(contouredDate);\r\n $oldContouredCell.removeClass(CALENDAR_CONTOURED_DATE_CLASS);\r\n $newContouredCell.addClass(CALENDAR_CONTOURED_DATE_CLASS)\r\n },\r\n _getContouredCell: function() {\r\n return this._$table.find(\".\".concat(CALENDAR_CONTOURED_DATE_CLASS))\r\n },\r\n _changeValue: function(cellDate) {\r\n if (cellDate) {\r\n var value = this.option(\"value\");\r\n var newValue = value ? new Date(value) : new Date;\r\n newValue.setDate(cellDate.getDate());\r\n newValue.setMonth(cellDate.getMonth());\r\n newValue.setFullYear(cellDate.getFullYear());\r\n newValue.setDate(cellDate.getDate());\r\n this.option(\"value\", newValue)\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _renderValue: function() {\r\n if (!this.option(\"allowValueSelection\")) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n var selectedCell = this._getCellByDate(value);\r\n if (this._selectedCell) {\r\n this._selectedCell.removeClass(CALENDAR_SELECTED_DATE_CLASS)\r\n }\r\n selectedCell.addClass(CALENDAR_SELECTED_DATE_CLASS);\r\n this._selectedCell = selectedCell\r\n },\r\n getCellAriaLabel: function(date) {\r\n return this._getCellText(date)\r\n },\r\n _getFirstAvailableDate: function() {\r\n var date = this.option(\"date\");\r\n var min = this.option(\"min\");\r\n date = _date.default.getFirstDateView(this._getViewName(), date);\r\n return new Date(min && date < min ? min : date)\r\n },\r\n _getCellByDate: abstract,\r\n isBoundary: abstract,\r\n _optionChanged: function(args) {\r\n var name = args.name,\r\n value = args.value;\r\n switch (name) {\r\n case \"value\":\r\n this._renderValue();\r\n break;\r\n case \"contouredDate\":\r\n this._renderContouredDate(value);\r\n break;\r\n case \"onCellClick\":\r\n this._createCellClickAction();\r\n break;\r\n case \"disabledDates\":\r\n case \"cellTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"rtlEnabled\":\r\n this._cacheAppendMethodName(value);\r\n this.callBase(args);\r\n break;\r\n case \"_todayDate\":\r\n this._renderBody();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar _default = BaseView;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/check_box.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _utils = require(\"./widget/utils.ink_ripple\");\r\nvar _editor = _interopRequireDefault(require(\"./editor/editor\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _index = require(\"../events/utils/index\");\r\nvar _click = require(\"../events/click\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar CHECKBOX_CLASS = \"dx-checkbox\";\r\nvar CHECKBOX_ICON_CLASS = \"dx-checkbox-icon\";\r\nvar CHECKBOX_CHECKED_CLASS = \"dx-checkbox-checked\";\r\nvar CHECKBOX_CONTAINER_CLASS = \"dx-checkbox-container\";\r\nvar CHECKBOX_TEXT_CLASS = \"dx-checkbox-text\";\r\nvar CHECKBOX_HAS_TEXT_CLASS = \"dx-checkbox-has-text\";\r\nvar CHECKBOX_INDETERMINATE_CLASS = \"dx-checkbox-indeterminate\";\r\nvar CHECKBOX_FEEDBACK_HIDE_TIMEOUT = 100;\r\nvar CheckBox = _editor.default.inherit({\r\n _supportedKeys: function() {\r\n var click = function(e) {\r\n e.preventDefault();\r\n this._clickAction({\r\n event: e\r\n })\r\n };\r\n return (0, _extend.extend)(this.callBase(), {\r\n space: click\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n value: false,\r\n text: \"\",\r\n useInkRipple: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === _devices.default.real().deviceType && !_devices.default.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return true\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _feedbackHideTimeout: CHECKBOX_FEEDBACK_HIDE_TIMEOUT,\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this._$container = (0, _renderer.default)(\"
\").addClass(CHECKBOX_CONTAINER_CLASS);\r\n this.setAria(\"role\", \"checkbox\");\r\n this.$element().addClass(CHECKBOX_CLASS);\r\n this._renderValue();\r\n this._renderIcon();\r\n this._renderText();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.$element().append(this._$container);\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this._renderClick();\r\n this.callBase()\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = (0, _renderer.default)(\"\").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 = (0, _utils.render)({\r\n waveSizeCoefficient: 2.5,\r\n useHoldAnimation: false,\r\n wavesNumber: 2,\r\n isCentered: true\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._$icon, e, value, 0)\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n this._renderInkWave(this._$icon, e, value, 1)\r\n },\r\n _renderIcon: function() {\r\n this._$icon = (0, _renderer.default)(\"\").addClass(CHECKBOX_ICON_CLASS).prependTo(this._$container)\r\n },\r\n _renderText: function() {\r\n var textValue = this.option(\"text\");\r\n if (!textValue) {\r\n if (this._$text) {\r\n this._$text.remove();\r\n this.$element().removeClass(CHECKBOX_HAS_TEXT_CLASS)\r\n }\r\n return\r\n }\r\n if (!this._$text) {\r\n this._$text = (0, _renderer.default)(\"\").addClass(CHECKBOX_TEXT_CLASS)\r\n }\r\n this._$text.text(textValue);\r\n this._$container.append(this._$text);\r\n this.$element().addClass(CHECKBOX_HAS_TEXT_CLASS)\r\n },\r\n _renderClick: function() {\r\n var that = this;\r\n var eventName = (0, _index.addNamespace)(_click.name, that.NAME);\r\n that._clickAction = that._createAction(that._clickHandler);\r\n _events_engine.default.off(that.$element(), eventName);\r\n _events_engine.default.on(that.$element(), eventName, function(e) {\r\n that._clickAction({\r\n event: e\r\n })\r\n })\r\n },\r\n _clickHandler: function(args) {\r\n var that = args.component;\r\n that._saveValueChangeEvent(args.event);\r\n that.option(\"value\", !that.option(\"value\"))\r\n },\r\n _renderValue: function() {\r\n var $element = this.$element();\r\n var checked = this.option(\"value\");\r\n var indeterminate = void 0 === checked;\r\n $element.toggleClass(CHECKBOX_CHECKED_CLASS, Boolean(checked));\r\n $element.toggleClass(CHECKBOX_INDETERMINATE_CLASS, indeterminate);\r\n this._getSubmitElement().val(checked);\r\n this.setAria(\"checked\", indeterminate ? \"mixed\" : checked || \"false\")\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 \"value\":\r\n this._renderValue();\r\n this.callBase(args);\r\n break;\r\n case \"text\":\r\n this._renderText();\r\n this._renderDimensions();\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\n(0, _component_registrator.default)(\"dxCheckBox\", CheckBox);\r\nvar _default = CheckBox;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/box.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _common = require(\"../core/utils/common\");\r\nvar _window = require(\"../core/utils/window\");\r\nvar _inflector = require(\"../core/utils/inflector\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _style = require(\"../core/utils/style\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _browser = _interopRequireDefault(require(\"../core/utils/browser\"));\r\nvar _item = _interopRequireDefault(require(\"./collection/item\"));\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"./collection/ui.collection_widget.edit\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar BOX_CLASS = \"dx-box\";\r\nvar BOX_SELECTOR = \".dx-box\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar MINSIZE_MAP = {\r\n row: \"minWidth\",\r\n col: \"minHeight\"\r\n};\r\nvar MAXSIZE_MAP = {\r\n row: \"maxWidth\",\r\n col: \"maxHeight\"\r\n};\r\nvar SHRINK = 1;\r\nvar FLEX_JUSTIFY_CONTENT_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n \"space-between\": \"space-between\",\r\n \"space-around\": \"space-around\"\r\n};\r\nvar FLEX_ALIGN_ITEMS_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n stretch: \"stretch\"\r\n};\r\nvar FLEX_DIRECTION_MAP = {\r\n row: \"row\",\r\n col: \"column\"\r\n};\r\nvar setFlexProp = function(element, prop, value) {\r\n value = (0, _style.normalizeStyleProp)(prop, value);\r\n element.style[(0, _style.styleProp)(prop)] = value;\r\n if (!(0, _window.hasWindow)()) {\r\n if (\"\" === value || !(0, _type.isDefined)(value)) {\r\n return\r\n }\r\n var cssName = (0, _inflector.dasherize)(prop);\r\n var styleExpr = cssName + \": \" + value + \";\";\r\n if (!element.attributes.style) {\r\n element.setAttribute(\"style\", styleExpr)\r\n } else {\r\n if (element.attributes.style.value.indexOf(styleExpr) < 0) {\r\n element.attributes.style.value += \" \" + styleExpr\r\n }\r\n }\r\n }\r\n};\r\nvar BOX_EVENTNAMESPACE = \"dxBox\";\r\nvar UPDATE_EVENT = \"dxupdate.\" + BOX_EVENTNAMESPACE;\r\nvar FALLBACK_BOX_ITEM = \"dx-box-fallback-item\";\r\nvar FALLBACK_WRAP_MAP = {\r\n row: \"nowrap\",\r\n col: \"normal\"\r\n};\r\nvar FALLBACK_MAIN_SIZE_MAP = {\r\n row: \"width\",\r\n col: \"height\"\r\n};\r\nvar FALLBACK_CROSS_SIZE_MAP = {\r\n row: \"height\",\r\n col: \"width\"\r\n};\r\nvar FALLBACK_PRE_MARGIN_MAP = {\r\n row: \"marginLeft\",\r\n col: \"marginTop\"\r\n};\r\nvar FALLBACK_POST_MARGIN_MAP = {\r\n row: \"marginRight\",\r\n col: \"marginBottom\"\r\n};\r\nvar FALLBACK_CROSS_PRE_MARGIN_MAP = {\r\n row: \"marginTop\",\r\n col: \"marginLeft\"\r\n};\r\nvar FALLBACK_CROSS_POST_MARGIN_MAP = {\r\n row: \"marginBottom\",\r\n col: \"marginRight\"\r\n};\r\nvar MARGINS_RTL_FLIP_MAP = {\r\n marginLeft: \"marginRight\",\r\n marginRight: \"marginLeft\"\r\n};\r\nvar BoxItem = function(_CollectionWidgetItem) {\r\n _inheritsLoose(BoxItem, _CollectionWidgetItem);\r\n\r\n function BoxItem() {\r\n return _CollectionWidgetItem.apply(this, arguments) || this\r\n }\r\n var _proto = BoxItem.prototype;\r\n _proto._renderVisible = function(value, oldValue) {\r\n _CollectionWidgetItem.prototype._renderVisible.call(this, value);\r\n if ((0, _type.isDefined)(oldValue)) {\r\n this._options.fireItemStateChangedAction({\r\n name: \"visible\",\r\n state: value,\r\n oldState: oldValue\r\n })\r\n }\r\n };\r\n return BoxItem\r\n}(_item.default);\r\nvar FlexLayoutStrategy = function() {\r\n function FlexLayoutStrategy($element, option) {\r\n this._$element = $element;\r\n this._option = option;\r\n this.initSize = _common.noop;\r\n this.update = _common.noop\r\n }\r\n var _proto2 = FlexLayoutStrategy.prototype;\r\n _proto2.renderBox = function() {\r\n this._$element.css({\r\n display: (0, _style.stylePropPrefix)(\"flexDirection\") + \"flex\"\r\n });\r\n setFlexProp(this._$element.get(0), \"flexDirection\", FLEX_DIRECTION_MAP[this._option(\"direction\")])\r\n };\r\n _proto2.renderAlign = function() {\r\n this._$element.css({\r\n justifyContent: this._normalizedAlign()\r\n })\r\n };\r\n _proto2._normalizedAlign = function() {\r\n var align = this._option(\"align\");\r\n return align in FLEX_JUSTIFY_CONTENT_MAP ? FLEX_JUSTIFY_CONTENT_MAP[align] : align\r\n };\r\n _proto2.renderCrossAlign = function() {\r\n this._$element.css({\r\n alignItems: this._normalizedCrossAlign()\r\n })\r\n };\r\n _proto2._normalizedCrossAlign = function() {\r\n var crossAlign = this._option(\"crossAlign\");\r\n return crossAlign in FLEX_ALIGN_ITEMS_MAP ? FLEX_ALIGN_ITEMS_MAP[crossAlign] : crossAlign\r\n };\r\n _proto2.renderItems = function($items) {\r\n var flexPropPrefix = (0, _style.stylePropPrefix)(\"flexDirection\");\r\n var direction = this._option(\"direction\");\r\n (0, _iterator.each)($items, function() {\r\n var $item = (0, _renderer.default)(this);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n $item.css({\r\n display: flexPropPrefix + \"flex\"\r\n }).css(MAXSIZE_MAP[direction], item.maxSize || \"none\").css(MINSIZE_MAP[direction], item.minSize || \"0\");\r\n setFlexProp($item.get(0), \"flexBasis\", item.baseSize || 0);\r\n setFlexProp($item.get(0), \"flexGrow\", item.ratio);\r\n setFlexProp($item.get(0), \"flexShrink\", (0, _type.isDefined)(item.shrink) ? item.shrink : SHRINK);\r\n $item.children().each(function(_, itemContent) {\r\n (0, _renderer.default)(itemContent).css({\r\n width: \"auto\",\r\n height: \"auto\",\r\n display: (0, _style.stylePropPrefix)(\"flexDirection\") + \"flex\",\r\n flexBasis: 0\r\n });\r\n setFlexProp(itemContent, \"flexGrow\", 1);\r\n setFlexProp(itemContent, \"flexDirection\", (0, _renderer.default)(itemContent)[0].style.flexDirection || \"column\")\r\n })\r\n })\r\n };\r\n return FlexLayoutStrategy\r\n}();\r\nvar FallbackLayoutStrategy = function() {\r\n function FallbackLayoutStrategy($element, option) {\r\n this._$element = $element;\r\n this._option = option\r\n }\r\n var _proto3 = FallbackLayoutStrategy.prototype;\r\n _proto3.renderBox = function() {\r\n this._$element.css({\r\n fontSize: 0,\r\n whiteSpace: FALLBACK_WRAP_MAP[this._option(\"direction\")],\r\n verticalAlign: \"top\"\r\n });\r\n _events_engine.default.off(this._$element, UPDATE_EVENT);\r\n _events_engine.default.on(this._$element, UPDATE_EVENT, this.update.bind(this))\r\n };\r\n _proto3.renderAlign = function() {\r\n var $items = this._$items;\r\n if (!$items) {\r\n return\r\n }\r\n var align = this._option(\"align\");\r\n var totalItemSize = this.totalItemSize;\r\n var direction = this._option(\"direction\");\r\n var boxSize = this._$element[FALLBACK_MAIN_SIZE_MAP[direction]]();\r\n var freeSpace = boxSize - totalItemSize;\r\n var shift = 0;\r\n this._setItemsMargins($items, direction, 0);\r\n switch (align) {\r\n case \"start\":\r\n break;\r\n case \"end\":\r\n shift = freeSpace;\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift);\r\n break;\r\n case \"center\":\r\n shift = .5 * freeSpace;\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift);\r\n $items.last().css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), shift);\r\n break;\r\n case \"space-between\":\r\n shift = .5 * freeSpace / ($items.length - 1);\r\n this._setItemsMargins($items, direction, shift);\r\n $items.first().css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), 0);\r\n $items.last().css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), 0);\r\n break;\r\n case \"space-around\":\r\n shift = .5 * freeSpace / $items.length;\r\n this._setItemsMargins($items, direction, shift)\r\n }\r\n };\r\n _proto3._setItemsMargins = function($items, direction, shift) {\r\n $items.css(this._chooseMarginSide(FALLBACK_PRE_MARGIN_MAP[direction]), shift).css(this._chooseMarginSide(FALLBACK_POST_MARGIN_MAP[direction]), shift)\r\n };\r\n _proto3.renderCrossAlign = function() {\r\n var $items = this._$items;\r\n if (!$items) {\r\n return\r\n }\r\n var crossAlign = this._option(\"crossAlign\");\r\n var direction = this._option(\"direction\");\r\n var size = this._$element[FALLBACK_CROSS_SIZE_MAP[direction]]();\r\n var that = this;\r\n switch (crossAlign) {\r\n case \"start\":\r\n break;\r\n case \"end\":\r\n (0, _iterator.each)($items, function() {\r\n var $item = (0, _renderer.default)(this);\r\n var itemSize = $item[FALLBACK_CROSS_SIZE_MAP[direction]]();\r\n var shift = size - itemSize;\r\n $item.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), shift)\r\n });\r\n break;\r\n case \"center\":\r\n (0, _iterator.each)($items, function() {\r\n var $item = (0, _renderer.default)(this);\r\n var itemSize = $item[FALLBACK_CROSS_SIZE_MAP[direction]]();\r\n var shift = .5 * (size - itemSize);\r\n $item.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), shift).css(that._chooseMarginSide(FALLBACK_CROSS_POST_MARGIN_MAP[direction]), shift)\r\n });\r\n break;\r\n case \"stretch\":\r\n $items.css(that._chooseMarginSide(FALLBACK_CROSS_PRE_MARGIN_MAP[direction]), 0).css(that._chooseMarginSide(FALLBACK_CROSS_POST_MARGIN_MAP[direction]), 0).css(FALLBACK_CROSS_SIZE_MAP[direction], \"100%\")\r\n }\r\n };\r\n _proto3._chooseMarginSide = function(value) {\r\n if (!this._option(\"rtlEnabled\")) {\r\n return value\r\n }\r\n return MARGINS_RTL_FLIP_MAP[value] || value\r\n };\r\n _proto3.renderItems = function($items) {\r\n var _this = this;\r\n this._$items = $items;\r\n var direction = this._option(\"direction\");\r\n var totalRatio = 0;\r\n var totalWeightedShrink = 0;\r\n var totalBaseSize = 0;\r\n (0, _iterator.each)($items, function(_, item) {\r\n var $item = (0, _renderer.default)(item);\r\n $item.css({\r\n display: \"inline-block\",\r\n verticalAlign: \"top\"\r\n });\r\n $item[FALLBACK_MAIN_SIZE_MAP[direction]](\"auto\");\r\n $item.removeClass(FALLBACK_BOX_ITEM);\r\n var itemData = $item.data(BOX_ITEM_DATA_KEY);\r\n var ratio = itemData.ratio || 0;\r\n var size = _this._baseSize($item);\r\n var shrink = (0, _type.isDefined)(itemData.shrink) ? itemData.shrink : SHRINK;\r\n totalRatio += ratio;\r\n totalWeightedShrink += shrink * size;\r\n totalBaseSize += size\r\n });\r\n var freeSpaceSize = this._boxSize() - totalBaseSize;\r\n var itemSize = function($item) {\r\n var itemData = $item.data(BOX_ITEM_DATA_KEY);\r\n var size = _this._baseSize($item);\r\n var factor = freeSpaceSize >= 0 ? itemData.ratio || 0 : ((0, _type.isDefined)(itemData.shrink) ? itemData.shrink : SHRINK) * size;\r\n var totalFactor = freeSpaceSize >= 0 ? totalRatio : totalWeightedShrink;\r\n var shift = totalFactor ? Math.round(freeSpaceSize * factor / totalFactor) : 0;\r\n return size + shift\r\n };\r\n var totalItemSize = 0;\r\n (0, _iterator.each)($items, function(_, item) {\r\n var $item = (0, _renderer.default)(item);\r\n var itemData = (0, _renderer.default)(item).data(BOX_ITEM_DATA_KEY);\r\n var size = itemSize($item);\r\n totalItemSize += size;\r\n $item.css(MAXSIZE_MAP[direction], itemData.maxSize || \"none\").css(MINSIZE_MAP[direction], itemData.minSize || \"0\").css(FALLBACK_MAIN_SIZE_MAP[direction], size);\r\n $item.addClass(FALLBACK_BOX_ITEM)\r\n });\r\n this.totalItemSize = totalItemSize\r\n };\r\n _proto3._baseSize = function(item) {\r\n var itemData = (0, _renderer.default)(item).data(BOX_ITEM_DATA_KEY);\r\n return null == itemData.baseSize ? 0 : \"auto\" === itemData.baseSize ? this._contentSize(item) : this._parseSize(itemData.baseSize)\r\n };\r\n _proto3._contentSize = function(item) {\r\n return (0, _renderer.default)(item)[FALLBACK_MAIN_SIZE_MAP[this._option(\"direction\")]]()\r\n };\r\n _proto3._parseSize = function(size) {\r\n return String(size).match(/.+%$/) ? .01 * parseFloat(size) * this._boxSizeValue : size\r\n };\r\n _proto3._boxSize = function(value) {\r\n if (!arguments.length) {\r\n this._boxSizeValue = this._boxSizeValue || this._totalBaseSize();\r\n return this._boxSizeValue\r\n }\r\n this._boxSizeValue = value\r\n };\r\n _proto3._totalBaseSize = function() {\r\n var _this2 = this;\r\n var result = 0;\r\n (0, _iterator.each)(this._$items, function(_, item) {\r\n result += _this2._baseSize(item)\r\n });\r\n return result\r\n };\r\n _proto3.initSize = function() {\r\n this._boxSize(this._$element[FALLBACK_MAIN_SIZE_MAP[this._option(\"direction\")]]())\r\n };\r\n _proto3.update = function() {\r\n if (!this._$items || this._$element.is(\":hidden\")) {\r\n return\r\n }\r\n this._$items.detach();\r\n this.initSize();\r\n this._$element.append(this._$items);\r\n this.renderItems(this._$items);\r\n this.renderAlign();\r\n this.renderCrossAlign();\r\n var element = this._$element.get(0);\r\n this._$items.find(BOX_SELECTOR).each(function() {\r\n if (element === (0, _renderer.default)(this).parent().closest(BOX_SELECTOR).get(0)) {\r\n _events_engine.default.triggerHandler(this, UPDATE_EVENT)\r\n }\r\n })\r\n };\r\n return FallbackLayoutStrategy\r\n}();\r\nvar Box = function(_CollectionWidget) {\r\n _inheritsLoose(Box, _CollectionWidget);\r\n\r\n function Box() {\r\n return _CollectionWidget.apply(this, arguments) || this\r\n }\r\n var _proto4 = Box.prototype;\r\n _proto4._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_CollectionWidget.prototype._getDefaultOptions.call(this), {\r\n direction: \"row\",\r\n align: \"start\",\r\n crossAlign: \"stretch\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n _layoutStrategy: \"flex\",\r\n _queue: void 0\r\n })\r\n };\r\n _proto4._defaultOptionsRules = function() {\r\n return _CollectionWidget.prototype._defaultOptionsRules.call(this).concat([{\r\n device: function() {\r\n return _browser.default.msie\r\n },\r\n options: {\r\n _layoutStrategy: \"fallback\"\r\n }\r\n }])\r\n };\r\n _proto4._itemClass = function() {\r\n return BOX_ITEM_CLASS\r\n };\r\n _proto4._itemDataKey = function() {\r\n return BOX_ITEM_DATA_KEY\r\n };\r\n _proto4._itemElements = function() {\r\n return this._itemContainer().children(this._itemSelector())\r\n };\r\n _proto4._init = function() {\r\n _CollectionWidget.prototype._init.call(this);\r\n this.$element().addClass(\"\".concat(BOX_CLASS, \"-\").concat(this.option(\"_layoutStrategy\")));\r\n this._initLayout();\r\n this._initBoxQueue()\r\n };\r\n _proto4._initLayout = function() {\r\n this._layout = \"fallback\" === this.option(\"_layoutStrategy\") ? new FallbackLayoutStrategy(this.$element(), this.option.bind(this)) : new FlexLayoutStrategy(this.$element(), this.option.bind(this))\r\n };\r\n _proto4._initBoxQueue = function() {\r\n this._queue = this.option(\"_queue\") || []\r\n };\r\n _proto4._queueIsNotEmpty = function() {\r\n return this.option(\"_queue\") ? false : !!this._queue.length\r\n };\r\n _proto4._pushItemToQueue = function($item, config) {\r\n this._queue.push({\r\n $item: $item,\r\n config: config\r\n })\r\n };\r\n _proto4._shiftItemFromQueue = function() {\r\n return this._queue.shift()\r\n };\r\n _proto4._initMarkup = function() {\r\n this.$element().addClass(BOX_CLASS);\r\n this._layout.renderBox();\r\n _CollectionWidget.prototype._initMarkup.call(this);\r\n this._renderAlign();\r\n this._renderActions()\r\n };\r\n _proto4._renderActions = function() {\r\n this._onItemStateChanged = this._createActionByOption(\"onItemStateChanged\")\r\n };\r\n _proto4._renderAlign = function() {\r\n this._layout.renderAlign();\r\n this._layout.renderCrossAlign()\r\n };\r\n _proto4._renderItems = function(items) {\r\n var _this3 = this;\r\n this._layout.initSize();\r\n _CollectionWidget.prototype._renderItems.call(this, items);\r\n while (this._queueIsNotEmpty()) {\r\n var item = this._shiftItemFromQueue();\r\n this._createComponent(item.$item, Box, (0, _extend.extend)({\r\n _layoutStrategy: this.option(\"_layoutStrategy\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this.option(\"onItemHold\"),\r\n onItemClick: this.option(\"onItemClick\"),\r\n onItemContextMenu: this.option(\"onItemContextMenu\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _queue: this._queue\r\n }, item.config))\r\n }\r\n this._layout.renderItems(this._itemElements());\r\n clearTimeout(this._updateTimer);\r\n this._updateTimer = setTimeout(function() {\r\n if (!_this3._isUpdated) {\r\n _this3._layout.update()\r\n }\r\n _this3._isUpdated = false;\r\n _this3._updateTimer = null\r\n })\r\n };\r\n _proto4._renderItemContent = function(args) {\r\n var $itemNode = args.itemData && args.itemData.node;\r\n if ($itemNode) {\r\n return this._renderItemContentByNode(args, $itemNode)\r\n }\r\n return _CollectionWidget.prototype._renderItemContent.call(this, args)\r\n };\r\n _proto4._postprocessRenderItem = function(args) {\r\n var boxConfig = args.itemData.box;\r\n if (!boxConfig) {\r\n return\r\n }\r\n this._pushItemToQueue(args.itemContent, boxConfig)\r\n };\r\n _proto4._createItemByTemplate = function(itemTemplate, args) {\r\n if (args.itemData.box) {\r\n return itemTemplate.source ? itemTemplate.source() : (0, _renderer.default)()\r\n }\r\n return _CollectionWidget.prototype._createItemByTemplate.call(this, itemTemplate, args)\r\n };\r\n _proto4._visibilityChanged = function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n };\r\n _proto4._dimensionChanged = function() {\r\n if (this._updateTimer) {\r\n return\r\n }\r\n this._isUpdated = true;\r\n this._layout.update()\r\n };\r\n _proto4._dispose = function() {\r\n clearTimeout(this._updateTimer);\r\n _CollectionWidget.prototype._dispose.apply(this, arguments)\r\n };\r\n _proto4._itemOptionChanged = function(item, property, value, oldValue) {\r\n if (\"visible\" === property) {\r\n this._onItemStateChanged({\r\n name: property,\r\n state: value,\r\n oldState: false !== oldValue\r\n })\r\n }\r\n _CollectionWidget.prototype._itemOptionChanged.call(this, item, property, value)\r\n };\r\n _proto4._optionChanged = function(args) {\r\n switch (args.name) {\r\n case \"_layoutStrategy\":\r\n case \"_queue\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"align\":\r\n this._layout.renderAlign();\r\n break;\r\n case \"crossAlign\":\r\n this._layout.renderCrossAlign();\r\n break;\r\n default:\r\n _CollectionWidget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto4._itemOptions = function() {\r\n var _this4 = this;\r\n var options = _CollectionWidget.prototype._itemOptions.call(this);\r\n options.fireItemStateChangedAction = function(e) {\r\n _this4._onItemStateChanged(e)\r\n };\r\n return options\r\n };\r\n _proto4.repaint = function() {\r\n this._dimensionChanged()\r\n };\r\n return Box\r\n}(_uiCollection_widget.default);\r\nBox.ItemClass = BoxItem;\r\n(0, _component_registrator.default)(\"dxBox\", Box);\r\nvar _default = Box;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/calendar.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _ui = _interopRequireDefault(require(\"./calendar/ui.calendar\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _ui.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/button_group.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _ui = _interopRequireDefault(require(\"./widget/ui.widget\"));\r\nvar _button = _interopRequireDefault(require(\"./button\"));\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"./collection/ui.collection_widget.edit\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/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_widget.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, _button.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, _renderer.default)(args.container).parent();\r\n return this.callBase(args)\r\n },\r\n _renderItemContentByNode: function(args, $node) {\r\n args.container = (0, _renderer.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 = _ui.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 _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, _renderer.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, _renderer.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_registrator.default)(\"dxButtonGroup\", ButtonGroup);\r\nvar _default = ButtonGroup;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/button.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _utils = require(\"./widget/utils.ink_ripple\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _themes = require(\"./themes\");\r\nvar _action = _interopRequireDefault(require(\"../core/action\"));\r\nvar _validation_engine = _interopRequireDefault(require(\"./validation_engine\"));\r\nvar _ui = _interopRequireDefault(require(\"./widget/ui.widget\"));\r\nvar _short = require(\"../events/short\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _function_template = require(\"../core/templates/function_template\");\r\nvar _icon = require(\"../core/utils/icon\");\r\nvar _element = require(\"../core/element\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar Button = function(_Widget) {\r\n _inheritsLoose(Button, _Widget);\r\n\r\n function Button() {\r\n var _this;\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 = _Widget.call.apply(_Widget, [this].concat(args)) || this;\r\n _this._feedbackHideTimeout = 100;\r\n return _this\r\n }\r\n var _proto = Button.prototype;\r\n _proto._$content = function() {\r\n return this.$element().find(\".dx-button-content\")\r\n };\r\n _proto._$submitInput = function() {\r\n return this.$element().find(\".dx-button-submit-input\")\r\n };\r\n _proto._attachActiveEvents = function(active, inactive) {\r\n var $el = this._eventBindingTarget();\r\n var namespace = \"inkRipple\";\r\n var selector = this._activeStateUnit;\r\n _short.active.off($el, {\r\n namespace: namespace,\r\n selector: selector\r\n });\r\n _short.active.on($el, new _action.default(active), new _action.default(inactive, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }), {\r\n showTimeout: this._feedbackShowTimeout,\r\n hideTimeout: this._feedbackHideTimeout,\r\n selector: selector,\r\n namespace: namespace\r\n })\r\n };\r\n _proto._defaultOptionsRules = function() {\r\n return _Widget.prototype._defaultOptionsRules.call(this).concat([{\r\n device: function() {\r\n return \"desktop\" === _devices.default.real().deviceType && !_devices.default.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return (0, _themes.isMaterial)((0, _themes.current)())\r\n },\r\n options: {\r\n useInkRipple: true\r\n }\r\n }])\r\n };\r\n _proto._executeClickAction = function(event) {\r\n this._clickAction({\r\n validationGroup: this._validationGroupConfig,\r\n event: event\r\n })\r\n };\r\n _proto._findGroup = function() {\r\n var $element = this.$element();\r\n var model = this._modelByElement($element);\r\n var _this$option = this.option(),\r\n validationGroup = _this$option.validationGroup;\r\n return validationGroup || _validation_engine.default.findGroup($element, model)\r\n };\r\n _proto._getContentData = function() {\r\n var _this$option2 = this.option(),\r\n icon = _this$option2.icon,\r\n text = _this$option2.text,\r\n type = _this$option2.type,\r\n _templateData = _this$option2._templateData;\r\n return (0, _extend.extend)({\r\n icon: \"back\" === type && !icon ? \"back\" : icon,\r\n text: text\r\n }, _templateData)\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {\r\n hoverStateEnabled: true,\r\n onClick: null,\r\n type: \"normal\",\r\n text: \"\",\r\n icon: \"\",\r\n iconPosition: \"left\",\r\n validationGroup: void 0,\r\n activeStateEnabled: true,\r\n template: \"content\",\r\n useSubmitBehavior: false,\r\n useInkRipple: false,\r\n _templateData: {},\r\n stylingMode: \"contained\"\r\n })\r\n };\r\n _proto._getSubmitAction = function() {\r\n var _this2 = this;\r\n var needValidate = true;\r\n var validationStatus = \"valid\";\r\n return this._createAction(function(_ref) {\r\n var event = _ref.event;\r\n if (needValidate) {\r\n var validationGroup = _this2._validationGroupConfig;\r\n if (validationGroup) {\r\n var _validationGroup$vali = validationGroup.validate(),\r\n status = _validationGroup$vali.status,\r\n complete = _validationGroup$vali.complete;\r\n validationStatus = status;\r\n if (\"pending\" === status) {\r\n needValidate = false;\r\n _this2.option(\"disabled\", true);\r\n complete.then(function(_ref2) {\r\n var status = _ref2.status;\r\n _this2.option(\"disabled\", false);\r\n validationStatus = status;\r\n \"valid\" === validationStatus && _this2._submitInput().click();\r\n needValidate = true\r\n })\r\n }\r\n }\r\n }\r\n \"valid\" !== validationStatus && event.preventDefault();\r\n event.stopPropagation()\r\n })\r\n };\r\n _proto._initMarkup = function() {\r\n this.$element().addClass(\"dx-button\");\r\n this._renderType();\r\n this._renderStylingMode();\r\n this._renderInkRipple();\r\n this._renderClick();\r\n this._updateAriaLabel();\r\n _Widget.prototype._initMarkup.call(this);\r\n this._updateContent();\r\n this.setAria(\"role\", \"button\")\r\n };\r\n _proto._getAnonymousTemplateName = function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n };\r\n _proto._initTemplates = function() {\r\n var _this3 = this;\r\n this._templateManager.addDefaultTemplates({\r\n content: new _function_template.FunctionTemplate(function(_ref3) {\r\n var _ref3$model = _ref3.model,\r\n model = void 0 === _ref3$model ? {} : _ref3$model,\r\n container = _ref3.container;\r\n var text = model.text,\r\n icon = model.icon;\r\n var _this3$option = _this3.option(),\r\n iconPosition = _this3$option.iconPosition;\r\n var $icon = (0, _icon.getImageContainer)(icon);\r\n var $textContainer = text && (0, _renderer.default)(\"\").text(text).addClass(\"dx-button-text\");\r\n var $container = (0, _renderer.default)(container);\r\n $container.append($textContainer);\r\n if (\"left\" === iconPosition) {\r\n $container.prepend($icon)\r\n } else {\r\n $icon.addClass(\"dx-icon-right\");\r\n $container.append($icon)\r\n }\r\n })\r\n });\r\n _Widget.prototype._initTemplates.call(this)\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"onClick\":\r\n this._updateClick();\r\n break;\r\n case \"icon\":\r\n case \"text\":\r\n this._updateContent();\r\n this._updateAriaLabel();\r\n break;\r\n case \"type\":\r\n this._updateType();\r\n this._updateContent();\r\n break;\r\n case \"_templateData\":\r\n break;\r\n case \"template\":\r\n case \"iconPosition\":\r\n this._updateContent();\r\n break;\r\n case \"stylingMode\":\r\n this._updateStylingMode();\r\n break;\r\n case \"useSubmitBehavior\":\r\n this._updateSubmitInput();\r\n break;\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto._renderClick = function() {\r\n var _this4 = this;\r\n var $el = this.$element();\r\n _short.dxClick.off($el, {\r\n namespace: this.NAME\r\n });\r\n _short.dxClick.on($el, function(event) {\r\n return _this4._executeClickAction(event)\r\n }, {\r\n namespace: this.NAME\r\n });\r\n this._updateClick()\r\n };\r\n _proto._renderInkRipple = function() {\r\n var _this5 = this;\r\n var _this$option3 = this.option(),\r\n text = _this$option3.text,\r\n icon = _this$option3.icon,\r\n type = _this$option3.type,\r\n useInkRipple = _this$option3.useInkRipple;\r\n if (useInkRipple) {\r\n var isOnlyIconButton = !text && icon || \"back\" === type;\r\n var _inkRipple = (0, _utils.render)(isOnlyIconButton ? {\r\n waveSizeCoefficient: 1,\r\n useHoldAnimation: false,\r\n isCentered: true\r\n } : {});\r\n var changeWaveVisibility = function(event, visible) {\r\n var _this5$option = _this5.option(),\r\n activeStateEnabled = _this5$option.activeStateEnabled,\r\n useInkRipple = _this5$option.useInkRipple;\r\n if (useInkRipple && activeStateEnabled && !_this5._disposed) {\r\n var config = {\r\n element: _this5._$content(),\r\n event: event\r\n };\r\n visible ? _inkRipple.showWave(config) : _inkRipple.hideWave(config)\r\n }\r\n };\r\n this._attachActiveEvents(function(_ref4) {\r\n var event = _ref4.event;\r\n return changeWaveVisibility(event, true)\r\n }, function(_ref5) {\r\n var event = _ref5.event;\r\n return changeWaveVisibility(event)\r\n })\r\n }\r\n };\r\n _proto._renderStylingMode = function() {\r\n var $element = this.$element();\r\n var _this$option4 = this.option(),\r\n stylingMode = _this$option4.stylingMode;\r\n if ([\"contained\", \"text\", \"outlined\"].indexOf(stylingMode) === -1) {\r\n stylingMode = this._getDefaultOptions().stylingMode\r\n }\r\n $element.addClass(\"dx-button-mode-\".concat(stylingMode))\r\n };\r\n _proto._renderSubmitInput = function() {\r\n var _this$option5 = this.option(),\r\n useSubmitBehavior = _this$option5.useSubmitBehavior;\r\n if (useSubmitBehavior) {\r\n var submitAction = this._getSubmitAction();\r\n var $content = this._$content();\r\n (0, _renderer.default)(\"\").attr(\"type\", \"submit\").attr(\"tabindex\", -1).addClass(\"dx-button-submit-input\").appendTo($content);\r\n _short.click.on(this._$submitInput(), function(event) {\r\n return submitAction({\r\n event: event\r\n })\r\n })\r\n }\r\n };\r\n _proto._renderType = function() {\r\n var _this$option6 = this.option(),\r\n type = _this$option6.type;\r\n var $element = this.$element();\r\n type && $element.addClass(\"dx-button-\".concat(type))\r\n };\r\n _proto._submitInput = function() {\r\n return this._$submitInput().get(0)\r\n };\r\n _proto._supportedKeys = function() {\r\n var _this6 = this;\r\n var click = function(e) {\r\n e.preventDefault();\r\n _this6._executeClickAction(e)\r\n };\r\n return (0, _extend.extend)(_Widget.prototype._supportedKeys.call(this), {\r\n space: click,\r\n enter: click\r\n })\r\n };\r\n _proto._updateAriaLabel = function() {\r\n var ariaTarget = this._getAriaTarget();\r\n var _this$option7 = this.option(),\r\n icon = _this$option7.icon,\r\n text = _this$option7.text;\r\n if (!text) {\r\n if (\"image\" === (0, _icon.getImageSourceType)(icon)) {\r\n icon = icon.indexOf(\"base64\") === -1 ? icon.replace(/.+\\/([^.]+)\\..+$/, \"$1\") : \"Base64\"\r\n }\r\n text = icon || \"\"\r\n }\r\n ariaTarget.attr(\"aria-label\", text || null)\r\n };\r\n _proto._updateClick = function() {\r\n var _this7 = this;\r\n this._clickAction = this._createActionByOption(\"onClick\", {\r\n excludeValidators: [\"readOnly\"],\r\n afterExecute: function() {\r\n var _this7$option = _this7.option(),\r\n useSubmitBehavior = _this7$option.useSubmitBehavior;\r\n useSubmitBehavior && setTimeout(function() {\r\n return _this7._submitInput().click()\r\n })\r\n }\r\n })\r\n };\r\n _proto._updateContent = function() {\r\n var $element = this.$element();\r\n var $content = this._$content();\r\n var data = this._getContentData();\r\n var _this$option8 = this.option(),\r\n template = _this$option8.template,\r\n iconPosition = _this$option8.iconPosition;\r\n var icon = data.icon,\r\n text = data.text;\r\n $content.length ? $content.empty() : $content = (0, _renderer.default)(\"
\").addClass(\"dx-button-content\").appendTo($element);\r\n $element.toggleClass(\"dx-button-has-icon\", !!icon).toggleClass(\"dx-button-icon-right\", !!icon && \"left\" !== iconPosition).toggleClass(\"dx-button-has-text\", !!text);\r\n var $template = (0, _renderer.default)(this._getTemplateByOption(\"template\").render({\r\n model: data,\r\n container: (0, _element.getPublicElement)($content),\r\n transclude: this._templateManager.anonymousTemplateName === template\r\n }));\r\n if ($template.hasClass(\"dx-template-wrapper\")) {\r\n $template.addClass(\"dx-button-content\");\r\n $content.replaceWith($template)\r\n }\r\n this._updateSubmitInput()\r\n };\r\n _proto._updateSubmitInput = function() {\r\n var _this$option9 = this.option(),\r\n useSubmitBehavior = _this$option9.useSubmitBehavior;\r\n var $submitInput = this._$submitInput();\r\n if (!useSubmitBehavior && $submitInput.length) {\r\n $submitInput.remove()\r\n } else {\r\n if (useSubmitBehavior && !$submitInput.length) {\r\n this._renderSubmitInput()\r\n }\r\n }\r\n };\r\n _proto._updateStylingMode = function() {\r\n var $element = this.$element();\r\n [\"contained\", \"text\", \"outlined\"].map(function(mode) {\r\n return \"dx-button-mode-\".concat(mode)\r\n }).forEach($element.removeClass.bind($element));\r\n this._renderStylingMode()\r\n };\r\n _proto._updateType = function() {\r\n var $element = this.$element();\r\n [\"back\", \"danger\", \"default\", \"normal\", \"success\"].map(function(type) {\r\n return \"dx-button-\".concat(type)\r\n }).forEach($element.removeClass.bind($element));\r\n this._renderType()\r\n };\r\n _createClass(Button, [{\r\n key: \"_validationGroupConfig\",\r\n get: function() {\r\n return _validation_engine.default.getGroupConfig(this._findGroup())\r\n }\r\n }]);\r\n return Button\r\n}(_ui.default);\r\n(0, _component_registrator.default)(\"dxButton\", Button);\r\nvar _default = Button;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n"],"sourceRoot":""}