{"version":3,"sources":["../node_modules/devextreme/ui/selection/selection.js","../node_modules/devextreme/ui/scroll_view/ui.scrollable.native.js","../node_modules/devextreme/ui/scroll_view/ui.events.emitter.gesture.scroll.js","../node_modules/devextreme/ui/shared/grouped_data_converter_mixin.js","../node_modules/devextreme/ui/selection/selection.strategy.js","../node_modules/devextreme/ui/scroll_view/ui.scrollbar.js","../node_modules/devextreme/ui/scroll_view/ui.scrollable.simulated.js","../node_modules/devextreme/ui/scroll_view/animator.js","../node_modules/devextreme/ui/scroll_view/ui.scrollable.device.js","../node_modules/devextreme/ui/shared/ui.editor_factory_mixin.js","../node_modules/devextreme/ui/slider.js","../node_modules/devextreme/ui/slider/ui.slider_handle.js","../node_modules/devextreme/ui/slide_out_view.js","../node_modules/devextreme/ui/selection/selection.strategy.deferred.js","../node_modules/devextreme/ui/selection/selection.strategy.standard.js","../node_modules/devextreme/ui/scroll_view/ui.scroll_view.js","../node_modules/devextreme/ui/scroll_view/ui.scroll_view.native.pull_down.js","../node_modules/devextreme/ui/scroll_view/ui.scroll_view.native.swipe_down.js","../node_modules/devextreme/ui/scroll_view/ui.scroll_view.simulated.js","../node_modules/devextreme/ui/slider/ui.slider.js","../node_modules/devextreme/ui/slide_out.js","../node_modules/devextreme/ui/slide_out_view/ui.slide_out_view.animation.js","../node_modules/devextreme/ui/scroll_view.js","../node_modules/devextreme/ui/scroll_view/ui.scrollable.js","../node_modules/devextreme/ui/shared/accessibility.js","../node_modules/devextreme/ui/select_box.js","../node_modules/devextreme/ui/shared/filtering.js"],"names":["exports","default","_class","_interopRequireDefault","require","_selectionStrategy","_selectionStrategy2","_extend","_common","_type","_deferred","obj","__esModule","_default","inherit","ctor","options","this","extend","_getDefaultOptions","selectedItemKeys","selectedKeys","deferred","_focusedItemIndex","equalByReference","updateSelectedItemKeyHash","allowNullValue","mode","selectedItems","selectionFilter","maxFilterLengthInRequest","onSelectionChanged","noop","key","keyOf","item","load","Deferred","resolve","totalCount","isSelectableItem","isItemSelected","getItemData","dataFields","filter","validate","getSelectedItemKeys","getSelectedItems","value","filterIsChanged","JSON","stringify","setSelection","keys","updatedKeys","select","deselect","preserve","isDeselect","isSelectAll","_keys","Array","isArray","clearSelection","_addSelectedItem","itemData","addSelectedItem","_removeSelectedItem","removeSelectedItem","_setSelectedItems","items","setSelectedItems","changeItemSelection","itemIndex","isSelectedItemsChanged","plainItems","isSelectable","isDataItem","itemKey","shift","changeItemSelectionWhenShiftKeyPressed","control","_resetItemSelectionWhenShiftKeyPressed","isSelected","isItemDataSelected","clearSelectedItems","isKeysEqual","equalKeys","length","data","checkPending","arg","isItemKeySelected","_shiftFocusedItemIndex","_resetFocusedItemIndex","itemIndexStep","index","focusedItem","focusedData","focusedKey","isFocusedItemSelected","isDefined","selectAll","isOnePage","_onePageSelectAll","deselectAll","getSelectableItems","i","getSelectAllState","visibleOnly","module","_renderer","_events_engine","_index","_iterator","_devices","_ui","scrollable","_init","_component","_$element","$element","_$container","_$content","_direction","option","_useSimulatedScrollbar","_showScrollbar","bind","_createActionByOption","_isLocked","_isDirection","_allowedDirection","_getScrollOffset","_getMaxOffset","render","_renderPushBackOffset","deviceType","real","platform","addClass","SCROLLABLE_NATIVE_CLASS","toggleClass","_renderScrollbars","updateBounds","pushBackValue","_lastPushBackValue","css","paddingTop","paddingBottom","_scrollbars","_hideScrollbarTimeout","_renderScrollbar","direction","appendTo","expandable","handleInit","handleStart","_disablePushBack","handleMove","e","cancel","originalEvent","isScrollingEvent","handleEnd","handleCancel","handleStop","_eachScrollbar","callback","each","scrollbar","createActions","_scrollAction","_updateAction","_createActionArgs","_this$location","location","left","top","event","_eventForUserAction","scrollOffset","reachedLeft","_isReachedLeft","reachedRight","_isReachedRight","reachedTop","reachedBottom","Math","abs","handleScroll","_updateRtlConfig","_isScrollLocationChanged","_moveScrollbars","_lastLocation","_pushBackFromBoundary","stopImmediatePropagation","_containerSize","height","_contentSize","scrollTopPos","scrollTop","currentLocation","lastLocation","isTopChanged","isLeftChanged","moveTo","_hideScrollbars","clearTimeout","setTimeout","scrollLeft","disabledChanged","update","_update","_updateDimensions","_updateScrollbars","width","_componentContentSize","$content","dimension","containerSize","contentSize","_allowedDirections","vertical","horizontal","dispose","className","get","scrollableNativeRegexp","RegExp","test","removeClass","match","join","off","_removeScrollbars","remove","scrollBy","distance","round","isDxMouseWheelEvent","_isScrolledInMaxDirection","container","delta","shiftKey","getDirection","verticalOffset","_emitter","_emitter_registrator","_frame","_version","abstract","realDevice","Locker","NAMESPACED_SCROLL_EVENT","addNamespace","element","_element","_locked","that","_proxiedScroll","_scroll","on","check","TimeoutLocker","timeout","callBase","_timeout","_prepare","_forget","_timer","_clearTimer","WheelLocker","_lastWheelDirection","_checkDirectionChanged","directionChange","PointerLocker","ios8_greater","ios","compare","version","android5_greater","android","cancelAnimationFrame","_scrollFrame","requestAnimationFrame","_checkFrame","call","ScrollEmitter","FRAME_DURATION","apply","arguments","_pointerLocker","_wheelLocker","configure","scrollTarget","_accept","skipCheck","isNative","isMouseEvent","_fireEvent","_prevEventData","eventData","move","_start","_savedEventData","_move","currentEventData","eventDelta","time","_end","endEventDelta","velocity","x","y","velocityMultiplier","_stop","_clearSelection","_toggleGestureCover","emitter","events","init","start","end","stop","_getSpecificDataSourceOption","dataSource","hasSimpleItems","_getGroupedOption","every","Object","isCorrectStructure","reduce","accumulator","map","innerItem","isObject","text","concat","store","type","group","selector","keepInitialKeyOrder","searchExpr","_query","_setOption","_clearItemKeys","name","addedItemKeys","removedItemKeys","addedItems","removedItems","key1","key2","equalByValue","disabled","_removeTemplateProperty","remoteFilter","_this","f","template","_loadFilteredData","localFilter","filterLength","encodeURI","needLoadAllData","loadOptions","done","filteredItems","isPlainObject","toArray","fail","reject","keyHash","getKeyHash","keyHashIndices","push","_isAnyItemSelected","_getFullSelectAllState","dataFilter","selectedItemsLength","disabledItemKeys","_getVisibleSelectAllState","hasSelectedItems","hasUnselectedItems","_dom_adapter","_ready_callbacks","_translator","_pointer","SCROLLABLE_SCROLLBAR_ACTIVE_CLASS","SCROLLBAR_VISIBLE","activeScrollbar","Scrollbar","visible","activeStateEnabled","visibilityMode","scaleRatio","_isHovered","_initMarkup","_renderThumb","_render","_renderDirection","_attachPointerDownHandler","_isHoverMode","_$thumb","append","isThumb","find","_dimension","_prop","down","feedbackOn","feedbackOff","cursorEnter","_needScrollbar","cursorLeave","_renderDimensions","_toggleVisibility","_adjustVisibility","_baseContainerToContentRatio","_isHidden","scrollBarLocation","_calculateScrollBarPosition","_thumbRatio","baseContainerSize","baseContentSize","isNaN","_realContainerToContentRatio","thumbSize","max","containerToContentRatio","_normalizeSize","size","_clean","_optionChanged","args","_invalidate","deferRenderer","add","subscribeGlobal","getDocument","up","SimulatedStrategy","Scroller","_inflector","_window","_position","_animator","hoveredScrollable","activeScrollable","HORIZONTAL","BOUNCE_FRAMES","BOUNCE_ACCELERATION_SUM","pow","KEY_CODES","InertiaAnimator","scroller","VELOCITY_LIMIT","_isFinished","_velocity","_step","_scrollStep","_acceleration","_inBounds","_complete","_scrollComplete","_stopComplete","BounceAnimator","MIN_VELOCITY_LIMIT","_crossBoundOnNextStep","_bounceLocation","_initOptions","_initAnimators","_initScrollbar","_location","_topReached","_bottomReached","_axis","_scrollProp","optionName","optionValue","_inertiaAnimator","_bounceAnimator","_scrollbar","_scrollByThumb","_visibilityModeNormalize","_scrollbarVisible","_$scrollbar","prevLocation","_suppressBounce","triggerHandler","_bounceEnabled","_boundLocation","min","_maxOffset","_minOffset","_getScaleRatio","_moveContent","_moveScrollbar","_moveContentByTranslator","hasWindow","_scaleRatio","realDimension","_getRealDimension","baseDimension","_getBaseDimension","getBoundingRect","titleize","translateOffset","minOffset","_maxScrollPropValue","_translateOffset","targetLocation","resetPosition","_hideScrollbar","_completeDeferred","_scrollToBounds","_bounceAction","_setupBounce","bounceDistance","nextLocation","_initHandler","_stopDeferred","_stopScrolling","_prepareThumbScrolling","promise","$target","target","scrollbarClicked","_isScrollbar","_moveToMouseLocation","_thumbScrolling","_isThumb","_crossThumbScrolling","_isAnyThumbScrolling","_isThumbScrollingHandler","mouseLocation","toUpperCase","offset","_containerToContentRatio","_startHandler","_moveHandler","_scrollBy","_scrollByHandler","_endHandler","_inertiaHandler","_resetThumbScrolling","_suppressInertia","_inertiaEnabled","_stopHandler","_disposeHandler","_updateHandler","_moveToBounds","_this2","deferUpdate","_resetScaleRatio","_updateLocation","_updateBounds","_updateScrollbar","deferRender","locate","_getMinOffset","deferUpdater","_this3","locationChanged","_createActionsHandler","actions","scroll","bounce","isOverflowHidden","containerScrollSize","_validateEvent","_isContent","is","_scrollByContent","closest","_reachedMin","_reachedMax","_cursorEnterHandler","_cursorLeaveHandler","_$wrapper","_createScrollers","prop","_attachKeyboardHandler","_attachCursorHandlers","_scrollers","_createScroller","_scrollerOptions","$container","$wrapper","scrollByContent","scrollByThumb","scrollbarVisible","bounceEnabled","inertiaEnabled","isAnyThumbScrolling","_applyScaleRatio","_getPropByDirection","result","_eventHandler","isThumbScrollingVertical","isThumbScrollingHorizontal","_suppressDirections","_stopAction","_prepareDirections","_eachScroller","isValid","_validDirections","_startAction","_saveActive","_resetActive","preventDefault","_adjustDistance","devicePixelRatio","_tryGetDevicePixelRatio","getWindow","_refreshCursorState","_endAction","SCROLLABLE_SIMULATED","_keyDownHandler","_this4","_updateHandlerTimeout","normalizeKeyName","getActiveElement","handled","_scrollByLine","_scrollByPage","_scrollToHome","_scrollToEnd","stopPropagation","lines","page","_wheelProp","_dimensionByProp","scrollTo","_createActionHandler","_createScrollerActions","_arguments","_this5","actionHandler","_this$_scrollers","scrollerX","scrollerY","_scrollOffset","eventName","slice","deferreds","when","_hoverHandled","relatedTarget","$scrollable","targetScrollable","_this6","allowedDirections","touchDirection","verticalScroller","horizontalScroller","isCommandKeyPressed","_validateWheel","_validateMove","_this7","_wheelDirection","reachedMin","reachedMax","contentGreaterThanContainer","locatedNotAtBound","scrollFromMin","scrollFromMax","validated","_validateWheelTimer","_detachEventHandlers","_finished","_stopped","_proxiedStepCore","_stepCore","_stepAnimationFrame","_isStopped","inProgress","deviceDependentOptions","_support","device","nativeScrolling","useNative","_device","isSimulator","touch","showScrollbar","_variable_wrapper","_data","_browser","_utils","isWrapped","getResultConfig","config","readOnly","placeholder","inputAttr","id","tabIndex","editorOptions","checkEnterBug","msie","mozilla","getTextEditorConfig","isEnterBug","sharedData","onValueChanged","needDelayedUpdate","parentType","isInputOrKeyUpEvent","updateValue","notFireEvent","setValue","valueChangeTimeout","updateValueTimeout","onKeyDown","trigger","component","_input","valueChangeEvent","prepareBooleanEditor","prepareSelectBox","lookup","displayExpr","trueText","falseText","editorName","elementAttr","hoverStateEnabled","focusStateEnabled","prepareCheckBox","displayGetter","postProcess","isFilterRow","compileGetter","isFunction","row","watch","selectBox","onInitialized","stopWatch","newValue","watchLookupDataSource","normalizeDataSourceOptions","pageIndex","unshift","allowClearing","Boolean","searchEnabled","valueExpr","showClearButton","showAllText","params","createEditor","editorElement","getPublicElement","dataType","blur","focus","displayFormat","format","dateSerializationFormat","prepareDateBox","prepareNumberBox","isSearching","editorType","toString","prepareTextBox","executeAction","isOnForm","showValidationMark","$editorElement","addWidgetPrefix","parent","_createComponent","dxTextBox","registerKeyHandler","dateBox","dxDateBox","defaultEnterKeyHandler","_supportedKeys","enter","dxTextArea","ctrlKey","createEditorCore","_tooltip","_math","_position2","_number","POSITION_ALIASES","my","at","collision","bottom","right","tooltipEnabled","tooltipFormat","v","tooltipPosition","tooltipShowMode","tooltipFitIn","setAria","role","valuenow","_renderTooltip","_$tooltip","_$slider","_updateTooltip","_removeTooltip","_createTooltip","closeOnOutsideClick","hideTopOverlayHandler","closeOnTargetScroll","onPositioned","_saveTooltipElements","_saveTooltipLocation","_centeredTooltipPosition","animation","arrowPosition","templatesRenderAsynchronously","_fixedPosition","_renderTooltipPosition","position","_resetTooltipPosition","boundary","boundaryOffset","h","tooltip","_$tooltipContent","_$tooltipArrow","_contentLocate","outerWidth","outerWidthWithoutRounding","tooltipOuterWidth","ceil","roundedTooltipOuterWidth","tooltipCenter","marginLeft","_fitTooltip","of","calculatePosition","calculate","isLeftSide","collisionSide","arrowLeft","oversize","arrowMinLeft","arrowMaxRight","fitIntoRange","_getFormattedValue","_renderValue","html","hoverMode","_ensureTooltipIsCentered","previousValue","fitTooltipPosition","updateTooltip","repaint","_visibilityChanged","_click","_hide_callback","_component_registrator","_swipeable","_empty_template","_uiSlide_out_view","SlideOutView","_logDeprecatedComponentWarning","menuPosition","menuVisible","swipeEnabled","menuTemplate","contentTemplate","contentOffset","_defaultOptionsRules","win","phone","_whenAnimationComplete","_whenMenuRendered","_initHideTopOverlayHandler","_hideMenuHandler","hideMenu","_getAnonymousTemplateName","_initTemplates","_templateManager","addDefaultTemplates","menu","EmptyTemplate","content","_renderMarkup","_getTemplate","menuContent","onRendered","contentTemplateOption","transclude","anonymousTemplateName","noModel","_renderShield","_toggleMenuPositionClass","always","_initSwipeHandlers","_dimensionChanged","_$menu","_$shield","_toggleShieldVisibility","elastic","itemSizeFunc","_getMenuWidth","onStart","_swipeStartHandler","onUpdated","_swipeUpdateHandler","onEnd","_swipeEndHandler","_isRightMenuPosition","invertedPosition","rtl","complete","maxLeftOffset","maxRightOffset","_getRTLSignCorrection","_renderPosition","targetOffset","SLIDEOUTVIEW_CLASS","animate","pos","_calculatePixelOffset","_toggleHideMenuCallback","_animationCompleteHandler","_menuWidth","maxMenuWidth","currentMenuWidth","resolveWith","subscribe","hideCallback","_dispose","showMenu","toggleMenuVisibility","showing","_selection","d","isString","_addSelectionFilter","_getKeyExpr","keyField","_normalizeKey","keyExpr","_getFilterByKey","Error","_findSubFilter","filterString","subFilter","_isLastSubFilter","_addFilterOperator","filterOperator","_denormalizeFilter","currentFilter","currentOperation","needAddFilter","_removeSameFilter","filterIndex","isKeyOperatorsAfterRemoved","_isKeyFilter","_hasKeyFiltersOnlyStartingFromIndex","_normalizeFilter","_removeFilterByIndex","operation","splice","_isSimpleKeyFilter","inverted","_filterIndex","_array","_array_compare","_selection_filter","_initSelectedItemKeyHash","_preserveSelectionUpdate","keyIndicesToRemoveMap","keyIndex","isBatchDeselect","_batchRemoveSelectedItems","_loadSelectedItemsCore","selectionFilterCreator","SelectionFilterCreator","combinedFilter","getCombinedFilter","deselectedItems","getLocalFilter","_replaceSelectionUpdate","internalKeys","_warnOnIncorrectKeys","log","_isMultiSelectEnabled","_requestInProgress","_this$_lastLoadDeferr","_lastLoadDeferred","state","_concatRequestsItems","oldRequestItems","removeDuplicates","added","removed","_collectLastRequestData","isDeselectAll","multiSelectEnabled","lastRequestData","_lastRequestData","_shouldMergeWithLastRequest","_updateKeysByLastRequestData","_this$_lastRequestDat","_this$_lastRequestDat2","currentKeys","uniqueValues","_loadSelectedItems","ignoreDisabledItems","indexOf","_getKeyHash","_indexOfSelectedItemKey","_getSelectedIndexByKey","ignoreIndicesMap","_getSelectedIndexByHash","indices","_shiftSelectedKeyIndices","currentKeyIndex","currentKey","currentKeyHash","currentKeyIndices","keyIndices","_updateAddedItemKeys","_updateRemovedItemKeys","oldSelectedKeys","oldSelectedItems","_isItemSelectionInProgress","_this$_lastRequestDat3","_message","_uiScroll_viewNative","_uiScroll_viewNative2","_uiScroll_view","_load_indicator","_themes","_load_panel","refreshStrategies","pullDown","swipeDown","simulated","isServerSide","scrollViewServerConfig","finishLoading","release","refresh","ScrollView","pullingDownText","pulledDownText","refreshingText","reachBottomText","onPullDown","onReachBottom","refreshStrategy","isMaterial","_loadingIndicatorEnabled","_initScrollableMarkup","_initContent","_initTopPocket","_initBottomPocket","_initLoadPanel","SCROLLVIEW_CLASS","wrapInner","$topPocket","_$topPocket","$pullDown","_$pullDown","prepend","$bottomPocket","_$bottomPocket","$reachBottom","_$reachBottom","$loadContainer","SCROLLVIEW_REACHBOTTOM_CLASS","$loadIndicator","$text","_$reachBottomText","_updateReachBottomText","$loadPanelElement","loadPanelOptions","shading","delay","message","_loadPanel","_createStrategy","strategyName","strategyClass","_strategy","pullDownCallbacks","_pullDownHandler","releaseCallbacks","_releaseHandler","reachBottomCallbacks","_reachBottomHandler","_createActions","_pullDownAction","_reachBottomAction","_tryRefreshPocketState","_pullDownEnable","hasActionSubscription","_reachBottomEnable","enabled","_pullDownEnabled","toggle","pullDownEnable","_reachBottomEnabled","reachBottomEnable","_loadingIndicator","_pullDownLoading","startLoading","_reachBottomLoading","isEmpty","children","eq","preventReachBottom","toggleLoading","showOrHide","isFull","pendingRelease","show","_lock","hide","_unlock","_callbacks","_uiScrollable","scrollView","_$refreshingText","_$scrollViewContent","_initCallbacks","_renderPullDown","_releaseState","$image","_$pullDownText","_$pullingDownText","_$pulledDownText","empty","_state","_refreshPullDownText","pullDownTextItems","visibleState","_","action","_setTopPocketOffset","_topPocketSize","_bottomPocketSize","_setPullDownOffset","_pullDownRefreshTimeout","_pullDownRefreshing","scrollDelta","_isPullDown","_pullDownReady","_isReachBottom","_reachBottom","_stateReleased","fire","_releaseTimeout","_$icon","_releasePullDown","opacity","_startClientY","_deltaY","_movePullDown","pullDownHeight","_getPullDownHeight","_getPullDownStartPosition","angle","transform","outerHeight","_pullDownRefreshHandler","_refreshPullDown","math","ScrollViewScroller","considerPockets","_bottomBound","_reachBottomReady","_releaseTask","abort","executeAsync","_release","_reachBottomEnablingHandler","_pullDownEnablingHandler","_considerTopPocketChange","_pendingReleaseHandler","$pullDownText","$pullingDownText","$pulledDownText","$refreshingText","_track_bar","Slider","_activeStateUnit","isRTL","roundedValue","isLeftDirection","_valueStep","step","currentPosition","remainder","getRemainderByDivision","_getValueExponentLength","_roundToExponentLength","moveHandleRight","moveHandleLeft","leftArrow","_processKeyboardEvent","rightArrow","pageUp","pageDown","home","_saveValueChangeEvent","showRange","showMode","label","keyStep","useInkRipple","validationMessageOffset","_toggleValidationMessage","themeName","current","_renderSubmitElement","_renderInkRipple","_renderLabels","_renderStartHandler","_renderAriaMinAndMax","_attachFocusEvents","namespace","NAME","focusInEvent","focusOutEvent","$focusTarget","_focusTarget","_detachFocusEvents","_repaintHandle","_$submitElement","attr","_getSubmitElement","_inkRipple","waveSizeCoefficient","isCentered","wavesNumber","useHoldAnimation","_renderInkWave","dxEvent","doRender","waveIndex","wave","showWave","hideWave","_renderWrapper","immediate","_itemWidthFunc","_renderContainer","_$bar","_renderRange","_$range","_renderHandle","_renderRangeVisibility","_$handle","_renderHandleImpl","$handle","SLIDER_TOOLTIP_POSITION_CLASS_PREFIX","valuemin","valuemax","_hoverStartHandler","getInstance","currentTarget","_toggleActiveState","_toggleFocusClass","isFocused","_disposed","SLIDER_LABEL_POSITION_CLASS_PREFIX","labelFormat","_$minLabel","_$maxLabel","pointerDownEventName","clickEventName","startAction","_createAction","_activeHandle","_itemWidthRatio","rtlEnabled","isTouchEvent","_feedbackDeferred","lock","_startOffset","_currentRatio","startOffset","_swipePixelRatio","endOffset","_needPreventAnimation","offsetDirection","_changeValueOnSwipe","_updateHandlePosition","newRatio","_this$option","getExponentLength","valueExponentLength","roundFloatPart","ratio","_setValueOnSwipe","stepCount","val","applyServerDecimalSeparator","_setRangeStyles","_callHandlerMethod","_refresh","_toggleRTLDirection","_uiCollection_widgetEditStrategy","_slide_out_view","_uiCollection_widget","_list","_child_default_template","_grouped_data_converter_mixin","SlideOut","menuItemTemplate","menuGrouped","menuGroupTemplate","onMenuItemRendered","onMenuGroupRendered","selectionMode","selectedIndex","selectionRequired","_itemClass","_itemDataKey","_itemContainer","_slideOutView","_selectedItemContentRendered","_initSlideOutView","menuItem","ChildDefaultTemplate","menuGroup","_initEditStrategy","strategy","_getPlainItems","_editStrategy","integrationOptions","onOptionChanged","_slideOutViewOptionChanged","_renderList","_renderContentTemplate","$list","_renderItemClickAction","itemTemplateProperty","indicateLoading","onItemClick","_listItemClickHandler","_dataSource","itemTemplate","_getTemplateByOption","grouped","groupTemplate","onItemRendered","onGroupRendered","onContentReady","_updateSlideOutView","_itemClickAction","itemElement","_singleContent","itemsLength","_itemClickHandler","_renderContentImpl","selectedItem","getItemByIndex","_renderItems","_renderItem","_selectedItemElement","_itemElements","_updateSelection","_prepareContent","_renderContent","_getListWidth","_changeMenuOption","_cleanItemContainer","beginUpdate","endUpdate","include","_fx","completeAction","to","duration","_dom_component","_selectors","_uiEventsEmitterGesture","_uiScrollable2","_uiScrollable3","SCROLLABLE","VERTICAL","Scrollable","onScroll","onBounce","onStop","useSimulatedScrollbar","useKeyboard","updateManually","_setUseSimulatedScrollbar","initialOption","_getWindowDevicePixelRatio","_updateRtlPosition","_savedScrollOffset","hasDocumentProperty","focusable","contents","_renderStrategy","_attachEventHandlers","_renderDisabledState","_rtlConfig","scrollRight","clientWidth","_container","windowPixelRatio","_isHorizontalAndRtlEnabled","skipUpdating","_this$_container$get","scrollWidth","scrollHeight","clientHeight","initEventData","_validate","_this$_container$get2","_updateIfNeed","_resetInactiveDirection","inactiveProp","_getInactiveProp","_normalizeLocation","ensureDefined","_updateAllowedDirection","_allowedDirectionValue","scrollToElement","elementInsideContent","elementIsInsideContent","parents","scrollPosition","getScrollElementPosition","scrollToElementTopLeft","leftPosition","_elementPositionRelativeToContent","isVertical","pushBackOffset","elementPosition","elementSize","scrollLocation","startDistance","endDistance","_hasScrollContent","offsetParent","_useTemplates","hiddenFocus","isHiddenFocusing","registerKeyboardAction","viewName","instance","executeKeyDown","$mainElement","keyDownHandler","fireKeyDownEvent","keyName","ariaLabel","targetIndex","getActiveAccessibleElements","focusedElementInfo","viewInstance","saveFocusedElementInfo","selectView","processKeyDown","mouseDownHandler","isMouseDown","focusinHandler","restoreFocus","$targetElement","setTabIndex","subscribeVisibilityChange","onDocumentVisibilityChange","unsubscribeVisibilityChange","GRID_CELL_SELECTOR","TREELIST_CELL_SELECTOR","viewItemSelectorMap","groupPanel","columnHeaders","filterRow","rowsView","footer","filterPanel","pager","viewElement","$viewElement","findFocusedViewElement","viewSelectors","$focusViewElement","first","visibilityState","viewNames","viewItemIndex","_viewName","_errors","SelectBox","clearSelectBox","_isEditable","_valueSubstituted","_preventFiltering","reset","_savedTextRemoveEvent","_preventSubstitution","searchIfNeeded","_searchHandler","tab","_resetCaretPosition","_cancelSearchIfNeed","upArrow","_setNextValue","downArrow","escape","_cancelEditing","isOpened","inputText","trim","isCustomText","close","_toggleOpenState","_valueChangeEventHandler","space","isSearchEnabled","acceptCustomValue","backspace","del","fieldTemplate","onCustomItemCreating","customItem","showSelectionControls","openOnFieldClick","showDropDownButton","displayCustomValue","useHiddenSubmitElement","_initCustomItemCreatingAction","_inputWrapper","_createPopup","_popup","$overlayContent","_popupWrapperClass","_focusListElement","_updateField","_renderOpenedState","_scrollToSelectedItem","_focusSelectedElement","_searchValue","$listItems","inArray","focusedElement","_isCustomItemSelected","_renderFocusedElement","not","_preventInputValueRender","scrollToItem","_listContentReadyHandler","paginate","_needPopupRepaint","_renderInputValue","_setSubmitValue","_renderInputValueAsync","_renderInputValueImpl","_refreshSelected","_renderField","_setNextItem","_calcNextItem","_valueGetter","_setValue","isLoaded","_getSelectedIndex","hasPages","pageSize","isLastPage","isLastItem","_items","isLoading","_loadNextPage","_setSelectedItem","isUnknownItem","_isCustomValueAllowed","_setListOption","_displayValue","_listConfig","pageLoadMode","_getSelectionChangeHandler","onFocusedItemChanged","_listFocusedItemChangeHandler","selectionByClick","list","_getItemData","_displayGetter","_renderDisplayText","_selectionChangeHandler","addedItem","_getActualSearchValue","searchValue","isVisible","_shouldClearFilter","_restoreInputText","_wasSearch","showDataImmediately","_isMinSearchLengthExceeded","_searchTimer","_filterDataSource","_isValueEqualInputText","initialSelectedItem","String","_popupHidingHandler","_popupHiddenHandler","_shouldCancelSearch","_searchCanceled","saveEditingValue","_loadItemDeferred","_clearFilter","_clearTextValue","newSelectedItem","_focusOutHandler","_preventNestedFocusEvent","_isOverlayNestedTarget","_clearSearchTimer","isOverlayTarget","_this$_popup","isPopupVisible","_hideAnimationProcessing","_shouldCancelSearchValue","_shouldOpenPopup","_needPassDataSourceToList","_isFocused","activeElement","_renderValueChangeEvent","_fieldRenderData","$listFocused","_isSelectedValue","_isValueEquals","_shouldCloseOnItemClick","_getCurrentValue","_completeSelection","_loadItem","cache","shouldSkipCallback","_loadInputValue","selectedItemText","_isValueChanging","_customItemAddedHandler","_customItemCreatingAction","_createCustomItem","actionResult","isPromise","fromPromise","_setCustomItem","_clearValueHandler","_wasSearchValue","_dataSourceFiltered","_renderInputSubstitution","input","isAllSelected","selectionStart","selectionEnd","inputHasSelection","_shouldSubstitutionBeRendered","$input","valueLength","inputElement","displayValue","_caret","DEFAULT_DATE_INTERVAL","DEFAULT_DATETIME_INTERVAL","isDateType","getGroupInterval","column","dateIntervals","groupInterval","headerFilter","interval","getFilterSelector","dataField","displayField","calculateDisplayValue","getFilterExpressionByRange","filterValue","endFilterValue","startFilterExpression","endFilterExpression","date","getHours","getMinutes","getSeconds","getMilliseconds","Date","getTime","setDate","getDate","getFilterExpressionForDate","selectedFilterOperation","dateStart","dateEnd","dateInterval","dateValue","values","isDate","getFullYear","getMonth","split","Number","getFilterExpressionForNumber","defaultCalculateFilterExpression","isSearchByDisplayValue"],"mappings":"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","file":"static/js/main~ccc41438.14f97a9d.chunk.js","sourcesContent":["/**\r\n * DevExtreme (ui/selection/selection.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\nvar _selectionStrategy = _interopRequireDefault(require(\"./selection.strategy.deferred\"));\r\nvar _selectionStrategy2 = _interopRequireDefault(require(\"./selection.strategy.standard\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\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 _default = _class.default.inherit({\r\n ctor: function(options) {\r\n this.options = (0, _extend.extend)(this._getDefaultOptions(), options, {\r\n selectedItemKeys: options.selectedKeys || []\r\n });\r\n this._selectionStrategy = this.options.deferred ? new _selectionStrategy.default(this.options) : new _selectionStrategy2.default(this.options);\r\n this._focusedItemIndex = -1;\r\n if (!this.options.equalByReference) {\r\n this._selectionStrategy.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n }\r\n },\r\n _getDefaultOptions: function() {\r\n return {\r\n allowNullValue: false,\r\n deferred: false,\r\n equalByReference: false,\r\n mode: \"multiple\",\r\n selectedItems: [],\r\n selectionFilter: [],\r\n maxFilterLengthInRequest: 0,\r\n onSelectionChanged: _common.noop,\r\n key: _common.noop,\r\n keyOf: function(item) {\r\n return item\r\n },\r\n load: function() {\r\n return (new _deferred.Deferred).resolve([])\r\n },\r\n totalCount: function() {\r\n return -1\r\n },\r\n isSelectableItem: function() {\r\n return true\r\n },\r\n isItemSelected: function() {\r\n return false\r\n },\r\n getItemData: function(item) {\r\n return item\r\n },\r\n dataFields: _common.noop,\r\n filter: _common.noop\r\n }\r\n },\r\n validate: function() {\r\n this._selectionStrategy.validate()\r\n },\r\n getSelectedItemKeys: function() {\r\n return this._selectionStrategy.getSelectedItemKeys()\r\n },\r\n getSelectedItems: function() {\r\n return this._selectionStrategy.getSelectedItems()\r\n },\r\n selectionFilter: function(value) {\r\n if (void 0 === value) {\r\n return this.options.selectionFilter\r\n }\r\n var filterIsChanged = this.options.selectionFilter !== value && JSON.stringify(this.options.selectionFilter) !== JSON.stringify(value);\r\n this.options.selectionFilter = value;\r\n filterIsChanged && this.onSelectionChanged()\r\n },\r\n setSelection: function(keys, updatedKeys) {\r\n return this.selectedItemKeys(keys, false, false, false, updatedKeys)\r\n },\r\n select: function(keys) {\r\n return this.selectedItemKeys(keys, true)\r\n },\r\n deselect: function(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n },\r\n selectedItemKeys: function(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var _keys;\r\n var that = this;\r\n keys = null !== (_keys = keys) && void 0 !== _keys ? _keys : [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n that.validate();\r\n return this._selectionStrategy.selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys)\r\n },\r\n clearSelection: function() {\r\n return this.selectedItemKeys([])\r\n },\r\n _addSelectedItem: function(itemData, key) {\r\n this._selectionStrategy.addSelectedItem(key, itemData)\r\n },\r\n _removeSelectedItem: function(key) {\r\n this._selectionStrategy.removeSelectedItem(key)\r\n },\r\n _setSelectedItems: function(keys, items) {\r\n this._selectionStrategy.setSelectedItems(keys, items)\r\n },\r\n onSelectionChanged: function() {\r\n this._selectionStrategy.onSelectionChanged()\r\n },\r\n changeItemSelection: function(itemIndex, keys) {\r\n var isSelectedItemsChanged;\r\n var items = this.options.plainItems();\r\n var item = items[itemIndex];\r\n if (!this.isSelectable() || !this.isDataItem(item)) {\r\n return false\r\n }\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n keys = keys || {};\r\n if (keys.shift && \"multiple\" === this.options.mode && this._focusedItemIndex >= 0) {\r\n isSelectedItemsChanged = this.changeItemSelectionWhenShiftKeyPressed(itemIndex, items)\r\n } else {\r\n if (keys.control) {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n var isSelected = this._selectionStrategy.isItemDataSelected(itemData);\r\n if (\"single\" === this.options.mode) {\r\n this.clearSelectedItems()\r\n }\r\n if (isSelected) {\r\n this._removeSelectedItem(itemKey)\r\n } else {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n isSelectedItemsChanged = true\r\n } else {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n var isKeysEqual = this._selectionStrategy.equalKeys(this.options.selectedItemKeys[0], itemKey);\r\n if (1 !== this.options.selectedItemKeys.length || !isKeysEqual) {\r\n this._setSelectedItems([itemKey], [itemData]);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if (isSelectedItemsChanged) {\r\n this._focusedItemIndex = itemIndex;\r\n this.onSelectionChanged();\r\n return true\r\n }\r\n },\r\n isDataItem: function(item) {\r\n return this.options.isSelectableItem(item)\r\n },\r\n isSelectable: function() {\r\n return \"single\" === this.options.mode || \"multiple\" === this.options.mode\r\n },\r\n isItemDataSelected: function(data) {\r\n return this._selectionStrategy.isItemDataSelected(data, {\r\n checkPending: true\r\n })\r\n },\r\n isItemSelected: function(arg, options) {\r\n return this._selectionStrategy.isItemKeySelected(arg, options)\r\n },\r\n _resetItemSelectionWhenShiftKeyPressed: function() {\r\n delete this._shiftFocusedItemIndex\r\n },\r\n _resetFocusedItemIndex: function() {\r\n this._focusedItemIndex = -1\r\n },\r\n changeItemSelectionWhenShiftKeyPressed: function(itemIndex, items) {\r\n var isSelectedItemsChanged = false;\r\n var itemIndexStep;\r\n var index;\r\n var keyOf = this.options.keyOf;\r\n var focusedItem = items[this._focusedItemIndex];\r\n var focusedData = this.options.getItemData(focusedItem);\r\n var focusedKey = keyOf(focusedData);\r\n var isFocusedItemSelected = focusedItem && this.isItemDataSelected(focusedData);\r\n if (!(0, _type.isDefined)(this._shiftFocusedItemIndex)) {\r\n this._shiftFocusedItemIndex = this._focusedItemIndex\r\n }\r\n var data;\r\n var itemKey;\r\n if (this._shiftFocusedItemIndex !== this._focusedItemIndex) {\r\n itemIndexStep = this._focusedItemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n for (index = this._focusedItemIndex; index !== this._shiftFocusedItemIndex; index += itemIndexStep) {\r\n if (this.isDataItem(items[index])) {\r\n itemKey = keyOf(this.options.getItemData(items[index]));\r\n this._removeSelectedItem(itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if (itemIndex !== this._shiftFocusedItemIndex) {\r\n itemIndexStep = itemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n for (index = itemIndex; index !== this._shiftFocusedItemIndex; index += itemIndexStep) {\r\n if (this.isDataItem(items[index])) {\r\n data = this.options.getItemData(items[index]);\r\n itemKey = keyOf(data);\r\n this._addSelectedItem(data, itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if (this.isDataItem(focusedItem) && !isFocusedItemSelected) {\r\n this._addSelectedItem(focusedData, focusedKey);\r\n isSelectedItemsChanged = true\r\n }\r\n return isSelectedItemsChanged\r\n },\r\n clearSelectedItems: function() {\r\n this._setSelectedItems([], [])\r\n },\r\n selectAll: function(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(false)\r\n } else {\r\n return this.selectedItemKeys([], true, false, true)\r\n }\r\n },\r\n deselectAll: function(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(true)\r\n } else {\r\n return this.selectedItemKeys([], true, true, true)\r\n }\r\n },\r\n _onePageSelectAll: function(isDeselect) {\r\n var items = this._selectionStrategy.getSelectableItems(this.options.plainItems());\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (this.isDataItem(item)) {\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n var isSelected = this.isItemSelected(itemKey);\r\n if (!isSelected && !isDeselect) {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n if (isSelected && isDeselect) {\r\n this._removeSelectedItem(itemKey)\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n getSelectAllState: function(visibleOnly) {\r\n return this._selectionStrategy.getSelectAllState(visibleOnly)\r\n }\r\n});\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scroll_view/ui.scrollable.native.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _index = require(\"../../events/utils/index\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _ui = _interopRequireDefault(require(\"./ui.scrollbar\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SCROLLABLE_NATIVE = \"dxNativeScrollable\";\r\nvar SCROLLABLE_NATIVE_CLASS = \"dx-scrollable-native\";\r\nvar SCROLLABLE_SCROLLBAR_SIMULATED = \"dx-scrollable-scrollbar-simulated\";\r\nvar SCROLLABLE_SCROLLBARS_HIDDEN = \"dx-scrollable-scrollbars-hidden\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar HIDE_SCROLLBAR_TIMEOUT = 500;\r\nvar NativeStrategy = _class.default.inherit({\r\n ctor: function(scrollable) {\r\n this._init(scrollable)\r\n },\r\n _init: function(scrollable) {\r\n this._component = scrollable;\r\n this._$element = scrollable.$element();\r\n this._$container = scrollable._$container;\r\n this._$content = scrollable._$content;\r\n this._direction = scrollable.option(\"direction\");\r\n this._useSimulatedScrollbar = scrollable.option(\"useSimulatedScrollbar\");\r\n this._showScrollbar = scrollable.option(\"showScrollbar\");\r\n this.option = scrollable.option.bind(scrollable);\r\n this._createActionByOption = scrollable._createActionByOption.bind(scrollable);\r\n this._isLocked = scrollable._isLocked.bind(scrollable);\r\n this._isDirection = scrollable._isDirection.bind(scrollable);\r\n this._allowedDirection = scrollable._allowedDirection.bind(scrollable);\r\n this._getScrollOffset = scrollable._getScrollOffset.bind(scrollable);\r\n this._getMaxOffset = scrollable._getMaxOffset.bind(scrollable)\r\n },\r\n render: function() {\r\n this._renderPushBackOffset();\r\n var device = _devices.default.real();\r\n var deviceType = device.platform;\r\n this._$element.addClass(SCROLLABLE_NATIVE_CLASS).addClass(SCROLLABLE_NATIVE_CLASS + \"-\" + deviceType).toggleClass(SCROLLABLE_SCROLLBARS_HIDDEN, !this._showScrollbar);\r\n if (this._showScrollbar && this._useSimulatedScrollbar) {\r\n this._renderScrollbars()\r\n }\r\n },\r\n updateBounds: _common.noop,\r\n _renderPushBackOffset: function() {\r\n var pushBackValue = this.option(\"pushBackValue\");\r\n if (!pushBackValue && !this._component._lastPushBackValue) {\r\n return\r\n }\r\n this._$content.css({\r\n paddingTop: pushBackValue,\r\n paddingBottom: pushBackValue\r\n });\r\n this._component._lastPushBackValue = pushBackValue\r\n },\r\n _renderScrollbars: function() {\r\n this._scrollbars = {};\r\n this._hideScrollbarTimeout = 0;\r\n this._$element.addClass(SCROLLABLE_SCROLLBAR_SIMULATED);\r\n this._renderScrollbar(VERTICAL);\r\n this._renderScrollbar(HORIZONTAL)\r\n },\r\n _renderScrollbar: function(direction) {\r\n if (!this._isDirection(direction)) {\r\n return\r\n }\r\n this._scrollbars[direction] = new _ui.default((0, _renderer.default)(\"
\").appendTo(this._$element), {\r\n direction: direction,\r\n expandable: this._component.option(\"scrollByThumb\")\r\n })\r\n },\r\n handleInit: _common.noop,\r\n handleStart: function() {\r\n this._disablePushBack = true\r\n },\r\n handleMove: function(e) {\r\n if (this._isLocked()) {\r\n e.cancel = true;\r\n return\r\n }\r\n if (this._allowedDirection()) {\r\n e.originalEvent.isScrollingEvent = true\r\n }\r\n },\r\n handleEnd: function() {\r\n this._disablePushBack = false\r\n },\r\n handleCancel: _common.noop,\r\n handleStop: _common.noop,\r\n _eachScrollbar: function(callback) {\r\n callback = callback.bind(this);\r\n (0, _iterator.each)(this._scrollbars || {}, function(direction, scrollbar) {\r\n callback(scrollbar, direction)\r\n })\r\n },\r\n createActions: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._updateAction = this._createActionByOption(\"onUpdated\")\r\n },\r\n _createActionArgs: function() {\r\n var _this$location = this.location(),\r\n left = _this$location.left,\r\n top = _this$location.top;\r\n return {\r\n event: this._eventForUserAction,\r\n scrollOffset: this._getScrollOffset(),\r\n reachedLeft: this._isReachedLeft(left),\r\n reachedRight: this._isReachedRight(left),\r\n reachedTop: this._isDirection(VERTICAL) ? top >= 0 : void 0,\r\n reachedBottom: this._isDirection(VERTICAL) ? Math.abs(top) >= this._getMaxOffset().top - 2 * this.option(\"pushBackValue\") : void 0\r\n }\r\n },\r\n _isReachedLeft: function() {\r\n return this._isDirection(HORIZONTAL) ? this.location().left >= 0 : void 0\r\n },\r\n _isReachedRight: function() {\r\n return this._isDirection(HORIZONTAL) ? Math.abs(this.location().left) >= this._getMaxOffset().left : void 0\r\n },\r\n handleScroll: function(e) {\r\n this._component._updateRtlConfig();\r\n if (!this._isScrollLocationChanged()) {\r\n e.stopImmediatePropagation();\r\n return\r\n }\r\n this._eventForUserAction = e;\r\n this._moveScrollbars();\r\n this._scrollAction(this._createActionArgs());\r\n this._lastLocation = this.location();\r\n this._pushBackFromBoundary()\r\n },\r\n _pushBackFromBoundary: function() {\r\n var pushBackValue = this.option(\"pushBackValue\");\r\n if (!pushBackValue || this._disablePushBack) {\r\n return\r\n }\r\n var scrollOffset = this._containerSize.height - this._contentSize.height;\r\n var scrollTopPos = this._$container.scrollTop();\r\n var scrollBottomPos = scrollOffset + scrollTopPos - 2 * pushBackValue;\r\n if (!scrollTopPos) {\r\n this._$container.scrollTop(pushBackValue)\r\n } else {\r\n if (!scrollBottomPos) {\r\n this._$container.scrollTop(pushBackValue - scrollOffset)\r\n }\r\n }\r\n },\r\n _isScrollLocationChanged: function() {\r\n var currentLocation = this.location();\r\n var lastLocation = this._lastLocation || {};\r\n var isTopChanged = lastLocation.top !== currentLocation.top;\r\n var isLeftChanged = lastLocation.left !== currentLocation.left;\r\n return isTopChanged || isLeftChanged\r\n },\r\n _moveScrollbars: function() {\r\n this._eachScrollbar(function(scrollbar) {\r\n scrollbar.moveTo(this.location());\r\n scrollbar.option(\"visible\", true)\r\n });\r\n this._hideScrollbars()\r\n },\r\n _hideScrollbars: function() {\r\n clearTimeout(this._hideScrollbarTimeout);\r\n this._hideScrollbarTimeout = setTimeout(function() {\r\n this._eachScrollbar(function(scrollbar) {\r\n scrollbar.option(\"visible\", false)\r\n })\r\n }.bind(this), HIDE_SCROLLBAR_TIMEOUT)\r\n },\r\n location: function() {\r\n return {\r\n left: -this._$container.scrollLeft(),\r\n top: this.option(\"pushBackValue\") - this._$container.scrollTop()\r\n }\r\n },\r\n disabledChanged: _common.noop,\r\n update: function() {\r\n this._update();\r\n this._updateAction(this._createActionArgs())\r\n },\r\n _update: function() {\r\n this._updateDimensions();\r\n this._updateScrollbars()\r\n },\r\n _updateDimensions: function() {\r\n this._containerSize = {\r\n height: this._$container.height(),\r\n width: this._$container.width()\r\n };\r\n this._componentContentSize = {\r\n height: this._component.$content().height(),\r\n width: this._component.$content().width()\r\n };\r\n this._contentSize = {\r\n height: this._$content.height(),\r\n width: this._$content.width()\r\n };\r\n this._pushBackFromBoundary()\r\n },\r\n _updateScrollbars: function() {\r\n this._eachScrollbar(function(scrollbar, direction) {\r\n var dimension = direction === VERTICAL ? \"height\" : \"width\";\r\n scrollbar.option({\r\n containerSize: this._containerSize[dimension],\r\n contentSize: this._componentContentSize[dimension]\r\n });\r\n scrollbar.update()\r\n })\r\n },\r\n _allowedDirections: function() {\r\n return {\r\n vertical: this._isDirection(VERTICAL) && this._contentSize.height > this._containerSize.height,\r\n horizontal: this._isDirection(HORIZONTAL) && this._contentSize.width > this._containerSize.width\r\n }\r\n },\r\n dispose: function() {\r\n var className = this._$element.get(0).className;\r\n var scrollableNativeRegexp = new RegExp(SCROLLABLE_NATIVE_CLASS + \"\\\\S*\", \"g\");\r\n if (scrollableNativeRegexp.test(className)) {\r\n this._$element.removeClass(className.match(scrollableNativeRegexp).join(\" \"))\r\n }\r\n _events_engine.default.off(this._$element, \".\" + SCROLLABLE_NATIVE);\r\n _events_engine.default.off(this._$container, \".\" + SCROLLABLE_NATIVE);\r\n this._removeScrollbars();\r\n clearTimeout(this._hideScrollbarTimeout)\r\n },\r\n _removeScrollbars: function() {\r\n this._eachScrollbar(function(scrollbar) {\r\n scrollbar.$element().remove()\r\n })\r\n },\r\n scrollBy: function(distance) {\r\n var location = this.location();\r\n this._$container.scrollTop(Math.round(-location.top - distance.top + this.option(\"pushBackValue\")));\r\n this._$container.scrollLeft(Math.round(-location.left - distance.left))\r\n },\r\n validate: function(e) {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if ((0, _index.isDxMouseWheelEvent)(e) && this._isScrolledInMaxDirection(e)) {\r\n return false\r\n }\r\n return !!this._allowedDirection()\r\n },\r\n _isScrolledInMaxDirection: function(e) {\r\n var container = this._$container.get(0);\r\n var result;\r\n if (e.delta > 0) {\r\n result = e.shiftKey ? !container.scrollLeft : !container.scrollTop\r\n } else {\r\n if (e.shiftKey) {\r\n result = container.scrollLeft >= this._getMaxOffset().left\r\n } else {\r\n result = container.scrollTop >= this._getMaxOffset().top\r\n }\r\n }\r\n return result\r\n },\r\n getDirection: function() {\r\n return this._allowedDirection()\r\n },\r\n verticalOffset: function() {\r\n return this.option(\"pushBackValue\")\r\n }\r\n});\r\nvar _default = NativeStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scroll_view/ui.events.emitter.gesture.scroll.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _emitter = _interopRequireDefault(require(\"../../events/gesture/emitter.gesture\"));\r\nvar _emitter_registrator = _interopRequireDefault(require(\"../../events/core/emitter_registrator\"));\r\nvar _frame = require(\"../../animation/frame\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _version = require(\"../../core/utils/version\");\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 realDevice = _devices.default.real();\r\nvar SCROLL_INIT_EVENT = \"dxscrollinit\";\r\nvar SCROLL_START_EVENT = \"dxscrollstart\";\r\nvar SCROLL_MOVE_EVENT = \"dxscroll\";\r\nvar SCROLL_END_EVENT = \"dxscrollend\";\r\nvar SCROLL_STOP_EVENT = \"dxscrollstop\";\r\nvar SCROLL_CANCEL_EVENT = \"dxscrollcancel\";\r\nvar Locker = _class.default.inherit(function() {\r\n var NAMESPACED_SCROLL_EVENT = (0, _index.addNamespace)(\"scroll\", \"dxScrollEmitter\");\r\n return {\r\n ctor: function(element) {\r\n this._element = element;\r\n this._locked = false;\r\n var that = this;\r\n this._proxiedScroll = function(e) {\r\n that._scroll(e)\r\n };\r\n _events_engine.default.on(this._element, NAMESPACED_SCROLL_EVENT, this._proxiedScroll)\r\n },\r\n _scroll: abstract,\r\n check: function(e, callback) {\r\n if (this._locked) {\r\n callback()\r\n }\r\n },\r\n dispose: function() {\r\n _events_engine.default.off(this._element, NAMESPACED_SCROLL_EVENT, this._proxiedScroll)\r\n }\r\n }\r\n}());\r\nvar TimeoutLocker = Locker.inherit(function() {\r\n return {\r\n ctor: function(element, timeout) {\r\n this.callBase(element);\r\n this._timeout = timeout\r\n },\r\n _scroll: function() {\r\n this._prepare();\r\n this._forget()\r\n },\r\n _prepare: function() {\r\n if (this._timer) {\r\n this._clearTimer()\r\n }\r\n this._locked = true\r\n },\r\n _clearTimer: function() {\r\n clearTimeout(this._timer);\r\n this._locked = false;\r\n this._timer = null\r\n },\r\n _forget: function() {\r\n var that = this;\r\n this._timer = setTimeout(function() {\r\n that._clearTimer()\r\n }, this._timeout)\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._clearTimer()\r\n }\r\n }\r\n}());\r\nvar WheelLocker = TimeoutLocker.inherit(function() {\r\n var WHEEL_UNLOCK_TIMEOUT = 400;\r\n return {\r\n ctor: function(element) {\r\n this.callBase(element, WHEEL_UNLOCK_TIMEOUT);\r\n this._lastWheelDirection = null\r\n },\r\n check: function(e, callback) {\r\n this._checkDirectionChanged(e);\r\n this.callBase(e, callback)\r\n },\r\n _checkDirectionChanged: function(e) {\r\n if (!(0, _index.isDxMouseWheelEvent)(e)) {\r\n this._lastWheelDirection = null;\r\n return\r\n }\r\n var direction = e.shiftKey || false;\r\n var directionChange = null !== this._lastWheelDirection && direction !== this._lastWheelDirection;\r\n this._lastWheelDirection = direction;\r\n this._locked = this._locked && !directionChange\r\n }\r\n }\r\n}());\r\nvar PointerLocker = TimeoutLocker.inherit(function() {\r\n var POINTER_UNLOCK_TIMEOUT = 400;\r\n return {\r\n ctor: function(element) {\r\n this.callBase(element, POINTER_UNLOCK_TIMEOUT)\r\n }\r\n }\r\n}());\r\n! function() {\r\n var ios8_greater = realDevice.ios && (0, _version.compare)(realDevice.version, [8]) >= 0;\r\n var android5_greater = realDevice.android && (0, _version.compare)(realDevice.version, [5]) >= 0;\r\n if (!(ios8_greater || android5_greater)) {\r\n return\r\n }\r\n PointerLocker = Locker.inherit(function() {\r\n return {\r\n _scroll: function() {\r\n this._locked = true;\r\n var that = this;\r\n (0, _frame.cancelAnimationFrame)(this._scrollFrame);\r\n this._scrollFrame = (0, _frame.requestAnimationFrame)(function() {\r\n that._locked = false\r\n })\r\n },\r\n check: function(e, callback) {\r\n (0, _frame.cancelAnimationFrame)(this._scrollFrame);\r\n (0, _frame.cancelAnimationFrame)(this._checkFrame);\r\n var that = this;\r\n var callBase = this.callBase;\r\n this._checkFrame = (0, _frame.requestAnimationFrame)(function() {\r\n callBase.call(that, e, callback);\r\n that._locked = false\r\n })\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n (0, _frame.cancelAnimationFrame)(this._scrollFrame);\r\n (0, _frame.cancelAnimationFrame)(this._checkFrame)\r\n }\r\n }\r\n }())\r\n}();\r\nvar ScrollEmitter = _emitter.default.inherit(function() {\r\n var INERTIA_TIMEOUT = 100;\r\n var VELOCITY_CALC_TIMEOUT = 200;\r\n var FRAME_DURATION = Math.round(1e3 / 60);\r\n return {\r\n ctor: function(element) {\r\n this.callBase.apply(this, arguments);\r\n this.direction = \"both\";\r\n this._pointerLocker = new PointerLocker(element);\r\n this._wheelLocker = new WheelLocker(element)\r\n },\r\n validate: function() {\r\n return true\r\n },\r\n configure: function(data) {\r\n if (data.scrollTarget) {\r\n this._pointerLocker.dispose();\r\n this._wheelLocker.dispose();\r\n this._pointerLocker = new PointerLocker(data.scrollTarget);\r\n this._wheelLocker = new WheelLocker(data.scrollTarget)\r\n }\r\n this.callBase(data)\r\n },\r\n _init: function(e) {\r\n this._wheelLocker.check(e, function() {\r\n if ((0, _index.isDxMouseWheelEvent)(e)) {\r\n this._accept(e)\r\n }\r\n }.bind(this));\r\n this._pointerLocker.check(e, function() {\r\n var skipCheck = this.isNative && (0, _index.isMouseEvent)(e);\r\n if (!(0, _index.isDxMouseWheelEvent)(e) && !skipCheck) {\r\n this._accept(e)\r\n }\r\n }.bind(this));\r\n this._fireEvent(SCROLL_INIT_EVENT, e);\r\n this._prevEventData = (0, _index.eventData)(e)\r\n },\r\n move: function(e) {\r\n this.callBase.apply(this, arguments);\r\n e.isScrollingEvent = this.isNative || e.isScrollingEvent\r\n },\r\n _start: function(e) {\r\n this._savedEventData = (0, _index.eventData)(e);\r\n this._fireEvent(SCROLL_START_EVENT, e);\r\n this._prevEventData = (0, _index.eventData)(e)\r\n },\r\n _move: function(e) {\r\n var currentEventData = (0, _index.eventData)(e);\r\n this._fireEvent(SCROLL_MOVE_EVENT, e, {\r\n delta: (0, _index.eventDelta)(this._prevEventData, currentEventData)\r\n });\r\n var delta = (0, _index.eventDelta)(this._savedEventData, currentEventData);\r\n if (delta.time > VELOCITY_CALC_TIMEOUT) {\r\n this._savedEventData = this._prevEventData\r\n }\r\n this._prevEventData = (0, _index.eventData)(e)\r\n },\r\n _end: function(e) {\r\n var endEventDelta = (0, _index.eventDelta)(this._prevEventData, (0, _index.eventData)(e));\r\n var velocity = {\r\n x: 0,\r\n y: 0\r\n };\r\n if (!(0, _index.isDxMouseWheelEvent)(e) && endEventDelta.time < INERTIA_TIMEOUT) {\r\n var delta = (0, _index.eventDelta)(this._savedEventData, this._prevEventData);\r\n var velocityMultiplier = FRAME_DURATION / delta.time;\r\n velocity = {\r\n x: delta.x * velocityMultiplier,\r\n y: delta.y * velocityMultiplier\r\n }\r\n }\r\n this._fireEvent(SCROLL_END_EVENT, e, {\r\n velocity: velocity\r\n })\r\n },\r\n _stop: function(e) {\r\n this._fireEvent(SCROLL_STOP_EVENT, e)\r\n },\r\n cancel: function(e) {\r\n this.callBase.apply(this, arguments);\r\n this._fireEvent(SCROLL_CANCEL_EVENT, e)\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n this._pointerLocker.dispose();\r\n this._wheelLocker.dispose()\r\n },\r\n _clearSelection: function() {\r\n if (this.isNative) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _toggleGestureCover: function() {\r\n if (this.isNative) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n}());\r\n(0, _emitter_registrator.default)({\r\n emitter: ScrollEmitter,\r\n events: [SCROLL_INIT_EVENT, SCROLL_START_EVENT, SCROLL_MOVE_EVENT, SCROLL_END_EVENT, SCROLL_STOP_EVENT, SCROLL_CANCEL_EVENT]\r\n});\r\nvar _default = {\r\n init: SCROLL_INIT_EVENT,\r\n start: SCROLL_START_EVENT,\r\n move: SCROLL_MOVE_EVENT,\r\n end: SCROLL_END_EVENT,\r\n stop: SCROLL_STOP_EVENT,\r\n cancel: SCROLL_CANCEL_EVENT\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/shared/grouped_data_converter_mixin.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _type = require(\"../../core/utils/type\");\r\nvar isCorrectStructure = function(data) {\r\n return Array.isArray(data) && data.every(function(item) {\r\n var hasTwoFields = 2 === Object.keys(item).length;\r\n var hasCorrectFields = \"key\" in item && \"items\" in item;\r\n return hasTwoFields && hasCorrectFields && Array.isArray(item.items)\r\n })\r\n};\r\nvar _default = {\r\n _getSpecificDataSourceOption: function() {\r\n var groupKey = \"key\";\r\n var dataSource = this.option(\"dataSource\");\r\n var hasSimpleItems = false;\r\n var data = {};\r\n if (this._getGroupedOption() && isCorrectStructure(dataSource)) {\r\n data = dataSource.reduce(function(accumulator, item) {\r\n var items = item.items.map(function(innerItem) {\r\n if (!(0, _type.isObject)(innerItem)) {\r\n innerItem = {\r\n text: innerItem\r\n };\r\n hasSimpleItems = true\r\n }\r\n if (!(groupKey in innerItem)) {\r\n innerItem[groupKey] = item.key\r\n }\r\n return innerItem\r\n });\r\n return accumulator.concat(items)\r\n }, []);\r\n dataSource = {\r\n store: {\r\n type: \"array\",\r\n data: data\r\n },\r\n group: {\r\n selector: \"key\",\r\n keepInitialKeyOrder: true\r\n }\r\n };\r\n if (hasSimpleItems) {\r\n dataSource.searchExpr = \"text\"\r\n }\r\n }\r\n return dataSource\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/selection/selection.strategy.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _query = _interopRequireDefault(require(\"../../data/query\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\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 _default = _class.default.inherit({\r\n ctor: function(options) {\r\n this.options = options;\r\n this._setOption(\"disabledItemKeys\", []);\r\n this._clearItemKeys()\r\n },\r\n _clearItemKeys: function() {\r\n this._setOption(\"addedItemKeys\", []);\r\n this._setOption(\"removedItemKeys\", []);\r\n this._setOption(\"removedItems\", []);\r\n this._setOption(\"addedItems\", [])\r\n },\r\n validate: _common.noop,\r\n _setOption: function(name, value) {\r\n this.options[name] = value\r\n },\r\n onSelectionChanged: function onSelectionChanged() {\r\n var addedItemKeys = this.options.addedItemKeys;\r\n var removedItemKeys = this.options.removedItemKeys;\r\n var addedItems = this.options.addedItems;\r\n var removedItems = this.options.removedItems;\r\n var selectedItems = this.options.selectedItems;\r\n var selectedItemKeys = this.options.selectedItemKeys;\r\n var onSelectionChanged = this.options.onSelectionChanged || _common.noop;\r\n this._clearItemKeys();\r\n onSelectionChanged({\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n addedItemKeys: addedItemKeys,\r\n removedItemKeys: removedItemKeys,\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n equalKeys: function(key1, key2) {\r\n if (this.options.equalByReference) {\r\n if ((0, _type.isObject)(key1) && (0, _type.isObject)(key2)) {\r\n return key1 === key2\r\n }\r\n }\r\n return (0, _common.equalByValue)(key1, key2)\r\n },\r\n getSelectableItems: function(items) {\r\n return items.filter(function(item) {\r\n return !item.disabled\r\n })\r\n },\r\n _clearSelection: function(keys, preserve, isDeselect, isSelectAll) {\r\n keys = keys || [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this.selectedItemKeys(keys, preserve, isDeselect, isSelectAll)\r\n },\r\n _removeTemplateProperty: function(remoteFilter) {\r\n var _this = this;\r\n if (Array.isArray(remoteFilter)) {\r\n return remoteFilter.map(function(f) {\r\n return _this._removeTemplateProperty(f)\r\n })\r\n }\r\n if ((0, _type.isObject)(remoteFilter)) {\r\n delete remoteFilter.template\r\n }\r\n return remoteFilter\r\n },\r\n _loadFilteredData: function(remoteFilter, localFilter, select, isSelectAll) {\r\n var filterLength = encodeURI(JSON.stringify(this._removeTemplateProperty(remoteFilter))).length;\r\n var needLoadAllData = this.options.maxFilterLengthInRequest && filterLength > this.options.maxFilterLengthInRequest;\r\n var deferred = new _deferred.Deferred;\r\n var loadOptions = {\r\n filter: needLoadAllData ? void 0 : remoteFilter,\r\n select: needLoadAllData ? this.options.dataFields() : select || this.options.dataFields()\r\n };\r\n if (remoteFilter && 0 === remoteFilter.length) {\r\n deferred.resolve([])\r\n } else {\r\n this.options.load(loadOptions).done(function(items) {\r\n var filteredItems = (0, _type.isPlainObject)(items) ? items.data : items;\r\n if (localFilter && !isSelectAll) {\r\n filteredItems = filteredItems.filter(localFilter)\r\n } else {\r\n if (needLoadAllData) {\r\n filteredItems = (0, _query.default)(filteredItems).filter(remoteFilter).toArray()\r\n }\r\n }\r\n deferred.resolve(filteredItems)\r\n }).fail(deferred.reject.bind(deferred))\r\n }\r\n return deferred\r\n },\r\n updateSelectedItemKeyHash: function(keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var keyHash = (0, _common.getKeyHash)(keys[i]);\r\n if (!(0, _type.isObject)(keyHash)) {\r\n this.options.keyHashIndices[keyHash] = this.options.keyHashIndices[keyHash] || [];\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n keyIndices.push(i)\r\n }\r\n }\r\n },\r\n _isAnyItemSelected: function(items) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (this.options.isItemSelected(items[i])) {\r\n return\r\n }\r\n }\r\n return false\r\n },\r\n _getFullSelectAllState: function() {\r\n var items = this.options.plainItems();\r\n var dataFilter = this.options.filter();\r\n var selectedItems = this.options.selectedItems;\r\n if (dataFilter) {\r\n selectedItems = (0, _query.default)(selectedItems).filter(dataFilter).toArray()\r\n }\r\n var selectedItemsLength = selectedItems.length;\r\n if (!selectedItemsLength) {\r\n return this._isAnyItemSelected(items)\r\n }\r\n if (selectedItemsLength >= this.options.totalCount() - this.options.disabledItemKeys.length) {\r\n return true\r\n }\r\n return\r\n },\r\n _getVisibleSelectAllState: function() {\r\n var items = this.getSelectableItems(this.options.plainItems());\r\n var hasSelectedItems = false;\r\n var hasUnselectedItems = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var itemData = this.options.getItemData(item);\r\n var key = this.options.keyOf(itemData);\r\n if (this.options.isSelectableItem(item)) {\r\n if (this.isItemKeySelected(key)) {\r\n hasSelectedItems = true\r\n } else {\r\n hasUnselectedItems = true\r\n }\r\n }\r\n }\r\n if (hasSelectedItems) {\r\n return !hasUnselectedItems ? true : void 0\r\n } else {\r\n return false\r\n }\r\n }\r\n});\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scroll_view/ui.scrollbar.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _ready_callbacks = _interopRequireDefault(require(\"../../core/utils/ready_callbacks\"));\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SCROLLBAR = \"dxScrollbar\";\r\nvar SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nvar SCROLLABLE_SCROLLBAR_ACTIVE_CLASS = \"\".concat(SCROLLABLE_SCROLLBAR_CLASS, \"-active\");\r\nvar SCROLLABLE_SCROLL_CLASS = \"dx-scrollable-scroll\";\r\nvar SCROLLABLE_SCROLL_CONTENT_CLASS = \"dx-scrollable-scroll-content\";\r\nvar HOVER_ENABLED_STATE = \"dx-scrollbar-hoverable\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar THUMB_MIN_SIZE = 15;\r\nvar SCROLLBAR_VISIBLE = {\r\n onScroll: \"onScroll\",\r\n onHover: \"onHover\",\r\n always: \"always\",\r\n never: \"never\"\r\n};\r\nvar activeScrollbar = null;\r\nvar Scrollbar = _ui.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n direction: null,\r\n visible: false,\r\n activeStateEnabled: false,\r\n visibilityMode: SCROLLBAR_VISIBLE.onScroll,\r\n containerSize: 0,\r\n contentSize: 0,\r\n expandable: true,\r\n scaleRatio: 1\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._isHovered = false\r\n },\r\n _initMarkup: function() {\r\n this._renderThumb();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderDirection();\r\n this._update();\r\n this._attachPointerDownHandler();\r\n this.option(\"hoverStateEnabled\", this._isHoverMode());\r\n this.$element().toggleClass(HOVER_ENABLED_STATE, this.option(\"hoverStateEnabled\"))\r\n },\r\n _renderThumb: function() {\r\n this._$thumb = (0, _renderer.default)(\"
\").addClass(SCROLLABLE_SCROLL_CLASS);\r\n (0, _renderer.default)(\"
\").addClass(SCROLLABLE_SCROLL_CONTENT_CLASS).appendTo(this._$thumb);\r\n this.$element().addClass(SCROLLABLE_SCROLLBAR_CLASS).append(this._$thumb)\r\n },\r\n isThumb: function($element) {\r\n return !!this.$element().find($element).length\r\n },\r\n _isHoverMode: function() {\r\n var visibilityMode = this.option(\"visibilityMode\");\r\n return (visibilityMode === SCROLLBAR_VISIBLE.onHover || visibilityMode === SCROLLBAR_VISIBLE.always) && this.option(\"expandable\")\r\n },\r\n _renderDirection: function() {\r\n var direction = this.option(\"direction\");\r\n this.$element().addClass(\"dx-scrollbar-\" + direction);\r\n this._dimension = direction === HORIZONTAL ? \"width\" : \"height\";\r\n this._prop = direction === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _attachPointerDownHandler: function() {\r\n _events_engine.default.on(this._$thumb, (0, _index.addNamespace)(_pointer.default.down, SCROLLBAR), this.feedbackOn.bind(this))\r\n },\r\n feedbackOn: function() {\r\n this.$element().addClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);\r\n activeScrollbar = this\r\n },\r\n feedbackOff: function() {\r\n this.$element().removeClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);\r\n activeScrollbar = null\r\n },\r\n cursorEnter: function() {\r\n this._isHovered = true;\r\n if (this._needScrollbar()) {\r\n this.option(\"visible\", true)\r\n }\r\n },\r\n cursorLeave: function() {\r\n this._isHovered = false;\r\n this.option(\"visible\", false)\r\n },\r\n _renderDimensions: function() {\r\n this._$thumb.css({\r\n width: this.option(\"width\"),\r\n height: this.option(\"height\")\r\n })\r\n },\r\n _toggleVisibility: function(visible) {\r\n if (this.option(\"visibilityMode\") === SCROLLBAR_VISIBLE.onScroll) {\r\n this._$thumb.css(\"opacity\")\r\n }\r\n visible = this._adjustVisibility(visible);\r\n this.option().visible = visible;\r\n this._$thumb.toggleClass(\"dx-state-invisible\", !visible)\r\n },\r\n _adjustVisibility: function(visible) {\r\n if (this._baseContainerToContentRatio && !this._needScrollbar()) {\r\n return false\r\n }\r\n switch (this.option(\"visibilityMode\")) {\r\n case SCROLLBAR_VISIBLE.onScroll:\r\n break;\r\n case SCROLLBAR_VISIBLE.onHover:\r\n visible = visible || !!this._isHovered;\r\n break;\r\n case SCROLLBAR_VISIBLE.never:\r\n visible = false;\r\n break;\r\n case SCROLLBAR_VISIBLE.always:\r\n visible = true\r\n }\r\n return visible\r\n },\r\n moveTo: function(location) {\r\n if (this._isHidden()) {\r\n return\r\n }\r\n if ((0, _type.isPlainObject)(location)) {\r\n location = location[this._prop] || 0\r\n }\r\n var scrollBarLocation = {};\r\n scrollBarLocation[this._prop] = this._calculateScrollBarPosition(location);\r\n (0, _translator.move)(this._$thumb, scrollBarLocation)\r\n },\r\n _calculateScrollBarPosition: function(location) {\r\n return -location * this._thumbRatio\r\n },\r\n _update: function() {\r\n var containerSize = Math.round(this.option(\"containerSize\"));\r\n var contentSize = Math.round(this.option(\"contentSize\"));\r\n var baseContainerSize = Math.round(this.option(\"baseContainerSize\"));\r\n var baseContentSize = Math.round(this.option(\"baseContentSize\"));\r\n if (isNaN(baseContainerSize)) {\r\n baseContainerSize = containerSize;\r\n baseContentSize = contentSize\r\n }\r\n this._baseContainerToContentRatio = baseContentSize ? baseContainerSize / baseContentSize : baseContainerSize;\r\n this._realContainerToContentRatio = contentSize ? containerSize / contentSize : containerSize;\r\n var thumbSize = Math.round(Math.max(Math.round(containerSize * this._realContainerToContentRatio), THUMB_MIN_SIZE));\r\n this._thumbRatio = (containerSize - thumbSize) / (this.option(\"scaleRatio\") * (contentSize - containerSize));\r\n this.option(this._dimension, thumbSize / this.option(\"scaleRatio\"));\r\n this.$element().css(\"display\", this._needScrollbar() ? \"\" : \"none\")\r\n },\r\n _isHidden: function() {\r\n return this.option(\"visibilityMode\") === SCROLLBAR_VISIBLE.never\r\n },\r\n _needScrollbar: function() {\r\n return !this._isHidden() && this._baseContainerToContentRatio < 1\r\n },\r\n containerToContentRatio: function() {\r\n return this._realContainerToContentRatio\r\n },\r\n _normalizeSize: function(size) {\r\n return (0, _type.isPlainObject)(size) ? size[this._dimension] || 0 : size\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n if (this === activeScrollbar) {\r\n activeScrollbar = null\r\n }\r\n _events_engine.default.off(this._$thumb, \".\" + SCROLLBAR)\r\n },\r\n _optionChanged: function(args) {\r\n if (this._isHidden()) {\r\n return\r\n }\r\n switch (args.name) {\r\n case \"containerSize\":\r\n case \"contentSize\":\r\n this.option()[args.name] = this._normalizeSize(args.value);\r\n this._update();\r\n break;\r\n case \"baseContentSize\":\r\n case \"baseContainerSize\":\r\n this._update();\r\n break;\r\n case \"visibilityMode\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"scaleRatio\":\r\n this._update();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n update: (0, _common.deferRenderer)(function() {\r\n this._adjustVisibility() && this.option(\"visible\", true)\r\n })\r\n});\r\n_ready_callbacks.default.add(function() {\r\n _events_engine.default.subscribeGlobal(_dom_adapter.default.getDocument(), (0, _index.addNamespace)(_pointer.default.up, SCROLLBAR), function() {\r\n if (activeScrollbar) {\r\n activeScrollbar.feedbackOff()\r\n }\r\n })\r\n});\r\nvar _default = Scrollbar;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scroll_view/ui.scrollable.simulated.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.SimulatedStrategy = exports.Scroller = 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 _inflector = require(\"../../core/utils/inflector\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _animator = _interopRequireDefault(require(\"./animator\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _ui = _interopRequireDefault(require(\"./ui.scrollbar\"));\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 SCROLLABLE_SIMULATED = \"dxSimulatedScrollable\";\r\nvar SCROLLABLE_STRATEGY = \"dxScrollableStrategy\";\r\nvar SCROLLABLE_SIMULATED_CURSOR = SCROLLABLE_SIMULATED + \"Cursor\";\r\nvar SCROLLABLE_SIMULATED_KEYBOARD = SCROLLABLE_SIMULATED + \"Keyboard\";\r\nvar SCROLLABLE_SIMULATED_CLASS = \"dx-scrollable-simulated\";\r\nvar SCROLLABLE_SCROLLBARS_HIDDEN = \"dx-scrollable-scrollbars-hidden\";\r\nvar SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE = \"dx-scrollable-scrollbars-alwaysvisible\";\r\nvar SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar ACCELERATION = .92;\r\nvar OUT_BOUNDS_ACCELERATION = .5;\r\nvar MIN_VELOCITY_LIMIT = 1;\r\nvar FRAME_DURATION = Math.round(1e3 / 60);\r\nvar SCROLL_LINE_HEIGHT = 40;\r\nvar VALIDATE_WHEEL_TIMEOUT = 500;\r\nvar BOUNCE_MIN_VELOCITY_LIMIT = MIN_VELOCITY_LIMIT / 5;\r\nvar BOUNCE_DURATION = 400;\r\nvar BOUNCE_FRAMES = BOUNCE_DURATION / FRAME_DURATION;\r\nvar BOUNCE_ACCELERATION_SUM = (1 - Math.pow(ACCELERATION, BOUNCE_FRAMES)) / (1 - ACCELERATION);\r\nvar KEY_CODES = {\r\n PAGE_UP: \"pageUp\",\r\n PAGE_DOWN: \"pageDown\",\r\n END: \"end\",\r\n HOME: \"home\",\r\n LEFT: \"leftArrow\",\r\n UP: \"upArrow\",\r\n RIGHT: \"rightArrow\",\r\n DOWN: \"downArrow\",\r\n TAB: \"tab\"\r\n};\r\nvar InertiaAnimator = _animator.default.inherit({\r\n ctor: function(scroller) {\r\n this.callBase();\r\n this.scroller = scroller\r\n },\r\n VELOCITY_LIMIT: MIN_VELOCITY_LIMIT,\r\n _isFinished: function() {\r\n return Math.abs(this.scroller._velocity) <= this.VELOCITY_LIMIT\r\n },\r\n _step: function() {\r\n this.scroller._scrollStep(this.scroller._velocity);\r\n this.scroller._velocity *= this._acceleration()\r\n },\r\n _acceleration: function() {\r\n return this.scroller._inBounds() ? ACCELERATION : OUT_BOUNDS_ACCELERATION\r\n },\r\n _complete: function() {\r\n this.scroller._scrollComplete()\r\n },\r\n _stop: function() {\r\n this.scroller._stopComplete()\r\n }\r\n});\r\nvar BounceAnimator = InertiaAnimator.inherit({\r\n VELOCITY_LIMIT: BOUNCE_MIN_VELOCITY_LIMIT,\r\n _isFinished: function() {\r\n return this.scroller._crossBoundOnNextStep() || this.callBase()\r\n },\r\n _acceleration: function() {\r\n return ACCELERATION\r\n },\r\n _complete: function() {\r\n this.scroller._move(this.scroller._bounceLocation);\r\n this.callBase()\r\n }\r\n});\r\nvar Scroller = _class.default.inherit({\r\n ctor: function(options) {\r\n this._initOptions(options);\r\n this._initAnimators();\r\n this._initScrollbar()\r\n },\r\n _initOptions: function(options) {\r\n var _this = this;\r\n this._location = 0;\r\n this._topReached = false;\r\n this._bottomReached = false;\r\n this._axis = options.direction === HORIZONTAL ? \"x\" : \"y\";\r\n this._prop = options.direction === HORIZONTAL ? \"left\" : \"top\";\r\n this._dimension = options.direction === HORIZONTAL ? \"width\" : \"height\";\r\n this._scrollProp = options.direction === HORIZONTAL ? \"scrollLeft\" : \"scrollTop\";\r\n (0, _iterator.each)(options, function(optionName, optionValue) {\r\n _this[\"_\" + optionName] = optionValue\r\n })\r\n },\r\n _initAnimators: function() {\r\n this._inertiaAnimator = new InertiaAnimator(this);\r\n this._bounceAnimator = new BounceAnimator(this)\r\n },\r\n _initScrollbar: function() {\r\n this._scrollbar = new _ui.default((0, _renderer.default)(\"
\").appendTo(this._$container), {\r\n direction: this._direction,\r\n visible: this._scrollByThumb,\r\n visibilityMode: this._visibilityModeNormalize(this._scrollbarVisible),\r\n expandable: this._scrollByThumb\r\n });\r\n this._$scrollbar = this._scrollbar.$element()\r\n },\r\n _visibilityModeNormalize: function(mode) {\r\n return true === mode ? \"onScroll\" : false === mode ? \"never\" : mode\r\n },\r\n _scrollStep: function(delta) {\r\n var prevLocation = this._location;\r\n this._location += delta;\r\n this._suppressBounce();\r\n this._move();\r\n if (Math.abs(prevLocation - this._location) < 1) {\r\n return\r\n }\r\n _events_engine.default.triggerHandler(this._$container, {\r\n type: \"scroll\"\r\n })\r\n },\r\n _suppressBounce: function() {\r\n if (this._bounceEnabled || this._inBounds(this._location)) {\r\n return\r\n }\r\n this._velocity = 0;\r\n this._location = this._boundLocation()\r\n },\r\n _boundLocation: function(location) {\r\n location = void 0 !== location ? location : this._location;\r\n return Math.max(Math.min(location, this._maxOffset), this._minOffset)\r\n },\r\n _move: function(location) {\r\n this._location = void 0 !== location ? location * this._getScaleRatio() : this._location;\r\n this._moveContent();\r\n this._moveScrollbar()\r\n },\r\n _moveContent: function() {\r\n var location = this._location;\r\n this._$container[this._scrollProp](-location / this._getScaleRatio());\r\n this._moveContentByTranslator(location)\r\n },\r\n _getScaleRatio: function() {\r\n if ((0, _window.hasWindow)() && !this._scaleRatio) {\r\n var element = this._$element.get(0);\r\n var realDimension = this._getRealDimension(element, this._dimension);\r\n var baseDimension = this._getBaseDimension(element, this._dimension);\r\n this._scaleRatio = Math.round(realDimension / baseDimension * 100) / 100\r\n }\r\n return this._scaleRatio || 1\r\n },\r\n _getRealDimension: function(element, dimension) {\r\n return Math.round((0, _position.getBoundingRect)(element)[dimension])\r\n },\r\n _getBaseDimension: function(element, dimension) {\r\n var dimensionName = \"offset\" + (0, _inflector.titleize)(dimension);\r\n return element[dimensionName]\r\n },\r\n _moveContentByTranslator: function(location) {\r\n var translateOffset;\r\n var minOffset = -this._maxScrollPropValue;\r\n if (location > 0) {\r\n translateOffset = location\r\n } else {\r\n if (location <= minOffset) {\r\n translateOffset = location - minOffset\r\n } else {\r\n translateOffset = location % 1\r\n }\r\n }\r\n if (this._translateOffset === translateOffset) {\r\n return\r\n }\r\n var targetLocation = {};\r\n targetLocation[this._prop] = translateOffset;\r\n this._translateOffset = translateOffset;\r\n if (0 === translateOffset) {\r\n (0, _translator.resetPosition)(this._$content);\r\n return\r\n }(0, _translator.move)(this._$content, targetLocation)\r\n },\r\n _moveScrollbar: function() {\r\n this._scrollbar.moveTo(this._location)\r\n },\r\n _scrollComplete: function() {\r\n if (this._inBounds()) {\r\n this._hideScrollbar();\r\n if (this._completeDeferred) {\r\n this._completeDeferred.resolve()\r\n }\r\n }\r\n this._scrollToBounds()\r\n },\r\n _scrollToBounds: function() {\r\n if (this._inBounds()) {\r\n return\r\n }\r\n this._bounceAction();\r\n this._setupBounce();\r\n this._bounceAnimator.start()\r\n },\r\n _setupBounce: function() {\r\n var boundLocation = this._bounceLocation = this._boundLocation();\r\n var bounceDistance = boundLocation - this._location;\r\n this._velocity = bounceDistance / BOUNCE_ACCELERATION_SUM\r\n },\r\n _inBounds: function(location) {\r\n location = void 0 !== location ? location : this._location;\r\n return this._boundLocation(location) === location\r\n },\r\n _crossBoundOnNextStep: function() {\r\n var location = this._location;\r\n var nextLocation = location + this._velocity;\r\n return location < this._minOffset && nextLocation >= this._minOffset || location > this._maxOffset && nextLocation <= this._maxOffset\r\n },\r\n _initHandler: function(e) {\r\n this._stopDeferred = new _deferred.Deferred;\r\n this._stopScrolling();\r\n this._prepareThumbScrolling(e);\r\n return this._stopDeferred.promise()\r\n },\r\n _stopScrolling: (0, _common.deferRenderer)(function() {\r\n this._hideScrollbar();\r\n this._inertiaAnimator.stop();\r\n this._bounceAnimator.stop()\r\n }),\r\n _prepareThumbScrolling: function(e) {\r\n if ((0, _index.isDxMouseWheelEvent)(e.originalEvent)) {\r\n return\r\n }\r\n var $target = (0, _renderer.default)(e.originalEvent.target);\r\n var scrollbarClicked = this._isScrollbar($target);\r\n if (scrollbarClicked) {\r\n this._moveToMouseLocation(e)\r\n }\r\n this._thumbScrolling = scrollbarClicked || this._isThumb($target);\r\n this._crossThumbScrolling = !this._thumbScrolling && this._isAnyThumbScrolling($target);\r\n if (this._thumbScrolling) {\r\n this._scrollbar.feedbackOn()\r\n }\r\n },\r\n _isThumbScrollingHandler: function($target) {\r\n return this._isThumb($target)\r\n },\r\n _moveToMouseLocation: function(e) {\r\n var mouseLocation = e[\"page\" + this._axis.toUpperCase()] - this._$element.offset()[this._prop];\r\n var location = this._location + mouseLocation / this._containerToContentRatio() - this._$container.height() / 2;\r\n this._scrollStep(-Math.round(location))\r\n },\r\n _stopComplete: function() {\r\n if (this._stopDeferred) {\r\n this._stopDeferred.resolve()\r\n }\r\n },\r\n _startHandler: function() {\r\n this._showScrollbar()\r\n },\r\n _moveHandler: function(delta) {\r\n if (this._crossThumbScrolling) {\r\n return\r\n }\r\n if (this._thumbScrolling) {\r\n delta[this._axis] = -Math.round(delta[this._axis] / this._containerToContentRatio())\r\n }\r\n this._scrollBy(delta)\r\n },\r\n _scrollBy: function(delta) {\r\n delta = delta[this._axis];\r\n if (!this._inBounds()) {\r\n delta *= OUT_BOUNDS_ACCELERATION\r\n }\r\n this._scrollStep(delta)\r\n },\r\n _scrollByHandler: function(delta) {\r\n this._scrollBy(delta);\r\n this._scrollComplete()\r\n },\r\n _containerToContentRatio: function() {\r\n return this._scrollbar.containerToContentRatio()\r\n },\r\n _endHandler: function(velocity) {\r\n this._completeDeferred = new _deferred.Deferred;\r\n this._velocity = velocity[this._axis];\r\n this._inertiaHandler();\r\n this._resetThumbScrolling();\r\n return this._completeDeferred.promise()\r\n },\r\n _inertiaHandler: function() {\r\n this._suppressInertia();\r\n this._inertiaAnimator.start()\r\n },\r\n _suppressInertia: function() {\r\n if (!this._inertiaEnabled || this._thumbScrolling) {\r\n this._velocity = 0\r\n }\r\n },\r\n _resetThumbScrolling: function() {\r\n this._thumbScrolling = false;\r\n this._crossThumbScrolling = false\r\n },\r\n _stopHandler: function() {\r\n if (this._thumbScrolling) {\r\n this._scrollComplete()\r\n }\r\n this._resetThumbScrolling();\r\n this._scrollToBounds()\r\n },\r\n _disposeHandler: function() {\r\n this._stopScrolling();\r\n this._$scrollbar.remove()\r\n },\r\n _updateHandler: function() {\r\n this._update();\r\n this._moveToBounds()\r\n },\r\n _update: function() {\r\n var _this2 = this;\r\n this._stopScrolling();\r\n return (0, _common.deferUpdate)(function() {\r\n _this2._resetScaleRatio();\r\n _this2._updateLocation();\r\n _this2._updateBounds();\r\n _this2._updateScrollbar();\r\n (0, _common.deferRender)(function() {\r\n _this2._moveScrollbar();\r\n _this2._scrollbar.update()\r\n })\r\n })\r\n },\r\n _resetScaleRatio: function() {\r\n this._scaleRatio = null\r\n },\r\n _updateLocation: function() {\r\n this._location = ((0, _translator.locate)(this._$content)[this._prop] - this._$container[this._scrollProp]()) * this._getScaleRatio()\r\n },\r\n _updateBounds: function() {\r\n this._maxOffset = Math.round(this._getMaxOffset());\r\n this._minOffset = Math.round(this._getMinOffset())\r\n },\r\n _getMaxOffset: function() {\r\n return 0\r\n },\r\n _getMinOffset: function() {\r\n this._maxScrollPropValue = Math.max(this._contentSize() - this._containerSize(), 0);\r\n return -this._maxScrollPropValue\r\n },\r\n _updateScrollbar: (0, _common.deferUpdater)(function() {\r\n var _this3 = this;\r\n var containerSize = this._containerSize();\r\n var contentSize = this._contentSize();\r\n var baseContainerSize = this._getBaseDimension(this._$container.get(0), this._dimension);\r\n var baseContentSize = this._getBaseDimension(this._$content.get(0), this._dimension);\r\n (0, _common.deferRender)(function() {\r\n _this3._scrollbar.option({\r\n containerSize: containerSize,\r\n contentSize: contentSize,\r\n baseContainerSize: baseContainerSize,\r\n baseContentSize: baseContentSize,\r\n scaleRatio: _this3._getScaleRatio()\r\n })\r\n })\r\n }),\r\n _moveToBounds: (0, _common.deferRenderer)((0, _common.deferUpdater)((0, _common.deferRenderer)(function() {\r\n var location = this._boundLocation();\r\n var locationChanged = location !== this._location;\r\n this._location = location;\r\n this._move();\r\n if (locationChanged) {\r\n this._scrollAction()\r\n }\r\n }))),\r\n _createActionsHandler: function(actions) {\r\n this._scrollAction = actions.scroll;\r\n this._bounceAction = actions.bounce\r\n },\r\n _showScrollbar: function() {\r\n this._scrollbar.option(\"visible\", true)\r\n },\r\n _hideScrollbar: function() {\r\n this._scrollbar.option(\"visible\", false)\r\n },\r\n _containerSize: function() {\r\n return this._getRealDimension(this._$container.get(0), this._dimension)\r\n },\r\n _contentSize: function() {\r\n var isOverflowHidden = \"hidden\" === this._$content.css(\"overflow\" + this._axis.toUpperCase());\r\n var contentSize = this._getRealDimension(this._$content.get(0), this._dimension);\r\n if (!isOverflowHidden) {\r\n var containerScrollSize = this._$content[0][\"scroll\" + (0, _inflector.titleize)(this._dimension)] * this._getScaleRatio();\r\n contentSize = Math.max(containerScrollSize, contentSize)\r\n }\r\n return contentSize\r\n },\r\n _validateEvent: function(e) {\r\n var $target = (0, _renderer.default)(e.originalEvent.target);\r\n return this._isThumb($target) || this._isScrollbar($target) || this._isContent($target)\r\n },\r\n _isThumb: function($element) {\r\n return this._scrollByThumb && this._scrollbar.isThumb($element)\r\n },\r\n _isScrollbar: function($element) {\r\n return this._scrollByThumb && $element && $element.is(this._$scrollbar)\r\n },\r\n _isContent: function($element) {\r\n return this._scrollByContent && !!$element.closest(this._$element).length\r\n },\r\n _reachedMin: function() {\r\n return this._location <= this._minOffset\r\n },\r\n _reachedMax: function() {\r\n return this._location >= this._maxOffset\r\n },\r\n _cursorEnterHandler: function() {\r\n this._resetScaleRatio();\r\n this._updateScrollbar();\r\n this._scrollbar.cursorEnter()\r\n },\r\n _cursorLeaveHandler: function() {\r\n this._scrollbar.cursorLeave()\r\n },\r\n dispose: _common.noop\r\n});\r\nexports.Scroller = Scroller;\r\nvar hoveredScrollable;\r\nvar activeScrollable;\r\nvar SimulatedStrategy = _class.default.inherit({\r\n ctor: function(scrollable) {\r\n this._init(scrollable)\r\n },\r\n _init: function(scrollable) {\r\n this._component = scrollable;\r\n this._$element = scrollable.$element();\r\n this._$container = scrollable._$container;\r\n this._$wrapper = scrollable._$wrapper;\r\n this._$content = scrollable._$content;\r\n this.option = scrollable.option.bind(scrollable);\r\n this._createActionByOption = scrollable._createActionByOption.bind(scrollable);\r\n this._isLocked = scrollable._isLocked.bind(scrollable);\r\n this._isDirection = scrollable._isDirection.bind(scrollable);\r\n this._allowedDirection = scrollable._allowedDirection.bind(scrollable);\r\n this._getScrollOffset = scrollable._getScrollOffset.bind(scrollable)\r\n },\r\n render: function() {\r\n this._$element.addClass(SCROLLABLE_SIMULATED_CLASS);\r\n this._createScrollers();\r\n if (this.option(\"useKeyboard\")) {\r\n this._$container.prop(\"tabIndex\", 0)\r\n }\r\n this._attachKeyboardHandler();\r\n this._attachCursorHandlers()\r\n },\r\n _createScrollers: function() {\r\n this._scrollers = {};\r\n if (this._isDirection(HORIZONTAL)) {\r\n this._createScroller(HORIZONTAL)\r\n }\r\n if (this._isDirection(VERTICAL)) {\r\n this._createScroller(VERTICAL)\r\n }\r\n this._$element.toggleClass(SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE, \"always\" === this.option(\"showScrollbar\"));\r\n this._$element.toggleClass(SCROLLABLE_SCROLLBARS_HIDDEN, !this.option(\"showScrollbar\"))\r\n },\r\n _createScroller: function(direction) {\r\n this._scrollers[direction] = new Scroller(this._scrollerOptions(direction))\r\n },\r\n _scrollerOptions: function(direction) {\r\n return {\r\n direction: direction,\r\n $content: this._$content,\r\n $container: this._$container,\r\n $wrapper: this._$wrapper,\r\n $element: this._$element,\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n scrollbarVisible: this.option(\"showScrollbar\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n inertiaEnabled: this.option(\"inertiaEnabled\"),\r\n isAnyThumbScrolling: this._isAnyThumbScrolling.bind(this)\r\n }\r\n },\r\n _applyScaleRatio: function(targetLocation) {\r\n for (var direction in this._scrollers) {\r\n var prop = this._getPropByDirection(direction);\r\n if ((0, _type.isDefined)(targetLocation[prop])) {\r\n var scroller = this._scrollers[direction];\r\n targetLocation[prop] *= scroller._getScaleRatio()\r\n }\r\n }\r\n return targetLocation\r\n },\r\n _isAnyThumbScrolling: function($target) {\r\n var result = false;\r\n this._eventHandler(\"isThumbScrolling\", $target).done(function(isThumbScrollingVertical, isThumbScrollingHorizontal) {\r\n result = isThumbScrollingVertical || isThumbScrollingHorizontal\r\n });\r\n return result\r\n },\r\n handleInit: function(e) {\r\n this._suppressDirections(e);\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"init\", e).done(this._stopAction)\r\n },\r\n _suppressDirections: function(e) {\r\n if ((0, _index.isDxMouseWheelEvent)(e.originalEvent)) {\r\n this._prepareDirections(true);\r\n return\r\n }\r\n this._prepareDirections();\r\n this._eachScroller(function(scroller, direction) {\r\n var isValid = scroller._validateEvent(e);\r\n this._validDirections[direction] = isValid\r\n })\r\n },\r\n _prepareDirections: function(value) {\r\n value = value || false;\r\n this._validDirections = {};\r\n this._validDirections[HORIZONTAL] = value;\r\n this._validDirections[VERTICAL] = value\r\n },\r\n _eachScroller: function(callback) {\r\n callback = callback.bind(this);\r\n (0, _iterator.each)(this._scrollers, function(direction, scroller) {\r\n callback(scroller, direction)\r\n })\r\n },\r\n handleStart: function(e) {\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"start\").done(this._startAction)\r\n },\r\n _saveActive: function() {\r\n activeScrollable = this\r\n },\r\n _resetActive: function() {\r\n if (activeScrollable === this) {\r\n activeScrollable = null\r\n }\r\n },\r\n handleMove: function(e) {\r\n if (this._isLocked()) {\r\n e.cancel = true;\r\n this._resetActive();\r\n return\r\n }\r\n this._saveActive();\r\n e.preventDefault && e.preventDefault();\r\n this._adjustDistance(e, e.delta);\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"move\", e.delta)\r\n },\r\n _adjustDistance: function(e, distance) {\r\n distance.x *= this._validDirections[HORIZONTAL];\r\n distance.y *= this._validDirections[VERTICAL];\r\n var devicePixelRatio = this._tryGetDevicePixelRatio();\r\n if (devicePixelRatio && (0, _index.isDxMouseWheelEvent)(e.originalEvent)) {\r\n distance.x = Math.round(distance.x / devicePixelRatio * 100) / 100;\r\n distance.y = Math.round(distance.y / devicePixelRatio * 100) / 100\r\n }\r\n },\r\n _tryGetDevicePixelRatio: function() {\r\n if ((0, _window.hasWindow)()) {\r\n return (0, _window.getWindow)().devicePixelRatio\r\n }\r\n },\r\n handleEnd: function(e) {\r\n this._resetActive();\r\n this._refreshCursorState(e.originalEvent && e.originalEvent.target);\r\n this._adjustDistance(e, e.velocity);\r\n this._eventForUserAction = e;\r\n return this._eventHandler(\"end\", e.velocity).done(this._endAction)\r\n },\r\n handleCancel: function(e) {\r\n this._resetActive();\r\n this._eventForUserAction = e;\r\n return this._eventHandler(\"end\", {\r\n x: 0,\r\n y: 0\r\n })\r\n },\r\n handleStop: function() {\r\n this._resetActive();\r\n this._eventHandler(\"stop\")\r\n },\r\n handleScroll: function() {\r\n this._component._updateRtlConfig();\r\n this._scrollAction()\r\n },\r\n _attachKeyboardHandler: function() {\r\n _events_engine.default.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_KEYBOARD));\r\n if (!this.option(\"disabled\") && this.option(\"useKeyboard\")) {\r\n _events_engine.default.on(this._$element, (0, _index.addNamespace)(\"keydown\", SCROLLABLE_SIMULATED_KEYBOARD), this._keyDownHandler.bind(this))\r\n }\r\n },\r\n _keyDownHandler: function(e) {\r\n var _this4 = this;\r\n clearTimeout(this._updateHandlerTimeout);\r\n this._updateHandlerTimeout = setTimeout(function() {\r\n if ((0, _index.normalizeKeyName)(e) === KEY_CODES.TAB) {\r\n _this4._eachScroller(function(scroller) {\r\n scroller._updateHandler()\r\n })\r\n }\r\n });\r\n if (!this._$container.is(_dom_adapter.default.getActiveElement())) {\r\n return\r\n }\r\n var handled = true;\r\n switch ((0, _index.normalizeKeyName)(e)) {\r\n case KEY_CODES.DOWN:\r\n this._scrollByLine({\r\n y: 1\r\n });\r\n break;\r\n case KEY_CODES.UP:\r\n this._scrollByLine({\r\n y: -1\r\n });\r\n break;\r\n case KEY_CODES.RIGHT:\r\n this._scrollByLine({\r\n x: 1\r\n });\r\n break;\r\n case KEY_CODES.LEFT:\r\n this._scrollByLine({\r\n x: -1\r\n });\r\n break;\r\n case KEY_CODES.PAGE_DOWN:\r\n this._scrollByPage(1);\r\n break;\r\n case KEY_CODES.PAGE_UP:\r\n this._scrollByPage(-1);\r\n break;\r\n case KEY_CODES.HOME:\r\n this._scrollToHome();\r\n break;\r\n case KEY_CODES.END:\r\n this._scrollToEnd();\r\n break;\r\n default:\r\n handled = false\r\n }\r\n if (handled) {\r\n e.stopPropagation();\r\n e.preventDefault()\r\n }\r\n },\r\n _scrollByLine: function(lines) {\r\n var devicePixelRatio = this._tryGetDevicePixelRatio();\r\n var scrollOffset = SCROLL_LINE_HEIGHT;\r\n if (devicePixelRatio) {\r\n scrollOffset = Math.abs(scrollOffset / devicePixelRatio * 100) / 100\r\n }\r\n this.scrollBy({\r\n top: (lines.y || 0) * -scrollOffset,\r\n left: (lines.x || 0) * -scrollOffset\r\n })\r\n },\r\n _scrollByPage: function(page) {\r\n var prop = this._wheelProp();\r\n var dimension = this._dimensionByProp(prop);\r\n var distance = {};\r\n distance[prop] = page * -this._$container[dimension]();\r\n this.scrollBy(distance)\r\n },\r\n _dimensionByProp: function(prop) {\r\n return \"left\" === prop ? \"width\" : \"height\"\r\n },\r\n _getPropByDirection: function(direction) {\r\n return direction === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _scrollToHome: function() {\r\n var prop = this._wheelProp();\r\n var distance = {};\r\n distance[prop] = 0;\r\n this._component.scrollTo(distance)\r\n },\r\n _scrollToEnd: function() {\r\n var prop = this._wheelProp();\r\n var dimension = this._dimensionByProp(prop);\r\n var distance = {};\r\n distance[prop] = this._$content[dimension]() - this._$container[dimension]();\r\n this._component.scrollTo(distance)\r\n },\r\n createActions: function() {\r\n this._startAction = this._createActionHandler(\"onStart\");\r\n this._stopAction = this._createActionHandler(\"onStop\");\r\n this._endAction = this._createActionHandler(\"onEnd\");\r\n this._updateAction = this._createActionHandler(\"onUpdated\");\r\n this._createScrollerActions()\r\n },\r\n _createScrollerActions: function() {\r\n this._scrollAction = this._createActionHandler(\"onScroll\");\r\n this._bounceAction = this._createActionHandler(\"onBounce\");\r\n this._eventHandler(\"createActions\", {\r\n scroll: this._scrollAction,\r\n bounce: this._bounceAction\r\n })\r\n },\r\n _createActionHandler: function(optionName) {\r\n var _arguments = arguments,\r\n _this5 = this;\r\n var actionHandler = this._createActionByOption(optionName);\r\n return function() {\r\n actionHandler((0, _extend.extend)(_this5._createActionArgs(), _arguments))\r\n }\r\n },\r\n _createActionArgs: function() {\r\n var _this$_scrollers = this._scrollers,\r\n scrollerX = _this$_scrollers.horizontal,\r\n scrollerY = _this$_scrollers.vertical;\r\n var offset = this._getScrollOffset();\r\n this._scrollOffset = {\r\n top: scrollerY && offset.top,\r\n left: scrollerX && offset.left\r\n };\r\n return {\r\n event: this._eventForUserAction,\r\n scrollOffset: this._scrollOffset,\r\n reachedLeft: scrollerX && scrollerX._reachedMax(),\r\n reachedRight: scrollerX && scrollerX._reachedMin(),\r\n reachedTop: scrollerY && scrollerY._reachedMax(),\r\n reachedBottom: scrollerY && scrollerY._reachedMin()\r\n }\r\n },\r\n _eventHandler: function(eventName) {\r\n var args = [].slice.call(arguments).slice(1);\r\n var deferreds = (0, _iterator.map)(this._scrollers, function(scroller) {\r\n return scroller[\"_\" + eventName + \"Handler\"].apply(scroller, args)\r\n });\r\n return _deferred.when.apply(_renderer.default, deferreds).promise()\r\n },\r\n location: function location() {\r\n var location = (0, _translator.locate)(this._$content);\r\n location.top -= this._$container.scrollTop();\r\n location.left -= this._$container.scrollLeft();\r\n return location\r\n },\r\n disabledChanged: function() {\r\n this._attachCursorHandlers()\r\n },\r\n _attachCursorHandlers: function() {\r\n _events_engine.default.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_CURSOR));\r\n if (!this.option(\"disabled\") && this._isHoverMode()) {\r\n _events_engine.default.on(this._$element, (0, _index.addNamespace)(\"mouseenter\", SCROLLABLE_SIMULATED_CURSOR), this._cursorEnterHandler.bind(this));\r\n _events_engine.default.on(this._$element, (0, _index.addNamespace)(\"mouseleave\", SCROLLABLE_SIMULATED_CURSOR), this._cursorLeaveHandler.bind(this))\r\n }\r\n },\r\n _isHoverMode: function() {\r\n return \"onHover\" === this.option(\"showScrollbar\")\r\n },\r\n _cursorEnterHandler: function(e) {\r\n e = e || {};\r\n e.originalEvent = e.originalEvent || {};\r\n if (activeScrollable || e.originalEvent._hoverHandled) {\r\n return\r\n }\r\n if (hoveredScrollable) {\r\n hoveredScrollable._cursorLeaveHandler()\r\n }\r\n hoveredScrollable = this;\r\n this._eventHandler(\"cursorEnter\");\r\n e.originalEvent._hoverHandled = true\r\n },\r\n _cursorLeaveHandler: function(e) {\r\n if (hoveredScrollable !== this || activeScrollable === hoveredScrollable) {\r\n return\r\n }\r\n this._eventHandler(\"cursorLeave\");\r\n hoveredScrollable = null;\r\n this._refreshCursorState(e && e.relatedTarget)\r\n },\r\n _refreshCursorState: function(target) {\r\n if (!this._isHoverMode() && (!target || activeScrollable)) {\r\n return\r\n }\r\n var $target = (0, _renderer.default)(target);\r\n var $scrollable = $target.closest(\".\".concat(SCROLLABLE_SIMULATED_CLASS, \":not(.dx-state-disabled)\"));\r\n var targetScrollable = $scrollable.length && $scrollable.data(SCROLLABLE_STRATEGY);\r\n if (hoveredScrollable && hoveredScrollable !== targetScrollable) {\r\n hoveredScrollable._cursorLeaveHandler()\r\n }\r\n if (targetScrollable) {\r\n targetScrollable._cursorEnterHandler()\r\n }\r\n },\r\n update: function() {\r\n var _this6 = this;\r\n var result = this._eventHandler(\"update\").done(this._updateAction);\r\n return (0, _deferred.when)(result, (0, _common.deferUpdate)(function() {\r\n var allowedDirections = _this6._allowedDirections();\r\n (0, _common.deferRender)(function() {\r\n var touchDirection = allowedDirections.vertical ? \"pan-x\" : \"\";\r\n touchDirection = allowedDirections.horizontal ? \"pan-y\" : touchDirection;\r\n touchDirection = allowedDirections.vertical && allowedDirections.horizontal ? \"none\" : touchDirection;\r\n _this6._$container.css(\"touchAction\", touchDirection)\r\n });\r\n return (0, _deferred.when)().promise()\r\n }))\r\n },\r\n _allowedDirections: function() {\r\n var bounceEnabled = this.option(\"bounceEnabled\");\r\n var verticalScroller = this._scrollers[VERTICAL];\r\n var horizontalScroller = this._scrollers[HORIZONTAL];\r\n return {\r\n vertical: verticalScroller && (verticalScroller._minOffset < 0 || bounceEnabled),\r\n horizontal: horizontalScroller && (horizontalScroller._minOffset < 0 || bounceEnabled)\r\n }\r\n },\r\n updateBounds: function() {\r\n this._scrollers[HORIZONTAL] && this._scrollers[HORIZONTAL]._updateBounds()\r\n },\r\n scrollBy: function(distance) {\r\n var verticalScroller = this._scrollers[VERTICAL];\r\n var horizontalScroller = this._scrollers[HORIZONTAL];\r\n if (verticalScroller) {\r\n distance.top = verticalScroller._boundLocation(distance.top + verticalScroller._location) - verticalScroller._location\r\n }\r\n if (horizontalScroller) {\r\n distance.left = horizontalScroller._boundLocation(distance.left + horizontalScroller._location) - horizontalScroller._location\r\n }\r\n this._prepareDirections(true);\r\n this._startAction();\r\n this._eventHandler(\"scrollBy\", {\r\n x: distance.left,\r\n y: distance.top\r\n });\r\n this._endAction()\r\n },\r\n validate: function(e) {\r\n if ((0, _index.isDxMouseWheelEvent)(e) && (0, _index.isCommandKeyPressed)(e)) {\r\n return false\r\n }\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (this.option(\"bounceEnabled\")) {\r\n return true\r\n }\r\n return (0, _index.isDxMouseWheelEvent)(e) ? this._validateWheel(e) : this._validateMove(e)\r\n },\r\n _validateWheel: function(e) {\r\n var _this7 = this;\r\n var scroller = this._scrollers[this._wheelDirection(e)];\r\n var reachedMin = scroller._reachedMin();\r\n var reachedMax = scroller._reachedMax();\r\n var contentGreaterThanContainer = !reachedMin || !reachedMax;\r\n var locatedNotAtBound = !reachedMin && !reachedMax;\r\n var scrollFromMin = reachedMin && e.delta > 0;\r\n var scrollFromMax = reachedMax && e.delta < 0;\r\n var validated = contentGreaterThanContainer && (locatedNotAtBound || scrollFromMin || scrollFromMax);\r\n validated = validated || void 0 !== this._validateWheelTimer;\r\n if (validated) {\r\n clearTimeout(this._validateWheelTimer);\r\n this._validateWheelTimer = setTimeout(function() {\r\n _this7._validateWheelTimer = void 0\r\n }, VALIDATE_WHEEL_TIMEOUT)\r\n }\r\n return validated\r\n },\r\n _validateMove: function(e) {\r\n if (!this.option(\"scrollByContent\") && !(0, _renderer.default)(e.target).closest(\".\".concat(SCROLLABLE_SCROLLBAR_CLASS)).length) {\r\n return false\r\n }\r\n return this._allowedDirection()\r\n },\r\n getDirection: function(e) {\r\n return (0, _index.isDxMouseWheelEvent)(e) ? this._wheelDirection(e) : this._allowedDirection()\r\n },\r\n _wheelProp: function() {\r\n return this._wheelDirection() === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _wheelDirection: function(e) {\r\n switch (this.option(\"direction\")) {\r\n case HORIZONTAL:\r\n return HORIZONTAL;\r\n case VERTICAL:\r\n return VERTICAL;\r\n default:\r\n return e && e.shiftKey ? HORIZONTAL : VERTICAL\r\n }\r\n },\r\n verticalOffset: function() {\r\n return 0\r\n },\r\n dispose: function() {\r\n this._resetActive();\r\n if (hoveredScrollable === this) {\r\n hoveredScrollable = null\r\n }\r\n this._eventHandler(\"dispose\");\r\n this._detachEventHandlers();\r\n this._$element.removeClass(SCROLLABLE_SIMULATED_CLASS);\r\n this._eventForUserAction = null;\r\n clearTimeout(this._validateWheelTimer);\r\n clearTimeout(this._updateHandlerTimeout)\r\n },\r\n _detachEventHandlers: function() {\r\n _events_engine.default.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_CURSOR));\r\n _events_engine.default.off(this._$container, \".\".concat(SCROLLABLE_SIMULATED_KEYBOARD))\r\n }\r\n});\r\nexports.SimulatedStrategy = SimulatedStrategy;\r\n","/**\r\n * DevExtreme (ui/scroll_view/animator.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _frame = require(\"../../animation/frame\");\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 Animator = _class.default.inherit({\r\n ctor: function() {\r\n this._finished = true;\r\n this._stopped = false;\r\n this._proxiedStepCore = this._stepCore.bind(this)\r\n },\r\n start: function() {\r\n this._stopped = false;\r\n this._finished = false;\r\n this._stepCore()\r\n },\r\n stop: function() {\r\n this._stopped = true;\r\n (0, _frame.cancelAnimationFrame)(this._stepAnimationFrame)\r\n },\r\n _stepCore: function() {\r\n if (this._isStopped()) {\r\n this._stop();\r\n return\r\n }\r\n if (this._isFinished()) {\r\n this._finished = true;\r\n this._complete();\r\n return\r\n }\r\n this._step();\r\n this._stepAnimationFrame = (0, _frame.requestAnimationFrame)(this._proxiedStepCore)\r\n },\r\n _step: abstract,\r\n _isFinished: _common.noop,\r\n _stop: _common.noop,\r\n _complete: _common.noop,\r\n _isStopped: function() {\r\n return this._stopped\r\n },\r\n inProgress: function() {\r\n return !(this._stopped || this._finished)\r\n }\r\n});\r\nvar _default = Animator;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scroll_view/ui.scrollable.device.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.deviceDependentOptions = void 0;\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _support = require(\"../../core/utils/support\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar deviceDependentOptions = function() {\r\n return [{\r\n device: function() {\r\n return !_support.nativeScrolling\r\n },\r\n options: {\r\n useNative: false\r\n }\r\n }, {\r\n device: function(_device) {\r\n return !_devices.default.isSimulator() && \"desktop\" === _devices.default.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n bounceEnabled: false,\r\n scrollByThumb: true,\r\n scrollByContent: _support.touch,\r\n showScrollbar: \"onHover\"\r\n }\r\n }]\r\n};\r\nexports.deviceDependentOptions = deviceDependentOptions;\r\n","/**\r\n * DevExtreme (ui/shared/ui.editor_factory_mixin.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _common = require(\"../../core/utils/common\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _variable_wrapper = _interopRequireDefault(require(\"../../core/utils/variable_wrapper\"));\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _element = require(\"../../core/element\");\r\nvar _utils = require(\"../../data/data_source/utils\");\r\nvar _index = require(\"../../events/utils/index\");\r\nrequire(\"../text_box\");\r\nrequire(\"../number_box\");\r\nrequire(\"../check_box\");\r\nrequire(\"../select_box\");\r\nrequire(\"../date_box\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar isWrapped = _variable_wrapper.default.isWrapped;\r\nvar CHECKBOX_SIZE_CLASS = \"checkbox-size\";\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar EditorFactoryMixin = function() {\r\n var getResultConfig = function(config, options) {\r\n return (0, _extend.extend)(config, {\r\n readOnly: options.readOnly,\r\n placeholder: options.placeholder,\r\n inputAttr: {\r\n id: options.id\r\n },\r\n tabIndex: options.tabIndex\r\n }, options.editorOptions)\r\n };\r\n var checkEnterBug = function() {\r\n return _browser.default.msie || _browser.default.mozilla || _devices.default.real().ios\r\n };\r\n var getTextEditorConfig = function(options) {\r\n var data = {};\r\n var isEnterBug = checkEnterBug();\r\n var sharedData = options.sharedData || data;\r\n return getResultConfig({\r\n placeholder: options.placeholder,\r\n width: options.width,\r\n value: options.value,\r\n onValueChanged: function(e) {\r\n var needDelayedUpdate = \"filterRow\" === options.parentType || \"searchPanel\" === options.parentType;\r\n var isInputOrKeyUpEvent = e.event && (\"input\" === e.event.type || \"keyup\" === e.event.type);\r\n var updateValue = function(e, notFireEvent) {\r\n options && options.setValue(e.value, notFireEvent)\r\n };\r\n clearTimeout(data.valueChangeTimeout);\r\n if (isInputOrKeyUpEvent && needDelayedUpdate) {\r\n sharedData.valueChangeTimeout = data.valueChangeTimeout = setTimeout(function() {\r\n updateValue(e, data.valueChangeTimeout !== sharedData.valueChangeTimeout)\r\n }, (0, _type.isDefined)(options.updateValueTimeout) ? options.updateValueTimeout : 0)\r\n } else {\r\n updateValue(e)\r\n }\r\n },\r\n onKeyDown: function(e) {\r\n if (isEnterBug && \"enter\" === (0, _index.normalizeKeyName)(e.event)) {\r\n _events_engine.default.trigger((0, _renderer.default)(e.component._input()), \"change\")\r\n }\r\n },\r\n valueChangeEvent: \"change\" + (\"filterRow\" === options.parentType ? \" keyup input\" : \"\")\r\n }, options)\r\n };\r\n var prepareDateBox = function(options) {\r\n options.editorName = \"dxDateBox\";\r\n options.editorOptions = getResultConfig({\r\n value: options.value,\r\n onValueChanged: function(args) {\r\n options.setValue(args.value)\r\n },\r\n onKeyDown: function(e) {\r\n if (checkEnterBug() && \"enter\" === (0, _index.normalizeKeyName)(e.event)) {\r\n e.component.blur();\r\n e.component.focus()\r\n }\r\n },\r\n displayFormat: options.format,\r\n type: options.dataType,\r\n dateSerializationFormat: null,\r\n width: \"filterBuilder\" === options.parentType ? void 0 : \"auto\"\r\n }, options)\r\n };\r\n var prepareTextBox = function(options) {\r\n var config = getTextEditorConfig(options);\r\n var isSearching = \"searchPanel\" === options.parentType;\r\n var toString = function(value) {\r\n return (0, _type.isDefined)(value) ? value.toString() : \"\"\r\n };\r\n if (options.editorType && \"dxTextBox\" !== options.editorType) {\r\n config.value = options.value\r\n } else {\r\n config.value = toString(options.value)\r\n }\r\n config.valueChangeEvent += isSearching ? \" keyup input search\" : \"\";\r\n config.mode = config.mode || (isSearching ? \"search\" : \"text\");\r\n options.editorName = \"dxTextBox\";\r\n options.editorOptions = config\r\n };\r\n var prepareNumberBox = function(options) {\r\n var config = getTextEditorConfig(options);\r\n config.value = (0, _type.isDefined)(options.value) ? options.value : null;\r\n options.editorName = \"dxNumberBox\";\r\n options.editorOptions = config\r\n };\r\n var prepareBooleanEditor = function(options) {\r\n if (\"filterRow\" === options.parentType || \"filterBuilder\" === options.parentType) {\r\n prepareSelectBox((0, _extend.extend)(options, {\r\n lookup: {\r\n displayExpr: function(data) {\r\n if (true === data) {\r\n return options.trueText || \"true\"\r\n } else {\r\n if (false === data) {\r\n return options.falseText || \"false\"\r\n }\r\n }\r\n },\r\n dataSource: [true, false]\r\n }\r\n }))\r\n } else {\r\n prepareCheckBox(options)\r\n }\r\n };\r\n\r\n function watchLookupDataSource(options) {\r\n if (options.row && options.row.watch && \"dataRow\" === options.parentType) {\r\n var editorOptions = options.editorOptions || {};\r\n options.editorOptions = editorOptions;\r\n var selectBox;\r\n var onInitialized = editorOptions.onInitialized;\r\n editorOptions.onInitialized = function(e) {\r\n onInitialized && onInitialized.apply(this, arguments);\r\n selectBox = e.component;\r\n selectBox.on(\"disposing\", stopWatch)\r\n };\r\n var dataSource;\r\n var stopWatch = options.row.watch(function() {\r\n dataSource = options.lookup.dataSource(options.row);\r\n return dataSource && dataSource.filter\r\n }, function(newValue, row) {\r\n options.row = row;\r\n selectBox.option(\"dataSource\", dataSource)\r\n })\r\n }\r\n }\r\n\r\n function prepareSelectBox(options) {\r\n var lookup = options.lookup;\r\n var displayGetter;\r\n var dataSource;\r\n var postProcess;\r\n var isFilterRow = \"filterRow\" === options.parentType;\r\n if (lookup) {\r\n displayGetter = (0, _data.compileGetter)(lookup.displayExpr);\r\n dataSource = lookup.dataSource;\r\n if ((0, _type.isFunction)(dataSource) && !isWrapped(dataSource)) {\r\n dataSource = dataSource(options.row || {});\r\n watchLookupDataSource(options)\r\n }\r\n if ((0, _type.isObject)(dataSource) || Array.isArray(dataSource)) {\r\n dataSource = (0, _utils.normalizeDataSourceOptions)(dataSource);\r\n if (isFilterRow) {\r\n postProcess = dataSource.postProcess;\r\n dataSource.postProcess = function(items) {\r\n if (0 === this.pageIndex()) {\r\n items = items.slice(0);\r\n items.unshift(null)\r\n }\r\n if (postProcess) {\r\n return postProcess.call(this, items)\r\n }\r\n return items\r\n }\r\n }\r\n }\r\n var allowClearing = Boolean(lookup.allowClearing && !isFilterRow);\r\n options.editorName = \"dxSelectBox\";\r\n options.editorOptions = getResultConfig({\r\n searchEnabled: true,\r\n value: options.value,\r\n valueExpr: options.lookup.valueExpr,\r\n searchExpr: options.lookup.searchExpr || options.lookup.displayExpr,\r\n allowClearing: allowClearing,\r\n showClearButton: allowClearing,\r\n displayExpr: function(data) {\r\n if (null === data) {\r\n return options.showAllText\r\n }\r\n return displayGetter(data)\r\n },\r\n dataSource: dataSource,\r\n onValueChanged: function(e) {\r\n var params = [e.value];\r\n !isFilterRow && params.push(e.component.option(\"text\"));\r\n options.setValue.apply(this, params)\r\n }\r\n }, options)\r\n }\r\n }\r\n\r\n function prepareCheckBox(options) {\r\n options.editorName = \"dxCheckBox\";\r\n options.editorOptions = getResultConfig({\r\n elementAttr: {\r\n id: options.id\r\n },\r\n value: (0, _type.isDefined)(options.value) ? options.value : void 0,\r\n hoverStateEnabled: !options.readOnly,\r\n focusStateEnabled: !options.readOnly,\r\n activeStateEnabled: false,\r\n onValueChanged: function(e) {\r\n options.setValue && options.setValue(e.value, e)\r\n }\r\n }, options)\r\n }\r\n var createEditorCore = function(that, options) {\r\n var $editorElement = (0, _renderer.default)(options.editorElement);\r\n if (options.editorName && options.editorOptions && $editorElement[options.editorName]) {\r\n if (\"dxCheckBox\" === options.editorName || \"dxSwitch\" === options.editorName) {\r\n if (!options.isOnForm) {\r\n $editorElement.addClass(that.addWidgetPrefix(CHECKBOX_SIZE_CLASS));\r\n $editorElement.parent().addClass(EDITOR_INLINE_BLOCK)\r\n }\r\n }\r\n that._createComponent($editorElement, options.editorName, options.editorOptions);\r\n if (\"dxTextBox\" === options.editorName) {\r\n $editorElement.dxTextBox(\"instance\").registerKeyHandler(\"enter\", _common.noop)\r\n }\r\n if (\"dxDateBox\" === options.editorName) {\r\n var dateBox = $editorElement.dxDateBox(\"instance\");\r\n var defaultEnterKeyHandler = dateBox._supportedKeys().enter;\r\n dateBox.registerKeyHandler(\"enter\", function(e) {\r\n if (dateBox.option(\"opened\")) {\r\n defaultEnterKeyHandler(e)\r\n }\r\n return true\r\n })\r\n }\r\n if (\"dxTextArea\" === options.editorName) {\r\n $editorElement.dxTextArea(\"instance\").registerKeyHandler(\"enter\", function(event) {\r\n if (\"enter\" === (0, _index.normalizeKeyName)(event) && !event.ctrlKey && !event.shiftKey) {\r\n event.stopPropagation()\r\n }\r\n })\r\n }\r\n }\r\n };\r\n return {\r\n createEditor: function($container, options) {\r\n options.cancel = false;\r\n options.editorElement = (0, _element.getPublicElement)($container);\r\n if (!(0, _type.isDefined)(options.tabIndex)) {\r\n options.tabIndex = this.option(\"tabIndex\")\r\n }\r\n if (options.lookup) {\r\n prepareSelectBox(options)\r\n } else {\r\n switch (options.dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n prepareDateBox(options);\r\n break;\r\n case \"boolean\":\r\n prepareBooleanEditor(options);\r\n break;\r\n case \"number\":\r\n prepareNumberBox(options);\r\n break;\r\n default:\r\n prepareTextBox(options)\r\n }\r\n }\r\n var editorName = options.editorName;\r\n this.executeAction(\"onEditorPreparing\", options);\r\n if (options.cancel) {\r\n return\r\n } else {\r\n if (\"dataRow\" === options.parentType && options.editorType && editorName === options.editorName) {\r\n options.editorName = options.editorType\r\n }\r\n }\r\n if (\"dataRow\" === options.parentType && !options.isOnForm && !(0, _type.isDefined)(options.editorOptions.showValidationMark)) {\r\n options.editorOptions.showValidationMark = false\r\n }\r\n createEditorCore(this, options);\r\n this.executeAction(\"onEditorPrepared\", options)\r\n }\r\n }\r\n}();\r\nvar _default = EditorFactoryMixin;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/slider.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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(\"./slider/ui.slider\"));\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/slider/ui.slider_handle.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _tooltip = _interopRequireDefault(require(\"../tooltip\"));\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _position = _interopRequireDefault(require(\"../../animation/position\"));\r\nvar _math = require(\"../../core/utils/math\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position2 = require(\"../../core/utils/position\");\r\nvar _number = _interopRequireDefault(require(\"../../localization/number\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SLIDER_CLASS = \"dx-slider\";\r\nvar SLIDER_HANDLE_CLASS = \"dx-slider-handle\";\r\nvar POSITION_ALIASES = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\",\r\n collision: \"none\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"none\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\",\r\n collision: \"none\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\",\r\n collision: \"none\"\r\n }\r\n};\r\nvar SliderHandle = _ui.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n hoverStateEnabled: false,\r\n value: 0,\r\n tooltipEnabled: false,\r\n tooltipFormat: function(v) {\r\n return v\r\n },\r\n tooltipPosition: \"top\",\r\n tooltipShowMode: \"onHover\",\r\n tooltipFitIn: null\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(SLIDER_HANDLE_CLASS);\r\n this.setAria({\r\n role: \"slider\",\r\n valuenow: this.option(\"value\")\r\n })\r\n },\r\n _render: function() {\r\n this._renderTooltip();\r\n this.callBase()\r\n },\r\n _renderTooltip: function() {\r\n if (this.option(\"tooltipEnabled\")) {\r\n if (!this._$tooltip) {\r\n this._$tooltip = (0, _renderer.default)(\"
\").appendTo(this.$element())\r\n }\r\n this._$slider = this.$element().closest(\".\" + SLIDER_CLASS);\r\n this._updateTooltip()\r\n } else {\r\n this._removeTooltip()\r\n }\r\n },\r\n _createTooltip: function() {\r\n if (this._tooltip) {\r\n return false\r\n }\r\n this._tooltip = this._createComponent(this._$tooltip, _tooltip.default, {\r\n visible: true,\r\n target: this.$element(),\r\n closeOnOutsideClick: false,\r\n container: this.$element(),\r\n hideTopOverlayHandler: null,\r\n closeOnTargetScroll: false,\r\n onPositioned: function(args) {\r\n this._saveTooltipElements(args.component);\r\n this._saveTooltipLocation();\r\n this._centeredTooltipPosition()\r\n }.bind(this),\r\n animation: null,\r\n arrowPosition: null,\r\n templatesRenderAsynchronously: false,\r\n _fixedPosition: false\r\n });\r\n return true\r\n },\r\n _removeTooltip: function() {\r\n if (!this._$tooltip) {\r\n return\r\n }\r\n this._$tooltip.remove();\r\n delete this._$tooltip;\r\n delete this._tooltip\r\n },\r\n _renderTooltipPosition: function() {\r\n if (!this._tooltip) {\r\n return\r\n }\r\n var position = this.option(\"tooltipPosition\");\r\n this._saveTooltipElements();\r\n this._resetTooltipPosition();\r\n if (\"string\" === (0, _type.type)(position)) {\r\n position = (0, _extend.extend)({\r\n boundary: this._$slider,\r\n boundaryOffset: {\r\n h: 1,\r\n v: 1\r\n }\r\n }, POSITION_ALIASES[position])\r\n }\r\n this._tooltip.option(\"position\", position);\r\n this._saveTooltipLocation()\r\n },\r\n _saveTooltipElements: function(tooltip) {\r\n tooltip = this._tooltip || tooltip;\r\n this._$tooltipContent = tooltip.$content().parent();\r\n this._$tooltipArrow = this._$tooltipContent.find(\".dx-popover-arrow\")\r\n },\r\n _resetTooltipPosition: function() {\r\n (0, _translator.resetPosition)(this._$tooltipContent);\r\n (0, _translator.resetPosition)(this._$tooltipArrow)\r\n },\r\n _saveTooltipLocation: function() {\r\n this._contentLocate = (0, _translator.locate)(this._$tooltipContent)\r\n },\r\n _centeredTooltipPosition: function() {\r\n if (!this._tooltip) {\r\n return\r\n }\r\n this._$tooltipContent.outerWidth(\"auto\");\r\n var outerWidthWithoutRounding = (0, _position2.getBoundingRect)(this._$tooltipContent.get(0)).width;\r\n var tooltipOuterWidth = Math.ceil(outerWidthWithoutRounding);\r\n var roundedTooltipOuterWidth = tooltipOuterWidth % 2 + tooltipOuterWidth;\r\n this._$tooltipContent.outerWidth(roundedTooltipOuterWidth);\r\n var tooltipCenter = (roundedTooltipOuterWidth - this.$element().width()) / 2;\r\n this._contentLocate.left = -tooltipCenter;\r\n this._$tooltipArrow.css({\r\n marginLeft: -this._$tooltipArrow.outerWidth() / 2,\r\n left: \"50%\"\r\n });\r\n this._fitTooltip()\r\n },\r\n _fitTooltip: function() {\r\n if (!this._tooltip) {\r\n return\r\n }\r\n var position = this.option(\"tooltipPosition\");\r\n if (\"string\" === (0, _type.type)(position)) {\r\n position = (0, _extend.extend)({\r\n of: this.$element(),\r\n boundary: this._$slider,\r\n boundaryOffset: {\r\n h: 2,\r\n v: 1\r\n }\r\n }, POSITION_ALIASES[position], {\r\n collision: \"fit none\"\r\n })\r\n }\r\n var calculatePosition = _position.default.calculate(this._$tooltipContent, position);\r\n var isLeftSide = \"left\" === calculatePosition.h.collisionSide;\r\n var arrowLeft = (isLeftSide ? -1 : 1) * calculatePosition.h.oversize;\r\n var arrowMinLeft = this._contentLocate.left;\r\n var arrowMaxRight = this._contentLocate.left + this._$tooltipContent.outerWidth() - this._$tooltipArrow.outerWidth();\r\n (0, _translator.move)(this._$tooltipContent, {\r\n left: this._contentLocate.left + (isLeftSide ? 1 : -1) * calculatePosition.h.oversize\r\n });\r\n (0, _translator.move)(this._$tooltipArrow, {\r\n left: (0, _math.fitIntoRange)(arrowLeft, arrowMinLeft, arrowMaxRight)\r\n })\r\n },\r\n _getFormattedValue: function(value) {\r\n return _number.default.format(value, this.option(\"tooltipFormat\"))\r\n },\r\n _renderValue: function() {\r\n if (!this._tooltip) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n this._tooltip.$content().html(this._getFormattedValue(value));\r\n this._fitTooltip()\r\n },\r\n _updateTooltip: function() {\r\n var hoverMode = /^onhover$/i.test(this.option(\"tooltipShowMode\"));\r\n if (!hoverMode) {\r\n this._createTooltip()\r\n }\r\n this.$element().toggleClass(\"dx-slider-tooltip-on-hover\", hoverMode);\r\n this._renderTooltipPosition();\r\n this._renderValue();\r\n this._centeredTooltipPosition()\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n delete this._$tooltip;\r\n delete this._tooltip\r\n },\r\n _ensureTooltipIsCentered: function(value, previousValue) {\r\n if ((0, _type.isDefined)(value) && (0, _type.isDefined)(previousValue) && value.toString().length !== previousValue.toString().length) {\r\n this._centeredTooltipPosition()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"tooltipFormat\":\r\n this._renderValue();\r\n break;\r\n case \"value\":\r\n this._renderValue();\r\n var value = this._getFormattedValue(args.value);\r\n var previousValue = this._getFormattedValue(args.previousValue);\r\n this._ensureTooltipIsCentered(value, previousValue);\r\n this.setAria(\"valuenow\", args.value);\r\n break;\r\n case \"tooltipEnabled\":\r\n this._renderTooltip();\r\n break;\r\n case \"tooltipPosition\":\r\n this._renderTooltipPosition();\r\n this._centeredTooltipPosition();\r\n break;\r\n case \"tooltipShowMode\":\r\n this._updateTooltip();\r\n break;\r\n case \"tooltipFitIn\":\r\n this._fitTooltip();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n fitTooltipPosition: function() {\r\n this._fitTooltip()\r\n },\r\n updateTooltip: function() {\r\n if (!this._createTooltip()) {\r\n return\r\n }\r\n this._renderTooltipPosition();\r\n this._renderValue();\r\n this._centeredTooltipPosition()\r\n },\r\n repaint: function() {\r\n this._renderTooltipPosition();\r\n this._centeredTooltipPosition();\r\n if (this._tooltip) {\r\n this._tooltip._visibilityChanged(true)\r\n }\r\n }\r\n});\r\nvar _default = SliderHandle;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/slide_out_view.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _click = require(\"../events/click\");\r\nvar _translator = require(\"../animation/translator\");\r\nvar _element = require(\"../core/element\");\r\nvar _hide_callback = require(\"../mobile/hide_callback\");\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 _swipeable = _interopRequireDefault(require(\"../events/gesture/swipeable\"));\r\nvar _empty_template = require(\"../core/templates/empty_template\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _window = require(\"../core/utils/window\");\r\nvar _uiSlide_out_view = require(\"./slide_out_view/ui.slide_out_view.animation\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SLIDEOUTVIEW_CLASS = \"dx-slideoutview\";\r\nvar SLIDEOUTVIEW_WRAPPER_CLASS = \"dx-slideoutview-wrapper\";\r\nvar SLIDEOUTVIEW_MENU_CONTENT_CLASS = \"dx-slideoutview-menu-content\";\r\nvar SLIDEOUTVIEW_CONTENT_CLASS = \"dx-slideoutview-content\";\r\nvar SLIDEOUTVIEW_SHIELD_CLASS = \"dx-slideoutview-shield\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar SlideOutView = _ui.default.inherit({\r\n ctor: function(element, options) {\r\n this.callBase(element, options);\r\n this._logDeprecatedComponentWarning(\"20.1\", \"dxDrawer\")\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n menuPosition: \"normal\",\r\n menuVisible: false,\r\n swipeEnabled: true,\r\n menuTemplate: \"menu\",\r\n contentTemplate: \"content\",\r\n contentOffset: 45\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n android: true\r\n },\r\n options: {\r\n contentOffset: 54\r\n }\r\n }, {\r\n device: function(_device) {\r\n return \"generic\" === _device.platform && \"desktop\" !== _device.deviceType\r\n },\r\n options: {\r\n contentOffset: 56\r\n }\r\n }, {\r\n device: {\r\n win: true,\r\n phone: false\r\n },\r\n options: {\r\n contentOffset: 76\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(SLIDEOUTVIEW_CLASS);\r\n this._whenAnimationComplete = void 0;\r\n this._whenMenuRendered = void 0;\r\n this._initHideTopOverlayHandler()\r\n },\r\n _initHideTopOverlayHandler: function() {\r\n this._hideMenuHandler = this.hideMenu.bind(this)\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n menu: new _empty_template.EmptyTemplate,\r\n content: new _empty_template.EmptyTemplate\r\n });\r\n this.callBase()\r\n },\r\n _initMarkup: function() {\r\n var _this = this;\r\n this.callBase();\r\n this._renderMarkup();\r\n this._whenMenuRendered = new _deferred.Deferred;\r\n var menuTemplate = this._getTemplate(this.option(\"menuTemplate\"));\r\n menuTemplate && menuTemplate.render({\r\n container: this.menuContent(),\r\n onRendered: function() {\r\n _this._whenMenuRendered.resolve()\r\n }\r\n });\r\n var contentTemplateOption = this.option(\"contentTemplate\");\r\n var contentTemplate = this._getTemplate(contentTemplateOption);\r\n var transclude = this._templateManager.anonymousTemplateName === contentTemplateOption;\r\n contentTemplate && contentTemplate.render({\r\n container: this.content(),\r\n noModel: true,\r\n transclude: transclude\r\n });\r\n this._renderShield();\r\n this._toggleMenuPositionClass()\r\n },\r\n _render: function() {\r\n var _this2 = this;\r\n this.callBase();\r\n this._whenMenuRendered.always(function() {\r\n _this2._initSwipeHandlers();\r\n _this2._dimensionChanged()\r\n })\r\n },\r\n _renderMarkup: function() {\r\n var $wrapper = (0, _renderer.default)(\"
\").addClass(SLIDEOUTVIEW_WRAPPER_CLASS);\r\n this._$menu = (0, _renderer.default)(\"
\").addClass(SLIDEOUTVIEW_MENU_CONTENT_CLASS);\r\n this._$container = (0, _renderer.default)(\"
\").addClass(SLIDEOUTVIEW_CONTENT_CLASS);\r\n $wrapper.append(this._$menu);\r\n $wrapper.append(this._$container);\r\n this.$element().append($wrapper);\r\n _events_engine.default.on(this._$container, \"MSPointerDown\", _common.noop)\r\n },\r\n _renderShield: function() {\r\n this._$shield = this._$shield || (0, _renderer.default)(\"
\").addClass(SLIDEOUTVIEW_SHIELD_CLASS);\r\n this._$shield.appendTo(this.content());\r\n _events_engine.default.off(this._$shield, _click.name);\r\n _events_engine.default.on(this._$shield, _click.name, this.hideMenu.bind(this));\r\n this._toggleShieldVisibility(this.option(\"menuVisible\"))\r\n },\r\n _initSwipeHandlers: function() {\r\n this._createComponent((0, _renderer.default)(this.content()), _swipeable.default, {\r\n disabled: !this.option(\"swipeEnabled\"),\r\n elastic: false,\r\n itemSizeFunc: this._getMenuWidth.bind(this),\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this)\r\n })\r\n },\r\n _isRightMenuPosition: function() {\r\n var invertedPosition = \"inverted\" === this.option(\"menuPosition\");\r\n var rtl = this.option(\"rtlEnabled\");\r\n return rtl && !invertedPosition || !rtl && invertedPosition\r\n },\r\n _swipeStartHandler: function(e) {\r\n _uiSlide_out_view.animation.complete((0, _renderer.default)(this.content()));\r\n var event = e.event;\r\n var menuVisible = this.option(\"menuVisible\");\r\n var rtl = this._isRightMenuPosition();\r\n event.maxLeftOffset = +(rtl ? !menuVisible : menuVisible);\r\n event.maxRightOffset = +(rtl ? menuVisible : !menuVisible);\r\n this._toggleShieldVisibility(true)\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var event = e.event;\r\n var offset = this.option(\"menuVisible\") ? event.offset + 1 * this._getRTLSignCorrection() : event.offset;\r\n offset *= this._getRTLSignCorrection();\r\n this._renderPosition(offset, false)\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.event.targetOffset * this._getRTLSignCorrection() + this.option(\"menuVisible\");\r\n var menuVisible = 0 !== targetOffset;\r\n if (this.option(\"menuVisible\") === menuVisible) {\r\n this._renderPosition(this.option(\"menuVisible\"), true)\r\n } else {\r\n this.option(\"menuVisible\", menuVisible)\r\n }\r\n },\r\n _toggleMenuPositionClass: function() {\r\n var left = SLIDEOUTVIEW_CLASS + \"-left\";\r\n var right = SLIDEOUTVIEW_CLASS + \"-right\";\r\n var menuPosition = this._isRightMenuPosition() ? \"right\" : \"left\";\r\n this._$menu.removeClass(left + \" \" + right);\r\n this._$menu.addClass(SLIDEOUTVIEW_CLASS + \"-\" + menuPosition)\r\n },\r\n _renderPosition: function(offset, animate) {\r\n if (!(0, _window.hasWindow)()) {\r\n return\r\n }\r\n var pos = this._calculatePixelOffset(offset) * this._getRTLSignCorrection();\r\n this._toggleHideMenuCallback(offset);\r\n if (animate) {\r\n this._toggleShieldVisibility(true);\r\n _uiSlide_out_view.animation.moveTo((0, _renderer.default)(this.content()), pos, this._animationCompleteHandler.bind(this))\r\n } else {\r\n (0, _translator.move)((0, _renderer.default)(this.content()), {\r\n left: pos\r\n })\r\n }\r\n },\r\n _calculatePixelOffset: function(offset) {\r\n offset = offset || 0;\r\n return offset * this._getMenuWidth()\r\n },\r\n _getMenuWidth: function() {\r\n if (!this._menuWidth) {\r\n var maxMenuWidth = this.$element().width() - this.option(\"contentOffset\");\r\n var menuContent = (0, _renderer.default)(this.menuContent());\r\n menuContent.css(\"maxWidth\", maxMenuWidth < 0 ? 0 : maxMenuWidth);\r\n var currentMenuWidth = menuContent.width();\r\n this._menuWidth = Math.min(currentMenuWidth, maxMenuWidth)\r\n }\r\n return this._menuWidth\r\n },\r\n _animationCompleteHandler: function() {\r\n this._toggleShieldVisibility(this.option(\"menuVisible\"));\r\n if (this._whenAnimationComplete) {\r\n this._whenAnimationComplete.resolveWith(this)\r\n }\r\n },\r\n _toggleHideMenuCallback: function(subscribe) {\r\n if (subscribe) {\r\n _hide_callback.hideCallback.add(this._hideMenuHandler)\r\n } else {\r\n _hide_callback.hideCallback.remove(this._hideMenuHandler)\r\n }\r\n },\r\n _getRTLSignCorrection: function() {\r\n return this._isRightMenuPosition() ? -1 : 1\r\n },\r\n _dispose: function() {\r\n _uiSlide_out_view.animation.complete((0, _renderer.default)(this.content()));\r\n this._toggleHideMenuCallback(false);\r\n this.callBase()\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 delete this._menuWidth;\r\n this._renderPosition(this.option(\"menuVisible\"), false)\r\n },\r\n _toggleShieldVisibility: function(visible) {\r\n this._$shield.toggleClass(INVISIBLE_STATE_CLASS, !visible)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"contentOffset\":\r\n this._dimensionChanged();\r\n break;\r\n case \"menuVisible\":\r\n this._renderPosition(args.value, true);\r\n break;\r\n case \"menuPosition\":\r\n this._renderPosition(this.option(\"menuVisible\"), true);\r\n this._toggleMenuPositionClass();\r\n break;\r\n case \"swipeEnabled\":\r\n this._initSwipeHandlers();\r\n break;\r\n case \"contentTemplate\":\r\n case \"menuTemplate\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n menuContent: function() {\r\n return (0, _element.getPublicElement)(this._$menu)\r\n },\r\n content: function() {\r\n return (0, _element.getPublicElement)(this._$container)\r\n },\r\n showMenu: function() {\r\n return this.toggleMenuVisibility(true)\r\n },\r\n hideMenu: function() {\r\n return this.toggleMenuVisibility(false)\r\n },\r\n toggleMenuVisibility: function(showing) {\r\n showing = void 0 === showing ? !this.option(\"menuVisible\") : showing;\r\n this._whenAnimationComplete = new _deferred.Deferred;\r\n this.option(\"menuVisible\", showing);\r\n return this._whenAnimationComplete.promise()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxSlideOutView\", SlideOutView);\r\nvar _default = SlideOutView;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/selection/selection.strategy.deferred.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _type = require(\"../../core/utils/type\");\r\nvar _selection = _interopRequireDefault(require(\"./selection.strategy\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _query = _interopRequireDefault(require(\"../../data/query\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _selection.default.inherit({\r\n getSelectedItems: function() {\r\n return this._loadFilteredData(this.options.selectionFilter)\r\n },\r\n getSelectedItemKeys: function() {\r\n var d = new _deferred.Deferred;\r\n var that = this;\r\n var key = this.options.key();\r\n var select = (0, _type.isString)(key) ? [key] : key;\r\n this._loadFilteredData(this.options.selectionFilter, null, select).done(function(items) {\r\n var keys = items.map(function(item) {\r\n return that.options.keyOf(item)\r\n });\r\n d.resolve(keys)\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n selectedItemKeys: function(keys, preserve, isDeselect, isSelectAll) {\r\n if (isSelectAll) {\r\n var filter = this.options.filter();\r\n var needResetSelectionFilter = !filter || JSON.stringify(filter) === JSON.stringify(this.options.selectionFilter) && isDeselect;\r\n if (needResetSelectionFilter) {\r\n this._setOption(\"selectionFilter\", isDeselect ? [] : null)\r\n } else {\r\n this._addSelectionFilter(isDeselect, filter, isSelectAll)\r\n }\r\n } else {\r\n if (!preserve) {\r\n this._setOption(\"selectionFilter\", [])\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (isDeselect) {\r\n this.removeSelectedItem(keys[i])\r\n } else {\r\n this.addSelectedItem(keys[i])\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n setSelectedItems: function(keys) {\r\n this._setOption(\"selectionFilter\", null);\r\n for (var i = 0; i < keys.length; i++) {\r\n this.addSelectedItem(keys[i])\r\n }\r\n },\r\n isItemDataSelected: function(itemData) {\r\n return this.isItemKeySelected(itemData)\r\n },\r\n isItemKeySelected: function(itemData) {\r\n var selectionFilter = this.options.selectionFilter;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n return !!(0, _query.default)([itemData]).filter(selectionFilter).toArray().length\r\n },\r\n _getKeyExpr: function() {\r\n var keyField = this.options.key();\r\n if (Array.isArray(keyField) && 1 === keyField.length) {\r\n return keyField[0]\r\n }\r\n return keyField\r\n },\r\n _normalizeKey: function(key) {\r\n var keyExpr = this.options.key();\r\n if (Array.isArray(keyExpr) && 1 === keyExpr.length) {\r\n return key[keyExpr[0]]\r\n }\r\n return key\r\n },\r\n _getFilterByKey: function(key) {\r\n var keyField = this._getKeyExpr();\r\n var filter = [keyField, \"=\", this._normalizeKey(key)];\r\n if (Array.isArray(keyField)) {\r\n filter = [];\r\n for (var i = 0; i < keyField.length; i++) {\r\n filter.push([keyField[i], \"=\", key[keyField[i]]]);\r\n if (i !== keyField.length - 1) {\r\n filter.push(\"and\")\r\n }\r\n }\r\n }\r\n return filter\r\n },\r\n addSelectedItem: function(key) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(false, filter)\r\n },\r\n removeSelectedItem: function(key) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(true, filter)\r\n },\r\n validate: function() {\r\n var key = this.options.key;\r\n if (key && void 0 === key()) {\r\n throw _ui.default.Error(\"E1042\", \"Deferred selection\")\r\n }\r\n },\r\n _findSubFilter: function(selectionFilter, filter) {\r\n if (!selectionFilter) {\r\n return -1\r\n }\r\n var filterString = JSON.stringify(filter);\r\n for (var index = 0; index < selectionFilter.length; index++) {\r\n var subFilter = selectionFilter[index];\r\n if (subFilter && JSON.stringify(subFilter) === filterString) {\r\n return index\r\n }\r\n }\r\n return -1\r\n },\r\n _isLastSubFilter: function(selectionFilter, filter) {\r\n if (selectionFilter && filter) {\r\n return this._findSubFilter(selectionFilter, filter) === selectionFilter.length - 1 || 0 === this._findSubFilter([selectionFilter], filter)\r\n }\r\n return false\r\n },\r\n _addFilterOperator: function(selectionFilter, filterOperator) {\r\n if (selectionFilter.length > 1 && (0, _type.isString)(selectionFilter[1]) && selectionFilter[1] !== filterOperator) {\r\n selectionFilter = [selectionFilter]\r\n }\r\n if (selectionFilter.length) {\r\n selectionFilter.push(filterOperator)\r\n }\r\n return selectionFilter\r\n },\r\n _denormalizeFilter: function(filter) {\r\n if (filter && (0, _type.isString)(filter[0])) {\r\n filter = [filter]\r\n }\r\n return filter\r\n },\r\n _addSelectionFilter: function(isDeselect, filter, isSelectAll) {\r\n var that = this;\r\n var currentFilter = isDeselect ? [\"!\", filter] : filter;\r\n var currentOperation = isDeselect ? \"and\" : \"or\";\r\n var needAddFilter = true;\r\n var selectionFilter = that.options.selectionFilter || [];\r\n selectionFilter = that._denormalizeFilter(selectionFilter);\r\n if (selectionFilter && selectionFilter.length) {\r\n that._removeSameFilter(selectionFilter, filter, isDeselect, isSelectAll);\r\n var filterIndex = that._removeSameFilter(selectionFilter, filter, !isDeselect);\r\n var isKeyOperatorsAfterRemoved = this._isKeyFilter(filter) && this._hasKeyFiltersOnlyStartingFromIndex(selectionFilter, filterIndex);\r\n needAddFilter = filter.length && !isKeyOperatorsAfterRemoved;\r\n if (needAddFilter) {\r\n selectionFilter = that._addFilterOperator(selectionFilter, currentOperation)\r\n }\r\n }\r\n if (needAddFilter) {\r\n selectionFilter.push(currentFilter)\r\n }\r\n selectionFilter = that._normalizeFilter(selectionFilter);\r\n that._setOption(\"selectionFilter\", !isDeselect && !selectionFilter.length ? null : selectionFilter)\r\n },\r\n _normalizeFilter: function(filter) {\r\n if (filter && 1 === filter.length) {\r\n filter = filter[0]\r\n }\r\n return filter\r\n },\r\n _removeFilterByIndex: function(filter, filterIndex, isSelectAll) {\r\n var operation = filter[1];\r\n if (filterIndex > 0) {\r\n filter.splice(filterIndex - 1, 2)\r\n } else {\r\n filter.splice(filterIndex, 2)\r\n }\r\n if (isSelectAll && \"and\" === operation) {\r\n filter.splice(0, filter.length)\r\n }\r\n },\r\n _isSimpleKeyFilter: function(filter, key) {\r\n return 3 === filter.length && filter[0] === key && \"=\" === filter[1]\r\n },\r\n _isKeyFilter: function(filter) {\r\n if (2 === filter.length && \"!\" === filter[0]) {\r\n return this._isKeyFilter(filter[1])\r\n }\r\n var keyField = this._getKeyExpr();\r\n if (Array.isArray(keyField)) {\r\n if (filter.length !== 2 * keyField.length - 1) {\r\n return false\r\n }\r\n for (var i = 0; i < keyField.length; i++) {\r\n if (i > 0 && \"and\" !== filter[2 * i - 1]) {\r\n return false\r\n }\r\n if (!this._isSimpleKeyFilter(filter[2 * i], keyField[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return this._isSimpleKeyFilter(filter, keyField)\r\n },\r\n _hasKeyFiltersOnlyStartingFromIndex: function(selectionFilter, filterIndex) {\r\n if (filterIndex >= 0) {\r\n for (var i = filterIndex; i < selectionFilter.length; i++) {\r\n if (\"string\" !== typeof selectionFilter[i] && !this._isKeyFilter(selectionFilter[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n },\r\n _removeSameFilter: function(selectionFilter, filter, inverted, isSelectAll) {\r\n filter = inverted ? [\"!\", filter] : filter;\r\n if (JSON.stringify(filter) === JSON.stringify(selectionFilter)) {\r\n selectionFilter.splice(0, selectionFilter.length);\r\n return 0\r\n }\r\n var filterIndex = this._findSubFilter(selectionFilter, filter);\r\n if (filterIndex >= 0) {\r\n this._removeFilterByIndex(selectionFilter, filterIndex, isSelectAll);\r\n return filterIndex\r\n } else {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i]) && selectionFilter[i].length > 2) {\r\n var _filterIndex = this._removeSameFilter(selectionFilter[i], filter, false, isSelectAll);\r\n if (_filterIndex >= 0) {\r\n if (!selectionFilter[i].length) {\r\n this._removeFilterByIndex(selectionFilter, i, isSelectAll)\r\n } else {\r\n if (1 === selectionFilter[i].length) {\r\n selectionFilter[i] = selectionFilter[i][0]\r\n }\r\n }\r\n return _filterIndex\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n },\r\n getSelectAllState: function() {\r\n var filter = this.options.filter();\r\n var selectionFilter = this.options.selectionFilter;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (!filter || !filter.length) {\r\n return\r\n }\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if (this._isLastSubFilter(selectionFilter, filter)) {\r\n return true\r\n }\r\n if (this._isLastSubFilter(selectionFilter, [\"!\", filter])) {\r\n return false\r\n }\r\n return\r\n }\r\n});\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/selection/selection.strategy.standard.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _type = require(\"../../core/utils/type\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _array_compare = require(\"../../core/utils/array_compare\");\r\nvar _query = _interopRequireDefault(require(\"../../data/query\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _selection_filter = require(\"../../core/utils/selection_filter\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _selection = _interopRequireDefault(require(\"./selection.strategy\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _selection.default.inherit({\r\n ctor: function(options) {\r\n this.callBase(options);\r\n this._initSelectedItemKeyHash()\r\n },\r\n _initSelectedItemKeyHash: function() {\r\n this._setOption(\"keyHashIndices\", this.options.equalByReference ? null : {})\r\n },\r\n getSelectedItemKeys: function() {\r\n return this.options.selectedItemKeys.slice(0)\r\n },\r\n getSelectedItems: function() {\r\n return this.options.selectedItems.slice(0)\r\n },\r\n _preserveSelectionUpdate: function(items, isDeselect) {\r\n var keyOf = this.options.keyOf;\r\n var keyIndicesToRemoveMap;\r\n var keyIndex;\r\n var i;\r\n if (!keyOf) {\r\n return\r\n }\r\n var isBatchDeselect = isDeselect && items.length > 1 && !this.options.equalByReference;\r\n if (isBatchDeselect) {\r\n keyIndicesToRemoveMap = {}\r\n }\r\n for (i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n if (isDeselect) {\r\n keyIndex = this.removeSelectedItem(key, keyIndicesToRemoveMap);\r\n if (keyIndicesToRemoveMap && keyIndex >= 0) {\r\n keyIndicesToRemoveMap[keyIndex] = true\r\n }\r\n } else {\r\n this.addSelectedItem(key, item)\r\n }\r\n }\r\n if (isBatchDeselect) {\r\n this._batchRemoveSelectedItems(keyIndicesToRemoveMap)\r\n }\r\n },\r\n _batchRemoveSelectedItems: function(keyIndicesToRemoveMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys.slice(0);\r\n var selectedItems = this.options.selectedItems.slice(0);\r\n this.options.selectedItemKeys.length = 0;\r\n this.options.selectedItems.length = 0;\r\n for (var i = 0; i < selectedItemKeys.length; i++) {\r\n if (!keyIndicesToRemoveMap[i]) {\r\n this.options.selectedItemKeys.push(selectedItemKeys[i]);\r\n this.options.selectedItems.push(selectedItems[i])\r\n }\r\n }\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n },\r\n _loadSelectedItemsCore: function(keys, isDeselect, isSelectAll) {\r\n var deferred = new _deferred.Deferred;\r\n var key = this.options.key();\r\n if (!keys.length && !isSelectAll) {\r\n deferred.resolve([]);\r\n return deferred\r\n }\r\n var filter = this.options.filter();\r\n if (isSelectAll && isDeselect && !filter) {\r\n deferred.resolve(this.getSelectedItems());\r\n return deferred\r\n }\r\n var selectionFilterCreator = new _selection_filter.SelectionFilterCreator(keys, isSelectAll);\r\n var combinedFilter = selectionFilterCreator.getCombinedFilter(key, filter);\r\n var deselectedItems = [];\r\n if (isDeselect) {\r\n var selectedItems = this.options.selectedItems;\r\n deselectedItems = combinedFilter && keys.length !== selectedItems.length ? (0, _query.default)(selectedItems).filter(combinedFilter).toArray() : selectedItems.slice(0)\r\n }\r\n var filteredItems = deselectedItems.length ? deselectedItems : this.options.plainItems(true).filter(this.options.isSelectableItem).map(this.options.getItemData);\r\n var localFilter = selectionFilterCreator.getLocalFilter(this.options.keyOf, this.equalKeys.bind(this), this.options.equalByReference, key);\r\n filteredItems = filteredItems.filter(localFilter);\r\n if (deselectedItems.length || !isSelectAll && filteredItems.length === keys.length) {\r\n deferred.resolve(filteredItems)\r\n } else {\r\n deferred = this._loadFilteredData(combinedFilter, localFilter, null, isSelectAll)\r\n }\r\n return deferred\r\n },\r\n _replaceSelectionUpdate: function(items) {\r\n var internalKeys = [];\r\n var keyOf = this.options.keyOf;\r\n if (!keyOf) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n internalKeys.push(key)\r\n }\r\n this.setSelectedItems(internalKeys, items)\r\n },\r\n _warnOnIncorrectKeys: function(keys) {\r\n var allowNullValue = this.options.allowNullValue;\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if ((!allowNullValue || null !== key) && !this.isItemKeySelected(key)) {\r\n _ui.default.log(\"W1002\", key)\r\n }\r\n }\r\n },\r\n _isMultiSelectEnabled: function() {\r\n var mode = this.options.mode;\r\n return \"all\" === mode || \"multiple\" === mode\r\n },\r\n _requestInProgress: function() {\r\n var _this$_lastLoadDeferr;\r\n return \"pending\" === (null === (_this$_lastLoadDeferr = this._lastLoadDeferred) || void 0 === _this$_lastLoadDeferr ? void 0 : _this$_lastLoadDeferr.state())\r\n },\r\n _concatRequestsItems: function(keys, isDeselect, oldRequestItems, updatedKeys) {\r\n var selectedItems;\r\n var deselectedItems = isDeselect ? keys : [];\r\n if (updatedKeys) {\r\n selectedItems = updatedKeys\r\n } else {\r\n selectedItems = (0, _array.removeDuplicates)(keys, this.options.selectedItemKeys)\r\n }\r\n return {\r\n addedItems: oldRequestItems.added.concat(selectedItems),\r\n removedItems: oldRequestItems.removed.concat(deselectedItems),\r\n keys: keys\r\n }\r\n },\r\n _collectLastRequestData: function(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var isDeselectAll = isDeselect && isSelectAll;\r\n var oldRequestItems = {\r\n added: [],\r\n removed: []\r\n };\r\n var multiSelectEnabled = this._isMultiSelectEnabled();\r\n var lastRequestData = multiSelectEnabled ? this._lastRequestData : {};\r\n if (multiSelectEnabled) {\r\n if (this._shouldMergeWithLastRequest) {\r\n if (isDeselectAll) {\r\n this._lastLoadDeferred.reject();\r\n lastRequestData = {}\r\n } else {\r\n if (!(0, _array_compare.isKeysEqual)(keys, this.options.selectedItemKeys)) {\r\n oldRequestItems.added = lastRequestData.addedItems;\r\n oldRequestItems.removed = lastRequestData.removedItems;\r\n if (!isDeselect) {\r\n this._lastLoadDeferred.reject()\r\n }\r\n }\r\n }\r\n }\r\n lastRequestData = this._concatRequestsItems(keys, isDeselect, oldRequestItems, this._shouldMergeWithLastRequest ? void 0 : updatedKeys)\r\n }\r\n return lastRequestData\r\n },\r\n _updateKeysByLastRequestData: function(keys, isDeselect, isSelectAll) {\r\n var currentKeys = keys;\r\n if (this._isMultiSelectEnabled() && this._shouldMergeWithLastRequest && !isDeselect && !isSelectAll) {\r\n var _this$_lastRequestDat, _this$_lastRequestDat2;\r\n currentKeys = (0, _array.removeDuplicates)(keys.concat(null === (_this$_lastRequestDat = this._lastRequestData) || void 0 === _this$_lastRequestDat ? void 0 : _this$_lastRequestDat.addedItems), null === (_this$_lastRequestDat2 = this._lastRequestData) || void 0 === _this$_lastRequestDat2 ? void 0 : _this$_lastRequestDat2.removedItems);\r\n currentKeys = (0, _array.uniqueValues)(currentKeys)\r\n }\r\n return currentKeys\r\n },\r\n _loadSelectedItems: function(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var that = this;\r\n var deferred = new _deferred.Deferred;\r\n this._shouldMergeWithLastRequest = this._requestInProgress();\r\n this._lastRequestData = this._collectLastRequestData(keys, isDeselect, isSelectAll, updatedKeys);\r\n (0, _deferred.when)(that._lastLoadDeferred).always(function() {\r\n var currentKeys = that._updateKeysByLastRequestData(keys, isDeselect, isSelectAll);\r\n that._shouldMergeWithLastRequest = false;\r\n that._loadSelectedItemsCore(currentKeys, isDeselect, isSelectAll).done(deferred.resolve).fail(deferred.reject)\r\n });\r\n that._lastLoadDeferred = deferred;\r\n return deferred\r\n },\r\n selectedItemKeys: function(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var that = this;\r\n var deferred = that._loadSelectedItems(keys, isDeselect, isSelectAll, updatedKeys);\r\n deferred.done(function(items) {\r\n if (preserve) {\r\n that._preserveSelectionUpdate(items, isDeselect)\r\n } else {\r\n that._replaceSelectionUpdate(items)\r\n }\r\n that.onSelectionChanged()\r\n });\r\n return deferred\r\n },\r\n addSelectedItem: function(key, itemData) {\r\n if ((0, _type.isDefined)(itemData) && !this.options.ignoreDisabledItems && itemData.disabled) {\r\n if (this.options.disabledItemKeys.indexOf(key) === -1) {\r\n this.options.disabledItemKeys.push(key)\r\n }\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n if (this._indexOfSelectedItemKey(keyHash) === -1) {\r\n if (!(0, _type.isObject)(keyHash) && this.options.keyHashIndices) {\r\n this.options.keyHashIndices[keyHash] = [this.options.selectedItemKeys.length]\r\n }\r\n this.options.selectedItemKeys.push(key);\r\n this.options.addedItemKeys.push(key);\r\n this.options.addedItems.push(itemData);\r\n this.options.selectedItems.push(itemData)\r\n }\r\n },\r\n _getSelectedIndexByKey: function(key, ignoreIndicesMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys;\r\n for (var index = 0; index < selectedItemKeys.length; index++) {\r\n if ((!ignoreIndicesMap || !ignoreIndicesMap[index]) && this.equalKeys(selectedItemKeys[index], key)) {\r\n return index\r\n }\r\n }\r\n return -1\r\n },\r\n _getSelectedIndexByHash: function(key, ignoreIndicesMap) {\r\n var indices = this.options.keyHashIndices[key];\r\n if (indices && indices.length > 1 && ignoreIndicesMap) {\r\n indices = indices.filter(function(index) {\r\n return !ignoreIndicesMap[index]\r\n })\r\n }\r\n return indices && indices[0] >= 0 ? indices[0] : -1\r\n },\r\n _indexOfSelectedItemKey: function(key, ignoreIndicesMap) {\r\n var selectedIndex;\r\n if (this.options.equalByReference) {\r\n selectedIndex = this.options.selectedItemKeys.indexOf(key)\r\n } else {\r\n if ((0, _type.isObject)(key)) {\r\n selectedIndex = this._getSelectedIndexByKey(key, ignoreIndicesMap)\r\n } else {\r\n selectedIndex = this._getSelectedIndexByHash(key, ignoreIndicesMap)\r\n }\r\n }\r\n return selectedIndex\r\n },\r\n _shiftSelectedKeyIndices: function(keyIndex) {\r\n for (var currentKeyIndex = keyIndex; currentKeyIndex < this.options.selectedItemKeys.length; currentKeyIndex++) {\r\n var currentKey = this.options.selectedItemKeys[currentKeyIndex];\r\n var currentKeyHash = (0, _common.getKeyHash)(currentKey);\r\n var currentKeyIndices = this.options.keyHashIndices[currentKeyHash];\r\n if (!currentKeyIndices) {\r\n continue\r\n }\r\n for (var i = 0; i < currentKeyIndices.length; i++) {\r\n if (currentKeyIndices[i] > keyIndex) {\r\n currentKeyIndices[i]--\r\n }\r\n }\r\n }\r\n },\r\n removeSelectedItem: function(key, keyIndicesToRemoveMap) {\r\n var keyHash = this._getKeyHash(key);\r\n var isBatchDeselect = !!keyIndicesToRemoveMap;\r\n var keyIndex = this._indexOfSelectedItemKey(keyHash, keyIndicesToRemoveMap);\r\n if (keyIndex < 0) {\r\n return keyIndex\r\n }\r\n this.options.removedItemKeys.push(key);\r\n this.options.removedItems.push(this.options.selectedItems[keyIndex]);\r\n if (isBatchDeselect) {\r\n return keyIndex\r\n }\r\n this.options.selectedItemKeys.splice(keyIndex, 1);\r\n this.options.selectedItems.splice(keyIndex, 1);\r\n if ((0, _type.isObject)(keyHash) || !this.options.keyHashIndices) {\r\n return keyIndex\r\n }\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n if (!keyIndices) {\r\n return keyIndex\r\n }\r\n keyIndices.shift();\r\n if (!keyIndices.length) {\r\n delete this.options.keyHashIndices[keyHash]\r\n }\r\n this._shiftSelectedKeyIndices(keyIndex);\r\n return keyIndex\r\n },\r\n _updateAddedItemKeys: function(keys, items) {\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!this.isItemKeySelected(keys[i])) {\r\n this.options.addedItemKeys.push(keys[i]);\r\n this.options.addedItems.push(items[i])\r\n }\r\n }\r\n },\r\n _updateRemovedItemKeys: function(keys, oldSelectedKeys, oldSelectedItems) {\r\n for (var i = 0; i < oldSelectedKeys.length; i++) {\r\n if (!this.isItemKeySelected(oldSelectedKeys[i])) {\r\n this.options.removedItemKeys.push(oldSelectedKeys[i]);\r\n this.options.removedItems.push(oldSelectedItems[i])\r\n }\r\n }\r\n },\r\n _isItemSelectionInProgress: function(key, checkPending) {\r\n var shouldCheckPending = checkPending && this._lastRequestData && this._requestInProgress();\r\n if (shouldCheckPending) {\r\n var _this$_lastRequestDat3;\r\n var addedItems = null !== (_this$_lastRequestDat3 = this._lastRequestData.addedItems) && void 0 !== _this$_lastRequestDat3 ? _this$_lastRequestDat3 : [];\r\n return addedItems.indexOf(key) > -1\r\n } else {\r\n return false\r\n }\r\n },\r\n _getKeyHash: function(key) {\r\n return this.options.equalByReference ? key : (0, _common.getKeyHash)(key)\r\n },\r\n setSelectedItems: function(keys, items) {\r\n this._updateAddedItemKeys(keys, items);\r\n var oldSelectedKeys = this.options.selectedItemKeys;\r\n var oldSelectedItems = this.options.selectedItems;\r\n if (!this.options.equalByReference) {\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(keys)\r\n }\r\n this._setOption(\"selectedItemKeys\", keys);\r\n this._setOption(\"selectedItems\", items);\r\n this._updateRemovedItemKeys(keys, oldSelectedKeys, oldSelectedItems)\r\n },\r\n isItemDataSelected: function(itemData) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var key = this.options.keyOf(itemData);\r\n return this.isItemKeySelected(key, options)\r\n },\r\n isItemKeySelected: function(key) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var result = this._isItemSelectionInProgress(key, options.checkPending);\r\n if (!result) {\r\n var keyHash = this._getKeyHash(key);\r\n var index = this._indexOfSelectedItemKey(keyHash);\r\n result = index !== -1\r\n }\r\n return result\r\n },\r\n getSelectAllState: function(visibleOnly) {\r\n if (visibleOnly) {\r\n return this._getVisibleSelectAllState()\r\n } else {\r\n return this._getFullSelectAllState()\r\n }\r\n }\r\n});\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scroll_view/ui.scroll_view.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _element = require(\"../../core/element\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _uiScroll_viewNative = _interopRequireDefault(require(\"./ui.scroll_view.native.pull_down\"));\r\nvar _uiScroll_viewNative2 = _interopRequireDefault(require(\"./ui.scroll_view.native.swipe_down\"));\r\nvar _uiScroll_view = _interopRequireDefault(require(\"./ui.scroll_view.simulated\"));\r\nvar _ui = _interopRequireDefault(require(\"./ui.scrollable\"));\r\nvar _load_indicator = _interopRequireDefault(require(\"../load_indicator\"));\r\nvar _themes = require(\"./../themes\");\r\nvar _load_panel = _interopRequireDefault(require(\"../load_panel\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SCROLLVIEW_CLASS = \"dx-scrollview\";\r\nvar SCROLLVIEW_CONTENT_CLASS = SCROLLVIEW_CLASS + \"-content\";\r\nvar SCROLLVIEW_TOP_POCKET_CLASS = SCROLLVIEW_CLASS + \"-top-pocket\";\r\nvar SCROLLVIEW_BOTTOM_POCKET_CLASS = SCROLLVIEW_CLASS + \"-bottom-pocket\";\r\nvar SCROLLVIEW_PULLDOWN_CLASS = SCROLLVIEW_CLASS + \"-pull-down\";\r\nvar SCROLLVIEW_REACHBOTTOM_CLASS = SCROLLVIEW_CLASS + \"-scrollbottom\";\r\nvar SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-indicator\";\r\nvar SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-text\";\r\nvar SCROLLVIEW_LOADPANEL = SCROLLVIEW_CLASS + \"-loadpanel\";\r\nvar refreshStrategies = {\r\n pullDown: _uiScroll_viewNative.default,\r\n swipeDown: _uiScroll_viewNative2.default,\r\n simulated: _uiScroll_view.default\r\n};\r\nvar isServerSide = !(0, _window.hasWindow)();\r\nvar scrollViewServerConfig = {\r\n finishLoading: _common.noop,\r\n release: _common.noop,\r\n refresh: _common.noop,\r\n _optionChanged: function(args) {\r\n if (\"onUpdated\" !== args.name) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n};\r\nvar ScrollView = _ui.default.inherit(isServerSide ? scrollViewServerConfig : {\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n pullingDownText: _message.default.format(\"dxScrollView-pullingDownText\"),\r\n pulledDownText: _message.default.format(\"dxScrollView-pulledDownText\"),\r\n refreshingText: _message.default.format(\"dxScrollView-refreshingText\"),\r\n reachBottomText: _message.default.format(\"dxScrollView-reachBottomText\"),\r\n onPullDown: null,\r\n onReachBottom: null,\r\n refreshStrategy: \"pullDown\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var realDevice = _devices.default.real();\r\n return \"android\" === realDevice.platform\r\n },\r\n options: {\r\n refreshStrategy: \"swipeDown\"\r\n }\r\n }, {\r\n device: function() {\r\n return (0, _themes.isMaterial)()\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n reachBottomText: \"\"\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._loadingIndicatorEnabled = true\r\n },\r\n _initScrollableMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(SCROLLVIEW_CLASS);\r\n this._initContent();\r\n this._initTopPocket();\r\n this._initBottomPocket();\r\n this._initLoadPanel()\r\n },\r\n _initContent: function() {\r\n var $content = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_CONTENT_CLASS);\r\n this._$content.wrapInner($content)\r\n },\r\n _initTopPocket: function() {\r\n var $topPocket = this._$topPocket = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_TOP_POCKET_CLASS);\r\n var $pullDown = this._$pullDown = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_PULLDOWN_CLASS);\r\n $topPocket.append($pullDown);\r\n this._$content.prepend($topPocket)\r\n },\r\n _initBottomPocket: function() {\r\n var $bottomPocket = this._$bottomPocket = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_BOTTOM_POCKET_CLASS);\r\n var $reachBottom = this._$reachBottom = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_REACHBOTTOM_CLASS);\r\n var $loadContainer = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS);\r\n var $loadIndicator = new _load_indicator.default((0, _renderer.default)(\"
\")).$element();\r\n var $text = this._$reachBottomText = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_REACHBOTTOM_TEXT_CLASS);\r\n this._updateReachBottomText();\r\n $reachBottom.append($loadContainer.append($loadIndicator)).append($text);\r\n $bottomPocket.append($reachBottom);\r\n this._$content.append($bottomPocket)\r\n },\r\n _initLoadPanel: function() {\r\n var $loadPanelElement = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_LOADPANEL).appendTo(this.$element());\r\n var loadPanelOptions = {\r\n shading: false,\r\n delay: 400,\r\n message: this.option(\"refreshingText\"),\r\n position: {\r\n of: this.$element()\r\n }\r\n };\r\n this._loadPanel = this._createComponent($loadPanelElement, _load_panel.default, loadPanelOptions)\r\n },\r\n _updateReachBottomText: function() {\r\n this._$reachBottomText.text(this.option(\"reachBottomText\"))\r\n },\r\n _createStrategy: function() {\r\n var strategyName = this.option(\"useNative\") ? this.option(\"refreshStrategy\") : \"simulated\";\r\n var strategyClass = refreshStrategies[strategyName];\r\n this._strategy = new strategyClass(this);\r\n this._strategy.pullDownCallbacks.add(this._pullDownHandler.bind(this));\r\n this._strategy.releaseCallbacks.add(this._releaseHandler.bind(this));\r\n this._strategy.reachBottomCallbacks.add(this._reachBottomHandler.bind(this))\r\n },\r\n _createActions: function() {\r\n this.callBase();\r\n this._pullDownAction = this._createActionByOption(\"onPullDown\");\r\n this._reachBottomAction = this._createActionByOption(\"onReachBottom\");\r\n this._tryRefreshPocketState()\r\n },\r\n _tryRefreshPocketState: function() {\r\n this._pullDownEnable(this.hasActionSubscription(\"onPullDown\"));\r\n this._reachBottomEnable(this.hasActionSubscription(\"onReachBottom\"))\r\n },\r\n on: function(eventName) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (\"pullDown\" === eventName || \"reachBottom\" === eventName) {\r\n this._tryRefreshPocketState()\r\n }\r\n return result\r\n },\r\n _pullDownEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._pullDownEnabled\r\n }\r\n if (this._$pullDown && this._strategy) {\r\n this._$pullDown.toggle(enabled);\r\n this._strategy.pullDownEnable(enabled);\r\n this._pullDownEnabled = enabled\r\n }\r\n },\r\n _reachBottomEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._reachBottomEnabled\r\n }\r\n if (this._$reachBottom && this._strategy) {\r\n this._$reachBottom.toggle(enabled);\r\n this._strategy.reachBottomEnable(enabled);\r\n this._reachBottomEnabled = enabled\r\n }\r\n },\r\n _pullDownHandler: function() {\r\n this._loadingIndicator(false);\r\n this._pullDownLoading()\r\n },\r\n _loadingIndicator: function(value) {\r\n if (arguments.length < 1) {\r\n return this._loadingIndicatorEnabled\r\n }\r\n this._loadingIndicatorEnabled = value\r\n },\r\n _pullDownLoading: function() {\r\n this.startLoading();\r\n this._pullDownAction()\r\n },\r\n _reachBottomHandler: function() {\r\n this._loadingIndicator(false);\r\n this._reachBottomLoading()\r\n },\r\n _reachBottomLoading: function() {\r\n this.startLoading();\r\n this._reachBottomAction()\r\n },\r\n _releaseHandler: function() {\r\n this.finishLoading();\r\n this._loadingIndicator(true)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onPullDown\":\r\n case \"onReachBottom\":\r\n this._createActions();\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"refreshStrategy\":\r\n this._invalidate();\r\n break;\r\n case \"reachBottomText\":\r\n this._updateReachBottomText();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isEmpty: function() {\r\n return !(0, _renderer.default)(this.content()).children().length\r\n },\r\n content: function() {\r\n return (0, _element.getPublicElement)(this._$content.children().eq(1))\r\n },\r\n release: function(preventReachBottom) {\r\n if (void 0 !== preventReachBottom) {\r\n this.toggleLoading(!preventReachBottom)\r\n }\r\n return this._strategy.release()\r\n },\r\n toggleLoading: function(showOrHide) {\r\n this._reachBottomEnable(showOrHide)\r\n },\r\n isFull: function() {\r\n return (0, _renderer.default)(this.content()).height() > this._$container.height()\r\n },\r\n refresh: function() {\r\n if (!this.hasActionSubscription(\"onPullDown\")) {\r\n return\r\n }\r\n this._strategy.pendingRelease();\r\n this._pullDownLoading()\r\n },\r\n startLoading: function() {\r\n if (this._loadingIndicator() && this.$element().is(\":visible\")) {\r\n this._loadPanel.show()\r\n }\r\n this._lock()\r\n },\r\n finishLoading: function() {\r\n this._loadPanel.hide();\r\n this._unlock()\r\n },\r\n _dispose: function() {\r\n this._strategy.dispose();\r\n this.callBase();\r\n if (this._loadPanel) {\r\n this._loadPanel.$element().remove()\r\n }\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxScrollView\", ScrollView);\r\nvar _default = ScrollView;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scroll_view/ui.scroll_view.native.pull_down.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _uiScrollable = _interopRequireDefault(require(\"./ui.scrollable.native\"));\r\nvar _load_indicator = _interopRequireDefault(require(\"../load_indicator\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\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 SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar PULLDOWN_RELEASE_TIME = 400;\r\nvar PullDownNativeScrollViewStrategy = _uiScrollable.default.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$bottomPocket = scrollView._$bottomPocket;\r\n this._$refreshingText = scrollView._$refreshingText;\r\n this._$scrollViewContent = (0, _renderer.default)(scrollView.content());\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = (0, _callbacks.default)();\r\n this.releaseCallbacks = (0, _callbacks.default)();\r\n this.reachBottomCallbacks = (0, _callbacks.default)()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $image = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new _load_indicator.default((0, _renderer.default)(\"
\")).$element();\r\n var $text = this._$pullDownText = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = (0, _renderer.default)(\"
\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = (0, _renderer.default)(\"
\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = (0, _renderer.default)(\"
\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _pushBackFromBoundary: function() {\r\n if (!this._isLocked() && !this._component.isEmpty()) {\r\n this.callBase()\r\n }\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n (0, _iterator.each)(pullDownTextItems, function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n })\r\n },\r\n update: function() {\r\n this.callBase();\r\n this._setTopPocketOffset()\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.height();\r\n this._bottomPocketSize = this._$bottomPocket.height();\r\n if (_browser.default.msie) {\r\n this._scrollOffset = Math.round(100 * (this._$container.height() - this._$content.height())) / 100\r\n } else {\r\n this._scrollOffset = this._$container.height() - this._$content.height()\r\n }\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n _setTopPocketOffset: function() {\r\n this._$topPocket.css({\r\n top: -this._topPocketSize\r\n })\r\n },\r\n handleEnd: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_READY) {\r\n this._setPullDownOffset(this._topPocketSize);\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n this._pullDownRefreshTimeout = setTimeout(function() {\r\n this._pullDownRefreshing()\r\n }.bind(this), 400)\r\n }\r\n },\r\n _setPullDownOffset: function(offset) {\r\n (0, _translator.move)(this._$topPocket, {\r\n top: offset\r\n });\r\n (0, _translator.move)(this._$scrollViewContent, {\r\n top: offset\r\n })\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = (this._location || 0) - currentLocation;\r\n this._location = currentLocation;\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else {\r\n if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n }\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= this._topPocketSize\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && this._location - (this._scrollOffset + this._bottomPocketSize) <= .5\r\n },\r\n _reachBottom: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n pullDownEnable: function(enabled) {\r\n if (enabled) {\r\n this._updateDimensions();\r\n this._setTopPocketOffset()\r\n }\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new _deferred.Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n if (this._state === STATE_LOADING) {\r\n this._state = STATE_RELEASED\r\n }\r\n this._releaseTimeout = setTimeout(function() {\r\n this._setPullDownOffset(0);\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), PULLDOWN_RELEASE_TIME);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nvar _default = PullDownNativeScrollViewStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scroll_view/ui.scroll_view.native.swipe_down.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _uiScrollable = _interopRequireDefault(require(\"./ui.scrollable.native\"));\r\nvar _load_indicator = _interopRequireDefault(require(\"../load_indicator\"));\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 SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-refreshing\";\r\nvar PULLDOWN_ICON_CLASS = \"dx-icon-pulldown\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_TOUCHED = 4;\r\nvar STATE_PULLED = 5;\r\nvar SwipeDownNativeScrollViewStrategy = _uiScrollable.default.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$bottomPocket = scrollView._$bottomPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$scrollViewContent = scrollView.content();\r\n this._initCallbacks();\r\n this._location = 0\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = (0, _callbacks.default)();\r\n this.releaseCallbacks = (0, _callbacks.default)();\r\n this.reachBottomCallbacks = (0, _callbacks.default)()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $loadContainer = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new _load_indicator.default((0, _renderer.default)(\"
\")).$element();\r\n this._$icon = (0, _renderer.default)(\"
\").addClass(PULLDOWN_ICON_CLASS);\r\n this._$pullDown.empty().append(this._$icon).append($loadContainer.append($loadIndicator))\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._releasePullDown();\r\n this._updateDimensions()\r\n },\r\n _releasePullDown: function() {\r\n this._$pullDown.css({\r\n opacity: 0\r\n })\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.height();\r\n this._bottomPocketSize = this._$bottomPocket.height();\r\n this._scrollOffset = this._$container.height() - this._$content.height()\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n handleInit: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_RELEASED && 0 === this._location) {\r\n this._startClientY = (0, _index.eventData)(e.originalEvent).y;\r\n this._state = STATE_TOUCHED\r\n }\r\n },\r\n handleMove: function(e) {\r\n this.callBase(e);\r\n this._deltaY = (0, _index.eventData)(e.originalEvent).y - this._startClientY;\r\n if (this._state === STATE_TOUCHED) {\r\n if (this._pullDownEnabled && this._deltaY > 0) {\r\n this._state = STATE_PULLED\r\n } else {\r\n this._complete()\r\n }\r\n }\r\n if (this._state === STATE_PULLED) {\r\n e.preventDefault();\r\n this._movePullDown()\r\n }\r\n },\r\n _movePullDown: function() {\r\n var pullDownHeight = this._getPullDownHeight();\r\n var top = Math.min(3 * pullDownHeight, this._deltaY + this._getPullDownStartPosition());\r\n var angle = 180 * top / pullDownHeight / 3;\r\n this._$pullDown.css({\r\n opacity: 1\r\n }).toggleClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS, top < pullDownHeight);\r\n (0, _translator.move)(this._$pullDown, {\r\n top: top\r\n });\r\n this._$icon.css({\r\n transform: \"rotate(\" + angle + \"deg)\"\r\n })\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._state === STATE_PULLED && this._deltaY >= this._getPullDownHeight() - this._getPullDownStartPosition()\r\n },\r\n _getPullDownHeight: function() {\r\n return Math.round(.05 * this._$element.outerHeight())\r\n },\r\n _getPullDownStartPosition: function() {\r\n return -Math.round(1.5 * this._$pullDown.outerHeight())\r\n },\r\n handleEnd: function() {\r\n if (this._isPullDown()) {\r\n this._pullDownRefreshing()\r\n }\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_TOUCHED || this._state === STATE_PULLED) {\r\n this._releaseState()\r\n }\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = this._location - currentLocation;\r\n this._location = currentLocation;\r\n if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && this._location <= this._scrollOffset + this._bottomPocketSize\r\n },\r\n _reachBottom: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n this._state = STATE_REFRESHING;\r\n this._pullDownRefreshHandler()\r\n },\r\n _pullDownRefreshHandler: function() {\r\n this._refreshPullDown();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _refreshPullDown: function() {\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n (0, _translator.move)(this._$pullDown, {\r\n top: this._getPullDownHeight()\r\n })\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._$topPocket.toggle(enabled);\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new _deferred.Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n this._releaseTimeout = setTimeout(function() {\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), 800);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nvar _default = SwipeDownNativeScrollViewStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scroll_view/ui.scroll_view.simulated.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiScrollable = require(\"./ui.scrollable.simulated\");\r\nvar _load_indicator = _interopRequireDefault(require(\"../load_indicator\"));\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 SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar ScrollViewScroller = _uiScrollable.Scroller.inherit({\r\n ctor: function() {\r\n this._topPocketSize = 0;\r\n this.callBase.apply(this, arguments);\r\n this._initCallbacks();\r\n this._releaseState()\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n (0, _iterator.each)(pullDownTextItems, function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n })\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = (0, _callbacks.default)();\r\n this.releaseCallbacks = (0, _callbacks.default)();\r\n this.reachBottomCallbacks = (0, _callbacks.default)()\r\n },\r\n _updateBounds: function() {\r\n var considerPockets = \"horizontal\" !== this._direction;\r\n this._topPocketSize = considerPockets ? Math.round(this._$topPocket[this._dimension]()) : 0;\r\n this._bottomPocketSize = considerPockets ? Math.round(this._$bottomPocket[this._dimension]()) : 0;\r\n this.callBase();\r\n this._bottomBound = this._minOffset + this._bottomPocketSize\r\n },\r\n _updateScrollbar: function() {\r\n this._scrollbar.option({\r\n containerSize: this._containerSize(),\r\n contentSize: this._contentSize() - this._topPocketSize - this._bottomPocketSize,\r\n scaleRatio: this._getScaleRatio()\r\n })\r\n },\r\n _moveContent: function() {\r\n this.callBase();\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else {\r\n if (this._isReachBottom()) {\r\n this._reachBottomReady()\r\n } else {\r\n if (this._state !== STATE_RELEASED) {\r\n this._stateReleased()\r\n }\r\n }\r\n }\r\n },\r\n _moveScrollbar: function() {\r\n this._scrollbar.moveTo(this._topPocketSize + this._location)\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= 0\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && this._location - this._bottomBound <= .5\r\n },\r\n _scrollComplete: function() {\r\n if (this._inBounds() && this._state === STATE_READY) {\r\n this._pullDownRefreshing()\r\n } else {\r\n if (this._inBounds() && this._state === STATE_LOADING) {\r\n this._reachBottomLoading()\r\n } else {\r\n this.callBase()\r\n }\r\n }\r\n },\r\n _reachBottomReady: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset: function() {\r\n return -this._topPocketSize\r\n },\r\n _getMinOffset: function() {\r\n return math.min(this.callBase(), -this._topPocketSize)\r\n },\r\n _reachBottomLoading: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._maxOffset = 0;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._releaseState();\r\n this._updateBounds();\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this.releaseCallbacks.fire()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _releaseHandler: function() {\r\n if (this._state === STATE_RELEASED) {\r\n this._moveToBounds()\r\n }\r\n this._update();\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this._releaseTask = (0, _common.executeAsync)(this._release.bind(this));\r\n return this._releaseTask.promise\r\n },\r\n _release: function() {\r\n this._stateReleased();\r\n this._scrollComplete()\r\n },\r\n _reachBottomEnablingHandler: function(enabled) {\r\n if (this._reachBottomEnabled === enabled) {\r\n return\r\n }\r\n this._reachBottomEnabled = enabled;\r\n this._updateBounds()\r\n },\r\n _pullDownEnablingHandler: function(enabled) {\r\n if (this._pullDownEnabled === enabled) {\r\n return\r\n }\r\n this._pullDownEnabled = enabled;\r\n this._considerTopPocketChange();\r\n this._updateHandler()\r\n },\r\n _considerTopPocketChange: function() {\r\n this._location -= this._$topPocket.height() || -this._topPocketSize;\r\n this._maxOffset = 0;\r\n this._move()\r\n },\r\n _pendingReleaseHandler: function() {\r\n this._state = STATE_READY\r\n },\r\n dispose: function() {\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this.callBase()\r\n }\r\n});\r\nvar SimulatedScrollViewStrategy = _uiScrollable.SimulatedStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$bottomPocket = scrollView._$bottomPocket;\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = (0, _callbacks.default)();\r\n this.releaseCallbacks = (0, _callbacks.default)();\r\n this.reachBottomCallbacks = (0, _callbacks.default)()\r\n },\r\n render: function() {\r\n this._renderPullDown();\r\n this.callBase()\r\n },\r\n _renderPullDown: function() {\r\n var $image = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new _load_indicator.default((0, _renderer.default)(\"
\")).$element();\r\n var $text = this._$pullDownText = (0, _renderer.default)(\"
\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = (0, _renderer.default)(\"
\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = (0, _renderer.default)(\"
\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = (0, _renderer.default)(\"
\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._eventHandler(\"pullDownEnabling\", enabled)\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._eventHandler(\"reachBottomEnabling\", enabled)\r\n },\r\n _createScroller: function(direction) {\r\n var that = this;\r\n var scroller = that._scrollers[direction] = new ScrollViewScroller(that._scrollerOptions(direction));\r\n scroller.pullDownCallbacks.add(function() {\r\n that.pullDownCallbacks.fire()\r\n });\r\n scroller.releaseCallbacks.add(function() {\r\n that.releaseCallbacks.fire()\r\n });\r\n scroller.reachBottomCallbacks.add(function() {\r\n that.reachBottomCallbacks.fire()\r\n })\r\n },\r\n _scrollerOptions: function(direction) {\r\n return (0, _extend.extend)(this.callBase(direction), {\r\n $topPocket: this._$topPocket,\r\n $bottomPocket: this._$bottomPocket,\r\n $pullDown: this._$pullDown,\r\n $pullDownText: this._$pullDownText,\r\n $pullingDownText: this._$pullingDownText,\r\n $pulledDownText: this._$pulledDownText,\r\n $refreshingText: this._$refreshingText\r\n })\r\n },\r\n pendingRelease: function() {\r\n this._eventHandler(\"pendingRelease\")\r\n },\r\n release: function() {\r\n return this._eventHandler(\"release\").done(this._updateAction)\r\n },\r\n location: function location() {\r\n var location = this.callBase();\r\n location.top += this._$topPocket.height();\r\n return location\r\n },\r\n dispose: function() {\r\n (0, _iterator.each)(this._scrollers, function() {\r\n this.dispose()\r\n });\r\n this.callBase()\r\n }\r\n});\r\nvar _default = SimulatedScrollViewStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/slider/ui.slider.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _click = require(\"../../events/click\");\r\nvar _emitter = require(\"../../events/core/emitter.feedback\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _swipeable = _interopRequireDefault(require(\"../../events/gesture/swipeable\"));\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _number = _interopRequireDefault(require(\"../../localization/number\"));\r\nvar _themes = require(\"../themes\");\r\nvar _track_bar = _interopRequireDefault(require(\"../track_bar\"));\r\nvar _utils = require(\"../widget/utils.ink_ripple\");\r\nvar _ui = _interopRequireDefault(require(\"./ui.slider_handle\"));\r\nvar _math = require(\"../../core/utils/math\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SLIDER_CLASS = \"dx-slider\";\r\nvar SLIDER_WRAPPER_CLASS = \"dx-slider-wrapper\";\r\nvar SLIDER_HANDLE_SELECTOR = \".dx-slider-handle\";\r\nvar SLIDER_BAR_CLASS = \"dx-slider-bar\";\r\nvar SLIDER_RANGE_CLASS = \"dx-slider-range\";\r\nvar SLIDER_RANGE_VISIBLE_CLASS = \"dx-slider-range-visible\";\r\nvar SLIDER_LABEL_CLASS = \"dx-slider-label\";\r\nvar SLIDER_LABEL_POSITION_CLASS_PREFIX = \"dx-slider-label-position-\";\r\nvar SLIDER_TOOLTIP_POSITION_CLASS_PREFIX = \"dx-slider-tooltip-position-\";\r\nvar INVALID_MESSAGE_VISIBLE_CLASS = \"dx-invalid-message-visible\";\r\nvar SLIDER_VALIDATION_NAMESPACE = \"Validation\";\r\nvar Slider = _track_bar.default.inherit({\r\n _activeStateUnit: SLIDER_HANDLE_SELECTOR,\r\n _supportedKeys: function() {\r\n var _this = this;\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var roundedValue = function(offset, isLeftDirection) {\r\n offset = _this._valueStep(offset);\r\n var step = _this.option(\"step\");\r\n var value = _this.option(\"value\");\r\n var currentPosition = value - _this.option(\"min\");\r\n var remainder = (0, _math.getRemainderByDivision)(currentPosition, step, _this._getValueExponentLength());\r\n var result = isLeftDirection ? value - offset + (remainder ? step - remainder : 0) : value + offset - remainder;\r\n var min = _this.option(\"min\");\r\n var max = _this.option(\"max\");\r\n if (result < min) {\r\n result = min\r\n } else {\r\n if (result > max) {\r\n result = max\r\n }\r\n }\r\n return _this._roundToExponentLength(result)\r\n };\r\n var moveHandleRight = function(offset) {\r\n _this.option(\"value\", roundedValue(offset, isRTL))\r\n };\r\n var moveHandleLeft = function(offset) {\r\n _this.option(\"value\", roundedValue(offset, !isRTL))\r\n };\r\n return (0, _extend.extend)(this.callBase(), {\r\n leftArrow: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleLeft(this.option(\"step\"))\r\n },\r\n rightArrow: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleRight(this.option(\"step\"))\r\n },\r\n pageUp: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleRight(this.option(\"step\") * this.option(\"keyStep\"))\r\n },\r\n pageDown: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleLeft(this.option(\"step\") * this.option(\"keyStep\"))\r\n },\r\n home: function(e) {\r\n this._processKeyboardEvent(e);\r\n var min = this.option(\"min\");\r\n this.option(\"value\", min)\r\n },\r\n end: function(e) {\r\n this._processKeyboardEvent(e);\r\n var max = this.option(\"max\");\r\n this.option(\"value\", max)\r\n }\r\n })\r\n },\r\n _processKeyboardEvent: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e)\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n value: 50,\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n step: 1,\r\n showRange: true,\r\n tooltip: {\r\n enabled: false,\r\n format: function(value) {\r\n return value\r\n },\r\n position: \"top\",\r\n showMode: \"onHover\"\r\n },\r\n label: {\r\n visible: false,\r\n position: \"bottom\",\r\n format: function(value) {\r\n return value\r\n }\r\n },\r\n keyStep: 1,\r\n useInkRipple: false,\r\n validationMessageOffset: (0, _themes.isMaterial)() ? {\r\n h: 18,\r\n v: 0\r\n } : {\r\n h: 7,\r\n v: 4\r\n },\r\n focusStateEnabled: true\r\n })\r\n },\r\n _toggleValidationMessage: function(visible) {\r\n if (!this.option(\"isValid\")) {\r\n this.$element().toggleClass(INVALID_MESSAGE_VISIBLE_CLASS, visible)\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 var themeName = (0, _themes.current)();\r\n return (0, _themes.isMaterial)(themeName)\r\n },\r\n options: {\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(SLIDER_CLASS);\r\n this._renderSubmitElement();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.callBase();\r\n this._renderLabels();\r\n this._renderStartHandler();\r\n this._renderAriaMinAndMax()\r\n },\r\n _attachFocusEvents: function() {\r\n this.callBase();\r\n var namespace = this.NAME + SLIDER_VALIDATION_NAMESPACE;\r\n var focusInEvent = (0, _index.addNamespace)(\"focusin\", namespace);\r\n var focusOutEvent = (0, _index.addNamespace)(\"focusout\", namespace);\r\n var $focusTarget = this._focusTarget();\r\n _events_engine.default.on($focusTarget, focusInEvent, this._toggleValidationMessage.bind(this, true));\r\n _events_engine.default.on($focusTarget, focusOutEvent, this._toggleValidationMessage.bind(this, false))\r\n },\r\n _detachFocusEvents: function() {\r\n this.callBase();\r\n var $focusTarget = this._focusTarget();\r\n this._toggleValidationMessage(false);\r\n _events_engine.default.off($focusTarget, this.NAME + SLIDER_VALIDATION_NAMESPACE)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._repaintHandle()\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = (0, _renderer.default)(\"\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = (0, _utils.render)({\r\n waveSizeCoefficient: .7,\r\n isCentered: true,\r\n wavesNumber: 2,\r\n useHoldAnimation: false\r\n })\r\n },\r\n _renderInkWave: function(element, dxEvent, doRender, waveIndex) {\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: element,\r\n event: dxEvent,\r\n wave: waveIndex\r\n };\r\n if (doRender) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _visibilityChanged: function() {\r\n this.repaint()\r\n },\r\n _renderWrapper: function() {\r\n this.callBase();\r\n this._$wrapper.addClass(SLIDER_WRAPPER_CLASS);\r\n this._createComponent(this._$wrapper, _swipeable.default, {\r\n elastic: false,\r\n immediate: true,\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._itemWidthFunc.bind(this)\r\n })\r\n },\r\n _renderContainer: function() {\r\n this.callBase();\r\n this._$bar.addClass(SLIDER_BAR_CLASS)\r\n },\r\n _renderRange: function() {\r\n this.callBase();\r\n this._$range.addClass(SLIDER_RANGE_CLASS);\r\n this._renderHandle();\r\n this._renderRangeVisibility()\r\n },\r\n _renderRangeVisibility: function() {\r\n this._$range.toggleClass(SLIDER_RANGE_VISIBLE_CLASS, Boolean(this.option(\"showRange\")))\r\n },\r\n _renderHandle: function() {\r\n this._$handle = this._renderHandleImpl(this.option(\"value\"), this._$handle)\r\n },\r\n _renderHandleImpl: function(value, $element) {\r\n var $handle = $element || (0, _renderer.default)(\"
\").appendTo(this._$range);\r\n var format = this.option(\"tooltip.format\");\r\n var tooltipEnabled = this.option(\"tooltip.enabled\");\r\n var tooltipPosition = this.option(\"tooltip.position\");\r\n this.$element().toggleClass(SLIDER_TOOLTIP_POSITION_CLASS_PREFIX + \"bottom\", tooltipEnabled && \"bottom\" === tooltipPosition).toggleClass(SLIDER_TOOLTIP_POSITION_CLASS_PREFIX + \"top\", tooltipEnabled && \"top\" === tooltipPosition);\r\n this._createComponent($handle, _ui.default, {\r\n value: value,\r\n tooltipEnabled: tooltipEnabled,\r\n tooltipPosition: tooltipPosition,\r\n tooltipFormat: format,\r\n tooltipShowMode: this.option(\"tooltip.showMode\"),\r\n tooltipFitIn: this.$element()\r\n });\r\n return $handle\r\n },\r\n _renderAriaMinAndMax: function() {\r\n this.setAria({\r\n valuemin: this.option(\"min\"),\r\n valuemax: this.option(\"max\")\r\n }, this._$handle)\r\n },\r\n _hoverStartHandler: function(e) {\r\n _ui.default.getInstance((0, _renderer.default)(e.currentTarget)).updateTooltip()\r\n },\r\n _toggleActiveState: function($element, value) {\r\n this.callBase($element, value);\r\n if (value) {\r\n _ui.default.getInstance($element).updateTooltip()\r\n }\r\n this._renderInkWave($element, null, !!value, 1)\r\n },\r\n _toggleFocusClass: function(isFocused, $element) {\r\n this.callBase(isFocused, $element);\r\n if (this._disposed) {\r\n return\r\n }\r\n var $focusTarget = (0, _renderer.default)($element || this._focusTarget());\r\n this._renderInkWave($focusTarget, null, isFocused, 0)\r\n },\r\n _renderLabels: function() {\r\n this.$element().removeClass(SLIDER_LABEL_POSITION_CLASS_PREFIX + \"bottom\").removeClass(SLIDER_LABEL_POSITION_CLASS_PREFIX + \"top\");\r\n if (this.option(\"label.visible\")) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n var position = this.option(\"label.position\");\r\n var labelFormat = this.option(\"label.format\");\r\n if (!this._$minLabel) {\r\n this._$minLabel = (0, _renderer.default)(\"
\").addClass(SLIDER_LABEL_CLASS).appendTo(this._$wrapper)\r\n }\r\n this._$minLabel.html(_number.default.format(min, labelFormat));\r\n if (!this._$maxLabel) {\r\n this._$maxLabel = (0, _renderer.default)(\"
\").addClass(SLIDER_LABEL_CLASS).appendTo(this._$wrapper)\r\n }\r\n this._$maxLabel.html(_number.default.format(max, labelFormat));\r\n this.$element().addClass(SLIDER_LABEL_POSITION_CLASS_PREFIX + position)\r\n } else {\r\n if (this._$minLabel) {\r\n this._$minLabel.remove();\r\n delete this._$minLabel\r\n }\r\n if (this._$maxLabel) {\r\n this._$maxLabel.remove();\r\n delete this._$maxLabel\r\n }\r\n }\r\n },\r\n _renderStartHandler: function() {\r\n var _this2 = this;\r\n var pointerDownEventName = (0, _index.addNamespace)(_pointer.default.down, this.NAME);\r\n var clickEventName = (0, _index.addNamespace)(_click.name, this.NAME);\r\n var startAction = this._createAction(this._startHandler.bind(this));\r\n var $element = this.$element();\r\n _events_engine.default.off($element, pointerDownEventName);\r\n _events_engine.default.on($element, pointerDownEventName, function(e) {\r\n if ((0, _index.isMouseEvent)(e)) {\r\n startAction({\r\n event: e\r\n })\r\n }\r\n });\r\n _events_engine.default.off($element, clickEventName);\r\n _events_engine.default.on($element, clickEventName, function(e) {\r\n var $handle = _this2._activeHandle();\r\n if ($handle) {\r\n _events_engine.default.trigger($handle, \"focusin\");\r\n _events_engine.default.trigger($handle, \"focus\")\r\n }\r\n startAction({\r\n event: e\r\n })\r\n })\r\n },\r\n _itemWidthFunc: function() {\r\n return this._itemWidthRatio\r\n },\r\n _swipeStartHandler: function(e) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if ((0, _index.isTouchEvent)(e.event)) {\r\n this._createAction(this._startHandler.bind(this))({\r\n event: e.event\r\n })\r\n }\r\n this._feedbackDeferred = new _deferred.Deferred;\r\n (0, _emitter.lock)(this._feedbackDeferred);\r\n this._toggleActiveState(this._activeHandle(), this.option(\"activeStateEnabled\"));\r\n this._startOffset = this._currentRatio;\r\n var startOffset = this._startOffset * this._swipePixelRatio();\r\n var endOffset = (1 - this._startOffset) * this._swipePixelRatio();\r\n e.event.maxLeftOffset = rtlEnabled ? endOffset : startOffset;\r\n e.event.maxRightOffset = rtlEnabled ? startOffset : endOffset;\r\n this._itemWidthRatio = this.$element().width() / this._swipePixelRatio();\r\n this._needPreventAnimation = true\r\n },\r\n _swipeEndHandler: function(e) {\r\n this._feedbackDeferred.resolve();\r\n this._toggleActiveState(this._activeHandle(), false);\r\n var offsetDirection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n delete this._needPreventAnimation;\r\n this._saveValueChangeEvent(e.event);\r\n this._changeValueOnSwipe(this._startOffset + offsetDirection * e.event.targetOffset / this._swipePixelRatio());\r\n delete this._startOffset;\r\n this._renderValue()\r\n },\r\n _activeHandle: function() {\r\n return this._$handle\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n this._saveValueChangeEvent(e.event);\r\n this._updateHandlePosition(e)\r\n },\r\n _updateHandlePosition: function(e) {\r\n var offsetDirection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n var newRatio = Math.min(this._startOffset + offsetDirection * e.event.offset / this._swipePixelRatio(), 1);\r\n this._$range.width(100 * newRatio + \"%\");\r\n _ui.default.getInstance(this._activeHandle()).fitTooltipPosition;\r\n this._changeValueOnSwipe(newRatio)\r\n },\r\n _swipePixelRatio: function() {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n var step = this._valueStep(this.option(\"step\"));\r\n return (max - min) / step\r\n },\r\n _valueStep: function(step) {\r\n if (!step || isNaN(step)) {\r\n step = 1\r\n }\r\n return step\r\n },\r\n _getValueExponentLength: function() {\r\n var _this$option = this.option(),\r\n step = _this$option.step,\r\n min = _this$option.min;\r\n return Math.max((0, _math.getExponentLength)(step), (0, _math.getExponentLength)(min))\r\n },\r\n _roundToExponentLength: function(value) {\r\n var valueExponentLength = this._getValueExponentLength();\r\n return (0, _math.roundFloatPart)(value, valueExponentLength)\r\n },\r\n _changeValueOnSwipe: function(ratio) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n var step = this._valueStep(this.option(\"step\"));\r\n var newChange = ratio * (max - min);\r\n var newValue = min + newChange;\r\n if (step < 0) {\r\n return\r\n }\r\n if (newValue === max || newValue === min) {\r\n this._setValueOnSwipe(newValue)\r\n } else {\r\n var stepCount = Math.round((newValue - min) / step);\r\n newValue = this._roundToExponentLength(stepCount * step + min);\r\n this._setValueOnSwipe(Math.max(Math.min(newValue, max), min))\r\n }\r\n },\r\n _setValueOnSwipe: function(value) {\r\n this.option(\"value\", value);\r\n this._saveValueChangeEvent(void 0)\r\n },\r\n _startHandler: function(args) {\r\n var e = args.event;\r\n this._currentRatio = ((0, _index.eventData)(e).x - this._$bar.offset().left) / this._$bar.width();\r\n if (this.option(\"rtlEnabled\")) {\r\n this._currentRatio = 1 - this._currentRatio\r\n }\r\n this._saveValueChangeEvent(e);\r\n this._changeValueOnSwipe(this._currentRatio)\r\n },\r\n _renderValue: function() {\r\n this.callBase();\r\n var value = this.option(\"value\");\r\n this._getSubmitElement().val((0, _common.applyServerDecimalSeparator)(value));\r\n _ui.default.getInstance(this._activeHandle()).option(\"value\", value)\r\n },\r\n _setRangeStyles: function(options) {\r\n options && this._$range.css(options)\r\n },\r\n _callHandlerMethod: function(name, args) {\r\n _ui.default.getInstance(this._$handle)[name](args)\r\n },\r\n _repaintHandle: function() {\r\n this._callHandlerMethod(\"repaint\")\r\n },\r\n _fitTooltip: function() {\r\n this._callHandlerMethod(\"fitTooltipPosition\")\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"visible\":\r\n this.callBase(args);\r\n this._renderHandle();\r\n this._repaintHandle();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._renderValue();\r\n this.callBase(args);\r\n this._renderLabels();\r\n this._renderAriaMinAndMax();\r\n this._fitTooltip();\r\n break;\r\n case \"step\":\r\n this._renderValue();\r\n break;\r\n case \"keyStep\":\r\n break;\r\n case \"showRange\":\r\n this._renderRangeVisibility();\r\n break;\r\n case \"tooltip\":\r\n this._renderHandle();\r\n break;\r\n case \"label\":\r\n this._renderLabels();\r\n break;\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _refresh: function() {\r\n this._toggleRTLDirection(this.option(\"rtlEnabled\"));\r\n this._renderDimensions();\r\n this._renderValue();\r\n this._renderHandle();\r\n this._repaintHandle()\r\n },\r\n _clean: function() {\r\n delete this._inkRipple;\r\n this.callBase()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxSlider\", Slider);\r\nvar _default = Slider;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/slide_out.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _element = require(\"../core/element\");\r\nvar _common = require(\"../core/utils/common\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _uiCollection_widgetEditStrategy = _interopRequireDefault(require(\"./collection/ui.collection_widget.edit.strategy.plain\"));\r\nvar _slide_out_view = _interopRequireDefault(require(\"./slide_out_view\"));\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"./collection/ui.collection_widget.edit\"));\r\nvar _list = _interopRequireDefault(require(\"./list\"));\r\nvar _child_default_template = require(\"../core/templates/child_default_template\");\r\nvar _empty_template = require(\"../core/templates/empty_template\");\r\nvar _grouped_data_converter_mixin = _interopRequireDefault(require(\"./shared/grouped_data_converter_mixin\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SLIDEOUT_CLASS = \"dx-slideout\";\r\nvar SLIDEOUT_ITEM_CONTAINER_CLASS = \"dx-slideout-item-container\";\r\nvar SLIDEOUT_MENU = \"dx-slideout-menu\";\r\nvar SLIDEOUT_ITEM_CLASS = \"dx-slideout-item\";\r\nvar SLIDEOUT_ITEM_DATA_KEY = \"dxSlideoutItemData\";\r\nvar SlideOut = _uiCollection_widget.default.inherit({\r\n ctor: function(element, options) {\r\n this.callBase(element, options);\r\n this._logDeprecatedComponentWarning(\"20.1\", \"dxDrawer\")\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n activeStateEnabled: false,\r\n menuItemTemplate: \"menuItem\",\r\n swipeEnabled: true,\r\n menuVisible: false,\r\n menuPosition: \"normal\",\r\n menuGrouped: false,\r\n menuGroupTemplate: \"menuGroup\",\r\n onMenuItemRendered: null,\r\n onMenuGroupRendered: null,\r\n contentTemplate: \"content\",\r\n selectionMode: \"single\",\r\n selectedIndex: 0,\r\n selectionRequired: true\r\n })\r\n },\r\n _itemClass: function() {\r\n return SLIDEOUT_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return SLIDEOUT_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return (0, _renderer.default)(this._slideOutView.content())\r\n },\r\n _init: function() {\r\n this._selectedItemContentRendered = false;\r\n this.callBase();\r\n this.$element().addClass(SLIDEOUT_CLASS);\r\n this._initSlideOutView()\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n menuItem: new _child_default_template.ChildDefaultTemplate(\"item\"),\r\n menuGroup: new _child_default_template.ChildDefaultTemplate(\"group\"),\r\n content: new _empty_template.EmptyTemplate\r\n })\r\n },\r\n _initEditStrategy: function() {\r\n if (this.option(\"menuGrouped\")) {\r\n var strategy = _uiCollection_widgetEditStrategy.default.inherit({\r\n _getPlainItems: function() {\r\n return this.callBase().reduce(function(result, group) {\r\n result.push.apply(result, group.items);\r\n return result\r\n }, [])\r\n }\r\n });\r\n this._editStrategy = new strategy(this)\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _initSlideOutView: function() {\r\n this._slideOutView = this._createComponent(this.$element(), _slide_out_view.default, {\r\n integrationOptions: {},\r\n menuVisible: this.option(\"menuVisible\"),\r\n swipeEnabled: this.option(\"swipeEnabled\"),\r\n menuPosition: this.option(\"menuPosition\"),\r\n onOptionChanged: this._slideOutViewOptionChanged.bind(this)\r\n });\r\n this._itemContainer().addClass(SLIDEOUT_ITEM_CONTAINER_CLASS)\r\n },\r\n _slideOutViewOptionChanged: function(args) {\r\n if (\"menuVisible\" === args.name) {\r\n this.option(args.name, args.value)\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._renderList();\r\n this._renderContentTemplate();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this._slideOutView._renderShield();\r\n this.callBase()\r\n },\r\n _renderList: function() {\r\n var $list = this._list && this._list.$element() || (0, _renderer.default)(\"
\").addClass(SLIDEOUT_MENU).appendTo((0, _renderer.default)(this._slideOutView.menuContent()));\r\n this._renderItemClickAction();\r\n this._list = this._createComponent($list, _list.default, {\r\n itemTemplateProperty: \"menuTemplate\",\r\n selectionMode: this.option(\"selectionMode\"),\r\n selectionRequired: this.option(\"selectionRequired\"),\r\n indicateLoading: false,\r\n onItemClick: this._listItemClickHandler.bind(this),\r\n items: this.option(\"items\"),\r\n dataSource: this._dataSource,\r\n itemTemplate: this._getTemplateByOption(\"menuItemTemplate\"),\r\n grouped: this.option(\"menuGrouped\"),\r\n groupTemplate: this._getTemplateByOption(\"menuGroupTemplate\"),\r\n onItemRendered: this.option(\"onMenuItemRendered\"),\r\n onGroupRendered: this.option(\"onMenuGroupRendered\"),\r\n onContentReady: this._updateSlideOutView.bind(this)\r\n });\r\n this._list.option(\"selectedIndex\", this.option(\"selectedIndex\"))\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"menuGrouped\")\r\n },\r\n _updateSlideOutView: function() {\r\n this._slideOutView._dimensionChanged()\r\n },\r\n _renderItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _listItemClickHandler: function(e) {\r\n var selectedIndex = this._list.$element().find(\".dx-list-item\").index(e.itemElement);\r\n this.option(\"selectedIndex\", selectedIndex);\r\n this._itemClickAction(e)\r\n },\r\n _renderContentTemplate: function() {\r\n if ((0, _type.isDefined)(this._singleContent)) {\r\n return\r\n }\r\n var itemsLength = this._itemContainer().html().length;\r\n this._getTemplateByOption(\"contentTemplate\").render({\r\n container: (0, _element.getPublicElement)(this._itemContainer())\r\n });\r\n this._singleContent = this._itemContainer().html().length !== itemsLength\r\n },\r\n _itemClickHandler: _common.noop,\r\n _renderContentImpl: function() {\r\n if (this._singleContent) {\r\n return\r\n }\r\n var items = this.option(\"items\");\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (items.length && selectedIndex > -1) {\r\n this._selectedItemContentRendered = true;\r\n var selectedItem = this._list.getItemByIndex(selectedIndex);\r\n this._renderItems([selectedItem])\r\n }\r\n },\r\n _renderItem: function(index, item) {\r\n this._itemContainer().find(\".\" + SLIDEOUT_ITEM_CLASS).remove();\r\n this.callBase(index, item)\r\n },\r\n _selectedItemElement: function() {\r\n return this._itemElements().eq(0)\r\n },\r\n _updateSelection: function() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _getListWidth: function() {\r\n return this._slideOutView._getMenuWidth()\r\n },\r\n _changeMenuOption: function(name, value) {\r\n this._list.option(name, value);\r\n this._updateSlideOutView()\r\n },\r\n _cleanItemContainer: function() {\r\n if (this._singleContent) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n beginUpdate: function() {\r\n this.callBase();\r\n this._list && this._list.beginUpdate()\r\n },\r\n endUpdate: function() {\r\n this._list && this._list.endUpdate();\r\n this.callBase()\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 \"menuVisible\":\r\n case \"swipeEnabled\":\r\n case \"rtlEnabled\":\r\n case \"menuPosition\":\r\n this._slideOutView.option(name, value);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._updateSlideOutView();\r\n break;\r\n case \"menuItemTemplate\":\r\n this._changeMenuOption(\"itemTemplate\", this._getTemplate(value));\r\n break;\r\n case \"items\":\r\n this._changeMenuOption(\"items\", this.option(\"items\"));\r\n if (!this._selectedItemContentRendered) {\r\n this._updateSelection()\r\n }\r\n break;\r\n case \"dataSource\":\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n this._changeMenuOption(name, value);\r\n this.callBase(args);\r\n break;\r\n case \"menuGrouped\":\r\n this._initEditStrategy();\r\n this._changeMenuOption(\"grouped\", value);\r\n break;\r\n case \"menuGroupTemplate\":\r\n this._changeMenuOption(\"groupTemplate\", this._getTemplate(value));\r\n break;\r\n case \"onMenuItemRendered\":\r\n this._changeMenuOption(\"onItemRendered\", value);\r\n break;\r\n case \"onMenuGroupRendered\":\r\n this._changeMenuOption(\"onGroupRendered\", value);\r\n break;\r\n case \"onItemClick\":\r\n this._renderItemClickAction();\r\n break;\r\n case \"contentTemplate\":\r\n this._singleContent = null;\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n showMenu: function() {\r\n return this._slideOutView.toggleMenuVisibility(true)\r\n },\r\n hideMenu: function() {\r\n return this._slideOutView.toggleMenuVisibility(false)\r\n },\r\n toggleMenuVisibility: function(showing) {\r\n return this._slideOutView.toggleMenuVisibility(showing)\r\n }\r\n}).include(_grouped_data_converter_mixin.default);\r\n(0, _component_registrator.default)(\"dxSlideOut\", SlideOut);\r\nvar _default = SlideOut;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/slide_out_view/ui.slide_out_view.animation.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 = void 0;\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ANIMATION_DURATION = 400;\r\nvar animation = {\r\n moveTo: function($element, position, completeAction) {\r\n _fx.default.animate($element, {\r\n type: \"slide\",\r\n to: {\r\n left: position\r\n },\r\n duration: ANIMATION_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/scroll_view.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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(\"./scroll_view/ui.scroll_view\"));\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/scroll_view/ui.scrollable.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _support = require(\"../../core/utils/support\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _element = require(\"../../core/element\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _dom_component = _interopRequireDefault(require(\"../../core/dom_component\"));\r\nvar _selectors = require(\"../widget/selectors\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _uiEventsEmitterGesture = _interopRequireDefault(require(\"./ui.events.emitter.gesture.scroll\"));\r\nvar _uiScrollable = require(\"./ui.scrollable.simulated\");\r\nvar _uiScrollable2 = _interopRequireDefault(require(\"./ui.scrollable.native\"));\r\nvar _uiScrollable3 = require(\"./ui.scrollable.device\");\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 SCROLLABLE = \"dxScrollable\";\r\nvar SCROLLABLE_STRATEGY = \"dxScrollableStrategy\";\r\nvar SCROLLABLE_CLASS = \"dx-scrollable\";\r\nvar SCROLLABLE_DISABLED_CLASS = \"dx-scrollable-disabled\";\r\nvar SCROLLABLE_CONTAINER_CLASS = \"dx-scrollable-container\";\r\nvar SCROLLABLE_WRAPPER_CLASS = \"dx-scrollable-wrapper\";\r\nvar SCROLLABLE_CONTENT_CLASS = \"dx-scrollable-content\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar BOTH = \"both\";\r\nvar Scrollable = _dom_component.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n disabled: false,\r\n onScroll: null,\r\n direction: VERTICAL,\r\n showScrollbar: \"onScroll\",\r\n useNative: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n onUpdated: null,\r\n onStart: null,\r\n onEnd: null,\r\n onBounce: null,\r\n onStop: null,\r\n useSimulatedScrollbar: false,\r\n useKeyboard: true,\r\n inertiaEnabled: true,\r\n pushBackValue: 0,\r\n updateManually: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat((0, _uiScrollable3.deviceDependentOptions)(), [{\r\n device: function() {\r\n return _support.nativeScrolling && \"android\" === _devices.default.real().platform && !_browser.default.mozilla\r\n },\r\n options: {\r\n useSimulatedScrollbar: true\r\n }\r\n }, {\r\n device: function() {\r\n return \"ios\" === _devices.default.real().platform\r\n },\r\n options: {\r\n pushBackValue: 1\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n this.callBase(options);\r\n if (!(\"useSimulatedScrollbar\" in options)) {\r\n this._setUseSimulatedScrollbar()\r\n }\r\n },\r\n _setUseSimulatedScrollbar: function() {\r\n if (!this.initialOption(\"useSimulatedScrollbar\")) {\r\n this.option(\"useSimulatedScrollbar\", !this.option(\"useNative\"))\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initScrollableMarkup();\r\n this._locked = false\r\n },\r\n _getWindowDevicePixelRatio: function() {\r\n return (0, _window.hasWindow)() ? (0, _window.getWindow)().devicePixelRatio : 1\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this.update();\r\n this._updateRtlPosition();\r\n this._savedScrollOffset && this.scrollTo(this._savedScrollOffset);\r\n delete this._savedScrollOffset\r\n } else {\r\n this._savedScrollOffset = this.scrollOffset()\r\n }\r\n },\r\n _initScrollableMarkup: function() {\r\n var $element = this.$element().addClass(SCROLLABLE_CLASS);\r\n var $container = this._$container = (0, _renderer.default)(\"
\").addClass(SCROLLABLE_CONTAINER_CLASS);\r\n var $wrapper = this._$wrapper = (0, _renderer.default)(\"
\").addClass(SCROLLABLE_WRAPPER_CLASS);\r\n var $content = this._$content = (0, _renderer.default)(\"
\").addClass(SCROLLABLE_CONTENT_CLASS);\r\n if (_dom_adapter.default.hasDocumentProperty(\"onbeforeactivate\") && _browser.default.msie && _browser.default.version < 12) {\r\n _events_engine.default.on($element, (0, _index.addNamespace)(\"beforeactivate\", SCROLLABLE), function(e) {\r\n if (!(0, _renderer.default)(e.target).is(_selectors.focusable)) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n $content.append($element.contents()).appendTo($container);\r\n $container.appendTo($wrapper);\r\n $wrapper.appendTo($element)\r\n },\r\n _dimensionChanged: function() {\r\n this.update();\r\n this._updateRtlPosition()\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderDirection()\r\n },\r\n _render: function() {\r\n this._renderStrategy();\r\n this._attachEventHandlers();\r\n this._renderDisabledState();\r\n this._createActions();\r\n this.update();\r\n this.callBase();\r\n this._rtlConfig = {\r\n scrollRight: 0,\r\n clientWidth: this._container().get(0).clientWidth,\r\n windowPixelRatio: this._getWindowDevicePixelRatio()\r\n };\r\n this._updateRtlPosition()\r\n },\r\n _isHorizontalAndRtlEnabled: function() {\r\n return this.option(\"rtlEnabled\") && this.option(\"direction\") !== VERTICAL\r\n },\r\n _updateRtlPosition: function() {\r\n var _this = this;\r\n this._updateBounds();\r\n if (this._isHorizontalAndRtlEnabled()) {\r\n (0, _common.deferUpdate)(function() {\r\n var scrollLeft = _this._getMaxOffset().left - _this._rtlConfig.scrollRight;\r\n if (scrollLeft <= 0) {\r\n scrollLeft = 0;\r\n _this._rtlConfig.scrollRight = _this._getMaxOffset().left\r\n }(0, _common.deferRender)(function() {\r\n if (_this.scrollLeft() !== scrollLeft) {\r\n _this._rtlConfig.skipUpdating = true;\r\n _this.scrollTo({\r\n left: scrollLeft\r\n });\r\n _this._rtlConfig.skipUpdating = false\r\n }\r\n })\r\n })\r\n }\r\n },\r\n _getMaxOffset: function() {\r\n var _this$_container$get = this._container().get(0),\r\n scrollWidth = _this$_container$get.scrollWidth,\r\n clientWidth = _this$_container$get.clientWidth,\r\n scrollHeight = _this$_container$get.scrollHeight,\r\n clientHeight = _this$_container$get.clientHeight;\r\n return {\r\n left: scrollWidth - clientWidth,\r\n top: scrollHeight - clientHeight\r\n }\r\n },\r\n _updateBounds: function() {\r\n this._strategy.updateBounds()\r\n },\r\n _attachEventHandlers: function() {\r\n var strategy = this._strategy;\r\n var initEventData = {\r\n getDirection: strategy.getDirection.bind(strategy),\r\n validate: this._validate.bind(this),\r\n isNative: this.option(\"useNative\"),\r\n scrollTarget: this._$container\r\n };\r\n _events_engine.default.off(this._$wrapper, \".\" + SCROLLABLE);\r\n _events_engine.default.on(this._$wrapper, (0, _index.addNamespace)(_uiEventsEmitterGesture.default.init, SCROLLABLE), initEventData, this._initHandler.bind(this));\r\n _events_engine.default.on(this._$wrapper, (0, _index.addNamespace)(_uiEventsEmitterGesture.default.start, SCROLLABLE), strategy.handleStart.bind(strategy));\r\n _events_engine.default.on(this._$wrapper, (0, _index.addNamespace)(_uiEventsEmitterGesture.default.move, SCROLLABLE), strategy.handleMove.bind(strategy));\r\n _events_engine.default.on(this._$wrapper, (0, _index.addNamespace)(_uiEventsEmitterGesture.default.end, SCROLLABLE), strategy.handleEnd.bind(strategy));\r\n _events_engine.default.on(this._$wrapper, (0, _index.addNamespace)(_uiEventsEmitterGesture.default.cancel, SCROLLABLE), strategy.handleCancel.bind(strategy));\r\n _events_engine.default.on(this._$wrapper, (0, _index.addNamespace)(_uiEventsEmitterGesture.default.stop, SCROLLABLE), strategy.handleStop.bind(strategy));\r\n _events_engine.default.off(this._$container, \".\" + SCROLLABLE);\r\n _events_engine.default.on(this._$container, (0, _index.addNamespace)(\"scroll\", SCROLLABLE), strategy.handleScroll.bind(strategy))\r\n },\r\n _updateRtlConfig: function() {\r\n if (this._isHorizontalAndRtlEnabled() && !this._rtlConfig.skipUpdating) {\r\n var _this$_container$get2 = this._container().get(0),\r\n clientWidth = _this$_container$get2.clientWidth,\r\n scrollLeft = _this$_container$get2.scrollLeft;\r\n var windowPixelRatio = this._getWindowDevicePixelRatio();\r\n if (this._rtlConfig.windowPixelRatio === windowPixelRatio && this._rtlConfig.clientWidth === clientWidth) {\r\n this._rtlConfig.scrollRight = this._getMaxOffset().left - scrollLeft\r\n }\r\n this._rtlConfig.clientWidth = clientWidth;\r\n this._rtlConfig.windowPixelRatio = windowPixelRatio\r\n }\r\n },\r\n _validate: function(e) {\r\n if (this._isLocked()) {\r\n return false\r\n }\r\n this._updateIfNeed();\r\n return this._strategy.validate(e)\r\n },\r\n _initHandler: function() {\r\n var strategy = this._strategy;\r\n strategy.handleInit.apply(strategy, arguments)\r\n },\r\n _renderDisabledState: function() {\r\n this.$element().toggleClass(SCROLLABLE_DISABLED_CLASS, this.option(\"disabled\"));\r\n if (this.option(\"disabled\")) {\r\n this._lock()\r\n } else {\r\n this._unlock()\r\n }\r\n },\r\n _renderDirection: function() {\r\n this.$element().removeClass(\"dx-scrollable-\" + HORIZONTAL).removeClass(\"dx-scrollable-\" + VERTICAL).removeClass(\"dx-scrollable-\" + BOTH).addClass(\"dx-scrollable-\" + this.option(\"direction\"))\r\n },\r\n _renderStrategy: function() {\r\n this._createStrategy();\r\n this._strategy.render();\r\n this.$element().data(SCROLLABLE_STRATEGY, this._strategy)\r\n },\r\n _createStrategy: function() {\r\n this._strategy = this.option(\"useNative\") ? new _uiScrollable2.default(this) : new _uiScrollable.SimulatedStrategy(this)\r\n },\r\n _createActions: function() {\r\n this._strategy && this._strategy.createActions()\r\n },\r\n _clean: function() {\r\n this._strategy && this._strategy.dispose()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onStart\":\r\n case \"onEnd\":\r\n case \"onStop\":\r\n case \"onUpdated\":\r\n case \"onScroll\":\r\n case \"onBounce\":\r\n this._createActions();\r\n break;\r\n case \"direction\":\r\n this._resetInactiveDirection();\r\n this._invalidate();\r\n break;\r\n case \"useNative\":\r\n this._setUseSimulatedScrollbar();\r\n this._invalidate();\r\n break;\r\n case \"inertiaEnabled\":\r\n case \"scrollByContent\":\r\n case \"scrollByThumb\":\r\n case \"bounceEnabled\":\r\n case \"useKeyboard\":\r\n case \"showScrollbar\":\r\n case \"useSimulatedScrollbar\":\r\n case \"pushBackValue\":\r\n this._invalidate();\r\n break;\r\n case \"disabled\":\r\n this._renderDisabledState();\r\n this._strategy && this._strategy.disabledChanged();\r\n break;\r\n case \"updateManually\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._updateRtlPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _resetInactiveDirection: function() {\r\n var inactiveProp = this._getInactiveProp();\r\n if (!inactiveProp || !(0, _window.hasWindow)()) {\r\n return\r\n }\r\n var scrollOffset = this.scrollOffset();\r\n scrollOffset[inactiveProp] = 0;\r\n this.scrollTo(scrollOffset)\r\n },\r\n _getInactiveProp: function() {\r\n var direction = this.option(\"direction\");\r\n if (direction === VERTICAL) {\r\n return \"left\"\r\n }\r\n if (direction === HORIZONTAL) {\r\n return \"top\"\r\n }\r\n },\r\n _location: function() {\r\n return this._strategy.location()\r\n },\r\n _normalizeLocation: function(location) {\r\n if ((0, _type.isPlainObject)(location)) {\r\n var left = (0, _common.ensureDefined)(location.left, location.x);\r\n var top = (0, _common.ensureDefined)(location.top, location.y);\r\n return {\r\n left: (0, _type.isDefined)(left) ? -left : void 0,\r\n top: (0, _type.isDefined)(top) ? -top : void 0\r\n }\r\n } else {\r\n var direction = this.option(\"direction\");\r\n return {\r\n left: direction !== VERTICAL ? -location : void 0,\r\n top: direction !== HORIZONTAL ? -location : void 0\r\n }\r\n }\r\n },\r\n _isLocked: function() {\r\n return this._locked\r\n },\r\n _lock: function() {\r\n this._locked = true\r\n },\r\n _unlock: function() {\r\n if (!this.option(\"disabled\")) {\r\n this._locked = false\r\n }\r\n },\r\n _isDirection: function(direction) {\r\n var current = this.option(\"direction\");\r\n if (direction === VERTICAL) {\r\n return current !== HORIZONTAL\r\n }\r\n if (direction === HORIZONTAL) {\r\n return current !== VERTICAL\r\n }\r\n return current === direction\r\n },\r\n _updateAllowedDirection: function() {\r\n var allowedDirections = this._strategy._allowedDirections();\r\n if (this._isDirection(BOTH) && allowedDirections.vertical && allowedDirections.horizontal) {\r\n this._allowedDirectionValue = BOTH\r\n } else {\r\n if (this._isDirection(HORIZONTAL) && allowedDirections.horizontal) {\r\n this._allowedDirectionValue = HORIZONTAL\r\n } else {\r\n if (this._isDirection(VERTICAL) && allowedDirections.vertical) {\r\n this._allowedDirectionValue = VERTICAL\r\n } else {\r\n this._allowedDirectionValue = null\r\n }\r\n }\r\n }\r\n },\r\n _allowedDirection: function() {\r\n return this._allowedDirectionValue\r\n },\r\n _container: function() {\r\n return this._$container\r\n },\r\n $content: function() {\r\n return this._$content\r\n },\r\n content: function() {\r\n return (0, _element.getPublicElement)(this._$content)\r\n },\r\n container: function() {\r\n return (0, _element.getPublicElement)(this._$container)\r\n },\r\n scrollOffset: function() {\r\n return this._getScrollOffset()\r\n },\r\n _getScrollOffset: function() {\r\n return {\r\n top: -this._location().top,\r\n left: -this._location().left\r\n }\r\n },\r\n scrollTop: function() {\r\n return this.scrollOffset().top\r\n },\r\n scrollLeft: function() {\r\n return this.scrollOffset().left\r\n },\r\n clientHeight: function() {\r\n return this._$container.height()\r\n },\r\n scrollHeight: function() {\r\n return this.$content().outerHeight() - 2 * this._strategy.verticalOffset()\r\n },\r\n clientWidth: function() {\r\n return this._$container.width()\r\n },\r\n scrollWidth: function() {\r\n return this.$content().outerWidth()\r\n },\r\n update: function() {\r\n if (!this._strategy) {\r\n return\r\n }\r\n return (0, _deferred.when)(this._strategy.update()).done(function() {\r\n this._updateAllowedDirection()\r\n }.bind(this))\r\n },\r\n scrollBy: function(distance) {\r\n distance = this._normalizeLocation(distance);\r\n if (!distance.top && !distance.left) {\r\n return\r\n }\r\n this._updateIfNeed();\r\n this._strategy.scrollBy(distance);\r\n this._updateRtlConfig()\r\n },\r\n scrollTo: function(targetLocation) {\r\n targetLocation = this._normalizeLocation(targetLocation);\r\n this._updateIfNeed();\r\n var location = this._location();\r\n if (!this.option(\"useNative\")) {\r\n targetLocation = this._strategy._applyScaleRatio(targetLocation);\r\n location = this._strategy._applyScaleRatio(location)\r\n }\r\n var distance = this._normalizeLocation({\r\n left: location.left - (0, _common.ensureDefined)(targetLocation.left, location.left),\r\n top: location.top - (0, _common.ensureDefined)(targetLocation.top, location.top)\r\n });\r\n if (!distance.top && !distance.left) {\r\n return\r\n }\r\n this._strategy.scrollBy(distance);\r\n this._updateRtlConfig()\r\n },\r\n scrollToElement: function(element, offset) {\r\n var $element = (0, _renderer.default)(element);\r\n var elementInsideContent = this.$content().find(element).length;\r\n var elementIsInsideContent = $element.parents(\".\" + SCROLLABLE_CLASS).length - $element.parents(\".\" + SCROLLABLE_CONTENT_CLASS).length === 0;\r\n if (!elementInsideContent || !elementIsInsideContent) {\r\n return\r\n }\r\n var scrollPosition = {\r\n top: 0,\r\n left: 0\r\n };\r\n var direction = this.option(\"direction\");\r\n if (direction !== VERTICAL) {\r\n scrollPosition.left = this.getScrollElementPosition($element, HORIZONTAL, offset)\r\n }\r\n if (direction !== HORIZONTAL) {\r\n scrollPosition.top = this.getScrollElementPosition($element, VERTICAL, offset)\r\n }\r\n this.scrollTo(scrollPosition)\r\n },\r\n scrollToElementTopLeft: function(element) {\r\n var $element = (0, _renderer.default)(element);\r\n var elementInsideContent = this.$content().find(element).length;\r\n var elementIsInsideContent = $element.parents(\".\" + SCROLLABLE_CLASS).length - $element.parents(\".\" + SCROLLABLE_CONTENT_CLASS).length === 0;\r\n if (!elementInsideContent || !elementIsInsideContent) {\r\n return\r\n }\r\n var scrollPosition = {\r\n top: 0,\r\n left: 0\r\n };\r\n var direction = this.option(\"direction\");\r\n if (direction !== VERTICAL) {\r\n var leftPosition = this._elementPositionRelativeToContent($element, \"left\");\r\n scrollPosition.left = true === this.option(\"rtlEnabled\") ? leftPosition + $element.width() - this.clientWidth() : leftPosition\r\n }\r\n if (direction !== HORIZONTAL) {\r\n scrollPosition.top = this._elementPositionRelativeToContent($element, \"top\")\r\n }\r\n this.scrollTo(scrollPosition)\r\n },\r\n getScrollElementPosition: function($element, direction, offset) {\r\n offset = offset || {};\r\n var isVertical = direction === VERTICAL;\r\n var startOffset = (isVertical ? offset.top : offset.left) || 0;\r\n var endOffset = (isVertical ? offset.bottom : offset.right) || 0;\r\n var pushBackOffset = isVertical ? this._strategy.verticalOffset() : 0;\r\n var elementPositionRelativeToContent = this._elementPositionRelativeToContent($element, isVertical ? \"top\" : \"left\");\r\n var elementPosition = elementPositionRelativeToContent - pushBackOffset;\r\n var elementSize = $element[isVertical ? \"outerHeight\" : \"outerWidth\"]();\r\n var scrollLocation = isVertical ? this.scrollTop() : this.scrollLeft();\r\n var clientSize = this._container().get(0)[isVertical ? \"clientHeight\" : \"clientWidth\"];\r\n var startDistance = scrollLocation - elementPosition + startOffset;\r\n var endDistance = scrollLocation - elementPosition - elementSize + clientSize - endOffset;\r\n if (startDistance <= 0 && endDistance >= 0) {\r\n return scrollLocation\r\n }\r\n return scrollLocation - (Math.abs(startDistance) > Math.abs(endDistance) ? endDistance : startDistance)\r\n },\r\n _elementPositionRelativeToContent: function($element, prop) {\r\n var result = 0;\r\n while (this._hasScrollContent($element)) {\r\n result += $element.position()[prop];\r\n $element = $element.offsetParent()\r\n }\r\n return result\r\n },\r\n _hasScrollContent: function($element) {\r\n var $content = this.$content();\r\n return $element.closest($content).length && !$element.is($content)\r\n },\r\n _updateIfNeed: function() {\r\n if (!this.option(\"updateManually\")) {\r\n this.update()\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\n(0, _component_registrator.default)(SCROLLABLE, Scrollable);\r\nvar _default = Scrollable;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/shared/accessibility.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.hiddenFocus = hiddenFocus;\r\nexports.registerKeyboardAction = registerKeyboardAction;\r\nexports.restoreFocus = restoreFocus;\r\nexports.selectView = selectView;\r\nexports.setTabIndex = setTabIndex;\r\nexports.subscribeVisibilityChange = subscribeVisibilityChange;\r\nexports.unsubscribeVisibilityChange = unsubscribeVisibilityChange;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\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 FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nvar FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row-focused\";\r\nvar GRID_ROW_SELECTOR = \".dx-datagrid-rowsview .dx-row\";\r\nvar GRID_CELL_SELECTOR = \"\".concat(GRID_ROW_SELECTOR, \" > td\");\r\nvar TREELIST_ROW_SELECTOR = \".dx-treelist-rowsview .dx-row\";\r\nvar TREELIST_CELL_SELECTOR = \"\".concat(TREELIST_ROW_SELECTOR, \" > td\");\r\nvar viewItemSelectorMap = {\r\n groupPanel: [\".dx-datagrid-group-panel .dx-group-panel-item[tabindex]\"],\r\n columnHeaders: [\".dx-datagrid-headers .dx-header-row > td.dx-datagrid-action\", \".dx-treelist-headers .dx-header-row > td.dx-treelist-action\"],\r\n filterRow: [\".dx-datagrid-headers .dx-datagrid-filter-row .dx-editor-cell .dx-texteditor-input\", \".dx-treelist-headers .dx-treelist-filter-row .dx-editor-cell .dx-texteditor-input\"],\r\n rowsView: [\"\".concat(FOCUSED_ROW_SELECTOR), \"\".concat(GRID_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR), \"\".concat(TREELIST_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR)],\r\n footer: [\".dx-datagrid-total-footer .dx-datagrid-summary-item\", \".dx-treelist-total-footer .dx-treelist-summary-item\"],\r\n filterPanel: [\".dx-datagrid-filter-panel .dx-icon-filter\", \".dx-treelist-filter-panel .dx-icon-filter\"],\r\n pager: [\".dx-datagrid-pager [tabindex]\", \".dx-treelist-pager [tabindex]\"]\r\n};\r\nvar isMouseDown = false;\r\nvar isHiddenFocusing = false;\r\nvar focusedElementInfo = null;\r\n\r\nfunction processKeyDown(viewName, instance, event, action, $mainElement, executeKeyDown) {\r\n var isHandled = fireKeyDownEvent(instance, event.originalEvent, executeKeyDown);\r\n if (isHandled) {\r\n return\r\n }\r\n var keyName = (0, _index.normalizeKeyName)(event);\r\n if (\"enter\" === keyName || \"space\" === keyName) {\r\n saveFocusedElementInfo(event.target, instance);\r\n action && action({\r\n event: event\r\n })\r\n } else {\r\n if (\"tab\" === keyName) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n } else {\r\n selectView(viewName, instance, event)\r\n }\r\n }\r\n}\r\n\r\nfunction saveFocusedElementInfo(target, instance) {\r\n var $target = (0, _renderer.default)(target);\r\n var ariaLabel = $target.attr(\"aria-label\");\r\n var $activeElements = getActiveAccessibleElements(ariaLabel, instance.element());\r\n var targetIndex = $activeElements.index($target);\r\n focusedElementInfo = (0, _extend.extend)({}, {\r\n ariaLabel: ariaLabel,\r\n index: targetIndex\r\n }, {\r\n viewInstance: instance\r\n })\r\n}\r\n\r\nfunction getActiveAccessibleElements(ariaLabel, viewElement) {\r\n var $viewElement = (0, _renderer.default)(viewElement);\r\n var $activeElements;\r\n if (ariaLabel) {\r\n $activeElements = $viewElement.find('[aria-label=\"'.concat(ariaLabel, '\"][tabindex]'))\r\n } else {\r\n $activeElements = $viewElement.find(\"[tabindex]\")\r\n }\r\n return $activeElements\r\n}\r\n\r\nfunction findFocusedViewElement(viewSelectors) {\r\n for (var index in viewSelectors) {\r\n var selector = viewSelectors[index];\r\n var $focusViewElement = (0, _renderer.default)(selector).first();\r\n if ($focusViewElement.length) {\r\n return $focusViewElement\r\n }\r\n }\r\n}\r\n\r\nfunction fireKeyDownEvent(instance, event, executeAction) {\r\n var args = {\r\n event: event,\r\n handled: false\r\n };\r\n if (executeAction) {\r\n executeAction(args)\r\n } else {\r\n instance._createActionByOption(\"onKeyDown\")(args)\r\n }\r\n return args.handled\r\n}\r\n\r\nfunction onDocumentVisibilityChange() {\r\n isHiddenFocusing = \"visible\" === _dom_adapter.default.getDocument().visibilityState\r\n}\r\n\r\nfunction subscribeVisibilityChange() {\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\n\r\nfunction unsubscribeVisibilityChange() {\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\n\r\nfunction hiddenFocus(element) {\r\n isHiddenFocusing = true;\r\n element.focus();\r\n isHiddenFocusing = false\r\n}\r\n\r\nfunction registerKeyboardAction(viewName, instance, $element, selector, action, executeKeyDown) {\r\n if (instance.option(\"useLegacyKeyboardNavigation\")) {\r\n return _common.noop\r\n }\r\n var $mainElement = (0, _renderer.default)(instance.element());\r\n var keyDownHandler = function(e) {\r\n return processKeyDown(viewName, instance, e, action, $mainElement, executeKeyDown)\r\n };\r\n var mouseDownHandler = function() {\r\n isMouseDown = true;\r\n $mainElement.removeClass(FOCUS_STATE_CLASS)\r\n };\r\n var focusinHandler = function() {\r\n var needShowOverlay = !isMouseDown && !isHiddenFocusing;\r\n if (needShowOverlay) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n }\r\n isMouseDown = false\r\n };\r\n _events_engine.default.on($element, \"keydown\", selector, keyDownHandler);\r\n _events_engine.default.on($element, \"mousedown\", selector, mouseDownHandler);\r\n _events_engine.default.on($element, \"focusin\", selector, focusinHandler);\r\n return function() {\r\n _events_engine.default.off($element, \"keydown\", selector, keyDownHandler);\r\n _events_engine.default.off($element, \"mousedown\", selector, mouseDownHandler);\r\n _events_engine.default.off($element, \"focusin\", selector, focusinHandler)\r\n }\r\n}\r\n\r\nfunction restoreFocus(instance) {\r\n if (!instance.option(\"useLegacyKeyboardNavigation\") && focusedElementInfo) {\r\n var viewInstance = focusedElementInfo.viewInstance;\r\n if (viewInstance) {\r\n var $activeElements = getActiveAccessibleElements(focusedElementInfo.ariaLabel, viewInstance.element());\r\n var $targetElement = $activeElements.eq(focusedElementInfo.index);\r\n focusedElementInfo = null;\r\n _events_engine.default.trigger($targetElement, \"focus\")\r\n }\r\n }\r\n}\r\n\r\nfunction selectView(viewName, instance, event) {\r\n var keyName = (0, _index.normalizeKeyName)(event);\r\n if (event.ctrlKey && (\"upArrow\" === keyName || \"downArrow\" === keyName)) {\r\n var viewNames = Object.keys(viewItemSelectorMap);\r\n var viewItemIndex = viewNames.indexOf(viewName);\r\n while (viewItemIndex >= 0 && viewItemIndex < viewNames.length) {\r\n viewItemIndex = \"upArrow\" === keyName ? --viewItemIndex : ++viewItemIndex;\r\n var _viewName = viewNames[viewItemIndex];\r\n var viewSelectors = viewItemSelectorMap[_viewName];\r\n var $focusViewElement = findFocusedViewElement(viewSelectors);\r\n if ($focusViewElement && $focusViewElement.length) {\r\n $focusViewElement.attr(\"tabindex\", instance.option(\"tabindex\") || 0);\r\n _events_engine.default.trigger($focusViewElement, \"focus\");\r\n $focusViewElement.removeClass(FOCUS_DISABLED_CLASS);\r\n break\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction setTabIndex(instance, $element) {\r\n if (!instance.option(\"useLegacyKeyboardnavigation\")) {\r\n $element.attr(\"tabindex\", instance.option(\"tabindex\") || 0)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (ui/select_box.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _common = require(\"../core/utils/common\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _array = require(\"../core/utils/array\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _element = require(\"../core/element\");\r\nvar _errors = _interopRequireDefault(require(\"../core/errors\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../core/dom_adapter\"));\r\nvar _utils = require(\"./widget/utils.ink_ripple\");\r\nvar _message = _interopRequireDefault(require(\"../localization/message\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _ui = _interopRequireDefault(require(\"./drop_down_editor/ui.drop_down_list\"));\r\nvar _index = require(\"../events/utils/index\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DISABLED_STATE_SELECTOR = \".dx-state-disabled\";\r\nvar SELECTBOX_CLASS = \"dx-selectbox\";\r\nvar SELECTBOX_POPUP_CLASS = \"dx-selectbox-popup\";\r\nvar SELECTBOX_CONTAINER_CLASS = \"dx-selectbox-container\";\r\nvar SELECTBOX_POPUP_WRAPPER_CLASS = \"dx-selectbox-popup-wrapper\";\r\nvar SelectBox = _ui.default.inherit({\r\n _supportedKeys: function() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var clearSelectBox = function(e) {\r\n var isEditable = this._isEditable();\r\n if (!isEditable) {\r\n if (this.option(\"showClearButton\")) {\r\n e.preventDefault();\r\n this.reset()\r\n }\r\n } else {\r\n if (this._valueSubstituted()) {\r\n this._preventFiltering = true\r\n }\r\n }\r\n this._savedTextRemoveEvent = e;\r\n this._preventSubstitution = true\r\n };\r\n var searchIfNeeded = function() {\r\n if (that.option(\"searchEnabled\") && that._valueSubstituted()) {\r\n that._searchHandler()\r\n }\r\n };\r\n return (0, _extend.extend)({}, parent, {\r\n tab: function() {\r\n if (this.option(\"opened\") && \"instantly\" === this.option(\"applyValueMode\")) {\r\n this._resetCaretPosition(true)\r\n }\r\n parent.tab && parent.tab.apply(this, arguments);\r\n this._cancelSearchIfNeed()\r\n },\r\n upArrow: function(e) {\r\n if (parent.upArrow && parent.upArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n },\r\n downArrow: function(e) {\r\n if (parent.downArrow && parent.downArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n },\r\n leftArrow: function() {\r\n searchIfNeeded();\r\n parent.leftArrow && parent.leftArrow.apply(this, arguments)\r\n },\r\n rightArrow: function() {\r\n searchIfNeeded();\r\n parent.rightArrow && parent.rightArrow.apply(this, arguments)\r\n },\r\n home: function() {\r\n searchIfNeeded();\r\n parent.home && parent.home.apply(this, arguments)\r\n },\r\n end: function() {\r\n searchIfNeeded();\r\n parent.end && parent.end.apply(this, arguments)\r\n },\r\n escape: function() {\r\n var result = parent.escape && parent.escape.apply(this, arguments);\r\n this._cancelEditing();\r\n return null !== result && void 0 !== result ? result : true\r\n },\r\n enter: function(e) {\r\n var isOpened = this.option(\"opened\");\r\n var inputText = this._input().val().trim();\r\n var isCustomText = inputText && this._list && !this._list.option(\"focusedElement\");\r\n if (!inputText && (0, _type.isDefined)(this.option(\"value\")) && this.option(\"allowClearing\")) {\r\n this._saveValueChangeEvent(e);\r\n this.option({\r\n selectedItem: null,\r\n value: null\r\n });\r\n this.close()\r\n } else {\r\n if (this.option(\"acceptCustomValue\")) {\r\n e.preventDefault();\r\n if (isCustomText) {\r\n if (isOpened) {\r\n this._toggleOpenState()\r\n }\r\n this._valueChangeEventHandler(e)\r\n }\r\n return isOpened\r\n }\r\n if (parent.enter && parent.enter.apply(this, arguments)) {\r\n return isOpened\r\n }\r\n }\r\n },\r\n space: function(e) {\r\n var isOpened = this.option(\"opened\");\r\n var isSearchEnabled = this.option(\"searchEnabled\");\r\n var acceptCustomValue = this.option(\"acceptCustomValue\");\r\n if (!isOpened || isSearchEnabled || acceptCustomValue) {\r\n return\r\n }\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e);\r\n return true\r\n },\r\n backspace: clearSelectBox,\r\n del: clearSelectBox\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n placeholder: _message.default.format(\"Select\"),\r\n fieldTemplate: null,\r\n valueChangeEvent: \"change\",\r\n acceptCustomValue: false,\r\n onCustomItemCreating: function(e) {\r\n if (!(0, _type.isDefined)(e.customItem)) {\r\n e.customItem = e.text\r\n }\r\n },\r\n showSelectionControls: false,\r\n allowClearing: true,\r\n tooltipEnabled: false,\r\n openOnFieldClick: true,\r\n showDropDownButton: true,\r\n displayCustomValue: false,\r\n useInkRipple: false,\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initCustomItemCreatingAction()\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(SELECTBOX_CLASS);\r\n this._renderTooltip();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.callBase();\r\n this._$container.addClass(SELECTBOX_CONTAINER_CLASS)\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 || this._isEditable()) {\r\n return\r\n }\r\n var config = {\r\n element: this._inputWrapper(),\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 _createPopup: function() {\r\n this.callBase();\r\n this._popup.$element().addClass(SELECTBOX_POPUP_CLASS);\r\n this._popup.$overlayContent().attr(\"tabindex\", -1)\r\n },\r\n _popupWrapperClass: function() {\r\n return this.callBase() + \" \" + SELECTBOX_POPUP_WRAPPER_CLASS\r\n },\r\n _cancelEditing: function() {\r\n if (!this.option(\"searchEnabled\") && this._list) {\r\n this._focusListElement(null);\r\n this._updateField(this.option(\"selectedItem\"))\r\n }\r\n },\r\n _renderOpenedState: function() {\r\n this.callBase();\r\n if (this.option(\"opened\")) {\r\n this._scrollToSelectedItem();\r\n this._focusSelectedElement()\r\n }\r\n },\r\n _focusSelectedElement: function() {\r\n var searchValue = this._searchValue();\r\n if (!searchValue) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var $listItems = this._list._itemElements();\r\n var index = (0, _array.inArray)(this.option(\"selectedItem\"), this.option(\"items\"));\r\n var focusedElement = index >= 0 && !this._isCustomItemSelected() ? $listItems.eq(index) : null;\r\n this._focusListElement(focusedElement)\r\n },\r\n _renderFocusedElement: function() {\r\n if (!this._list) {\r\n return\r\n }\r\n var searchValue = this._searchValue();\r\n if (!searchValue || this.option(\"acceptCustomValue\")) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var $listItems = this._list._itemElements();\r\n var focusedElement = $listItems.not(DISABLED_STATE_SELECTOR).eq(0);\r\n this._focusListElement(focusedElement)\r\n },\r\n _focusListElement: function(element) {\r\n this._preventInputValueRender = true;\r\n this._list.option(\"focusedElement\", (0, _element.getPublicElement)(element));\r\n delete this._preventInputValueRender\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._list && this._list.scrollToItem(this._list.option(\"selectedItem\"))\r\n },\r\n _listContentReadyHandler: function() {\r\n this.callBase();\r\n var isPaginate = this._dataSource && this._dataSource.paginate();\r\n if (isPaginate && this._needPopupRepaint()) {\r\n return\r\n }\r\n this._scrollToSelectedItem()\r\n },\r\n _renderValue: function() {\r\n this._renderInputValue();\r\n this._setSubmitValue();\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n _renderInputValue: function() {\r\n return this.callBase().always(function() {\r\n this._renderInputValueAsync()\r\n }.bind(this))\r\n },\r\n _renderInputValueAsync: function() {\r\n this._renderTooltip();\r\n this._renderInputValueImpl().always(function() {\r\n this._refreshSelected()\r\n }.bind(this))\r\n },\r\n _renderInputValueImpl: function() {\r\n this._renderField();\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n _setNextItem: function(step) {\r\n var item = this._calcNextItem(step);\r\n var value = this._valueGetter(item);\r\n this._setValue(value)\r\n },\r\n _setNextValue: function(e) {\r\n var dataSourceIsLoaded = this._dataSource.isLoaded() ? (new _deferred.Deferred).resolve() : this._dataSource.load();\r\n dataSourceIsLoaded.done(function() {\r\n var selectedIndex = this._getSelectedIndex();\r\n var hasPages = this._dataSource.pageSize();\r\n var isLastPage = this._dataSource.isLastPage();\r\n var isLastItem = selectedIndex === this._items().length - 1;\r\n this._saveValueChangeEvent(e);\r\n var step = \"downArrow\" === (0, _index.normalizeKeyName)(e) ? 1 : -1;\r\n if (hasPages && !isLastPage && isLastItem && step > 0) {\r\n if (!this._popup) {\r\n this._createPopup()\r\n }\r\n if (!this._dataSource.isLoading()) {\r\n this._list._loadNextPage().done(this._setNextItem.bind(this, step))\r\n }\r\n } else {\r\n this._setNextItem(step)\r\n }\r\n }.bind(this))\r\n },\r\n _setSelectedItem: function(item) {\r\n var isUnknownItem = !this._isCustomValueAllowed() && void 0 === item;\r\n this.callBase(isUnknownItem ? null : item);\r\n if (!isUnknownItem && (!this._isEditable() || this._isCustomItemSelected())) {\r\n this._setListOption(\"selectedItem\", this.option(\"selectedItem\"))\r\n }\r\n },\r\n _isCustomValueAllowed: function() {\r\n return this.option(\"acceptCustomValue\") || this.callBase()\r\n },\r\n _displayValue: function(item) {\r\n item = !(0, _type.isDefined)(item) && this._isCustomValueAllowed() ? this.option(\"value\") : item;\r\n return this.callBase(item)\r\n },\r\n _listConfig: function() {\r\n var result = (0, _extend.extend)(this.callBase(), {\r\n pageLoadMode: \"scrollBottom\",\r\n onSelectionChanged: this._getSelectionChangeHandler(),\r\n selectedItem: this.option(\"selectedItem\"),\r\n onFocusedItemChanged: this._listFocusedItemChangeHandler.bind(this)\r\n });\r\n if (this.option(\"showSelectionControls\")) {\r\n (0, _extend.extend)(result, {\r\n showSelectionControls: true,\r\n selectionByClick: true\r\n })\r\n }\r\n return result\r\n },\r\n _listFocusedItemChangeHandler: function(e) {\r\n if (this._preventInputValueRender) {\r\n return\r\n }\r\n var list = e.component;\r\n var focusedElement = (0, _renderer.default)(list.option(\"focusedElement\"));\r\n var focusedItem = list._getItemData(focusedElement);\r\n this._updateField(focusedItem)\r\n },\r\n _updateField: function(item) {\r\n var fieldTemplate = this._getTemplateByOption(\"fieldTemplate\");\r\n if (!(fieldTemplate && this.option(\"fieldTemplate\"))) {\r\n var text = this._displayGetter(item);\r\n this.option(\"text\", text);\r\n this._renderDisplayText(text);\r\n return\r\n }\r\n this._renderField()\r\n },\r\n _getSelectionChangeHandler: function() {\r\n return this.option(\"showSelectionControls\") ? this._selectionChangeHandler.bind(this) : _common.noop\r\n },\r\n _selectionChangeHandler: function(e) {\r\n (0, _iterator.each)(e.addedItems || [], function(_, addedItem) {\r\n this._setValue(this._valueGetter(addedItem))\r\n }.bind(this))\r\n },\r\n _getActualSearchValue: function() {\r\n return this._dataSource.searchValue()\r\n },\r\n _toggleOpenState: function(isVisible) {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n if (!isVisible && !this._shouldClearFilter()) {\r\n this._restoreInputText(true)\r\n }\r\n if (this._wasSearch() && isVisible) {\r\n this._wasSearch(false);\r\n var showDataImmediately = this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded();\r\n if (showDataImmediately && this._dataSource) {\r\n if (this._searchTimer) {\r\n return\r\n }\r\n var searchValue = this._getActualSearchValue();\r\n searchValue && this._wasSearch(true);\r\n this._filterDataSource(searchValue || null)\r\n } else {\r\n this._setListOption(\"items\", [])\r\n }\r\n }\r\n if (isVisible) {\r\n this._scrollToSelectedItem()\r\n }\r\n this.callBase(isVisible)\r\n },\r\n _renderTooltip: function() {\r\n if (this.option(\"tooltipEnabled\")) {\r\n this.$element().attr(\"title\", this.option(\"displayValue\"))\r\n }\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this._dimensionChanged()\r\n },\r\n _isValueEqualInputText: function() {\r\n var initialSelectedItem = this.option(\"selectedItem\");\r\n if (null === initialSelectedItem) {\r\n return false\r\n }\r\n var value = this._displayGetter(initialSelectedItem);\r\n var displayValue = value ? String(value) : \"\";\r\n var inputText = this._searchValue();\r\n return displayValue === inputText\r\n },\r\n _popupHidingHandler: function() {\r\n if (this._isValueEqualInputText()) {\r\n this._cancelEditing()\r\n }\r\n this.callBase()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n if (this._shouldCancelSearch()) {\r\n this._wasSearch(false);\r\n this._searchCanceled();\r\n this._shouldCancelSearch(false)\r\n }\r\n },\r\n _restoreInputText: function(saveEditingValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._loadItemDeferred && this._loadItemDeferred.always(function() {\r\n var initialSelectedItem = this.option(\"selectedItem\");\r\n if (this.option(\"acceptCustomValue\")) {\r\n if (!saveEditingValue) {\r\n this._updateField(initialSelectedItem);\r\n this._clearFilter()\r\n }\r\n return\r\n }\r\n if (this.option(\"searchEnabled\")) {\r\n if (!this._searchValue() && this.option(\"allowClearing\")) {\r\n this._clearTextValue();\r\n return\r\n }\r\n }\r\n if (this._isValueEqualInputText()) {\r\n return\r\n }\r\n this._renderInputValue().always(function(selectedItem) {\r\n var newSelectedItem = (0, _common.ensureDefined)(selectedItem, initialSelectedItem);\r\n this._setSelectedItem(newSelectedItem);\r\n this._updateField(newSelectedItem);\r\n this._clearFilter()\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n _focusOutHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n var isOverlayTarget = this._isOverlayNestedTarget(e.relatedTarget);\r\n if (!isOverlayTarget) {\r\n this._restoreInputText();\r\n this._clearSearchTimer()\r\n }\r\n this._cancelSearchIfNeed(e)\r\n }\r\n e.target = this._input().get(0);\r\n this.callBase(e)\r\n },\r\n _cancelSearchIfNeed: function(e) {\r\n var _this$option = this.option(),\r\n searchEnabled = _this$option.searchEnabled;\r\n var isOverlayTarget = this._isOverlayNestedTarget(null === e || void 0 === e ? void 0 : e.relatedTarget);\r\n var shouldCancelSearch = this._wasSearch() && searchEnabled && !isOverlayTarget;\r\n if (shouldCancelSearch) {\r\n var _this$_popup;\r\n var isPopupVisible = null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup._hideAnimationProcessing;\r\n this._clearSearchTimer();\r\n if (isPopupVisible) {\r\n this._shouldCancelSearch(true)\r\n } else {\r\n this._wasSearch(false);\r\n this._searchCanceled()\r\n }\r\n }\r\n },\r\n _shouldCancelSearch: function(value) {\r\n if (!arguments.length) {\r\n return this._shouldCancelSearchValue\r\n }\r\n this._shouldCancelSearchValue = value\r\n },\r\n _isOverlayNestedTarget: function(target) {\r\n return !!(0, _renderer.default)(target).closest(\".\".concat(SELECTBOX_POPUP_WRAPPER_CLASS)).length\r\n },\r\n _clearTextValue: function() {\r\n if (this.option(\"selectedItem\")) {\r\n if (this._savedTextRemoveEvent) {\r\n this._saveValueChangeEvent(this._savedTextRemoveEvent)\r\n }\r\n this.option(\"value\", null)\r\n }\r\n delete this._savedTextRemoveEvent\r\n },\r\n _shouldOpenPopup: function() {\r\n return this._needPassDataSourceToList() && this._wasSearch()\r\n },\r\n _isFocused: function() {\r\n var activeElement = _dom_adapter.default.getActiveElement();\r\n return this.callBase() && (0, _renderer.default)(activeElement).closest(this._input()).length > 0\r\n },\r\n _renderValueChangeEvent: function() {\r\n if (this._isEditable()) {\r\n this.callBase()\r\n }\r\n },\r\n _fieldRenderData: function() {\r\n var $listFocused = this._list && this.option(\"opened\") && (0, _renderer.default)(this._list.option(\"focusedElement\"));\r\n if ($listFocused && $listFocused.length) {\r\n return this._list._getItemData($listFocused)\r\n }\r\n return this.option(\"selectedItem\")\r\n },\r\n _isSelectedValue: function(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _shouldCloseOnItemClick: function() {\r\n return !(this.option(\"showSelectionControls\") && \"single\" !== this.option(\"selectionMode\"))\r\n },\r\n _listItemClickHandler: function(e) {\r\n var previousValue = this._getCurrentValue();\r\n this._focusListElement((0, _renderer.default)(e.itemElement));\r\n this._saveValueChangeEvent(e.event);\r\n this._completeSelection(this._valueGetter(e.itemData));\r\n if (this._shouldCloseOnItemClick()) {\r\n this.option(\"opened\", false)\r\n }\r\n if (this.option(\"searchEnabled\") && previousValue === this._valueGetter(e.itemData)) {\r\n this._updateField(e.itemData)\r\n }\r\n if (this._shouldClearFilter()) {\r\n this._cancelSearchIfNeed()\r\n }\r\n },\r\n _shouldClearFilter: function() {\r\n return this._wasSearch()\r\n },\r\n _completeSelection: function(value) {\r\n this._setValue(value)\r\n },\r\n _loadItem: function(value, cache) {\r\n var that = this;\r\n var deferred = new _deferred.Deferred;\r\n this.callBase(value, cache).done(function(item) {\r\n deferred.resolve(item)\r\n }.bind(this)).fail(function(args) {\r\n if (null !== args && void 0 !== args && args.shouldSkipCallback) {\r\n return\r\n }\r\n var selectedItem = that.option(\"selectedItem\");\r\n if (that.option(\"acceptCustomValue\") && value === that._valueGetter(selectedItem)) {\r\n deferred.resolve(selectedItem)\r\n } else {\r\n deferred.reject()\r\n }\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n _loadInputValue: function(value, callback) {\r\n this._loadItemDeferred = this._loadItem(value).always(callback);\r\n return this._loadItemDeferred\r\n },\r\n _isCustomItemSelected: function() {\r\n var selectedItem = this.option(\"selectedItem\");\r\n var searchValue = this._searchValue();\r\n var selectedItemText = this._displayGetter(selectedItem);\r\n return !selectedItemText || searchValue !== selectedItemText.toString()\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (this.option(\"acceptCustomValue\") && this._isCustomItemSelected() && !this._isValueChanging) {\r\n this._isValueChanging = true;\r\n this._customItemAddedHandler(e);\r\n this._isValueChanging = false\r\n }\r\n },\r\n _initCustomItemCreatingAction: function() {\r\n this._customItemCreatingAction = this._createActionByOption(\"onCustomItemCreating\")\r\n },\r\n _createCustomItem: function(text) {\r\n var params = {\r\n text: text\r\n };\r\n var actionResult = this._customItemCreatingAction(params);\r\n var item = (0, _common.ensureDefined)(actionResult, params.customItem);\r\n if ((0, _type.isDefined)(actionResult)) {\r\n _errors.default.log(\"W0015\", \"onCustomItemCreating\", \"customItem\")\r\n }\r\n return item\r\n },\r\n _customItemAddedHandler: function(e) {\r\n var searchValue = this._searchValue();\r\n var item = this._createCustomItem(searchValue);\r\n this._saveValueChangeEvent(e);\r\n if (void 0 === item) {\r\n this._renderValue();\r\n throw _errors.default.Error(\"E0121\")\r\n }\r\n if ((0, _type.isPromise)(item)) {\r\n (0, _deferred.fromPromise)(item).done(this._setCustomItem.bind(this)).fail(this._setCustomItem.bind(this, null))\r\n } else {\r\n this._setCustomItem(item)\r\n }\r\n },\r\n _setCustomItem: function(item) {\r\n if (this._disposed) {\r\n return\r\n }\r\n item = item || null;\r\n this.option(\"selectedItem\", item);\r\n this._cancelSearchIfNeed();\r\n this._setValue(this._valueGetter(item));\r\n this._renderDisplayText(this._displayGetter(item))\r\n },\r\n _clearValueHandler: function(e) {\r\n this._preventFiltering = true;\r\n this.callBase(e);\r\n return false\r\n },\r\n _wasSearch: function(value) {\r\n if (!arguments.length) {\r\n return this._wasSearchValue\r\n }\r\n this._wasSearchValue = value\r\n },\r\n _searchHandler: function() {\r\n if (this._preventFiltering) {\r\n delete this._preventFiltering;\r\n return\r\n }\r\n if (this._needPassDataSourceToList()) {\r\n this._wasSearch(true)\r\n }\r\n this.callBase(arguments)\r\n },\r\n _dataSourceFiltered: function(searchValue) {\r\n this.callBase();\r\n if (null !== searchValue) {\r\n this._renderInputSubstitution();\r\n this._renderFocusedElement()\r\n }\r\n },\r\n _valueSubstituted: function() {\r\n var input = this._input().get(0);\r\n var isAllSelected = 0 === input.selectionStart && input.selectionEnd === this._searchValue().length;\r\n var inputHasSelection = input.selectionStart !== input.selectionEnd;\r\n return this._wasSearch() && inputHasSelection && !isAllSelected\r\n },\r\n _shouldSubstitutionBeRendered: function() {\r\n return !this._preventSubstitution && this.option(\"searchEnabled\") && !this.option(\"acceptCustomValue\") && \"startswith\" === this.option(\"searchMode\")\r\n },\r\n _renderInputSubstitution: function() {\r\n if (!this._shouldSubstitutionBeRendered()) {\r\n delete this._preventSubstitution;\r\n return\r\n }\r\n var item = this._list && this._getPlainItems(this._list.option(\"items\"))[0];\r\n if (!item) {\r\n return\r\n }\r\n var $input = this._input();\r\n var valueLength = $input.val().length;\r\n if (0 === valueLength) {\r\n return\r\n }\r\n var inputElement = $input.get(0);\r\n var displayValue = this._displayGetter(item).toString();\r\n inputElement.value = displayValue;\r\n this._caret({\r\n start: valueLength,\r\n end: displayValue.length\r\n })\r\n },\r\n _dispose: function() {\r\n this._renderInputValueAsync = _common.noop;\r\n delete this._loadItemDeferred;\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onCustomItemCreating\":\r\n this._initCustomItemCreatingAction();\r\n break;\r\n case \"tooltipEnabled\":\r\n this._renderTooltip();\r\n break;\r\n case \"displayCustomValue\":\r\n case \"acceptCustomValue\":\r\n case \"showSelectionControls\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"allowClearing\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n delete this._inkRipple;\r\n this.callBase()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxSelectBox\", SelectBox);\r\nvar _default = SelectBox;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/shared/filtering.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _type = require(\"../../core/utils/type\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar DEFAULT_DATE_INTERVAL = [\"year\", \"month\", \"day\"];\r\nvar DEFAULT_DATETIME_INTERVAL = [\"year\", \"month\", \"day\", \"hour\", \"minute\"];\r\nvar isDateType = function(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n};\r\nvar getGroupInterval = function(column) {\r\n var index;\r\n var result = [];\r\n var dateIntervals = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\"];\r\n var groupInterval = column.headerFilter && column.headerFilter.groupInterval;\r\n var interval = \"quarter\" === groupInterval ? \"month\" : groupInterval;\r\n if (isDateType(column.dataType) && null !== groupInterval) {\r\n result = \"datetime\" === column.dataType ? DEFAULT_DATETIME_INTERVAL : DEFAULT_DATE_INTERVAL;\r\n index = (0, _array.inArray)(interval, dateIntervals);\r\n if (index >= 0) {\r\n result = dateIntervals.slice(0, index);\r\n result.push(groupInterval);\r\n return result\r\n }\r\n return result\r\n } else {\r\n if ((0, _type.isDefined)(groupInterval)) {\r\n return Array.isArray(groupInterval) ? groupInterval : [groupInterval]\r\n }\r\n }\r\n};\r\nvar _default = function() {\r\n var getFilterSelector = function(column, target) {\r\n var selector = column.dataField || column.selector;\r\n if (\"search\" === target) {\r\n selector = column.displayField || column.calculateDisplayValue || selector\r\n }\r\n return selector\r\n };\r\n var isZeroTime = function(date) {\r\n return date.getHours() + date.getMinutes() + date.getSeconds() + date.getMilliseconds() < 1\r\n };\r\n var getDateValues = function(dateValue) {\r\n if ((0, _type.isDate)(dateValue)) {\r\n return [dateValue.getFullYear(), dateValue.getMonth(), dateValue.getDate(), dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds()]\r\n }\r\n return (0, _iterator.map)((\"\" + dateValue).split(\"/\"), function(value, index) {\r\n return 1 === index ? Number(value) - 1 : Number(value)\r\n })\r\n };\r\n var getFilterExpressionByRange = function(filterValue, target) {\r\n var column = this;\r\n var endFilterValue;\r\n var startFilterExpression;\r\n var endFilterExpression;\r\n var selector = getFilterSelector(column, target);\r\n if (Array.isArray(filterValue) && (0, _type.isDefined)(filterValue[0]) && (0, _type.isDefined)(filterValue[1])) {\r\n startFilterExpression = [selector, \">=\", filterValue[0]];\r\n endFilterExpression = [selector, \"<=\", filterValue[1]];\r\n if (isDateType(column.dataType) && isZeroTime(filterValue[1])) {\r\n endFilterValue = new Date(filterValue[1].getTime());\r\n if (\"date\" === column.dataType) {\r\n endFilterValue.setDate(filterValue[1].getDate() + 1)\r\n }\r\n endFilterExpression = [selector, \"<\", endFilterValue]\r\n }\r\n return [startFilterExpression, \"and\", endFilterExpression]\r\n }\r\n };\r\n var getFilterExpressionForDate = function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var dateStart;\r\n var dateEnd;\r\n var dateInterval;\r\n var values = getDateValues(filterValue);\r\n var selector = getFilterSelector(column, target);\r\n if (\"headerFilter\" === target) {\r\n dateInterval = getGroupInterval(column)[values.length - 1]\r\n } else {\r\n if (\"datetime\" === column.dataType) {\r\n dateInterval = \"minute\"\r\n }\r\n }\r\n switch (dateInterval) {\r\n case \"year\":\r\n dateStart = new Date(values[0], 0, 1);\r\n dateEnd = new Date(values[0] + 1, 0, 1);\r\n break;\r\n case \"month\":\r\n dateStart = new Date(values[0], values[1], 1);\r\n dateEnd = new Date(values[0], values[1] + 1, 1);\r\n break;\r\n case \"quarter\":\r\n dateStart = new Date(values[0], 3 * values[1], 1);\r\n dateEnd = new Date(values[0], 3 * values[1] + 3, 1);\r\n break;\r\n case \"hour\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3] + 1);\r\n break;\r\n case \"minute\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4] + 1);\r\n break;\r\n case \"second\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4], values[5]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4], values[5] + 1);\r\n break;\r\n default:\r\n dateStart = new Date(values[0], values[1], values[2]);\r\n dateEnd = new Date(values[0], values[1], values[2] + 1)\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"<\":\r\n return [selector, \"<\", dateStart];\r\n case \"<=\":\r\n return [selector, \"<\", dateEnd];\r\n case \">\":\r\n return [selector, \">=\", dateEnd];\r\n case \">=\":\r\n return [selector, \">=\", dateStart];\r\n case \"<>\":\r\n return [\r\n [selector, \"<\", dateStart], \"or\", [selector, \">=\", dateEnd]\r\n ];\r\n default:\r\n return [\r\n [selector, \">=\", dateStart], \"and\", [selector, \"<\", dateEnd]\r\n ]\r\n }\r\n };\r\n var getFilterExpressionForNumber = function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var selector = getFilterSelector(column, target);\r\n var groupInterval = getGroupInterval(column);\r\n if (\"headerFilter\" === target && groupInterval && (0, _type.isDefined)(filterValue)) {\r\n var values = (\"\" + filterValue).split(\"/\");\r\n var value = Number(values[values.length - 1]);\r\n var interval = groupInterval[values.length - 1];\r\n var startFilterValue = [selector, \">=\", value];\r\n var endFilterValue = [selector, \"<\", value + interval];\r\n var condition = [startFilterValue, \"and\", endFilterValue];\r\n return condition\r\n }\r\n return [selector, selectedFilterOperation || \"=\", filterValue]\r\n };\r\n return {\r\n defaultCalculateFilterExpression: function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var selector = getFilterSelector(column, target);\r\n var isSearchByDisplayValue = column.calculateDisplayValue && \"search\" === target;\r\n var dataType = isSearchByDisplayValue && column.lookup && column.lookup.dataType || column.dataType;\r\n var filter = null;\r\n if ((\"headerFilter\" === target || \"filterBuilder\" === target) && null === filterValue) {\r\n filter = [selector, selectedFilterOperation || \"=\", null];\r\n if (\"string\" === dataType) {\r\n filter = [filter, \"=\" === selectedFilterOperation ? \"or\" : \"and\", [selector, selectedFilterOperation || \"=\", \"\"]]\r\n }\r\n } else {\r\n if (\"string\" === dataType && (!column.lookup || isSearchByDisplayValue)) {\r\n filter = [selector, selectedFilterOperation || \"contains\", filterValue]\r\n } else {\r\n if (\"between\" === selectedFilterOperation) {\r\n return getFilterExpressionByRange.apply(column, [filterValue, target])\r\n } else {\r\n if (isDateType(dataType) && (0, _type.isDefined)(filterValue)) {\r\n return getFilterExpressionForDate.apply(column, arguments)\r\n } else {\r\n if (\"number\" === dataType) {\r\n return getFilterExpressionForNumber.apply(column, arguments)\r\n } else {\r\n if (\"object\" !== dataType) {\r\n filter = [selector, selectedFilterOperation || \"=\", filterValue]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return filter\r\n },\r\n getGroupInterval: getGroupInterval\r\n }\r\n}();\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n"],"sourceRoot":""}