{"version":3,"sources":["webpack:///./node_modules/devextreme/ui/date_box/ui.date_box.mask.parts.js","webpack:///./node_modules/devextreme/ui/tabs.js","webpack:///./node_modules/devextreme/ui/tab_panel/item.js","webpack:///./node_modules/devextreme/localization/ldml/date.parser.js","webpack:///./node_modules/devextreme/ui/form/ui.form.item_options_actions.js","webpack:///./node_modules/devextreme/ui/date_box/ui.date_box.strategy.calendar_with_time.js","webpack:///./node_modules/devextreme/ui/validation_summary.js","webpack:///./node_modules/devextreme/ui/form.js","webpack:///./node_modules/devextreme/ui/date_box/ui.date_utils.js","webpack:///./node_modules/devextreme/ui/date_box/ui.date_box.strategy.calendar.js","webpack:///./node_modules/devextreme/ui/tabs/constants.js","webpack:///./node_modules/devextreme/ui/form/ui.form.js","webpack:///./node_modules/devextreme/ui/drop_down_menu.js","webpack:///./node_modules/devextreme/ui/validation/default_adapter.js","webpack:///./node_modules/devextreme/ui/form/ui.form.utils.js","webpack:///./node_modules/devextreme/localization/ldml/date.formatter.js","webpack:///./node_modules/devextreme/ui/calendar/ui.calendar.views.js","webpack:///./node_modules/devextreme/localization/cldr-data/first_day_of_week_data.js","webpack:///./node_modules/devextreme/ui/form/ui.form.items_runtime_info.js","webpack:///./node_modules/devextreme/ui/calendar/ui.calendar.navigator.js","webpack:///./node_modules/devextreme/ui/number_box/number_box.base.js","webpack:///./node_modules/devextreme/ui/dialog.js","webpack:///./node_modules/devextreme/ui/multi_view/ui.multi_view.animation.js","webpack:///./node_modules/devextreme/ui/date_box/ui.date_box.base.js","webpack:///./node_modules/devextreme/ui/date_box/ui.date_box.strategy.list.js","webpack:///./node_modules/devextreme/localization/default_date_names.js","webpack:///./node_modules/devextreme/ui/date_box/ui.date_view_roller.js","webpack:///./node_modules/devextreme/ui/form/constants.js","webpack:///./node_modules/devextreme/ui/validator.js","webpack:///./node_modules/devextreme/ui/tabs/item.js","webpack:///./node_modules/devextreme/ui/box.js","webpack:///./node_modules/devextreme/ui/number_box/number_box.mask.js","webpack:///./node_modules/devextreme/localization/intl/date.js","webpack:///./node_modules/devextreme/ui/number_box.js","webpack:///./node_modules/devextreme/localization/date.js","webpack:///./node_modules/devextreme/events/gesture/swipeable.js","webpack:///./node_modules/devextreme/ui/date_box/ui.date_box.strategy.native.js","webpack:///./node_modules/devextreme/ui/date_box/ui.date_box.strategy.date_view.js","webpack:///./node_modules/devextreme/ui/date_box/ui.time_view.js","webpack:///./node_modules/devextreme/ui/calendar/ui.calendar.base_view.js","webpack:///./node_modules/devextreme/ui/date_box/ui.date_box.mask.js","webpack:///./node_modules/devextreme/ui/date_box/ui.date_box.js","webpack:///./node_modules/devextreme/ui/responsive_box.js","webpack:///./node_modules/devextreme/ui/date_box/ui.date_box.strategy.js","webpack:///./node_modules/devextreme/ui/calendar/ui.calendar.js","webpack:///./node_modules/devextreme/ui/validation_group.js","webpack:///./node_modules/devextreme/ui/calendar.js","webpack:///./node_modules/devextreme/ui/tab_panel.js","webpack:///./node_modules/devextreme/ui/number_box/utils.js","webpack:///./node_modules/devextreme/ui/multi_view.js","webpack:///./node_modules/devextreme/ui/number_box/number_box.js","webpack:///./node_modules/devextreme/ui/form/ui.form.layout_manager.js","webpack:///./node_modules/devextreme/ui/date_box.js","webpack:///./node_modules/devextreme/ui/number_box/number_box.spins.js","webpack:///./node_modules/devextreme/ui/form/ui.form.item_option_action.js","webpack:///./node_modules/devextreme/ui/date_box/ui.date_view.js","webpack:///./node_modules/devextreme/core/utils/date_serialization.js","webpack:///./node_modules/devextreme/ui/number_box/number_box.spin.js","webpack:///./node_modules/devextreme/core/utils/date.js","webpack:///./node_modules/devextreme/events/double_click.js","webpack:///./node_modules/devextreme/ui/number_box/number_box.caret.js","webpack:///./node_modules/devextreme/localization/ldml/date.format.js"],"names":["exports","getDatePartIndexByPosition","renderDateParts","_date","_extend","_math","_common","_this","monthGetter","date","getMonth","monthSetter","value","day","getDate","monthLimits","getLimits","newValue","fitIntoRange","parseInt","min","max","setMonth","_getLimits","newDay","setDate","PATTERN_GETTERS","a","getHours","E","y","M","L","d","H","h","m","s","S","PATTERN_SETTERS","extend","getPatternSetters","hours","current","setHours","lastDayInMonth","isPM","getDay","currentYear","getFullYear","valueLength","String","length","maxLimitLength","substr","setFullYear","getPatternGetter","patternChar","unsupportedCharGetter","text","regExpInfo","result","regexp","exec","start","end","sections","i","pattern","patterns","replace","getter","push","index","isStub","caret","limits","bind","setter","noop","forcedPattern","dM","Date","getAmPm","dateParts","position","caretInGroup","default","_renderer","_interopRequireDefault","_events_engine","_devices","_component_registrator","_button","_utils","_index","_type","_pointer","_iterator","_item","_constants","_themes","_hold","_ui","_uiCollection_widget","_icon","_bindable_template","_deferred","obj","__esModule","TABS_CLASS","TABS_WRAPPER_CLASS","TABS_STRETCHED_CLASS","TABS_SCROLLABLE_CLASS","TABS_NAV_BUTTONS_CLASS","OVERFLOW_HIDDEN_CLASS","TABS_ITEM_CLASS","TABS_ITEM_SELECTED_CLASS","TABS_NAV_BUTTON_CLASS","TABS_LEFT_NAV_BUTTON_CLASS","TABS_RIGHT_NAV_BUTTON_CLASS","TABS_ITEM_TEXT_CLASS","TABS_ITEM_DATA_KEY","BUTTON_NEXT_ICON","BUTTON_PREV_ICON","FEEDBACK_HIDE_TIMEOUT","FEEDBACK_DURATION_INTERVAL","FEEDBACK_SCROLL_TIMEOUT","TAB_OFFSET","Tabs","inherit","_activeStateUnit","_getDefaultOptions","this","callBase","hoverStateEnabled","showNavButtons","scrollByContent","scrollingEnabled","selectionMode","activeStateEnabled","selectionRequired","selectOnFocus","loopItemFocus","useInkRipple","badgeExpr","data","badge","_itemAttributes","role","_defaultOptionsRules","themeName","concat","device","real","deviceType","options","isSimulator","focusStateEnabled","isMaterial","_init","setAria","$element","addClass","_renderWrapper","_renderMultiple","_feedbackHideTimeout","_initTemplates","_templateManager","addDefaultTemplates","item","BindableTemplate","$container","isPlainObject","_prepareDefaultItemTemplate","$iconElement","getImageContainer","icon","prependTo","wrapInner","option","_createItemByTemplate","itemTemplate","renderArgs","itemData","container","_deferredTemplates","Deferred","render","model","onRendered","resolve","_itemClass","_selectedItemClass","_itemDataKey","_initMarkup","_renderInkRipple","_render","_deferRenderScrolling","_this2","when","apply","done","_renderScrolling","removeClasses","TABS_EXPANDED_CLASS","removeClass","join","_isItemsWidthExceeded","_scrollable","_renderScrollable","_renderNavButtons","update","_updateNavButtonsVisibility","scrollTo","left","scrollWidth","clientWidth","_scrollToItem","_cleanScrolling","_needStretchItems","tabItemsWidth","_getSummaryItemsWidth","_getVisibleItems","width","$visibleItems","elementWidth","itemsWidth","each","_","outerWidth","maxTabWidth","Math","_cleanNavButtons","_leftButton","_rightButton","remove","_$wrapper","appendTo","_inkRipple","_toggleActiveState","e","arguments","config","element","event","showWave","hideWave","append","_itemContainer","$itemContainer","children","_createComponent","direction","showScrollbar","useKeyboard","useNative","onScroll","$item","_editStrategy","getItemElement","scrollToElement","toggleClass","rtlEnabled","_createNavButton","$leftButton","prepend","$rightButton","scrollLeft","round","_updateScrollPosition","offset","duration","scrollBy","that","holdAction","_createAction","_holdInterval","setInterval","holdEventName","addNamespace","name","pointerUpEventName","up","pointerOutEventName","out","navButton","onClick","integrationOptions","$navButton","on","timeout","_clearInterval","clearInterval","_updateSelection","addedSelection","itemElements","eq","right","_visibilityChanged","visible","_dimensionChanged","_itemSelectHandler","isItemSelected","currentTarget","_clean","_optionChanged","args","_invalidate","_afterItemElementInserted","_afterItemElementDeleted","deletedActionArgs","ItemClass","_default","module","_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","__proto__","TabPanelItem","_CollectionWidgetItem","_proto","_renderWatchers","_startWatcher","call","getParser","getRegExpInfo","FORMAT_TYPES","3","4","5","monthRegExpGenerator","count","keys","map","type","getMonthNames","PATTERN_REGEXPS","Q","getQuarterNames","getPeriodNames","w","parseNumber","Number","caseInsensitiveIndexOf","array","toLowerCase","indexOf","monthPatternParser","monthNames","reduce","b","filter","PATTERN_PARSERS","year","dayNames","getDayNames","periodNames","slice","ORDERED_PATTERNS","datePartValues","hourPartValue","getSameCharCount","char","createPattern","format","isEscaping","regexpText","stubText","addPreviousStub","escapeRegExp","isEscapeChar","regexpPart","RegExp","setPatternPart","partSetter","partParser","setPatternPartFromNow","now","setterName","getterName","getShortPatterns","fullPatterns","getMaxOrderedPatternIndex","indexes","getOrderedFormatPatterns","formatPatterns","otherPatterns","regExpResult","maxPatternIndex","orderedFormatPatterns","forEach","patternIndex","regExpPattern","regExpText","_uiForm","_element_data","_uiForm2","WidgetOptionItemOptionAction","_ItemOptionAction","tryExecute","_options","instance","findInstance","TabOptionItemOptionAction","_ItemOptionAction2","_proto2","tabPanel","_this$_options","optionName","itemIndex","_itemsRunTimeInfo","findItemIndexByItem","getFullOptionName","TabsOptionItemOptionAction","_ItemOptionAction3","_proto3","ValidationRulesItemOptionAction","_ItemOptionAction4","_proto4","validator","filterRequired","oldContainsRequired","some","newContainsRequired","validationRules","CssClassItemOptionAction","_ItemOptionAction5","_proto5","findItemContainer","_this$_options2","previousValue","tryCreateItemOptionAction","itemActionOptions","_window","_uiDate_boxStrategy","_box","_ui2","window","getWindow","SHRINK_VIEW_SCREEN_WIDTH","DATEBOX_ADAPTIVITY_MODE_CLASS","CalendarWithTimeStrategy","NAME","getDefaultOptions","applyValueMode","buttonsLocation","getDisplayFormat","displayFormat","_is24HourFormat","is24HourFormat","dateBox","_getContouredValue","viewDate","_updateDateTime","_renderWidget","_timeView","dateBoxValue","_showClock","_isShrinkView","use24HourFormat","onValueChanged","_valueChangedHandler","stylingMode","registerKeyHandler","_escapeHandler","renderOpenedState","popup","_getPopup","_wrapper","_isSmallScreen","clearTimeout","_repaintTimer","setTimeout","repaint","isAdaptivityChanged","isAdaptiveMode","currentAdaptiveMode","_currentAdaptiveMode","_updateValue","preventDefaultValue","normalizeTime","_getBoxItems","items","ratio","shrink","baseSize","renderPopupContent","$popupContent","$content","crossAlign","_widget","_attachTabHandler","popupConfig","_popupConfig","calendarPopupConfig","onShowing","clockMinWidth","find","css","getFirstPopupElement","_hourBox","handler","shiftKey","preventDefault","focus","_preventFocusOnPopup","target","hasClass","_hasFocusClass","time","getMinutes","getSeconds","getMilliseconds","getValue","dispose","_removeMinWidthTimer","_validation_engine","VALIDATION_SUMMARY_CLASS","ITEM_CLASS","ITEM_DATA_KEY","ValidationSummary","noDataText","_setOptionsByReference","_optionsByReference","validationGroup","_initGroupRegistration","group","findGroup","_modelByElement","groupConfig","addGroup","_unsubscribeGroup","_groupWasInit","_validationGroup","groupSubscription","_groupValidationHandler","getGroupConfig","off","_getOrderedItems","validators","orderedItems","foundItems","grep","params","brokenRules","rule","message","_validationSummary","_itemValidationHandler","disposingHandler","_ref","isValid","itemsChanged","_loop","foundRule","splice","foundItem","_postprocessRenderItem","itemElement","_dispose","_date_serialization","_typeof","Symbol","iterator","DATE_COMPONENTS","TIME_COMPONENTS","ONE_MINUTE","ONE_DAY","ONE_YEAR","getStringFormat","formatType","dateUtils","SUPPORTED_FORMATS","MIN_DATEVIEW_DEFAULT_DATE","MAX_DATEVIEW_DEFAULT_DATE","newDate","FORMATS_INFO","getStandardPattern","components","datetime","standardPattern","androidFormatPattern","testDateString","$input","attr","val","FORMATS_MAP","SUBMIT_FORMATS_MAP","toStandardDateFormat","serializeDate","fromStandardDateFormat","dateParser","isDate","getMaxMonthDay","month","mergeDates","oldValue","isNaN","getTime","valueOf","formatInfo","componentInfo","DATE_COMPONENTS_INFO","getLongestCaptionIndex","captionArray","longestIndex","longestCaptionLength","formatUsesMonthName","formatUsesDayName","getLongestDate","stringFormat","longestDate","setSeconds","setMilliseconds","formatter","formatDate","startValue","endValue","minutes","seconds","milliseconds","_calendar","_uiDate_box","_message","CalendarStrategy","supportedKeys","homeEndHandler","rightArrow","leftArrow","enter","viewValue","lastActionElement","_lastActionElement","close","_valueChangeEventHandler","home","_getWidgetName","_view","getKeyboardListener","_getWidgetOptions","disabledDates","dateSerializationFormat","dateOption","onCellClick","_cellClickHandler","tabIndex","isFunction","_injectComponent","onContouredChanged","_refreshActiveDescendant","hasFocus","func","component","actionValue","toolbarItems","splitPair","_isCalendarVisible","unshift","widget","toolbar","location","onInitialized","_toTodayView","collision","isEmptyObject","prevValue","sameDate","textChangedHandler","_guid","_array","_string","_browser","_visibility_change","_element","_editor","_tab_panel","_uiForm4","_constants2","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","minLen","_arrayLikeToArray","n","toString","Array","from","test","iter","isArray","len","arr2","WIDGET_CLASS","FOCUSED_STATE_CLASS","ITEM_OPTIONS_FOR_VALIDATION_UPDATING","Form","_cachedColCountOptions","_groupsColCount","_attachSyncSubscriptions","formID","formData","colCount","screenByWidth","defaultScreenFactorFunc","colCountByScreen","labelLocation","readOnly","onFieldDataChanged","customizeItem","onEditorEnterKey","minColWidth","alignItemLabels","alignItemLabelsInAllGroups","alignRootItemLabels","showColonAfterLabel","showRequiredMark","showOptionalMark","requiredMark","optionalMark","requiredMessage","getFormatter","showValidationSummary","_getGroupColCount","GROUP_COL_COUNT_ATTR","_createHiddenElement","rootLayoutManager","_$hiddenElement","HIDDEN_LABEL_CLASS","$hiddenLabel","_renderLabel","_labelLocation","_hiddenLabelText","FIELD_ITEM_LABEL_TEXT_CLASS","_removeHiddenElement","_getLabelWidthByText","innerHTML","offsetWidth","_getLabelsSelectorByCol","fieldItemClass","inOneColumn","FIELD_ITEM_CLASS","FORM_FIELD_ITEM_COL_CLASS","cssExcludeTabbedSelector","excludeTabbed","FIELD_ITEM_TAB_CLASS","childLabelContentSelector","FIELD_ITEM_LABEL_CLASS","FIELD_ITEM_LABEL_CONTENT_CLASS","_getLabelText","labelText","child","isEmpty","innerText","_applyLabelsWidthByCol","labelWidth","$labelTexts","$labelTextsLength","maxWidth","style","_applyLabelsWidth","applyLabelsOptions","_getGroupElementsInColumn","columnIndex","cssColCountSelector","isDefined","GROUP_COL_COUNT_CLASS","groupSelector","FIELD_ITEM_CONTENT_CLASS","FORM_GROUP_CLASS","_applyLabelsWidthWithGroups","_alignRootSimpleItems","_applyLabelsWidthWithNestedGroups","$groups","$rootSimpleItems","ROOT_SIMPLE_ITEM_CLASS","colIndex","groupsColIndex","groupColIndex","$groupsByCol","groupColCount","_alignLabelsInColumn","layoutManager","hasWindow","_checkGrouping","_getColCount","_prepareFormData","_getValidationGroup","_clearCachedInstances","FORM_CLASS","_renderLayout","_renderValidationSummary","_lastMarkupScreenFactor","_targetScreenFactor","_getCurrentScreenFactor","getCurrentScreenFactor","clear","_cachedLayoutManagers","_alignLabels","triggerResizeEvent","TOOLBAR_CLASS","useNativeScrolling","useSimulatedScrollbar","bounceEnabled","_getContent","$validationSummary","FORM_VALIDATION_SUMMARY","_$validationSummary","dxValidationSummary","_prepareItems","parentIsTabbedItem","currentPath","isTabs","path","concatPaths","createItemPathByIndex","guid","add","isString","dataField","isObject","itemCopy","_tryPrepareGroupItem","_tryPrepareTabbedItem","_tryPrepareItemTemplate","cssItemClass","itemType","ensureDefined","template","groupContentTemplate","_getTemplate","_itemGroupTemplate","_itemTabbedTemplate","tabs","_rootLayoutManager","_renderLayoutManager","isRoot","onLayoutChanged","onContentReady","isSingleColumnMode","_tryGetItemsForTemplate","$tabPanel","tabPanelOptions","dataSource","onItemRendered","triggerShownEvent","extendRunTimeItemInfoByKey","tryUpdateTabPanelInstance","widgetInstance","parent","FIELD_ITEM_CONTENT_HAS_TABS_CLASS","fullName","$group","FORM_GROUP_WITH_CAPTION_CLASS","caption","FIELD_ITEM_CONTENT_HAS_GROUP_CLASS","FORM_GROUP_CAPTION_CLASS","$groupContent","FORM_GROUP_CONTENT_CLASS","getPublicElement","inArray","$rootElement","_getLayoutManagerConfig","baseColCountByScreen","lg","md","sm","xs","_refresh","baseConfig","form","layoutData","_isDataUpdating","_triggerOnFieldDataChanged","validationBoundary","addItemsOrExtendFrom","onDisposing","_ref2","nestedItemsRunTimeInfo","getItemsRunTimeInfo","removeItemsByItems","_extendConfig","optionFullName","silent","_triggerOnFieldDataChangedByDataSet","rootNameOfComplexOption","_getRootLevelOfExpectedComplexOption","_customHandlerOfComplexOption","_resetValues","removeGroup","fullOptionName","expectedRootNames","splitFullName","split","rootOptionName","search","_tryCreateItemOptionAction","itemPath","removeItemsByPathStartWith","itemsRunTimeInfo","_tryExecuteItemOptionAction","action","_updateValidationGroupAndSummaryIfNeeded","getOptionNameFromFullName","_setLayoutManagerItemOption","_this3","_updateLockCount","beginUpdate","key","getKeyByPath","postponedOperations","_disposed","endUpdate","contentReadyHandler","isFullPathContainsTabs","tabPath","tryGetTabPath","tabLayoutManager","getGroupOrTabLayoutManagerByPath","_tryChangeLayoutManagerItemOption","nameParts","_getItemPath","endPartIndex","_itemPath","_layoutManager","formItems","layoutManagerItems","layoutItem","visibleIndex","_tryChangeLayoutManagerItemOptions","_this4","optionValue","optionNameWithoutPath","simpleOptionName","itemAction","_changeItemOption","_generateItemsFromData","editor","getEditor","_createActionByOption","_updateFieldValue","editorValue","_getItemByField","field","resultItem","fieldParts","_getFieldParts","fieldName","fieldPath","_getItemByFieldPath","subItemsField","_getSubItemField","isExpectedItem","fieldSeparator","separatorIndex","resultPath","reverse","isItemWithSubItems","title","isGroupWithName","nameWithoutSpaces","getTextWithoutSpaces","pathNode","pop","_searchItemInEverySubItem","groupItem","currentScreenFactor","_isColCountChanged","oldScreenSize","newScreenSize","isChanged","editorSelector","trigger","itemRunTimeInfo","reset","resetGroup","_updateData","isComplexData","_data","fieldValue","_focusTarget","first","msie","resetValues","updateData","findWidgetInstanceByDataField","findWidgetInstanceByName","getButton","updateDimensions","deferred","resolveWith","promise","itemOption","id","_this5","getItemPath","allowUpdateItems","validate","validateGroup","getItemID","getTargetScreenFactor","_popover","_data_helper","_list","_child_default_template","DROP_DOWN_MENU_CLASS","DROP_DOWN_MENU_POPUP_CLASS","DROP_DOWN_MENU_POPUP_WRAPPER_CLASS","DROP_DOWN_MENU_LIST_CLASS","DROP_DOWN_MENU_BUTTON_CLASS","POPUP_OPTION_MAP","popupWidth","popupHeight","popupMaxHeight","popupAutoResizeEnabled","BUTTON_OPTION_MAP","buttonIcon","buttonText","buttonWidth","buttonHeight","buttonTemplate","DropDownMenu","_supportedKeys","extension","tab","_popup","hide","onItemClick","onButtonClick","usePopover","opened","selectedItemKeys","deferRendering","popupPosition","my","at","v","popupAnimation","menuWidget","closeOnClick","platform","show","scale","to","_initOptions","_dataSourceOptions","paginate","_initDataSource","_initItemClickAction","_initButtonClickAction","_itemClickAction","_buttonClickAction","content","ChildDefaultTemplate","_renderButton","haspopup","expanded","_renderContentImpl","_renderPopup","_cleanFocusState","_$popup","$button","_buttonOptions","height","_toggleMenuVisibility","state","toggle","$popup","_popupOptions","usePopup","contentTemplate","contentElement","_renderList","animation","onOptionChanged","maxHeight","autoResizeEnabled","listConfig","_listOptions","_getAriaTarget","_setListDataSource","listMaxHeight","pageLoadMode","indicateLoading","_dataSource","_deferRendering","_getKeyboardListeners","_toggleVisibility","_refreshDataSource","open","include","_class","DefaultAdapter","ctor","validationRequestsCallbacks","validationRequest","getCurrentValidationError","bypass","applyValidationResults","validationErrors","validationStatus","status","path1","path2","parts","fullPath","pathParts","resultPathParts","targetItem","tabOrGroupItems","leftPad","LDML_FORMATTERS","useUtc","quarter","floor","period","x","timezoneOffset","getTimezoneOffset","signPart","timezoneOffsetAbs","abs","hoursPart","minutesPart","X","Z","charIndex","isCurrentCharEqualsNext","charCount","separator","_uiCalendar","_date2","CALENDAR_OTHER_MONTH_CLASS","CALENDAR_OTHER_VIEW_CLASS","Views","_getViewName","firstDayOfWeek","rowCount","_renderImpl","_renderHeader","_renderBody","_$table","_renderFocusTarget","getCellAriaLabel","$headerRow","$header","_renderHeaderCell","cellIndex","_this$_getDayCaption","_getDayCaption","_getFirstDayOfWeek","fullCaption","full","abbrCaption","abbreviated","$cell","scope","abbr","_appendCell","getNavigatorCaption","_isTodayCell","cellDate","today","_isDateOutOfRange","minDate","maxDate","dateInRange","_isOtherView","_getCellText","daysInWeek","dayIndex","_getFirstCellData","firstDay","getFirstMonthDate","firstMonthDayOffset","_getNextCellData","createDate","firstDayOfWeekIndex","_getCellByDate","getShortDateFormat","isBoundary","sameMonthAndYear","_getDefaultDisabledDatesHandler","isDisabledDate","getLastMonthDate","currentDate","foundDate","sameYear","decade","sameDecade","getFirstYearInDecade","createDateWithFullYear","firstYearInDecade","startDate","endDate","_isValueOnCurrentView","century","minDecade","maxDecade","sameCentury","getFirstDecadeInCentury","firstDecadeInCentury","agq","ak","ar","asa","ast","az","bas","be","bem","bez","bg","bm","br","bs","ca","ce","cgg","ckb","cs","cy","da","de","dje","dsb","dua","dyo","ee","el","eo","es","et","eu","ewo","fa","ff","fi","fo","fr","fur","fy","ga","gd","gl","gsw","gv","ha","hr","hsb","hu","hy","ia","ig","is","it","jgo","jmc","ka","kab","kde","kea","khq","kk","kkj","kl","ksb","ksf","ksh","ku","kw","ky","lag","lb","ln","lrc","lt","lu","lv","mfe","mg","mgo","mi","mk","mn","ms","mua","mzn","naq","nb","nds","nl","nmg","nn","nnh","nus","nyn","os","pcm","pl","ps","rm","rn","ro","rof","ru","rw","rwk","sah","sbp","se","ses","sg","shi","si","sk","sl","smn","so","sq","sr","sv","sw","teo","tg","tk","tr","tt","twq","tzm","uk","uz","vai","vi","vun","wae","wo","xog","yav","yi","yo","zgh","FormItemsRunTimeInfo","_map","_findWidgetInstance","condition","_findFieldByCondition","callback","valueExpr","getItems","removeItemByKey","findWidgetInstanceByItem","storedItem","targetPath","_ref3","findItemContainerByItem","_ref4","filteredKeys","CALENDAR_NAVIGATOR_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS","CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS","CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS","CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS","CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS","Navigator","onCaptionClick","_initActions","_clickAction","_captionClickAction","_renderButtons","_renderCaption","_prevButton","$prevButton","_nextButton","$nextButton","_caption","$caption","toggleButton","buttonPrefix","buttonName","button","_dom_adapter","_number_box","math","FIREFOX_CONTROL_KEYS","FORCE_VALUECHANGE_EVENT_NAMESPACE","NumberBoxBase","upArrow","isCommandKeyPressed","stopPropagation","_spinUpChangeHandler","downArrow","_spinDownChangeHandler","step","showSpinButtons","useLargeSpinButtons","mode","invalidValueMessage","buttons","_useTemplates","_getDefaultButtons","Ctor","_isSupportInputMode","version","parseFloat","chrome","safari","generic","_renderSubmitElement","_getDefaultAttributes","attributes","inputmode","_validateValue","_$submitElement","_setSubmitValue","_getSubmitElement","applyServerDecimalSeparator","_keyPressHandler","getChar","validCharRegExp","isInputCharValid","keyName","normalizeKeyName","_keyPressed","_onMouseWheel","dxEvent","delta","_spinValueChange","_renderValue","inputValue","_input","_forceValueRender","_toggleEmptinessEventHandler","valueText","valuenow","valuetext","_updateButtons","number","formattedValue","_applyDisplayValueFormatter","_renderDisplayText","_renderProps","prop","valuemin","valuemax","_spinButtonsPointerDownHandler","getActiveElement","sign","_normalizeInputValue","_correctRounding","_saveValueChangeEvent","regex","isFloatValue","isFloatStep","valueAccuracy","stepAccuracy","accuracy","_round","precision","multiplier","pow","_renderValueChangeEvent","forceValueChangeEvent","_forceRefreshInputValue","_normalizeText","_parseValue","valueHasDigits","_isValueValid","_applyValueBoundaries","fire","parsedValue","isValueIncomplete","_isValueIncomplete","isValueCorrect","_isValueInRange","_replaceCommaWithPoint","_inputIsInvalid","isNumberMode","validityState","get","validity","badInput","incompleteRegex","inRange","_isNumber","isValueValid","isNumber","validationError","editorSpecific","trim","_clearValue","_resumeValueChangeAction","confirm","alert","custom","FakeDialogComponent","_component","_action","_config","_dom","_view_port","DEFAULT_BUTTON","DX_DIALOG_CLASSNAME","DX_DIALOG_WRAPPER_CLASSNAME","DX_DIALOG_ROOT_CLASSNAME","DX_DIALOG_CONTENT_CLASSNAME","DX_DIALOG_MESSAGE_CLASSNAME","DX_DIALOG_BUTTONS_CLASSNAME","DX_DIALOG_BUTTON_CLASSNAME","DX_BUTTON_CLASSNAME","lWidth","pWidth","defaultOptions","isMessageDefined","isMessageHtmlDefined","log","messageHtml","$message","html","popupToolbarItems","context","popupInstance","android","execute","showTitle","dragEnabled","isPortrait","widthOption","hasOwnProperty","showCloseButton","ignoreChildEvents","bottomToolbar","resetActiveElement","onShown","$firstButton","onHiding","reject","opacity","boundaryOffset","popupOptions","_translator","_fx","_translator2","move","moveTo","completeAction","animate","complete","stop","_version","_support","_uiDate_boxStrategy2","_uiDate_boxStrategy3","_uiDate_boxStrategy4","_uiDate_boxStrategy5","DATEBOX_CLASS","DX_AUTO_WIDTH_CLASS","DX_INVALID_BADGE_CLASS","DX_CLEAR_BUTTON_CLASS","DATEBOX_WRAPPER_CLASS","PICKER_TYPE","calendar","rollers","list","TYPE","STRATEGY_NAME","dateView","calendarWithTime","STRATEGY_CLASSES","Calendar","DateView","Native","CalendarWithTime","List","DateBox","_strategy","_renderButtonContainers","customizeButtons","showAnalogClock","interval","pickerType","invalidDateMessage","dateOutOfRangeMessage","applyButtonText","adaptivityEnabled","calendarOptions","useHiddenSubmitElement","realDevice","native","currentDevice","compare","_userOptions","_updatePickerOptions","_pickerType","_initStrategy","_toLowerCaseFirstLetter","string","charAt","strategyName","_getStrategyName","_getFormatType","strategy","currentType","isTime","_refreshFormatClass","_refreshPickerTypeClass","renderInputMinMax","_formatValidationIcon","_renderDimensions","_this$_strategy$_upda","_this$_strategy","_updatePopupHeight","inputElement","isRtlEnabled","clearButtonWidth","_getClearButtonWidth","longestElementDimensions","_getLongestElementDimensions","curWidth","getComputedStyle","shouldHideValidationIcon","_storedPadding","leftPadding","rightPadding","paddingLeft","paddingRight","_isClearButtonVisible","clearButtonElement","longestValue","$longestValueElement","createTextElementHiddenCopy","isPaddingStored","storedPadding","necessaryWidth","_renderPopupWrapper","_getPopupTitle","classPostfixes","_renderPopupContent","_getFirstPopupElement","_getLastPopupElement","getLastPopupElement","_popupShowingHandler","popupShowingHandler","_popupShownHandler","_popupHiddenHandler","popupHiddenHandler","_clearValueHandler","_readOnlyPropValue","isCustomValueDisabled","_isNativeType","_getDisplayedText","renderValue","submitFormat","submitValue","displayedText","_getFormatByMode","inputType","currentValue","parsedDate","_getParsedDate","_getDateByDefault","_applyInternalValidation","dateValue","useCurrentDateByDefault","getDefaultDate","parsedText","getParsedText","hasText","isDateInRange","validationMessage","_applyCustomValidation","_serializeDate","_isValueChanged","oldTime","newTime","_isTextChanged","oldText","newText","_renderOpenedState","_refreshStrategy","placeholder","_renderPlaceholder","_applyButtonHandler","_this$_applyInternalV","_this$_strategy2","_renderInputValue","_getSerializationFormat","forceIsoDateParsing","isNumeric","getDateSerializationFormat","isValueChanged","deserializeDate","serializationFormat","DATE_FORMAT","BOUNDARY_VALUES","ListStrategy","space","_refreshItems","_timeListItemTemplate","_listItemClickHandler","onFocusedItemChanged","_widgetItems","_getTimeListItems","_setSelectedItemsByValue","_asyncScrollTimeout","_scrollToSelectedItem","dateIndex","_getDateIndex","scrollToItem","_areDatesEqual","second","_getBoundaryDate","setMinutes","_getRangeItems","rangeDuration","rangeItems","boundary","boundaryValue","dropDownOptionsHeight","getSizeValue","_setPopupOption","outerHeight","_timeList","MONTHS","DAYS","PERIODS","QUARTERS","cutCaptions","captions","lengthByFormat","narrow","_click","DATEVIEW_ROLLER_CLASS","DATEVIEW_ROLLER_ACTIVE_CLASS","DATEVIEW_ROLLER_CURRENT_CLASS","DATEVIEW_ROLLER_ITEM_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS","DateViewRoller","selectedIndex","showOnClick","onSelectedIndexChanged","_renderSelectedItemFrame","_renderContainerClick","_renderItems","_renderSelectedValue","_renderItemsClick","_renderWheelEvent","_wrapAction","_endActionHandler","_renderSelectedIndexChanged","_selectedIndexChanged","_$container","_isWheelScrolled","eventName","clickAction","actionName","originalAction","$items","_$content","empty","_$items","_fitIndex","_moveTo","top","_getItemPosition","_renderActiveStateItem","itemCount","_itemHeight","itemSelector","_getItemSelector","_itemClickHandler","_itemElementIndex","_itemElements","_shouldScrollToNeighborItem","targetLocation","_normalizeLocation","_location","_isVisible","_prepareDirections","_animation","resetPosition","handleMove","_validate","_fitSelectedIndexInRange","itemsCount","_isInNullNeighborhood","EPS","_getSelectedIndexAfterScroll","currentSelectedIndex","locationTop","currentSelectedIndexPosition","dy","newSelectedIndex","_getNewSelectedIndex","_toggleActive","_fireSelectedIndexChanged","toggleActiveState","_refreshSelectedIndex","fitIndex","SINGLE_COLUMN_ITEM_CONTENT","FIELD_BUTTON_ITEM_CLASS","FIELD_EMPTY_ITEM_CLASS","FIELD_ITEM_CONTENT_LOCATION_CLASS","FIELD_ITEM_LABEL_ALIGN_CLASS","FIELD_ITEM_LABEL_LOCATION_CLASS","LABEL_HORIZONTAL_ALIGNMENT_CLASS","LABEL_VERTICAL_ALIGNMENT_CLASS","FORM_LAYOUT_MANAGER_CLASS","FIELD_ITEM_CONTENT_WRAPPER_CLASS","FIELD_ITEM_HELP_TEXT_CLASS","FIELD_ITEM_REQUIRED_CLASS","FIELD_ITEM_OPTIONAL_CLASS","FIELD_ITEM_REQUIRED_MARK_CLASS","FIELD_ITEM_OPTIONAL_MARK_CLASS","LAYOUT_MANAGER_ONE_COLUMN","FLEX_LAYOUT_CLASS","_callbacks","_dom_component","_default_adapter","VALIDATOR_CLASS","VALIDATION_STATUS_VALID","VALIDATION_STATUS_INVALID","VALIDATION_STATUS_PENDING","Validator","initValidationOptions","focused","_initAdapter","_validationInfo","skipValidation","_findGroup","removeRegisteredValidator","registerValidatorInGroup","dxStandardEditor","adapter","Error","callbacks","_toggleRTLDirection","isRtl","_this$option$editor$o","_this$option","_this$option$editor","_resetValidationRules","synchronizeValidationOptions","_getValidationRules","_validationRules","currentError","rules","currentResult","brokenRule","_applyValidationResult","then","res","pendingRules","_updateValidationResult","validatedAction","excludeValidators","_eventsStrategy","fireEvent","TABS_ITEM_BADGE_CLASS","BADGE_CLASS","TabsItem","_renderBadge","_$element","$badge","_inflector","_style","BOX_CLASS","BOX_SELECTOR","BOX_ITEM_CLASS","BOX_ITEM_DATA_KEY","MINSIZE_MAP","row","col","MAXSIZE_MAP","SHRINK","FLEX_JUSTIFY_CONTENT_MAP","center","FLEX_ALIGN_ITEMS_MAP","stretch","FLEX_DIRECTION_MAP","setFlexProp","normalizeStyleProp","styleProp","cssName","dasherize","styleExpr","setAttribute","BOX_EVENTNAMESPACE","UPDATE_EVENT","FALLBACK_BOX_ITEM","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","_renderVisible","fireItemStateChangedAction","oldState","FlexLayoutStrategy","_option","initSize","renderBox","display","stylePropPrefix","renderAlign","justifyContent","_normalizedAlign","align","renderCrossAlign","alignItems","_normalizedCrossAlign","renderItems","flexPropPrefix","maxSize","minSize","itemContent","flexBasis","flexDirection","FallbackLayoutStrategy","fontSize","whiteSpace","verticalAlign","totalItemSize","boxSize","freeSpace","shift","_setItemsMargins","_chooseMarginSide","last","size","itemSize","totalRatio","totalWeightedShrink","totalBaseSize","_baseSize","freeSpaceSize","_boxSize","factor","totalFactor","_contentSize","_parseSize","match","_boxSizeValue","_totalBaseSize","detach","closest","triggerHandler","Box","_CollectionWidget","onItemStateChanged","_layoutStrategy","_queue","_itemSelector","_initLayout","_initBoxQueue","_layout","_queueIsNotEmpty","_pushItemToQueue","_shiftItemFromQueue","_renderAlign","_renderActions","_onItemStateChanged","itemHoldTimeout","onItemHold","onItemContextMenu","_updateTimer","_isUpdated","_renderItemContent","$itemNode","node","_renderItemContentByNode","boxConfig","box","source","_itemOptionChanged","property","_itemOptions","_number","_number2","_number_box2","NUMBER_FORMATTER_NAMESPACE","MOVE_FORWARD","MOVE_BACKWARD","MINUS","MINUS_KEY","NUMPUD_MINUS_KEY_IE","INPUT_EVENT","CARET_TIMEOUT_DURATION","NumberBoxMask","useMaskBehavior","_isDeleteKey","_useMaskBehavior","minus","_revertSign","del","_removeHandler","backspace","_arrowHandler","_moveCaretToBoundaryEventHandler","_updateFormattedValue","_getTextSeparatorIndex","decimalSeparator","getDecimalSeparator","realSeparatorOccurrenceIndex","getRealSeparatorIndex","occurrence","getNthOccurrence","_focusInHandler","_preventNestedFocusEvent","clearCaretTimeout","_caretTimeout","_caret","_getInputVal","decimalSeparatorIndex","_focusOutHandler","shouldHandleEvent","_focusOutOccurs","_hasValueBeenChanged","_getFormatPattern","formatted","_format","_updateParsedValue","_adjustParsedValue","_setTextByParsedValue","_parsedValue","nextCaret","getCaretWithOffset","isCaretInBoundaries","getCaretInBoundaries","_moveCaretToBoundary","boundaries","getCaretBoundaries","newCaret","_shouldMoveCaret","isDecimalSeparatorNext","isZeroNext","moveToFloat","_lastKey","zeroToZeroReplace","convertDigits","_keyboardHandler","_lastKeyName","_shouldHandleKey","originalEvent","normalizedText","enteredChar","_tryParse","_moveCaret","isDeleteKey","isBackspaceKey","caretPosition","canDelete","_isStub","editedText","_replaceSelectedText","noDigits","valueAfterRemoving","_isNonStubAfter","_isPercentFormat","noEscapedFormat","_parse","formatOption","isCustomParser","parser","parse","integerPartStartIndex","formatPointIndex","textPointIndex","formatIntegerPartLength","textIntegerPartLength","_removeStubs","isCustomFormatter","_currentFormat","_updateFormat","isLDMLPattern","getFormat","_getFormatForSign","signParts","getSign","_sign","excludeComma","thousandsSeparator","getThousandsSeparator","stubs","_getStubs","prefixStubs","postfixRegex","decoratorsRegex","stub","_truncateToPrecision","maxPrecision","strValue","selection","isTextSelected","_getParsedValue","_getPrecisionLimits","isDecimalPointRestricted","isUselessCharRestricted","parsedValueSign","parsedValueWithSign","point","pointIndex","isCaretOnFloat","textParts","floatLength","isPrecisionInRange","endsWithZero","_setInputText","getCaretAfterFormat","_formattedValue","_renderInputType","isNumberType","isDesktop","_setInputType","_isChar","str","adjustedCaret","isSpecialChar","ctrlKey","altKey","isMinusKey","_renderInput","_renderFormatter","_clearCache","_detachFormatterEvents","_attachFormatterEvents","_isInputFromPaste","_isValuePasted","_formatValue","escapedDecimalSeparator","regExpString","stubRegExp","currentFormat","realSeparatorIndex","floatPart","splitByIndex","minPrecision","_applyRevertedSign","preserveSelectedText","previousText","currentText","getCaretOffset","caretInBoundaries","_removeMinusFromText","isMinusPressed","parsed","textWithoutMinus","wasMinusRemoved","textWasChanged","clearedText","_refreshValueChangeEvent","_refreshEvents","_core","SYMBOLS_TO_REMOVE_REGEX","getIntlFormatter","timeZoneName","recognizableAsTwentyCentury","safeYearShift","temporaryYearValue","utcDate","UTC","utcFormat","timeZone","formatDateTime","formattersCache","locale","JSON","stringify","Intl","DateTimeFormat","formatNumber","NumberFormat","getAlternativeNumeralsMap","numeralsMapCache","normalizeNumerals","dateString","alternativeNumeralsMap","removeLeadingZeroes","dateStringEquals","actual","expected","normalizeMonth","intlFormats","dayofweek","weekday","longdate","longdatelongtime","hour","minute","longtime","monthandday","monthandyear","shortdate","shorttime","shortyear","defineProperty","resolvedOptions","getIntlFormat","monthNameStrategies","standalone","monthIndex","monthFormat","part","engine","wide","getIntlDayNames","hour12Formatter","hour12","hourNumberText","timeParts","biggerPart","intlFormat","_parseDateBySimpleFormat","formatParts","getFormatParts","dateArgs","_generateDateArgs","constructDate","ampmShift","hoursShift","constructValidDate","formatPart","datePart","formattedDate","sort","_dependency_injector","_errors","_date3","_default_date_names","_first_day_of_week_data","_date4","DEFAULT_DAY_OF_WEEK_INDEX","hasIntl","FORMATS_TO_PATTERN_MAP","quarterandyear","shortdateshorttime","millisecond","possiblePartPatterns","dateLocalization","_getPatternByFormat","_expandPattern","partName","possiblePatterns","getTimeSeparator","amTime","pmTime","amTimeFormatted","pmTimeFormatted","ldmlFormat","getValueByClosestLocale","inject","_swipe","_public_component","DX_SWIPEABLE","SWIPEABLE_CLASS","ACTION_TO_EVENT_MAP","onStart","onUpdated","swipe","onEnd","onCancel","Swipeable","elastic","immediate","itemSizeFunc","_attachEventHandlers","_detachEventHandlers","_createEventData","_eventData","NativeStrategy","_isTextInput","_getDateBoxType","dropDownButton","click","DateViewStrategy","openOnFieldClick","_popupToolbarItemsConfig","defaultOptionsRules","_device","_device2","phone","of","_createWidget","_getWidgetContainer","_getCurrentDate","_select_box","TIMEVIEW_CLASS","TIMEVIEW_CLOCK_CLASS","TIMEVIEW_FIELD_CLASS","TIMEVIEW_HOURARROW_CLASS","TIMEVIEW_TIME_SEPARATOR_CLASS","TIMEVIEW_FORMAT12_CLASS","TIMEVIEW_FORMAT12_AM","TIMEVIEW_FORMAT12_PM","TIMEVIEW_MINUTEARROW_CLASS","rotateArrow","$arrow","angle","cssRotate","TimeView","_arrowOffset","_getValue","_renderBox","_updateTime","$box","_renderClock","_renderField","__","_$hourArrow","_$minuteArrow","_updateClock","hourArrowAngle","minuteArrowAngle","is12HourFormat","_minuteBox","_format12","_createHourBox","_createMinuteBox","_createFormat12Box","_onHourBoxValueChanged","onKeyboardHandled","opts","_getNumberBoxConfig","_isPM","newHours","_convertMaxHourToMin","maxHoursValue","newMinutes","displayExpr","_refreshFormat12","_silentEditorValueUpdate","_suppressValueChangeAction","displayValueFormatter","_normalizeHours","_updateField","abstract","CALENDAR_CELL_CLASS","CALENDAR_EMPTY_CELL_CLASS","CALENDAR_TODAY_CLASS","CALENDAR_SELECTED_DATE_CLASS","CALENDAR_CONTOURED_DATE_CLASS","CALENDAR_DXCLICK_EVENT_NAME","CALENDAR_DATE_VALUE_KEY","BaseView","cellTemplate","allowValueSelection","_todayDate","_createTable","_createDisabledDatesHandler","_renderContouredDate","_renderEvents","label","$body","rowData","prevCellDate","rowIndex","_createRow","_renderCell","createElement","appendChild","cell","_appendMethodName","_cacheAppendMethodName","_createCell","className","_getClassNameByDate","fixTimezoneGap","_this$_createCell","_prepareCellTemplateData","isDateDisabled","view","_createCellClickAction","_cellClickAction","_disabledDatesHandler","contouredDate","$oldContouredCell","_getContouredCell","$newContouredCell","_changeValue","selectedCell","_selectedCell","_getFirstAvailableDate","getFirstDateView","_uiDate_boxMask","MASK_EVENT_NAMESPACE","FORWARD","BACKWARD","DateBoxMask","originalHandlers","callOriginalHandler","originalHandler","applyHandler","maskHandler","_shouldUseOriginalHandler","_revertPart","_isAllSelected","_selectFirstPart","_selectLastPart","escape","_revertChanges","_enterHandler","_selectNextPart","_upDownArrowHandler","keysToHandleByMask","isNotDeletingInCalendar","_setNewDateIfEmpty","originalValue","_getActivePartValue","_initialMaskValue","_loadMaskValue","_partIncrease","emptyDateValue","_isSingleCharKey","ctrl","alt","_isSingleDigitKey","_e$originalEvent","_useBeforeInputEvent","code","_processInputKey","_maskInputHandler","_renderSelectedPart","_maskBeforeInputHandler","isBackwardDeletion","isForwardDeletion","_maskValue","_activePartIndex","_searchString","_searchNumber","_formatPattern","_renderDateParts","_partLimitsReached","formatLength","_getActivePartProp","isShortFormat","maxSearchLength","isLengthExceeded","_searchValue","isValueOverflowed","_this$_getActivePartL","_getActivePartLimits","_setActivePartValue","startString","endLimit","_clearSearchValue","_prepareRegExpInfo","_regExpInfo","regExp","flags","convertedRegExp","_initMaskState","_renderMask","_detachMaskEvents","_clearMaskState","_attachMaskEvents","_dateParts","_maskClickHandler","_maskPasteHandler","_maskCompositionEndHandler","isBoundaryIndex","_getRealLimitsPattern","lockOtherParts","limitFunction","_addLeadingZeroes","zeroes","_saveMaskValue","_this$_getActivePartL2","limitDelta","_applyLimits","limitBase","limitClosest","clipboardText","_isDateValid","_isValueDirty","_fireChangeEvent","isDefaultPrevented","RESPONSIVE_BOX_CLASS","SCREEN_SIZE_CLASS_PREFIX","HD_SCREEN_WIDTH","ResponsiveBox","rows","cols","singleColumnScreen","_initLayoutChangedAction","_layoutChangedAction","_updateRootBox","_$root","_setScreenSize","_screenItems","_itemsByScreen","_prepareGrid","_spreadItems","_layoutItems","_linkNodeToItem","_findItemElementByItem","_refreshItem","_clearItemNodeTemplates","_update","currentScreen","_getCurrentScreen","_removeScreenSizeClass","grid","_grid","_prepareRowsAndCols","_rows","_cols","_createEmptyCell","getSingleColumnRows","screenItemsLength","filteredRows","_filterByScreen","sizeConfig","_defaultSizeConfig","_isSingleColumnScreen","_prepareSingleColumnScreenItems","_sizesByScreen","_screenRegExp","item1","item2","rowspan","colspan","sizeConfigs","_createDefaultSizeConfig","defaultSizeConfig","screenRegExp","screen","_screenWidth","itemInfo","itemCol","itemRow","itemCell","_occupyCells","locations","_isItemCellOccupied","_markSpanningCell","_loopOverSpanning","rowEnd","colEnd","boundRowEnd","boundColEnd","spanningCell","itemNode","rowsCount","colsCount","_layoutBlock","rootBox","_prepareBoxConfig","_rootBoxConfig","rootItems","_needApplyAutoBaseSize","_getTemplateByOption","_isSingleItem","_itemByCell","_layoutDirection","firstCellLocation","isItemRowSpanned","isItemColSpanned","block","crossDirection","_crossDirection","_nextBlock","_isBlockIndivisible","prevBlockOptions","_blockSize","startIndex","endIndex","crossStartIndex","crossSpan","crossIndex","lineCrossSpan","_cellByDirection","lineCrossEndIndex","crossEndIndex","defaultMinSize","forceRemoveRoot","$existingRoot","_saveAssistantRoot","$root","_assistantRoots","_cleanUnusedRoots","_attachClickEvent","DateBoxStrategy","widgetOption","widgetName","widgetOptions","_this$_getPopup","_swipeable","_uiCalendar2","_function_template","CALENDAR_CLASS","CALENDAR_BODY_CLASS","CALENDAR_FOOTER_CLASS","CALENDAR_TODAY_BUTTON_CLASS","CALENDAR_HAS_FOOTER_CLASS","CALENDAR_VIEWS_WRAPPER_CLASS","CALENDAR_VIEW_CLASS","ANIMATION_DURATION_SHOW_VIEW","POP_ANIMATION_FROM","POP_ANIMATION_TO","CALENDAR_INPUT_STANDARD_PATTERN","LEVEL_COMPARE_MAP","ZOOM_LEVEL","MONTH","YEAR","DECADE","CENTURY","isIE11","zoomLevel","maxZoomLevel","minZoomLevel","showTodayButton","_waitRenderView","_moveCurrentDateByOffset","_getRtlCorrection","_navigateUp","isAnimating","_navigateDown","_dateOption","sameView","getViewFirstCellDate","_moveToClosestAvailableDate","getViewLastCellDate","pageUp","pageDown","_isMaxZoomLevel","_updateTimeComponent","_dateValue","_convertToDate","cellElement","_shiftDate","baseDate","_getMaxDate","_getMinDate","isDateForwardInNeighborView","_areDatesInNeighborView","isDateForwardInRange","dateForward","_areDatesInSameView","date1","date2","getYear","monthMinDistance","isDateForwardInStartView","isDateBackwardInStartView","isCurrentDateAvailable","_isDateNotAvailable","isDateForwardAvailable","isDateBackwardAvailable","dateBackward","_correctZoomLevel","_initCurrentDate","_getNormalizedDate","normalizeDate","_getDate","_onContouredChanged","FunctionTemplate","_updateCurrentDate","_$viewsWrapper","normalizedDate","_getViewsOffset","_isOtherViewCellClicked","_suppressNavigation","_navigate","_renderNavigator","_setViewContoured","_updateAriaId","zoomCorrection","_getMonthsOffset","yearOffset","monthOffset","_alreadyViewRender","_getDateByOffset","_waitRenderViewTimeout","currentDay","difference","getDifferenceInMonth","lastDay","_renderViews","_navigator","_renderSwipeable","_renderFooter","_updateAriaSelected","_renderSpecificView","beforeDate","_beforeView","_isViewAvailable","afterDate","_afterView","_translateViews","specificView","$view","_viewConfig","getViewMinBoundaryDate","getViewMaxBoundaryDate","_getViewPosition","coefficient","rtlCorrection","nextView","getViewDown","isMaxZoomLevel","newCurrentDate","_animateShowView","_navigatorConfig","_updateButtonsVisibility","_navigatorClickHandler","getViewUp","_isMinZoomLevel","_getRequiredView","_swipeStartHandler","_swipeUpdateHandler","_swipeEndHandler","_viewWidth","maxLeftOffset","maxRightOffset","_updateNavigatorCaption","targetOffset","moveOffset","_isDateInInvalidRange","_animateWrapper","_viewWidthValue","$todayButton","_$footer","_popAnimationView","newView","offsetSign","endPosition","viewsWrapperPosition","_preventViewChangeAnimation","_wrapperAnimationEndHandler","_rearrangeViews","_resetLocation","viewOffset","viewToCreateKey","viewToRemoveKey","destinationDate","dateByOffset","_clearViewWidthCache","_disposeViews","_refreshViews","_updateViewsValue","_value","$prevSelectedCell","$selectedCell","_value2","ariaId","$newCell","_suppressingNavigation","_validation_summary","_validator","VALIDATION_ENGINE_CLASS","ValidationGroup","_DOMComponent","validatorContainer","getInstance","summaryContainer","_multi_view","_tabs","TABPANEL_CLASS","TABPANEL_TABS_CLASS","TABPANEL_CONTAINER_CLASS","TabPanel","itemTitleTemplate","onTitleClick","onTitleHold","onTitleRendered","touch","swipeEnabled","animationEnabled","_createTitleActions","createTextNode","_createTitleClickAction","_createTitleHoldAction","_createTitleRenderedAction","_titleClickAction","_titleHoldAction","_titleRenderedAction","_renderContent","_resizeEventTimer","_updateLayout","_$tabContainer","$tabs","_tabConfig","tabsHeight","marginTop","paddingTop","tabItems","$activeTab","getFocusedItemId","repaintChangesOnly","onSelectionChanged","itemTemplateProperty","$value","$newItem","onFocusIn","onFocusOut","_isFocusOutHandlerExecuting","_updateFocusState","isFocused","_toggleFocusClass","_setTabsOption","selectedTabContent","newItem","quoteBalance","separatorCount","c","_uiMulti_view","MULTIVIEW_CLASS","MULTIVIEW_WRAPPER_CLASS","MULTIVIEW_ITEM_CONTAINER_CLASS","MULTIVIEW_ITEM_CLASS","MULTIVIEW_ITEM_HIDDEN_CLASS","MULTIVIEW_ITEM_DATA_KEY","MULTIVIEW_ANIMATION_DURATION","toNumber","locate","MultiView","loop","selectionByClick","_$itemContainer","_itemWidth","_itemWidthValue","_clearItemWidthCache","_itemsCount","_normalizeIndex","_getRTLSignCorrection","_initSwipeable","_deferredItems","selectedItemIndices","_getSelectedItemIndices","_updateItemsVisibility","_beforeItemElementInserted","change","_executeItemRenderAction","renderContentDeferred","$itemContent","deferRender","_updateItems","newIndex","_updateItemsPosition","_modifyByChanges","$itemElements","positionSign","_animationDirection","$selectedItem","isHidden","_renderSpecificItem","hasItemContent","_itemContentClass","_setAriaSelected","removedSelection","prevIndex","animationDirection","_animateItemContainer","completeCallback","containerPosition","indexDifference","_getItemFocusLoopSignCorrection","isSwipePresent","directionSignVariable","_getSwipeDisabledState","disabled","lastIndex","rtl","_swipeDirection","swipeDirection","$selectedElement","_itemFocusLooped","_moveFocus","_prevItem","$result","_nextItem","_updateSwipeDisabledState","_variable_wrapper","_remove_event","_responsive_box","FORM_EDITOR_BY_DEFAULT","LAYOUT_MANAGER_FIRST_ROW_CLASS","LAYOUT_MANAGER_LAST_ROW_CLASS","LAYOUT_MANAGER_FIRST_COL_CLASS","LAYOUT_MANAGER_LAST_COL_CLASS","INVALID_CLASS","LAYOUT_STRATEGY_FLEX","LAYOUT_STRATEGY_FALLBACK","SIMPLE_ITEM_TYPE","TEMPLATE_WRAPPER_CLASS","DATA_OPTIONS","EDITORS_WITH_ARRAY_VALUE","LayoutManager","_itemWatchers","_updateReferencedOptions","_initDataAndItems","_cleanItemWatchers","initialData","_syncDataWithItems","userItems","_getDataByField","editorOptions","_isCheckboxUndefinedStateEnabled","editorOption","allowIndeterminateState","editorType","propertyName","isWrapped","isWritableWrapped","isUserItemsExist","_generateItemsByData","processedItems","_isAcceptableItem","_processItem","unwrap","_updateItemWatchers","_setItems","_sortItems","watch","_getWatch","skipImmediate","itemField","_getEditorTypeByDataType","_item$allowIndetermin","dataType","normalizeIndexes","_items","_sortIndexes","itemA","itemB","indexA","indexB","_renderResponsiveBox","_hasBrowserFlex","templatesInfo","_prepareItemsWithMerging","layoutItems","_generateLayoutItems","_extendItemsWithDefaultTemplateOptions","_responsiveBox","_getResponsiveBoxConfig","_renderTemplates","targetItems","sourceItems","merged","_itemStateChangedHandler","_renderTemplate","_renderEmptyItem","_renderButtonItem","_renderFieldItem","info","formItem","xsColCount","$itemElement","itemRenderedCountInPreviousRows","$fieldItem","cssClass","isLastColumn","_getRowsCount","isLastRow","_generateRatio","screenFactor","_cashedColCount","_getMaxColCount","maxColCount","isCachedColCountObsolete","itemsMergedByCol","j","colSpan","_getColByIndex","generatedItem","rowSpan","_getButtonHorizontalAlignment","horizontalAlignment","_getButtonVerticalAlignment","verticalAlignment","buttonOptions","_addItemClasses","column","$label","_getName","isRequired","_hasRequiredRuleInSet","labelOptions","_getLabelOptions","$editor","helpID","helpText","_isLabelNeedBaselineAlign","_appendEditorToField","_renderEditor","_getTemplateByFieldItem","labelID","editorElem","$validationTarget","validationTargetInstance","_renderValidator","_addWrapperInvalidClass","_renderHelpText","_attachClickHandler","hasRequiredRule","largeEditors","_isLabelNeedId","editorsRequiringIdForLabel","showColon","captionize","alignment","_options$labelID","labelClasses","$labelContent","_renderLabelMark","$mark","requiredMarksConfig","_getRequiredMarksConfig","isRequiredMark","isOptionalMark","markClass","markText","_cashedRequiredConfig","dataValue","defaultEditorOptions","isDeepExtend","formInstance","inputAttr","_replaceDataOptions","renderOptions","_createEditor","originalOptions","resultOptions","_getFieldLabelName","_prepareValidationRules","dataGetter","isItemHaveCustomLabel","itemName","userValidationRules","isItemRequired","isSimpleItem","editorInstance","wrapperClass","toggleInvalidClass","parents","_isFocused","_addItemContentClasses","_getComponentOwner","_bindDataField","componentOwner","_createWatcher","linkEditorToDataField","deep","_watch","locationSpecificClass","_getItemContentLocationSpecificClass","oppositeClasses","readOnlyState","fieldItem","_addInnerItemAlignmentClass","$editorWrapper","wrap","isBooleanEditors","isAutoSize","ceil","newLayoutData","getOwnPropertyNames","_resetWidget","_disableEditorValueChangedHandler","valueGetter","compileGetter","_resetColCount","_setOptionWithoutOptionChange","isValueReferenceType","responsiveBox","SPIN_CLASS","SPIN_CONTAINER_CLASS","SPIN_TOUCH_FRIENDLY_CLASS","SpinButtons","_TextEditorButton","_attachEvents","$spinContainer","down","$spinContainerChildren","pointerDownAction","_create","$spinUp","$spinDown","_getOptions","_addToContainer","_legacyRender","_isTouchFriendly","isTouchFriendly","isVisible","shouldUpdate","$spinButtons","spinUp","spinDown","ItemOptionAction","DATEVIEW_CLASS","DATEVIEW_COMPACT_CLASS","DATEVIEW_WRAPPER_CLASS","DATEVIEW_ROLLER_CONTAINER_CLASS","ROLLER_TYPE","_valueOption","_getDefaultDate","applyCompactClass","_toggleFormatClasses","_toggleCompactClass","previousFormat","_renderRollers","_$rollersContainer","_createRollerConfigs","_rollers","_rollerConfigs","$roller","displayItems","roller","_setActiveRoller","_setRollerState","_createRollerConfig","componentName","valueRange","_calculateRollerConfigValueRange","curDate","setValue","valueItems","getIndex","currentRoller","activeRoller","_updateRollersPosition","correctIndex","rollerValue","_refreshRollers","_refreshRoller","rollerType","rollerConfig","minYear","minMonth","maxYear","maxMonth","minHour","maxHour","NUMBER_SERIALIZATION_FORMAT","DATE_SERIALIZATION_FORMAT","DATETIME_SERIALIZATION_FORMAT","ISO8601_PATTERN","ISO8601_TIME_PATTERN","ISO8601_PATTERN_PARTS","DATE_SERIALIZATION_PATTERN","MILLISECOND_LENGHT","skipISO8601Parsing","parseISO8601String","parseDate","getTimePart","isDefaultSerializationFormat","timeZoneHour","timeZoneMinute","parseMilliseconds","getIso8601Format","_emitter","SPIN_BUTTON_CLASS","SPIN_HOLD_DELAY","NUMBER_BOX","POINTERUP_EVENT_NAME","POINTERCANCEL_EVENT_NAME","cancel","SpinButton","onChange","_spinIcon","_spinDownHandler","_spinChangeHandler","_clearTimer","_feedBackDeferred","lock","_holdTimer","document","getDocument","_construct","Parent","Class","_isNativeReflectConstruct","Reflect","construct","Constructor","Function","sham","Proxy","Boolean","dateUnitIntervals","toMilliseconds","getDatesInterval","intervalUnit","millisecondCount","getNextDateUnit","unit","withWeeks","getDateUnitInterval","convertMillisecondsToDateUnits","dateUnitCount","dateUnitInterval","convertDateUnitToMilliseconds","dateToMilliseconds","tickInterval","dateUnit","maxInterval","tickIntervalToFormatMap","week","getDateFormatByTickInterval","getQuarter","getFirstQuarterMonth","correctDateWithUnitBeginning","dateInterval","withCorrection","firstQuarterMonth","oldDate","getFirstWeekDate","trimTime","setToDayEnd","getDatesDifferences","counter","differences","getTimezonesDifference","addDateInterval","dir","intervalObject","getDateIntervalByString","years","quarters","months","weeks","days","setTime","addInterval","isNegative","adjust","getSequenceByInterval","cur","intervals","viewType","getLastMonthDay","resultDate","typeView","getDifferenceInMonthForCells","intervalString","startDecadeDate1","startDecadeDate2","startCenturyDate1","startCenturyDate2","normalizeDateByWeek","differenceInDays","dateTimeFromDecimal","roundDateByStartDayHour","startDayHour","startTime","diff","trial","roundToHour","makeDate","getDatesOfInterval","sameMonth","camelize","_event_registrator","DBLCLICK_EVENT_NAME","DBLCLICK_NAMESPACE","NAMESPACED_CLICK_EVENT","DBLCLICK_TIMEOUT","DblClick","_handlerCount","_forgetLastClick","_firstClickTarget","_lastClickTimeStamp","_clickHandler","timeStamp","timeBetweenClicks","isSimulated","isDouble","closestCommonParent","mockEscapedStubs","prefixStubLength","postfixStubLength","_getDigitCountBeforeIndex","textBeforePosition","_reverseText","_getDigitPositionByIndex","digitIndex","_trimNonNumericCharsFromEnd","isSeparatorBasedText","isSeparatorBasedString","pointPosition","newPointPosition","formattedParts","relativeIndex","digitsBefore","newPosition","formattedIntPart","positionFromEnd","digitsFromEnd","newPositionFromEnd","newPositionFromBegin","previousBoundaries","newBoundaries","ARABIC_COMMA","FORMAT_SEPARATORS","AM_PM_PATTERN","checkDigit","charCodeAt","zeroCode","checkPatternContinue","isDigit","nextChar","isDigitChanged","getPatternStartIndex","defaultPattern","getDifference","processedIndexes","patternsFilter","replaceCharsCore","patternPositions","baseCharIndex","replaceChars","letterCount","formatValue","ESCAPE_CHARS_REGEXP","escapeChars","escapeIndexes","isCurrentCharEscaped","isPrevCharEscaped","isNextCharEscaped","replacedPatterns","datePatterns"],"mappings":"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","file":"js/chunk-eacfb972.06a99d52.js","sourcesContent":["/**\r\n * DevExtreme (ui/date_box/ui.date_box.mask.parts.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.getDatePartIndexByPosition = exports.renderDateParts = void 0;\r\nvar _date = require(\"../../localization/ldml/date.parser\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _math = require(\"../../core/utils/math\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _this = void 0;\r\nvar monthGetter = function(date) {\r\n return date.getMonth() + 1\r\n};\r\nvar monthSetter = function(date, value) {\r\n var day = date.getDate();\r\n var monthLimits = getLimits(\"M\", date);\r\n var newValue = (0, _math.fitIntoRange)(parseInt(value), monthLimits.min, monthLimits.max);\r\n date.setMonth(newValue - 1, 1);\r\n var _getLimits = getLimits(\"dM\", date),\r\n min = _getLimits.min,\r\n max = _getLimits.max;\r\n var newDay = (0, _math.fitIntoRange)(day, min, max);\r\n date.setDate(newDay)\r\n};\r\nvar PATTERN_GETTERS = {\r\n a: function(date) {\r\n return date.getHours() < 12 ? 0 : 1\r\n },\r\n E: \"getDay\",\r\n y: \"getFullYear\",\r\n M: monthGetter,\r\n L: monthGetter,\r\n d: \"getDate\",\r\n H: \"getHours\",\r\n h: \"getHours\",\r\n m: \"getMinutes\",\r\n s: \"getSeconds\",\r\n S: \"getMilliseconds\"\r\n};\r\nvar PATTERN_SETTERS = (0, _extend.extend)({}, (0, _date.getPatternSetters)(), {\r\n a: function(date, value) {\r\n var hours = date.getHours();\r\n var current = hours >= 12;\r\n if (current === !!parseInt(value)) {\r\n return\r\n }\r\n date.setHours((hours + 12) % 24)\r\n },\r\n d: function(date, value) {\r\n var lastDayInMonth = getLimits(\"dM\", date).max;\r\n if (value > lastDayInMonth) {\r\n date.setMonth(date.getMonth() + 1)\r\n }\r\n date.setDate(value)\r\n },\r\n h: function(date, value) {\r\n var isPM = date.getHours() >= 12;\r\n date.setHours(+value % 12 + (isPM ? 12 : 0))\r\n },\r\n M: monthSetter,\r\n L: monthSetter,\r\n E: function(date, value) {\r\n if (value < 0) {\r\n return\r\n }\r\n date.setDate(date.getDate() - date.getDay() + parseInt(value))\r\n },\r\n y: function(date, value) {\r\n var currentYear = date.getFullYear();\r\n var valueLength = String(value).length;\r\n var maxLimitLength = String(getLimits(\"y\", date).max).length;\r\n var newValue = parseInt(String(currentYear).substr(0, maxLimitLength - valueLength) + value);\r\n date.setFullYear(newValue)\r\n }\r\n});\r\nvar getPatternGetter = function(patternChar) {\r\n var unsupportedCharGetter = function() {\r\n return patternChar\r\n };\r\n return PATTERN_GETTERS[patternChar] || unsupportedCharGetter\r\n};\r\nvar renderDateParts = function(text, regExpInfo) {\r\n var result = regExpInfo.regexp.exec(text);\r\n var start = 0;\r\n var end = 0;\r\n var sections = [];\r\n for (var i = 1; i < result.length; i++) {\r\n start = end;\r\n end = start + result[i].length;\r\n var pattern = regExpInfo.patterns[i - 1].replace(/^'|'$/g, \"\");\r\n var getter = getPatternGetter(pattern[0]);\r\n sections.push({\r\n index: i - 1,\r\n isStub: pattern === result[i],\r\n caret: {\r\n start: start,\r\n end: end\r\n },\r\n pattern: pattern,\r\n text: result[i],\r\n limits: getLimits.bind(_this, pattern[0]),\r\n setter: PATTERN_SETTERS[pattern[0]] || _common.noop,\r\n getter: getter\r\n })\r\n }\r\n return sections\r\n};\r\nexports.renderDateParts = renderDateParts;\r\nvar getLimits = function(pattern, date, forcedPattern) {\r\n var limits = {\r\n y: {\r\n min: 0,\r\n max: 9999\r\n },\r\n M: {\r\n min: 1,\r\n max: 12\r\n },\r\n L: {\r\n min: 1,\r\n max: 12\r\n },\r\n d: {\r\n min: 1,\r\n max: 31\r\n },\r\n dM: {\r\n min: 1,\r\n max: new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()\r\n },\r\n E: {\r\n min: 0,\r\n max: 6\r\n },\r\n H: {\r\n min: 0,\r\n max: 23\r\n },\r\n h: {\r\n min: 0,\r\n max: 23\r\n },\r\n m: {\r\n min: 0,\r\n max: 59\r\n },\r\n s: {\r\n min: 0,\r\n max: 59\r\n },\r\n S: {\r\n min: 0,\r\n max: 999\r\n },\r\n a: {\r\n min: 0,\r\n max: 1\r\n }\r\n };\r\n return limits[forcedPattern || pattern] || limits.getAmPm\r\n};\r\nvar getDatePartIndexByPosition = function(dateParts, position) {\r\n for (var i = 0; i < dateParts.length; i++) {\r\n var caretInGroup = dateParts[i].caret.end >= position;\r\n if (!dateParts[i].isStub && caretInGroup) {\r\n return i\r\n }\r\n }\r\n return null\r\n};\r\nexports.getDatePartIndexByPosition = getDatePartIndexByPosition;\r\n","/**\r\n * DevExtreme (ui/tabs.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 _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _button = _interopRequireDefault(require(\"./button\"));\r\nvar _utils = require(\"./widget/utils.ink_ripple\");\r\nvar _index = require(\"../events/utils/index\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _pointer = _interopRequireDefault(require(\"../events/pointer\"));\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _item = _interopRequireDefault(require(\"./tabs/item\"));\r\nvar _constants = require(\"./tabs/constants\");\r\nvar _themes = require(\"./themes\");\r\nvar _hold = _interopRequireDefault(require(\"../events/hold\"));\r\nvar _ui = _interopRequireDefault(require(\"./scroll_view/ui.scrollable\"));\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"./collection/ui.collection_widget.live_update\"));\r\nvar _icon = require(\"../core/utils/icon\");\r\nvar _bindable_template = require(\"../core/templates/bindable_template\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TABS_CLASS = \"dx-tabs\";\r\nvar TABS_WRAPPER_CLASS = \"dx-tabs-wrapper\";\r\nvar TABS_STRETCHED_CLASS = \"dx-tabs-stretched\";\r\nvar TABS_SCROLLABLE_CLASS = \"dx-tabs-scrollable\";\r\nvar TABS_NAV_BUTTONS_CLASS = \"dx-tabs-nav-buttons\";\r\nvar OVERFLOW_HIDDEN_CLASS = \"dx-overflow-hidden\";\r\nvar TABS_ITEM_CLASS = \"dx-tab\";\r\nvar TABS_ITEM_SELECTED_CLASS = \"dx-tab-selected\";\r\nvar TABS_NAV_BUTTON_CLASS = \"dx-tabs-nav-button\";\r\nvar TABS_LEFT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-left\";\r\nvar TABS_RIGHT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-right\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar TABS_ITEM_DATA_KEY = \"dxTabData\";\r\nvar BUTTON_NEXT_ICON = \"chevronnext\";\r\nvar BUTTON_PREV_ICON = \"chevronprev\";\r\nvar FEEDBACK_HIDE_TIMEOUT = 100;\r\nvar FEEDBACK_DURATION_INTERVAL = 5;\r\nvar FEEDBACK_SCROLL_TIMEOUT = 300;\r\nvar TAB_OFFSET = 30;\r\nvar Tabs = _uiCollection_widget.default.inherit({\r\n _activeStateUnit: \".\" + TABS_ITEM_CLASS,\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n hoverStateEnabled: true,\r\n showNavButtons: true,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n selectionMode: \"single\",\r\n activeStateEnabled: true,\r\n selectionRequired: false,\r\n selectOnFocus: true,\r\n loopItemFocus: false,\r\n useInkRipple: false,\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n },\r\n _itemAttributes: {\r\n role: \"tab\"\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = (0, _themes.current)();\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" !== _devices.default.real().deviceType\r\n },\r\n options: {\r\n showNavButtons: false\r\n }\r\n }, {\r\n device: {\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n scrollByContent: false\r\n }\r\n }, {\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)(themeName)\r\n },\r\n options: {\r\n useInkRipple: true,\r\n selectOnFocus: false\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.setAria(\"role\", \"tablist\");\r\n this.$element().addClass(TABS_CLASS);\r\n this._renderWrapper();\r\n this._renderMultiple();\r\n this._feedbackHideTimeout = FEEDBACK_HIDE_TIMEOUT\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new _bindable_template.BindableTemplate(function($container, data) {\r\n if ((0, _type.isPlainObject)(data)) {\r\n this._prepareDefaultItemTemplate(data, $container)\r\n } else {\r\n $container.text(String(data))\r\n }\r\n var $iconElement = (0, _icon.getImageContainer)(data.icon);\r\n $iconElement && $iconElement.prependTo($container);\r\n $container.wrapInner((0, _renderer.default)(\"\").addClass(TABS_ITEM_TEXT_CLASS))\r\n }.bind(this), [\"text\", \"html\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n var _this = this;\r\n var itemData = renderArgs.itemData,\r\n container = renderArgs.container,\r\n index = renderArgs.index;\r\n this._deferredTemplates[index] = new _deferred.Deferred;\r\n return itemTemplate.render({\r\n model: itemData,\r\n container: container,\r\n index: index,\r\n onRendered: function() {\r\n return _this._deferredTemplates[index].resolve()\r\n }\r\n })\r\n },\r\n _itemClass: function() {\r\n return TABS_ITEM_CLASS\r\n },\r\n _selectedItemClass: function() {\r\n return TABS_ITEM_SELECTED_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return TABS_ITEM_DATA_KEY\r\n },\r\n _initMarkup: function() {\r\n this._deferredTemplates = [];\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.$element().addClass(OVERFLOW_HIDDEN_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _deferRenderScrolling: function() {\r\n var _this2 = this;\r\n _deferred.when.apply(this, this._deferredTemplates).done(function() {\r\n return _this2._renderScrolling()\r\n })\r\n },\r\n _renderScrolling: function() {\r\n var removeClasses = [TABS_STRETCHED_CLASS, _constants.TABS_EXPANDED_CLASS, OVERFLOW_HIDDEN_CLASS];\r\n this.$element().removeClass(removeClasses.join(\" \"));\r\n if (this.option(\"scrollingEnabled\") && this._isItemsWidthExceeded()) {\r\n if (!this._scrollable) {\r\n this._renderScrollable();\r\n this._renderNavButtons()\r\n }\r\n this._scrollable.update();\r\n this._updateNavButtonsVisibility();\r\n if (this.option(\"rtlEnabled\")) {\r\n this._scrollable.scrollTo({\r\n left: this._scrollable.scrollWidth() - this._scrollable.clientWidth()\r\n })\r\n }\r\n this._scrollToItem(this.option(\"selectedItem\"))\r\n }\r\n if (!(this.option(\"scrollingEnabled\") && this._isItemsWidthExceeded())) {\r\n this._cleanScrolling();\r\n if (this._needStretchItems() && !this._isItemsWidthExceeded()) {\r\n this.$element().addClass(TABS_STRETCHED_CLASS)\r\n }\r\n this.$element().removeClass(TABS_NAV_BUTTONS_CLASS).addClass(_constants.TABS_EXPANDED_CLASS)\r\n }\r\n },\r\n _isItemsWidthExceeded: function() {\r\n var tabItemsWidth = this._getSummaryItemsWidth(this._getVisibleItems(), true);\r\n return tabItemsWidth - 1 > this.$element().width()\r\n },\r\n _needStretchItems: function() {\r\n var $visibleItems = this._getVisibleItems();\r\n var elementWidth = this.$element().width();\r\n var itemsWidth = [];\r\n (0, _iterator.each)($visibleItems, function(_, item) {\r\n itemsWidth.push((0, _renderer.default)(item).outerWidth(true))\r\n });\r\n var maxTabWidth = Math.max.apply(null, itemsWidth);\r\n return maxTabWidth > elementWidth / $visibleItems.length\r\n },\r\n _cleanNavButtons: function() {\r\n if (!this._leftButton || !this._rightButton) {\r\n return\r\n }\r\n this._leftButton.$element().remove();\r\n this._rightButton.$element().remove();\r\n this._leftButton = null;\r\n this._rightButton = null\r\n },\r\n _cleanScrolling: function() {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n this._$wrapper.appendTo(this.$element());\r\n this._scrollable.$element().remove();\r\n this._scrollable = null;\r\n this._cleanNavButtons()\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = (0, _utils.render)()\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _renderMultiple: function() {\r\n if (\"multiple\" === this.option(\"selectionMode\")) {\r\n this.option(\"selectOnFocus\", false)\r\n }\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = (0, _renderer.default)(\"
\").addClass(TABS_WRAPPER_CLASS);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _itemContainer: function() {\r\n return this._$wrapper\r\n },\r\n _renderScrollable: function() {\r\n var $itemContainer = this.$element().wrapInner((0, _renderer.default)(\"
\").addClass(TABS_SCROLLABLE_CLASS)).children();\r\n this._scrollable = this._createComponent($itemContainer, _ui.default, {\r\n direction: \"horizontal\",\r\n showScrollbar: false,\r\n useKeyboard: false,\r\n useNative: false,\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n onScroll: this._updateNavButtonsVisibility.bind(this)\r\n });\r\n this.$element().append(this._scrollable.$element())\r\n },\r\n _scrollToItem: function(itemData) {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n var $item = this._editStrategy.getItemElement(itemData);\r\n this._scrollable.scrollToElement($item)\r\n },\r\n _renderNavButtons: function() {\r\n this.$element().toggleClass(TABS_NAV_BUTTONS_CLASS, this.option(\"showNavButtons\"));\r\n if (!this.option(\"showNavButtons\")) {\r\n return\r\n }\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n this._leftButton = this._createNavButton(-TAB_OFFSET, rtlEnabled ? BUTTON_NEXT_ICON : BUTTON_PREV_ICON);\r\n var $leftButton = this._leftButton.$element();\r\n $leftButton.addClass(TABS_LEFT_NAV_BUTTON_CLASS);\r\n this.$element().prepend($leftButton);\r\n this._rightButton = this._createNavButton(TAB_OFFSET, rtlEnabled ? BUTTON_PREV_ICON : BUTTON_NEXT_ICON);\r\n var $rightButton = this._rightButton.$element();\r\n $rightButton.addClass(TABS_RIGHT_NAV_BUTTON_CLASS);\r\n this.$element().append($rightButton)\r\n },\r\n _updateNavButtonsVisibility: function() {\r\n this._leftButton && this._leftButton.option(\"disabled\", this._scrollable.scrollLeft() <= 0);\r\n this._rightButton && this._rightButton.option(\"disabled\", this._scrollable.scrollLeft() >= Math.round(this._scrollable.scrollWidth() - this._scrollable.clientWidth()))\r\n },\r\n _updateScrollPosition: function(offset, duration) {\r\n this._scrollable.update();\r\n this._scrollable.scrollBy(offset / duration)\r\n },\r\n _createNavButton: function(offset, icon) {\r\n var that = this;\r\n var holdAction = that._createAction(function() {\r\n that._holdInterval = setInterval(function() {\r\n that._updateScrollPosition(offset, FEEDBACK_DURATION_INTERVAL)\r\n }, FEEDBACK_DURATION_INTERVAL)\r\n });\r\n var holdEventName = (0, _index.addNamespace)(_hold.default.name, \"dxNavButton\");\r\n var pointerUpEventName = (0, _index.addNamespace)(_pointer.default.up, \"dxNavButton\");\r\n var pointerOutEventName = (0, _index.addNamespace)(_pointer.default.out, \"dxNavButton\");\r\n var navButton = this._createComponent((0, _renderer.default)(\"
\").addClass(TABS_NAV_BUTTON_CLASS), _button.default, {\r\n focusStateEnabled: false,\r\n icon: icon,\r\n onClick: function() {\r\n that._updateScrollPosition(offset, 1)\r\n },\r\n integrationOptions: {}\r\n });\r\n var $navButton = navButton.$element();\r\n _events_engine.default.on($navButton, holdEventName, {\r\n timeout: FEEDBACK_SCROLL_TIMEOUT\r\n }, function(e) {\r\n holdAction({\r\n event: e\r\n })\r\n }.bind(this));\r\n _events_engine.default.on($navButton, pointerUpEventName, function() {\r\n that._clearInterval()\r\n });\r\n _events_engine.default.on($navButton, pointerOutEventName, function() {\r\n that._clearInterval()\r\n });\r\n return navButton\r\n },\r\n _clearInterval: function() {\r\n if (this._holdInterval) {\r\n clearInterval(this._holdInterval)\r\n }\r\n },\r\n _updateSelection: function(addedSelection) {\r\n this._scrollable && this._scrollable.scrollToElement(this.itemElements().eq(addedSelection[0]), {\r\n left: 1,\r\n right: 1\r\n })\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderScrolling()\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 _clean: function() {\r\n this._deferredTemplates = [];\r\n this._cleanScrolling();\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"useInkRipple\":\r\n case \"scrollingEnabled\":\r\n case \"showNavButtons\":\r\n this._invalidate();\r\n break;\r\n case \"scrollByContent\":\r\n this._scrollable && this._scrollable.option(args.name, args.value);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"selectionMode\":\r\n this._renderMultiple();\r\n this.callBase(args);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _afterItemElementInserted: function() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n this._renderScrolling()\r\n }\r\n});\r\nTabs.ItemClass = _item.default;\r\n(0, _component_registrator.default)(\"dxTabs\", Tabs);\r\nvar _default = Tabs;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/tab_panel/item.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 _item = _interopRequireDefault(require(\"../collection/item\"));\r\nvar _common = require(\"../../core/utils/common\");\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 TabPanelItem = function(_CollectionWidgetItem) {\r\n _inheritsLoose(TabPanelItem, _CollectionWidgetItem);\r\n\r\n function TabPanelItem() {\r\n return _CollectionWidgetItem.apply(this, arguments) || this\r\n }\r\n var _proto = TabPanelItem.prototype;\r\n _proto._renderWatchers = function() {\r\n this._startWatcher(\"badge\", _common.noop);\r\n return _CollectionWidgetItem.prototype._renderWatchers.call(this)\r\n };\r\n return TabPanelItem\r\n}(_item.default);\r\nexports.default = TabPanelItem;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (localization/ldml/date.parser.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.getParser = exports.getPatternSetters = exports.getRegExpInfo = void 0;\r\nvar _common = require(\"../../core/utils/common\");\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar monthRegExpGenerator = function(count, dateParts) {\r\n if (count > 2) {\r\n return Object.keys(FORMAT_TYPES).map(function(count) {\r\n return [\"format\", \"standalone\"].map(function(type) {\r\n return dateParts.getMonthNames(FORMAT_TYPES[count], type).join(\"|\")\r\n }).join(\"|\")\r\n }).join(\"|\")\r\n }\r\n return \"0?[1-9]|1[012]\"\r\n};\r\nvar PATTERN_REGEXPS = {\r\n y: function(count) {\r\n return \"[0-9]+\"\r\n },\r\n M: monthRegExpGenerator,\r\n L: monthRegExpGenerator,\r\n Q: function(count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").join(\"|\")\r\n }\r\n return \"0?[1-4]\"\r\n },\r\n E: function(count, dateParts) {\r\n return \"\\\\D*\"\r\n },\r\n a: function(count, dateParts) {\r\n return dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\").join(\"|\")\r\n },\r\n d: function(count) {\r\n return \"0?[1-9]|[12][0-9]|3[01]\"\r\n },\r\n H: function(count) {\r\n return \"0?[0-9]|1[0-9]|2[0-3]\"\r\n },\r\n h: function(count) {\r\n return \"0?[1-9]|1[012]\"\r\n },\r\n m: function(count) {\r\n return \"0?[0-9]|[1-5][0-9]\"\r\n },\r\n s: function(count) {\r\n return \"0?[0-9]|[1-5][0-9]\"\r\n },\r\n S: function(count) {\r\n return \"[0-9]{1,\" + count + \"}\"\r\n },\r\n w: function(count) {\r\n return \"0?[0-9]|[1-5][0-9]\"\r\n }\r\n};\r\nvar parseNumber = Number;\r\nvar caseInsensitiveIndexOf = function(array, value) {\r\n return array.map(function(item) {\r\n return item.toLowerCase()\r\n }).indexOf(value.toLowerCase())\r\n};\r\nvar monthPatternParser = function(text, count, dateParts) {\r\n if (count > 2) {\r\n return [\"format\", \"standalone\"].map(function(type) {\r\n return Object.keys(FORMAT_TYPES).map(function(count) {\r\n var monthNames = dateParts.getMonthNames(FORMAT_TYPES[count], type);\r\n return caseInsensitiveIndexOf(monthNames, text)\r\n })\r\n }).reduce(function(a, b) {\r\n return a.concat(b)\r\n }).filter(function(index) {\r\n return index >= 0\r\n })[0]\r\n }\r\n return parseNumber(text) - 1\r\n};\r\nvar PATTERN_PARSERS = {\r\n y: function(text, count) {\r\n var year = parseNumber(text);\r\n if (2 === count) {\r\n return year < 30 ? 2e3 + year : 1900 + year\r\n }\r\n return year\r\n },\r\n M: monthPatternParser,\r\n L: monthPatternParser,\r\n Q: function(text, count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").indexOf(text)\r\n }\r\n return parseNumber(text) - 1\r\n },\r\n E: function(text, count, dateParts) {\r\n var dayNames = dateParts.getDayNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(dayNames, text)\r\n },\r\n a: function(text, count, dateParts) {\r\n var periodNames = dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(periodNames, text)\r\n },\r\n d: parseNumber,\r\n H: parseNumber,\r\n h: parseNumber,\r\n m: parseNumber,\r\n s: parseNumber,\r\n S: function(text, count) {\r\n count = Math.max(count, 3);\r\n text = text.slice(0, 3);\r\n while (count < 3) {\r\n text += \"0\";\r\n count++\r\n }\r\n return parseNumber(text)\r\n }\r\n};\r\nvar ORDERED_PATTERNS = [\"y\", \"M\", \"d\", \"h\", \"m\", \"s\", \"S\"];\r\nvar PATTERN_SETTERS = {\r\n y: \"setFullYear\",\r\n M: \"setMonth\",\r\n L: \"setMonth\",\r\n a: function(date, value, datePartValues) {\r\n var hours = date.getHours();\r\n var hourPartValue = datePartValues.h;\r\n if (void 0 !== hourPartValue && hourPartValue !== hours) {\r\n hours--\r\n }\r\n if (!value && 12 === hours) {\r\n hours = 0\r\n } else {\r\n if (value && 12 !== hours) {\r\n hours += 12\r\n }\r\n }\r\n date.setHours(hours)\r\n },\r\n d: \"setDate\",\r\n H: \"setHours\",\r\n h: \"setHours\",\r\n m: \"setMinutes\",\r\n s: \"setSeconds\",\r\n S: \"setMilliseconds\"\r\n};\r\nvar getSameCharCount = function(text, index) {\r\n var char = text[index];\r\n var count = 0;\r\n do {\r\n index++;\r\n count++\r\n } while (text[index] === char);\r\n return count\r\n};\r\nvar createPattern = function(char, count) {\r\n var result = \"\";\r\n for (var i = 0; i < count; i++) {\r\n result += char\r\n }\r\n return result\r\n};\r\nvar getRegExpInfo = function(format, dateParts) {\r\n var regexpText = \"\";\r\n var stubText = \"\";\r\n var isEscaping;\r\n var patterns = [];\r\n var addPreviousStub = function() {\r\n if (stubText) {\r\n patterns.push(\"'\" + stubText + \"'\");\r\n regexpText += (0, _common.escapeRegExp)(stubText) + \")\";\r\n stubText = \"\"\r\n }\r\n };\r\n for (var i = 0; i < format.length; i++) {\r\n var char = format[i];\r\n var isEscapeChar = \"'\" === char;\r\n var regexpPart = PATTERN_REGEXPS[char];\r\n if (isEscapeChar) {\r\n isEscaping = !isEscaping;\r\n if (\"'\" !== format[i - 1]) {\r\n continue\r\n }\r\n }\r\n if (regexpPart && !isEscaping) {\r\n var count = getSameCharCount(format, i);\r\n var pattern = createPattern(char, count);\r\n addPreviousStub();\r\n patterns.push(pattern);\r\n regexpText += \"(\" + regexpPart(count, dateParts) + \")\";\r\n i += count - 1\r\n } else {\r\n if (!stubText) {\r\n regexpText += \"(\"\r\n }\r\n stubText += char\r\n }\r\n }\r\n addPreviousStub();\r\n return {\r\n patterns: patterns,\r\n regexp: new RegExp(\"^\" + regexpText + \"$\", \"i\")\r\n }\r\n};\r\nexports.getRegExpInfo = getRegExpInfo;\r\nvar getPatternSetters = function() {\r\n return PATTERN_SETTERS\r\n};\r\nexports.getPatternSetters = getPatternSetters;\r\nvar setPatternPart = function(date, pattern, text, dateParts, datePartValues) {\r\n var patternChar = pattern[0];\r\n var partSetter = PATTERN_SETTERS[patternChar];\r\n var partParser = PATTERN_PARSERS[patternChar];\r\n if (partSetter && partParser) {\r\n var value = partParser(text, pattern.length, dateParts);\r\n datePartValues[pattern] = value;\r\n if (date[partSetter]) {\r\n date[partSetter](value)\r\n } else {\r\n partSetter(date, value, datePartValues)\r\n }\r\n }\r\n};\r\nvar setPatternPartFromNow = function(date, pattern, now) {\r\n var setterName = PATTERN_SETTERS[pattern];\r\n var getterName = \"g\" + setterName.substr(1);\r\n var value = now[getterName]();\r\n date[setterName](value)\r\n};\r\nvar getShortPatterns = function(fullPatterns) {\r\n return fullPatterns.map(function(pattern) {\r\n if (\"'\" === pattern[0]) {\r\n return \"\"\r\n } else {\r\n return \"H\" === pattern[0] ? \"h\" : pattern[0]\r\n }\r\n })\r\n};\r\nvar getMaxOrderedPatternIndex = function(patterns) {\r\n var indexes = patterns.map(function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern)\r\n });\r\n return Math.max.apply(Math, indexes)\r\n};\r\nvar getOrderedFormatPatterns = function(formatPatterns) {\r\n var otherPatterns = formatPatterns.filter(function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern) < 0\r\n });\r\n return ORDERED_PATTERNS.concat(otherPatterns)\r\n};\r\nvar getParser = function(format, dateParts) {\r\n var regExpInfo = getRegExpInfo(format, dateParts);\r\n return function(text) {\r\n var regExpResult = regExpInfo.regexp.exec(text);\r\n if (regExpResult) {\r\n var now = new Date;\r\n var date = new Date(now.getFullYear(), 0, 1);\r\n var formatPatterns = getShortPatterns(regExpInfo.patterns);\r\n var maxPatternIndex = getMaxOrderedPatternIndex(formatPatterns);\r\n var orderedFormatPatterns = getOrderedFormatPatterns(formatPatterns);\r\n var datePartValues = {};\r\n orderedFormatPatterns.forEach(function(pattern, index) {\r\n if (!pattern || index < ORDERED_PATTERNS.length && index > maxPatternIndex) {\r\n return\r\n }\r\n var patternIndex = formatPatterns.indexOf(pattern);\r\n if (patternIndex >= 0) {\r\n var regExpPattern = regExpInfo.patterns[patternIndex];\r\n var regExpText = regExpResult[patternIndex + 1];\r\n setPatternPart(date, regExpPattern, regExpText, dateParts, datePartValues)\r\n } else {\r\n setPatternPartFromNow(date, pattern, now)\r\n }\r\n });\r\n return date\r\n }\r\n return null\r\n }\r\n};\r\nexports.getParser = getParser;\r\n","/**\r\n * DevExtreme (ui/form/ui.form.item_options_actions.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 _uiForm = _interopRequireDefault(require(\"./ui.form.item_option_action\"));\r\nvar _element_data = require(\"../../core/element_data\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiForm2 = require(\"./ui.form.utils\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _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 WidgetOptionItemOptionAction = function(_ItemOptionAction) {\r\n _inheritsLoose(WidgetOptionItemOptionAction, _ItemOptionAction);\r\n\r\n function WidgetOptionItemOptionAction() {\r\n return _ItemOptionAction.apply(this, arguments) || this\r\n }\r\n var _proto = WidgetOptionItemOptionAction.prototype;\r\n _proto.tryExecute = function() {\r\n var value = this._options.value;\r\n var instance = this.findInstance();\r\n if (instance) {\r\n instance.option(value);\r\n return true\r\n }\r\n return false\r\n };\r\n return WidgetOptionItemOptionAction\r\n}(_uiForm.default);\r\nvar TabOptionItemOptionAction = function(_ItemOptionAction2) {\r\n _inheritsLoose(TabOptionItemOptionAction, _ItemOptionAction2);\r\n\r\n function TabOptionItemOptionAction() {\r\n return _ItemOptionAction2.apply(this, arguments) || this\r\n }\r\n var _proto2 = TabOptionItemOptionAction.prototype;\r\n _proto2.tryExecute = function() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var _this$_options = this._options,\r\n optionName = _this$_options.optionName,\r\n item = _this$_options.item,\r\n value = _this$_options.value;\r\n var itemIndex = this._itemsRunTimeInfo.findItemIndexByItem(item);\r\n if (itemIndex >= 0) {\r\n tabPanel.option((0, _uiForm2.getFullOptionName)(\"items[\".concat(itemIndex, \"]\"), optionName), value);\r\n return true\r\n }\r\n }\r\n return false\r\n };\r\n return TabOptionItemOptionAction\r\n}(_uiForm.default);\r\nvar TabsOptionItemOptionAction = function(_ItemOptionAction3) {\r\n _inheritsLoose(TabsOptionItemOptionAction, _ItemOptionAction3);\r\n\r\n function TabsOptionItemOptionAction() {\r\n return _ItemOptionAction3.apply(this, arguments) || this\r\n }\r\n var _proto3 = TabsOptionItemOptionAction.prototype;\r\n _proto3.tryExecute = function() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var value = this._options.value;\r\n tabPanel.option(\"dataSource\", value);\r\n return true\r\n }\r\n return false\r\n };\r\n return TabsOptionItemOptionAction\r\n}(_uiForm.default);\r\nvar ValidationRulesItemOptionAction = function(_ItemOptionAction4) {\r\n _inheritsLoose(ValidationRulesItemOptionAction, _ItemOptionAction4);\r\n\r\n function ValidationRulesItemOptionAction() {\r\n return _ItemOptionAction4.apply(this, arguments) || this\r\n }\r\n var _proto4 = ValidationRulesItemOptionAction.prototype;\r\n _proto4.tryExecute = function() {\r\n var item = this._options.item;\r\n var instance = this.findInstance();\r\n var validator = instance && (0, _element_data.data)(instance.$element()[0], \"dxValidator\");\r\n if (validator && item) {\r\n var filterRequired = function(item) {\r\n return \"required\" === item.type\r\n };\r\n var oldContainsRequired = (validator.option(\"validationRules\") || []).some(filterRequired);\r\n var newContainsRequired = (item.validationRules || []).some(filterRequired);\r\n if (!oldContainsRequired && !newContainsRequired || oldContainsRequired && newContainsRequired) {\r\n validator.option(\"validationRules\", item.validationRules);\r\n return true\r\n }\r\n }\r\n return false\r\n };\r\n return ValidationRulesItemOptionAction\r\n}(_uiForm.default);\r\nvar CssClassItemOptionAction = function(_ItemOptionAction5) {\r\n _inheritsLoose(CssClassItemOptionAction, _ItemOptionAction5);\r\n\r\n function CssClassItemOptionAction() {\r\n return _ItemOptionAction5.apply(this, arguments) || this\r\n }\r\n var _proto5 = CssClassItemOptionAction.prototype;\r\n _proto5.tryExecute = function() {\r\n var $itemContainer = this.findItemContainer();\r\n var _this$_options2 = this._options,\r\n previousValue = _this$_options2.previousValue,\r\n value = _this$_options2.value;\r\n if ($itemContainer) {\r\n $itemContainer.removeClass(previousValue).addClass(value);\r\n return true\r\n }\r\n return false\r\n };\r\n return CssClassItemOptionAction\r\n}(_uiForm.default);\r\nvar tryCreateItemOptionAction = function(optionName, itemActionOptions) {\r\n switch (optionName) {\r\n case \"editorOptions\":\r\n case \"buttonOptions\":\r\n return new WidgetOptionItemOptionAction(itemActionOptions);\r\n case \"validationRules\":\r\n return new ValidationRulesItemOptionAction(itemActionOptions);\r\n case \"cssClass\":\r\n return new CssClassItemOptionAction(itemActionOptions);\r\n case \"badge\":\r\n case \"disabled\":\r\n case \"icon\":\r\n case \"template\":\r\n case \"tabTemplate\":\r\n case \"title\":\r\n return new TabOptionItemOptionAction((0, _extend.extend)(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n case \"tabs\":\r\n return new TabsOptionItemOptionAction(itemActionOptions);\r\n default:\r\n return null\r\n }\r\n};\r\nvar _default = tryCreateItemOptionAction;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/date_box/ui.date_box.strategy.calendar_with_time.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 _window = require(\"../../core/utils/window\");\r\nvar _uiDate_boxStrategy = _interopRequireDefault(require(\"./ui.date_box.strategy.calendar\"));\r\nvar _ui = _interopRequireDefault(require(\"./ui.time_view\"));\r\nvar _date = _interopRequireDefault(require(\"../../localization/date\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _box = _interopRequireDefault(require(\"../box\"));\r\nvar _ui2 = _interopRequireDefault(require(\"./ui.date_utils\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar SHRINK_VIEW_SCREEN_WIDTH = 573;\r\nvar DATEBOX_ADAPTIVITY_MODE_CLASS = \"dx-datebox-adaptivity-mode\";\r\nvar CalendarWithTimeStrategy = _uiDate_boxStrategy.default.inherit({\r\n NAME: \"CalendarWithTime\",\r\n getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n applyValueMode: \"useButtons\",\r\n buttonsLocation: \"bottom after\",\r\n \"dropDownOptions.showTitle\": false\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdateshorttime\"\r\n },\r\n _is24HourFormat: function() {\r\n return _date.default.is24HourFormat(this.getDisplayFormat(this.dateBox.option(\"displayFormat\")))\r\n },\r\n _getContouredValue: function() {\r\n var viewDate = this.callBase();\r\n return this._updateDateTime(viewDate)\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._timeView = this.dateBox._createComponent((0, _renderer.default)(\"
\"), _ui.default, {\r\n value: this.dateBoxValue(),\r\n _showClock: !this._isShrinkView(),\r\n use24HourFormat: this._is24HourFormat(),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n stylingMode: this.dateBox.option(\"stylingMode\")\r\n });\r\n this._timeView.registerKeyHandler(\"escape\", this._escapeHandler.bind(this))\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup._wrapper().toggleClass(DATEBOX_ADAPTIVITY_MODE_CLASS, this._isSmallScreen())\r\n }\r\n clearTimeout(this._repaintTimer);\r\n this._repaintTimer = setTimeout(function() {\r\n this._getPopup() && this._getPopup().repaint()\r\n }.bind(this), 0)\r\n },\r\n isAdaptivityChanged: function() {\r\n var isAdaptiveMode = this._isShrinkView();\r\n var currentAdaptiveMode = this._currentAdaptiveMode;\r\n if (isAdaptiveMode !== currentAdaptiveMode) {\r\n this._currentAdaptiveMode = isAdaptiveMode;\r\n return void 0 !== currentAdaptiveMode\r\n }\r\n return this.callBase()\r\n },\r\n _updateValue: function(preventDefaultValue) {\r\n var date = this.dateBoxValue();\r\n if (!date && !preventDefaultValue) {\r\n date = new Date;\r\n _ui2.default.normalizeTime(date)\r\n }\r\n this.callBase();\r\n if (this._timeView) {\r\n date && this._timeView.option(\"value\", date);\r\n this._timeView.option(\"use24HourFormat\", this._is24HourFormat())\r\n }\r\n },\r\n _isSmallScreen: function() {\r\n return (0, _renderer.default)(window).width() <= SHRINK_VIEW_SCREEN_WIDTH\r\n },\r\n _isShrinkView: function() {\r\n return !this.dateBox.option(\"showAnalogClock\") || this.dateBox.option(\"adaptivityEnabled\") && this._isSmallScreen()\r\n },\r\n _getBoxItems: function() {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"calendar\"\r\n }];\r\n if (!this._isShrinkView()) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"time\"\r\n })\r\n }\r\n return items\r\n },\r\n renderPopupContent: function() {\r\n this.callBase();\r\n this._currentAdaptiveMode = this._isShrinkView();\r\n var $popupContent = this._getPopup().$content();\r\n this._box = this.dateBox._createComponent((0, _renderer.default)(\"
\").appendTo($popupContent), _box.default, {\r\n direction: \"row\",\r\n crossAlign: \"start\",\r\n items: this._getBoxItems(),\r\n itemTemplate: function(data) {\r\n var $container = (0, _renderer.default)(\"
\");\r\n switch (data.name) {\r\n case \"calendar\":\r\n $container.append(this._widget.$element());\r\n if (this._isShrinkView()) {\r\n $container.append(this._timeView.$element())\r\n }\r\n break;\r\n case \"time\":\r\n $container.append(this._timeView.$element())\r\n }\r\n return $container\r\n }.bind(this)\r\n });\r\n this._attachTabHandler()\r\n },\r\n popupConfig: function(_popupConfig) {\r\n var calendarPopupConfig = this.callBase(_popupConfig);\r\n var result = (0, _extend.extend)(calendarPopupConfig, {\r\n width: \"auto\",\r\n onShowing: function() {\r\n if (\"fallback\" === this._box.option(\"_layoutStrategy\")) {\r\n var clockMinWidth = this._getPopup().$content().find(\".dx-timeview-clock\").css(\"minWidth\");\r\n this._timeView.$element().css(\"maxWidth\", clockMinWidth)\r\n }\r\n }.bind(this)\r\n });\r\n return result\r\n },\r\n getFirstPopupElement: function() {\r\n return this._timeView._hourBox.$element().find(\"input\")\r\n },\r\n _attachTabHandler: function() {\r\n var dateBox = this.dateBox;\r\n var handler = function(e) {\r\n if (e.shiftKey) {\r\n e.preventDefault();\r\n dateBox.focus()\r\n }\r\n };\r\n this._timeView._hourBox.registerKeyHandler(\"tab\", handler)\r\n },\r\n _preventFocusOnPopup: function(e) {\r\n if (!(0, _renderer.default)(e.target).hasClass(\"dx-texteditor-input\")) {\r\n this.callBase.apply(this, arguments);\r\n if (!this.dateBox._hasFocusClass()) {\r\n this.dateBox.focus()\r\n }\r\n }\r\n },\r\n _updateDateTime: function(date) {\r\n var time = this._timeView.option(\"value\");\r\n date.setHours(time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());\r\n return date\r\n },\r\n getValue: function() {\r\n var date = this._widget.option(\"value\");\r\n date = date ? new Date(date) : new Date;\r\n return this._updateDateTime(date)\r\n },\r\n dispose: function() {\r\n clearTimeout(this._removeMinWidthTimer);\r\n clearTimeout(this._repaintTimer);\r\n this.callBase()\r\n }\r\n});\r\nvar _default = CalendarWithTimeStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/validation_summary.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 _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _validation_engine = _interopRequireDefault(require(\"./validation_engine\"));\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\nvar VALIDATION_SUMMARY_CLASS = \"dx-validationsummary\";\r\nvar ITEM_CLASS = VALIDATION_SUMMARY_CLASS + \"-item\";\r\nvar ITEM_DATA_KEY = VALIDATION_SUMMARY_CLASS + \"-item-data\";\r\nvar ValidationSummary = _uiCollection_widget.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n focusStateEnabled: false,\r\n noDataText: null\r\n })\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initGroupRegistration()\r\n },\r\n _initGroupRegistration: function() {\r\n var $element = this.$element();\r\n var group = this.option(\"validationGroup\") || _validation_engine.default.findGroup($element, this._modelByElement($element));\r\n var groupConfig = _validation_engine.default.addGroup(group);\r\n this._unsubscribeGroup();\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n this.groupSubscription = this._groupValidationHandler.bind(this);\r\n groupConfig.on(\"validated\", this.groupSubscription)\r\n },\r\n _unsubscribeGroup: function() {\r\n var groupConfig = _validation_engine.default.getGroupConfig(this._validationGroup);\r\n groupConfig && groupConfig.off(\"validated\", this.groupSubscription)\r\n },\r\n _getOrderedItems: function(validators, items) {\r\n var orderedItems = [];\r\n (0, _iterator.each)(validators, function(_, validator) {\r\n var foundItems = (0, _common.grep)(items, function(item) {\r\n if (item.validator === validator) {\r\n return true\r\n }\r\n });\r\n if (foundItems.length) {\r\n orderedItems = orderedItems.concat(foundItems)\r\n }\r\n });\r\n return orderedItems\r\n },\r\n _groupValidationHandler: function(params) {\r\n var _this = this;\r\n var items = this._getOrderedItems(params.validators, (0, _iterator.map)(params.brokenRules, function(rule) {\r\n return {\r\n text: rule.message,\r\n validator: rule.validator,\r\n index: rule.index\r\n }\r\n }));\r\n this.validators = params.validators;\r\n (0, _iterator.each)(this.validators, function(_, validator) {\r\n if (validator._validationSummary !== _this) {\r\n var handler = _this._itemValidationHandler.bind(_this);\r\n var disposingHandler = function() {\r\n validator.off(\"validated\", handler);\r\n validator._validationSummary = null;\r\n handler = null\r\n };\r\n validator.on(\"validated\", handler);\r\n validator.on(\"disposing\", disposingHandler);\r\n validator._validationSummary = _this\r\n }\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _itemValidationHandler: function(_ref) {\r\n var isValid = _ref.isValid,\r\n validator = _ref.validator,\r\n brokenRules = _ref.brokenRules;\r\n var items = this.option(\"items\");\r\n var itemsChanged = false;\r\n var itemIndex = 0;\r\n var _loop = function() {\r\n var item = items[itemIndex];\r\n if (item.validator === validator) {\r\n var foundRule = (0, _common.grep)(brokenRules || [], function(rule) {\r\n return rule.index === item.index\r\n })[0];\r\n if (isValid || !foundRule) {\r\n items.splice(itemIndex, 1);\r\n itemsChanged = true;\r\n return \"continue\"\r\n }\r\n if (foundRule.message !== item.text) {\r\n item.text = foundRule.message;\r\n itemsChanged = true\r\n }\r\n }\r\n itemIndex++\r\n };\r\n while (itemIndex < items.length) {\r\n var _ret = _loop();\r\n if (\"continue\" === _ret) {\r\n continue\r\n }\r\n }(0, _iterator.each)(brokenRules, function(_, rule) {\r\n var foundItem = (0, _common.grep)(items, function(item) {\r\n return item.validator === validator && item.index === rule.index\r\n })[0];\r\n if (!foundItem) {\r\n items.push({\r\n text: rule.message,\r\n validator: validator,\r\n index: rule.index\r\n });\r\n itemsChanged = true\r\n }\r\n });\r\n if (itemsChanged) {\r\n items = this._getOrderedItems(this.validators, items);\r\n this.option(\"items\", items)\r\n }\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(VALIDATION_SUMMARY_CLASS);\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _postprocessRenderItem: function(params) {\r\n _events_engine.default.on(params.itemElement, \"click\", function() {\r\n params.itemData.validator && params.itemData.validator.focus && params.itemData.validator.focus()\r\n })\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n this._unsubscribeGroup()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxValidationSummary\", ValidationSummary);\r\nvar _default = ValidationSummary;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/form.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(\"./form/ui.form\"));\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/date_box/ui.date_utils.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 _date_serialization = _interopRequireDefault(require(\"../../core/utils/date_serialization\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _date = _interopRequireDefault(require(\"../../localization/date\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nvar DATE_COMPONENTS = [\"year\", \"day\", \"month\", \"day\"];\r\nvar TIME_COMPONENTS = [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"];\r\nvar ONE_MINUTE = 6e4;\r\nvar ONE_DAY = 60 * ONE_MINUTE * 24;\r\nvar ONE_YEAR = 365 * ONE_DAY;\r\nvar getStringFormat = function(format) {\r\n var formatType = _typeof(format);\r\n if (\"string\" === formatType) {\r\n return \"format\"\r\n }\r\n if (\"object\" === formatType && void 0 !== format.type) {\r\n return format.type\r\n }\r\n return null\r\n};\r\nvar dateUtils = {\r\n SUPPORTED_FORMATS: [\"date\", \"time\", \"datetime\"],\r\n ONE_MINUTE: ONE_MINUTE,\r\n ONE_DAY: ONE_DAY,\r\n ONE_YEAR: ONE_YEAR,\r\n MIN_DATEVIEW_DEFAULT_DATE: new Date(1900, 0, 1),\r\n MAX_DATEVIEW_DEFAULT_DATE: function() {\r\n var newDate = new Date;\r\n return new Date(newDate.getFullYear() + 50, newDate.getMonth(), newDate.getDate(), 23, 59, 59)\r\n }(),\r\n FORMATS_INFO: {\r\n date: {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-dd\"\r\n },\r\n components: DATE_COMPONENTS\r\n },\r\n time: {\r\n getStandardPattern: function() {\r\n return \"HH:mm\"\r\n },\r\n components: TIME_COMPONENTS\r\n },\r\n datetime: {\r\n getStandardPattern: function() {\r\n var standardPattern;\r\n ! function() {\r\n var androidFormatPattern = \"yyyy-MM-ddTHH:mmZ\";\r\n var testDateString = \"2000-01-01T01:01Z\";\r\n var $input = (0, _renderer.default)(\"\").attr(\"type\", \"datetime\");\r\n $input.val(testDateString);\r\n if ($input.val()) {\r\n standardPattern = androidFormatPattern\r\n }\r\n }();\r\n if (!standardPattern) {\r\n standardPattern = \"yyyy-MM-ddTHH:mm:ssZ\"\r\n }\r\n dateUtils.FORMATS_INFO.datetime.getStandardPattern = function() {\r\n return standardPattern\r\n };\r\n return standardPattern\r\n },\r\n components: [].concat(DATE_COMPONENTS, TIME_COMPONENTS)\r\n },\r\n \"datetime-local\": {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-ddTHH:mm:ss\"\r\n },\r\n components: [].concat(DATE_COMPONENTS, [\"hours\", \"minutes\", \"seconds\"])\r\n }\r\n },\r\n FORMATS_MAP: {\r\n date: \"shortdate\",\r\n time: \"shorttime\",\r\n datetime: \"shortdateshorttime\"\r\n },\r\n SUBMIT_FORMATS_MAP: {\r\n date: \"date\",\r\n time: \"time\",\r\n datetime: \"datetime-local\"\r\n },\r\n toStandardDateFormat: function(date, type) {\r\n var pattern = dateUtils.FORMATS_INFO[type].getStandardPattern();\r\n return _date_serialization.default.serializeDate(date, pattern)\r\n },\r\n fromStandardDateFormat: function(text) {\r\n var date = _date_serialization.default.dateParser(text);\r\n return (0, _type.isDate)(date) ? date : void 0\r\n },\r\n getMaxMonthDay: function(year, month) {\r\n return new Date(year, month + 1, 0).getDate()\r\n },\r\n mergeDates: function(oldValue, newValue, format) {\r\n if (!newValue) {\r\n return newValue || null\r\n }\r\n if (!oldValue || isNaN(oldValue.getTime())) {\r\n var now = new Date(null);\r\n oldValue = new Date(now.getFullYear(), now.getMonth(), now.getDate())\r\n }\r\n var result = new Date(oldValue.valueOf());\r\n var formatInfo = dateUtils.FORMATS_INFO[format];\r\n (0, _iterator.each)(formatInfo.components, function() {\r\n var componentInfo = dateUtils.DATE_COMPONENTS_INFO[this];\r\n result[componentInfo.setter](newValue[componentInfo.getter]())\r\n });\r\n return result\r\n },\r\n getLongestCaptionIndex: function(captionArray) {\r\n var longestIndex = 0;\r\n var longestCaptionLength = 0;\r\n var i;\r\n for (i = 0; i < captionArray.length; ++i) {\r\n if (captionArray[i].length > longestCaptionLength) {\r\n longestIndex = i;\r\n longestCaptionLength = captionArray[i].length\r\n }\r\n }\r\n return longestIndex\r\n },\r\n formatUsesMonthName: function(format) {\r\n return _date.default.formatUsesMonthName(format)\r\n },\r\n formatUsesDayName: function(format) {\r\n return _date.default.formatUsesDayName(format)\r\n },\r\n getLongestDate: function(format, monthNames, dayNames) {\r\n var stringFormat = getStringFormat(format);\r\n var month = 9;\r\n if (!stringFormat || dateUtils.formatUsesMonthName(stringFormat)) {\r\n month = dateUtils.getLongestCaptionIndex(monthNames)\r\n }\r\n var longestDate = new Date(1888, month, 21, 23, 59, 59, 999);\r\n if (!stringFormat || dateUtils.formatUsesDayName(stringFormat)) {\r\n var date = longestDate.getDate() - longestDate.getDay() + dateUtils.getLongestCaptionIndex(dayNames);\r\n longestDate.setDate(date)\r\n }\r\n return longestDate\r\n },\r\n normalizeTime: function(date) {\r\n date.setSeconds(0);\r\n date.setMilliseconds(0)\r\n }\r\n};\r\ndateUtils.DATE_COMPONENTS_INFO = {\r\n year: {\r\n getter: \"getFullYear\",\r\n setter: \"setFullYear\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setFullYear(value);\r\n return _date.default.format(formatDate, \"yyyy\")\r\n },\r\n startValue: void 0,\r\n endValue: void 0\r\n },\r\n day: {\r\n getter: \"getDate\",\r\n setter: \"setDate\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setDate(value);\r\n return _date.default.format(formatDate, \"d\")\r\n },\r\n startValue: 1,\r\n endValue: void 0\r\n },\r\n month: {\r\n getter: \"getMonth\",\r\n setter: \"setMonth\",\r\n formatter: function(value) {\r\n return _date.default.getMonthNames()[value]\r\n },\r\n startValue: 0,\r\n endValue: 11\r\n },\r\n hours: {\r\n getter: \"getHours\",\r\n setter: \"setHours\",\r\n formatter: function(value) {\r\n return _date.default.format(new Date(0, 0, 0, value), \"hour\")\r\n },\r\n startValue: 0,\r\n endValue: 23\r\n },\r\n minutes: {\r\n getter: \"getMinutes\",\r\n setter: \"setMinutes\",\r\n formatter: function(value) {\r\n return _date.default.format(new Date(0, 0, 0, 0, value), \"minute\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n seconds: {\r\n getter: \"getSeconds\",\r\n setter: \"setSeconds\",\r\n formatter: function(value) {\r\n return _date.default.format(new Date(0, 0, 0, 0, 0, value), \"second\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n milliseconds: {\r\n getter: \"getMilliseconds\",\r\n setter: \"setMilliseconds\",\r\n formatter: function(value) {\r\n return _date.default.format(new Date(0, 0, 0, 0, 0, 0, value), \"millisecond\")\r\n },\r\n startValue: 0,\r\n endValue: 999\r\n }\r\n};\r\nvar _default = dateUtils;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/date_box/ui.date_box.strategy.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 _calendar = _interopRequireDefault(require(\"../calendar\"));\r\nvar _uiDate_box = _interopRequireDefault(require(\"./ui.date_box.strategy\"));\r\nvar _date = _interopRequireDefault(require(\"../../core/utils/date\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar CalendarStrategy = _uiDate_box.default.inherit({\r\n NAME: \"Calendar\",\r\n supportedKeys: function() {\r\n var homeEndHandler = function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n return true\r\n }\r\n return false\r\n };\r\n return {\r\n rightArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n leftArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n enter: function(e) {\r\n if (this.dateBox.option(\"opened\")) {\r\n e.preventDefault();\r\n if (this._widget.option(\"zoomLevel\") === this._widget.option(\"maxZoomLevel\")) {\r\n var viewValue = this._getContouredValue();\r\n var lastActionElement = this._lastActionElement;\r\n if (viewValue && \"calendar\" === lastActionElement) {\r\n this.dateBoxValue(viewValue, e)\r\n }\r\n this.dateBox.close();\r\n this.dateBox._valueChangeEventHandler(e)\r\n } else {\r\n return true\r\n }\r\n } else {\r\n this.dateBox._valueChangeEventHandler(e)\r\n }\r\n }.bind(this),\r\n home: homeEndHandler,\r\n end: homeEndHandler\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdate\"\r\n },\r\n _getWidgetName: function() {\r\n return _calendar.default\r\n },\r\n _getContouredValue: function() {\r\n return this._widget._view.option(\"contouredDate\")\r\n },\r\n getKeyboardListener: function() {\r\n return this._widget\r\n },\r\n _getWidgetOptions: function() {\r\n var disabledDates = this.dateBox.option(\"disabledDates\");\r\n return (0, _extend.extend)(this.dateBox.option(\"calendarOptions\"), {\r\n value: this.dateBoxValue() || null,\r\n dateSerializationFormat: null,\r\n min: this.dateBox.dateOption(\"min\"),\r\n max: this.dateBox.dateOption(\"max\"),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n onCellClick: this._cellClickHandler.bind(this),\r\n tabIndex: null,\r\n disabledDates: (0, _type.isFunction)(disabledDates) ? this._injectComponent(disabledDates.bind(this.dateBox)) : disabledDates,\r\n onContouredChanged: this._refreshActiveDescendant.bind(this),\r\n hasFocus: function() {\r\n return true\r\n }\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.dateBox\r\n });\r\n return func(params)\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this._lastActionElement = \"calendar\";\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n popupConfig: function(_popupConfig) {\r\n var _this = this;\r\n var toolbarItems = _popupConfig.toolbarItems;\r\n var buttonsLocation = this.dateBox.option(\"buttonsLocation\");\r\n var position = [];\r\n if (\"default\" !== buttonsLocation) {\r\n position = (0, _common.splitPair)(buttonsLocation)\r\n } else {\r\n position = [\"bottom\", \"center\"]\r\n }\r\n if (\"useButtons\" === this.dateBox.option(\"applyValueMode\") && this._isCalendarVisible()) {\r\n toolbarItems.unshift({\r\n widget: \"dxButton\",\r\n toolbar: position[0],\r\n location: \"after\" === position[1] ? \"before\" : position[1],\r\n options: {\r\n onInitialized: function(e) {\r\n e.component.registerKeyHandler(\"escape\", this._escapeHandler.bind(this))\r\n }.bind(this),\r\n onClick: function(args) {\r\n _this._widget._toTodayView(args)\r\n },\r\n text: _message.default.format(\"dxCalendar-todayButtonText\"),\r\n type: \"today\"\r\n }\r\n })\r\n }\r\n return (0, _extend.extend)(true, _popupConfig, {\r\n toolbarItems: toolbarItems,\r\n position: {\r\n collision: \"flipfit flip\"\r\n },\r\n width: \"auto\"\r\n })\r\n },\r\n _isCalendarVisible: function() {\r\n return (0, _type.isEmptyObject)(this.dateBox.option(\"calendarOptions\")) || false !== this.dateBox.option(\"calendarOptions.visible\")\r\n },\r\n _escapeHandler: function() {\r\n this.dateBox.close();\r\n this.dateBox.focus()\r\n },\r\n _valueChangedHandler: function(e) {\r\n var dateBox = this.dateBox;\r\n var value = e.value;\r\n var prevValue = e.previousValue;\r\n if (_date.default.sameDate(value, prevValue)) {\r\n return\r\n }\r\n if (\"instantly\" === dateBox.option(\"applyValueMode\")) {\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n textChangedHandler: function() {\r\n this._lastActionElement = \"input\";\r\n if (this.dateBox.option(\"opened\") && this._widget) {\r\n this._updateValue(true)\r\n }\r\n },\r\n _cellClickHandler: function(e) {\r\n var dateBox = this.dateBox;\r\n if (\"instantly\" === dateBox.option(\"applyValueMode\")) {\r\n dateBox.option(\"opened\", false);\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n }\r\n});\r\nvar _default = CalendarStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/tabs/constants.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.TABS_EXPANDED_CLASS = void 0;\r\nvar TABS_EXPANDED_CLASS = \"dx-tabs-expanded\";\r\nexports.TABS_EXPANDED_CLASS = TABS_EXPANDED_CLASS;\r\n","/**\r\n * DevExtreme (ui/form/ui.form.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 _guid = _interopRequireDefault(require(\"../../core/guid\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _string = require(\"../../core/utils/string\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _visibility_change = require(\"../../events/visibility_change\");\r\nvar _element = require(\"../../core/element\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _editor = _interopRequireDefault(require(\"../editor/editor\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _validation_engine = _interopRequireDefault(require(\"../validation_engine\"));\r\nvar _uiForm = _interopRequireDefault(require(\"./ui.form.items_runtime_info\"));\r\nvar _tab_panel = _interopRequireDefault(require(\"../tab_panel\"));\r\nvar _ui2 = _interopRequireDefault(require(\"../scroll_view/ui.scrollable\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _themes = require(\"../themes\");\r\nvar _uiForm2 = _interopRequireDefault(require(\"./ui.form.item_options_actions\"));\r\nrequire(\"./ui.form.layout_manager\");\r\nvar _uiForm4 = require(\"./ui.form.utils\");\r\nrequire(\"../validation_summary\");\r\nrequire(\"../validation_group\");\r\nvar _constants = require(\"./constants\");\r\nvar _constants2 = require(\"../toolbar/constants\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\nvar WIDGET_CLASS = \"dx-widget\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar ITEM_OPTIONS_FOR_VALIDATION_UPDATING = [\"items\", \"isRequired\", \"validationRules\", \"visible\"];\r\nvar Form = _ui.default.inherit({\r\n _init: function() {\r\n this.callBase();\r\n this._cachedColCountOptions = [];\r\n this._itemsRunTimeInfo = new _uiForm.default;\r\n this._groupsColCount = [];\r\n this._attachSyncSubscriptions()\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n formID: \"dx-\" + new _guid.default,\r\n formData: {},\r\n colCount: 1,\r\n screenByWidth: _window.defaultScreenFactorFunc,\r\n colCountByScreen: void 0,\r\n labelLocation: \"left\",\r\n readOnly: false,\r\n onFieldDataChanged: null,\r\n customizeItem: null,\r\n onEditorEnterKey: null,\r\n minColWidth: 200,\r\n alignItemLabels: true,\r\n alignItemLabelsInAllGroups: true,\r\n alignRootItemLabels: true,\r\n showColonAfterLabel: true,\r\n showRequiredMark: true,\r\n showOptionalMark: false,\r\n requiredMark: \"*\",\r\n optionalMark: _message.default.format(\"dxForm-optionalMark\"),\r\n requiredMessage: _message.default.getFormatter(\"dxForm-requiredMessage\"),\r\n showValidationSummary: false,\r\n items: void 0,\r\n scrollingEnabled: false,\r\n validationGroup: void 0,\r\n stylingMode: void 0\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return (0, _themes.isMaterial)()\r\n },\r\n options: {\r\n showColonAfterLabel: false,\r\n labelLocation: \"top\"\r\n }\r\n }])\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._optionsByReference, {\r\n formData: true,\r\n validationGroup: true\r\n })\r\n },\r\n _getGroupColCount: function($element) {\r\n return parseInt($element.attr(_constants.GROUP_COL_COUNT_ATTR))\r\n },\r\n _createHiddenElement: function(rootLayoutManager) {\r\n this._$hiddenElement = (0, _renderer.default)(\"
\").addClass(WIDGET_CLASS).addClass(_constants.HIDDEN_LABEL_CLASS).appendTo(\"body\");\r\n var $hiddenLabel = rootLayoutManager._renderLabel({\r\n text: \" \",\r\n location: this._labelLocation()\r\n }).appendTo(this._$hiddenElement);\r\n this._hiddenLabelText = $hiddenLabel.find(\".\" + _constants.FIELD_ITEM_LABEL_TEXT_CLASS)[0]\r\n },\r\n _removeHiddenElement: function() {\r\n this._$hiddenElement.remove();\r\n this._hiddenLabelText = null\r\n },\r\n _getLabelWidthByText: function(text) {\r\n this._hiddenLabelText.innerHTML = text;\r\n return this._hiddenLabelText.offsetWidth\r\n },\r\n _getLabelsSelectorByCol: function(index, options) {\r\n options = options || {};\r\n var fieldItemClass = options.inOneColumn ? _constants.FIELD_ITEM_CLASS : _constants.FORM_FIELD_ITEM_COL_CLASS + index;\r\n var cssExcludeTabbedSelector = options.excludeTabbed ? \":not(.\" + _constants.FIELD_ITEM_TAB_CLASS + \")\" : \"\";\r\n var childLabelContentSelector = \"> .\" + _constants.FIELD_ITEM_LABEL_CLASS + \" > .\" + _constants.FIELD_ITEM_LABEL_CONTENT_CLASS;\r\n return \".\" + fieldItemClass + cssExcludeTabbedSelector + childLabelContentSelector\r\n },\r\n _getLabelText: function(labelText) {\r\n var length = labelText.children.length;\r\n var child;\r\n var result = \"\";\r\n var i;\r\n for (i = 0; i < length; i++) {\r\n child = labelText.children[i];\r\n result += !(0, _string.isEmpty)(child.innerText) ? child.innerText : child.innerHTML\r\n }\r\n return result\r\n },\r\n _applyLabelsWidthByCol: function($container, index, options) {\r\n var $labelTexts = $container.find(this._getLabelsSelectorByCol(index, options));\r\n var $labelTextsLength = $labelTexts.length;\r\n var labelWidth;\r\n var i;\r\n var maxWidth = 0;\r\n for (i = 0; i < $labelTextsLength; i++) {\r\n labelWidth = this._getLabelWidthByText(this._getLabelText($labelTexts[i]));\r\n if (labelWidth > maxWidth) {\r\n maxWidth = labelWidth\r\n }\r\n }\r\n for (i = 0; i < $labelTextsLength; i++) {\r\n $labelTexts[i].style.width = maxWidth + \"px\"\r\n }\r\n },\r\n _applyLabelsWidth: function($container, excludeTabbed, inOneColumn, colCount) {\r\n colCount = inOneColumn ? 1 : colCount || this._getGroupColCount($container);\r\n var applyLabelsOptions = {\r\n excludeTabbed: excludeTabbed,\r\n inOneColumn: inOneColumn\r\n };\r\n var i;\r\n for (i = 0; i < colCount; i++) {\r\n this._applyLabelsWidthByCol($container, i, applyLabelsOptions)\r\n }\r\n },\r\n _getGroupElementsInColumn: function($container, columnIndex, colCount) {\r\n var cssColCountSelector = (0, _type.isDefined)(colCount) ? \".\" + _constants.GROUP_COL_COUNT_CLASS + colCount : \"\";\r\n var groupSelector = \".\" + _constants.FORM_FIELD_ITEM_COL_CLASS + columnIndex + \" > .\" + _constants.FIELD_ITEM_CONTENT_CLASS + \" > .\" + _constants.FORM_GROUP_CLASS + cssColCountSelector;\r\n return $container.find(groupSelector)\r\n },\r\n _applyLabelsWidthWithGroups: function($container, colCount, excludeTabbed) {\r\n if (true === this.option(\"alignRootItemLabels\")) {\r\n this._alignRootSimpleItems($container, colCount, excludeTabbed)\r\n }\r\n var alignItemLabelsInAllGroups = this.option(\"alignItemLabelsInAllGroups\");\r\n if (alignItemLabelsInAllGroups) {\r\n this._applyLabelsWidthWithNestedGroups($container, colCount, excludeTabbed)\r\n } else {\r\n var $groups = this.$element().find(\".\" + _constants.FORM_GROUP_CLASS);\r\n var i;\r\n for (i = 0; i < $groups.length; i++) {\r\n this._applyLabelsWidth($groups.eq(i), excludeTabbed)\r\n }\r\n }\r\n },\r\n _alignRootSimpleItems: function($container, colCount, excludeTabbed) {\r\n var $rootSimpleItems = $container.find(\".\".concat(_constants.ROOT_SIMPLE_ITEM_CLASS));\r\n for (var colIndex = 0; colIndex < colCount; colIndex++) {\r\n this._applyLabelsWidthByCol($rootSimpleItems, colIndex, excludeTabbed)\r\n }\r\n },\r\n _applyLabelsWidthWithNestedGroups: function($container, colCount, excludeTabbed) {\r\n var applyLabelsOptions = {\r\n excludeTabbed: excludeTabbed\r\n };\r\n var colIndex;\r\n var groupsColIndex;\r\n var groupColIndex;\r\n var $groupsByCol;\r\n for (colIndex = 0; colIndex < colCount; colIndex++) {\r\n $groupsByCol = this._getGroupElementsInColumn($container, colIndex);\r\n this._applyLabelsWidthByCol($groupsByCol, 0, applyLabelsOptions);\r\n for (groupsColIndex = 0; groupsColIndex < this._groupsColCount.length; groupsColIndex++) {\r\n $groupsByCol = this._getGroupElementsInColumn($container, colIndex, this._groupsColCount[groupsColIndex]);\r\n var groupColCount = this._getGroupColCount($groupsByCol);\r\n for (groupColIndex = 1; groupColIndex < groupColCount; groupColIndex++) {\r\n this._applyLabelsWidthByCol($groupsByCol, groupColIndex, applyLabelsOptions)\r\n }\r\n }\r\n }\r\n },\r\n _labelLocation: function() {\r\n return this.option(\"labelLocation\")\r\n },\r\n _alignLabelsInColumn: function(_ref) {\r\n var layoutManager = _ref.layoutManager,\r\n inOneColumn = _ref.inOneColumn,\r\n $container = _ref.$container,\r\n excludeTabbed = _ref.excludeTabbed,\r\n items = _ref.items;\r\n if (!(0, _window.hasWindow)() || \"top\" === this._labelLocation()) {\r\n return\r\n }\r\n this._createHiddenElement(layoutManager);\r\n if (inOneColumn) {\r\n this._applyLabelsWidth($container, excludeTabbed, true)\r\n } else {\r\n if (this._checkGrouping(items)) {\r\n this._applyLabelsWidthWithGroups($container, layoutManager._getColCount(), excludeTabbed)\r\n } else {\r\n this._applyLabelsWidth($container, excludeTabbed, false, layoutManager._getColCount())\r\n }\r\n }\r\n this._removeHiddenElement()\r\n },\r\n _prepareFormData: function() {\r\n if (!(0, _type.isDefined)(this.option(\"formData\"))) {\r\n this.option(\"formData\", {})\r\n }\r\n },\r\n _initMarkup: function() {\r\n _validation_engine.default.addGroup(this._getValidationGroup());\r\n this._clearCachedInstances();\r\n this._prepareFormData();\r\n this.$element().addClass(_constants.FORM_CLASS);\r\n this.callBase();\r\n this.setAria(\"role\", \"form\", this.$element());\r\n if (this.option(\"scrollingEnabled\")) {\r\n this._renderScrollable()\r\n }\r\n this._renderLayout();\r\n this._renderValidationSummary();\r\n this._lastMarkupScreenFactor = this._targetScreenFactor || this._getCurrentScreenFactor()\r\n },\r\n _getCurrentScreenFactor: function() {\r\n return (0, _window.hasWindow)() ? (0, _window.getCurrentScreenFactor)(this.option(\"screenByWidth\")) : \"lg\"\r\n },\r\n _clearCachedInstances: function() {\r\n this._itemsRunTimeInfo.clear();\r\n this._cachedLayoutManagers = []\r\n },\r\n _alignLabels: function(layoutManager, inOneColumn) {\r\n this._alignLabelsInColumn({\r\n $container: this.$element(),\r\n layoutManager: layoutManager,\r\n excludeTabbed: true,\r\n items: this.option(\"items\"),\r\n inOneColumn: inOneColumn\r\n });\r\n (0, _visibility_change.triggerResizeEvent)(this.$element().find(\".\".concat(_constants2.TOOLBAR_CLASS)))\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._groupsColCount = [];\r\n this._cachedColCountOptions = [];\r\n this._lastMarkupScreenFactor = void 0\r\n },\r\n _renderScrollable: function() {\r\n var useNativeScrolling = this.option(\"useNativeScrolling\");\r\n this._scrollable = new _ui2.default(this.$element(), {\r\n useNative: !!useNativeScrolling,\r\n useSimulatedScrollbar: !useNativeScrolling,\r\n useKeyboard: false,\r\n direction: \"both\",\r\n bounceEnabled: false\r\n })\r\n },\r\n _getContent: function() {\r\n return this.option(\"scrollingEnabled\") ? this._scrollable.$content() : this.$element()\r\n },\r\n _renderValidationSummary: function() {\r\n var $validationSummary = this.$element().find(\".\" + _constants.FORM_VALIDATION_SUMMARY);\r\n if ($validationSummary.length > 0) {\r\n $validationSummary.remove()\r\n }\r\n if (this.option(\"showValidationSummary\")) {\r\n var _$validationSummary = (0, _renderer.default)(\"
\").addClass(_constants.FORM_VALIDATION_SUMMARY).appendTo(this._getContent());\r\n this._validationSummary = _$validationSummary.dxValidationSummary({\r\n validationGroup: this._getValidationGroup()\r\n }).dxValidationSummary(\"instance\")\r\n }\r\n },\r\n _prepareItems: function(items, parentIsTabbedItem, currentPath, isTabs) {\r\n if (items) {\r\n var result = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var path = (0, _uiForm4.concatPaths)(currentPath, (0, _uiForm4.createItemPathByIndex)(i, isTabs));\r\n var guid = this._itemsRunTimeInfo.add({\r\n item: item,\r\n itemIndex: i,\r\n path: path\r\n });\r\n if ((0, _type.isString)(item)) {\r\n item = {\r\n dataField: item\r\n }\r\n }\r\n if ((0, _type.isObject)(item)) {\r\n var itemCopy = (0, _extend.extend)({}, item);\r\n itemCopy.guid = guid;\r\n this._tryPrepareGroupItem(itemCopy);\r\n this._tryPrepareTabbedItem(itemCopy, path);\r\n this._tryPrepareItemTemplate(itemCopy);\r\n if (parentIsTabbedItem) {\r\n itemCopy.cssItemClass = _constants.FIELD_ITEM_TAB_CLASS\r\n }\r\n if (itemCopy.items) {\r\n itemCopy.items = this._prepareItems(itemCopy.items, parentIsTabbedItem, path)\r\n }\r\n result.push(itemCopy)\r\n } else {\r\n result.push(item)\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n _tryPrepareGroupItem: function(item) {\r\n if (\"group\" === item.itemType) {\r\n item.alignItemLabels = (0, _common.ensureDefined)(item.alignItemLabels, true);\r\n if (item.template) {\r\n item.groupContentTemplate = this._getTemplate(item.template)\r\n }\r\n item.template = this._itemGroupTemplate.bind(this, item)\r\n }\r\n },\r\n _tryPrepareTabbedItem: function(item, path) {\r\n if (\"tabbed\" === item.itemType) {\r\n item.template = this._itemTabbedTemplate.bind(this, item);\r\n item.tabs = this._prepareItems(item.tabs, true, path, true)\r\n }\r\n },\r\n _tryPrepareItemTemplate: function(item) {\r\n if (item.template) {\r\n item.template = this._getTemplate(item.template)\r\n }\r\n },\r\n _checkGrouping: function(items) {\r\n if (items) {\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (\"group\" === item.itemType) {\r\n return true\r\n }\r\n }\r\n }\r\n },\r\n _renderLayout: function() {\r\n var that = this;\r\n var items = that.option(\"items\");\r\n var $content = that._getContent();\r\n items = that._prepareItems(items);\r\n that._rootLayoutManager = that._renderLayoutManager(items, $content, {\r\n isRoot: true,\r\n colCount: that.option(\"colCount\"),\r\n alignItemLabels: that.option(\"alignItemLabels\"),\r\n screenByWidth: this.option(\"screenByWidth\"),\r\n colCountByScreen: this.option(\"colCountByScreen\"),\r\n onLayoutChanged: function(inOneColumn) {\r\n that._alignLabels.bind(that)(that._rootLayoutManager, inOneColumn)\r\n },\r\n onContentReady: function(e) {\r\n that._alignLabels(e.component, e.component.isSingleColumnMode())\r\n }\r\n })\r\n },\r\n _tryGetItemsForTemplate: function(item) {\r\n return item.items || []\r\n },\r\n _itemTabbedTemplate: function(item, e, $container) {\r\n var _this = this;\r\n var $tabPanel = (0, _renderer.default)(\"
\").appendTo($container);\r\n var tabPanelOptions = (0, _extend.extend)({}, item.tabPanelOptions, {\r\n dataSource: item.tabs,\r\n onItemRendered: function(args) {\r\n return (0, _visibility_change.triggerShownEvent)(args.itemElement)\r\n },\r\n itemTemplate: function(itemData, e, container) {\r\n var $container = (0, _renderer.default)(container);\r\n var alignItemLabels = (0, _common.ensureDefined)(itemData.alignItemLabels, true);\r\n var layoutManager = _this._renderLayoutManager(_this._tryGetItemsForTemplate(itemData), $container, {\r\n colCount: itemData.colCount,\r\n alignItemLabels: alignItemLabels,\r\n screenByWidth: _this.option(\"screenByWidth\"),\r\n colCountByScreen: itemData.colCountByScreen,\r\n cssItemClass: itemData.cssItemClass,\r\n onLayoutChanged: function(inOneColumn) {\r\n _this._alignLabelsInColumn({\r\n $container: $container,\r\n layoutManager: layoutManager,\r\n items: itemData.items,\r\n inOneColumn: inOneColumn\r\n })\r\n }\r\n });\r\n if (_this._itemsRunTimeInfo) {\r\n _this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(itemData.guid, {\r\n layoutManager: layoutManager\r\n })\r\n }\r\n if (alignItemLabels) {\r\n _this._alignLabelsInColumn({\r\n $container: $container,\r\n layoutManager: layoutManager,\r\n items: itemData.items,\r\n inOneColumn: layoutManager.isSingleColumnMode()\r\n })\r\n }\r\n }\r\n });\r\n var tryUpdateTabPanelInstance = function(items, instance) {\r\n if (Array.isArray(items)) {\r\n items.forEach(function(item) {\r\n return _this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(item.guid, {\r\n widgetInstance: instance\r\n })\r\n })\r\n }\r\n };\r\n var tabPanel = this._createComponent($tabPanel, _tab_panel.default, tabPanelOptions);\r\n (0, _renderer.default)($container).parent().addClass(_constants.FIELD_ITEM_CONTENT_HAS_TABS_CLASS);\r\n tabPanel.on(\"optionChanged\", function(e) {\r\n if (\"dataSource\" === e.fullName) {\r\n tryUpdateTabPanelInstance(e.value, e.component)\r\n }\r\n });\r\n tryUpdateTabPanelInstance([{\r\n guid: item.guid\r\n }].concat(_toConsumableArray(item.tabs)), tabPanel)\r\n },\r\n _itemGroupTemplate: function(item, e, $container) {\r\n var $group = (0, _renderer.default)(\"
\").toggleClass(_constants.FORM_GROUP_WITH_CAPTION_CLASS, (0, _type.isDefined)(item.caption) && item.caption.length).addClass(_constants.FORM_GROUP_CLASS).appendTo($container);\r\n (0, _renderer.default)($container).parent().addClass(_constants.FIELD_ITEM_CONTENT_HAS_GROUP_CLASS);\r\n var colCount;\r\n var layoutManager;\r\n if (item.caption) {\r\n (0, _renderer.default)(\"\").addClass(_constants.FORM_GROUP_CAPTION_CLASS).text(item.caption).appendTo($group)\r\n }\r\n var $groupContent = (0, _renderer.default)(\"
\").addClass(_constants.FORM_GROUP_CONTENT_CLASS).appendTo($group);\r\n if (item.groupContentTemplate) {\r\n var data = {\r\n formData: this.option(\"formData\"),\r\n component: this\r\n };\r\n item.groupContentTemplate.render({\r\n model: data,\r\n container: (0, _element.getPublicElement)($groupContent)\r\n })\r\n } else {\r\n layoutManager = this._renderLayoutManager(this._tryGetItemsForTemplate(item), $groupContent, {\r\n colCount: item.colCount,\r\n colCountByScreen: item.colCountByScreen,\r\n alignItemLabels: item.alignItemLabels,\r\n cssItemClass: item.cssItemClass\r\n });\r\n this._itemsRunTimeInfo && this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(item.guid, {\r\n layoutManager: layoutManager\r\n });\r\n colCount = layoutManager._getColCount();\r\n if ((0, _array.inArray)(colCount, this._groupsColCount) === -1) {\r\n this._groupsColCount.push(colCount)\r\n }\r\n $group.addClass(_constants.GROUP_COL_COUNT_CLASS + colCount);\r\n $group.attr(_constants.GROUP_COL_COUNT_ATTR, colCount)\r\n }\r\n },\r\n _renderLayoutManager: function(items, $rootElement, options) {\r\n var $element = (0, _renderer.default)(\"
\");\r\n var that = this;\r\n var config = that._getLayoutManagerConfig(items, options);\r\n var baseColCountByScreen = {\r\n lg: options.colCount,\r\n md: options.colCount,\r\n sm: options.colCount,\r\n xs: 1\r\n };\r\n that._cachedColCountOptions.push({\r\n colCountByScreen: (0, _extend.extend)(baseColCountByScreen, options.colCountByScreen)\r\n });\r\n $element.appendTo($rootElement);\r\n var instance = that._createComponent($element, \"dxLayoutManager\", config);\r\n instance.on(\"autoColCountChanged\", function() {\r\n that._refresh()\r\n });\r\n that._cachedLayoutManagers.push(instance);\r\n return instance\r\n },\r\n _getValidationGroup: function() {\r\n return this.option(\"validationGroup\") || this\r\n },\r\n _getLayoutManagerConfig: function(items, options) {\r\n var _this2 = this;\r\n var baseConfig = {\r\n form: this,\r\n isRoot: options.isRoot,\r\n validationGroup: this._getValidationGroup(),\r\n showRequiredMark: this.option(\"showRequiredMark\"),\r\n showOptionalMark: this.option(\"showOptionalMark\"),\r\n requiredMark: this.option(\"requiredMark\"),\r\n optionalMark: this.option(\"optionalMark\"),\r\n requiredMessage: this.option(\"requiredMessage\"),\r\n screenByWidth: this.option(\"screenByWidth\"),\r\n layoutData: this.option(\"formData\"),\r\n labelLocation: this.option(\"labelLocation\"),\r\n customizeItem: this.option(\"customizeItem\"),\r\n minColWidth: this.option(\"minColWidth\"),\r\n showColonAfterLabel: this.option(\"showColonAfterLabel\"),\r\n onEditorEnterKey: this.option(\"onEditorEnterKey\"),\r\n onFieldDataChanged: function(args) {\r\n if (!_this2._isDataUpdating) {\r\n _this2._triggerOnFieldDataChanged(args)\r\n }\r\n },\r\n validationBoundary: this.option(\"scrollingEnabled\") ? this.$element() : void 0\r\n };\r\n return (0, _extend.extend)(baseConfig, {\r\n items: items,\r\n onContentReady: function(args) {\r\n _this2._itemsRunTimeInfo.addItemsOrExtendFrom(args.component._itemsRunTimeInfo);\r\n options.onContentReady && options.onContentReady(args)\r\n },\r\n onDisposing: function(_ref2) {\r\n var component = _ref2.component;\r\n var nestedItemsRunTimeInfo = component.getItemsRunTimeInfo();\r\n _this2._itemsRunTimeInfo.removeItemsByItems(nestedItemsRunTimeInfo)\r\n },\r\n colCount: options.colCount,\r\n alignItemLabels: options.alignItemLabels,\r\n cssItemClass: options.cssItemClass,\r\n colCountByScreen: options.colCountByScreen,\r\n onLayoutChanged: options.onLayoutChanged,\r\n width: options.width\r\n })\r\n },\r\n _createComponent: function($element, type, config) {\r\n var that = this;\r\n config = config || {};\r\n that._extendConfig(config, {\r\n readOnly: that.option(\"readOnly\")\r\n });\r\n return that.callBase($element, type, config)\r\n },\r\n _attachSyncSubscriptions: function() {\r\n var that = this;\r\n that.on(\"optionChanged\", function(args) {\r\n var optionFullName = args.fullName;\r\n if (\"formData\" === optionFullName) {\r\n if (!(0, _type.isDefined)(args.value)) {\r\n that._options.silent(\"formData\", args.value = {})\r\n }\r\n that._triggerOnFieldDataChangedByDataSet(args.value)\r\n }\r\n if (that._cachedLayoutManagers.length) {\r\n (0, _iterator.each)(that._cachedLayoutManagers, function(index, layoutManager) {\r\n if (\"formData\" === optionFullName) {\r\n that._isDataUpdating = true;\r\n layoutManager.option(\"layoutData\", args.value);\r\n that._isDataUpdating = false\r\n }\r\n if (\"readOnly\" === args.name || \"disabled\" === args.name) {\r\n layoutManager.option(optionFullName, args.value)\r\n }\r\n })\r\n }\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n var rootNameOfComplexOption = this._getRootLevelOfExpectedComplexOption(args.fullName, [\"formData\", \"items\"]);\r\n if (rootNameOfComplexOption) {\r\n this._customHandlerOfComplexOption(args, rootNameOfComplexOption);\r\n return\r\n }\r\n switch (args.name) {\r\n case \"formData\":\r\n if (!this.option(\"items\")) {\r\n this._invalidate()\r\n } else {\r\n if ((0, _type.isEmptyObject)(args.value)) {\r\n this._resetValues()\r\n }\r\n }\r\n break;\r\n case \"items\":\r\n case \"colCount\":\r\n case \"onFieldDataChanged\":\r\n case \"onEditorEnterKey\":\r\n case \"labelLocation\":\r\n case \"alignItemLabels\":\r\n case \"showColonAfterLabel\":\r\n case \"customizeItem\":\r\n case \"alignItemLabelsInAllGroups\":\r\n case \"showRequiredMark\":\r\n case \"showOptionalMark\":\r\n case \"requiredMark\":\r\n case \"optionalMark\":\r\n case \"requiredMessage\":\r\n case \"scrollingEnabled\":\r\n case \"formID\":\r\n case \"colCountByScreen\":\r\n case \"screenByWidth\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n case \"showValidationSummary\":\r\n this._renderValidationSummary();\r\n break;\r\n case \"minColWidth\":\r\n if (\"auto\" === this.option(\"colCount\")) {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"alignRootItemLabels\":\r\n case \"readOnly\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._rootLayoutManager.option(args.name, args.value);\r\n this._alignLabels(this._rootLayoutManager, this._rootLayoutManager.isSingleColumnMode());\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (args.value) {\r\n (0, _visibility_change.triggerShownEvent)(this.$element())\r\n }\r\n break;\r\n case \"validationGroup\":\r\n _validation_engine.default.removeGroup(args.previousValue || this);\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getRootLevelOfExpectedComplexOption: function(fullOptionName, expectedRootNames) {\r\n var splitFullName = fullOptionName.split(\".\");\r\n var result;\r\n if (splitFullName.length > 1) {\r\n var i;\r\n var rootOptionName = splitFullName[0];\r\n for (i = 0; i < expectedRootNames.length; i++) {\r\n if (rootOptionName.search(expectedRootNames[i]) !== -1) {\r\n result = expectedRootNames[i]\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n _tryCreateItemOptionAction: function(optionName, item, value, previousValue, itemPath) {\r\n if (\"tabs\" === optionName) {\r\n this._itemsRunTimeInfo.removeItemsByPathStartWith(\"\".concat(itemPath, \".tabs\"));\r\n value = this._prepareItems(value, true, itemPath, true)\r\n }\r\n return (0, _uiForm2.default)(optionName, {\r\n item: item,\r\n value: value,\r\n previousValue: previousValue,\r\n itemsRunTimeInfo: this._itemsRunTimeInfo\r\n })\r\n },\r\n _tryExecuteItemOptionAction: function(action) {\r\n return action && action.tryExecute()\r\n },\r\n _updateValidationGroupAndSummaryIfNeeded: function(fullName) {\r\n var optionName = (0, _uiForm4.getOptionNameFromFullName)(fullName);\r\n if (ITEM_OPTIONS_FOR_VALIDATION_UPDATING.indexOf(optionName) > -1) {\r\n _validation_engine.default.addGroup(this._getValidationGroup());\r\n if (this.option(\"showValidationSummary\")) {\r\n this._validationSummary && this._validationSummary._initGroupRegistration()\r\n }\r\n }\r\n },\r\n _setLayoutManagerItemOption: function(layoutManager, optionName, value, path) {\r\n var _this3 = this;\r\n if (this._updateLockCount > 0) {\r\n !layoutManager._updateLockCount && layoutManager.beginUpdate();\r\n var key = this._itemsRunTimeInfo.getKeyByPath(path);\r\n this.postponedOperations.add(key, function() {\r\n !layoutManager._disposed && layoutManager.endUpdate();\r\n return (new _deferred.Deferred).resolve()\r\n })\r\n }\r\n var contentReadyHandler = function contentReadyHandler(e) {\r\n e.component.off(\"contentReady\", contentReadyHandler);\r\n if ((0, _uiForm4.isFullPathContainsTabs)(path)) {\r\n var tabPath = (0, _uiForm4.tryGetTabPath)(path);\r\n var tabLayoutManager = _this3._itemsRunTimeInfo.getGroupOrTabLayoutManagerByPath(tabPath);\r\n _this3._alignLabelsInColumn({\r\n items: tabLayoutManager.option(\"items\"),\r\n layoutManager: tabLayoutManager,\r\n $container: tabLayoutManager.$element(),\r\n inOneColumn: tabLayoutManager.isSingleColumnMode()\r\n })\r\n } else {\r\n _this3._alignLabels(_this3._rootLayoutManager, _this3._rootLayoutManager.isSingleColumnMode())\r\n }\r\n };\r\n layoutManager.on(\"contentReady\", contentReadyHandler);\r\n layoutManager.option(optionName, value);\r\n this._updateValidationGroupAndSummaryIfNeeded(optionName)\r\n },\r\n _tryChangeLayoutManagerItemOption: function(fullName, value) {\r\n var nameParts = fullName.split(\".\");\r\n var optionName = (0, _uiForm4.getOptionNameFromFullName)(fullName);\r\n if (\"items\" === optionName && nameParts.length > 1) {\r\n var itemPath = this._getItemPath(nameParts);\r\n var layoutManager = this._itemsRunTimeInfo.getGroupOrTabLayoutManagerByPath(itemPath);\r\n if (layoutManager) {\r\n this._itemsRunTimeInfo.removeItemsByItems(layoutManager.getItemsRunTimeInfo());\r\n var items = this._prepareItems(value, false, itemPath);\r\n this._setLayoutManagerItemOption(layoutManager, optionName, items, itemPath);\r\n return true\r\n }\r\n } else {\r\n if (nameParts.length > 2) {\r\n var endPartIndex = nameParts.length - 2;\r\n var _itemPath = this._getItemPath(nameParts.slice(0, endPartIndex));\r\n var _layoutManager = this._itemsRunTimeInfo.getGroupOrTabLayoutManagerByPath(_itemPath);\r\n if (_layoutManager) {\r\n var fullOptionName = (0, _uiForm4.getFullOptionName)(nameParts[endPartIndex], optionName);\r\n if (\"editorType\" === optionName) {\r\n if (_layoutManager.option(fullOptionName) !== value) {\r\n return false\r\n }\r\n }\r\n if (\"visible\" === optionName) {\r\n var formItems = this.option((0, _uiForm4.getFullOptionName)(_itemPath, \"items\"));\r\n if (formItems && formItems.length) {\r\n var layoutManagerItems = _layoutManager.option(\"items\");\r\n formItems.forEach(function(item, index) {\r\n var layoutItem = layoutManagerItems[index];\r\n layoutItem.visibleIndex = item.visibleIndex\r\n })\r\n }\r\n }\r\n this._setLayoutManagerItemOption(_layoutManager, fullOptionName, value, _itemPath);\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n },\r\n _tryChangeLayoutManagerItemOptions: function(itemPath, options) {\r\n var _this4 = this;\r\n var result;\r\n this.beginUpdate();\r\n (0, _iterator.each)(options, function(optionName, optionValue) {\r\n result = _this4._tryChangeLayoutManagerItemOption((0, _uiForm4.getFullOptionName)(itemPath, optionName), optionValue);\r\n if (!result) {\r\n return false\r\n }\r\n });\r\n this.endUpdate();\r\n return result\r\n },\r\n _customHandlerOfComplexOption: function(args, rootOptionName) {\r\n var nameParts = args.fullName.split(\".\");\r\n var value = args.value;\r\n if (\"items\" === rootOptionName) {\r\n var itemPath = this._getItemPath(nameParts);\r\n var item = this.option(itemPath);\r\n var optionNameWithoutPath = args.fullName.replace(itemPath + \".\", \"\");\r\n var simpleOptionName = optionNameWithoutPath.split(\".\")[0].replace(/\\[\\d+]/, \"\");\r\n var itemAction = this._tryCreateItemOptionAction(simpleOptionName, item, item[simpleOptionName], args.previousValue, itemPath);\r\n if (!this._tryExecuteItemOptionAction(itemAction) && !this._tryChangeLayoutManagerItemOption(args.fullName, value)) {\r\n if (item) {\r\n this._changeItemOption(item, optionNameWithoutPath, value);\r\n var items = this._generateItemsFromData(this.option(\"items\"));\r\n this.option(\"items\", items)\r\n }\r\n }\r\n }\r\n if (\"formData\" === rootOptionName) {\r\n var dataField = nameParts.slice(1).join(\".\");\r\n var editor = this.getEditor(dataField);\r\n if (editor) {\r\n editor.option(\"value\", value)\r\n } else {\r\n this._triggerOnFieldDataChanged({\r\n dataField: dataField,\r\n value: value\r\n })\r\n }\r\n }\r\n },\r\n _getItemPath: function(nameParts) {\r\n var itemPath = nameParts[0];\r\n var i;\r\n for (i = 1; i < nameParts.length; i++) {\r\n if (nameParts[i].search(/items\\[\\d+]|tabs\\[\\d+]/) !== -1) {\r\n itemPath += \".\" + nameParts[i]\r\n } else {\r\n break\r\n }\r\n }\r\n return itemPath\r\n },\r\n _triggerOnFieldDataChanged: function(args) {\r\n this._createActionByOption(\"onFieldDataChanged\")(args)\r\n },\r\n _triggerOnFieldDataChangedByDataSet: function(data) {\r\n var that = this;\r\n if (data && (0, _type.isObject)(data)) {\r\n (0, _iterator.each)(data, function(dataField, value) {\r\n that._triggerOnFieldDataChanged({\r\n dataField: dataField,\r\n value: value\r\n })\r\n })\r\n }\r\n },\r\n _updateFieldValue: function(dataField, value) {\r\n if ((0, _type.isDefined)(this.option(\"formData\"))) {\r\n var editor = this.getEditor(dataField);\r\n this.option(\"formData.\" + dataField, value);\r\n if (editor) {\r\n var editorValue = editor.option(\"value\");\r\n if (editorValue !== value) {\r\n editor.option(\"value\", value)\r\n }\r\n }\r\n }\r\n },\r\n _generateItemsFromData: function(items) {\r\n var formData = this.option(\"formData\");\r\n var result = [];\r\n if (!items && (0, _type.isDefined)(formData)) {\r\n (0, _iterator.each)(formData, function(dataField) {\r\n result.push({\r\n dataField: dataField\r\n })\r\n })\r\n }\r\n if (items) {\r\n (0, _iterator.each)(items, function(index, item) {\r\n if ((0, _type.isObject)(item)) {\r\n result.push(item)\r\n } else {\r\n result.push({\r\n dataField: item\r\n })\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _getItemByField: function(field, items) {\r\n var that = this;\r\n var fieldParts = (0, _type.isObject)(field) ? field : that._getFieldParts(field);\r\n var fieldName = fieldParts.fieldName;\r\n var fieldPath = fieldParts.fieldPath;\r\n var resultItem;\r\n if (items.length) {\r\n (0, _iterator.each)(items, function(index, item) {\r\n var itemType = item.itemType;\r\n if (fieldPath.length) {\r\n var path = fieldPath.slice();\r\n item = that._getItemByFieldPath(path, fieldName, item)\r\n } else {\r\n if (\"group\" === itemType && !(item.caption || item.name) || \"tabbed\" === itemType && !item.name) {\r\n var subItemsField = that._getSubItemField(itemType);\r\n item.items = that._generateItemsFromData(item.items);\r\n item = that._getItemByField({\r\n fieldName: fieldName,\r\n fieldPath: fieldPath\r\n }, item[subItemsField])\r\n }\r\n }\r\n if ((0, _uiForm4.isExpectedItem)(item, fieldName)) {\r\n resultItem = item;\r\n return false\r\n }\r\n })\r\n }\r\n return resultItem\r\n },\r\n _getFieldParts: function(field) {\r\n var fieldSeparator = \".\";\r\n var fieldName = field;\r\n var separatorIndex = fieldName.indexOf(fieldSeparator);\r\n var resultPath = [];\r\n while (separatorIndex !== -1) {\r\n resultPath.push(fieldName.substr(0, separatorIndex));\r\n fieldName = fieldName.substr(separatorIndex + 1);\r\n separatorIndex = fieldName.indexOf(fieldSeparator)\r\n }\r\n return {\r\n fieldName: fieldName,\r\n fieldPath: resultPath.reverse()\r\n }\r\n },\r\n _getItemByFieldPath: function(path, fieldName, item) {\r\n var that = this;\r\n var itemType = item.itemType;\r\n var subItemsField = that._getSubItemField(itemType);\r\n var isItemWithSubItems = \"group\" === itemType || \"tabbed\" === itemType || item.title;\r\n var result;\r\n do {\r\n if (isItemWithSubItems) {\r\n var name = item.name || item.caption || item.title;\r\n var isGroupWithName = (0, _type.isDefined)(name);\r\n var nameWithoutSpaces = (0, _uiForm4.getTextWithoutSpaces)(name);\r\n var pathNode = void 0;\r\n item[subItemsField] = that._generateItemsFromData(item[subItemsField]);\r\n if (isGroupWithName) {\r\n pathNode = path.pop()\r\n }\r\n if (!path.length) {\r\n result = that._getItemByField(fieldName, item[subItemsField]);\r\n if (result) {\r\n break\r\n }\r\n }\r\n if (!isGroupWithName || isGroupWithName && nameWithoutSpaces === pathNode) {\r\n if (path.length) {\r\n result = that._searchItemInEverySubItem(path, fieldName, item[subItemsField])\r\n }\r\n }\r\n } else {\r\n break\r\n }\r\n } while (path.length && !(0, _type.isDefined)(result));\r\n return result\r\n },\r\n _getSubItemField: function(itemType) {\r\n return \"tabbed\" === itemType ? \"tabs\" : \"items\"\r\n },\r\n _searchItemInEverySubItem: function(path, fieldName, items) {\r\n var that = this;\r\n var result;\r\n (0, _iterator.each)(items, function(index, groupItem) {\r\n result = that._getItemByFieldPath(path.slice(), fieldName, groupItem);\r\n if (result) {\r\n return false\r\n }\r\n });\r\n if (!result) {\r\n result = false\r\n }\r\n return result\r\n },\r\n _changeItemOption: function(item, option, value) {\r\n if ((0, _type.isObject)(item)) {\r\n item[option] = value\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n var currentScreenFactor = this._getCurrentScreenFactor();\r\n if (this._lastMarkupScreenFactor !== currentScreenFactor) {\r\n if (this._isColCountChanged(this._lastMarkupScreenFactor, currentScreenFactor)) {\r\n this._targetScreenFactor = currentScreenFactor;\r\n this._refresh();\r\n this._targetScreenFactor = void 0\r\n }\r\n this._lastMarkupScreenFactor = currentScreenFactor\r\n }\r\n },\r\n _isColCountChanged: function(oldScreenSize, newScreenSize) {\r\n var isChanged = false;\r\n (0, _iterator.each)(this._cachedColCountOptions, function(index, item) {\r\n if (item.colCountByScreen[oldScreenSize] !== item.colCountByScreen[newScreenSize]) {\r\n isChanged = true;\r\n return false\r\n }\r\n });\r\n return isChanged\r\n },\r\n _refresh: function() {\r\n var editorSelector = \".\" + FOCUSED_STATE_CLASS + \" input, .\" + FOCUSED_STATE_CLASS + \" textarea\";\r\n _events_engine.default.trigger(this.$element().find(editorSelector), \"change\");\r\n this.callBase()\r\n },\r\n _resetValues: function() {\r\n this._itemsRunTimeInfo.each(function(_, itemRunTimeInfo) {\r\n if ((0, _type.isDefined)(itemRunTimeInfo.widgetInstance) && itemRunTimeInfo.widgetInstance instanceof _editor.default) {\r\n itemRunTimeInfo.widgetInstance.reset();\r\n itemRunTimeInfo.widgetInstance.option(\"isValid\", true)\r\n }\r\n });\r\n _validation_engine.default.resetGroup(this._getValidationGroup())\r\n },\r\n _updateData: function(data, value, isComplexData) {\r\n var that = this;\r\n var _data = isComplexData ? value : data;\r\n if ((0, _type.isObject)(_data)) {\r\n (0, _iterator.each)(_data, function(dataField, fieldValue) {\r\n that._updateData(isComplexData ? data + \".\" + dataField : dataField, fieldValue, (0, _type.isObject)(fieldValue))\r\n })\r\n } else {\r\n if ((0, _type.isString)(data)) {\r\n that._updateFieldValue(data, value)\r\n }\r\n }\r\n },\r\n registerKeyHandler: function(key, handler) {\r\n this.callBase(key, handler);\r\n this._itemsRunTimeInfo.each(function(_, itemRunTimeInfo) {\r\n if ((0, _type.isDefined)(itemRunTimeInfo.widgetInstance)) {\r\n itemRunTimeInfo.widgetInstance.registerKeyHandler(key, handler)\r\n }\r\n })\r\n },\r\n _focusTarget: function() {\r\n return this.$element().find(\".\" + _constants.FIELD_ITEM_CONTENT_CLASS + \" [tabindex]\").first()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible && _browser.default.msie) {\r\n this._refresh()\r\n }\r\n },\r\n _dispose: function() {\r\n _validation_engine.default.removeGroup(this._getValidationGroup());\r\n this.callBase()\r\n },\r\n resetValues: function() {\r\n this._resetValues()\r\n },\r\n updateData: function(data, value) {\r\n this._updateData(data, value)\r\n },\r\n getEditor: function(dataField) {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByDataField(dataField) || this._itemsRunTimeInfo.findWidgetInstanceByName(dataField)\r\n },\r\n getButton: function(name) {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByName(name);\r\n },\r\n updateDimensions: function() {\r\n var that = this;\r\n var deferred = new _deferred.Deferred;\r\n if (that._scrollable) {\r\n that._scrollable.update().done(function() {\r\n deferred.resolveWith(that)\r\n })\r\n } else {\r\n deferred.resolveWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n itemOption: function(id, option, value) {\r\n var _this5 = this;\r\n var items = this._generateItemsFromData(this.option(\"items\"));\r\n var item = this._getItemByField(id, items);\r\n var path = (0, _uiForm4.getItemPath)(items, item);\r\n if (!item) {\r\n return\r\n }\r\n switch (arguments.length) {\r\n case 1:\r\n return item;\r\n case 3:\r\n var itemAction = this._tryCreateItemOptionAction(option, item, value, item[option], path);\r\n this._changeItemOption(item, option, value);\r\n var fullName = (0, _uiForm4.getFullOptionName)(path, option);\r\n if (!this._tryExecuteItemOptionAction(itemAction) && !this._tryChangeLayoutManagerItemOption(fullName, value)) {\r\n this.option(\"items\", items)\r\n }\r\n break;\r\n default:\r\n if ((0, _type.isObject)(option)) {\r\n if (!this._tryChangeLayoutManagerItemOptions(path, option)) {\r\n var allowUpdateItems;\r\n (0, _iterator.each)(option, function(optionName, optionValue) {\r\n var itemAction = _this5._tryCreateItemOptionAction(optionName, item, optionValue, item[optionName], path);\r\n _this5._changeItemOption(item, optionName, optionValue);\r\n if (!allowUpdateItems && !_this5._tryExecuteItemOptionAction(itemAction)) {\r\n allowUpdateItems = true\r\n }\r\n });\r\n allowUpdateItems && this.option(\"items\", items)\r\n }\r\n }\r\n }\r\n },\r\n validate: function() {\r\n return _validation_engine.default.validateGroup(this._getValidationGroup())\r\n },\r\n getItemID: function(name) {\r\n return \"dx_\" + this.option(\"formID\") + \"_\" + (name || new _guid.default)\r\n },\r\n getTargetScreenFactor: function() {\r\n return this._targetScreenFactor\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxForm\", Form);\r\nvar _default = Form;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/drop_down_menu.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 _window = require(\"../core/utils/window\");\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"./widget/ui.widget\"));\r\nvar _button = _interopRequireDefault(require(\"./button\"));\r\nvar _popover = _interopRequireDefault(require(\"./popover\"));\r\nvar _data_helper = _interopRequireDefault(require(\"../data_helper\"));\r\nvar _list = _interopRequireDefault(require(\"./list\"));\r\nvar _themes = require(\"./themes\");\r\nvar _child_default_template = require(\"../core/templates/child_default_template\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar DROP_DOWN_MENU_CLASS = \"dx-dropdownmenu\";\r\nvar DROP_DOWN_MENU_POPUP_CLASS = \"dx-dropdownmenu-popup\";\r\nvar DROP_DOWN_MENU_POPUP_WRAPPER_CLASS = \"dx-dropdownmenu-popup-wrapper\";\r\nvar DROP_DOWN_MENU_LIST_CLASS = \"dx-dropdownmenu-list\";\r\nvar DROP_DOWN_MENU_BUTTON_CLASS = \"dx-dropdownmenu-button\";\r\nvar POPUP_OPTION_MAP = {\r\n popupWidth: \"width\",\r\n popupHeight: \"height\",\r\n popupMaxHeight: \"maxHeight\",\r\n popupAutoResizeEnabled: \"autoResizeEnabled\"\r\n};\r\nvar BUTTON_OPTION_MAP = {\r\n buttonIcon: \"icon\",\r\n buttonText: \"text\",\r\n buttonWidth: \"width\",\r\n buttonHeight: \"height\",\r\n buttonTemplate: \"template\"\r\n};\r\nvar DropDownMenu = _ui.default.inherit({\r\n _supportedKeys: function() {\r\n var extension = {};\r\n if (!this.option(\"opened\") || !this._list.option(\"focusedElement\")) {\r\n extension = this._button._supportedKeys()\r\n }\r\n return (0, _extend.extend)(this.callBase(), extension, {\r\n tab: function() {\r\n this._popup && this._popup.hide()\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n items: [],\r\n onItemClick: null,\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n buttonText: \"\",\r\n buttonIcon: \"overflow\",\r\n buttonWidth: void 0,\r\n buttonHeight: void 0,\r\n buttonTemplate: \"content\",\r\n onButtonClick: null,\r\n usePopover: false,\r\n popupWidth: \"auto\",\r\n popupHeight: \"auto\",\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n opened: false,\r\n selectionMode: \"none\",\r\n selectedItemKeys: [],\r\n deferRendering: false,\r\n popupPosition: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit flip\",\r\n offset: {\r\n v: 1\r\n }\r\n },\r\n popupAnimation: void 0,\r\n onItemRendered: null,\r\n menuWidget: _list.default,\r\n popupMaxHeight: void 0,\r\n closeOnClick: true,\r\n useInkRipple: false,\r\n container: void 0,\r\n popupAutoResizeEnabled: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n usePopover: true\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: 4\r\n }\r\n }\r\n }\r\n }, {\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: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n popupPosition: {\r\n my: \"top \" + (this.option(\"rtlEnabled\") ? \"left\" : \"right\"),\r\n at: \"top \" + (this.option(\"rtlEnabled\") ? \"left\" : \"right\"),\r\n collision: \"flipfit\"\r\n },\r\n popupAnimation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 0\r\n },\r\n to: {\r\n scale: 1\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 1\r\n },\r\n to: {\r\n scale: 0\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return (0, _themes.isMaterial)()\r\n },\r\n options: {\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n if (\"android\" === _devices.default.current().platform) {\r\n if (!options.popupPosition) {\r\n options.popupPosition = {\r\n at: (options.usePopover ? \"bottom \" : \"top \") + (options.rtlEnabled ? \"left\" : \"right\")\r\n }\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_MENU_CLASS);\r\n this._initDataSource();\r\n this._initItemClickAction();\r\n this._initButtonClickAction()\r\n },\r\n _initItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initButtonClickAction: function() {\r\n this._buttonClickAction = this._createActionByOption(\"onButtonClick\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new _child_default_template.ChildDefaultTemplate(\"content\")\r\n });\r\n this.callBase()\r\n },\r\n _initMarkup: function() {\r\n this._renderButton();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.setAria({\r\n role: \"menubar\",\r\n haspopup: true,\r\n expanded: this.option(\"opened\")\r\n })\r\n },\r\n _renderContentImpl: function() {\r\n if (this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n if (this._popup) {\r\n this._popup.$element().remove();\r\n delete this._$popup\r\n }\r\n },\r\n _renderButton: function() {\r\n var $button = this.$element().addClass(DROP_DOWN_MENU_BUTTON_CLASS);\r\n var config = this._buttonOptions();\r\n this._button = this._createComponent($button, _button.default, config)\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this._button._toggleActiveState($element, value, e)\r\n },\r\n _buttonOptions: function() {\r\n return {\r\n text: this.option(\"buttonText\"),\r\n icon: this.option(\"buttonIcon\"),\r\n width: this.option(\"buttonWidth\"),\r\n height: this.option(\"buttonHeight\"),\r\n useInkRipple: this.option(\"useInkRipple\"),\r\n template: this.option(\"buttonTemplate\"),\r\n focusStateEnabled: false,\r\n onClick: function(e) {\r\n this.option(\"opened\", !this.option(\"opened\"));\r\n this._buttonClickAction(e)\r\n }.bind(this)\r\n }\r\n },\r\n _toggleMenuVisibility: function(opened) {\r\n var state = void 0 === opened ? !this._popup.option(\"visible\") : opened;\r\n if (opened) {\r\n this._renderPopup()\r\n }\r\n this._popup.toggle(state);\r\n this.setAria(\"expanded\", state)\r\n },\r\n _renderPopup: function() {\r\n if (this._$popup) {\r\n return\r\n }\r\n var $popup = this._$popup = (0, _renderer.default)(\"
\").appendTo(this.$element());\r\n var config = this._popupOptions();\r\n this._popup = this._createComponent($popup, _popover.default, config)\r\n },\r\n _popupOptions: function() {\r\n var usePopup = !this.option(\"usePopover\");\r\n return {\r\n onInitialized: function(args) {\r\n args.component._wrapper().addClass(DROP_DOWN_MENU_POPUP_WRAPPER_CLASS).toggleClass(DROP_DOWN_MENU_POPUP_CLASS, usePopup)\r\n },\r\n visible: this.option(\"opened\"),\r\n deferRendering: false,\r\n contentTemplate: function(contentElement) {\r\n this._renderList(contentElement)\r\n }.bind(this),\r\n position: this.option(\"popupPosition\"),\r\n animation: this.option(\"popupAnimation\"),\r\n onOptionChanged: function(args) {\r\n if (\"visible\" === args.name) {\r\n this.option(\"opened\", args.value)\r\n }\r\n }.bind(this),\r\n target: this.$element(),\r\n height: this.option(\"popupHeight\"),\r\n width: this.option(\"popupWidth\"),\r\n maxHeight: this.option(\"popupMaxHeight\"),\r\n container: this.option(\"container\"),\r\n autoResizeEnabled: this.option(\"popupAutoResizeEnabled\")\r\n }\r\n },\r\n _renderList: function(contentElement) {\r\n var $content = (0, _renderer.default)(contentElement);\r\n var listConfig = this._listOptions();\r\n $content.addClass(DROP_DOWN_MENU_LIST_CLASS);\r\n this._list = this._createComponent($content, this.option(\"menuWidget\"), listConfig);\r\n this._list._getAriaTarget = function() {\r\n return this.$element()\r\n }.bind(this);\r\n this._setListDataSource();\r\n var listMaxHeight = .5 * (0, _renderer.default)(window).height();\r\n if ($content.height() > listMaxHeight) {\r\n $content.height(listMaxHeight)\r\n }\r\n },\r\n _listOptions: function() {\r\n return {\r\n pageLoadMode: \"scrollBottom\",\r\n indicateLoading: false,\r\n noDataText: \"\",\r\n selectionMode: this.option(\"selectionMode\"),\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n onItemClick: function(e) {\r\n if (this.option(\"closeOnClick\")) {\r\n this.option(\"opened\", false)\r\n }\r\n this._itemClickAction(e)\r\n }.bind(this),\r\n tabIndex: -1,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n }\r\n }\r\n },\r\n _setListDataSource: function() {\r\n if (this._list) {\r\n this._list.option(\"dataSource\", this._dataSource || this.option(\"items\"))\r\n }\r\n delete this._deferRendering\r\n },\r\n _getKeyboardListeners: function() {\r\n return this.callBase().concat([this._list])\r\n },\r\n _toggleVisibility: function(visible) {\r\n this.callBase(visible);\r\n this._button.option(\"visible\", visible)\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var value = args.value;\r\n switch (name) {\r\n case \"items\":\r\n case \"dataSource\":\r\n if (this.option(\"deferRendering\") && !this.option(\"opened\")) {\r\n this._deferRendering = true\r\n } else {\r\n this._refreshDataSource();\r\n this._setListDataSource()\r\n }\r\n break;\r\n case \"itemTemplate\":\r\n if (this._list) {\r\n this._list.option(name, this._getTemplate(value))\r\n }\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._buttonClickAction();\r\n break;\r\n case \"buttonIcon\":\r\n case \"buttonText\":\r\n case \"buttonWidth\":\r\n case \"buttonHeight\":\r\n case \"buttonTemplate\":\r\n this._button.option(BUTTON_OPTION_MAP[name], value);\r\n this._renderPopup();\r\n break;\r\n case \"popupWidth\":\r\n case \"popupHeight\":\r\n case \"popupMaxHeight\":\r\n case \"popupAutoResizeEnabled\":\r\n this._popup.option(POPUP_OPTION_MAP[name], value);\r\n break;\r\n case \"usePopover\":\r\n case \"menuWidget\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"focusStateEnabled\":\r\n case \"activeStateEnabled\":\r\n if (this._list) {\r\n this._list.option(name, value)\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"selectionMode\":\r\n case \"selectedItemKeys\":\r\n case \"onItemRendered\":\r\n if (this._list) {\r\n this._list.option(name, value)\r\n }\r\n break;\r\n case \"opened\":\r\n if (this._deferRendering) {\r\n this._refreshDataSource();\r\n this._setListDataSource()\r\n }\r\n this._toggleMenuVisibility(value);\r\n break;\r\n case \"deferRendering\":\r\n case \"popupPosition\":\r\n case \"closeOnClick\":\r\n break;\r\n case \"container\":\r\n this._popup && this._popup.option(args.name, args.value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n open: function() {\r\n this.option(\"opened\", true)\r\n },\r\n close: function() {\r\n this.option(\"opened\", false)\r\n }\r\n}).include(_data_helper.default);\r\n(0, _component_registrator.default)(\"dxDropDownMenu\", DropDownMenu);\r\nvar _default = DropDownMenu;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/validation/default_adapter.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 _class = _interopRequireDefault(require(\"../../core/class\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DefaultAdapter = _class.default.inherit({\r\n ctor: function(editor, validator) {\r\n var _this = this;\r\n this.editor = editor;\r\n this.validator = validator;\r\n this.validationRequestsCallbacks = [];\r\n var handler = function(args) {\r\n _this.validationRequestsCallbacks.forEach(function(item) {\r\n return item(args)\r\n })\r\n };\r\n editor.validationRequest.add(handler);\r\n editor.on(\"disposing\", function() {\r\n editor.validationRequest.remove(handler)\r\n })\r\n },\r\n getValue: function() {\r\n return this.editor.option(\"value\")\r\n },\r\n getCurrentValidationError: function() {\r\n return this.editor.option(\"validationError\")\r\n },\r\n bypass: function() {\r\n return this.editor.option(\"disabled\")\r\n },\r\n applyValidationResults: function(params) {\r\n this.editor.option({\r\n validationErrors: params.brokenRules,\r\n validationStatus: params.status\r\n })\r\n },\r\n reset: function() {\r\n this.editor.reset()\r\n },\r\n focus: function() {\r\n this.editor.focus()\r\n }\r\n});\r\nvar _default = DefaultAdapter;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/form/ui.form.utils.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.getItemPath = exports.isFullPathContainsTabs = exports.tryGetTabPath = exports.getOptionNameFromFullName = exports.getFullOptionName = exports.isExpectedItem = exports.getTextWithoutSpaces = exports.concatPaths = exports.createItemPathByIndex = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\nvar createItemPathByIndex = function(index, isTabs) {\r\n return \"\".concat(isTabs ? \"tabs\" : \"items\", \"[\").concat(index, \"]\")\r\n};\r\nexports.createItemPathByIndex = createItemPathByIndex;\r\nvar concatPaths = function(path1, path2) {\r\n if ((0, _type.isDefined)(path1) && (0, _type.isDefined)(path2)) {\r\n return \"\".concat(path1, \".\").concat(path2)\r\n }\r\n return path1 || path2\r\n};\r\nexports.concatPaths = concatPaths;\r\nvar getTextWithoutSpaces = function(text) {\r\n return text ? text.replace(/\\s/g, \"\") : void 0\r\n};\r\nexports.getTextWithoutSpaces = getTextWithoutSpaces;\r\nvar isExpectedItem = function(item, fieldName) {\r\n return item && (item.dataField === fieldName || item.name === fieldName || getTextWithoutSpaces(item.title) === fieldName || \"group\" === item.itemType && getTextWithoutSpaces(item.caption) === fieldName)\r\n};\r\nexports.isExpectedItem = isExpectedItem;\r\nvar getFullOptionName = function(path, optionName) {\r\n return \"\".concat(path, \".\").concat(optionName)\r\n};\r\nexports.getFullOptionName = getFullOptionName;\r\nvar getOptionNameFromFullName = function(fullName) {\r\n var parts = fullName.split(\".\");\r\n return parts[parts.length - 1].replace(/\\[\\d+]/, \"\")\r\n};\r\nexports.getOptionNameFromFullName = getOptionNameFromFullName;\r\nvar tryGetTabPath = function(fullPath) {\r\n var pathParts = fullPath.split(\".\");\r\n var resultPathParts = _toConsumableArray(pathParts);\r\n for (var i = pathParts.length - 1; i >= 0; i--) {\r\n if (isFullPathContainsTabs(pathParts[i])) {\r\n return resultPathParts.join(\".\")\r\n }\r\n resultPathParts.splice(i, 1)\r\n }\r\n return \"\"\r\n};\r\nexports.tryGetTabPath = tryGetTabPath;\r\nvar isFullPathContainsTabs = function(fullPath) {\r\n return fullPath.indexOf(\"tabs\") > -1\r\n};\r\nexports.isFullPathContainsTabs = isFullPathContainsTabs;\r\nvar getItemPath = function getItemPath(items, item, isTabs) {\r\n var index = items.indexOf(item);\r\n if (index > -1) {\r\n return createItemPathByIndex(index, isTabs)\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var targetItem = items[i];\r\n var tabOrGroupItems = targetItem.tabs || targetItem.items;\r\n if (tabOrGroupItems) {\r\n var itemPath = getItemPath(tabOrGroupItems, item, targetItem.tabs);\r\n if (itemPath) {\r\n return concatPaths(createItemPathByIndex(i, isTabs), itemPath)\r\n }\r\n }\r\n }\r\n};\r\nexports.getItemPath = getItemPath;\r\n","/**\r\n * DevExtreme (localization/ldml/date.formatter.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.getFormatter = void 0;\r\n\r\nfunction leftPad(text, length) {\r\n while (text.length < length) {\r\n text = \"0\" + text\r\n }\r\n return text\r\n}\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar LDML_FORMATTERS = {\r\n y: function(date, count, useUtc) {\r\n var year = date[useUtc ? \"getUTCFullYear\" : \"getFullYear\"]();\r\n if (2 === count) {\r\n year %= 100\r\n }\r\n return leftPad(year.toString(), count)\r\n },\r\n M: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"format\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n L: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"standalone\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n Q: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var quarter = Math.floor(month / 3);\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getQuarterNames(formatType)[quarter]\r\n }\r\n return leftPad((quarter + 1).toString(), Math.min(count, 2))\r\n },\r\n E: function(date, count, useUtc, dateParts) {\r\n var day = date[useUtc ? \"getUTCDay\" : \"getDay\"]();\r\n var formatType = FORMAT_TYPES[count < 3 ? 3 : count];\r\n return dateParts.getDayNames(formatType)[day]\r\n },\r\n a: function(date, count, useUtc, dateParts) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n var period = hours < 12 ? 0 : 1;\r\n var formatType = FORMAT_TYPES[count];\r\n return dateParts.getPeriodNames(formatType)[period]\r\n },\r\n d: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCDate\" : \"getDate\"]().toString(), Math.min(count, 2))\r\n },\r\n H: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCHours\" : \"getHours\"]().toString(), Math.min(count, 2))\r\n },\r\n h: function(date, count, useUtc) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n return leftPad((hours % 12 || 12).toString(), Math.min(count, 2))\r\n },\r\n m: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMinutes\" : \"getMinutes\"]().toString(), Math.min(count, 2))\r\n },\r\n s: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCSeconds\" : \"getSeconds\"]().toString(), Math.min(count, 2))\r\n },\r\n S: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMilliseconds\" : \"getMilliseconds\"]().toString(), 3).substr(0, count)\r\n },\r\n x: function(date, count, useUtc) {\r\n var timezoneOffset = useUtc ? 0 : date.getTimezoneOffset();\r\n var signPart = timezoneOffset > 0 ? \"-\" : \"+\";\r\n var timezoneOffsetAbs = Math.abs(timezoneOffset);\r\n var hours = Math.floor(timezoneOffsetAbs / 60);\r\n var minutes = timezoneOffsetAbs % 60;\r\n var hoursPart = leftPad(hours.toString(), 2);\r\n var minutesPart = leftPad(minutes.toString(), 2);\r\n return signPart + hoursPart + (count >= 3 ? \":\" : \"\") + (count > 1 || minutes ? minutesPart : \"\")\r\n },\r\n X: function(date, count, useUtc) {\r\n if (useUtc || !date.getTimezoneOffset()) {\r\n return \"Z\"\r\n }\r\n return LDML_FORMATTERS.x(date, count, useUtc)\r\n },\r\n Z: function(date, count, useUtc) {\r\n return LDML_FORMATTERS.X(date, count >= 5 ? 3 : 2, useUtc)\r\n }\r\n};\r\nvar getFormatter = function(format, dateParts) {\r\n return function(date) {\r\n var charIndex;\r\n var formatter;\r\n var char;\r\n var charCount = 0;\r\n var separator = \"'\";\r\n var isEscaping = false;\r\n var isCurrentCharEqualsNext;\r\n var result = \"\";\r\n if (!date) {\r\n return null\r\n }\r\n if (!format) {\r\n return date\r\n }\r\n var useUtc = \"Z\" === format[format.length - 1] || \"'Z'\" === format.slice(-3);\r\n for (charIndex = 0; charIndex < format.length; charIndex++) {\r\n char = format[charIndex];\r\n formatter = LDML_FORMATTERS[char];\r\n isCurrentCharEqualsNext = char === format[charIndex + 1];\r\n charCount++;\r\n if (!isCurrentCharEqualsNext) {\r\n if (formatter && !isEscaping) {\r\n result += formatter(date, charCount, useUtc, dateParts)\r\n }\r\n charCount = 0\r\n }\r\n if (char === separator && !isCurrentCharEqualsNext) {\r\n isEscaping = !isEscaping\r\n } else {\r\n if (isEscaping || !formatter) {\r\n result += char\r\n }\r\n }\r\n if (char === separator && isCurrentCharEqualsNext) {\r\n charIndex++\r\n }\r\n }\r\n return result\r\n }\r\n};\r\nexports.getFormatter = getFormatter;\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 (localization/cldr-data/first_day_of_week_data.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 _default = {\r\n \"af-NA\": 1,\r\n agq: 1,\r\n ak: 1,\r\n ar: 6,\r\n \"ar-EH\": 1,\r\n \"ar-ER\": 1,\r\n \"ar-KM\": 1,\r\n \"ar-LB\": 1,\r\n \"ar-MA\": 1,\r\n \"ar-MR\": 1,\r\n \"ar-PS\": 1,\r\n \"ar-SO\": 1,\r\n \"ar-SS\": 1,\r\n \"ar-TD\": 1,\r\n \"ar-TN\": 1,\r\n asa: 1,\r\n ast: 1,\r\n az: 1,\r\n \"az-Cyrl\": 1,\r\n bas: 1,\r\n be: 1,\r\n bem: 1,\r\n bez: 1,\r\n bg: 1,\r\n bm: 1,\r\n br: 1,\r\n bs: 1,\r\n \"bs-Cyrl\": 1,\r\n ca: 1,\r\n ce: 1,\r\n cgg: 1,\r\n ckb: 6,\r\n cs: 1,\r\n cy: 1,\r\n da: 1,\r\n de: 1,\r\n dje: 1,\r\n dsb: 1,\r\n dua: 1,\r\n dyo: 1,\r\n ee: 1,\r\n el: 1,\r\n \"en-001\": 1,\r\n \"en-AE\": 6,\r\n \"en-BI\": 1,\r\n \"en-MP\": 1,\r\n \"en-SD\": 6,\r\n eo: 1,\r\n es: 1,\r\n et: 1,\r\n eu: 1,\r\n ewo: 1,\r\n fa: 6,\r\n ff: 1,\r\n \"ff-Adlm\": 1,\r\n fi: 1,\r\n fo: 1,\r\n fr: 1,\r\n \"fr-DJ\": 6,\r\n \"fr-DZ\": 6,\r\n \"fr-SY\": 6,\r\n fur: 1,\r\n fy: 1,\r\n ga: 1,\r\n gd: 1,\r\n gl: 1,\r\n gsw: 1,\r\n gv: 1,\r\n ha: 1,\r\n hr: 1,\r\n hsb: 1,\r\n hu: 1,\r\n hy: 1,\r\n ia: 1,\r\n ig: 1,\r\n is: 1,\r\n it: 1,\r\n jgo: 1,\r\n jmc: 1,\r\n ka: 1,\r\n kab: 6,\r\n kde: 1,\r\n kea: 1,\r\n khq: 1,\r\n kk: 1,\r\n kkj: 1,\r\n kl: 1,\r\n \"ko-KP\": 1,\r\n ksb: 1,\r\n ksf: 1,\r\n ksh: 1,\r\n ku: 1,\r\n kw: 1,\r\n ky: 1,\r\n lag: 1,\r\n lb: 1,\r\n lg: 1,\r\n ln: 1,\r\n lrc: 6,\r\n lt: 1,\r\n lu: 1,\r\n lv: 1,\r\n \"mas-TZ\": 1,\r\n mfe: 1,\r\n mg: 1,\r\n mgo: 1,\r\n mi: 1,\r\n mk: 1,\r\n mn: 1,\r\n ms: 1,\r\n mua: 1,\r\n mzn: 6,\r\n naq: 1,\r\n nb: 1,\r\n nds: 1,\r\n nl: 1,\r\n nmg: 1,\r\n nn: 1,\r\n nnh: 1,\r\n nus: 1,\r\n nyn: 1,\r\n os: 1,\r\n pcm: 1,\r\n pl: 1,\r\n ps: 6,\r\n \"pt-AO\": 1,\r\n \"pt-CH\": 1,\r\n \"pt-CV\": 1,\r\n \"pt-GQ\": 1,\r\n \"pt-GW\": 1,\r\n \"pt-LU\": 1,\r\n \"pt-ST\": 1,\r\n \"pt-TL\": 1,\r\n \"qu-BO\": 1,\r\n \"qu-EC\": 1,\r\n rm: 1,\r\n rn: 1,\r\n ro: 1,\r\n rof: 1,\r\n ru: 1,\r\n rw: 1,\r\n rwk: 1,\r\n sah: 1,\r\n sbp: 1,\r\n se: 1,\r\n ses: 1,\r\n sg: 1,\r\n shi: 1,\r\n \"shi-Latn\": 1,\r\n si: 1,\r\n sk: 1,\r\n sl: 1,\r\n smn: 1,\r\n so: 1,\r\n \"so-DJ\": 6,\r\n sq: 1,\r\n sr: 1,\r\n \"sr-Latn\": 1,\r\n sv: 1,\r\n sw: 1,\r\n \"ta-LK\": 1,\r\n \"ta-MY\": 1,\r\n teo: 1,\r\n tg: 1,\r\n \"ti-ER\": 1,\r\n tk: 1,\r\n to: 1,\r\n tr: 1,\r\n tt: 1,\r\n twq: 1,\r\n tzm: 1,\r\n uk: 1,\r\n uz: 1,\r\n \"uz-Arab\": 6,\r\n \"uz-Cyrl\": 1,\r\n vai: 1,\r\n \"vai-Latn\": 1,\r\n vi: 1,\r\n vun: 1,\r\n wae: 1,\r\n wo: 1,\r\n xog: 1,\r\n yav: 1,\r\n yi: 1,\r\n yo: 1,\r\n zgh: 1\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/form/ui.form.items_runtime_info.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 _guid = _interopRequireDefault(require(\"../../core/guid\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\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 FormItemsRunTimeInfo = function() {\r\n function FormItemsRunTimeInfo() {\r\n this._map = {}\r\n }\r\n var _proto = FormItemsRunTimeInfo.prototype;\r\n _proto._findWidgetInstance = function(condition) {\r\n var result;\r\n (0, _iterator.each)(this._map, function(guid, _ref) {\r\n var widgetInstance = _ref.widgetInstance,\r\n item = _ref.item;\r\n if (condition(item)) {\r\n result = widgetInstance;\r\n return false\r\n }\r\n });\r\n return result\r\n };\r\n _proto._findFieldByCondition = function(callback, valueExpr) {\r\n var result;\r\n (0, _iterator.each)(this._map, function(key, value) {\r\n if (callback(value)) {\r\n result = \"guid\" === valueExpr ? key : value[valueExpr];\r\n return false\r\n }\r\n });\r\n return result\r\n };\r\n _proto.clear = function() {\r\n this._map = {}\r\n };\r\n _proto.removeItemsByItems = function(itemsRunTimeInfo) {\r\n var _this = this;\r\n (0, _iterator.each)(itemsRunTimeInfo.getItems(), function(guid) {\r\n return _this.removeItemByKey(guid)\r\n })\r\n };\r\n _proto.removeItemByKey = function(key) {\r\n delete this._map[key]\r\n };\r\n _proto.add = function(options) {\r\n var key = options.guid || new _guid.default;\r\n this._map[key] = options;\r\n return key\r\n };\r\n _proto.addItemsOrExtendFrom = function(itemsRunTimeInfo) {\r\n var _this2 = this;\r\n itemsRunTimeInfo.each(function(key, itemRunTimeInfo) {\r\n if (_this2._map[key]) {\r\n if (itemRunTimeInfo.widgetInstance) {\r\n _this2._map[key].widgetInstance = itemRunTimeInfo.widgetInstance\r\n }\r\n _this2._map[key].$itemContainer = itemRunTimeInfo.$itemContainer\r\n } else {\r\n _this2.add({\r\n item: itemRunTimeInfo.item,\r\n widgetInstance: itemRunTimeInfo.widgetInstance,\r\n guid: key,\r\n $itemContainer: itemRunTimeInfo.$itemContainer\r\n })\r\n }\r\n })\r\n };\r\n _proto.extendRunTimeItemInfoByKey = function(key, options) {\r\n if (this._map[key]) {\r\n this._map[key] = (0, _extend.extend)(this._map[key], options)\r\n }\r\n };\r\n _proto.findWidgetInstanceByItem = function(item) {\r\n return this._findWidgetInstance(function(storedItem) {\r\n return storedItem === item\r\n })\r\n };\r\n _proto.getGroupOrTabLayoutManagerByPath = function(targetPath) {\r\n return this._findFieldByCondition(function(_ref2) {\r\n var path = _ref2.path;\r\n return path === targetPath\r\n }, \"layoutManager\")\r\n };\r\n _proto.getKeyByPath = function(targetPath) {\r\n return this._findFieldByCondition(function(_ref3) {\r\n var path = _ref3.path;\r\n return path === targetPath\r\n }, \"guid\")\r\n };\r\n _proto.findWidgetInstanceByName = function(name) {\r\n return this._findWidgetInstance(function(item) {\r\n return name === item.name\r\n })\r\n };\r\n _proto.findWidgetInstanceByDataField = function(dataField) {\r\n return this._findWidgetInstance(function(item) {\r\n return dataField === ((0, _type.isString)(item) ? item : item.dataField)\r\n })\r\n };\r\n _proto.findItemContainerByItem = function(item) {\r\n for (var key in this._map) {\r\n if (this._map[key].item === item) {\r\n return this._map[key].$itemContainer\r\n }\r\n }\r\n return null\r\n };\r\n _proto.findItemIndexByItem = function(targetItem) {\r\n return this._findFieldByCondition(function(_ref4) {\r\n var item = _ref4.item;\r\n return item === targetItem\r\n }, \"itemIndex\")\r\n };\r\n _proto.getItems = function() {\r\n return this._map\r\n };\r\n _proto.each = function(handler) {\r\n (0, _iterator.each)(this._map, function(key, itemRunTimeInfo) {\r\n handler(key, itemRunTimeInfo)\r\n })\r\n };\r\n _proto.removeItemsByPathStartWith = function(path) {\r\n var _this3 = this;\r\n var keys = Object.keys(this._map);\r\n var filteredKeys = keys.filter(function(key) {\r\n return _this3._map[key].path.indexOf(path, 0) > -1\r\n });\r\n filteredKeys.forEach(function(key) {\r\n return _this3.removeItemByKey(key)\r\n })\r\n };\r\n return FormItemsRunTimeInfo\r\n}();\r\nexports.default = FormItemsRunTimeInfo;\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/number_box/number_box.base.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 _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 _array = require(\"../../core/utils/array\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _ui = _interopRequireDefault(require(\"../text_box/ui.text_editor\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _number_box = _interopRequireDefault(require(\"./number_box.spins\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar math = Math;\r\nvar WIDGET_CLASS = \"dx-numberbox\";\r\nvar FIREFOX_CONTROL_KEYS = [\"tab\", \"del\", \"backspace\", \"leftArrow\", \"rightArrow\", \"home\", \"end\", \"enter\"];\r\nvar FORCE_VALUECHANGE_EVENT_NAMESPACE = \"NumberBoxForceValueChange\";\r\nvar NumberBoxBase = _ui.default.inherit({\r\n _supportedKeys: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n upArrow: function(e) {\r\n if (!(0, _index.isCommandKeyPressed)(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinUpChangeHandler(e)\r\n }\r\n },\r\n downArrow: function(e) {\r\n if (!(0, _index.isCommandKeyPressed)(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinDownChangeHandler(e)\r\n }\r\n },\r\n enter: function() {}\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n value: 0,\r\n min: void 0,\r\n max: void 0,\r\n step: 1,\r\n showSpinButtons: false,\r\n useLargeSpinButtons: true,\r\n mode: \"text\",\r\n invalidValueMessage: _message.default.format(\"dxNumberBox-invalidValueMessage\"),\r\n buttons: void 0\r\n })\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _getDefaultButtons: function() {\r\n return this.callBase().concat([{\r\n name: \"spins\",\r\n Ctor: _number_box.default\r\n }])\r\n },\r\n _isSupportInputMode: function() {\r\n var version = parseFloat(_browser.default.version);\r\n return _browser.default.chrome && version >= 66 || _browser.default.safari && version >= 12 || _browser.default.msie && version >= 75\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return _devices.default.real().generic && !_devices.default.isSimulator()\r\n },\r\n options: {\r\n useLargeSpinButtons: false\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" !== _devices.default.real().deviceType && !this._isSupportInputMode()\r\n }.bind(this),\r\n options: {\r\n mode: \"number\"\r\n }\r\n }])\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.$element().addClass(WIDGET_CLASS);\r\n this.callBase()\r\n },\r\n _getDefaultAttributes: function() {\r\n var attributes = this.callBase();\r\n attributes.inputmode = \"decimal\";\r\n return attributes\r\n },\r\n _renderContentImpl: function() {\r\n this.option(\"isValid\") && this._validateValue(this.option(\"value\"));\r\n this.setAria(\"role\", \"spinbutton\")\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 this._getSubmitElement().val((0, _common.applyServerDecimalSeparator)(value))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _keyPressHandler: function(e) {\r\n this.callBase(e);\r\n var char = (0, _index.getChar)(e);\r\n var validCharRegExp = /[\\d.,eE\\-+]|Subtract/;\r\n var isInputCharValid = validCharRegExp.test(char);\r\n if (!isInputCharValid) {\r\n var keyName = (0, _index.normalizeKeyName)(e);\r\n if ((0, _index.isCommandKeyPressed)(e) || keyName && (0, _array.inArray)(keyName, FIREFOX_CONTROL_KEYS) >= 0) {\r\n return\r\n }\r\n e.preventDefault();\r\n return false\r\n }\r\n this._keyPressed = true\r\n },\r\n _onMouseWheel: function(dxEvent) {\r\n dxEvent.delta > 0 ? this._spinValueChange(1, dxEvent) : this._spinValueChange(-1, dxEvent)\r\n },\r\n _renderValue: function() {\r\n var inputValue = this._input().val();\r\n var value = this.option(\"value\");\r\n if (!inputValue.length || Number(inputValue) !== value) {\r\n this._forceValueRender();\r\n this._toggleEmptinessEventHandler()\r\n }\r\n var valueText = (0, _type.isDefined)(value) ? null : _message.default.format(\"dxNumberBox-noDataText\");\r\n this.setAria({\r\n valuenow: (0, _common.ensureDefined)(value, \"\"),\r\n valuetext: valueText\r\n });\r\n this.option(\"text\", this._input().val());\r\n this._updateButtons();\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n _forceValueRender: function() {\r\n var value = this.option(\"value\");\r\n var number = Number(value);\r\n var formattedValue = isNaN(number) ? \"\" : this._applyDisplayValueFormatter(value);\r\n this._renderDisplayText(formattedValue)\r\n },\r\n _applyDisplayValueFormatter: function(value) {\r\n return this.option(\"displayValueFormatter\")(value)\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._input().prop({\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n step: this.option(\"step\")\r\n });\r\n this.setAria({\r\n valuemin: (0, _common.ensureDefined)(this.option(\"min\"), \"\"),\r\n valuemax: (0, _common.ensureDefined)(this.option(\"max\"), \"\")\r\n })\r\n },\r\n _spinButtonsPointerDownHandler: function() {\r\n var $input = this._input();\r\n if (!this.option(\"useLargeSpinButtons\") && _dom_adapter.default.getActiveElement() !== $input[0]) {\r\n _events_engine.default.trigger($input, \"focus\")\r\n }\r\n },\r\n _spinUpChangeHandler: function(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(1, e.event || e)\r\n }\r\n },\r\n _spinDownChangeHandler: function(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(-1, e.event || e)\r\n }\r\n },\r\n _spinValueChange: function(sign, dxEvent) {\r\n var step = parseFloat(this.option(\"step\"));\r\n if (0 === step) {\r\n return\r\n }\r\n var value = parseFloat(this._normalizeInputValue()) || 0;\r\n value = this._correctRounding(value, step * sign);\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if ((0, _type.isDefined)(min)) {\r\n value = Math.max(min, value)\r\n }\r\n if ((0, _type.isDefined)(max)) {\r\n value = Math.min(max, value)\r\n }\r\n this._saveValueChangeEvent(dxEvent);\r\n this.option(\"value\", value)\r\n },\r\n _correctRounding: function(value, step) {\r\n var regex = /[,.](.*)/;\r\n var isFloatValue = regex.test(value);\r\n var isFloatStep = regex.test(step);\r\n if (isFloatValue || isFloatStep) {\r\n var valueAccuracy = isFloatValue ? regex.exec(value)[0].length : 0;\r\n var stepAccuracy = isFloatStep ? regex.exec(step)[0].length : 0;\r\n var accuracy = math.max(valueAccuracy, stepAccuracy);\r\n value = this._round(value + step, accuracy);\r\n return value\r\n }\r\n return value + step\r\n },\r\n _round: function(value, precision) {\r\n precision = precision || 0;\r\n var multiplier = Math.pow(10, precision);\r\n value *= multiplier;\r\n value = Math.round(value) / multiplier;\r\n return value\r\n },\r\n _renderValueChangeEvent: function() {\r\n this.callBase();\r\n var forceValueChangeEvent = (0, _index.addNamespace)(\"focusout\", FORCE_VALUECHANGE_EVENT_NAMESPACE);\r\n _events_engine.default.off(this.element(), forceValueChangeEvent);\r\n _events_engine.default.on(this.element(), forceValueChangeEvent, this._forceRefreshInputValue.bind(this))\r\n },\r\n _forceRefreshInputValue: function() {\r\n if (\"number\" === this.option(\"mode\")) {\r\n return\r\n }\r\n var $input = this._input();\r\n var formattedValue = this._applyDisplayValueFormatter(this.option(\"value\"));\r\n $input.val(null);\r\n $input.val(formattedValue)\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var $input = this._input();\r\n var inputValue = this._normalizeText();\r\n var value = this._parseValue(inputValue);\r\n var valueHasDigits = \".\" !== inputValue && \"-\" !== inputValue;\r\n if (this._isValueValid() && !this._validateValue(value)) {\r\n $input.val(this._applyDisplayValueFormatter(value));\r\n return\r\n }\r\n if (valueHasDigits) {\r\n this.callBase(e, isNaN(value) ? null : value)\r\n }\r\n this._applyValueBoundaries(inputValue, value);\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n },\r\n _applyValueBoundaries: function(inputValue, parsedValue) {\r\n var isValueIncomplete = this._isValueIncomplete(inputValue);\r\n var isValueCorrect = this._isValueInRange(inputValue);\r\n if (!isValueIncomplete && !isValueCorrect && null !== parsedValue) {\r\n if (Number(inputValue) !== parsedValue) {\r\n this._input().val(this._applyDisplayValueFormatter(parsedValue))\r\n }\r\n }\r\n },\r\n _replaceCommaWithPoint: function(value) {\r\n return value.replace(\",\", \".\")\r\n },\r\n _inputIsInvalid: function() {\r\n var isNumberMode = \"number\" === this.option(\"mode\");\r\n var validityState = this._input().get(0).validity;\r\n return isNumberMode && validityState && validityState.badInput\r\n },\r\n _renderDisplayText: function(text) {\r\n if (this._inputIsInvalid()) {\r\n return\r\n }\r\n this.callBase(text)\r\n },\r\n _isValueIncomplete: function(value) {\r\n var incompleteRegex = /(^-$)|(^-?\\d*\\.$)|(\\d+e-?$)/i;\r\n return incompleteRegex.test(value)\r\n },\r\n _isValueInRange: function(value) {\r\n return (0, _math.inRange)(value, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _isNumber: function(value) {\r\n return null !== this._parseValue(value)\r\n },\r\n _validateValue: function(value) {\r\n var inputValue = this._normalizeText();\r\n var isValueValid = this._isValueValid();\r\n var isValid = true;\r\n var isNumber = this._isNumber(inputValue);\r\n if (isNaN(Number(value))) {\r\n isValid = false\r\n }\r\n if (!value && isValueValid) {\r\n isValid = true\r\n } else {\r\n if (!isNumber && !isValueValid) {\r\n isValid = false\r\n }\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"invalidValueMessage\")\r\n }\r\n });\r\n return isValid\r\n },\r\n _normalizeInputValue: function() {\r\n return this._parseValue(this._normalizeText())\r\n },\r\n _normalizeText: function() {\r\n var value = this._input().val().trim();\r\n return this._replaceCommaWithPoint(value)\r\n },\r\n _parseValue: function(value) {\r\n var number = parseFloat(value);\r\n if (isNaN(number)) {\r\n return null\r\n }\r\n return (0, _math.fitIntoRange)(number, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _clearValue: function() {\r\n if (this._inputIsInvalid()) {\r\n this._input().val(\"\");\r\n this._validateValue()\r\n }\r\n this.callBase()\r\n },\r\n reset: function() {\r\n if (null === this.option(\"value\")) {\r\n this.option(\"text\", \"\");\r\n this._renderValue()\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._validateValue(args.value);\r\n this._setSubmitValue(args.value);\r\n this.callBase(args);\r\n this._resumeValueChangeAction();\r\n break;\r\n case \"step\":\r\n this._renderProps();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._renderProps();\r\n this.option(\"value\", this._parseValue(this.option(\"value\")));\r\n break;\r\n case \"showSpinButtons\":\r\n case \"useLargeSpinButtons\":\r\n this._updateButtons([\"spins\"]);\r\n break;\r\n case \"invalidValueMessage\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar _default = NumberBoxBase;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/dialog.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.confirm = exports.alert = exports.custom = exports.title = exports.FakeDialogComponent = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _component = _interopRequireDefault(require(\"../core/component\"));\r\nvar _action = _interopRequireDefault(require(\"../core/action\"));\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _config = _interopRequireDefault(require(\"../core/config\"));\r\nvar _dom = require(\"../core/utils/dom\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _window = require(\"../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _view_port = require(\"../core/utils/view_port\");\r\nvar _message = _interopRequireDefault(require(\"../localization/message\"));\r\nvar _ui = _interopRequireDefault(require(\"./widget/ui.errors\"));\r\nvar _popup = _interopRequireDefault(require(\"./popup\"));\r\nvar _common = require(\"../core/utils/common\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar DEFAULT_BUTTON = {\r\n text: \"OK\",\r\n onClick: function() {\r\n return true\r\n }\r\n};\r\nvar DX_DIALOG_CLASSNAME = \"dx-dialog\";\r\nvar DX_DIALOG_WRAPPER_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-wrapper\");\r\nvar DX_DIALOG_ROOT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-root\");\r\nvar DX_DIALOG_CONTENT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-content\");\r\nvar DX_DIALOG_MESSAGE_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-message\");\r\nvar DX_DIALOG_BUTTONS_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-buttons\");\r\nvar DX_DIALOG_BUTTON_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-button\");\r\nvar DX_BUTTON_CLASSNAME = \"dx-button\";\r\nvar FakeDialogComponent = _component.default.inherit({\r\n ctor: function(element, options) {\r\n this.callBase(options)\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n width: 276\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n lWidth: \"60%\",\r\n pWidth: \"80%\"\r\n }\r\n }])\r\n }\r\n});\r\nexports.FakeDialogComponent = FakeDialogComponent;\r\nvar title = \"\";\r\nexports.title = title;\r\nvar custom = function(options) {\r\n var deferred = new _deferred.Deferred;\r\n var defaultOptions = (new FakeDialogComponent).option();\r\n options = (0, _extend.extend)(defaultOptions, options);\r\n var $element = (0, _renderer.default)(\"
\").addClass(DX_DIALOG_CLASSNAME).appendTo((0, _view_port.value)());\r\n var isMessageDefined = \"message\" in options;\r\n var isMessageHtmlDefined = \"messageHtml\" in options;\r\n if (isMessageDefined) {\r\n _ui.default.log(\"W1013\")\r\n }\r\n var messageHtml = String(isMessageHtmlDefined ? options.messageHtml : options.message);\r\n var $message = (0, _renderer.default)(\"
\").addClass(DX_DIALOG_MESSAGE_CLASSNAME).html(messageHtml);\r\n var popupToolbarItems = [];\r\n (0, _iterator.each)(options.buttons || [DEFAULT_BUTTON], function() {\r\n var action = new _action.default(this.onClick, {\r\n context: popupInstance\r\n });\r\n popupToolbarItems.push({\r\n toolbar: \"bottom\",\r\n location: _devices.default.current().android ? \"after\" : \"center\",\r\n widget: \"dxButton\",\r\n options: (0, _extend.extend)({}, this, {\r\n onClick: function() {\r\n var result = action.execute.apply(action, arguments);\r\n hide(result)\r\n }\r\n })\r\n })\r\n });\r\n var popupInstance = new _popup.default($element, (0, _extend.extend)({\r\n title: options.title || title,\r\n showTitle: (0, _common.ensureDefined)(options.showTitle, true),\r\n dragEnabled: (0, _common.ensureDefined)(options.dragEnabled, true),\r\n height: \"auto\",\r\n width: function() {\r\n var isPortrait = (0, _renderer.default)(window).height() > (0, _renderer.default)(window).width();\r\n var key = (isPortrait ? \"p\" : \"l\") + \"Width\";\r\n var widthOption = Object.prototype.hasOwnProperty.call(options, key) ? options[key] : options.width;\r\n return (0, _type.isFunction)(widthOption) ? widthOption() : widthOption\r\n },\r\n showCloseButton: options.showCloseButton || false,\r\n ignoreChildEvents: false,\r\n onContentReady: function(args) {\r\n args.component.$content().addClass(DX_DIALOG_CONTENT_CLASSNAME).append($message)\r\n },\r\n onShowing: function(e) {\r\n e.component.bottomToolbar().addClass(DX_DIALOG_BUTTONS_CLASSNAME).find(\".\".concat(DX_BUTTON_CLASSNAME)).addClass(DX_DIALOG_BUTTON_CLASSNAME);\r\n (0, _dom.resetActiveElement)()\r\n },\r\n onShown: function(e) {\r\n var $firstButton = e.component.bottomToolbar().find(\".\".concat(DX_BUTTON_CLASSNAME)).first();\r\n _events_engine.default.trigger($firstButton, \"focus\")\r\n },\r\n onHiding: function() {\r\n deferred.reject()\r\n },\r\n toolbarItems: popupToolbarItems,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 400\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 400,\r\n to: {\r\n opacity: 0,\r\n scale: 0\r\n },\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n }\r\n }\r\n },\r\n rtlEnabled: (0, _config.default)().rtlEnabled,\r\n boundaryOffset: {\r\n h: 10,\r\n v: 0\r\n }\r\n }, options.popupOptions));\r\n popupInstance._wrapper().addClass(DX_DIALOG_WRAPPER_CLASSNAME);\r\n if (options.position) {\r\n popupInstance.option(\"position\", options.position)\r\n }\r\n popupInstance._wrapper().addClass(DX_DIALOG_ROOT_CLASSNAME);\r\n\r\n function show() {\r\n popupInstance.show();\r\n return deferred.promise()\r\n }\r\n\r\n function hide(value) {\r\n deferred.resolve(value);\r\n popupInstance.hide().done(function() {\r\n popupInstance.$element().remove()\r\n })\r\n }\r\n return {\r\n show: show,\r\n hide: hide\r\n }\r\n};\r\nexports.custom = custom;\r\nvar alert = function(messageHtml, title, showTitle) {\r\n var options = (0, _type.isPlainObject)(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\nexports.alert = alert;\r\nvar confirm = function(messageHtml, title, showTitle) {\r\n var options = (0, _type.isPlainObject)(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n buttons: [{\r\n text: _message.default.format(\"Yes\"),\r\n onClick: function() {\r\n return true\r\n }\r\n }, {\r\n text: _message.default.format(\"No\"),\r\n onClick: function() {\r\n return false\r\n }\r\n }],\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\nexports.confirm = confirm;\r\n","/**\r\n * DevExtreme (ui/multi_view/ui.multi_view.animation.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.animation = exports._translator = void 0;\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _translator2 = require(\"../../animation/translator\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _translator = {\r\n move: function($element, position) {\r\n (0, _translator2.move)($element, {\r\n left: position\r\n })\r\n }\r\n};\r\nexports._translator = _translator;\r\nvar animation = {\r\n moveTo: function($element, position, duration, completeAction) {\r\n _fx.default.animate($element, {\r\n type: \"slide\",\r\n to: {\r\n left: position\r\n },\r\n duration: duration,\r\n complete: completeAction\r\n })\r\n },\r\n complete: function($element) {\r\n _fx.default.stop($element, true)\r\n }\r\n};\r\nexports.animation = animation;\r\n","/**\r\n * DevExtreme (ui/date_box/ui.date_box.base.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 _window = require(\"../../core/utils/window\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _dom = require(\"../../core/utils/dom\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _version = require(\"../../core/utils/version\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _support = require(\"../../core/utils/support\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _config = _interopRequireDefault(require(\"../../core/config\"));\r\nvar _date = _interopRequireDefault(require(\"../../core/utils/date\"));\r\nvar _ui = _interopRequireDefault(require(\"./ui.date_utils\"));\r\nvar _date_serialization = _interopRequireDefault(require(\"../../core/utils/date_serialization\"));\r\nvar _ui2 = _interopRequireDefault(require(\"../drop_down_editor/ui.drop_down_editor\"));\r\nvar _date2 = _interopRequireDefault(require(\"../../localization/date\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _uiDate_boxStrategy = _interopRequireDefault(require(\"./ui.date_box.strategy.calendar\"));\r\nvar _uiDate_boxStrategy2 = _interopRequireDefault(require(\"./ui.date_box.strategy.date_view\"));\r\nvar _uiDate_boxStrategy3 = _interopRequireDefault(require(\"./ui.date_box.strategy.native\"));\r\nvar _uiDate_boxStrategy4 = _interopRequireDefault(require(\"./ui.date_box.strategy.calendar_with_time\"));\r\nvar _uiDate_boxStrategy5 = _interopRequireDefault(require(\"./ui.date_box.strategy.list\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar DATEBOX_CLASS = \"dx-datebox\";\r\nvar DX_AUTO_WIDTH_CLASS = \"dx-auto-width\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar DX_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar DATEBOX_WRAPPER_CLASS = \"dx-datebox-wrapper\";\r\nvar PICKER_TYPE = {\r\n calendar: \"calendar\",\r\n rollers: \"rollers\",\r\n list: \"list\",\r\n \"native\": \"native\"\r\n};\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar STRATEGY_NAME = {\r\n calendar: \"Calendar\",\r\n dateView: \"DateView\",\r\n \"native\": \"Native\",\r\n calendarWithTime: \"CalendarWithTime\",\r\n list: \"List\"\r\n};\r\nvar STRATEGY_CLASSES = {\r\n Calendar: _uiDate_boxStrategy.default,\r\n DateView: _uiDate_boxStrategy2.default,\r\n Native: _uiDate_boxStrategy3.default,\r\n CalendarWithTime: _uiDate_boxStrategy4.default,\r\n List: _uiDate_boxStrategy5.default\r\n};\r\nvar DateBox = _ui2.default.inherit({\r\n _supportedKeys: function() {\r\n return (0, _extend.extend)(this.callBase(), this._strategy.supportedKeys())\r\n },\r\n _renderButtonContainers: function() {\r\n this.callBase.apply(this, arguments);\r\n this._strategy.customizeButtons()\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n type: \"date\",\r\n showAnalogClock: true,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: void 0,\r\n max: void 0,\r\n displayFormat: null,\r\n interval: 30,\r\n disabledDates: null,\r\n pickerType: PICKER_TYPE.calendar,\r\n invalidDateMessage: _message.default.format(\"dxDateBox-validation-datetime\"),\r\n dateOutOfRangeMessage: _message.default.format(\"validation-range\"),\r\n applyButtonText: _message.default.format(\"OK\"),\r\n adaptivityEnabled: false,\r\n calendarOptions: {},\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n \"dropDownOptions.showTitle\": true\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }, {\r\n device: function() {\r\n var realDevice = _devices.default.real();\r\n var platform = realDevice.platform;\r\n return \"ios\" === platform || \"android\" === platform\r\n },\r\n options: {\r\n pickerType: PICKER_TYPE.native\r\n }\r\n }, {\r\n device: function(currentDevice) {\r\n var realDevice = _devices.default.real();\r\n var platform = realDevice.platform;\r\n var version = realDevice.version;\r\n return \"generic\" === platform && \"desktop\" !== currentDevice.deviceType || \"android\" === platform && (0, _version.compare)(version, [4, 4]) < 0\r\n },\r\n options: {\r\n pickerType: PICKER_TYPE.rollers\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\",\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n this._userOptions = (0, _extend.extend)({}, options);\r\n this.callBase(options);\r\n this._updatePickerOptions()\r\n },\r\n _updatePickerOptions: function() {\r\n var pickerType = this.option(\"pickerType\");\r\n var type = this.option(\"type\");\r\n if (pickerType === PICKER_TYPE.list && (type === TYPE.datetime || type === TYPE.date)) {\r\n pickerType = PICKER_TYPE.calendar\r\n }\r\n if (type === TYPE.time && pickerType === PICKER_TYPE.calendar) {\r\n pickerType = PICKER_TYPE.list\r\n }\r\n this.option(\"showDropDownButton\", \"generic\" !== _devices.default.real().platform || pickerType !== PICKER_TYPE.native);\r\n this._pickerType = pickerType\r\n },\r\n _init: function() {\r\n this._initStrategy();\r\n this.option((0, _extend.extend)({}, this._strategy.getDefaultOptions(), this._userOptions));\r\n delete this._userOptions;\r\n this.callBase()\r\n },\r\n _toLowerCaseFirstLetter: function(string) {\r\n return string.charAt(0).toLowerCase() + string.substr(1)\r\n },\r\n _initStrategy: function() {\r\n var strategyName = this._getStrategyName(this._getFormatType());\r\n var strategy = STRATEGY_CLASSES[strategyName];\r\n if (!(this._strategy && this._strategy.NAME === strategyName)) {\r\n this._strategy = new strategy(this)\r\n }\r\n },\r\n _getFormatType: function() {\r\n var currentType = this.option(\"type\");\r\n var isTime = /h|m|s/g.test(currentType);\r\n var isDate = /d|M|Y/g.test(currentType);\r\n var type = \"\";\r\n if (isDate) {\r\n type += TYPE.date\r\n }\r\n if (isTime) {\r\n type += TYPE.time\r\n }\r\n return type\r\n },\r\n _getStrategyName: function(type) {\r\n var pickerType = this._pickerType;\r\n if (pickerType === PICKER_TYPE.rollers) {\r\n return STRATEGY_NAME.dateView\r\n } else {\r\n if (pickerType === PICKER_TYPE.native) {\r\n return STRATEGY_NAME.native\r\n }\r\n }\r\n if (type === TYPE.date) {\r\n return STRATEGY_NAME.calendar\r\n }\r\n if (type === TYPE.datetime) {\r\n return STRATEGY_NAME.calendarWithTime\r\n }\r\n return STRATEGY_NAME.list\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(DATEBOX_CLASS);\r\n this.callBase();\r\n this._refreshFormatClass();\r\n this._refreshPickerTypeClass();\r\n this._strategy.renderInputMinMax(this._input())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._formatValidationIcon()\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this.$element().toggleClass(DX_AUTO_WIDTH_CLASS, !this.option(\"width\"));\r\n this._dimensionChanged()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase(arguments);\r\n if (this._popup) {\r\n var _this$_strategy$_upda, _this$_strategy;\r\n null === (_this$_strategy$_upda = (_this$_strategy = this._strategy)._updatePopupHeight) || void 0 === _this$_strategy$_upda ? void 0 : _this$_strategy$_upda.call(_this$_strategy)\r\n }\r\n },\r\n _refreshFormatClass: function() {\r\n var $element = this.$element();\r\n (0, _iterator.each)(TYPE, function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n });\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this.option(\"type\"))\r\n },\r\n _refreshPickerTypeClass: function() {\r\n var $element = this.$element();\r\n (0, _iterator.each)(PICKER_TYPE, function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n });\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this._pickerType)\r\n },\r\n _formatValidationIcon: function() {\r\n if (!(0, _window.hasWindow)()) {\r\n return\r\n }\r\n var inputElement = this._input().get(0);\r\n var isRtlEnabled = this.option(\"rtlEnabled\");\r\n var clearButtonWidth = this._getClearButtonWidth();\r\n var longestElementDimensions = this._getLongestElementDimensions();\r\n var curWidth = parseFloat(window.getComputedStyle(inputElement).width) - clearButtonWidth;\r\n var shouldHideValidationIcon = longestElementDimensions.width > curWidth;\r\n var style = inputElement.style;\r\n this.$element().toggleClass(DX_INVALID_BADGE_CLASS, !shouldHideValidationIcon);\r\n if (shouldHideValidationIcon) {\r\n if (void 0 === this._storedPadding) {\r\n this._storedPadding = isRtlEnabled ? longestElementDimensions.leftPadding : longestElementDimensions.rightPadding\r\n }\r\n isRtlEnabled ? style.paddingLeft = 0 : style.paddingRight = 0\r\n } else {\r\n isRtlEnabled ? style.paddingLeft = this._storedPadding + \"px\" : style.paddingRight = this._storedPadding + \"px\"\r\n }\r\n },\r\n _getClearButtonWidth: function() {\r\n var clearButtonWidth = 0;\r\n if (this._isClearButtonVisible() && \"\" === this._input().val()) {\r\n var clearButtonElement = this.$element().find(\".\" + DX_CLEAR_BUTTON_CLASS).get(0);\r\n clearButtonWidth = parseFloat(window.getComputedStyle(clearButtonElement).width)\r\n }\r\n return clearButtonWidth\r\n },\r\n _getLongestElementDimensions: function() {\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var longestValue = _date2.default.format(_ui.default.getLongestDate(format, _date2.default.getMonthNames(), _date2.default.getDayNames()), format);\r\n var $input = this._input();\r\n var inputElement = $input.get(0);\r\n var $longestValueElement = (0, _dom.createTextElementHiddenCopy)($input, longestValue);\r\n var isPaddingStored = void 0 !== this._storedPadding;\r\n var storedPadding = !isPaddingStored ? 0 : this._storedPadding;\r\n $longestValueElement.appendTo(this.$element());\r\n var elementWidth = parseFloat(window.getComputedStyle($longestValueElement.get(0)).width);\r\n var rightPadding = parseFloat(window.getComputedStyle(inputElement).paddingRight);\r\n var leftPadding = parseFloat(window.getComputedStyle(inputElement).paddingLeft);\r\n var necessaryWidth = elementWidth + leftPadding + rightPadding + storedPadding;\r\n $longestValueElement.remove();\r\n return {\r\n width: necessaryWidth,\r\n leftPadding: leftPadding,\r\n rightPadding: rightPadding\r\n }\r\n },\r\n _getKeyboardListeners: function() {\r\n return this.callBase().concat([this._strategy && this._strategy.getKeyboardListener()])\r\n },\r\n _renderPopup: function() {\r\n this.callBase();\r\n this._popup._wrapper().addClass(DATEBOX_WRAPPER_CLASS);\r\n this._renderPopupWrapper()\r\n },\r\n _popupConfig: function() {\r\n var popupConfig = this.callBase();\r\n return (0, _extend.extend)(this._strategy.popupConfig(popupConfig), {\r\n title: this._getPopupTitle(),\r\n dragEnabled: false\r\n })\r\n },\r\n _renderPopupWrapper: function() {\r\n if (!this._popup) {\r\n return\r\n }\r\n var $element = this.$element();\r\n var classPostfixes = (0, _extend.extend)({}, TYPE, PICKER_TYPE);\r\n (0, _iterator.each)(classPostfixes, function(_, item) {\r\n $element.removeClass(DATEBOX_WRAPPER_CLASS + \"-\" + item)\r\n }.bind(this));\r\n this._popup._wrapper().addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this.option(\"type\")).addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this._pickerType)\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._strategy.renderPopupContent()\r\n },\r\n _getFirstPopupElement: function() {\r\n return this._strategy.getFirstPopupElement() || this.callBase()\r\n },\r\n _getLastPopupElement: function() {\r\n return this._strategy.getLastPopupElement() || this.callBase()\r\n },\r\n _popupShowingHandler: function() {\r\n this.callBase();\r\n this._strategy.popupShowingHandler()\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState();\r\n this._strategy.popupHiddenHandler()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._formatValidationIcon()\r\n }\r\n },\r\n _clearValueHandler: function(e) {\r\n this.option(\"text\", \"\");\r\n this.callBase(e)\r\n },\r\n _readOnlyPropValue: function() {\r\n if (this._pickerType === PICKER_TYPE.rollers) {\r\n return true\r\n }\r\n var platform = _devices.default.real().platform;\r\n var isCustomValueDisabled = this._isNativeType() && (\"ios\" === platform || \"android\" === platform);\r\n if (isCustomValueDisabled) {\r\n return this.option(\"readOnly\")\r\n }\r\n return this.callBase()\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.callBase() && !this._isNativeType()\r\n },\r\n _renderValue: function() {\r\n var value = this.dateOption(\"value\");\r\n this.option(\"text\", this._getDisplayedText(value));\r\n this._strategy.renderValue();\r\n return this.callBase()\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.dateOption(\"value\");\r\n var dateSerializationFormat = this.option(\"dateSerializationFormat\");\r\n var submitFormat = _ui.default.SUBMIT_FORMATS_MAP[this.option(\"type\")];\r\n var submitValue = dateSerializationFormat ? _date_serialization.default.serializeDate(value, dateSerializationFormat) : _ui.default.toStandardDateFormat(value, submitFormat);\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _getDisplayedText: function(value) {\r\n var mode = this.option(\"mode\");\r\n var displayedText;\r\n if (\"text\" === mode) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n displayedText = _date2.default.format(value, displayFormat)\r\n } else {\r\n var format = this._getFormatByMode(mode);\r\n if (format) {\r\n displayedText = _date2.default.format(value, format)\r\n } else {\r\n displayedText = _ui.default.toStandardDateFormat(value, mode)\r\n }\r\n }\r\n return displayedText\r\n },\r\n _getFormatByMode: function(mode) {\r\n return (0, _support.inputType)(mode) ? null : _ui.default.FORMATS_MAP[mode]\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var text = this.option(\"text\");\r\n var currentValue = this.dateOption(\"value\");\r\n if (text === this._getDisplayedText(currentValue)) {\r\n this._applyInternalValidation(currentValue);\r\n return\r\n }\r\n var parsedDate = this._getParsedDate(text);\r\n var value = null !== currentValue && void 0 !== currentValue ? currentValue : this._getDateByDefault();\r\n var type = this.option(\"type\");\r\n var newValue = _ui.default.mergeDates(value, parsedDate, type);\r\n var date = parsedDate && \"time\" === type ? newValue : parsedDate;\r\n if (this._applyInternalValidation(date).isValid) {\r\n var displayedText = this._getDisplayedText(newValue);\r\n if (value && newValue && value.getTime() === newValue.getTime() && displayedText !== text) {\r\n this._renderValue()\r\n } else {\r\n this.dateValue(newValue, e)\r\n }\r\n }\r\n },\r\n _getDateByDefault: function() {\r\n return this._strategy.useCurrentDateByDefault() && this._strategy.getDefaultDate()\r\n },\r\n _getParsedDate: function(text) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var parsedText = this._strategy.getParsedText(text, displayFormat);\r\n return null !== parsedText && void 0 !== parsedText ? parsedText : void 0\r\n },\r\n _applyInternalValidation: function(value) {\r\n var text = this.option(\"text\");\r\n var hasText = !!text && null !== value;\r\n var isDate = !!value && (0, _type.isDate)(value) && !isNaN(value.getTime());\r\n var isDateInRange = isDate && _date.default.dateInRange(value, this.dateOption(\"min\"), this.dateOption(\"max\"), this.option(\"type\"));\r\n var isValid = !hasText && !value || isDateInRange;\r\n var validationMessage = \"\";\r\n if (!isDate) {\r\n validationMessage = this.option(\"invalidDateMessage\")\r\n } else {\r\n if (!isDateInRange) {\r\n validationMessage = this.option(\"dateOutOfRangeMessage\")\r\n }\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: validationMessage\r\n }\r\n });\r\n return {\r\n isValid: isValid,\r\n isDate: isDate\r\n }\r\n },\r\n _applyCustomValidation: function(value) {\r\n this.validationRequest.fire({\r\n editor: this,\r\n value: this._serializeDate(value)\r\n })\r\n },\r\n _isValueChanged: function(newValue) {\r\n var oldValue = this.dateOption(\"value\");\r\n var oldTime = oldValue && oldValue.getTime();\r\n var newTime = newValue && newValue.getTime();\r\n return oldTime !== newTime\r\n },\r\n _isTextChanged: function(newValue) {\r\n var oldText = this.option(\"text\");\r\n var newText = newValue && this._getDisplayedText(newValue) || \"\";\r\n return oldText !== newText\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._input().attr(\"autocomplete\", \"off\")\r\n },\r\n _renderOpenedState: function() {\r\n if (!this._isNativeType()) {\r\n this.callBase()\r\n }\r\n if (this._strategy.isAdaptivityChanged()) {\r\n this._refreshStrategy()\r\n }\r\n },\r\n _getPopupTitle: function() {\r\n var placeholder = this.option(\"placeholder\");\r\n if (placeholder) {\r\n return placeholder\r\n }\r\n var type = this.option(\"type\");\r\n if (type === TYPE.time) {\r\n return _message.default.format(\"dxDateBox-simulatedDataPickerTitleTime\")\r\n }\r\n if (type === TYPE.date || type === TYPE.datetime) {\r\n return _message.default.format(\"dxDateBox-simulatedDataPickerTitleDate\")\r\n }\r\n return \"\"\r\n },\r\n _renderPlaceholder: function() {\r\n this._popup && this._popup.option(\"title\", this._getPopupTitle());\r\n this.callBase()\r\n },\r\n _refreshStrategy: function() {\r\n this._strategy.dispose();\r\n this._initStrategy();\r\n this.option(this._strategy.getDefaultOptions());\r\n this._refresh()\r\n },\r\n _applyButtonHandler: function(e) {\r\n var value = this._strategy.getValue();\r\n var _this$_applyInternalV = this._applyInternalValidation(value),\r\n isValid = _this$_applyInternalV.isValid,\r\n isDate = _this$_applyInternalV.isDate;\r\n if (isValid) {\r\n this.dateValue(value, e.event)\r\n } else {\r\n if (isDate) {\r\n var displayedText = this._getDisplayedText(value);\r\n this.option(\"text\", displayedText);\r\n this._renderDisplayText(displayedText)\r\n }\r\n }\r\n this.callBase()\r\n },\r\n _dispose: function() {\r\n var _this$_strategy2;\r\n this.callBase();\r\n null === (_this$_strategy2 = this._strategy) || void 0 === _this$_strategy2 ? void 0 : _this$_strategy2.dispose()\r\n },\r\n _isNativeType: function() {\r\n return this._pickerType === PICKER_TYPE.native\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"showClearButton\":\r\n case \"buttons\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"pickerType\":\r\n this._updatePickerOptions({\r\n pickerType: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshPickerTypeClass();\r\n this._invalidate();\r\n break;\r\n case \"type\":\r\n this._updatePickerOptions({\r\n format: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshFormatClass();\r\n this._renderPopupWrapper();\r\n this._formatValidationIcon();\r\n this._updateValue();\r\n break;\r\n case \"placeholder\":\r\n this._renderPlaceholder();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n var isValid = this.option(\"isValid\");\r\n this._applyInternalValidation(this.dateOption(\"value\"));\r\n if (!isValid) {\r\n this._applyCustomValidation(this.dateOption(\"value\"))\r\n }\r\n this._invalidate();\r\n break;\r\n case \"dateSerializationFormat\":\r\n case \"interval\":\r\n case \"disabledDates\":\r\n case \"calendarOptions\":\r\n this._invalidate();\r\n break;\r\n case \"displayFormat\":\r\n this.option(\"text\", this._getDisplayedText(this.dateOption(\"value\")));\r\n this._renderInputValue();\r\n break;\r\n case \"text\":\r\n this._strategy.textChangedHandler(args.value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"isValid\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"showDropDownButton\":\r\n this._formatValidationIcon();\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"readOnly\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"invalidDateMessage\":\r\n case \"dateOutOfRangeMessage\":\r\n case \"adaptivityEnabled\":\r\n case \"showAnalogClock\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _getSerializationFormat: function() {\r\n var value = this.option(\"value\");\r\n if (this.option(\"dateSerializationFormat\") && (0, _config.default)().forceIsoDateParsing) {\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 _updateValue: function(value) {\r\n this.callBase();\r\n this._applyInternalValidation(null !== value && void 0 !== value ? value : this.dateOption(\"value\"))\r\n },\r\n dateValue: function(value, dxEvent) {\r\n var isValueChanged = this._isValueChanged(value);\r\n if (isValueChanged && dxEvent) {\r\n this._saveValueChangeEvent(dxEvent)\r\n }\r\n if (!isValueChanged) {\r\n if (this._isTextChanged(value)) {\r\n this._updateValue(value)\r\n } else {\r\n if (\"\" === this.option(\"text\")) {\r\n this._applyCustomValidation(value)\r\n }\r\n }\r\n }\r\n return this.dateOption(\"value\", value)\r\n },\r\n dateOption: function(optionName, value) {\r\n if (1 === arguments.length) {\r\n return _date_serialization.default.deserializeDate(this.option(optionName))\r\n }\r\n this.option(optionName, this._serializeDate(value))\r\n },\r\n _serializeDate: function(date) {\r\n var serializationFormat = this._getSerializationFormat();\r\n return _date_serialization.default.serializeDate(date, serializationFormat)\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this._updateValue(this.dateOption(\"value\"))\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxDateBox\", DateBox);\r\nvar _default = DateBox;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/date_box/ui.date_box.strategy.list.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 _window = require(\"../../core/utils/window\");\r\nvar _list = _interopRequireDefault(require(\"../list\"));\r\nvar _uiDate_box = _interopRequireDefault(require(\"./ui.date_box.strategy\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"./ui.date_utils\"));\r\nvar _date = _interopRequireDefault(require(\"../../localization/date\"));\r\nvar _date_serialization = _interopRequireDefault(require(\"../../core/utils/date_serialization\"));\r\nvar _utils = require(\"../drop_down_editor/utils\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar DATE_FORMAT = \"date\";\r\nvar BOUNDARY_VALUES = {\r\n min: new Date(0, 0, 0, 0, 0),\r\n max: new Date(0, 0, 0, 23, 59)\r\n};\r\nvar ListStrategy = _uiDate_box.default.inherit({\r\n NAME: \"List\",\r\n supportedKeys: function() {\r\n return {\r\n tab: function() {\r\n if (this.option(\"opened\")) {\r\n this.close()\r\n }\r\n },\r\n space: _common.noop,\r\n home: _common.noop,\r\n end: _common.noop\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n applyValueMode: \"instantly\"\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shorttime\"\r\n },\r\n popupConfig: function(_popupConfig) {\r\n return _popupConfig\r\n },\r\n useCurrentDateByDefault: function() {\r\n return true\r\n },\r\n getDefaultDate: function() {\r\n return new Date(null)\r\n },\r\n popupShowingHandler: function() {\r\n this.dateBox._dimensionChanged()\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._refreshItems()\r\n },\r\n _getWidgetName: function() {\r\n return _list.default\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n itemTemplate: this._timeListItemTemplate.bind(this),\r\n onItemClick: this._listItemClickHandler.bind(this),\r\n tabIndex: -1,\r\n onFocusedItemChanged: this._refreshActiveDescendant.bind(this),\r\n selectionMode: \"single\"\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this.dateBox.setAria(\"activedescendant\", \"\");\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _refreshItems: function() {\r\n this._widgetItems = this._getTimeListItems();\r\n this._widget.option(\"items\", this._widgetItems)\r\n },\r\n renderOpenedState: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"focusedElement\", null);\r\n this._setSelectedItemsByValue();\r\n if (this._widget.option(\"templatesRenderAsynchronously\")) {\r\n this._asyncScrollTimeout = setTimeout(this._scrollToSelectedItem.bind(this))\r\n } else {\r\n this._scrollToSelectedItem()\r\n }\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._asyncScrollTimeout)\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._refreshItems();\r\n this._setSelectedItemsByValue();\r\n this._scrollToSelectedItem()\r\n },\r\n _setSelectedItemsByValue: function() {\r\n var value = this.dateBoxValue();\r\n var dateIndex = this._getDateIndex(value);\r\n if (dateIndex === -1) {\r\n this._widget.option(\"selectedItems\", [])\r\n } else {\r\n this._widget.option(\"selectedIndex\", dateIndex)\r\n }\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._widget.scrollToItem(this._widget.option(\"selectedIndex\"))\r\n },\r\n _getDateIndex: function(date) {\r\n var result = -1;\r\n for (var i = 0, n = this._widgetItems.length; i < n; i++) {\r\n if (this._areDatesEqual(date, this._widgetItems[i])) {\r\n result = i;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _areDatesEqual: function(first, second) {\r\n return (0, _type.isDate)(first) && (0, _type.isDate)(second) && first.getHours() === second.getHours() && first.getMinutes() === second.getMinutes()\r\n },\r\n _getTimeListItems: function() {\r\n var min = this.dateBox.dateOption(\"min\") || this._getBoundaryDate(\"min\");\r\n var max = this.dateBox.dateOption(\"max\") || this._getBoundaryDate(\"max\");\r\n var value = this.dateBox.dateOption(\"value\") || null;\r\n var delta = max - min;\r\n var minutes = min.getMinutes() % this.dateBox.option(\"interval\");\r\n if (delta < 0) {\r\n return []\r\n }\r\n if (delta > _ui.default.ONE_DAY) {\r\n delta = _ui.default.ONE_DAY\r\n }\r\n if (value - min < _ui.default.ONE_DAY) {\r\n return this._getRangeItems(min, new Date(min), delta)\r\n }\r\n min = this._getBoundaryDate(\"min\");\r\n min.setMinutes(minutes);\r\n if (value && Math.abs(value - max) < _ui.default.ONE_DAY) {\r\n delta = (60 * max.getHours() + Math.abs(max.getMinutes() - minutes)) * _ui.default.ONE_MINUTE\r\n }\r\n return this._getRangeItems(min, new Date(min), delta)\r\n },\r\n _getRangeItems: function(startValue, currentValue, rangeDuration) {\r\n var rangeItems = [];\r\n var interval = this.dateBox.option(\"interval\");\r\n while (currentValue - startValue <= rangeDuration) {\r\n rangeItems.push(new Date(currentValue));\r\n currentValue.setMinutes(currentValue.getMinutes() + interval)\r\n }\r\n return rangeItems\r\n },\r\n _getBoundaryDate: function(boundary) {\r\n var boundaryValue = BOUNDARY_VALUES[boundary];\r\n var currentValue = new Date((0, _common.ensureDefined)(this.dateBox.dateOption(\"value\"), 0));\r\n return new Date(currentValue.getFullYear(), currentValue.getMonth(), currentValue.getDate(), boundaryValue.getHours(), boundaryValue.getMinutes())\r\n },\r\n _timeListItemTemplate: function(itemData) {\r\n var displayFormat = this.dateBox.option(\"displayFormat\");\r\n return _date.default.format(itemData, this.getDisplayFormat(displayFormat))\r\n },\r\n _listItemClickHandler: function(e) {\r\n this.dateBox.option(\"opened\", false);\r\n var date = this.dateBox.option(\"value\");\r\n var itemData = e.itemData;\r\n var hours = itemData.getHours();\r\n var minutes = itemData.getMinutes();\r\n var seconds = itemData.getSeconds();\r\n var year = itemData.getFullYear();\r\n var month = itemData.getMonth();\r\n var day = itemData.getDate();\r\n if (date) {\r\n if (this.dateBox.option(\"dateSerializationFormat\")) {\r\n date = _date_serialization.default.deserializeDate(date)\r\n } else {\r\n date = new Date(date)\r\n }\r\n date.setHours(hours);\r\n date.setMinutes(minutes);\r\n date.setSeconds(seconds);\r\n date.setFullYear(year);\r\n date.setMonth(month);\r\n date.setDate(day)\r\n } else {\r\n date = new Date(year, month, day, hours, minutes, 0, 0)\r\n }\r\n this.dateBoxValue(date, e.event)\r\n },\r\n getKeyboardListener: function() {\r\n return this._widget\r\n },\r\n _updatePopupHeight: function() {\r\n var dropDownOptionsHeight = (0, _utils.getSizeValue)(this.dateBox.option(\"dropDownOptions.height\"));\r\n if (void 0 === dropDownOptionsHeight || \"auto\" === dropDownOptionsHeight) {\r\n this.dateBox._setPopupOption(\"height\", \"auto\");\r\n var popupHeight = this._widget.$element().outerHeight();\r\n var maxHeight = .45 * (0, _renderer.default)(window).height();\r\n this.dateBox._setPopupOption(\"height\", Math.min(popupHeight, maxHeight))\r\n }\r\n this.dateBox._timeList && this.dateBox._timeList.updateDimensions()\r\n },\r\n getParsedText: function(text, format) {\r\n var value = this.callBase(text, format);\r\n if (value) {\r\n value = _ui.default.mergeDates(value, new Date(null), DATE_FORMAT)\r\n }\r\n return value\r\n }\r\n});\r\nvar _default = ListStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (localization/default_date_names.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 _iterator = require(\"../core/utils/iterator\");\r\nvar MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\nvar DAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\r\nvar PERIODS = [\"AM\", \"PM\"];\r\nvar QUARTERS = [\"Q1\", \"Q2\", \"Q3\", \"Q4\"];\r\nvar cutCaptions = function(captions, format) {\r\n var lengthByFormat = {\r\n abbreviated: 3,\r\n \"short\": 2,\r\n narrow: 1\r\n };\r\n return (0, _iterator.map)(captions, function(caption) {\r\n return caption.substr(0, lengthByFormat[format])\r\n })\r\n};\r\nvar _default = {\r\n getMonthNames: function(format) {\r\n return cutCaptions(MONTHS, format)\r\n },\r\n getDayNames: function(format) {\r\n return cutCaptions(DAYS, format)\r\n },\r\n getQuarterNames: function(format) {\r\n return QUARTERS\r\n },\r\n getPeriodNames: function(format) {\r\n return PERIODS\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/date_box/ui.date_view_roller.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 _iterator = require(\"../../core/utils/iterator\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _click = require(\"../../events/click\");\r\nvar _ui = _interopRequireDefault(require(\"../scroll_view/ui.scrollable\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _translator = require(\"../../animation/translator\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar DATEVIEW_ROLLER_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DATEVIEW_ROLLER_CURRENT_CLASS = \"dx-dateviewroller-current\";\r\nvar DATEVIEW_ROLLER_ITEM_CLASS = \"dx-dateview-item\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_CLASS = \"dx-dateview-item-selected\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS = \"dx-dateview-item-selected-frame\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS = \"dx-dateview-item-selected-border\";\r\nvar DateViewRoller = _ui.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n showScrollbar: false,\r\n useNative: false,\r\n selectedIndex: 0,\r\n bounceEnabled: false,\r\n items: [],\r\n showOnClick: false,\r\n onClick: null,\r\n onSelectedIndexChanged: null\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n scrollByContent: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._renderSelectedItemFrame()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(DATEVIEW_ROLLER_CLASS);\r\n this._renderContainerClick();\r\n this._renderItems();\r\n this._renderSelectedValue();\r\n this._renderItemsClick();\r\n this._renderWheelEvent();\r\n this._wrapAction(\"_endAction\", this._endActionHandler.bind(this));\r\n this._renderSelectedIndexChanged()\r\n },\r\n _renderSelectedIndexChanged: function() {\r\n this._selectedIndexChanged = this._createActionByOption(\"onSelectedIndexChanged\")\r\n },\r\n _renderWheelEvent: function() {\r\n var _this = this;\r\n _events_engine.default.on(this._$container, \"dxmousewheel\", function(e) {\r\n _this._isWheelScrolled = true\r\n })\r\n },\r\n _renderContainerClick: function() {\r\n if (!this.option(\"showOnClick\")) {\r\n return\r\n }\r\n var eventName = (0, _index.addNamespace)(_click.name, this.NAME);\r\n var clickAction = this._createActionByOption(\"onClick\");\r\n _events_engine.default.off(this._$container, eventName);\r\n _events_engine.default.on(this._$container, eventName, function(e) {\r\n clickAction({\r\n event: e\r\n })\r\n })\r\n },\r\n _wrapAction: function(actionName, callback) {\r\n var strategy = this._strategy;\r\n var originalAction = strategy[actionName];\r\n strategy[actionName] = function() {\r\n callback.apply(this, arguments);\r\n return originalAction.apply(this, arguments)\r\n }\r\n },\r\n _renderItems: function() {\r\n var items = this.option(\"items\") || [];\r\n var $items = (0, _renderer.default)();\r\n this._$content.empty();\r\n items.forEach(function(item) {\r\n $items = $items.add((0, _renderer.default)(\"
\").addClass(DATEVIEW_ROLLER_ITEM_CLASS).append(item))\r\n });\r\n this._$content.append($items);\r\n this._$items = $items;\r\n this.update()\r\n },\r\n _renderSelectedItemFrame: function() {\r\n (0, _renderer.default)(\"
\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS).append((0, _renderer.default)(\"
\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS)).appendTo(this._$container)\r\n },\r\n _renderSelectedValue: function(selectedIndex) {\r\n var index = this._fitIndex(null !== selectedIndex && void 0 !== selectedIndex ? selectedIndex : this.option(\"selectedIndex\"));\r\n this._moveTo({\r\n top: this._getItemPosition(index)\r\n });\r\n this._renderActiveStateItem()\r\n },\r\n _fitIndex: function(index) {\r\n var items = this.option(\"items\") || [];\r\n var itemCount = items.length;\r\n if (index >= itemCount) {\r\n return itemCount - 1\r\n }\r\n if (index < 0) {\r\n return 0\r\n }\r\n return index\r\n },\r\n _getItemPosition: function(index) {\r\n return Math.round(this._itemHeight() * index)\r\n },\r\n _renderItemsClick: function() {\r\n var itemSelector = this._getItemSelector();\r\n var eventName = (0, _index.addNamespace)(_click.name, this.NAME);\r\n _events_engine.default.off(this.$element(), eventName, itemSelector);\r\n _events_engine.default.on(this.$element(), eventName, itemSelector, this._itemClickHandler.bind(this))\r\n },\r\n _getItemSelector: function() {\r\n return \".\" + DATEVIEW_ROLLER_ITEM_CLASS\r\n },\r\n _itemClickHandler: function(e) {\r\n this.option(\"selectedIndex\", this._itemElementIndex(e.currentTarget))\r\n },\r\n _itemElementIndex: function(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n },\r\n _itemElements: function() {\r\n return this.$element().find(this._getItemSelector())\r\n },\r\n _renderActiveStateItem: function() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n (0, _iterator.each)(this._$items, function(index) {\r\n (0, _renderer.default)(this).toggleClass(DATEVIEW_ROLLER_ITEM_SELECTED_CLASS, selectedIndex === index)\r\n })\r\n },\r\n _shouldScrollToNeighborItem: function() {\r\n return \"desktop\" === _devices.default.real().deviceType && this._isWheelScrolled\r\n },\r\n _moveTo: function(targetLocation) {\r\n targetLocation = this._normalizeLocation(targetLocation);\r\n var location = this._location();\r\n var delta = {\r\n x: -(location.left - targetLocation.left),\r\n y: -(location.top - targetLocation.top)\r\n };\r\n if (this._isVisible() && (delta.x || delta.y)) {\r\n this._strategy._prepareDirections(true);\r\n if (this._animation && !this._shouldScrollToNeighborItem()) {\r\n var that = this;\r\n _fx.default.stop(this._$content);\r\n _fx.default.animate(this._$content, {\r\n duration: 200,\r\n type: \"slide\",\r\n to: {\r\n top: Math.floor(delta.y)\r\n },\r\n complete: function() {\r\n (0, _translator.resetPosition)(that._$content);\r\n that._strategy.handleMove({\r\n delta: delta\r\n })\r\n }\r\n });\r\n delete this._animation\r\n } else {\r\n this._strategy.handleMove({\r\n delta: delta\r\n })\r\n }\r\n }\r\n },\r\n _validate: function(e) {\r\n return this._strategy.validate(e)\r\n },\r\n _fitSelectedIndexInRange: function(index) {\r\n var itemsCount = this.option(\"items\").length;\r\n return Math.max(Math.min(index, itemsCount - 1), 0)\r\n },\r\n _isInNullNeighborhood: function(x) {\r\n var EPS = .1;\r\n return -EPS <= x && x <= EPS\r\n },\r\n _getSelectedIndexAfterScroll: function(currentSelectedIndex) {\r\n var locationTop = -this._location().top;\r\n var currentSelectedIndexPosition = currentSelectedIndex * this._itemHeight();\r\n var dy = locationTop - currentSelectedIndexPosition;\r\n if (this._isInNullNeighborhood(dy)) {\r\n return currentSelectedIndex\r\n }\r\n var direction = dy > 0 ? 1 : -1;\r\n var newSelectedIndex = this._fitSelectedIndexInRange(currentSelectedIndex + direction);\r\n return newSelectedIndex\r\n },\r\n _getNewSelectedIndex: function(currentSelectedIndex) {\r\n if (this._shouldScrollToNeighborItem()) {\r\n return this._getSelectedIndexAfterScroll(currentSelectedIndex)\r\n }\r\n this._animation = true;\r\n var ratio = -this._location().top / this._itemHeight();\r\n return Math.round(ratio)\r\n },\r\n _endActionHandler: function() {\r\n var currentSelectedIndex = this.option(\"selectedIndex\");\r\n var newSelectedIndex = this._getNewSelectedIndex(currentSelectedIndex);\r\n if (newSelectedIndex === currentSelectedIndex) {\r\n this._renderSelectedValue(newSelectedIndex)\r\n } else {\r\n this.option(\"selectedIndex\", newSelectedIndex)\r\n }\r\n this._isWheelScrolled = false\r\n },\r\n _itemHeight: function() {\r\n var $item = this._$items.first();\r\n return $item.height()\r\n },\r\n _toggleActive: function(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_ACTIVE_CLASS, state)\r\n },\r\n _isVisible: function() {\r\n return this._$container.is(\":visible\")\r\n },\r\n _fireSelectedIndexChanged: function(value, previousValue) {\r\n this._selectedIndexChanged({\r\n value: value,\r\n previousValue: previousValue,\r\n event: void 0\r\n })\r\n },\r\n _visibilityChanged: function(visible) {\r\n this.callBase(visible);\r\n if (visible) {\r\n this._renderSelectedValue(this.option(\"selectedIndex\"))\r\n }\r\n this.toggleActiveState(false)\r\n },\r\n toggleActiveState: function(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_CURRENT_CLASS, state)\r\n },\r\n _refreshSelectedIndex: function() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var fitIndex = this._fitIndex(selectedIndex);\r\n if (fitIndex === selectedIndex) {\r\n this._renderActiveStateItem()\r\n } else {\r\n this.option(\"selectedIndex\", fitIndex)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"selectedIndex\":\r\n this._fireSelectedIndexChanged(args.value, args.previousValue);\r\n this._renderSelectedValue(args.value);\r\n break;\r\n case \"items\":\r\n this._renderItems();\r\n this._refreshSelectedIndex();\r\n break;\r\n case \"onClick\":\r\n case \"showOnClick\":\r\n this._renderContainerClick();\r\n break;\r\n case \"onSelectedIndexChanged\":\r\n this._renderSelectedIndexChanged();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxDateViewRoller\", DateViewRoller);\r\nvar _default = DateViewRoller;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/form/constants.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.FORM_VALIDATION_SUMMARY = exports.GROUP_COL_COUNT_ATTR = exports.GROUP_COL_COUNT_CLASS = exports.FIELD_ITEM_TAB_CLASS = exports.HIDDEN_LABEL_CLASS = exports.FORM_GROUP_WITH_CAPTION_CLASS = exports.FIELD_ITEM_CONTENT_HAS_TABS_CLASS = exports.FIELD_ITEM_CONTENT_HAS_GROUP_CLASS = exports.FORM_GROUP_CONTENT_CLASS = exports.ROOT_SIMPLE_ITEM_CLASS = exports.SINGLE_COLUMN_ITEM_CONTENT = exports.FIELD_BUTTON_ITEM_CLASS = exports.FIELD_EMPTY_ITEM_CLASS = exports.FIELD_ITEM_CONTENT_CLASS = exports.FIELD_ITEM_CONTENT_LOCATION_CLASS = exports.FIELD_ITEM_LABEL_CLASS = exports.FIELD_ITEM_LABEL_ALIGN_CLASS = exports.FIELD_ITEM_LABEL_LOCATION_CLASS = exports.LABEL_HORIZONTAL_ALIGNMENT_CLASS = exports.LABEL_VERTICAL_ALIGNMENT_CLASS = exports.FORM_LAYOUT_MANAGER_CLASS = exports.FIELD_ITEM_CONTENT_WRAPPER_CLASS = exports.FIELD_ITEM_HELP_TEXT_CLASS = exports.FIELD_ITEM_LABEL_CONTENT_CLASS = exports.FIELD_ITEM_LABEL_TEXT_CLASS = exports.FIELD_ITEM_REQUIRED_CLASS = exports.FIELD_ITEM_OPTIONAL_CLASS = exports.FIELD_ITEM_REQUIRED_MARK_CLASS = exports.FIELD_ITEM_OPTIONAL_MARK_CLASS = exports.LAYOUT_MANAGER_ONE_COLUMN = exports.FLEX_LAYOUT_CLASS = exports.FIELD_ITEM_CLASS = exports.FORM_FIELD_ITEM_COL_CLASS = exports.FORM_GROUP_CAPTION_CLASS = exports.FORM_GROUP_CLASS = exports.FORM_CLASS = void 0;\r\nvar FORM_CLASS = \"dx-form\";\r\nexports.FORM_CLASS = FORM_CLASS;\r\nvar FORM_GROUP_CLASS = \"dx-form-group\";\r\nexports.FORM_GROUP_CLASS = FORM_GROUP_CLASS;\r\nvar FORM_GROUP_CAPTION_CLASS = \"dx-form-group-caption\";\r\nexports.FORM_GROUP_CAPTION_CLASS = FORM_GROUP_CAPTION_CLASS;\r\nvar FORM_FIELD_ITEM_COL_CLASS = \"dx-col-\";\r\nexports.FORM_FIELD_ITEM_COL_CLASS = FORM_FIELD_ITEM_COL_CLASS;\r\nvar FIELD_ITEM_CLASS = \"dx-field-item\";\r\nexports.FIELD_ITEM_CLASS = FIELD_ITEM_CLASS;\r\nvar FLEX_LAYOUT_CLASS = \"dx-flex-layout\";\r\nexports.FLEX_LAYOUT_CLASS = FLEX_LAYOUT_CLASS;\r\nvar LAYOUT_MANAGER_ONE_COLUMN = \"dx-layout-manager-one-col\";\r\nexports.LAYOUT_MANAGER_ONE_COLUMN = LAYOUT_MANAGER_ONE_COLUMN;\r\nvar FIELD_ITEM_OPTIONAL_MARK_CLASS = \"dx-field-item-optional-mark\";\r\nexports.FIELD_ITEM_OPTIONAL_MARK_CLASS = FIELD_ITEM_OPTIONAL_MARK_CLASS;\r\nvar FIELD_ITEM_REQUIRED_MARK_CLASS = \"dx-field-item-required-mark\";\r\nexports.FIELD_ITEM_REQUIRED_MARK_CLASS = FIELD_ITEM_REQUIRED_MARK_CLASS;\r\nvar FIELD_ITEM_OPTIONAL_CLASS = \"dx-field-item-optional\";\r\nexports.FIELD_ITEM_OPTIONAL_CLASS = FIELD_ITEM_OPTIONAL_CLASS;\r\nvar FIELD_ITEM_REQUIRED_CLASS = \"dx-field-item-required\";\r\nexports.FIELD_ITEM_REQUIRED_CLASS = FIELD_ITEM_REQUIRED_CLASS;\r\nvar FIELD_ITEM_LABEL_TEXT_CLASS = \"dx-field-item-label-text\";\r\nexports.FIELD_ITEM_LABEL_TEXT_CLASS = FIELD_ITEM_LABEL_TEXT_CLASS;\r\nvar FIELD_ITEM_LABEL_CONTENT_CLASS = \"dx-field-item-label-content\";\r\nexports.FIELD_ITEM_LABEL_CONTENT_CLASS = FIELD_ITEM_LABEL_CONTENT_CLASS;\r\nvar FIELD_ITEM_HELP_TEXT_CLASS = \"dx-field-item-help-text\";\r\nexports.FIELD_ITEM_HELP_TEXT_CLASS = FIELD_ITEM_HELP_TEXT_CLASS;\r\nvar FIELD_ITEM_CONTENT_WRAPPER_CLASS = \"dx-field-item-content-wrapper\";\r\nexports.FIELD_ITEM_CONTENT_WRAPPER_CLASS = FIELD_ITEM_CONTENT_WRAPPER_CLASS;\r\nvar FORM_LAYOUT_MANAGER_CLASS = \"dx-layout-manager\";\r\nexports.FORM_LAYOUT_MANAGER_CLASS = FORM_LAYOUT_MANAGER_CLASS;\r\nvar LABEL_VERTICAL_ALIGNMENT_CLASS = \"dx-label-v-align\";\r\nexports.LABEL_VERTICAL_ALIGNMENT_CLASS = LABEL_VERTICAL_ALIGNMENT_CLASS;\r\nvar LABEL_HORIZONTAL_ALIGNMENT_CLASS = \"dx-label-h-align\";\r\nexports.LABEL_HORIZONTAL_ALIGNMENT_CLASS = LABEL_HORIZONTAL_ALIGNMENT_CLASS;\r\nvar FIELD_ITEM_LABEL_LOCATION_CLASS = \"dx-field-item-label-location-\";\r\nexports.FIELD_ITEM_LABEL_LOCATION_CLASS = FIELD_ITEM_LABEL_LOCATION_CLASS;\r\nvar FIELD_ITEM_LABEL_ALIGN_CLASS = \"dx-field-item-label-align\";\r\nexports.FIELD_ITEM_LABEL_ALIGN_CLASS = FIELD_ITEM_LABEL_ALIGN_CLASS;\r\nvar FIELD_ITEM_LABEL_CLASS = \"dx-field-item-label\";\r\nexports.FIELD_ITEM_LABEL_CLASS = FIELD_ITEM_LABEL_CLASS;\r\nvar FIELD_ITEM_CONTENT_LOCATION_CLASS = \"dx-field-item-content-location-\";\r\nexports.FIELD_ITEM_CONTENT_LOCATION_CLASS = FIELD_ITEM_CONTENT_LOCATION_CLASS;\r\nvar FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nexports.FIELD_ITEM_CONTENT_CLASS = FIELD_ITEM_CONTENT_CLASS;\r\nvar FIELD_EMPTY_ITEM_CLASS = \"dx-field-empty-item\";\r\nexports.FIELD_EMPTY_ITEM_CLASS = FIELD_EMPTY_ITEM_CLASS;\r\nvar FIELD_BUTTON_ITEM_CLASS = \"dx-field-button-item\";\r\nexports.FIELD_BUTTON_ITEM_CLASS = FIELD_BUTTON_ITEM_CLASS;\r\nvar SINGLE_COLUMN_ITEM_CONTENT = \"dx-single-column-item-content\";\r\nexports.SINGLE_COLUMN_ITEM_CONTENT = SINGLE_COLUMN_ITEM_CONTENT;\r\nvar ROOT_SIMPLE_ITEM_CLASS = \"dx-root-simple-item\";\r\nexports.ROOT_SIMPLE_ITEM_CLASS = ROOT_SIMPLE_ITEM_CLASS;\r\nvar FORM_GROUP_CONTENT_CLASS = \"dx-form-group-content\";\r\nexports.FORM_GROUP_CONTENT_CLASS = FORM_GROUP_CONTENT_CLASS;\r\nvar FIELD_ITEM_CONTENT_HAS_GROUP_CLASS = \"dx-field-item-has-group\";\r\nexports.FIELD_ITEM_CONTENT_HAS_GROUP_CLASS = FIELD_ITEM_CONTENT_HAS_GROUP_CLASS;\r\nvar FIELD_ITEM_CONTENT_HAS_TABS_CLASS = \"dx-field-item-has-tabs\";\r\nexports.FIELD_ITEM_CONTENT_HAS_TABS_CLASS = FIELD_ITEM_CONTENT_HAS_TABS_CLASS;\r\nvar FORM_GROUP_WITH_CAPTION_CLASS = \"dx-form-group-with-caption\";\r\nexports.FORM_GROUP_WITH_CAPTION_CLASS = FORM_GROUP_WITH_CAPTION_CLASS;\r\nvar HIDDEN_LABEL_CLASS = \"dx-layout-manager-hidden-label\";\r\nexports.HIDDEN_LABEL_CLASS = HIDDEN_LABEL_CLASS;\r\nvar FIELD_ITEM_TAB_CLASS = \"dx-field-item-tab\";\r\nexports.FIELD_ITEM_TAB_CLASS = FIELD_ITEM_TAB_CLASS;\r\nvar GROUP_COL_COUNT_CLASS = \"dx-group-colcount-\";\r\nexports.GROUP_COL_COUNT_CLASS = GROUP_COL_COUNT_CLASS;\r\nvar GROUP_COL_COUNT_ATTR = \"group-col-count\";\r\nexports.GROUP_COL_COUNT_ATTR = GROUP_COL_COUNT_ATTR;\r\nvar FORM_VALIDATION_SUMMARY = \"dx-form-validation-summary\";\r\nexports.FORM_VALIDATION_SUMMARY = FORM_VALIDATION_SUMMARY;\r\n","/**\r\n * DevExtreme (ui/validator.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 _element_data = require(\"../core/element_data\");\r\nvar _callbacks = _interopRequireDefault(require(\"../core/utils/callbacks\"));\r\nvar _ui = _interopRequireDefault(require(\"./widget/ui.errors\"));\r\nvar _dom_component = _interopRequireDefault(require(\"../core/dom_component\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _validation_engine = _interopRequireDefault(require(\"./validation_engine\"));\r\nvar _default_adapter = _interopRequireDefault(require(\"./validation/default_adapter\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _guid = _interopRequireDefault(require(\"../core/guid\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar VALIDATION_STATUS_PENDING = \"pending\";\r\nvar Validator = _dom_component.default.inherit({\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(_validation_engine.default.initValidationOptions(options))\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n validationRules: []\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initGroupRegistration();\r\n this.focused = (0, _callbacks.default)();\r\n this._initAdapter();\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null,\r\n skipValidation: false\r\n }\r\n },\r\n _initGroupRegistration: function() {\r\n var group = this._findGroup();\r\n if (!this._groupWasInit) {\r\n this.on(\"disposing\", function(args) {\r\n _validation_engine.default.removeRegisteredValidator(args.component._validationGroup, args.component)\r\n })\r\n }\r\n if (!this._groupWasInit || this._validationGroup !== group) {\r\n _validation_engine.default.removeRegisteredValidator(this._validationGroup, this);\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n _validation_engine.default.registerValidatorInGroup(group, this)\r\n }\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _initAdapter: function() {\r\n var _this = this;\r\n var element = this.$element()[0];\r\n var dxStandardEditor = (0, _element_data.data)(element, \"dx-validation-target\");\r\n var adapter = this.option(\"adapter\");\r\n if (!adapter) {\r\n if (dxStandardEditor) {\r\n adapter = new _default_adapter.default(dxStandardEditor, this);\r\n adapter.validationRequestsCallbacks.push(function(args) {\r\n if (_this._validationInfo.skipValidation) {\r\n return\r\n }\r\n _this.validate(args)\r\n });\r\n this.option(\"adapter\", adapter);\r\n return\r\n }\r\n throw _ui.default.Error(\"E0120\")\r\n }\r\n var callbacks = adapter.validationRequestsCallbacks;\r\n if (callbacks) {\r\n callbacks.push(function(args) {\r\n _this.validate(args)\r\n })\r\n }\r\n },\r\n _toggleRTLDirection: function(isRtl) {\r\n var _this$option$editor$o, _this$option, _this$option$editor;\r\n var rtlEnabled = null !== (_this$option$editor$o = null === (_this$option = this.option(\"adapter\")) || void 0 === _this$option ? void 0 : null === (_this$option$editor = _this$option.editor) || void 0 === _this$option$editor ? void 0 : _this$option$editor.option(\"rtlEnabled\")) && void 0 !== _this$option$editor$o ? _this$option$editor$o : isRtl;\r\n this.callBase(rtlEnabled)\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(VALIDATOR_CLASS);\r\n this.callBase()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._initGroupRegistration()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n return;\r\n case \"validationRules\":\r\n this._resetValidationRules();\r\n void 0 !== this.option(\"isValid\") && this.validate();\r\n return;\r\n case \"adapter\":\r\n this._initAdapter();\r\n break;\r\n case \"isValid\":\r\n case \"validationStatus\":\r\n this.option(_validation_engine.default.synchronizeValidationOptions(args, this.option()));\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getValidationRules: function() {\r\n var _this2 = this;\r\n if (!this._validationRules) {\r\n this._validationRules = (0, _iterator.map)(this.option(\"validationRules\"), function(rule, index) {\r\n return (0, _extend.extend)({}, rule, {\r\n validator: _this2,\r\n index: index\r\n })\r\n })\r\n }\r\n return this._validationRules\r\n },\r\n _findGroup: function() {\r\n var $element = this.$element();\r\n return this.option(\"validationGroup\") || _validation_engine.default.findGroup($element, this._modelByElement($element))\r\n },\r\n _resetValidationRules: function() {\r\n delete this._validationRules\r\n },\r\n validate: function(args) {\r\n var _this3 = this;\r\n var adapter = this.option(\"adapter\");\r\n var name = this.option(\"name\");\r\n var bypass = adapter.bypass && adapter.bypass();\r\n var value = args && void 0 !== args.value ? args.value : adapter.getValue();\r\n var currentError = adapter.getCurrentValidationError && adapter.getCurrentValidationError();\r\n var rules = this._getValidationRules();\r\n var currentResult = this._validationInfo && this._validationInfo.result;\r\n if (currentResult && currentResult.status === VALIDATION_STATUS_PENDING && currentResult.value === value) {\r\n return (0, _extend.extend)({}, currentResult)\r\n }\r\n var result;\r\n if (bypass) {\r\n result = {\r\n isValid: true,\r\n status: VALIDATION_STATUS_VALID\r\n }\r\n } else {\r\n if (currentError && currentError.editorSpecific) {\r\n currentError.validator = this;\r\n result = {\r\n isValid: false,\r\n status: VALIDATION_STATUS_INVALID,\r\n brokenRule: currentError,\r\n brokenRules: [currentError]\r\n }\r\n } else {\r\n result = _validation_engine.default.validate(value, rules, name)\r\n }\r\n }\r\n result.id = (new _guid.default).toString();\r\n this._applyValidationResult(result, adapter);\r\n result.complete && result.complete.then(function(res) {\r\n if (res.id === _this3._validationInfo.result.id) {\r\n _this3._applyValidationResult(res, adapter)\r\n }\r\n });\r\n return (0, _extend.extend)({}, this._validationInfo.result)\r\n },\r\n reset: function() {\r\n var adapter = this.option(\"adapter\");\r\n var result = {\r\n id: null,\r\n isValid: true,\r\n brokenRule: null,\r\n brokenRules: null,\r\n pendingRules: null,\r\n status: VALIDATION_STATUS_VALID,\r\n complete: null\r\n };\r\n this._validationInfo.skipValidation = true;\r\n adapter.reset();\r\n this._validationInfo.skipValidation = false;\r\n this._resetValidationRules();\r\n this._applyValidationResult(result, adapter)\r\n },\r\n _updateValidationResult: function(result) {\r\n if (!this._validationInfo.result || this._validationInfo.result.id !== result.id) {\r\n var complete = this._validationInfo.deferred && this._validationInfo.result.complete;\r\n this._validationInfo.result = (0, _extend.extend)({}, result, {\r\n complete: complete\r\n })\r\n } else {\r\n for (var prop in result) {\r\n if (\"id\" !== prop && \"complete\" !== prop) {\r\n this._validationInfo.result[prop] = result[prop]\r\n }\r\n }\r\n }\r\n },\r\n _applyValidationResult: function(result, adapter) {\r\n var validatedAction = this._createActionByOption(\"onValidated\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n result.validator = this;\r\n this._updateValidationResult(result);\r\n adapter.applyValidationResults && adapter.applyValidationResults(this._validationInfo.result);\r\n this.option({\r\n validationStatus: this._validationInfo.result.status\r\n });\r\n if (this._validationInfo.result.status === VALIDATION_STATUS_PENDING) {\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new _deferred.Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n this._eventsStrategy.fireEvent(\"validating\", [this._validationInfo.result]);\r\n return\r\n }\r\n if (this._validationInfo.result.status !== VALIDATION_STATUS_PENDING) {\r\n validatedAction(result);\r\n if (this._validationInfo.deferred) {\r\n this._validationInfo.deferred.resolve(result);\r\n this._validationInfo.deferred = null\r\n }\r\n }\r\n },\r\n focus: function() {\r\n var adapter = this.option(\"adapter\");\r\n adapter && adapter.focus && adapter.focus()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxValidator\", Validator);\r\nvar _default = Validator;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/tabs/item.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 _item = _interopRequireDefault(require(\"../collection/item\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TABS_ITEM_BADGE_CLASS = \"dx-tabs-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar TabsItem = _item.default.inherit({\r\n _renderWatchers: function() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this))\r\n },\r\n _renderBadge: function(badge) {\r\n this._$element.children(\".\" + BADGE_CLASS).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = (0, _renderer.default)(\"
\").addClass(TABS_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge);\r\n this._$element.append($badge)\r\n }\r\n});\r\nvar _default = TabsItem;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\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/number_box/number_box.mask.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 _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _math = require(\"../../core/utils/math\");\r\nvar _number = _interopRequireDefault(require(\"../../localization/number\"));\r\nvar _number_box = require(\"./number_box.caret\");\r\nvar _number2 = require(\"../../localization/ldml/number\");\r\nvar _number_box2 = _interopRequireDefault(require(\"./number_box.base\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _utils = require(\"./utils\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar NUMBER_FORMATTER_NAMESPACE = \"dxNumberFormatter\";\r\nvar MOVE_FORWARD = 1;\r\nvar MOVE_BACKWARD = -1;\r\nvar MINUS = \"-\";\r\nvar MINUS_KEY = \"minus\";\r\nvar NUMPUD_MINUS_KEY_IE = \"Subtract\";\r\nvar INPUT_EVENT = \"input\";\r\nvar CARET_TIMEOUT_DURATION = _browser.default.msie ? 300 : 0;\r\nvar NumberBoxMask = _number_box2.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n useMaskBehavior: true,\r\n format: null\r\n })\r\n },\r\n _isDeleteKey: function(key) {\r\n return \"del\" === key\r\n },\r\n _supportedKeys: function() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n var that = this;\r\n return (0, _extend.extend)(this.callBase(), {\r\n minus: that._revertSign.bind(that),\r\n del: that._removeHandler.bind(that),\r\n backspace: that._removeHandler.bind(that),\r\n leftArrow: that._arrowHandler.bind(that, MOVE_BACKWARD),\r\n rightArrow: that._arrowHandler.bind(that, MOVE_FORWARD),\r\n home: that._moveCaretToBoundaryEventHandler.bind(that, MOVE_FORWARD),\r\n enter: that._updateFormattedValue.bind(that),\r\n end: that._moveCaretToBoundaryEventHandler.bind(that, MOVE_BACKWARD)\r\n })\r\n },\r\n _getTextSeparatorIndex: function(text) {\r\n var decimalSeparator = _number.default.getDecimalSeparator();\r\n var realSeparatorOccurrenceIndex = (0, _utils.getRealSeparatorIndex)(this.option(\"format\")).occurrence;\r\n return (0, _utils.getNthOccurrence)(text, decimalSeparator, realSeparatorOccurrenceIndex)\r\n },\r\n _focusInHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this.clearCaretTimeout();\r\n this._caretTimeout = setTimeout(function() {\r\n this._caretTimeout = null;\r\n var caret = this._caret();\r\n if (caret.start === caret.end && this._useMaskBehavior()) {\r\n var text = this._getInputVal();\r\n var decimalSeparatorIndex = this._getTextSeparatorIndex(text);\r\n if (decimalSeparatorIndex >= 0) {\r\n this._caret({\r\n start: decimalSeparatorIndex,\r\n end: decimalSeparatorIndex\r\n })\r\n } else {\r\n this._moveCaretToBoundaryEventHandler(MOVE_BACKWARD, e)\r\n }\r\n }\r\n }.bind(this), CARET_TIMEOUT_DURATION)\r\n }\r\n this.callBase(e)\r\n },\r\n _focusOutHandler: function(e) {\r\n var shouldHandleEvent = !this._preventNestedFocusEvent(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = true;\r\n if (this._useMaskBehavior()) {\r\n this._updateFormattedValue()\r\n }\r\n }\r\n this.callBase(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = false\r\n }\r\n },\r\n _hasValueBeenChanged: function(inputValue) {\r\n var format = this._getFormatPattern();\r\n var value = this.option(\"value\");\r\n var formatted = this._format(value, format) || \"\";\r\n return formatted !== inputValue\r\n },\r\n _updateFormattedValue: function() {\r\n var inputValue = this._getInputVal();\r\n if (this._hasValueBeenChanged(inputValue)) {\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this._setTextByParsedValue();\r\n if (this._parsedValue !== this.option(\"value\")) {\r\n _events_engine.default.trigger(this._input(), \"change\")\r\n }\r\n }\r\n },\r\n _arrowHandler: function(step, e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this._getInputVal();\r\n var format = this._getFormatPattern();\r\n var nextCaret = (0, _number_box.getCaretWithOffset)(this._caret(), step);\r\n if (!(0, _number_box.isCaretInBoundaries)(nextCaret, text, format)) {\r\n nextCaret = step === MOVE_FORWARD ? nextCaret.end : nextCaret.start;\r\n e.preventDefault();\r\n this._caret((0, _number_box.getCaretInBoundaries)(nextCaret, text, format))\r\n }\r\n },\r\n _moveCaretToBoundary: function(direction) {\r\n var boundaries = (0, _number_box.getCaretBoundaries)(this._getInputVal(), this._getFormatPattern());\r\n var newCaret = (0, _number_box.getCaretWithOffset)(direction === MOVE_FORWARD ? boundaries.start : boundaries.end, 0);\r\n this._caret(newCaret)\r\n },\r\n _moveCaretToBoundaryEventHandler: function(direction, e) {\r\n if (!this._useMaskBehavior() || e && e.shiftKey) {\r\n return\r\n }\r\n this._moveCaretToBoundary(direction);\r\n e && e.preventDefault()\r\n },\r\n _shouldMoveCaret: function(text, caret) {\r\n var decimalSeparator = _number.default.getDecimalSeparator();\r\n var isDecimalSeparatorNext = text.charAt(caret.end) === decimalSeparator;\r\n var isZeroNext = \"0\" === text.charAt(caret.end);\r\n var moveToFloat = (this._lastKey === decimalSeparator || \".\" === this._lastKey) && isDecimalSeparatorNext;\r\n var zeroToZeroReplace = \"0\" === this._lastKey && isZeroNext;\r\n return moveToFloat || zeroToZeroReplace\r\n },\r\n _getInputVal: function() {\r\n return _number.default.convertDigits(this._input().val(), true)\r\n },\r\n _keyboardHandler: function(e) {\r\n this.clearCaretTimeout();\r\n this._lastKey = _number.default.convertDigits((0, _index.getChar)(e), true);\r\n this._lastKeyName = (0, _index.normalizeKeyName)(e);\r\n if (!this._shouldHandleKey(e.originalEvent)) {\r\n return this.callBase(e)\r\n }\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var enteredChar = this._lastKeyName === MINUS_KEY ? \"\" : this._lastKey;\r\n var newValue = this._tryParse(normalizedText, caret, enteredChar);\r\n if (this._shouldMoveCaret(normalizedText, caret)) {\r\n this._moveCaret(1);\r\n e.originalEvent.preventDefault()\r\n }\r\n if (void 0 === newValue) {\r\n if (this._lastKeyName !== MINUS_KEY) {\r\n e.originalEvent.preventDefault()\r\n }\r\n } else {\r\n this._parsedValue = newValue\r\n }\r\n return this.callBase(e)\r\n },\r\n _keyPressHandler: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n this.callBase(e)\r\n }\r\n },\r\n _removeHandler: function(e) {\r\n var caret = this._caret();\r\n var text = this._getInputVal();\r\n var start = caret.start;\r\n var end = caret.end;\r\n this._lastKey = (0, _index.getChar)(e);\r\n this._lastKeyName = (0, _index.normalizeKeyName)(e);\r\n var isDeleteKey = this._isDeleteKey(this._lastKeyName);\r\n var isBackspaceKey = !isDeleteKey;\r\n if (start === end) {\r\n var caretPosition = start;\r\n var canDelete = isBackspaceKey && caretPosition > 0 || isDeleteKey && caretPosition < text.length;\r\n if (canDelete) {\r\n isDeleteKey && end++;\r\n isBackspaceKey && start--\r\n } else {\r\n e.preventDefault();\r\n return\r\n }\r\n }\r\n var char = text.slice(start, end);\r\n if (this._isStub(char)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n if (this._parsedValue < 0 || 1 / this._parsedValue === -(1 / 0)) {\r\n this._revertSign(e);\r\n this._setTextByParsedValue()\r\n }\r\n e.preventDefault();\r\n return\r\n }\r\n var decimalSeparator = _number.default.getDecimalSeparator();\r\n if (char === decimalSeparator) {\r\n var decimalSeparatorIndex = text.indexOf(decimalSeparator);\r\n if (this._isNonStubAfter(decimalSeparatorIndex + 1)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n e.preventDefault()\r\n }\r\n return\r\n }\r\n if (end - start < text.length) {\r\n var editedText = this._replaceSelectedText(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n var noDigits = editedText.search(/[0-9]/) < 0;\r\n if (noDigits && this._isValueInRange(0)) {\r\n this._parsedValue = this._parsedValue < 0 || 1 / this._parsedValue === -(1 / 0) ? -0 : 0;\r\n return\r\n }\r\n }\r\n var valueAfterRemoving = this._tryParse(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n if (void 0 === valueAfterRemoving) {\r\n e.preventDefault()\r\n } else {\r\n this._parsedValue = valueAfterRemoving\r\n }\r\n },\r\n _isPercentFormat: function() {\r\n var format = this._getFormatPattern();\r\n var noEscapedFormat = format.replace(/'[^']+'/g, \"\");\r\n return noEscapedFormat.indexOf(\"%\") !== -1\r\n },\r\n _parse: function(text, format) {\r\n var formatOption = this.option(\"format\");\r\n var isCustomParser = (0, _type.isFunction)(formatOption.parser);\r\n var parser = isCustomParser ? formatOption.parser : _number.default.parse;\r\n var integerPartStartIndex = 0;\r\n if (!isCustomParser) {\r\n var formatPointIndex = (0, _utils.getRealSeparatorIndex)(format).index;\r\n var textPointIndex = this._getTextSeparatorIndex(text);\r\n var formatIntegerPartLength = formatPointIndex !== -1 ? formatPointIndex : format.length;\r\n var textIntegerPartLength = textPointIndex !== -1 ? textPointIndex : text.length;\r\n if (textIntegerPartLength > formatIntegerPartLength && format.indexOf(\"#\") === -1) {\r\n integerPartStartIndex = textIntegerPartLength - formatIntegerPartLength\r\n }\r\n }\r\n text = this._removeStubs(text, true);\r\n text = text.substr(integerPartStartIndex);\r\n return parser(text, format)\r\n },\r\n _format: function(value, format) {\r\n var formatOption = this.option(\"format\");\r\n var isCustomFormatter = (0, _type.isFunction)(null === formatOption || void 0 === formatOption ? void 0 : formatOption.formatter);\r\n var formatter = isCustomFormatter ? formatOption.formatter : _number.default.format;\r\n return formatter(value, format)\r\n },\r\n _getFormatPattern: function() {\r\n if (!this._currentFormat) {\r\n this._updateFormat()\r\n }\r\n return this._currentFormat\r\n },\r\n _updateFormat: function() {\r\n var _this = this;\r\n var format = this.option(\"format\");\r\n var isCustomParser = (0, _type.isFunction)(null === format || void 0 === format ? void 0 : format.parser);\r\n var isLDMLPattern = (0, _type.isString)(format) && (format.indexOf(\"0\") >= 0 || format.indexOf(\"#\") >= 0);\r\n this._currentFormat = isCustomParser || isLDMLPattern ? format : (0, _number2.getFormat)(function(value) {\r\n var text = _this._format(value, format);\r\n return _number.default.convertDigits(text, true)\r\n })\r\n },\r\n _getFormatForSign: function(text) {\r\n var format = this._getFormatPattern();\r\n if ((0, _type.isString)(format)) {\r\n var signParts = format.split(\";\");\r\n var sign = _number.default.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\" + signParts[0];\r\n return sign < 0 ? signParts[1] : signParts[0]\r\n } else {\r\n var _sign = _number.default.getSign(text);\r\n return _sign < 0 ? \"-\" : \"\"\r\n }\r\n },\r\n _removeStubs: function(text, excludeComma) {\r\n var format = this._getFormatForSign(text);\r\n var thousandsSeparator = _number.default.getThousandsSeparator();\r\n var stubs = this._getStubs(format);\r\n var result = text;\r\n if (stubs.length) {\r\n var prefixStubs = stubs[0];\r\n var postfixRegex = new RegExp(\"(\" + (0, _common.escapeRegExp)(stubs[1] || \"\") + \")$\", \"g\");\r\n var decoratorsRegex = new RegExp(\"[-\" + (0, _common.escapeRegExp)(excludeComma ? \"\" : thousandsSeparator) + \"]\", \"g\");\r\n result = result.replace(prefixStubs, \"\").replace(postfixRegex, \"\").replace(decoratorsRegex, \"\")\r\n }\r\n return result\r\n },\r\n _getStubs: function(format) {\r\n var regExpResult = /[^']([#0.,]+)/g.exec(format);\r\n var pattern = regExpResult && regExpResult[0].trim();\r\n return format.split(pattern).map(function(stub) {\r\n return stub.replace(/'/g, \"\")\r\n })\r\n },\r\n _truncateToPrecision: function(value, maxPrecision) {\r\n if ((0, _type.isDefined)(value)) {\r\n var strValue = value.toString();\r\n var decimalSeparatorIndex = strValue.indexOf(\".\");\r\n if (strValue && decimalSeparatorIndex > -1) {\r\n var parsedValue = parseFloat(strValue.substr(0, decimalSeparatorIndex + maxPrecision + 1));\r\n return isNaN(parsedValue) ? value : parsedValue\r\n }\r\n }\r\n return value\r\n },\r\n _tryParse: function(text, selection, char) {\r\n var editedText = this._replaceSelectedText(text, selection, char);\r\n var format = this._getFormatPattern();\r\n var isTextSelected = selection.start !== selection.end;\r\n var parsedValue = this._getParsedValue(editedText, format);\r\n var maxPrecision = !format.parser && this._getPrecisionLimits(editedText).max;\r\n var isValueChanged = parsedValue !== this._parsedValue;\r\n var decimalSeparator = _number.default.getDecimalSeparator();\r\n var isDecimalPointRestricted = char === decimalSeparator && 0 === maxPrecision;\r\n var isUselessCharRestricted = !isTextSelected && !isValueChanged && char !== MINUS && !this._isValueIncomplete(editedText) && this._isStub(char);\r\n if (isDecimalPointRestricted || isUselessCharRestricted) {\r\n return\r\n }\r\n if (\"\" === this._removeStubs(editedText)) {\r\n parsedValue = Math.abs(0 * this._parsedValue)\r\n }\r\n if (isNaN(parsedValue)) {\r\n return\r\n }\r\n var value = null === parsedValue ? this._parsedValue : parsedValue;\r\n parsedValue = maxPrecision ? this._truncateToPrecision(value, maxPrecision) : parsedValue;\r\n return !format.parser && this._isPercentFormat() ? parsedValue && parsedValue / 100 : parsedValue\r\n },\r\n _getParsedValue: function(text, format) {\r\n var sign = _number.default.getSign(text, (null === format || void 0 === format ? void 0 : format.formatter) || format);\r\n var parsedValue = this._parse(text, format);\r\n var parsedValueSign = parsedValue < 0 ? -1 : 1;\r\n var parsedValueWithSign = (0, _type.isNumeric)(parsedValue) && sign !== parsedValueSign ? sign * parsedValue : parsedValue;\r\n return parsedValueWithSign\r\n },\r\n _isValueIncomplete: function(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n var caret = this._caret();\r\n var point = _number.default.getDecimalSeparator();\r\n var pointIndex = this._getTextSeparatorIndex(text);\r\n var isCaretOnFloat = pointIndex >= 0 && pointIndex < caret.start;\r\n var textParts = this._removeStubs(text, true).split(point);\r\n if (!isCaretOnFloat || 2 !== textParts.length) {\r\n return false\r\n }\r\n var floatLength = textParts[1].length;\r\n var format = this._getFormatPattern();\r\n var isCustomParser = !!format.parser;\r\n var precision = !isCustomParser && this._getPrecisionLimits(this._getFormatPattern(), text);\r\n var isPrecisionInRange = isCustomParser ? true : (0, _math.inRange)(floatLength, precision.min, precision.max);\r\n var endsWithZero = \"0\" === textParts[1].charAt(floatLength - 1);\r\n return isPrecisionInRange && (endsWithZero || !floatLength)\r\n },\r\n _isValueInRange: function(value) {\r\n var min = (0, _common.ensureDefined)(this.option(\"min\"), -(1 / 0));\r\n var max = (0, _common.ensureDefined)(this.option(\"max\"), 1 / 0);\r\n return (0, _math.inRange)(value, min, max)\r\n },\r\n _setInputText: function(text) {\r\n var normalizedText = _number.default.convertDigits(text, true);\r\n var newCaret = (0, _number_box.getCaretAfterFormat)(this._getInputVal(), normalizedText, this._caret(), this._getFormatPattern());\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler();\r\n this._formattedValue = text;\r\n if (!this._focusOutOccurs) {\r\n this._caret(newCaret)\r\n }\r\n },\r\n _useMaskBehavior: function() {\r\n return !!this.option(\"format\") && this.option(\"useMaskBehavior\")\r\n },\r\n _renderInputType: function() {\r\n var isNumberType = \"number\" === this.option(\"mode\");\r\n var isDesktop = \"desktop\" === _devices.default.real().deviceType;\r\n if (this._useMaskBehavior() && isNumberType) {\r\n this._setInputType(isDesktop || this._isSupportInputMode() ? \"text\" : \"tel\")\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _isChar: function(str) {\r\n return (0, _type.isString)(str) && 1 === str.length\r\n },\r\n _moveCaret: function(offset) {\r\n if (!offset) {\r\n return\r\n }\r\n var newCaret = (0, _number_box.getCaretWithOffset)(this._caret(), offset);\r\n var adjustedCaret = (0, _number_box.getCaretInBoundaries)(newCaret, this._getInputVal(), this._getFormatPattern());\r\n this._caret(adjustedCaret)\r\n },\r\n _shouldHandleKey: function(e) {\r\n var keyName = (0, _index.normalizeKeyName)(e);\r\n var isSpecialChar = e.ctrlKey || e.shiftKey || e.altKey || !this._isChar(keyName);\r\n var isMinusKey = keyName === MINUS_KEY;\r\n var useMaskBehavior = this._useMaskBehavior();\r\n return useMaskBehavior && !isSpecialChar && !isMinusKey\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._renderFormatter()\r\n },\r\n _renderFormatter: function() {\r\n this._clearCache();\r\n this._detachFormatterEvents();\r\n if (this._useMaskBehavior()) {\r\n this._attachFormatterEvents()\r\n }\r\n },\r\n _detachFormatterEvents: function() {\r\n _events_engine.default.off(this._input(), \".\" + NUMBER_FORMATTER_NAMESPACE)\r\n },\r\n _isInputFromPaste: function(e) {\r\n var inputType = e.originalEvent && e.originalEvent.inputType;\r\n if ((0, _type.isDefined)(inputType)) {\r\n return \"insertFromPaste\" === inputType\r\n } else {\r\n return this._isValuePasted\r\n }\r\n },\r\n _attachFormatterEvents: function() {\r\n var $input = this._input();\r\n _events_engine.default.on($input, (0, _index.addNamespace)(INPUT_EVENT, NUMBER_FORMATTER_NAMESPACE), function(e) {\r\n this._formatValue(e);\r\n this._isValuePasted = false\r\n }.bind(this));\r\n if (_browser.default.msie && _browser.default.version < 12) {\r\n _events_engine.default.on($input, (0, _index.addNamespace)(\"paste\", NUMBER_FORMATTER_NAMESPACE), function() {\r\n this._isValuePasted = true\r\n }.bind(this))\r\n }\r\n _events_engine.default.on($input, (0, _index.addNamespace)(\"dxclick\", NUMBER_FORMATTER_NAMESPACE), function() {\r\n if (!this._caretTimeout) {\r\n this._caretTimeout = setTimeout(function() {\r\n this._caret((0, _number_box.getCaretInBoundaries)(this._caret(), this._getInputVal(), this._getFormatPattern()))\r\n }.bind(this), CARET_TIMEOUT_DURATION)\r\n }\r\n }.bind(this));\r\n _events_engine.default.on($input, \"dxdblclick\", function() {\r\n this.clearCaretTimeout()\r\n }.bind(this))\r\n },\r\n clearCaretTimeout: function() {\r\n clearTimeout(this._caretTimeout);\r\n this._caretTimeout = null\r\n },\r\n _forceRefreshInputValue: function() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n },\r\n _isNonStubAfter: function(index) {\r\n var text = this._getInputVal().slice(index);\r\n return text && !this._isStub(text, true)\r\n },\r\n _isStub: function(str, isString) {\r\n var escapedDecimalSeparator = (0, _common.escapeRegExp)(_number.default.getDecimalSeparator());\r\n var regExpString = \"^[^0-9\" + escapedDecimalSeparator + \"]+$\";\r\n var stubRegExp = new RegExp(regExpString, \"g\");\r\n return stubRegExp.test(str) && (isString || this._isChar(str))\r\n },\r\n _parseValue: function(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n return this._parsedValue\r\n },\r\n _getPrecisionLimits: function(text) {\r\n var currentFormat = this._getFormatForSign(text);\r\n var realSeparatorIndex = (0, _utils.getRealSeparatorIndex)(currentFormat).index;\r\n var floatPart = ((0, _utils.splitByIndex)(currentFormat, realSeparatorIndex)[1] || \"\").replace(/[^#0]/g, \"\");\r\n var minPrecision = floatPart.replace(/^(0*)#*/, \"$1\").length;\r\n var maxPrecision = floatPart.length;\r\n return {\r\n min: minPrecision,\r\n max: maxPrecision\r\n }\r\n },\r\n _revertSign: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n if (caret.start !== caret.end) {\r\n if ((0, _index.normalizeKeyName)(e) === MINUS_KEY) {\r\n this._applyRevertedSign(e, caret, true);\r\n return\r\n } else {\r\n this._caret((0, _number_box.getCaretInBoundaries)(0, this._getInputVal(), this._getFormatPattern()))\r\n }\r\n }\r\n this._applyRevertedSign(e, caret)\r\n },\r\n _applyRevertedSign: function(e, caret, preserveSelectedText) {\r\n var newValue = -1 * (0, _common.ensureDefined)(this._parsedValue, null);\r\n if (this._isValueInRange(newValue)) {\r\n this._parsedValue = newValue;\r\n if (preserveSelectedText) {\r\n var format = this._getFormatPattern();\r\n var previousText = this._getInputVal();\r\n this._setTextByParsedValue();\r\n e.preventDefault();\r\n var currentText = this._getInputVal();\r\n var offset = (0, _number_box.getCaretOffset)(previousText, currentText, format);\r\n caret = (0, _number_box.getCaretWithOffset)(caret, offset);\r\n var caretInBoundaries = (0, _number_box.getCaretInBoundaries)(caret, currentText, format);\r\n if (_browser.default.msie) {\r\n clearTimeout(this._caretTimeout);\r\n this._caretTimeout = setTimeout(this._caret.bind(this, caretInBoundaries))\r\n } else {\r\n this._caret(caretInBoundaries)\r\n }\r\n }\r\n if (e.key === NUMPUD_MINUS_KEY_IE) {\r\n _events_engine.default.trigger(this._input(), INPUT_EVENT)\r\n }\r\n }\r\n },\r\n _removeMinusFromText: function(text, caret) {\r\n var isMinusPressed = this._lastKeyName === MINUS_KEY && text.charAt(caret.start - 1) === MINUS;\r\n return isMinusPressed ? this._replaceSelectedText(text, {\r\n start: caret.start - 1,\r\n end: caret.start\r\n }, \"\") : text\r\n },\r\n _setTextByParsedValue: function() {\r\n var format = this._getFormatPattern();\r\n var parsed = this._parseValue();\r\n var formatted = this._format(parsed, format) || \"\";\r\n this._setInputText(formatted)\r\n },\r\n _formatValue: function(e) {\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var textWithoutMinus = this._removeMinusFromText(normalizedText, caret);\r\n var wasMinusRemoved = textWithoutMinus !== normalizedText;\r\n normalizedText = textWithoutMinus;\r\n if (!this._isInputFromPaste(e) && this._isValueIncomplete(textWithoutMinus)) {\r\n this._formattedValue = normalizedText;\r\n if (wasMinusRemoved) {\r\n this._setTextByParsedValue()\r\n }\r\n return\r\n }\r\n var textWasChanged = _number.default.convertDigits(this._formattedValue, true) !== normalizedText;\r\n if (textWasChanged) {\r\n var value = this._tryParse(normalizedText, caret, \"\");\r\n if ((0, _type.isDefined)(value)) {\r\n this._parsedValue = value\r\n }\r\n }\r\n this._setTextByParsedValue()\r\n },\r\n _renderDisplayText: function() {\r\n if (this._useMaskBehavior()) {\r\n this._toggleEmptinessEventHandler()\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this._useMaskBehavior()) {\r\n this._parsedValue = this.option(\"value\");\r\n this._setTextByParsedValue()\r\n }\r\n return this.callBase()\r\n },\r\n _updateParsedValue: function() {\r\n var inputValue = this._getInputVal();\r\n this._parsedValue = this._tryParse(inputValue, this._caret())\r\n },\r\n _adjustParsedValue: function() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var clearedText = this._removeStubs(this._getInputVal());\r\n var parsedValue = clearedText ? this._parseValue() : null;\r\n if (!(0, _type.isNumeric)(parsedValue)) {\r\n this._parsedValue = parsedValue;\r\n return\r\n }\r\n this._parsedValue = (0, _math.fitIntoRange)(parsedValue, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(e)\r\n }\r\n var caret = this._caret();\r\n this._saveValueChangeEvent(e);\r\n this._lastKey = null;\r\n this._lastKeyName = null;\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this.option(\"value\", this._parsedValue);\r\n if (caret) {\r\n this._caret(caret)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"format\":\r\n case \"useMaskBehavior\":\r\n this._renderInputType();\r\n this._updateFormat();\r\n this._renderFormatter();\r\n this._renderValue();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._adjustParsedValue();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearCache: function() {\r\n delete this._formattedValue;\r\n delete this._lastKey;\r\n delete this._lastKeyName;\r\n delete this._parsedValue;\r\n delete this._focusOutOccurs;\r\n clearTimeout(this._caretTimeout);\r\n delete this._caretTimeout\r\n },\r\n _clean: function() {\r\n this._clearCache();\r\n this.callBase()\r\n }\r\n});\r\nvar _default = NumberBoxMask;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (localization/intl/date.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _core = _interopRequireDefault(require(\"../core\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nvar SYMBOLS_TO_REMOVE_REGEX = /[\\u200E\\u200F]/g;\r\nvar getIntlFormatter = function(format) {\r\n return function(date) {\r\n if (!format.timeZoneName) {\r\n var year = date.getFullYear();\r\n var recognizableAsTwentyCentury = String(year).length < 3;\r\n var safeYearShift = 400;\r\n var temporaryYearValue = recognizableAsTwentyCentury ? year + safeYearShift : year;\r\n var utcDate = new Date(Date.UTC(temporaryYearValue, date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));\r\n if (recognizableAsTwentyCentury) {\r\n utcDate.setFullYear(year)\r\n }\r\n var utcFormat = (0, _extend.extend)({\r\n timeZone: \"UTC\"\r\n }, format);\r\n return formatDateTime(utcDate, utcFormat)\r\n }\r\n return formatDateTime(date, format)\r\n }\r\n};\r\nvar formattersCache = {};\r\nvar getFormatter = function(format) {\r\n var key = _core.default.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.DateTimeFormat(_core.default.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\n\r\nfunction formatDateTime(date, format) {\r\n return getFormatter(format)(date).replace(SYMBOLS_TO_REMOVE_REGEX, \"\")\r\n}\r\nvar formatNumber = function(number) {\r\n return new Intl.NumberFormat(_core.default.locale()).format(number)\r\n};\r\nvar getAlternativeNumeralsMap = function() {\r\n var numeralsMapCache = {};\r\n return function(locale) {\r\n if (!(locale in numeralsMapCache)) {\r\n if (\"0\" === formatNumber(0)) {\r\n numeralsMapCache[locale] = false;\r\n return false\r\n }\r\n numeralsMapCache[locale] = {};\r\n for (var i = 0; i < 10; ++i) {\r\n numeralsMapCache[locale][formatNumber(i)] = i\r\n }\r\n }\r\n return numeralsMapCache[locale]\r\n }\r\n}();\r\nvar normalizeNumerals = function(dateString) {\r\n var alternativeNumeralsMap = getAlternativeNumeralsMap(_core.default.locale());\r\n if (!alternativeNumeralsMap) {\r\n return dateString\r\n }\r\n return dateString.split(\"\").map(function(sign) {\r\n return sign in alternativeNumeralsMap ? String(alternativeNumeralsMap[sign]) : sign\r\n }).join(\"\")\r\n};\r\nvar removeLeadingZeroes = function(str) {\r\n return str.replace(/(\\D)0+(\\d)/g, \"$1$2\")\r\n};\r\nvar dateStringEquals = function(actual, expected) {\r\n return removeLeadingZeroes(actual) === removeLeadingZeroes(expected)\r\n};\r\nvar normalizeMonth = function(text) {\r\n return text.replace(\"d\\u2019\", \"de \")\r\n};\r\nvar intlFormats = {\r\n day: {\r\n day: \"numeric\"\r\n },\r\n dayofweek: {\r\n weekday: \"long\"\r\n },\r\n longdate: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n longdatelongtime: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n longtime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n month: {\r\n month: \"long\"\r\n },\r\n monthandday: {\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n monthandyear: {\r\n year: \"numeric\",\r\n month: \"long\"\r\n },\r\n shortdate: {},\r\n shorttime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n },\r\n shortyear: {\r\n year: \"2-digit\"\r\n },\r\n year: {\r\n year: \"numeric\"\r\n }\r\n};\r\nObject.defineProperty(intlFormats, \"shortdateshorttime\", {\r\n get: function() {\r\n var defaultOptions = Intl.DateTimeFormat(_core.default.locale()).resolvedOptions();\r\n return {\r\n year: defaultOptions.year,\r\n month: defaultOptions.month,\r\n day: defaultOptions.day,\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n }\r\n }\r\n});\r\nvar getIntlFormat = function(format) {\r\n return \"string\" === typeof format && intlFormats[format.toLowerCase()]\r\n};\r\nvar monthNameStrategies = {\r\n standalone: function(monthIndex, monthFormat) {\r\n var date = new Date(1999, monthIndex, 13, 1);\r\n var dateString = getIntlFormatter({\r\n month: monthFormat\r\n })(date);\r\n return dateString\r\n },\r\n format: function(monthIndex, monthFormat) {\r\n var date = new Date(0, monthIndex, 13, 1);\r\n var dateString = normalizeMonth(getIntlFormatter({\r\n day: \"numeric\",\r\n month: monthFormat\r\n })(date));\r\n var parts = dateString.split(\" \").filter(function(part) {\r\n return part.indexOf(\"13\") < 0\r\n });\r\n if (1 === parts.length) {\r\n return parts[0]\r\n } else {\r\n if (2 === parts.length) {\r\n return parts[0].length > parts[1].length ? parts[0] : parts[1]\r\n }\r\n }\r\n return monthNameStrategies.standalone(monthIndex, monthFormat)\r\n }\r\n};\r\nvar _default = {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n getMonthNames: function(format, type) {\r\n var intlFormats = {\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n narrow: \"narrow\"\r\n };\r\n var monthFormat = intlFormats[format || \"wide\"];\r\n type = \"format\" === type ? type : \"standalone\";\r\n return Array.apply(null, new Array(12)).map(function(_, monthIndex) {\r\n return monthNameStrategies[type](monthIndex, monthFormat)\r\n })\r\n },\r\n getDayNames: function(format) {\r\n var intlFormats = {\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n \"short\": \"narrow\",\r\n narrow: \"narrow\"\r\n };\r\n var getIntlDayNames = function(format) {\r\n return Array.apply(null, new Array(7)).map(function(_, dayIndex) {\r\n return getIntlFormatter({\r\n weekday: format\r\n })(new Date(0, 0, dayIndex))\r\n })\r\n };\r\n var result = getIntlDayNames(intlFormats[format || \"wide\"]);\r\n return result\r\n },\r\n getPeriodNames: function() {\r\n var hour12Formatter = getIntlFormatter({\r\n hour: \"numeric\",\r\n hour12: true\r\n });\r\n return [1, 13].map(function(hours) {\r\n var hourNumberText = formatNumber(1);\r\n var timeParts = hour12Formatter(new Date(0, 0, 1, hours)).split(hourNumberText);\r\n if (2 !== timeParts.length) {\r\n return \"\"\r\n }\r\n var biggerPart = timeParts[0].length > timeParts[1].length ? timeParts[0] : timeParts[1];\r\n return biggerPart.trim()\r\n })\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n if (\"function\" !== typeof _format && !_format.formatter) {\r\n _format = _format.type || _format\r\n }\r\n var intlFormat = getIntlFormat(_format);\r\n if (intlFormat) {\r\n return getIntlFormatter(intlFormat)(date)\r\n }\r\n var formatType = _typeof(_format);\r\n if (_format.formatter || \"function\" === formatType || \"string\" === formatType) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getIntlFormatter(_format)(date)\r\n },\r\n parse: function(dateString, format) {\r\n var _this = this;\r\n var formatter;\r\n if (format && !format.parser && \"string\" === typeof dateString) {\r\n dateString = normalizeMonth(dateString);\r\n formatter = function(date) {\r\n return normalizeMonth(_this.format(date, format))\r\n }\r\n }\r\n return this.callBase(dateString, formatter || format)\r\n },\r\n _parseDateBySimpleFormat: function(dateString, format) {\r\n var _this2 = this;\r\n dateString = normalizeNumerals(dateString);\r\n var formatParts = this.getFormatParts(format);\r\n var dateParts = dateString.split(/\\D+/).filter(function(part) {\r\n return part.length > 0\r\n });\r\n if (formatParts.length !== dateParts.length) {\r\n return\r\n }\r\n var dateArgs = this._generateDateArgs(formatParts, dateParts);\r\n var constructDate = function(dateArgs, ampmShift) {\r\n var hoursShift = ampmShift ? 12 : 0;\r\n return new Date(dateArgs.year, dateArgs.month, dateArgs.day, (dateArgs.hours + hoursShift) % 24, dateArgs.minutes, dateArgs.seconds)\r\n };\r\n var constructValidDate = function(ampmShift) {\r\n var parsedDate = constructDate(dateArgs, ampmShift);\r\n if (dateStringEquals(normalizeNumerals(_this2.format(parsedDate, format)), dateString)) {\r\n return parsedDate\r\n }\r\n };\r\n return constructValidDate(false) || constructValidDate(true)\r\n },\r\n _generateDateArgs: function(formatParts, dateParts) {\r\n var currentDate = new Date;\r\n var dateArgs = {\r\n year: currentDate.getFullYear(),\r\n month: currentDate.getMonth(),\r\n day: currentDate.getDate(),\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0\r\n };\r\n formatParts.forEach(function(formatPart, index) {\r\n var datePart = dateParts[index];\r\n var parsed = parseInt(datePart, 10);\r\n if (\"month\" === formatPart) {\r\n parsed -= 1\r\n }\r\n dateArgs[formatPart] = parsed\r\n });\r\n return dateArgs\r\n },\r\n formatUsesMonthName: function(format) {\r\n if (\"object\" === _typeof(format) && !(format.type || format.format)) {\r\n return \"long\" === format.month\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n formatUsesDayName: function(format) {\r\n if (\"object\" === _typeof(format) && !(format.type || format.format)) {\r\n return \"long\" === format.weekday\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getFormatParts: function(format) {\r\n if (\"string\" === typeof format) {\r\n return this.callBase(format)\r\n }\r\n var intlFormat = (0, _extend.extend)({}, intlFormats[format.toLowerCase()]);\r\n var date = new Date(2001, 2, 4, 5, 6, 7);\r\n var formattedDate = getIntlFormatter(intlFormat)(date);\r\n formattedDate = normalizeNumerals(formattedDate);\r\n var formatParts = [{\r\n name: \"year\",\r\n value: 1\r\n }, {\r\n name: \"month\",\r\n value: 3\r\n }, {\r\n name: \"day\",\r\n value: 4\r\n }, {\r\n name: \"hours\",\r\n value: 5\r\n }, {\r\n name: \"minutes\",\r\n value: 6\r\n }, {\r\n name: \"seconds\",\r\n value: 7\r\n }];\r\n return formatParts.map(function(part) {\r\n return {\r\n name: part.name,\r\n index: formattedDate.indexOf(part.value)\r\n }\r\n }).filter(function(part) {\r\n return part.index > -1\r\n }).sort(function(a, b) {\r\n return a.index - b.index\r\n }).map(function(part) {\r\n return part.name\r\n })\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/number_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 _number_box = _interopRequireDefault(require(\"./number_box/number_box\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _number_box.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (localization/date.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 _dependency_injector = _interopRequireDefault(require(\"../core/utils/dependency_injector\"));\r\nvar _type = require(\"../core/utils/type\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _array = require(\"../core/utils/array\");\r\nvar _errors = _interopRequireDefault(require(\"../core/errors\"));\r\nvar _date = require(\"./ldml/date.formatter\");\r\nvar _date2 = require(\"./ldml/date.format\");\r\nvar _date3 = require(\"./ldml/date.parser\");\r\nvar _default_date_names = _interopRequireDefault(require(\"./default_date_names\"));\r\nvar _first_day_of_week_data = _interopRequireDefault(require(\"./cldr-data/first_day_of_week_data\"));\r\nvar _core = _interopRequireDefault(require(\"./core\"));\r\nvar _number = _interopRequireDefault(require(\"./number\"));\r\nvar _date4 = _interopRequireDefault(require(\"./intl/date\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DEFAULT_DAY_OF_WEEK_INDEX = 0;\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar FORMATS_TO_PATTERN_MAP = {\r\n shortdate: \"M/d/y\",\r\n shorttime: \"h:mm a\",\r\n longdate: \"EEEE, MMMM d, y\",\r\n longtime: \"h:mm:ss a\",\r\n monthandday: \"MMMM d\",\r\n monthandyear: \"MMMM y\",\r\n quarterandyear: \"QQQ y\",\r\n day: \"d\",\r\n year: \"y\",\r\n shortdateshorttime: \"M/d/y, h:mm a\",\r\n longdatelongtime: \"EEEE, MMMM d, y, h:mm:ss a\",\r\n month: \"LLLL\",\r\n shortyear: \"yy\",\r\n dayofweek: \"EEEE\",\r\n quarter: \"QQQ\",\r\n hour: \"HH\",\r\n minute: \"mm\",\r\n second: \"ss\",\r\n millisecond: \"SSS\",\r\n \"datetime-local\": \"yyyy-MM-ddTHH':'mm':'ss\"\r\n};\r\nvar possiblePartPatterns = {\r\n year: [\"y\", \"yy\", \"yyyy\"],\r\n day: [\"d\", \"dd\"],\r\n month: [\"M\", \"MM\", \"MMM\", \"MMMM\"],\r\n hours: [\"H\", \"HH\", \"h\", \"hh\", \"ah\"],\r\n minutes: [\"m\", \"mm\"],\r\n seconds: [\"s\", \"ss\"],\r\n milliseconds: [\"S\", \"SS\", \"SSS\"]\r\n};\r\nvar dateLocalization = (0, _dependency_injector.default)({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _getPatternByFormat: function(format) {\r\n return FORMATS_TO_PATTERN_MAP[format.toLowerCase()]\r\n },\r\n _expandPattern: function(pattern) {\r\n return this._getPatternByFormat(pattern) || pattern\r\n },\r\n formatUsesMonthName: function(format) {\r\n return this._expandPattern(format).indexOf(\"MMMM\") !== -1\r\n },\r\n formatUsesDayName: function(format) {\r\n return this._expandPattern(format).indexOf(\"EEEE\") !== -1\r\n },\r\n getFormatParts: function(format) {\r\n var pattern = this._getPatternByFormat(format) || format;\r\n var result = [];\r\n (0, _iterator.each)(pattern.split(/\\W+/), function(_, formatPart) {\r\n (0, _iterator.each)(possiblePartPatterns, function(partName, possiblePatterns) {\r\n if ((0, _array.inArray)(formatPart, possiblePatterns) > -1) {\r\n result.push(partName)\r\n }\r\n })\r\n });\r\n return result\r\n },\r\n getMonthNames: function(format) {\r\n return _default_date_names.default.getMonthNames(format)\r\n },\r\n getDayNames: function(format) {\r\n return _default_date_names.default.getDayNames(format)\r\n },\r\n getQuarterNames: function(format) {\r\n return _default_date_names.default.getQuarterNames(format)\r\n },\r\n getPeriodNames: function(format) {\r\n return _default_date_names.default.getPeriodNames(format)\r\n },\r\n getTimeSeparator: function() {\r\n return \":\"\r\n },\r\n is24HourFormat: function(format) {\r\n var amTime = new Date(2017, 0, 20, 11, 0, 0, 0);\r\n var pmTime = new Date(2017, 0, 20, 23, 0, 0, 0);\r\n var amTimeFormatted = this.format(amTime, format);\r\n var pmTimeFormatted = this.format(pmTime, format);\r\n for (var i = 0; i < amTimeFormatted.length; i++) {\r\n if (amTimeFormatted[i] !== pmTimeFormatted[i]) {\r\n return !isNaN(parseInt(amTimeFormatted[i]))\r\n }\r\n }\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n var formatter;\r\n if (\"function\" === typeof _format) {\r\n formatter = _format\r\n } else {\r\n if (_format.formatter) {\r\n formatter = _format.formatter\r\n } else {\r\n _format = _format.type || _format;\r\n if ((0, _type.isString)(_format)) {\r\n _format = FORMATS_TO_PATTERN_MAP[_format.toLowerCase()] || _format;\r\n return _number.default.convertDigits((0, _date.getFormatter)(_format, this)(date))\r\n }\r\n }\r\n }\r\n if (!formatter) {\r\n return\r\n }\r\n return formatter(date)\r\n },\r\n parse: function(text, format) {\r\n var that = this;\r\n var ldmlFormat;\r\n var formatter;\r\n if (!text) {\r\n return\r\n }\r\n if (!format) {\r\n return this.parse(text, \"shortdate\")\r\n }\r\n if (format.parser) {\r\n return format.parser(text)\r\n }\r\n if (\"string\" === typeof format && !FORMATS_TO_PATTERN_MAP[format.toLowerCase()]) {\r\n ldmlFormat = format\r\n } else {\r\n formatter = function(value) {\r\n var text = that.format(value, format);\r\n return _number.default.convertDigits(text, true)\r\n };\r\n try {\r\n ldmlFormat = (0, _date2.getFormat)(formatter)\r\n } catch (e) {}\r\n }\r\n if (ldmlFormat) {\r\n text = _number.default.convertDigits(text, true);\r\n return (0, _date3.getParser)(ldmlFormat, this)(text)\r\n }\r\n _errors.default.log(\"W0012\");\r\n var result = new Date(text);\r\n if (!result || isNaN(result.getTime())) {\r\n return\r\n }\r\n return result\r\n },\r\n firstDayOfWeekIndex: function() {\r\n var index = _core.default.getValueByClosestLocale(function(locale) {\r\n return _first_day_of_week_data.default[locale]\r\n });\r\n return void 0 === index ? DEFAULT_DAY_OF_WEEK_INDEX : index\r\n }\r\n});\r\nif (hasIntl) {\r\n dateLocalization.inject(_date4.default)\r\n}\r\nvar _default = dateLocalization;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (events/gesture/swipeable.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 _swipe = require(\"../swipe\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _dom_component = _interopRequireDefault(require(\"../../core/dom_component\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _index = require(\"../utils/index\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _public_component = require(\"../../core/utils/public_component\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DX_SWIPEABLE = \"dxSwipeable\";\r\nvar SWIPEABLE_CLASS = \"dx-swipeable\";\r\nvar ACTION_TO_EVENT_MAP = {\r\n onStart: _swipe.start,\r\n onUpdated: _swipe.swipe,\r\n onEnd: _swipe.end,\r\n onCancel: \"dxswipecancel\"\r\n};\r\nvar Swipeable = _dom_component.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n elastic: true,\r\n immediate: false,\r\n direction: \"horizontal\",\r\n itemSizeFunc: null,\r\n onStart: null,\r\n onUpdated: null,\r\n onEnd: null,\r\n onCancel: null\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(SWIPEABLE_CLASS);\r\n this._attachEventHandlers()\r\n },\r\n _attachEventHandlers: function() {\r\n this._detachEventHandlers();\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var NAME = this.NAME;\r\n this._createEventData();\r\n (0, _iterator.each)(ACTION_TO_EVENT_MAP, function(actionName, eventName) {\r\n var action = this._createActionByOption(actionName, {\r\n context: this\r\n });\r\n eventName = (0, _index.addNamespace)(eventName, NAME);\r\n _events_engine.default.on(this.$element(), eventName, this._eventData, function(e) {\r\n return action({\r\n event: e\r\n })\r\n })\r\n }.bind(this))\r\n },\r\n _createEventData: function() {\r\n this._eventData = {\r\n elastic: this.option(\"elastic\"),\r\n itemSizeFunc: this.option(\"itemSizeFunc\"),\r\n direction: this.option(\"direction\"),\r\n immediate: this.option(\"immediate\")\r\n }\r\n },\r\n _detachEventHandlers: function() {\r\n _events_engine.default.off(this.$element(), \".\" + DX_SWIPEABLE)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n case \"onStart\":\r\n case \"onUpdated\":\r\n case \"onEnd\":\r\n case \"onCancel\":\r\n case \"elastic\":\r\n case \"immediate\":\r\n case \"itemSizeFunc\":\r\n case \"direction\":\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"rtlEnabled\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\n(0, _public_component.name)(Swipeable, DX_SWIPEABLE);\r\nvar _default = Swipeable;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/date_box/ui.date_box.strategy.native.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 _common = require(\"../../core/utils/common\");\r\nvar _uiDate_box = _interopRequireDefault(require(\"./ui.date_box.strategy\"));\r\nvar _support = require(\"../../core/utils/support\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _ui = _interopRequireDefault(require(\"./ui.date_utils\"));\r\nvar _date_serialization = _interopRequireDefault(require(\"../../core/utils/date_serialization\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar NativeStrategy = _uiDate_box.default.inherit({\r\n NAME: \"Native\",\r\n popupConfig: function(_popupConfig) {\r\n return (0, _extend.extend)({}, _popupConfig, {\r\n width: \"auto\"\r\n })\r\n },\r\n getParsedText: function(text, format) {\r\n if (!text) {\r\n return null\r\n }\r\n if (\"datetime\" === this.dateBox.option(\"type\")) {\r\n return new Date(text.replace(/-/g, \"/\").replace(\"T\", \" \").split(\".\")[0])\r\n }\r\n if (this._isTextInput()) {\r\n return this.callBase(text, format)\r\n } else {\r\n return _ui.default.fromStandardDateFormat(text)\r\n }\r\n },\r\n _isTextInput: function() {\r\n return \"text\" === this.dateBox._input().prop(\"type\")\r\n },\r\n renderPopupContent: _common.noop,\r\n _getWidgetName: _common.noop,\r\n _getWidgetOptions: _common.noop,\r\n _getDateBoxType: function() {\r\n var type = this.dateBox.option(\"type\");\r\n if ((0, _array.inArray)(type, _ui.default.SUPPORTED_FORMATS) === -1) {\r\n type = \"date\"\r\n } else {\r\n if (\"datetime\" === type && !(0, _support.inputType)(type)) {\r\n type = \"datetime-local\"\r\n }\r\n }\r\n return type\r\n },\r\n customizeButtons: function() {\r\n var dropDownButton = this.dateBox.getButton(\"dropDown\");\r\n if (_devices.default.real().android && dropDownButton) {\r\n dropDownButton.on(\"click\", function() {\r\n this.dateBox._input().get(0).click()\r\n }.bind(this))\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return {\r\n mode: this._getDateBoxType()\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n var type = this._getDateBoxType();\r\n return displayFormat || _ui.default.FORMATS_MAP[type]\r\n },\r\n renderInputMinMax: function($input) {\r\n $input.attr({\r\n min: _date_serialization.default.serializeDate(this.dateBox.dateOption(\"min\"), \"yyyy-MM-dd\"),\r\n max: _date_serialization.default.serializeDate(this.dateBox.dateOption(\"max\"), \"yyyy-MM-dd\")\r\n })\r\n }\r\n});\r\nvar _default = NativeStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/date_box/ui.date_box.strategy.date_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 _window = require(\"../../core/utils/window\");\r\nvar _ui = _interopRequireDefault(require(\"./ui.date_view\"));\r\nvar _uiDate_box = _interopRequireDefault(require(\"./ui.date_box.strategy\"));\r\nvar _support = require(\"../../core/utils/support\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _ui2 = _interopRequireDefault(require(\"./ui.date_utils\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar DateViewStrategy = _uiDate_box.default.inherit({\r\n NAME: \"DateView\",\r\n getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n openOnFieldClick: true,\r\n applyButtonText: _message.default.format(\"OK\"),\r\n \"dropDownOptions.showTitle\": true\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || _ui2.default.FORMATS_MAP[this.dateBox.option(\"type\")]\r\n },\r\n popupConfig: function(config) {\r\n return {\r\n toolbarItems: this.dateBox._popupToolbarItemsConfig(),\r\n onInitialized: config.onInitialized,\r\n defaultOptionsRules: [{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n width: 333,\r\n height: 331\r\n }\r\n }, {\r\n device: function(_device) {\r\n var platform = _device.platform;\r\n return \"generic\" === platform || \"ios\" === platform\r\n },\r\n options: {\r\n width: \"auto\",\r\n height: \"auto\"\r\n }\r\n }, {\r\n device: function(_device2) {\r\n var platform = _device2.platform;\r\n var phone = _device2.phone;\r\n return \"generic\" === platform && phone\r\n },\r\n options: {\r\n width: 333,\r\n maxWidth: \"100%\",\r\n maxHeight: \"100%\",\r\n height: \"auto\",\r\n position: {\r\n collision: \"flipfit flip\"\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"ios\",\r\n phone: true\r\n },\r\n options: {\r\n width: \"100%\",\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }]\r\n }\r\n },\r\n _renderWidget: function() {\r\n if ((0, _support.inputType)(this.dateBox.option(\"mode\")) && this.dateBox._isNativeType() || this.dateBox.option(\"readOnly\")) {\r\n if (this._widget) {\r\n this._widget.$element().remove();\r\n this._widget = null\r\n }\r\n return\r\n }\r\n var popup = this._getPopup();\r\n if (this._widget) {\r\n this._widget.option(this._getWidgetOptions())\r\n } else {\r\n var element = (0, _renderer.default)(\"
\").appendTo(popup.$content());\r\n this._widget = this._createWidget(element)\r\n }\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _getWidgetName: function() {\r\n return _ui.default\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n if (this._widget) {\r\n this._widget.option(\"value\", this._widget._getCurrentDate())\r\n }\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n value: this.dateBoxValue() || new Date,\r\n type: this.dateBox.option(\"type\"),\r\n minDate: this.dateBox.dateOption(\"min\") || new Date(1900, 0, 1),\r\n maxDate: this.dateBox.dateOption(\"max\") || new Date(Date.now() + 50 * _ui2.default.ONE_YEAR),\r\n onDisposing: function() {\r\n this._widget = null\r\n }.bind(this)\r\n }\r\n }\r\n});\r\nvar _default = DateViewStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/date_box/ui.time_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 _editor = _interopRequireDefault(require(\"../editor/editor\"));\r\nvar _number_box = _interopRequireDefault(require(\"../number_box\"));\r\nvar _select_box = _interopRequireDefault(require(\"../select_box\"));\r\nvar _box = _interopRequireDefault(require(\"../box\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _date = _interopRequireDefault(require(\"../../localization/date\"));\r\nvar _ui = _interopRequireDefault(require(\"./ui.date_utils\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TIMEVIEW_CLASS = \"dx-timeview\";\r\nvar TIMEVIEW_CLOCK_CLASS = \"dx-timeview-clock\";\r\nvar TIMEVIEW_FIELD_CLASS = \"dx-timeview-field\";\r\nvar TIMEVIEW_HOURARROW_CLASS = \"dx-timeview-hourarrow\";\r\nvar TIMEVIEW_TIME_SEPARATOR_CLASS = \"dx-timeview-time-separator\";\r\nvar TIMEVIEW_FORMAT12_CLASS = \"dx-timeview-format12\";\r\nvar TIMEVIEW_FORMAT12_AM = -1;\r\nvar TIMEVIEW_FORMAT12_PM = 1;\r\nvar TIMEVIEW_MINUTEARROW_CLASS = \"dx-timeview-minutearrow\";\r\nvar rotateArrow = function($arrow, angle, offset) {\r\n cssRotate($arrow, angle, offset)\r\n};\r\nvar cssRotate = function($arrow, angle, offset) {\r\n $arrow.css(\"transform\", \"rotate(\" + angle + \"deg) translate(0,\" + offset + \"px)\")\r\n};\r\nvar TimeView = _editor.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n value: new Date(Date.now()),\r\n use24HourFormat: true,\r\n _showClock: true,\r\n _arrowOffset: 0,\r\n stylingMode: void 0\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n _arrowOffset: 15\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n _arrowOffset: 5\r\n }\r\n }])\r\n },\r\n _getValue: function() {\r\n return this.option(\"value\") || new Date\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TIMEVIEW_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderBox();\r\n this._updateTime()\r\n },\r\n _renderBox: function() {\r\n var $box = (0, _renderer.default)(\"
\").appendTo(this.$element());\r\n var items = [];\r\n if (this.option(\"_showClock\")) {\r\n items.push({\r\n ratio: 1,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderClock.bind(this)\r\n })\r\n }\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: 50,\r\n template: this._renderField.bind(this)\r\n });\r\n this._createComponent($box, _box.default, {\r\n height: \"100%\",\r\n width: \"100%\",\r\n direction: \"col\",\r\n items: items\r\n })\r\n },\r\n _renderClock: function(_, __, container) {\r\n this._$hourArrow = (0, _renderer.default)(\"
\").addClass(TIMEVIEW_HOURARROW_CLASS);\r\n this._$minuteArrow = (0, _renderer.default)(\"
\").addClass(TIMEVIEW_MINUTEARROW_CLASS);\r\n var $container = (0, _renderer.default)(container);\r\n $container.addClass(TIMEVIEW_CLOCK_CLASS).append(this._$hourArrow).append(this._$minuteArrow);\r\n this.setAria(\"role\", \"presentation\", $container)\r\n },\r\n _updateClock: function() {\r\n var time = this._getValue();\r\n var hourArrowAngle = time.getHours() / 12 * 360 + time.getMinutes() / 60 * 30;\r\n var minuteArrowAngle = time.getMinutes() / 60 * 360;\r\n rotateArrow(this._$hourArrow, hourArrowAngle, this.option(\"_arrowOffset\"));\r\n rotateArrow(this._$minuteArrow, minuteArrowAngle, this.option(\"_arrowOffset\"))\r\n },\r\n _getBoxItems: function(is12HourFormat) {\r\n var _this = this;\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: function() {\r\n return _this._hourBox.$element()\r\n }\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: (0, _renderer.default)(\"
\").addClass(TIMEVIEW_TIME_SEPARATOR_CLASS).text(_date.default.getTimeSeparator())\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: function() {\r\n return _this._minuteBox.$element()\r\n }\r\n }];\r\n if (is12HourFormat) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: function() {\r\n return _this._format12.$element()\r\n }\r\n })\r\n }\r\n return items\r\n },\r\n _renderField: function() {\r\n var is12HourFormat = !this.option(\"use24HourFormat\");\r\n this._createHourBox(is12HourFormat);\r\n this._createMinuteBox();\r\n if (is12HourFormat) {\r\n this._createFormat12Box()\r\n }\r\n return this._createComponent((0, _renderer.default)(\"
\").addClass(TIMEVIEW_FIELD_CLASS), _box.default, {\r\n direction: \"row\",\r\n align: \"center\",\r\n crossAlign: \"center\",\r\n items: this._getBoxItems(is12HourFormat)\r\n }).$element()\r\n },\r\n _createHourBox: function(is12HourFormat) {\r\n var _this2 = this;\r\n var editor = this._hourBox = this._createComponent((0, _renderer.default)(\"
\"), _number_box.default, (0, _extend.extend)({\r\n min: -1,\r\n max: is12HourFormat ? 13 : 24,\r\n value: this._getValue().getHours(),\r\n onValueChanged: this._onHourBoxValueChanged.bind(this),\r\n onKeyboardHandled: function(opts) {\r\n return _this2._keyboardHandler(opts)\r\n }\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"hours\")\r\n },\r\n _isPM: function() {\r\n return !this.option(\"use24HourFormat\") && 1 === this._format12.option(\"value\")\r\n },\r\n _onHourBoxValueChanged: function(_ref) {\r\n var value = _ref.value,\r\n component = _ref.component;\r\n var currentValue = this._getValue();\r\n var newValue = new Date(currentValue);\r\n var newHours = this._convertMaxHourToMin(value);\r\n component.option(\"value\", newHours);\r\n if (this._isPM()) {\r\n newHours += 12\r\n }\r\n newValue.setHours(newHours);\r\n _ui.default.normalizeTime(newValue);\r\n this.option(\"value\", newValue)\r\n },\r\n _convertMaxHourToMin: function(hours) {\r\n var maxHoursValue = this.option(\"use24HourFormat\") ? 24 : 12;\r\n return (maxHoursValue + hours) % maxHoursValue\r\n },\r\n _createMinuteBox: function() {\r\n var _this3 = this;\r\n var editor = this._minuteBox = this._createComponent((0, _renderer.default)(\"
\"), _number_box.default, (0, _extend.extend)({\r\n min: -1,\r\n max: 60,\r\n value: this._getValue().getMinutes(),\r\n onKeyboardHandled: function(opts) {\r\n return _this3._keyboardHandler(opts)\r\n },\r\n onValueChanged: function(_ref2) {\r\n var value = _ref2.value,\r\n component = _ref2.component;\r\n var newMinutes = (60 + value) % 60;\r\n component.option(\"value\", newMinutes);\r\n var time = new Date(_this3._getValue());\r\n time.setMinutes(newMinutes);\r\n _ui.default.normalizeTime(time);\r\n _this3.option(\"value\", time)\r\n }\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"minutes\")\r\n },\r\n _createFormat12Box: function() {\r\n var _this4 = this;\r\n var periodNames = _date.default.getPeriodNames();\r\n var editor = this._format12 = this._createComponent((0, _renderer.default)(\"
\").addClass(TIMEVIEW_FORMAT12_CLASS), _select_box.default, {\r\n items: [{\r\n value: TIMEVIEW_FORMAT12_AM,\r\n text: periodNames[0]\r\n }, {\r\n value: TIMEVIEW_FORMAT12_PM,\r\n text: periodNames[1]\r\n }],\r\n valueExpr: \"value\",\r\n displayExpr: \"text\",\r\n onKeyboardHandled: function(opts) {\r\n return _this4._keyboardHandler(opts)\r\n },\r\n onValueChanged: function(_ref3) {\r\n var value = _ref3.value;\r\n var hours = _this4._getValue().getHours();\r\n var time = new Date(_this4._getValue());\r\n var newHours = (hours + 12 * value) % 24;\r\n time.setHours(newHours);\r\n _this4.option(\"value\", time)\r\n },\r\n value: this._getValue().getHours() >= 12 ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM,\r\n stylingMode: this.option(\"stylingMode\")\r\n });\r\n editor.setAria(\"label\", \"type\")\r\n },\r\n _refreshFormat12: function() {\r\n if (this.option(\"use24HourFormat\")) {\r\n return\r\n }\r\n var value = this._getValue();\r\n var hours = value.getHours();\r\n var isPM = hours >= 12;\r\n var newValue = isPM ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM;\r\n this._silentEditorValueUpdate(this._format12, newValue)\r\n },\r\n _silentEditorValueUpdate: function(editor, value) {\r\n if (editor) {\r\n editor._suppressValueChangeAction();\r\n editor.option(\"value\", value);\r\n editor._resumeValueChangeAction()\r\n }\r\n },\r\n _getNumberBoxConfig: function() {\r\n return {\r\n showSpinButtons: true,\r\n displayValueFormatter: function(value) {\r\n return (value < 10 ? \"0\" : \"\") + value\r\n },\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _normalizeHours: function(hours) {\r\n return this.option(\"use24HourFormat\") ? hours : hours % 12 || 12\r\n },\r\n _updateField: function() {\r\n var hours = this._normalizeHours(this._getValue().getHours());\r\n this._silentEditorValueUpdate(this._hourBox, hours);\r\n this._silentEditorValueUpdate(this._minuteBox, this._getValue().getMinutes());\r\n this._refreshFormat12()\r\n },\r\n _updateTime: function() {\r\n if (this.option(\"_showClock\")) {\r\n this._updateClock()\r\n }\r\n this._updateField()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateTime()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._updateTime();\r\n this.callBase(args);\r\n break;\r\n case \"_arrowOffset\":\r\n break;\r\n case \"use24HourFormat\":\r\n case \"_showClock\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxTimeView\", TimeView);\r\nvar _default = TimeView;\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/date_box/ui.date_box.mask.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 _index = require(\"../../events/utils/index\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _dom = require(\"../../core/utils/dom\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _math = require(\"../../core/utils/math\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _uiDate_boxMask = require(\"./ui.date_box.mask.parts\");\r\nvar _date = _interopRequireDefault(require(\"../../localization/date\"));\r\nvar _date2 = require(\"../../localization/ldml/date.parser\");\r\nvar _date3 = require(\"../../localization/ldml/date.format\");\r\nvar _uiDate_box = _interopRequireDefault(require(\"./ui.date_box.base\"));\r\nvar _number = _interopRequireDefault(require(\"../../localization/number\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar MASK_EVENT_NAMESPACE = \"dateBoxMask\";\r\nvar FORWARD = 1;\r\nvar BACKWARD = -1;\r\nvar DateBoxMask = _uiDate_box.default.inherit({\r\n _supportedKeys: function(e) {\r\n var _this = this;\r\n var originalHandlers = this.callBase(e);\r\n var callOriginalHandler = function(e) {\r\n var originalHandler = originalHandlers[(0, _index.normalizeKeyName)(e)];\r\n return originalHandler && originalHandler.apply(_this, [e])\r\n };\r\n var applyHandler = function(e, maskHandler) {\r\n if (_this._shouldUseOriginalHandler(e)) {\r\n return callOriginalHandler.apply(_this, [e])\r\n } else {\r\n return maskHandler.apply(_this, [e])\r\n }\r\n };\r\n return (0, _extend.extend)({}, originalHandlers, {\r\n del: function(e) {\r\n return applyHandler(e, function(event) {\r\n _this._revertPart(FORWARD);\r\n _this._isAllSelected() || event.preventDefault()\r\n })\r\n },\r\n backspace: function(e) {\r\n return applyHandler(e, function(event) {\r\n _this._revertPart(BACKWARD);\r\n _this._isAllSelected() || event.preventDefault()\r\n })\r\n },\r\n home: function(e) {\r\n return applyHandler(e, function(event) {\r\n _this._selectFirstPart();\r\n event.preventDefault()\r\n })\r\n },\r\n end: function(e) {\r\n return applyHandler(e, function(event) {\r\n _this._selectLastPart();\r\n event.preventDefault()\r\n })\r\n },\r\n escape: function(e) {\r\n return applyHandler(e, function(event) {\r\n _this._revertChanges(event)\r\n })\r\n },\r\n enter: function(e) {\r\n return applyHandler(e, function(event) {\r\n _this._enterHandler(event)\r\n })\r\n },\r\n leftArrow: function(e) {\r\n return applyHandler(e, function(event) {\r\n _this._selectNextPart(BACKWARD);\r\n event.preventDefault()\r\n })\r\n },\r\n rightArrow: function(e) {\r\n return applyHandler(e, function(event) {\r\n _this._selectNextPart(FORWARD);\r\n event.preventDefault()\r\n })\r\n },\r\n upArrow: function(e) {\r\n return applyHandler(e, function(event) {\r\n _this._upDownArrowHandler(FORWARD);\r\n event.preventDefault()\r\n })\r\n },\r\n downArrow: function(e) {\r\n return applyHandler(e, function(event) {\r\n _this._upDownArrowHandler(BACKWARD);\r\n event.preventDefault()\r\n })\r\n }\r\n })\r\n },\r\n _shouldUseOriginalHandler: function(e) {\r\n var keysToHandleByMask = [\"backspace\", \"del\"];\r\n var isNotDeletingInCalendar = this.option(\"opened\") && e && keysToHandleByMask.indexOf((0, _index.normalizeKeyName)(e)) === -1;\r\n return !this._useMaskBehavior() || isNotDeletingInCalendar || e && e.altKey\r\n },\r\n _upDownArrowHandler: function(step) {\r\n this._setNewDateIfEmpty();\r\n var originalValue = this._getActivePartValue(this._initialMaskValue);\r\n var currentValue = this._getActivePartValue();\r\n var delta = currentValue - originalValue;\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._partIncrease(delta + step, true)\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n useMaskBehavior: false,\r\n emptyDateValue: new Date(2e3, 0, 1, 0, 0, 0)\r\n })\r\n },\r\n _isSingleCharKey: function(_ref) {\r\n var originalEvent = _ref.originalEvent,\r\n ctrl = _ref.ctrl,\r\n alt = _ref.alt;\r\n var key = originalEvent.data || (\"space\" === (0, _index.normalizeKeyName)(originalEvent) ? \" \" : originalEvent.key);\r\n return \"string\" === typeof key && 1 === key.length && !ctrl && !alt\r\n },\r\n _isSingleDigitKey: function(e) {\r\n var _e$originalEvent;\r\n var data = null === (_e$originalEvent = e.originalEvent) || void 0 === _e$originalEvent ? void 0 : _e$originalEvent.data;\r\n return 1 === (null === data || void 0 === data ? void 0 : data.length) && parseInt(data, 10)\r\n },\r\n _useBeforeInputEvent: function() {\r\n var device = _devices.default.real();\r\n return device.android && device.version[0] > 4\r\n },\r\n _keyboardHandler: function(e) {\r\n var _this2 = this;\r\n var key = e.originalEvent.key;\r\n var result = this.callBase(e);\r\n if (!this._useMaskBehavior() || this._useBeforeInputEvent()) {\r\n return result\r\n }\r\n if (_browser.default.chrome && \"Process\" === e.key && 0 === e.code.indexOf(\"Digit\")) {\r\n key = e.code.replace(\"Digit\", \"\");\r\n this._processInputKey(key);\r\n this._maskInputHandler = function() {\r\n _this2._renderSelectedPart()\r\n }\r\n } else {\r\n if (this._isSingleCharKey(e)) {\r\n this._processInputKey(key);\r\n e.originalEvent.preventDefault()\r\n }\r\n }\r\n return result\r\n },\r\n _maskBeforeInputHandler: function(e) {\r\n var _this3 = this;\r\n this._maskInputHandler = null;\r\n var inputType = e.originalEvent.inputType;\r\n if (\"insertCompositionText\" === inputType) {\r\n this._maskInputHandler = function() {\r\n _this3._renderSelectedPart()\r\n }\r\n }\r\n var isBackwardDeletion = \"deleteContentBackward\" === inputType;\r\n var isForwardDeletion = \"deleteContentForward\" === inputType;\r\n if (isBackwardDeletion || isForwardDeletion) {\r\n var direction = isBackwardDeletion ? BACKWARD : FORWARD;\r\n this._maskInputHandler = function() {\r\n _this3._revertPart();\r\n _this3._selectNextPart(direction)\r\n }\r\n }\r\n if (!this._useMaskBehavior() || !this._isSingleCharKey(e)) {\r\n return\r\n }\r\n var key = e.originalEvent.data;\r\n this._processInputKey(key);\r\n e.preventDefault();\r\n return true\r\n },\r\n _keyPressHandler: function(e) {\r\n var event = e.originalEvent;\r\n if (\"insertCompositionText\" === (null === event || void 0 === event ? void 0 : event.inputType) && this._isSingleDigitKey(e)) {\r\n this._processInputKey(event.data);\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n }\r\n this.callBase(e);\r\n if (this._maskInputHandler) {\r\n this._maskInputHandler();\r\n this._maskInputHandler = null\r\n }\r\n },\r\n _processInputKey: function(key) {\r\n if (this._isAllSelected()) {\r\n this._activePartIndex = 0\r\n }\r\n this._setNewDateIfEmpty();\r\n if (isNaN(parseInt(key))) {\r\n this._searchString(key)\r\n } else {\r\n this._searchNumber(key)\r\n }\r\n },\r\n _isAllSelected: function() {\r\n var caret = this._caret();\r\n return caret.end - caret.start === this.option(\"text\").length\r\n },\r\n _getFormatPattern: function() {\r\n if (this._formatPattern) {\r\n return this._formatPattern\r\n }\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var isLDMLPattern = (0, _type.isString)(format) && !_date.default._getPatternByFormat(format);\r\n if (isLDMLPattern) {\r\n this._formatPattern = format\r\n } else {\r\n this._formatPattern = (0, _date3.getFormat)(function(value) {\r\n return _date.default.format(value, format)\r\n })\r\n }\r\n return this._formatPattern\r\n },\r\n _setNewDateIfEmpty: function() {\r\n if (!this._maskValue) {\r\n var value = \"time\" === this.option(\"type\") ? new Date(null) : new Date;\r\n this._maskValue = value;\r\n this._initialMaskValue = value;\r\n this._renderDateParts()\r\n }\r\n },\r\n _partLimitsReached: function(max) {\r\n var maxLimitLength = String(max).length;\r\n var formatLength = this._getActivePartProp(\"pattern\").length;\r\n var isShortFormat = 1 === formatLength;\r\n var maxSearchLength = isShortFormat ? maxLimitLength : Math.min(formatLength, maxLimitLength);\r\n var isLengthExceeded = this._searchValue.length === maxSearchLength;\r\n var isValueOverflowed = parseInt(this._searchValue + \"0\") > max;\r\n return isLengthExceeded || isValueOverflowed\r\n },\r\n _searchNumber: function(char) {\r\n var _this$_getActivePartL = this._getActivePartLimits(),\r\n max = _this$_getActivePartL.max;\r\n var maxLimitLength = String(max).length;\r\n this._searchValue = (this._searchValue + char).substr(-maxLimitLength);\r\n if (isNaN(this._searchValue)) {\r\n this._searchValue = char\r\n }\r\n this._setActivePartValue(this._searchValue);\r\n if (this._partLimitsReached(max)) {\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _searchString: function(char) {\r\n if (!isNaN(parseInt(this._getActivePartProp(\"text\")))) {\r\n return\r\n }\r\n var limits = this._getActivePartProp(\"limits\")(this._maskValue);\r\n var startString = this._searchValue + char.toLowerCase();\r\n var endLimit = limits.max - limits.min;\r\n for (var i = 0; i <= endLimit; i++) {\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._partIncrease(i + 1);\r\n if (0 === this._getActivePartProp(\"text\").toLowerCase().indexOf(startString)) {\r\n this._searchValue = startString;\r\n return\r\n }\r\n }\r\n this._setNewDateIfEmpty();\r\n if (this._searchValue) {\r\n this._clearSearchValue();\r\n this._searchString(char)\r\n }\r\n },\r\n _clearSearchValue: function() {\r\n this._searchValue = \"\"\r\n },\r\n _revertPart: function(direction) {\r\n if (!this._isAllSelected()) {\r\n var actual = this._getActivePartValue(this.option(\"emptyDateValue\"));\r\n this._setActivePartValue(actual);\r\n this._selectNextPart(direction)\r\n }\r\n this._clearSearchValue()\r\n },\r\n _useMaskBehavior: function() {\r\n return this.option(\"useMaskBehavior\") && \"text\" === this.option(\"mode\")\r\n },\r\n _prepareRegExpInfo: function() {\r\n this._regExpInfo = (0, _date2.getRegExpInfo)(this._getFormatPattern(), _date.default);\r\n var regExp = this._regExpInfo.regexp;\r\n var flags = regExp.flags;\r\n var convertedRegExp = _number.default.convertDigits(this._regExpInfo.regexp.source, false);\r\n this._regExpInfo.regexp = RegExp(convertedRegExp, flags)\r\n },\r\n _initMaskState: function() {\r\n this._activePartIndex = 0;\r\n this._formatPattern = null;\r\n this._prepareRegExpInfo();\r\n this._loadMaskValue()\r\n },\r\n _renderMask: function() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState();\r\n if (this._useMaskBehavior()) {\r\n this._attachMaskEvents();\r\n this._initMaskState();\r\n this._renderDateParts()\r\n }\r\n },\r\n _renderDateParts: function() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this.option(\"text\") || this._getDisplayedText(this._maskValue);\r\n if (text) {\r\n this._dateParts = (0, _uiDate_boxMask.renderDateParts)(text, this._regExpInfo);\r\n if (!this._input().is(\":hidden\")) {\r\n this._selectNextPart()\r\n }\r\n }\r\n },\r\n _detachMaskEvents: function() {\r\n _events_engine.default.off(this._input(), \".\" + MASK_EVENT_NAMESPACE)\r\n },\r\n _attachMaskEvents: function() {\r\n var _this4 = this;\r\n _events_engine.default.on(this._input(), (0, _index.addNamespace)(\"dxclick\", MASK_EVENT_NAMESPACE), this._maskClickHandler.bind(this));\r\n _events_engine.default.on(this._input(), (0, _index.addNamespace)(\"paste\", MASK_EVENT_NAMESPACE), this._maskPasteHandler.bind(this));\r\n _events_engine.default.on(this._input(), (0, _index.addNamespace)(\"drop\", MASK_EVENT_NAMESPACE), function() {\r\n _this4._renderSelectedPart()\r\n });\r\n _events_engine.default.on(this._input(), (0, _index.addNamespace)(\"compositionend\", MASK_EVENT_NAMESPACE), this._maskCompositionEndHandler.bind(this));\r\n if (this._useBeforeInputEvent()) {\r\n _events_engine.default.on(this._input(), (0, _index.addNamespace)(\"beforeinput\", MASK_EVENT_NAMESPACE), this._maskBeforeInputHandler.bind(this))\r\n }\r\n },\r\n _renderSelectedPart: function() {\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n },\r\n _selectLastPart: function() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = this._dateParts.length;\r\n this._selectNextPart(BACKWARD)\r\n }\r\n },\r\n _selectFirstPart: function() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = -1;\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _onMouseWheel: function(e) {\r\n if (this._useMaskBehavior()) {\r\n this._partIncrease(e.delta > 0 ? FORWARD : BACKWARD, e)\r\n }\r\n },\r\n _selectNextPart: function() {\r\n var step = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;\r\n if (!this.option(\"text\") || this._disposed) {\r\n return\r\n }\r\n if (step) {\r\n this._initialMaskValue = new Date(this._maskValue)\r\n }\r\n var index = (0, _math.fitIntoRange)(this._activePartIndex + step, 0, this._dateParts.length - 1);\r\n if (this._dateParts[index].isStub) {\r\n var isBoundaryIndex = 0 === index && step < 0 || index === this._dateParts.length - 1 && step > 0;\r\n if (!isBoundaryIndex) {\r\n this._selectNextPart(step >= 0 ? step + 1 : step - 1);\r\n return\r\n } else {\r\n index = this._activePartIndex\r\n }\r\n }\r\n if (this._activePartIndex !== index) {\r\n this._clearSearchValue()\r\n }\r\n this._activePartIndex = index;\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n },\r\n _getRealLimitsPattern: function() {\r\n if (\"d\" === this._getActivePartProp(\"pattern\")[0]) {\r\n return \"dM\"\r\n }\r\n },\r\n _getActivePartLimits: function(lockOtherParts) {\r\n var limitFunction = this._getActivePartProp(\"limits\");\r\n return limitFunction(this._maskValue, lockOtherParts && this._getRealLimitsPattern())\r\n },\r\n _getActivePartValue: function(dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var getter = this._getActivePartProp(\"getter\");\r\n return (0, _type.isFunction)(getter) ? getter(dateValue) : dateValue[getter]()\r\n },\r\n _addLeadingZeroes: function(value) {\r\n var zeroes = this._searchValue.match(/^0+/);\r\n var limits = this._getActivePartLimits();\r\n var maxLimitLength = String(limits.max).length;\r\n return ((zeroes && zeroes[0] || \"\") + String(value)).substr(-maxLimitLength)\r\n },\r\n _setActivePartValue: function(value, dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var setter = this._getActivePartProp(\"setter\");\r\n var limits = this._getActivePartLimits();\r\n value = (0, _math.inRange)(value, limits.min, limits.max) ? value : value % 10;\r\n value = this._addLeadingZeroes((0, _math.fitIntoRange)(value, limits.min, limits.max));\r\n (0, _type.isFunction)(setter) ? setter(dateValue, value): dateValue[setter](value);\r\n this._renderDisplayText(this._getDisplayedText(dateValue));\r\n this._renderDateParts()\r\n },\r\n _getActivePartProp: function(property) {\r\n if (!this._dateParts || !this._dateParts[this._activePartIndex]) {\r\n return\r\n }\r\n return this._dateParts[this._activePartIndex][property]\r\n },\r\n _loadMaskValue: function() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.dateOption(\"value\");\r\n this._maskValue = value && new Date(value);\r\n this._initialMaskValue = value && new Date(value)\r\n },\r\n _saveMaskValue: function() {\r\n var value = this._maskValue && new Date(this._maskValue);\r\n if (value && \"date\" === this.option(\"type\")) {\r\n value.setHours(0, 0, 0, 0)\r\n }\r\n this._initialMaskValue = new Date(value);\r\n this.dateOption(\"value\", value)\r\n },\r\n _revertChanges: function() {\r\n this._loadMaskValue();\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts()\r\n },\r\n _renderDisplayText: function(text) {\r\n this.callBase(text);\r\n if (this._useMaskBehavior()) {\r\n this.option(\"text\", text)\r\n }\r\n },\r\n _partIncrease: function(step, lockOtherParts) {\r\n this._setNewDateIfEmpty();\r\n var _this$_getActivePartL2 = this._getActivePartLimits(lockOtherParts),\r\n max = _this$_getActivePartL2.max,\r\n min = _this$_getActivePartL2.min;\r\n var limitDelta = max - min;\r\n if (1 === limitDelta) {\r\n limitDelta++\r\n }\r\n var newValue = step + this._getActivePartValue();\r\n if (newValue > max) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: min,\r\n limitClosest: max,\r\n limitDelta: limitDelta\r\n })\r\n } else {\r\n if (newValue < min) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: max,\r\n limitClosest: min,\r\n limitDelta: limitDelta\r\n })\r\n }\r\n }\r\n this._setActivePartValue(newValue)\r\n },\r\n _applyLimits: function(newValue, _ref2) {\r\n var limitBase = _ref2.limitBase,\r\n limitClosest = _ref2.limitClosest,\r\n limitDelta = _ref2.limitDelta;\r\n var delta = (newValue - limitClosest) % limitDelta;\r\n return delta ? limitBase + delta - 1 * (0, _math.sign)(delta) : limitClosest\r\n },\r\n _maskClickHandler: function() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = (0, _uiDate_boxMask.getDatePartIndexByPosition)(this._dateParts, this._caret().start);\r\n if ((0, _type.isDefined)(this._activePartIndex)) {\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n } else {\r\n this._selectLastPart()\r\n }\r\n }\r\n },\r\n _maskCompositionEndHandler: function(e) {\r\n var _this5 = this;\r\n if (_browser.default.msie && this._isSingleDigitKey(e)) {\r\n var key = e.originalEvent.data;\r\n this._processInputKey(key)\r\n } else {\r\n this._input().val(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart();\r\n this._maskInputHandler = function() {\r\n _this5._renderSelectedPart()\r\n }\r\n }\r\n },\r\n _maskPasteHandler: function(e) {\r\n var newText = this._replaceSelectedText(this.option(\"text\"), this._caret(), (0, _dom.clipboardText)(e));\r\n var date = _date.default.parse(newText, this._getFormatPattern());\r\n if (date && this._isDateValid(date)) {\r\n this._maskValue = date;\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts();\r\n this._selectNextPart()\r\n }\r\n e.preventDefault()\r\n },\r\n _isDateValid: function(date) {\r\n return (0, _type.isDate)(date) && !isNaN(date)\r\n },\r\n _isValueDirty: function() {\r\n var value = this.dateOption(\"value\");\r\n return (this._maskValue && this._maskValue.getTime()) !== (value && value.getTime())\r\n },\r\n _fireChangeEvent: function() {\r\n this._clearSearchValue();\r\n if (this._isValueDirty()) {\r\n _events_engine.default.trigger(this._input(), \"change\")\r\n }\r\n },\r\n _enterHandler: function(e) {\r\n this._fireChangeEvent();\r\n this._selectNextPart(FORWARD);\r\n e.preventDefault()\r\n },\r\n _focusOutHandler: function(e) {\r\n this.callBase(e);\r\n if (this._useMaskBehavior() && !e.isDefaultPrevented()) {\r\n this._fireChangeEvent();\r\n this._selectFirstPart(e)\r\n }\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var text = this.option(\"text\");\r\n if (this._useMaskBehavior()) {\r\n this._saveValueChangeEvent(e);\r\n if (!text) {\r\n this._maskValue = null\r\n } else {\r\n if (null === this._maskValue) {\r\n this._loadMaskValue(text)\r\n }\r\n }\r\n this._saveMaskValue()\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"useMaskBehavior\":\r\n this._renderMask();\r\n break;\r\n case \"displayFormat\":\r\n case \"mode\":\r\n this.callBase(args);\r\n this._renderMask();\r\n break;\r\n case \"value\":\r\n this._loadMaskValue();\r\n this.callBase(args);\r\n this._renderDateParts();\r\n break;\r\n case \"emptyDateValue\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearMaskState: function() {\r\n this._clearSearchValue();\r\n delete this._dateParts;\r\n delete this._activePartIndex;\r\n delete this._maskValue\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this._clearMaskState();\r\n this._activePartIndex = 0\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState()\r\n }\r\n});\r\nvar _default = DateBoxMask;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/date_box/ui.date_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 _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _uiDate_box = _interopRequireDefault(require(\"./ui.date_box.mask\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}(0, _component_registrator.default)(\"dxDateBox\", _uiDate_box.default);\r\nvar _default = _uiDate_box.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/responsive_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 _common = require(\"../core/utils/common\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _ui = _interopRequireDefault(require(\"./widget/ui.errors\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _box = _interopRequireDefault(require(\"./box\"));\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\nvar window = (0, _window.getWindow)();\r\nvar RESPONSIVE_BOX_CLASS = \"dx-responsivebox\";\r\nvar SCREEN_SIZE_CLASS_PREFIX = RESPONSIVE_BOX_CLASS + \"-screen-\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar HD_SCREEN_WIDTH = 1920;\r\nvar ResponsiveBox = _uiCollection_widget.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n rows: [],\r\n cols: [],\r\n screenByWidth: null,\r\n singleColumnScreen: \"\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n onLayoutChanged: null,\r\n currentScreenFactor: void 0,\r\n _layoutStrategy: void 0\r\n })\r\n },\r\n _init: function() {\r\n if (!this.option(\"screenByWidth\")) {\r\n this._options.silent(\"screenByWidth\", _window.defaultScreenFactorFunc)\r\n }\r\n this.callBase();\r\n this._initLayoutChangedAction()\r\n },\r\n _initLayoutChangedAction: function() {\r\n this._layoutChangedAction = this._createActionByOption(\"onLayoutChanged\", {\r\n excludeValidators: [\"disabled\", \"readonly\"]\r\n })\r\n },\r\n _itemClass: function() {\r\n return BOX_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return BOX_ITEM_DATA_KEY\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(RESPONSIVE_BOX_CLASS);\r\n this._updateRootBox()\r\n },\r\n _updateRootBox: function() {\r\n clearTimeout(this._updateTimer);\r\n this._updateTimer = setTimeout(function() {\r\n if (this._$root) {\r\n _events_engine.default.triggerHandler(this._$root, \"dxupdate\")\r\n }\r\n }.bind(this))\r\n },\r\n _renderItems: function() {\r\n this._setScreenSize();\r\n this._screenItems = this._itemsByScreen();\r\n this._prepareGrid();\r\n this._spreadItems();\r\n this._layoutItems();\r\n this._linkNodeToItem()\r\n },\r\n _itemOptionChanged: function(item) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n this._refreshItem($item, item);\r\n this._clearItemNodeTemplates();\r\n this._update(true)\r\n },\r\n _setScreenSize: function() {\r\n var currentScreen = this._getCurrentScreen();\r\n this._removeScreenSizeClass();\r\n this.$element().addClass(SCREEN_SIZE_CLASS_PREFIX + currentScreen);\r\n this.option(\"currentScreenFactor\", currentScreen)\r\n },\r\n _removeScreenSizeClass: function() {\r\n var currentScreenFactor = this.option(\"currentScreenFactor\");\r\n currentScreenFactor && this.$element().removeClass(SCREEN_SIZE_CLASS_PREFIX + currentScreenFactor)\r\n },\r\n _prepareGrid: function() {\r\n var grid = this._grid = [];\r\n this._prepareRowsAndCols();\r\n (0, _iterator.each)(this._rows, function() {\r\n var row = [];\r\n grid.push(row);\r\n (0, _iterator.each)(this._cols, function() {\r\n row.push(this._createEmptyCell())\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n getSingleColumnRows: function() {\r\n var rows = this.option(\"rows\");\r\n var screenItemsLength = this._screenItems.length;\r\n if (rows.length) {\r\n var filteredRows = this._filterByScreen(rows);\r\n var result = [];\r\n for (var i = 0; i < screenItemsLength; i++) {\r\n var sizeConfig = this._defaultSizeConfig();\r\n if (i < filteredRows.length && (0, _type.isDefined)(filteredRows[i].shrink)) {\r\n sizeConfig.shrink = filteredRows[i].shrink\r\n }\r\n result.push(sizeConfig)\r\n }\r\n return result\r\n } else {\r\n return this._defaultSizeConfig(screenItemsLength)\r\n }\r\n },\r\n _prepareRowsAndCols: function() {\r\n if (this._isSingleColumnScreen()) {\r\n this._prepareSingleColumnScreenItems();\r\n this._rows = this.getSingleColumnRows();\r\n this._cols = this._defaultSizeConfig(1)\r\n } else {\r\n this._rows = this._sizesByScreen(this.option(\"rows\"));\r\n this._cols = this._sizesByScreen(this.option(\"cols\"))\r\n }\r\n },\r\n _isSingleColumnScreen: function() {\r\n return this._screenRegExp().test(this.option(\"singleColumnScreen\")) || !this.option(\"rows\").length || !this.option(\"cols\").length\r\n },\r\n _prepareSingleColumnScreenItems: function() {\r\n this._screenItems.sort(function(item1, item2) {\r\n return item1.location.row - item2.location.row || item1.location.col - item2.location.col\r\n });\r\n (0, _iterator.each)(this._screenItems, function(index, item) {\r\n (0, _extend.extend)(item.location, {\r\n row: index,\r\n col: 0,\r\n rowspan: 1,\r\n colspan: 1\r\n })\r\n })\r\n },\r\n _sizesByScreen: function(sizeConfigs) {\r\n return (0, _iterator.map)(this._filterByScreen(sizeConfigs), function(sizeConfig) {\r\n return (0, _extend.extend)(this._defaultSizeConfig(), sizeConfig)\r\n }.bind(this))\r\n },\r\n _createDefaultSizeConfig: function() {\r\n return {\r\n ratio: 1,\r\n baseSize: 0,\r\n minSize: 0,\r\n maxSize: 0\r\n }\r\n },\r\n _defaultSizeConfig: function(size) {\r\n var defaultSizeConfig = this._createDefaultSizeConfig();\r\n if (!arguments.length) {\r\n return defaultSizeConfig\r\n }\r\n var result = [];\r\n for (var i = 0; i < size; i++) {\r\n result.push(defaultSizeConfig)\r\n }\r\n return result\r\n },\r\n _filterByScreen: function(items) {\r\n var screenRegExp = this._screenRegExp();\r\n return (0, _common.grep)(items, function(item) {\r\n return !item.screen || screenRegExp.test(item.screen)\r\n })\r\n },\r\n _screenRegExp: function() {\r\n var screen = this._getCurrentScreen();\r\n return new RegExp(\"(^|\\\\s)\" + screen + \"($|\\\\s)\", \"i\")\r\n },\r\n _getCurrentScreen: function() {\r\n var width = this._screenWidth();\r\n return this.option(\"screenByWidth\")(width)\r\n },\r\n _screenWidth: function() {\r\n return (0, _window.hasWindow)() ? (0, _renderer.default)(window).width() : HD_SCREEN_WIDTH\r\n },\r\n _createEmptyCell: function() {\r\n return {\r\n item: {},\r\n location: {\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n }\r\n },\r\n _spreadItems: function() {\r\n (0, _iterator.each)(this._screenItems, function(_, itemInfo) {\r\n var location = itemInfo.location || {};\r\n var itemCol = location.col;\r\n var itemRow = location.row;\r\n var row = this._grid[itemRow];\r\n var itemCell = row && row[itemCol];\r\n this._occupyCells(itemCell, itemInfo)\r\n }.bind(this))\r\n },\r\n _itemsByScreen: function() {\r\n var _this = this;\r\n return this.option(\"items\").reduce(function(result, item) {\r\n var locations = item.location || {};\r\n locations = (0, _type.isPlainObject)(locations) ? [locations] : locations;\r\n _this._filterByScreen(locations).forEach(function(location) {\r\n result.push({\r\n item: item,\r\n location: (0, _extend.extend)({\r\n rowspan: 1,\r\n colspan: 1\r\n }, location)\r\n })\r\n });\r\n return result\r\n }, [])\r\n },\r\n _occupyCells: function(itemCell, itemInfo) {\r\n if (!itemCell || this._isItemCellOccupied(itemCell, itemInfo)) {\r\n return\r\n }(0, _extend.extend)(itemCell, itemInfo);\r\n this._markSpanningCell(itemCell)\r\n },\r\n _isItemCellOccupied: function(itemCell, itemInfo) {\r\n if (!(0, _type.isEmptyObject)(itemCell.item)) {\r\n return true\r\n }\r\n var result = false;\r\n this._loopOverSpanning(itemInfo.location, function(cell) {\r\n result = result || !(0, _type.isEmptyObject)(cell.item)\r\n });\r\n return result\r\n },\r\n _loopOverSpanning: function(location, callback) {\r\n var rowEnd = location.row + location.rowspan - 1;\r\n var colEnd = location.col + location.colspan - 1;\r\n var boundRowEnd = Math.min(rowEnd, this._rows.length - 1);\r\n var boundColEnd = Math.min(colEnd, this._cols.length - 1);\r\n location.rowspan -= rowEnd - boundRowEnd;\r\n location.colspan -= colEnd - boundColEnd;\r\n for (var rowIndex = location.row; rowIndex <= boundRowEnd; rowIndex++) {\r\n for (var colIndex = location.col; colIndex <= boundColEnd; colIndex++) {\r\n if (rowIndex !== location.row || colIndex !== location.col) {\r\n callback(this._grid[rowIndex][colIndex])\r\n }\r\n }\r\n }\r\n },\r\n _markSpanningCell: function(itemCell) {\r\n this._loopOverSpanning(itemCell.location, function(cell) {\r\n (0, _extend.extend)(cell, {\r\n item: itemCell.item,\r\n spanningCell: itemCell\r\n })\r\n })\r\n },\r\n _linkNodeToItem: function() {\r\n (0, _iterator.each)(this._itemElements(), function(_, itemNode) {\r\n var $item = (0, _renderer.default)(itemNode);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n if (!item.box) {\r\n item.node = $item.children()\r\n }\r\n })\r\n },\r\n _layoutItems: function() {\r\n var rowsCount = this._grid.length;\r\n var colsCount = rowsCount && this._grid[0].length;\r\n if (!rowsCount && !colsCount) {\r\n return\r\n }\r\n var result = this._layoutBlock({\r\n direction: \"col\",\r\n row: {\r\n start: 0,\r\n end: rowsCount - 1\r\n },\r\n col: {\r\n start: 0,\r\n end: colsCount - 1\r\n }\r\n });\r\n var rootBox = this._prepareBoxConfig(result.box || {\r\n direction: \"row\",\r\n items: [(0, _extend.extend)(result, {\r\n ratio: 1\r\n })]\r\n });\r\n (0, _extend.extend)(rootBox, this._rootBoxConfig(rootBox.items));\r\n this._$root = (0, _renderer.default)(\"
\").appendTo(this._itemContainer());\r\n this._createComponent(this._$root, _box.default, rootBox)\r\n },\r\n _rootBoxConfig: function(items) {\r\n var rootItems = (0, _iterator.each)(items, function(index, item) {\r\n this._needApplyAutoBaseSize(item) && (0, _extend.extend)(item, {\r\n baseSize: \"auto\"\r\n })\r\n }.bind(this));\r\n return (0, _extend.extend)({\r\n width: \"100%\",\r\n height: \"100%\",\r\n items: rootItems,\r\n itemTemplate: this._getTemplateByOption(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this._createActionByOption(\"onItemHold\"),\r\n onItemClick: this._createActionByOption(\"onItemClick\"),\r\n onItemContextMenu: this._createActionByOption(\"onItemContextMenu\"),\r\n onItemRendered: this._createActionByOption(\"onItemRendered\")\r\n }, {\r\n _layoutStrategy: this.option(\"_layoutStrategy\")\r\n })\r\n },\r\n _needApplyAutoBaseSize: function(item) {\r\n return !item.baseSize && (!item.minSize || \"auto\" === item.minSize) && (!item.maxSize || \"auto\" === item.maxSize)\r\n },\r\n _prepareBoxConfig: function(config) {\r\n return (0, _extend.extend)(config || {}, {\r\n crossAlign: \"stretch\",\r\n onItemStateChanged: this.option(\"onItemStateChanged\")\r\n })\r\n },\r\n _layoutBlock: function(options) {\r\n if (this._isSingleItem(options)) {\r\n return this._itemByCell(options.row.start, options.col.start)\r\n }\r\n return this._layoutDirection(options)\r\n },\r\n _isSingleItem: function(options) {\r\n var firstCellLocation = this._grid[options.row.start][options.col.start].location;\r\n var isItemRowSpanned = options.row.end - options.row.start === firstCellLocation.rowspan - 1;\r\n var isItemColSpanned = options.col.end - options.col.start === firstCellLocation.colspan - 1;\r\n return isItemRowSpanned && isItemColSpanned\r\n },\r\n _itemByCell: function(rowIndex, colIndex) {\r\n var itemCell = this._grid[rowIndex][colIndex];\r\n return itemCell.spanningCell ? null : itemCell.item\r\n },\r\n _layoutDirection: function(options) {\r\n var items = [];\r\n var direction = options.direction;\r\n var crossDirection = this._crossDirection(direction);\r\n var block;\r\n while (block = this._nextBlock(options)) {\r\n if (this._isBlockIndivisible(options.prevBlockOptions, block)) {\r\n throw _ui.default.Error(\"E1025\")\r\n }\r\n var item = this._layoutBlock({\r\n direction: crossDirection,\r\n row: block.row,\r\n col: block.col,\r\n prevBlockOptions: options\r\n });\r\n if (item) {\r\n (0, _extend.extend)(item, this._blockSize(block, crossDirection));\r\n items.push(item)\r\n }\r\n options[crossDirection].start = block[crossDirection].end + 1\r\n }\r\n return {\r\n box: this._prepareBoxConfig({\r\n direction: direction,\r\n items: items\r\n })\r\n }\r\n },\r\n _isBlockIndivisible: function(options, block) {\r\n return options && options.col.start === block.col.start && options.col.end === block.col.end && options.row.start === block.row.start && options.row.end === block.row.end\r\n },\r\n _crossDirection: function(direction) {\r\n return \"col\" === direction ? \"row\" : \"col\"\r\n },\r\n _nextBlock: function(options) {\r\n var direction = options.direction;\r\n var crossDirection = this._crossDirection(direction);\r\n var startIndex = options[direction].start;\r\n var endIndex = options[direction].end;\r\n var crossStartIndex = options[crossDirection].start;\r\n if (crossStartIndex > options[crossDirection].end) {\r\n return null\r\n }\r\n var crossSpan = 1;\r\n for (var crossIndex = crossStartIndex; crossIndex < crossStartIndex + crossSpan; crossIndex++) {\r\n var lineCrossSpan = 1;\r\n for (var index = startIndex; index <= endIndex; index++) {\r\n var cell = this._cellByDirection(direction, index, crossIndex);\r\n lineCrossSpan = Math.max(lineCrossSpan, cell.location[crossDirection + \"span\"])\r\n }\r\n var lineCrossEndIndex = crossIndex + lineCrossSpan;\r\n var crossEndIndex = crossStartIndex + crossSpan;\r\n if (lineCrossEndIndex > crossEndIndex) {\r\n crossSpan += lineCrossEndIndex - crossEndIndex\r\n }\r\n }\r\n var result = {};\r\n result[direction] = {\r\n start: startIndex,\r\n end: endIndex\r\n };\r\n result[crossDirection] = {\r\n start: crossStartIndex,\r\n end: crossStartIndex + crossSpan - 1\r\n };\r\n return result\r\n },\r\n _cellByDirection: function(direction, index, crossIndex) {\r\n return \"col\" === direction ? this._grid[crossIndex][index] : this._grid[index][crossIndex]\r\n },\r\n _blockSize: function(block, direction) {\r\n var defaultMinSize = \"row\" === direction ? \"auto\" : 0;\r\n var sizeConfigs = \"row\" === direction ? this._rows : this._cols;\r\n var result = (0, _extend.extend)(this._createDefaultSizeConfig(), {\r\n ratio: 0\r\n });\r\n for (var index = block[direction].start; index <= block[direction].end; index++) {\r\n var sizeConfig = sizeConfigs[index];\r\n result.ratio += sizeConfig.ratio;\r\n result.baseSize += sizeConfig.baseSize;\r\n result.minSize += sizeConfig.minSize;\r\n result.maxSize += sizeConfig.maxSize;\r\n if ((0, _type.isDefined)(sizeConfig.shrink)) {\r\n result.shrink = sizeConfig.shrink\r\n }\r\n }\r\n result.minSize = result.minSize ? result.minSize : defaultMinSize;\r\n result.maxSize = result.maxSize ? result.maxSize : \"auto\";\r\n this._isSingleColumnScreen() && (result.baseSize = \"auto\");\r\n return result\r\n },\r\n _update: function(forceRemoveRoot) {\r\n var $existingRoot = this._$root;\r\n this._renderItems();\r\n if ($existingRoot) {\r\n if (forceRemoveRoot) {\r\n $existingRoot.remove()\r\n } else {\r\n $existingRoot.detach();\r\n this._saveAssistantRoot($existingRoot)\r\n }\r\n }\r\n this._layoutChangedAction();\r\n this._updateRootBox()\r\n },\r\n _saveAssistantRoot: function($root) {\r\n this._assistantRoots = this._assistantRoots || [];\r\n this._assistantRoots.push($root)\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._updateTimer);\r\n this._clearItemNodeTemplates();\r\n this._cleanUnusedRoots();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _cleanUnusedRoots: function() {\r\n if (!this._assistantRoots) {\r\n return\r\n }(0, _iterator.each)(this._assistantRoots, function(_, item) {\r\n (0, _renderer.default)(item).remove()\r\n })\r\n },\r\n _clearItemNodeTemplates: function() {\r\n (0, _iterator.each)(this.option(\"items\"), function() {\r\n delete this.node\r\n })\r\n },\r\n _toggleVisibility: function(visible) {\r\n this.callBase(visible);\r\n if (visible) {\r\n this._updateRootBox()\r\n }\r\n },\r\n _attachClickEvent: _common.noop,\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"rows\":\r\n case \"cols\":\r\n case \"screenByWidth\":\r\n case \"_layoutStrategy\":\r\n case \"singleColumnScreen\":\r\n this._clearItemNodeTemplates();\r\n this._invalidate();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._update();\r\n break;\r\n case \"onLayoutChanged\":\r\n this._initLayoutChangedAction();\r\n break;\r\n case \"itemTemplate\":\r\n this._clearItemNodeTemplates();\r\n this.callBase(args);\r\n break;\r\n case \"currentScreenFactor\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n if (this._getCurrentScreen() !== this.option(\"currentScreenFactor\")) {\r\n this._update()\r\n }\r\n },\r\n repaint: function() {\r\n this._update()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxResponsiveBox\", ResponsiveBox);\r\nvar _default = ResponsiveBox;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/date_box/ui.date_box.strategy.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 _common = require(\"../../core/utils/common\");\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _date = _interopRequireDefault(require(\"../../localization/date\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar abstract = _class.default.abstract;\r\nvar DateBoxStrategy = _class.default.inherit({\r\n ctor: function(dateBox) {\r\n this.dateBox = dateBox\r\n },\r\n widgetOption: function() {\r\n return this._widget && this._widget.option.apply(this._widget, arguments)\r\n },\r\n _renderWidget: function(element) {\r\n element = element || (0, _renderer.default)(\"
\");\r\n this._widget = this._createWidget(element);\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _createWidget: function(element) {\r\n var widgetName = this._getWidgetName();\r\n var widgetOptions = this._getWidgetOptions();\r\n return this.dateBox._createComponent(element, widgetName, widgetOptions)\r\n },\r\n _getWidgetOptions: abstract,\r\n _getWidgetName: abstract,\r\n getDefaultOptions: function() {\r\n return {\r\n mode: \"text\"\r\n }\r\n },\r\n getDisplayFormat: abstract,\r\n supportedKeys: _common.noop,\r\n getKeyboardListener: _common.noop,\r\n customizeButtons: _common.noop,\r\n getParsedText: function(text, format) {\r\n var value = _date.default.parse(text, format);\r\n return value ? value : _date.default.parse(text)\r\n },\r\n renderInputMinMax: _common.noop,\r\n renderOpenedState: function() {\r\n this._updateValue()\r\n },\r\n popupConfig: abstract,\r\n _dimensionChanged: function() {\r\n var _this$_getPopup;\r\n null === (_this$_getPopup = this._getPopup()) || void 0 === _this$_getPopup ? void 0 : _this$_getPopup.repaint()\r\n },\r\n renderPopupContent: function() {\r\n var popup = this._getPopup();\r\n this._renderWidget();\r\n var $popupContent = popup.$content().parent();\r\n _events_engine.default.off($popupContent, \"mousedown\");\r\n _events_engine.default.on($popupContent, \"mousedown\", this._preventFocusOnPopup.bind(this))\r\n },\r\n getFirstPopupElement: _common.noop,\r\n getLastPopupElement: _common.noop,\r\n _preventFocusOnPopup: function(e) {\r\n e.preventDefault()\r\n },\r\n _getWidgetContainer: function() {\r\n return this._getPopup().$content()\r\n },\r\n _getPopup: function() {\r\n return this.dateBox._popup\r\n },\r\n popupShowingHandler: _common.noop,\r\n popupHiddenHandler: _common.noop,\r\n _updateValue: function() {\r\n this._widget && this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n useCurrentDateByDefault: _common.noop,\r\n getDefaultDate: function() {\r\n return new Date\r\n },\r\n textChangedHandler: _common.noop,\r\n renderValue: function() {\r\n if (this.dateBox.option(\"opened\")) {\r\n this._updateValue()\r\n }\r\n },\r\n getValue: function() {\r\n return this._widget.option(\"value\")\r\n },\r\n isAdaptivityChanged: function() {\r\n return false\r\n },\r\n dispose: function() {\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$content().empty()\r\n }\r\n },\r\n dateBoxValue: function() {\r\n if (arguments.length) {\r\n return this.dateBox.dateValue.apply(this.dateBox, arguments)\r\n } else {\r\n return this.dateBox.dateOption.apply(this.dateBox, [\"value\"])\r\n }\r\n }\r\n});\r\nvar _default = DateBoxStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\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/validation_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 _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _dom_component = _interopRequireDefault(require(\"../core/dom_component\"));\r\nvar _validation_summary = _interopRequireDefault(require(\"./validation_summary\"));\r\nvar _validation_engine = _interopRequireDefault(require(\"./validation_engine\"));\r\nvar _validator = _interopRequireDefault(require(\"./validator\"));\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 VALIDATION_ENGINE_CLASS = \"dx-validationgroup\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_SUMMARY_CLASS = \"dx-validationsummary\";\r\nvar ValidationGroup = function(_DOMComponent) {\r\n _inheritsLoose(ValidationGroup, _DOMComponent);\r\n\r\n function ValidationGroup() {\r\n return _DOMComponent.apply(this, arguments) || this\r\n }\r\n var _proto = ValidationGroup.prototype;\r\n _proto._getDefaultOptions = function() {\r\n return _DOMComponent.prototype._getDefaultOptions.call(this)\r\n };\r\n _proto._init = function() {\r\n _DOMComponent.prototype._init.call(this);\r\n _validation_engine.default.addGroup(this)\r\n };\r\n _proto._initMarkup = function() {\r\n var $element = this.$element();\r\n $element.addClass(VALIDATION_ENGINE_CLASS);\r\n $element.find(\".\".concat(VALIDATOR_CLASS)).each(function(_, validatorContainer) {\r\n _validator.default.getInstance((0, _renderer.default)(validatorContainer))._initGroupRegistration()\r\n });\r\n $element.find(\".\".concat(VALIDATION_SUMMARY_CLASS)).each(function(_, summaryContainer) {\r\n _validation_summary.default.getInstance((0, _renderer.default)(summaryContainer))._initGroupRegistration()\r\n });\r\n _DOMComponent.prototype._initMarkup.call(this)\r\n };\r\n _proto.validate = function() {\r\n return _validation_engine.default.validateGroup(this)\r\n };\r\n _proto.reset = function() {\r\n return _validation_engine.default.resetGroup(this)\r\n };\r\n _proto._dispose = function() {\r\n _validation_engine.default.removeGroup(this);\r\n this.$element().removeClass(VALIDATION_ENGINE_CLASS);\r\n _DOMComponent.prototype._dispose.call(this)\r\n };\r\n _proto._useTemplates = function() {\r\n return false\r\n };\r\n return ValidationGroup\r\n}(_dom_component.default);\r\n(0, _component_registrator.default)(\"dxValidationGroup\", ValidationGroup);\r\nvar _default = ValidationGroup;\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/tab_panel.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 _support = require(\"../core/utils/support\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../core/dom_adapter\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _multi_view = _interopRequireDefault(require(\"./multi_view\"));\r\nvar _tabs = _interopRequireDefault(require(\"./tabs\"));\r\nvar _item = _interopRequireDefault(require(\"./tab_panel/item\"));\r\nvar _icon = require(\"../core/utils/icon\");\r\nvar _element = require(\"../core/element\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _bindable_template = require(\"../core/templates/bindable_template\");\r\nvar _window = require(\"../core/utils/window\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TABPANEL_CLASS = \"dx-tabpanel\";\r\nvar TABPANEL_TABS_CLASS = \"dx-tabpanel-tabs\";\r\nvar TABPANEL_CONTAINER_CLASS = \"dx-tabpanel-container\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar TabPanel = _multi_view.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n itemTitleTemplate: \"title\",\r\n hoverStateEnabled: true,\r\n showNavButtons: false,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n onTitleClick: null,\r\n onTitleHold: null,\r\n onTitleRendered: null,\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\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 device: function() {\r\n return !_support.touch\r\n },\r\n options: {\r\n swipeEnabled: false\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n animationEnabled: false\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TABPANEL_CLASS);\r\n this.setAria(\"role\", \"tabpanel\")\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._createTitleActions();\r\n this._renderLayout()\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new _bindable_template.BindableTemplate(function($container, data) {\r\n if ((0, _type.isPlainObject)(data)) {\r\n var $iconElement = (0, _icon.getImageContainer)(data.icon);\r\n if ($iconElement) {\r\n $container.append($iconElement)\r\n }\r\n if ((0, _type.isDefined)(data.title) && !(0, _type.isPlainObject)(data.title)) {\r\n $container.append(_dom_adapter.default.createTextNode(data.title))\r\n }\r\n } else {\r\n if ((0, _type.isDefined)(data)) {\r\n $container.text(String(data))\r\n }\r\n }\r\n $container.wrapInner((0, _renderer.default)(\"\").addClass(TABS_ITEM_TEXT_CLASS))\r\n }, [\"title\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createTitleActions: function() {\r\n this._createTitleClickAction();\r\n this._createTitleHoldAction();\r\n this._createTitleRenderedAction()\r\n },\r\n _createTitleClickAction: function() {\r\n this._titleClickAction = this._createActionByOption(\"onTitleClick\")\r\n },\r\n _createTitleHoldAction: function() {\r\n this._titleHoldAction = this._createActionByOption(\"onTitleHold\")\r\n },\r\n _createTitleRenderedAction: function() {\r\n this._titleRenderedAction = this._createActionByOption(\"onTitleRendered\")\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n this.callBase();\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._resizeEventTimer = setTimeout(function() {\r\n that._updateLayout()\r\n }, 0)\r\n }\r\n },\r\n _renderLayout: function() {\r\n if (this._tabs) {\r\n this._updateLayout();\r\n return\r\n }\r\n var $element = this.$element();\r\n this._$tabContainer = (0, _renderer.default)(\"
\").addClass(TABPANEL_TABS_CLASS).appendTo($element);\r\n var $tabs = (0, _renderer.default)(\"
\").appendTo(this._$tabContainer);\r\n this._tabs = this._createComponent($tabs, _tabs.default, this._tabConfig());\r\n this._$container = (0, _renderer.default)(\"
\").addClass(TABPANEL_CONTAINER_CLASS).appendTo($element);\r\n this._$container.append(this._$wrapper);\r\n this._updateLayout()\r\n },\r\n _updateLayout: function() {\r\n if ((0, _window.hasWindow)()) {\r\n var tabsHeight = this._$tabContainer.outerHeight();\r\n this._$container.css({\r\n marginTop: -tabsHeight,\r\n paddingTop: tabsHeight\r\n })\r\n }\r\n },\r\n _refreshActiveDescendant: function() {\r\n if (!this._tabs) {\r\n return\r\n }\r\n var tabs = this._tabs;\r\n var tabItems = tabs.itemElements();\r\n var $activeTab = (0, _renderer.default)(tabItems[tabs.option(\"selectedIndex\")]);\r\n var id = this.getFocusedItemId();\r\n this.setAria(\"controls\", void 0, (0, _renderer.default)(tabItems));\r\n this.setAria(\"controls\", id, $activeTab)\r\n },\r\n _tabConfig: function() {\r\n return {\r\n selectOnFocus: true,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n selectedIndex: this.option(\"selectedIndex\"),\r\n badgeExpr: this.option(\"badgeExpr\"),\r\n onItemClick: this._titleClickAction.bind(this),\r\n onItemHold: this._titleHoldAction.bind(this),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onSelectionChanged: function(e) {\r\n this.option(\"selectedIndex\", e.component.option(\"selectedIndex\"));\r\n this._refreshActiveDescendant()\r\n }.bind(this),\r\n onItemRendered: this._titleRenderedAction.bind(this),\r\n itemTemplate: this._getTemplateByOption(\"itemTitleTemplate\"),\r\n items: this.option(\"items\"),\r\n noDataText: null,\r\n scrollingEnabled: this.option(\"scrollingEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n showNavButtons: this.option(\"showNavButtons\"),\r\n itemTemplateProperty: \"tabTemplate\",\r\n loopItemFocus: this.option(\"loop\"),\r\n selectionRequired: true,\r\n onOptionChanged: function(args) {\r\n if (\"focusedElement\" === args.name) {\r\n if (args.value) {\r\n var $value = (0, _renderer.default)(args.value);\r\n var $newItem = this._itemElements().eq($value.index());\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($newItem))\r\n } else {\r\n this.option(\"focusedElement\", args.value)\r\n }\r\n }\r\n }.bind(this),\r\n onFocusIn: function(args) {\r\n this._focusInHandler(args.event)\r\n }.bind(this),\r\n onFocusOut: function(args) {\r\n if (!this._isFocusOutHandlerExecuting) {\r\n this._focusOutHandler(args.event)\r\n }\r\n }.bind(this)\r\n }\r\n },\r\n _renderFocusTarget: function() {\r\n this._focusTarget().attr(\"tabIndex\", -1)\r\n },\r\n _updateFocusState: function(e, isFocused) {\r\n this.callBase(e, isFocused);\r\n if (e.target === this._tabs._focusTarget().get(0)) {\r\n this._toggleFocusClass(isFocused, this._focusTarget())\r\n }\r\n },\r\n _focusOutHandler: function(e) {\r\n this._isFocusOutHandlerExecuting = true;\r\n this.callBase.apply(this, arguments);\r\n this._tabs._focusOutHandler(e);\r\n this._isFocusOutHandlerExecuting = false\r\n },\r\n _setTabsOption: function(name, value) {\r\n if (this._tabs) {\r\n this._tabs.option(name, value)\r\n }\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._tabs._dimensionChanged();\r\n this._updateLayout()\r\n }\r\n },\r\n registerKeyHandler: function(key, handler) {\r\n this.callBase(key, handler);\r\n if (this._tabs) {\r\n this._tabs.registerKeyHandler(key, handler)\r\n }\r\n },\r\n repaint: function() {\r\n this.callBase();\r\n this._tabs.repaint()\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var value = args.value;\r\n var fullName = args.fullName;\r\n switch (name) {\r\n case \"dataSource\":\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n this._setTabsOption(name, this.option(name));\r\n this._updateLayout();\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n this._tabs.repaint()\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._tabs.repaint();\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n if (true === this.option(\"focusStateEnabled\")) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var selectedTabContent = this._itemElements().eq(selectedIndex);\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)(selectedTabContent))\r\n }\r\n break;\r\n case \"itemHoldTimeout\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n break;\r\n case \"scrollingEnabled\":\r\n case \"scrollByContent\":\r\n case \"showNavButtons\":\r\n this._setTabsOption(fullName, value);\r\n break;\r\n case \"focusedElement\":\r\n var id = value ? (0, _renderer.default)(value).index() : value;\r\n var newItem = value ? this._tabs._itemElements().eq(id) : value;\r\n this._setTabsOption(\"focusedElement\", (0, _element.getPublicElement)(newItem));\r\n this.callBase(args);\r\n break;\r\n case \"itemTitleTemplate\":\r\n this._setTabsOption(\"itemTemplate\", this._getTemplateByOption(\"itemTitleTemplate\"));\r\n break;\r\n case \"onTitleClick\":\r\n this._createTitleClickAction();\r\n this._setTabsOption(\"onItemClick\", this._titleClickAction.bind(this));\r\n break;\r\n case \"onTitleHold\":\r\n this._createTitleHoldAction();\r\n this._setTabsOption(\"onItemHold\", this._titleHoldAction.bind(this));\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderedAction();\r\n this._setTabsOption(\"onItemRendered\", this._titleRenderedAction.bind(this));\r\n break;\r\n case \"loop\":\r\n this._setTabsOption(\"loopItemFocus\", value);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n clearTimeout(this._resizeEventTimer);\r\n this.callBase()\r\n }\r\n});\r\nTabPanel.ItemClass = _item.default;\r\n(0, _component_registrator.default)(\"dxTabPanel\", TabPanel);\r\nvar _default = TabPanel;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/number_box/utils.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.splitByIndex = exports.getNthOccurrence = exports.getRealSeparatorIndex = void 0;\r\nvar getRealSeparatorIndex = function(str) {\r\n var quoteBalance = 0;\r\n var separatorCount = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n if (\"'\" === str[i]) {\r\n quoteBalance++\r\n }\r\n if (\".\" === str[i]) {\r\n ++separatorCount;\r\n if (quoteBalance % 2 === 0) {\r\n return {\r\n occurrence: separatorCount,\r\n index: i\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n occurrence: 1,\r\n index: -1\r\n }\r\n};\r\nexports.getRealSeparatorIndex = getRealSeparatorIndex;\r\nvar getNthOccurrence = function(str, c, n) {\r\n var i = -1;\r\n while (n-- && i++ < str.length) {\r\n i = str.indexOf(c, i)\r\n }\r\n return i\r\n};\r\nexports.getNthOccurrence = getNthOccurrence;\r\nvar splitByIndex = function(str, index) {\r\n if (index === -1) {\r\n return [str]\r\n }\r\n return [str.slice(0, index), str.slice(index + 1)]\r\n};\r\nexports.splitByIndex = splitByIndex;\r\n","/**\r\n * DevExtreme (ui/multi_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 _translator2 = require(\"../animation/translator\");\r\nvar _uiMulti_view = require(\"./multi_view/ui.multi_view.animation\");\r\nvar _math = require(\"../core/utils/math\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _common = require(\"../core/utils/common\");\r\nvar _visibility_change = require(\"../events/visibility_change\");\r\nvar _element = require(\"../core/element\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"./collection/ui.collection_widget.live_update\"));\r\nvar _swipeable = _interopRequireDefault(require(\"../events/gesture/swipeable\"));\r\nvar _deferred = require(\"../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar MULTIVIEW_CLASS = \"dx-multiview\";\r\nvar MULTIVIEW_WRAPPER_CLASS = \"dx-multiview-wrapper\";\r\nvar MULTIVIEW_ITEM_CONTAINER_CLASS = \"dx-multiview-item-container\";\r\nvar MULTIVIEW_ITEM_CLASS = \"dx-multiview-item\";\r\nvar MULTIVIEW_ITEM_HIDDEN_CLASS = \"dx-multiview-item-hidden\";\r\nvar MULTIVIEW_ITEM_DATA_KEY = \"dxMultiViewItemData\";\r\nvar MULTIVIEW_ANIMATION_DURATION = 200;\r\nvar toNumber = function(value) {\r\n return +value\r\n};\r\nvar position = function($element) {\r\n return (0, _translator2.locate)($element).left\r\n};\r\nvar MultiView = _uiCollection_widget.default.inherit({\r\n _activeStateUnit: \".\" + MULTIVIEW_ITEM_CLASS,\r\n _supportedKeys: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n pageUp: _common.noop,\r\n pageDown: _common.noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n selectedIndex: 0,\r\n swipeEnabled: true,\r\n animationEnabled: true,\r\n loop: false,\r\n deferRendering: true,\r\n _itemAttributes: {\r\n role: \"tabpanel\"\r\n },\r\n loopItemFocus: false,\r\n selectOnFocus: true,\r\n selectionMode: \"single\",\r\n selectionRequired: true,\r\n selectionByClick: 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 _itemClass: function() {\r\n return MULTIVIEW_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return MULTIVIEW_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$itemContainer\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().children(this._itemSelector())\r\n },\r\n _itemWidth: function() {\r\n if (!this._itemWidthValue) {\r\n this._itemWidthValue = this._$wrapper.width()\r\n }\r\n return this._itemWidthValue\r\n },\r\n _clearItemWidthCache: function() {\r\n delete this._itemWidthValue\r\n },\r\n _itemsCount: function() {\r\n return this.option(\"items\").length\r\n },\r\n _normalizeIndex: function(index) {\r\n var count = this._itemsCount();\r\n if (index < 0) {\r\n index += count\r\n }\r\n if (index >= count) {\r\n index -= count\r\n }\r\n return index\r\n },\r\n _getRTLSignCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var $element = this.$element();\r\n $element.addClass(MULTIVIEW_CLASS);\r\n this._$wrapper = (0, _renderer.default)(\"
\").addClass(MULTIVIEW_WRAPPER_CLASS);\r\n this._$wrapper.appendTo($element);\r\n this._$itemContainer = (0, _renderer.default)(\"
\").addClass(MULTIVIEW_ITEM_CONTAINER_CLASS);\r\n this._$itemContainer.appendTo(this._$wrapper);\r\n this.option(\"loopItemFocus\", this.option(\"loop\"));\r\n this._initSwipeable()\r\n },\r\n _initMarkup: function() {\r\n this._deferredItems = [];\r\n this.callBase();\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(deletedActionArgs.itemIndex, 1)\r\n }\r\n },\r\n _beforeItemElementInserted: function(change) {\r\n this.callBase.apply(this, arguments);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(change.index, 0, null)\r\n }\r\n },\r\n _executeItemRenderAction: function(index, itemData, itemElement) {\r\n index = (this.option(\"items\") || []).indexOf(itemData);\r\n this.callBase(index, itemData, itemElement)\r\n },\r\n _renderItemContent: function(args) {\r\n var renderContentDeferred = new _deferred.Deferred;\r\n var that = this;\r\n var callBase = this.callBase;\r\n var deferred = new _deferred.Deferred;\r\n deferred.done(function() {\r\n var $itemContent = callBase.call(that, args);\r\n renderContentDeferred.resolve($itemContent)\r\n });\r\n this._deferredItems[args.index] = deferred;\r\n this.option(\"deferRendering\") || deferred.resolve();\r\n return renderContentDeferred.promise()\r\n },\r\n _render: function() {\r\n var _this = this;\r\n this.callBase();\r\n (0, _common.deferRender)(function() {\r\n var selectedItemIndices = _this._getSelectedItemIndices();\r\n _this._updateItems(selectedItemIndices[0])\r\n })\r\n },\r\n _updateItems: function(selectedIndex, newIndex) {\r\n this._updateItemsPosition(selectedIndex, newIndex);\r\n this._updateItemsVisibility(selectedIndex, newIndex)\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _updateItemsPosition: function(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n var positionSign = (0, _type.isDefined)(newIndex) ? -this._animationDirection(newIndex, selectedIndex) : void 0;\r\n var $selectedItem = $itemElements.eq(selectedIndex);\r\n _uiMulti_view._translator.move($selectedItem, 0);\r\n if ((0, _type.isDefined)(newIndex)) {\r\n _uiMulti_view._translator.move($itemElements.eq(newIndex), 100 * positionSign + \"%\")\r\n }\r\n },\r\n _updateItemsVisibility: function(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n $itemElements.each(function(itemIndex, item) {\r\n var $item = (0, _renderer.default)(item);\r\n var isHidden = itemIndex !== selectedIndex && itemIndex !== newIndex;\r\n if (!isHidden) {\r\n this._renderSpecificItem(itemIndex)\r\n }\r\n $item.toggleClass(MULTIVIEW_ITEM_HIDDEN_CLASS, isHidden);\r\n this.setAria(\"hidden\", isHidden || void 0, $item)\r\n }.bind(this))\r\n },\r\n _renderSpecificItem: function(index) {\r\n var $item = this._itemElements().eq(index);\r\n var hasItemContent = $item.find(this._itemContentClass()).length > 0;\r\n if ((0, _type.isDefined)(index) && !hasItemContent) {\r\n this._deferredItems[index].resolve();\r\n (0, _visibility_change.triggerResizeEvent)($item)\r\n }\r\n },\r\n _refreshItem: function($item, item) {\r\n this.callBase($item, item);\r\n this._updateItemsVisibility(this.option(\"selectedIndex\"))\r\n },\r\n _setAriaSelected: _common.noop,\r\n _updateSelection: function(addedSelection, removedSelection) {\r\n var newIndex = addedSelection[0];\r\n var prevIndex = removedSelection[0];\r\n _uiMulti_view.animation.complete(this._$itemContainer);\r\n this._updateItems(prevIndex, newIndex);\r\n var animationDirection = this._animationDirection(newIndex, prevIndex);\r\n this._animateItemContainer(animationDirection * this._itemWidth(), function() {\r\n _uiMulti_view._translator.move(this._$itemContainer, 0);\r\n this._updateItems(newIndex);\r\n this._$itemContainer.width()\r\n }.bind(this))\r\n },\r\n _animateItemContainer: function(position, completeCallback) {\r\n var duration = this.option(\"animationEnabled\") ? MULTIVIEW_ANIMATION_DURATION : 0;\r\n _uiMulti_view.animation.moveTo(this._$itemContainer, position, duration, completeCallback)\r\n },\r\n _animationDirection: function(newIndex, prevIndex) {\r\n var containerPosition = position(this._$itemContainer);\r\n var indexDifference = (prevIndex - newIndex) * this._getRTLSignCorrection() * this._getItemFocusLoopSignCorrection();\r\n var isSwipePresent = 0 !== containerPosition;\r\n var directionSignVariable = isSwipePresent ? containerPosition : indexDifference;\r\n return (0, _math.sign)(directionSignVariable)\r\n },\r\n _getSwipeDisabledState: function() {\r\n return !this.option(\"swipeEnabled\") || this._itemsCount() <= 1\r\n },\r\n _initSwipeable: function() {\r\n var _this2 = this;\r\n this._createComponent(this.$element(), _swipeable.default, {\r\n disabled: this._getSwipeDisabledState(),\r\n elastic: false,\r\n itemSizeFunc: this._itemWidth.bind(this),\r\n onStart: function(args) {\r\n return _this2._swipeStartHandler(args.event)\r\n },\r\n onUpdated: function(args) {\r\n return _this2._swipeUpdateHandler(args.event)\r\n },\r\n onEnd: function(args) {\r\n return _this2._swipeEndHandler(args.event)\r\n }\r\n })\r\n },\r\n _swipeStartHandler: function(e) {\r\n _uiMulti_view.animation.complete(this._$itemContainer);\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var loop = this.option(\"loop\");\r\n var lastIndex = this._itemsCount() - 1;\r\n var rtl = this.option(\"rtlEnabled\");\r\n e.maxLeftOffset = toNumber(loop || (rtl ? selectedIndex > 0 : selectedIndex < lastIndex));\r\n e.maxRightOffset = toNumber(loop || (rtl ? selectedIndex < lastIndex : selectedIndex > 0));\r\n this._swipeDirection = null\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.offset;\r\n var swipeDirection = (0, _math.sign)(offset) * this._getRTLSignCorrection();\r\n _uiMulti_view._translator.move(this._$itemContainer, offset * this._itemWidth());\r\n if (swipeDirection !== this._swipeDirection) {\r\n this._swipeDirection = swipeDirection;\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var newIndex = this._normalizeIndex(selectedIndex - swipeDirection);\r\n this._updateItems(selectedIndex, newIndex)\r\n }\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.targetOffset * this._getRTLSignCorrection();\r\n if (targetOffset) {\r\n this.option(\"selectedIndex\", this._normalizeIndex(this.option(\"selectedIndex\") - targetOffset));\r\n var $selectedElement = this.itemElements().filter(\".dx-item-selected\");\r\n this.option(\"focusStateEnabled\") && this.option(\"focusedElement\", (0, _element.getPublicElement)($selectedElement))\r\n } else {\r\n this._animateItemContainer(0, _common.noop)\r\n }\r\n },\r\n _getItemFocusLoopSignCorrection: function() {\r\n return this._itemFocusLooped ? -1 : 1\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = false\r\n },\r\n _prevItem: function($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.last());\r\n return $result\r\n },\r\n _nextItem: function($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.first());\r\n return $result\r\n },\r\n _dimensionChanged: function() {\r\n this._clearItemWidthCache()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _updateSwipeDisabledState: function() {\r\n var disabled = this._getSwipeDisabledState();\r\n _swipeable.default.getInstance(this.$element()).option(\"disabled\", disabled)\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n switch (args.name) {\r\n case \"loop\":\r\n this.option(\"loopItemFocus\", value);\r\n break;\r\n case \"animationEnabled\":\r\n break;\r\n case \"swipeEnabled\":\r\n this._updateSwipeDisabledState();\r\n break;\r\n case \"deferRendering\":\r\n this._invalidate();\r\n break;\r\n case \"items\":\r\n this._updateSwipeDisabledState();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxMultiView\", MultiView);\r\nvar _default = MultiView;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/number_box/number_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 _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _number_box = _interopRequireDefault(require(\"./number_box.mask\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}(0, _component_registrator.default)(\"dxNumberBox\", _number_box.default);\r\nvar _default = _number_box.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/form/ui.form.layout_manager.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 _guid = _interopRequireDefault(require(\"../../core/guid\"));\r\nvar _uiForm = _interopRequireDefault(require(\"./ui.form.items_runtime_info\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _element = require(\"../../core/element\");\r\nvar _variable_wrapper = _interopRequireDefault(require(\"../../core/utils/variable_wrapper\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _string = require(\"../../core/utils/string\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _remove_event = _interopRequireDefault(require(\"../../core/remove_event\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _style = require(\"../../core/utils/style\");\r\nvar _inflector = require(\"../../core/utils/inflector\");\r\nvar _ui2 = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _validator = _interopRequireDefault(require(\"../validator\"));\r\nvar _responsive_box = _interopRequireDefault(require(\"../responsive_box\"));\r\nvar _themes = require(\"../themes\");\r\nvar _constants = require(\"./constants\");\r\nrequire(\"../text_box\");\r\nrequire(\"../number_box\");\r\nrequire(\"../check_box\");\r\nrequire(\"../date_box\");\r\nrequire(\"../button\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\nvar FORM_EDITOR_BY_DEFAULT = \"dxTextBox\";\r\nvar LAYOUT_MANAGER_FIRST_ROW_CLASS = \"dx-first-row\";\r\nvar LAYOUT_MANAGER_LAST_ROW_CLASS = \"dx-last-row\";\r\nvar LAYOUT_MANAGER_FIRST_COL_CLASS = \"dx-first-col\";\r\nvar LAYOUT_MANAGER_LAST_COL_CLASS = \"dx-last-col\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nvar LAYOUT_STRATEGY_FLEX = \"flex\";\r\nvar LAYOUT_STRATEGY_FALLBACK = \"fallback\";\r\nvar SIMPLE_ITEM_TYPE = \"simple\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar DATA_OPTIONS = [\"dataSource\", \"items\"];\r\nvar EDITORS_WITH_ARRAY_VALUE = [\"dxTagBox\", \"dxRangeSlider\"];\r\nvar LayoutManager = _ui2.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n layoutData: {},\r\n readOnly: false,\r\n colCount: 1,\r\n colCountByScreen: void 0,\r\n labelLocation: \"left\",\r\n onFieldDataChanged: null,\r\n onEditorEnterKey: null,\r\n customizeItem: null,\r\n alignItemLabels: true,\r\n minColWidth: 200,\r\n showRequiredMark: true,\r\n screenByWidth: null,\r\n showOptionalMark: false,\r\n requiredMark: \"*\",\r\n optionalMark: _message.default.format(\"dxForm-optionalMark\"),\r\n requiredMessage: _message.default.getFormatter(\"dxForm-requiredMessage\")\r\n })\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._optionsByReference, {\r\n layoutData: true,\r\n validationGroup: true\r\n })\r\n },\r\n _init: function() {\r\n var layoutData = this.option(\"layoutData\");\r\n this.callBase();\r\n this._itemWatchers = [];\r\n this._itemsRunTimeInfo = new _uiForm.default;\r\n this._updateReferencedOptions(layoutData);\r\n this._initDataAndItems(layoutData)\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n this._cleanItemWatchers()\r\n },\r\n _initDataAndItems: function(initialData) {\r\n this._syncDataWithItems();\r\n this._updateItems(initialData)\r\n },\r\n _syncDataWithItems: function() {\r\n var _this = this;\r\n var layoutData = this.option(\"layoutData\");\r\n var userItems = this.option(\"items\");\r\n if ((0, _type.isDefined)(userItems)) {\r\n userItems.forEach(function(item) {\r\n if (item.dataField && void 0 === _this._getDataByField(item.dataField)) {\r\n var value;\r\n if (item.editorOptions) {\r\n value = item.editorOptions.value\r\n }\r\n if ((0, _type.isDefined)(value) || item.dataField in layoutData) {\r\n _this._updateFieldValue(item.dataField, value)\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _getDataByField: function(dataField) {\r\n return dataField ? this.option(\"layoutData.\" + dataField) : null\r\n },\r\n _isCheckboxUndefinedStateEnabled: function(editorOption) {\r\n if (true === editorOption.allowIndeterminateState && \"dxCheckBox\" === editorOption.editorType) {\r\n var nameParts = [\"layoutData\"].concat(_toConsumableArray(editorOption.dataField.split(\".\")));\r\n var propertyName = nameParts.pop();\r\n var layoutData = this.option(nameParts.join(\".\"));\r\n return layoutData && propertyName in layoutData\r\n }\r\n return false\r\n },\r\n _updateFieldValue: function(dataField, value) {\r\n var layoutData = this.option(\"layoutData\");\r\n var newValue = value;\r\n if (!_variable_wrapper.default.isWrapped(layoutData[dataField]) && (0, _type.isDefined)(dataField)) {\r\n this.option(\"layoutData.\" + dataField, newValue)\r\n } else {\r\n if (_variable_wrapper.default.isWritableWrapped(layoutData[dataField])) {\r\n newValue = (0, _type.isFunction)(newValue) ? newValue() : newValue;\r\n layoutData[dataField](newValue)\r\n }\r\n }\r\n this._triggerOnFieldDataChanged({\r\n dataField: dataField,\r\n value: newValue\r\n })\r\n },\r\n _triggerOnFieldDataChanged: function(args) {\r\n this._createActionByOption(\"onFieldDataChanged\")(args)\r\n },\r\n _updateItems: function(layoutData) {\r\n var that = this;\r\n var userItems = this.option(\"items\");\r\n var isUserItemsExist = (0, _type.isDefined)(userItems);\r\n var customizeItem = that.option(\"customizeItem\");\r\n var items = isUserItemsExist ? userItems : this._generateItemsByData(layoutData);\r\n if ((0, _type.isDefined)(items)) {\r\n var processedItems = [];\r\n (0, _iterator.each)(items, function(index, item) {\r\n if (that._isAcceptableItem(item)) {\r\n item = that._processItem(item);\r\n customizeItem && customizeItem(item);\r\n if ((0, _type.isObject)(item) && false !== _variable_wrapper.default.unwrap(item.visible)) {\r\n processedItems.push(item)\r\n }\r\n }\r\n });\r\n if (!that._itemWatchers.length || !isUserItemsExist) {\r\n that._updateItemWatchers(items)\r\n }\r\n this._setItems(processedItems);\r\n this._sortItems()\r\n }\r\n },\r\n _cleanItemWatchers: function() {\r\n this._itemWatchers.forEach(function(dispose) {\r\n dispose()\r\n });\r\n this._itemWatchers = []\r\n },\r\n _updateItemWatchers: function(items) {\r\n var that = this;\r\n var watch = that._getWatch();\r\n items.forEach(function(item) {\r\n if ((0, _type.isObject)(item) && (0, _type.isDefined)(item.visible) && (0, _type.isFunction)(watch)) {\r\n that._itemWatchers.push(watch(function() {\r\n return _variable_wrapper.default.unwrap(item.visible)\r\n }, function() {\r\n that._updateItems(that.option(\"layoutData\"));\r\n that.repaint()\r\n }, {\r\n skipImmediate: true\r\n }))\r\n }\r\n })\r\n },\r\n _generateItemsByData: function(layoutData) {\r\n var result = [];\r\n if ((0, _type.isDefined)(layoutData)) {\r\n (0, _iterator.each)(layoutData, function(dataField) {\r\n result.push({\r\n dataField: dataField\r\n })\r\n })\r\n }\r\n return result\r\n },\r\n _isAcceptableItem: function(item) {\r\n var itemField = item.dataField || item;\r\n var itemData = this._getDataByField(itemField);\r\n return !((0, _type.isFunction)(itemData) && !_variable_wrapper.default.isWrapped(itemData))\r\n },\r\n _processItem: function(item) {\r\n if (\"string\" === typeof item) {\r\n item = {\r\n dataField: item\r\n }\r\n }\r\n if (\"object\" === _typeof(item) && !item.itemType) {\r\n item.itemType = SIMPLE_ITEM_TYPE\r\n }\r\n if (!(0, _type.isDefined)(item.editorType) && (0, _type.isDefined)(item.dataField)) {\r\n var value = this._getDataByField(item.dataField);\r\n item.editorType = (0, _type.isDefined)(value) ? this._getEditorTypeByDataType((0, _type.type)(value)) : FORM_EDITOR_BY_DEFAULT\r\n }\r\n if (\"dxCheckBox\" === item.editorType) {\r\n var _item$allowIndetermin;\r\n item.allowIndeterminateState = null !== (_item$allowIndetermin = item.allowIndeterminateState) && void 0 !== _item$allowIndetermin ? _item$allowIndetermin : true\r\n }\r\n return item\r\n },\r\n _getEditorTypeByDataType: function(dataType) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"dxNumberBox\";\r\n case \"date\":\r\n return \"dxDateBox\";\r\n case \"boolean\":\r\n return \"dxCheckBox\";\r\n default:\r\n return \"dxTextBox\"\r\n }\r\n },\r\n _sortItems: function() {\r\n (0, _array.normalizeIndexes)(this._items, \"visibleIndex\");\r\n this._sortIndexes()\r\n },\r\n _sortIndexes: function() {\r\n this._items.sort(function(itemA, itemB) {\r\n var indexA = itemA.visibleIndex;\r\n var indexB = itemB.visibleIndex;\r\n var result;\r\n if (indexA > indexB) {\r\n result = 1\r\n } else {\r\n if (indexA < indexB) {\r\n result = -1\r\n } else {\r\n result = 0\r\n }\r\n }\r\n return result\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._itemsRunTimeInfo.clear();\r\n this.$element().addClass(_constants.FORM_LAYOUT_MANAGER_CLASS);\r\n this.callBase();\r\n this._renderResponsiveBox()\r\n },\r\n _hasBrowserFlex: function() {\r\n return (0, _style.styleProp)(LAYOUT_STRATEGY_FLEX) === LAYOUT_STRATEGY_FLEX\r\n },\r\n _renderResponsiveBox: function() {\r\n var that = this;\r\n var templatesInfo = [];\r\n if (that._items && that._items.length) {\r\n var colCount = that._getColCount();\r\n var $container = (0, _renderer.default)(\"
\").appendTo(that.$element());\r\n that._prepareItemsWithMerging(colCount);\r\n var layoutItems = that._generateLayoutItems();\r\n that._extendItemsWithDefaultTemplateOptions(layoutItems, that._items);\r\n that._responsiveBox = that._createComponent($container, _responsive_box.default, that._getResponsiveBoxConfig(layoutItems, colCount, templatesInfo));\r\n if (!(0, _window.hasWindow)()) {\r\n that._renderTemplates(templatesInfo)\r\n }\r\n }\r\n },\r\n _extendItemsWithDefaultTemplateOptions: function(targetItems, sourceItems) {\r\n sourceItems.forEach(function(item) {\r\n if (!item.merged) {\r\n if ((0, _type.isDefined)(item.disabled)) {\r\n targetItems[item.visibleIndex].disabled = item.disabled\r\n }\r\n if ((0, _type.isDefined)(item.visible)) {\r\n targetItems[item.visibleIndex].visible = item.visible\r\n }\r\n }\r\n })\r\n },\r\n _itemStateChangedHandler: function(e) {\r\n this._refresh()\r\n },\r\n _renderTemplate: function($container, item) {\r\n switch (item.itemType) {\r\n case \"empty\":\r\n this._renderEmptyItem($container);\r\n break;\r\n case \"button\":\r\n this._renderButtonItem(item, $container);\r\n break;\r\n default:\r\n this._renderFieldItem(item, $container)\r\n }\r\n },\r\n _renderTemplates: function(templatesInfo) {\r\n var that = this;\r\n (0, _iterator.each)(templatesInfo, function(index, info) {\r\n that._renderTemplate(info.container, info.formItem)\r\n })\r\n },\r\n _getResponsiveBoxConfig: function(layoutItems, colCount, templatesInfo) {\r\n var that = this;\r\n var colCountByScreen = that.option(\"colCountByScreen\");\r\n var xsColCount = colCountByScreen && colCountByScreen.xs;\r\n return {\r\n onItemStateChanged: this._itemStateChangedHandler.bind(this),\r\n _layoutStrategy: that._hasBrowserFlex() ? LAYOUT_STRATEGY_FLEX : LAYOUT_STRATEGY_FALLBACK,\r\n onLayoutChanged: function onLayoutChanged() {\r\n var onLayoutChanged = that.option(\"onLayoutChanged\");\r\n var isSingleColumnMode = that.isSingleColumnMode();\r\n if (onLayoutChanged) {\r\n that.$element().toggleClass(_constants.LAYOUT_MANAGER_ONE_COLUMN, isSingleColumnMode);\r\n onLayoutChanged(isSingleColumnMode)\r\n }\r\n },\r\n onContentReady: function(e) {\r\n if ((0, _window.hasWindow)()) {\r\n that._renderTemplates(templatesInfo)\r\n }\r\n if (that.option(\"onLayoutChanged\")) {\r\n that.$element().toggleClass(_constants.LAYOUT_MANAGER_ONE_COLUMN, that.isSingleColumnMode(e.component))\r\n }\r\n },\r\n itemTemplate: function(e, itemData, itemElement) {\r\n if (!e.location) {\r\n return\r\n }\r\n var $itemElement = (0, _renderer.default)(itemElement);\r\n var itemRenderedCountInPreviousRows = e.location.row * colCount;\r\n var item = that._items[e.location.col + itemRenderedCountInPreviousRows];\r\n var $fieldItem = (0, _renderer.default)(\"
\").addClass(item.cssClass).appendTo($itemElement);\r\n templatesInfo.push({\r\n container: $fieldItem,\r\n formItem: item\r\n });\r\n $itemElement.toggleClass(_constants.SINGLE_COLUMN_ITEM_CONTENT, that.isSingleColumnMode(this));\r\n if (0 === e.location.row) {\r\n $fieldItem.addClass(LAYOUT_MANAGER_FIRST_ROW_CLASS)\r\n }\r\n if (0 === e.location.col) {\r\n $fieldItem.addClass(LAYOUT_MANAGER_FIRST_COL_CLASS)\r\n }\r\n if (item.itemType === SIMPLE_ITEM_TYPE && that.option(\"isRoot\")) {\r\n $itemElement.addClass(_constants.ROOT_SIMPLE_ITEM_CLASS)\r\n }\r\n var isLastColumn = e.location.col === colCount - 1 || e.location.col + e.location.colspan === colCount;\r\n var rowsCount = that._getRowsCount();\r\n var isLastRow = e.location.row === rowsCount - 1;\r\n if (isLastColumn) {\r\n $fieldItem.addClass(LAYOUT_MANAGER_LAST_COL_CLASS)\r\n }\r\n if (isLastRow) {\r\n $fieldItem.addClass(LAYOUT_MANAGER_LAST_ROW_CLASS)\r\n }\r\n },\r\n cols: that._generateRatio(colCount),\r\n rows: that._generateRatio(that._getRowsCount(), true),\r\n dataSource: layoutItems,\r\n screenByWidth: that.option(\"screenByWidth\"),\r\n singleColumnScreen: xsColCount ? false : \"xs\"\r\n }\r\n },\r\n _getColCount: function() {\r\n var colCount = this.option(\"colCount\");\r\n var colCountByScreen = this.option(\"colCountByScreen\");\r\n if (colCountByScreen) {\r\n var screenFactor = this.option(\"form\").getTargetScreenFactor();\r\n if (!screenFactor) {\r\n screenFactor = (0, _window.hasWindow)() ? (0, _window.getCurrentScreenFactor)(this.option(\"screenByWidth\")) : \"lg\"\r\n }\r\n colCount = colCountByScreen[screenFactor] || colCount\r\n }\r\n if (\"auto\" === colCount) {\r\n if (this._cashedColCount) {\r\n return this._cashedColCount\r\n }\r\n this._cashedColCount = colCount = this._getMaxColCount()\r\n }\r\n return colCount < 1 ? 1 : colCount\r\n },\r\n _getMaxColCount: function() {\r\n if (!(0, _window.hasWindow)()) {\r\n return 1\r\n }\r\n var minColWidth = this.option(\"minColWidth\");\r\n var width = this.$element().width();\r\n var itemsCount = this._items.length;\r\n var maxColCount = Math.floor(width / minColWidth) || 1;\r\n return itemsCount < maxColCount ? itemsCount : maxColCount\r\n },\r\n isCachedColCountObsolete: function() {\r\n return this._cashedColCount && this._getMaxColCount() !== this._cashedColCount\r\n },\r\n _prepareItemsWithMerging: function(colCount) {\r\n var items = this._items.slice(0);\r\n var item;\r\n var itemsMergedByCol;\r\n var result = [];\r\n var j;\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n item = items[i];\r\n result.push(item);\r\n if (this.option(\"alignItemLabels\") || item.alignItemLabels || item.colSpan) {\r\n item.col = this._getColByIndex(result.length - 1, colCount)\r\n }\r\n if (item.colSpan > 1 && item.col + item.colSpan <= colCount) {\r\n itemsMergedByCol = [];\r\n for (j = 0; j < item.colSpan - 1; j++) {\r\n itemsMergedByCol.push({\r\n merged: true\r\n })\r\n }\r\n result = result.concat(itemsMergedByCol)\r\n } else {\r\n delete item.colSpan\r\n }\r\n }\r\n this._setItems(result)\r\n },\r\n _getColByIndex: function(index, colCount) {\r\n return index % colCount\r\n },\r\n _setItems: function(items) {\r\n this._items = items;\r\n this._cashedColCount = null\r\n },\r\n _generateLayoutItems: function() {\r\n var items = this._items;\r\n var colCount = this._getColCount();\r\n var result = [];\r\n var item;\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n item = items[i];\r\n if (!item.merged) {\r\n var generatedItem = {\r\n location: {\r\n row: parseInt(i / colCount),\r\n col: this._getColByIndex(i, colCount)\r\n }\r\n };\r\n if ((0, _type.isDefined)(item.colSpan)) {\r\n generatedItem.location.colspan = item.colSpan\r\n }\r\n if ((0, _type.isDefined)(item.rowSpan)) {\r\n generatedItem.location.rowspan = item.rowSpan\r\n }\r\n result.push(generatedItem)\r\n }\r\n }\r\n return result\r\n },\r\n _renderEmptyItem: function($container) {\r\n return $container.addClass(_constants.FIELD_EMPTY_ITEM_CLASS).html(\" \")\r\n },\r\n _getButtonHorizontalAlignment: function(item) {\r\n if ((0, _type.isDefined)(item.horizontalAlignment)) {\r\n return item.horizontalAlignment\r\n }\r\n return \"right\"\r\n },\r\n _getButtonVerticalAlignment: function(item) {\r\n switch (item.verticalAlignment) {\r\n case \"center\":\r\n return \"center\";\r\n case \"bottom\":\r\n return \"flex-end\";\r\n default:\r\n return \"flex-start\"\r\n }\r\n },\r\n _renderButtonItem: function(item, $container) {\r\n var $button = (0, _renderer.default)(\"
\").appendTo($container);\r\n var defaultOptions = {\r\n validationGroup: this.option(\"validationGroup\")\r\n };\r\n $container.addClass(_constants.FIELD_BUTTON_ITEM_CLASS).css(\"textAlign\", this._getButtonHorizontalAlignment(item));\r\n $container.parent().css(\"justifyContent\", this._getButtonVerticalAlignment(item));\r\n var instance = this._createComponent($button, \"dxButton\", (0, _extend.extend)(defaultOptions, item.buttonOptions));\r\n this._itemsRunTimeInfo.add({\r\n item: item,\r\n widgetInstance: instance,\r\n guid: item.guid,\r\n $itemContainer: $container\r\n });\r\n this._addItemClasses($container, item.col);\r\n return $button\r\n },\r\n _addItemClasses: function($item, column) {\r\n $item.addClass(_constants.FIELD_ITEM_CLASS).addClass(this.option(\"cssItemClass\")).addClass((0, _type.isDefined)(column) ? \"dx-col-\" + column : \"\")\r\n },\r\n _renderFieldItem: function(item, $container) {\r\n var that = this;\r\n var name = that._getName(item);\r\n var id = that.getItemID(name);\r\n var isRequired = (0, _type.isDefined)(item.isRequired) ? item.isRequired : !!that._hasRequiredRuleInSet(item.validationRules);\r\n var labelOptions = that._getLabelOptions(item, id, isRequired);\r\n var $editor = (0, _renderer.default)(\"
\");\r\n var helpID = item.helpText ? \"dx-\" + new _guid.default : null;\r\n var $label;\r\n this._addItemClasses($container, item.col);\r\n $container.addClass(isRequired ? _constants.FIELD_ITEM_REQUIRED_CLASS : _constants.FIELD_ITEM_OPTIONAL_CLASS);\r\n if (labelOptions.visible && labelOptions.text) {\r\n $label = that._renderLabel(labelOptions).appendTo($container)\r\n }\r\n if (item.itemType === SIMPLE_ITEM_TYPE) {\r\n if (that._isLabelNeedBaselineAlign(item) && \"top\" !== labelOptions.location) {\r\n $container.addClass(_constants.FIELD_ITEM_LABEL_ALIGN_CLASS)\r\n }\r\n that._hasBrowserFlex() && $container.addClass(_constants.FLEX_LAYOUT_CLASS)\r\n }\r\n $editor.data(\"dx-form-item\", item);\r\n that._appendEditorToField({\r\n $fieldItem: $container,\r\n $label: $label,\r\n $editor: $editor,\r\n labelOptions: labelOptions\r\n });\r\n var instance = that._renderEditor({\r\n $container: $editor,\r\n dataField: item.dataField,\r\n name: item.name,\r\n editorType: item.editorType,\r\n editorOptions: item.editorOptions,\r\n template: that._getTemplateByFieldItem(item),\r\n isRequired: isRequired,\r\n helpID: helpID,\r\n labelID: labelOptions.labelID,\r\n id: id,\r\n validationBoundary: that.option(\"validationBoundary\"),\r\n allowIndeterminateState: item.allowIndeterminateState\r\n });\r\n this._itemsRunTimeInfo.add({\r\n item: item,\r\n widgetInstance: instance,\r\n guid: item.guid,\r\n $itemContainer: $container\r\n });\r\n var editorElem = $editor.children().first();\r\n var $validationTarget = editorElem.hasClass(TEMPLATE_WRAPPER_CLASS) ? editorElem.children().first() : editorElem;\r\n var validationTargetInstance = $validationTarget && $validationTarget.data(\"dx-validation-target\");\r\n if (validationTargetInstance) {\r\n that._renderValidator($validationTarget, item);\r\n if ((0, _themes.isMaterial)()) {\r\n that._addWrapperInvalidClass(validationTargetInstance)\r\n }\r\n }\r\n that._renderHelpText(item, $editor, helpID);\r\n that._attachClickHandler($label, $editor, item.editorType)\r\n },\r\n _hasRequiredRuleInSet: function(rules) {\r\n var hasRequiredRule;\r\n if (rules && rules.length) {\r\n (0, _iterator.each)(rules, function(index, rule) {\r\n if (\"required\" === rule.type) {\r\n hasRequiredRule = true;\r\n return false\r\n }\r\n })\r\n }\r\n return hasRequiredRule\r\n },\r\n _getName: function(item) {\r\n return item.dataField || item.name\r\n },\r\n _isLabelNeedBaselineAlign: function(item) {\r\n var largeEditors = [\"dxTextArea\", \"dxRadioGroup\", \"dxCalendar\", \"dxHtmlEditor\"];\r\n return !!item.helpText && !this._hasBrowserFlex() || (0, _array.inArray)(item.editorType, largeEditors) !== -1\r\n },\r\n _isLabelNeedId: function(item) {\r\n var editorsRequiringIdForLabel = [\"dxRadioGroup\", \"dxCheckBox\", \"dxLookup\", \"dxSlider\", \"dxRangeSlider\", \"dxSwitch\", \"dxHtmlEditor\"];\r\n return (0, _array.inArray)(item.editorType, editorsRequiringIdForLabel) !== -1\r\n },\r\n _getLabelOptions: function(item, id, isRequired) {\r\n var labelOptions = (0, _extend.extend)({\r\n showColon: this.option(\"showColonAfterLabel\"),\r\n location: this.option(\"labelLocation\"),\r\n id: id,\r\n visible: true,\r\n isRequired: isRequired\r\n }, item ? item.label : {});\r\n if (this._isLabelNeedId(item)) {\r\n labelOptions.labelID = \"dx-label-\".concat(new _guid.default)\r\n }\r\n if (!labelOptions.text && item.dataField) {\r\n labelOptions.text = (0, _inflector.captionize)(item.dataField)\r\n }\r\n if (labelOptions.text) {\r\n labelOptions.text += labelOptions.showColon ? \":\" : \"\"\r\n }\r\n return labelOptions\r\n },\r\n _renderLabel: function(options) {\r\n var text = options.text,\r\n id = options.id,\r\n location = options.location,\r\n alignment = options.alignment,\r\n isRequired = options.isRequired,\r\n _options$labelID = options.labelID,\r\n labelID = void 0 === _options$labelID ? null : _options$labelID;\r\n if ((0, _type.isDefined)(text) && text.length > 0) {\r\n var labelClasses = _constants.FIELD_ITEM_LABEL_CLASS + \" \" + _constants.FIELD_ITEM_LABEL_LOCATION_CLASS + location;\r\n var $label = (0, _renderer.default)(\"