{"version":3,"sources":["webpack:///./node_modules/devextreme/ui/toolbar/ui.toolbar.base.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.decorator.js","webpack:///./node_modules/devextreme/ui/scroll_view/ui.scrollbar.js","webpack:///./node_modules/devextreme/ui/action_sheet.js","webpack:///./node_modules/devextreme/ui/shared/grouped_data_converter_mixin.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.decorator.switchable.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.decorator.static.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.strategy.grouped.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.decorator.selection.js","webpack:///./node_modules/devextreme/ui/scroll_view/ui.scroll_view.native.swipe_down.js","webpack:///./node_modules/devextreme/ui/check_box.js","webpack:///./node_modules/devextreme/ui/popup.js","webpack:///./node_modules/devextreme/ui/list.js","webpack:///./node_modules/devextreme/ui/scroll_view/ui.scroll_view.simulated.js","webpack:///./node_modules/devextreme/ui/scroll_view.js","webpack:///./node_modules/devextreme/ui/scroll_view/ui.scrollable.native.js","webpack:///./node_modules/devextreme/ui/load_panel.js","webpack:///./node_modules/devextreme/ui/list/item.js","webpack:///./node_modules/devextreme/ui/list/ui.list.base.js","webpack:///./node_modules/devextreme/events/swipe.js","webpack:///./node_modules/devextreme/ui/scroll_view/ui.scrollable.js","webpack:///./node_modules/devextreme/ui/collection/ui.collection_widget.live_update.js","webpack:///./node_modules/devextreme/ui/scroll_view/ui.scrollable.simulated.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.decorator_menu_helper.js","webpack:///./node_modules/devextreme/ui/scroll_view/animator.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.js","webpack:///./node_modules/devextreme/ui/scroll_view/ui.scroll_view.native.pull_down.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.decorator.swipe.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.provider.js","webpack:///./node_modules/devextreme/ui/scroll_view/ui.scrollable.device.js","webpack:///./node_modules/devextreme/ui/popover.js","webpack:///./node_modules/devextreme/ui/widget/ui.search_box_mixin.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.decorator.switchable.button.js","webpack:///./node_modules/devextreme/ui/scroll_view/ui.scroll_view.js","webpack:///./node_modules/devextreme/ui/sortable.js","webpack:///./node_modules/devextreme/ui/radio_group/radio_button.js","webpack:///./node_modules/devextreme/ui/toolbar/constants.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.decorator.switchable.slide.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.decorator_registry.js","webpack:///./node_modules/devextreme/ui/draggable.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.search.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.decorator.reorder.js","webpack:///./node_modules/devextreme/ui/list/ui.list.edit.decorator.context.js","webpack:///./node_modules/devextreme/ui/collection/ui.collection_widget.async.js"],"names":["exports","default","_renderer","_interopRequireDefault","_themes","_common","_type","_component_registrator","_array","_extend","_iterator","_position","_uiCollection_widget","_promise","_bindable_template","_errors","_fx","_constants","obj","__esModule","TOOLBAR_BEFORE_CLASS","TOOLBAR_CENTER_CLASS","TOOLBAR_AFTER_CLASS","TOOLBAR_MINI_CLASS","TOOLBAR_ITEM_CLASS","TOOLBAR_LABEL_CLASS","TOOLBAR_BUTTON_CLASS","TOOLBAR_ITEMS_CONTAINER_CLASS","TOOLBAR_GROUP_CLASS","TOOLBAR_COMPACT_CLASS","TOOLBAR_LABEL_SELECTOR","TOOLBAR_MULTILINE_CLASS","TEXT_BUTTON_MODE","DEFAULT_BUTTON_TYPE","TOOLBAR_ITEM_DATA_KEY","ToolbarBase","inherit","compactMode","ctor","element","options","this","_userOptions","callBase","log","NAME","_getSynchronizableOptionsForCreateComponent","filter","item","_initTemplates","template","BindableTemplate","$container","data","rawModel","isPlainObject","text","wrapInner","html","widget","option","stylingMode","type","String","_getTemplate","render","container","model","parent","bind","_templateManager","addDefaultTemplates","menuItem","_getDefaultOptions","extend","renderAs","grouped","useFlatButtons","useDefaultButtons","multiline","_defaultOptionsRules","concat","device","isMaterial","_itemContainer","_$toolbarItemsContainer","find","join","_itemClass","_itemDataKey","_buttonClass","_dimensionChanged","_arrangeItems","_applyCompactMode","_initMarkup","_renderToolbar","_renderSections","setAria","_waitParentAnimationFinished","_this","$element","timeout","resolve","check","readyToResolve","parents","each","_","isAnimating","runCheck","clearTimeout","_waitParentAnimationTimeout","setTimeout","_render","_renderItemsAsync","all","_checkWebFontForLabelsLoaded","then","_postProcessRenderItems","addClass","TOOLBAR_CLASS","toggleClass","appendTo","that","sectionClass","$section","length","$labels","promises","label","fontWeight","css","push","waitWebFont","elementWidth","width","_$centerSection","margin","beforeRect","getBoundingRect","_$beforeSection","get","afterRect","_$afterSection","_alignCenterSection","$label","eq","labelOffset","position","left","widthBeforeSection","hasClass","widthAfterSection","elemsAtSectionWidth","children","not","outerWidth","freeSpace","sectionMaxWidth","Math","max","_alignSection","labelPaddings","isRTL","leftRect","rightRect","centerRect","right","marginLeft","marginRight","maxWidth","labels","toArray","_getCurrentLabelsPaddings","currentWidth","_getCurrentLabelsWidth","difference","abs","reverse","_alignSectionLabels","expanding","getRealLabelWidth","i","currentLabelWidth","ceil","labelMaxWidth","possibleLabelWidth","removeClass","_getSummaryItemsWidth","itemElements","forEach","index","padding","_renderItem","itemContainer","$after","location","itemHasText","itemElement","cssClass","_renderGroupedItems","groupIndex","group","groupItems","items","itemIndex","append","_renderItems","_getToolbarItems","_renderContentImpl","_renderedItemsCount","slice","_renderEmptyMessage","noop","_clean","empty","_visibilityChanged","visible","_isVisible","height","_getIndexByItem","inArray","_itemOptionChanged","property","value","apply","_optionChanged","args","name","arguments","_invalidate","_dispose","_default","module","_events_engine","_class","_swipe","_index","LIST_EDIT_DECORATOR","SWIPE_START_EVENT_NAME","addNamespace","start","SWIPE_UPDATE_EVENT_NAME","swipe","SWIPE_END_EVENT_NAME","end","EditDecorator","list","_list","_init","_shouldHandleSwipe","_attachSwipeEvent","config","swipeConfig","itemSizeFunc","_clearSwipeCache","_itemWidthCache","on","$itemElement","_itemSwipeStartHandler","_itemSwipeUpdateHandler","_itemSwipeEndHandler","e","currentTarget","is","cancel","_inkRippleTimer","_swipeStartHandler","_swipeUpdateHandler","_swipeEndHandler","beforeBag","afterBag","_commonOptions","activeStateEnabled","hoverStateEnabled","focusStateEnabled","modifyElement","afterRender","handleClick","handleKeyboardEvents","handleEnterPressing","handleContextMenu","visibilityChange","getExcludedSelectors","dispose","_dom_adapter","_ready_callbacks","_translator","_ui","_pointer","SCROLLBAR","SCROLLABLE_SCROLLBAR_CLASS","SCROLLABLE_SCROLLBAR_ACTIVE_CLASS","SCROLLABLE_SCROLL_CLASS","SCROLLABLE_SCROLL_CONTENT_CLASS","HOVER_ENABLED_STATE","HORIZONTAL","THUMB_MIN_SIZE","SCROLLBAR_VISIBLE","onScroll","onHover","always","never","activeScrollbar","Scrollbar","direction","visibilityMode","containerSize","contentSize","expandable","scaleRatio","_isHovered","_renderThumb","_renderDirection","_update","_attachPointerDownHandler","_isHoverMode","_$thumb","isThumb","_dimension","_prop","down","feedbackOn","feedbackOff","cursorEnter","_needScrollbar","cursorLeave","_renderDimensions","_toggleVisibility","_adjustVisibility","_baseContainerToContentRatio","moveTo","_isHidden","scrollBarLocation","_calculateScrollBarPosition","move","_thumbRatio","round","baseContainerSize","baseContentSize","isNaN","_realContainerToContentRatio","thumbSize","containerToContentRatio","_normalizeSize","size","off","update","deferRenderer","add","subscribeGlobal","getDocument","up","_window","_message","_button","_popup","_popover","_deferred","window","getWindow","ACTION_SHEET_CLASS","ACTION_SHEET_CONTAINER_CLASS","ACTION_SHEET_POPUP_WRAPPER_CLASS","ACTION_SHEET_POPOVER_WRAPPER_CLASS","ACTION_SHEET_CANCEL_BUTTON_CLASS","ACTION_SHEET_ITEM_CLASS","ACTION_SHEET_ITEM_DATA_KEY","ACTION_SHEET_WITHOUT_TITLE_CLASS","ActionSheet","usePopover","target","title","showTitle","showCancelButton","cancelText","format","onCancelClick","noDataText","selectionByClick","platform","tablet","button","onClick","click","_$itemContainer","_createItemContainer","_renderPopup","_renderDisabled","_$popup","_isPopoverMode","_createPopover","_createPopup","_renderPopupTitle","_mapPopupOption","optionName","_wrapper","remove","_overlayConfig","onInitialized","component","disabled","deferRendering","angular","onContentReady","_popupContentReadyAction","onHidden","hide","_createComponent","dragEnabled","showCloseButton","my","at","of","animation","show","duration","from","to","$content","_attachClickEvent","_attachHoldEvent","_prepareContent","_renderContent","_renderCancelButton","_$cancelButton","cancelClickAction","_createActionByOption","hidingArgs","event","integrationOptions","_attachItemClickEvent","_itemClickHandler","_itemHoldHandler","toggle","showing","d","Deferred","done","resolveWith","promise","isCorrectStructure","Array","isArray","every","hasTwoFields","Object","keys","hasCorrectFields","_getSpecificDataSourceOption","groupKey","dataSource","hasSimpleItems","_getGroupedOption","reduce","accumulator","map","innerItem","isObject","key","store","selector","keepInitialKeyOrder","searchExpr","_uiListEdit","_emitter","abstract","POINTER_DOWN_EVENT_NAME","ACTIVE_EVENT_NAME","active","LIST_ITEM_CONTENT_CLASS","SWITCHABLE_DELETE_READY_CLASS","SWITCHABLE_MENU_SHIELD_POSITIONING_CLASS","SWITCHABLE_DELETE_TOP_SHIELD_CLASS","SWITCHABLE_DELETE_BOTTOM_SHIELD_CLASS","SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS","SWITCHABLE_DELETE_ITEM_CONTENT_SHIELD_CLASS","SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS","SwitchableEditDecorator","_$topShield","_$bottomShield","_$itemContentShield","_cancelDeleteReadyItem","_$readyToDeleteItem","_cancelDelete","_toggleDeleteReady","readyToDelete","_isReadyToDelete","_toggleShields","_toggleScrolling","_cacheReadyToDeleteItem","_animateToggleDelete","enabled","_updateShieldsHeight","_toggleContentShield","$list","listTopOffset","offset","top","listHeight","outerHeight","itemTopOffset","itemHeight","dirtyTopShieldHeight","dirtyBottomShieldHeight","first","detach","scrollView","dxScrollView","_cancelScrolling","cache","_enablePositioning","_prepareDeleteReady","_animatePrepareDeleteReady","_forgetDeleteReady","_animateForgetDeleteReady","_disablePositioning","one","_getDeleteButtonContainer","_deleteItem","deleteItem","_isRtlEnabled","_uiListEdit2","STATIC_DELETE_BUTTON_CONTAINER_CLASS","STATIC_DELETE_BUTTON_CLASS","register","$button","icon","stopPropagation","_store_helper","_query","_uiCollection_widgetEditStrategy","LIST_ITEM_CLASS","LIST_GROUP_CLASS","SELECTION_SHIFT","SELECTION_MASK","combineIndex","indices","splitIndex","combinedIndex","GroupedEditStrategy","_groupElements","_collectionWidget","_groupItemElements","$group","getIndexByItemData","itemData","groups","getItemDataByIndex","isNumeric","itemsGetter","resultItems","deleteItemAtIndex","itemGroup","splice","getKeysByItems","plainItems","result","keyOf","getIndexByKey","keyIndex","itemKey","_equalKeys","_getGroups","getDataSource","queryByOptions","getItemsByKeys","getItemMeta","itemMeta","selectedGroup","moveItemAtIndexToIndex","movingIndex","destinationIndex","movingIndices","destinationIndices","movingItemGroup","destinationItemGroup","movedItemData","_isItemIndex","_getNormalizedItemIndex","$item","closest","_normalizeItemIndex","_denormalizeItemIndex","_getItemByNormalizedIndex","_itemsFromSameParent","firstIndex","secondIndex","_click","_check_box","_radio_button","SELECT_DECORATOR_ENABLED_CLASS","SELECT_DECORATOR_SELECT_ALL_CLASS","SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS","SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS","SELECT_CHECKBOX_CONTAINER_CLASS","SELECT_CHECKBOX_CLASS","SELECT_RADIO_BUTTON_CONTAINER_CLASS","SELECT_RADIO_BUTTON_CLASS","FOCUSED_STATE_CLASS","CLICK_EVENT_NAME","selectionMode","_singleStrategy","_containerClass","_controlClass","_controlWidget","$control","_isSelected","onValueChanged","_saveSelectionChangeEvent","_processCheckedState","control","getInstance","state","_updateSelectAllState","_$selectAll","_selectAllCheckBox","isSelectAll","_renderSelectAll","currentFocusedIndex","moveFocusUp","moveFocusDown","$selectAll","lastItemIndex","_getLastItemIndex","isFocusOutOfList","hasSelectAllItem","scrollToItem","downArrowHandler","_supportedKeys","downArrow","registerKeyHandler","itemsContainer","prepend","_attachSelectAllHandler","_selectAllHandler","_selectAllClickHandler","isSelectedAll","_selectAllItems","_unselectAllItems","_checkSelectAllCapability","_selection","selectAll","deselectAll","isItemSelected","checked","selectItem","unselectItem","_disposeSelectAll","_callbacks","_uiScrollable","_load_indicator","SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS","SCROLLVIEW_PULLDOWN_INDICATOR_CLASS","SCROLLVIEW_PULLDOWN_REFRESHING_CLASS","PULLDOWN_ICON_CLASS","STATE_RELEASED","STATE_READY","STATE_REFRESHING","STATE_TOUCHED","STATE_PULLED","SwipeDownNativeScrollViewStrategy","_$topPocket","_$bottomPocket","_$pullDown","_$scrollViewContent","content","_initCallbacks","_location","pullDownCallbacks","releaseCallbacks","reachBottomCallbacks","_renderPullDown","_releaseState","$loadContainer","$loadIndicator","_$icon","_state","_releasePullDown","_updateDimensions","opacity","_topPocketSize","_bottomPocketSize","_scrollOffset","_$container","_$content","_allowedDirections","allowedDirections","vertical","_pullDownEnabled","handleInit","_startClientY","eventData","originalEvent","y","handleMove","_deltaY","_complete","preventDefault","_movePullDown","pullDownHeight","_getPullDownHeight","min","_getPullDownStartPosition","angle","transform","_isPullDown","_$element","handleEnd","_pullDownRefreshing","handleStop","handleScroll","currentLocation","scrollDelta","_isReachBottom","_reachBottom","_stateReleased","_reachBottomEnabled","fire","_pullDownRefreshHandler","_refreshPullDown","pullDownEnable","reachBottomEnable","pendingRelease","release","deferred","_releaseTimeout","_updateAction","_pullDownRefreshTimeout","_devices","_utils","_editor","CHECKBOX_CLASS","CHECKBOX_ICON_CLASS","CHECKBOX_CHECKED_CLASS","CHECKBOX_CONTAINER_CLASS","CHECKBOX_TEXT_CLASS","CHECKBOX_HAS_TEXT_CLASS","CHECKBOX_INDETERMINATE_CLASS","CHECKBOX_FEEDBACK_HIDE_TIMEOUT","CheckBox","_clickAction","space","useInkRipple","real","deviceType","isSimulator","_canValueBeChangedByClick","_useTemplates","_feedbackHideTimeout","_renderSubmitElement","_renderValue","_renderIcon","_renderText","_renderInkRipple","_renderClick","_$submitElement","attr","_getSubmitElement","_inkRipple","waveSizeCoefficient","useHoldAnimation","wavesNumber","isCentered","_renderInkWave","dxEvent","doRender","waveIndex","wave","showWave","hideWave","_updateFocusState","_toggleActiveState","prependTo","textValue","_$text","eventName","_createAction","_clickHandler","_saveValueChangeEvent","indeterminate","Boolean","val","_element","_empty_template","_browser","_inflector","_size","_version","_visibility_change","_overlay","POPUP_CLASS","POPUP_WRAPPER_CLASS","POPUP_FULL_SCREEN_CLASS","POPUP_FULL_SCREEN_WIDTH_CLASS","POPUP_NORMAL_CLASS","POPUP_CONTENT_CLASS","POPUP_DRAGGABLE_CLASS","POPUP_TITLE_CLASS","POPUP_TITLE_CLOSEBUTTON_CLASS","POPUP_BOTTOM_CLASS","POPUP_HAS_CLOSE_BUTTON_CLASS","TEMPLATE_WRAPPER_CLASS","POPUP_CONTENT_FLEX_HEIGHT_CLASS","POPUP_CONTENT_INHERIT_HEIGHT_CLASS","ALLOWED_TOOLBAR_ITEM_ALIASES","BUTTON_DEFAULT_TYPE","BUTTON_NORMAL_TYPE","BUTTON_TEXT_MODE","BUTTON_CONTAINED_MODE","IS_IE11","msie","parseInt","version","IS_OLD_SAFARI","safari","compare","HEIGHT_STRATEGIES","flex","getButtonPlace","current","toolbar","Popup","fullScreen","titleTemplate","onTitleRendered","toolbarItems","bottomTemplate","useDefaultToolbarButtons","useFlatToolbarButtons","autoResizeEnabled","themeName","_iosAnimation","_androidAnimation","_device","fullScreenConfig","defaultConfig","_$popupContent","isFullscreen","_toggleFullScreenClass","EmptyTemplate","bottom","_renderTitle","_renderBottom","titleText","unshift","ios","_$title","$title","insertBefore","_renderTemplateByType","_renderDrag","_executeTitleRenderAction","_hasCloseButton","additionalToolbarOptions","_getTemplateByOption","toolbarTemplate","skipTemplates","toolbarOptions","rtlEnabled","$toolbar","replaceWith","$result","getPublicElement","$titleElement","_getTitleRenderAction","titleElement","_titleRenderAction","_createTitleRenderAction","excludeValidators","_getCloseButton","_getCloseButtonRenderer","__","_createToolbarItemAction","_this2","toolbarsItems","_toolbarItemClasses","currentPlatform","isShortcut","isDefined","shortcut","_getToolbarItemByAlias","isLTROrder","_getLocalizationKey","itemType","toLowerCase","camelize","itemConfig","itemClass","$toolbarItem","clickAction","afterExecute","_$bottom","$bottom","insertAfter","_toggleClasses","_this3","aliases","alias","className","_getContainer","_getDragTarget","topToolbar","_renderGeometryImpl","isDimensionChanged","_resetContentHeight","_setContentHeight","maxHeight","_renderResize","_resizable","_actions","onResize","overlayContent","currentHeightStrategyClass","_chooseHeightStrategy","_getHeightCssStyles","_setHeightClasses","_heightStrategyChangeOffset","popupVerticalPaddings","isAutoWidth","style","static","_isAutoHeight","cssStyles","contentMaxHeight","_getOptionValue","contentMinHeight","popupHeightParts","_splitPopupHeight","toolbarsAndVerticalOffsetsHeight","header","footer","contentVerticalOffsets","popupVerticalOffsets","overlayHeight","innerHeight","contentHeight","minHeight","maxHeightValue","addOffsetToMaxHeight","minHeightValue","addOffsetToMinHeight","currentClass","excessClasses","bottomToolbar","getVisibleHeight","getVerticalOffsets","_shouldFixBodyPosition","_toggleSafariFullScreen","toggleFullScreenBeforeShown","_isShown","_bodyScrollTop","pageYOffset","_toggleSafariScrolling","minWidth","hasWindow","_renderFullscreenWidthClass","refreshPosition","_renderPosition","_renderGeometry","triggerResizeEvent","shouldRenderGeometry","fullName","match","math","SCROLLVIEW_PULLDOWN_READY_CLASS","SCROLLVIEW_PULLDOWN_IMAGE_CLASS","SCROLLVIEW_PULLDOWN_TEXT_CLASS","SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS","STATE_LOADING","ScrollViewScroller","Scroller","_refreshPullDownText","pullDownTextItems","_$pullingDownText","visibleState","_$pulledDownText","_$refreshingText","action","_updateBounds","considerPockets","_direction","_bottomBound","_minOffset","_updateScrollbar","_scrollbar","_containerSize","_contentSize","_getScaleRatio","_moveContent","_pullDownReady","_reachBottomReady","_moveScrollbar","_scrollComplete","_inBounds","_reachBottomLoading","_getMinOffset","_getMaxOffset","_maxOffset","_releaseHandler","_moveToBounds","_releaseTask","abort","executeAsync","_release","_reachBottomEnablingHandler","_pullDownEnablingHandler","_considerTopPocketChange","_updateHandler","_move","_pendingReleaseHandler","SimulatedScrollViewStrategy","SimulatedStrategy","$image","$text","_$pullDownText","_eventHandler","_createScroller","scroller","_scrollers","_scrollerOptions","$topPocket","$bottomPocket","$pullDown","$pullDownText","$pullingDownText","$pulledDownText","$refreshingText","SCROLLABLE_NATIVE","SCROLLABLE_NATIVE_CLASS","SCROLLABLE_SCROLLBAR_SIMULATED","SCROLLABLE_SCROLLBARS_HIDDEN","VERTICAL","HIDE_SCROLLBAR_TIMEOUT","NativeStrategy","scrollable","_component","_useSimulatedScrollbar","_showScrollbar","_isLocked","_isDirection","_allowedDirection","_getScrollOffset","_renderPushBackOffset","_renderScrollbars","updateBounds","pushBackValue","_lastPushBackValue","paddingTop","paddingBottom","_scrollbars","_hideScrollbarTimeout","_renderScrollbar","handleStart","_disablePushBack","isScrollingEvent","handleCancel","_eachScrollbar","callback","scrollbar","createActions","_scrollAction","_createActionArgs","_this$location","_eventForUserAction","scrollOffset","reachedLeft","_isReachedLeft","reachedRight","_isReachedRight","reachedTop","reachedBottom","_updateRtlConfig","_isScrollLocationChanged","_moveScrollbars","_lastLocation","_pushBackFromBoundary","stopImmediatePropagation","scrollTopPos","scrollTop","scrollBottomPos","lastLocation","isTopChanged","isLeftChanged","_hideScrollbars","scrollLeft","disabledChanged","_updateScrollbars","_componentContentSize","dimension","horizontal","scrollableNativeRegexp","RegExp","test","_removeScrollbars","scrollBy","distance","validate","isDxMouseWheelEvent","_isScrolledInMaxDirection","delta","shiftKey","getDirection","verticalOffset","LOADPANEL_CLASS","LOADPANEL_WRAPPER_CLASS","LOADPANEL_INDICATOR_CLASS","LOADPANEL_MESSAGE_CLASS","LOADPANEL_CONTENT_CLASS","LOADPANEL_CONTENT_WRAPPER_CLASS","LOADPANEL_PANE_HIDDEN_CLASS","LoadPanel","escape","message","showIndicator","indicatorSrc","showPane","delay","templatesRenderAsynchronously","hideTopOverlayHandler","resizeEnabled","shadingColor","_$contentWrapper","_togglePaneVisible","_cleanPreviousContent","_renderLoadIndicator","_renderMessage","_show","_clearShowTimeout","_showTimeout","_hide","$message","_$indicator","_item","LIST_ITEM_BADGE_CONTAINER_CLASS","LIST_ITEM_BADGE_CLASS","BADGE_CLASS","LIST_ITEM_CHEVRON_CONTAINER_CLASS","LIST_ITEM_CHEVRON_CLASS","ListItem","_renderWatchers","_startWatcher","_renderBadge","_renderShowChevron","badge","$badge","$chevron","showChevron","$chevronContainer","setScrollView","ListBase","_icon","_data","_support","_scroll_view","_grouped_data_converter_mixin","_scrollView","LIST_CLASS","LIST_ITEM_SELECTOR","LIST_ITEM_ICON_CONTAINER_CLASS","LIST_ITEM_ICON_CLASS","LIST_GROUP_HEADER_CLASS","LIST_GROUP_BODY_CLASS","LIST_COLLAPSIBLE_GROUPS_CLASS","LIST_GROUP_COLLAPSED_CLASS","LIST_GROUP_HEADER_INDICATOR_CLASS","LIST_HAS_NEXT_CLASS","LIST_NEXT_BUTTON_CLASS","WRAP_ITEM_TEXT_CLASS","SELECT_ALL_ITEM_SELECTOR","LIST_ITEM_DATA_KEY","LIST_FEEDBACK_SHOW_TIMEOUT","groupItemsGetter","compileGetter","_activeStateUnit","moveFocusPerPage","getEdgeVisibleItem","isFocusedItem","scrollListTo","containerHeight","isItemVisible","$nextItem","nextItemLocation","resultPosition","scrollTo","leftArrow","rightArrow","pageUp","pageDown","pullRefreshEnabled","scrollingEnabled","showScrollbar","useNativeScrolling","bounceEnabled","scrollByContent","scrollByThumb","pullingDownText","pulledDownText","refreshingText","pageLoadingText","onPullRefresh","onPageLoading","pageLoadMode","nextButtonText","onItemSwipe","onGroupRendered","collapsibleGroups","groupTemplate","indicateLoading","_itemAttributes","role","_listAttributes","wrapItemText","_swipeEnabled","_revertPageOnEmptyLoad","showChevronExpr","badgeExpr","deviceDependentOptions","nativeScrolling","_updateLoadingState","_selectionChangeEventInstance","_getSelectionChangeEvent","_refreshItemElements","_itemElementsCache","_itemSelector","_modifyByChanges","reorderItem","toItemElement","_itemElements","_itemSelectHandler","_allowDynamicItemsAppend","_resetDataSourcePageIndex","currentDataSource","pageIndex","load","_initScrollView","_feedbackShowTimeout","_createGroupRenderAction","_scrollBottomMode","_nextButtonMode","_dataSourceOptions","scrollBottom","nextButton","paginate","ensureDefined","_dataSourceFromUrlLoadMode","autoPagingEnabled","_dataSource","getScrollView","_scrollHandler","onPullDown","_pullDownHandler","onReachBottom","_scrollBottomHandler","useNative","reachBottomText","useKeyboard","_createScrollViewActions","_pullRefreshAction","_pageLoadingAction","_prepareDefaultItemTemplate","$icon","getImageContainer","$iconContainer","_getBindableFields","tryLoadMore","isDataLoaded","_isLastPage","scrollBottomMode","stopLoading","hideLoadIndicator","_isDataSourceLoading","_scrollViewIsFull","_toggleNextButton","_shouldRenderNextButton","_loadIndicationSuppressed","_infiniteDataLoading","isLoaded","_isDataSourceFirstLoadCompleted","newValue","_isFirstLoadCompleted","_dataSourceLoadingChangedHandler","isLoading","_showLoadingIndicatorTimer","_this$_scrollView","isEmpty","shouldIndicateLoading","startLoading","finishLoading","_dataSourceChangedHandler","_shouldAppendItems","_refreshContent","_fireContentReadyAction","_hideLoadingIfLoadIndicationOff","_isLoadIndicationSuppressed","isFull","_clearSelectedItems","reload","isElementVisible","_loadNextPageTimer","_loadNextPage","_setPreviousPageIfNewIsEmpty","_renderGroup","_attachGroupCollapseEvent","attachGroupHeaderInkRippleEvents","_collapseGroupHandler","validatingTargetName","$groupBody","startHeight","endHeight","animate","complete","updateDimensions","_dataSourceLoadErrorHandler","_forgetNextPageLoading","_initialized","_postprocessRenderItem","endEventName","_itemDXEventHandler","_nextButtonHandler","source","toggleLoading","_$nextButton","$groupElement","$groupHeaderElement","groupTemplateName","renderArgs","_createItemByTemplate","_renderingGroupIndex","_groupRenderAction","groupElement","groupData","downInkRippleHandler","upInkRippleHandler","_downInkRippleHandler","_upInkRippleHandler","downArguments","upArguments","_holdTimer","_toggleDisabledState","$nextButton","_getNextButton","_createNextButton","_moveFocus","_refresh","_extendActionArgs","expandGroup","collapseGroup","repaint","clientHeight","scrollHeight","_editStrategy","getItemElement","scrollToElement","include","ItemClass","_emitter_registrator","SWIPE_START_EVENT","SWIPE_EVENT","SWIPE_END_EVENT","HorizontalStrategy","defaultItemSizeFunc","getElement","getBounds","_maxLeftOffset","_maxRightOffset","calcOffsetRatio","endEventData","x","_savedEventData","_itemSizeFunc","call","isFastSwipe","FAST_SWIPE_SPEED_LIMIT","_tickData","time","VerticalStrategy","_maxTopOffset","_maxBottomOffset","STRATEGIES","SwipeEmitter","TICK_INTERVAL","elastic","_getStrategy","_defaultItemSizeFunc","_start","_fireEvent","maxLeftOffset","maxRightOffset","maxTopOffset","maxBottomOffset","strategy","moveEventData","_fitOffset","_end","offsetRatio","isFast","startOffset","targetOffset","_calcTargetOffset","bounds","emitter","events","_dom_component","_selectors","_uiEventsEmitterGesture","_uiScrollable2","_uiScrollable3","SCROLLABLE","SCROLLABLE_STRATEGY","SCROLLABLE_CLASS","SCROLLABLE_DISABLED_CLASS","SCROLLABLE_CONTAINER_CLASS","SCROLLABLE_WRAPPER_CLASS","SCROLLABLE_CONTENT_CLASS","BOTH","Scrollable","onUpdated","onStart","onEnd","onBounce","onStop","useSimulatedScrollbar","inertiaEnabled","updateManually","mozilla","_initOptions","_setUseSimulatedScrollbar","initialOption","_initScrollableMarkup","_locked","_getWindowDevicePixelRatio","devicePixelRatio","_updateRtlPosition","_savedScrollOffset","$wrapper","_$wrapper","hasDocumentProperty","focusable","contents","_renderStrategy","_attachEventHandlers","_renderDisabledState","_createActions","_rtlConfig","scrollRight","clientWidth","_container","windowPixelRatio","_isHorizontalAndRtlEnabled","deferUpdate","deferRender","skipUpdating","_this$_container$get","scrollWidth","_strategy","initEventData","_validate","isNative","scrollTarget","init","_initHandler","stop","_this$_container$get2","_updateIfNeed","_lock","_unlock","_createStrategy","_resetInactiveDirection","inactiveProp","_getInactiveProp","_normalizeLocation","_updateAllowedDirection","_allowedDirectionValue","when","targetLocation","_applyScaleRatio","elementInsideContent","elementIsInsideContent","scrollPosition","getScrollElementPosition","scrollToElementTopLeft","leftPosition","_elementPositionRelativeToContent","isVertical","endOffset","pushBackOffset","elementPositionRelativeToContent","elementPosition","elementSize","scrollLocation","clientSize","startDistance","endDistance","prop","_hasScrollContent","offsetParent","_array_utils","_array_compare","_defineProperty","defineProperty","enumerable","configurable","writable","PRIVATE_KEY_FIELD","repaintChangesOnly","_customizeStoreLoadOptions","_correctionIndex","storeLoadOptions","skip","_refreshItemsCache","_findItemElementByKey","keyExpr","_getItemData","keysEqual","_isItemEquals","newItems","changes","item1","item2","JSON","stringify","_isItemStrictEquals","_partialRefresh","findChanges","_itemsCache","itemCache","_ref","_updateByChange","keyInfo","change","isPartialRefresh","_this4","changedItem","indexByKey","indexOf","_insertByChange","_this5","insert","_change$index","_beforeItemElementInserted","_afterItemElementInserted","_updateSelectionAfterRemoveByChange","removeIndex","selectedIndex","_normalizeSelectedItems","_removeByChange","_this6","removedItem","oldItem","$removedItemElement","deletedActionArgs","_waitDeletingPrepare","_updateIndicesAfterIndex","_afterItemElementDeleted","_deleteItemElementByIndex","_this7","_appendItemToContainer","$itemFrame","nextSiblingElement","insertElement","isItemsUpdated","_animator","hoveredScrollable","activeScrollable","realDevice","isSluggishPlatform","SCROLLABLE_SIMULATED","SCROLLABLE_SIMULATED_CURSOR","SCROLLABLE_SIMULATED_KEYBOARD","SCROLLABLE_SIMULATED_CLASS","SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE","ACCELERATION","OUT_BOUNDS_ACCELERATION","MIN_VELOCITY_LIMIT","FRAME_DURATION","SCROLL_LINE_HEIGHT","VALIDATE_WHEEL_TIMEOUT","BOUNCE_MIN_VELOCITY_LIMIT","BOUNCE_DURATION","BOUNCE_FRAMES","BOUNCE_ACCELERATION_SUM","pow","KEY_CODES","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","TAB","InertiaAnimator","VELOCITY_LIMIT","_isFinished","_velocity","_step","_scrollStep","_acceleration","_stop","_stopComplete","BounceAnimator","_crossBoundOnNextStep","_bounceLocation","_initAnimators","_initScrollbar","_topReached","_bottomReached","_axis","_scrollProp","optionValue","_inertiaAnimator","_bounceAnimator","_scrollByThumb","_visibilityModeNormalize","_scrollbarVisible","_$scrollbar","mode","prevLocation","_suppressBounce","triggerHandler","_bounceEnabled","_boundLocation","_moveContentByTranslator","_scaleRatio","realDimension","_getRealDimension","baseDimension","_getBaseDimension","dimensionName","titleize","translateOffset","minOffset","_maxScrollPropValue","_translateOffset","resetPosition","_hideScrollbar","_completeDeferred","_scrollToBounds","_bounceAction","_setupBounce","boundLocation","bounceDistance","nextLocation","_stopDeferred","_stopScrolling","_prepareThumbScrolling","$target","scrollbarClicked","_isScrollbar","_moveToMouseLocation","_thumbScrolling","_isThumb","_crossThumbScrolling","_isAnyThumbScrolling","_isThumbScrollingHandler","mouseLocation","toUpperCase","_containerToContentRatio","_startHandler","_moveHandler","_scrollBy","_scrollByHandler","_endHandler","velocity","_inertiaHandler","_resetThumbScrolling","_suppressInertia","_inertiaEnabled","_stopHandler","_disposeHandler","_resetScaleRatio","_updateLocation","locate","deferUpdater","locationChanged","_createActionsHandler","actions","scroll","bounce","isOverflowHidden","containerScrollSize","_validateEvent","_isContent","_scrollByContent","_reachedMin","_reachedMax","_cursorEnterHandler","_cursorLeaveHandler","_createScrollers","_attachKeyboardHandler","_attachCursorHandlers","scrollbarVisible","isAnyThumbScrolling","_getPropByDirection","isThumbScrollingVertical","isThumbScrollingHorizontal","_suppressDirections","_stopAction","_prepareDirections","_eachScroller","isValid","_validDirections","_startAction","_saveActive","_resetActive","_adjustDistance","_tryGetDevicePixelRatio","_refreshCursorState","_endAction","_keyDownHandler","_updateHandlerTimeout","normalizeKeyName","getActiveElement","handled","_scrollByLine","_scrollByPage","_scrollToHome","_scrollToEnd","lines","page","_wheelProp","_dimensionByProp","_createActionHandler","_createScrollerActions","_arguments","actionHandler","_this$_scrollers","scrollerX","scrollerY","deferreds","_hoverHandled","relatedTarget","$scrollable","targetScrollable","touchDirection","verticalScroller","horizontalScroller","isCommandKeyPressed","_validateWheel","_validateMove","_wheelDirection","reachedMin","reachedMax","contentGreaterThanContainer","locatedNotAtBound","scrollFromMin","scrollFromMax","validated","_validateWheelTimer","_detachEventHandlers","EditDecoratorMenuHelperMixin","_menuEnabled","_menuItems","_deleteEnabled","_fireMenuAction","_itemEventHandlerByHandler","_frame","Animator","_finished","_stopped","_proxiedStepCore","_stepCore","cancelAnimationFrame","_stepAnimationFrame","_isStopped","requestAnimationFrame","inProgress","_uiListEditStrategy","_uiList","LIST_ITEM_SELECTED_CLASS","LIST_ITEM_RESPONSE_WAIT_CLASS","ListEdit","deleteFocusedItem","moveFocusedItem","moveUp","editStrategy","focusedElement","focusedItemIndex","getNormalizedIndex","isLastIndexFocused","nextItemIndex","editProvider","_editProvider","isInternalMoving","upArrow","enter","del","_updateSelection","afterItemsRendered","excludedSelectors","getExcludedItemSelectors","privateKey","__dx_key__","showSelectionControls","selectAllMode","onSelectAllValueChanged","selectAllText","menuItems","menuMode","allowItemDeleting","itemDeleteMode","itemDragging","_initEditProvider","_initDataSource","_isPageSelectAll","requireTotalCount","_disposeEditProvider","_refreshEditProvider","_initEditStrategy","_selectedItemClass","_itemResponseWaitClass","handledByEditProvider","_shouldFireContextMenuEvent","contextMenuHandlerExists","isTouchEvent","_itemContextMenuHandler","modifyItemElement","focusListItem","focus","unselectAll","getSelectAllState","getFlatIndexByItemElement","getItemElementByFlatIndex","flatIndex","$itemElements","getItemByIndex","PULLDOWN_RELEASE_TIME","PullDownNativeScrollViewStrategy","_setTopPocketOffset","_setPullDownOffset","_renderItemPosition","itemOffset","_itemElementWidth","fail","editOptionsRegistry","registerOption","enabledFunc","decoratorTypeFunc","decoratorSubTypeFunc","decoratorType","decoratorSubType","LIST_ITEM_BEFORE_BAG_CLASS","LIST_ITEM_AFTER_BAG_CLASS","DECORATOR_BEFORE_BAG_CREATE_METHOD","DECORATOR_AFTER_BAG_CREATE_METHOD","DECORATOR_MODIFY_ELEMENT_METHOD","DECORATOR_AFTER_RENDER_METHOD","DECORATOR_GET_EXCLUDED_SELECTORS_METHOD","EditProvider","_fetchRequiredDecorators","_decorators","decorator","optionEnabled","_createDecorator","subType","decoratorClass","_findDecorator","foundDecorator","registry","Error","_prependBeforeBags","_appendAfterBags","_applyDecorators","$beforeBags","_collectDecoratorsMarkup","$afterBags","method","containerClass","$collector","_handlerExists","decorators","response","touch","_math","_position2","_typeof","Symbol","iterator","constructor","prototype","POPOVER_CLASS","POPOVER_WRAPPER_CLASS","POPOVER_ARROW_CLASS","POPOVER_WITHOUT_TITLE_CLASS","POSITION_FLIP_MAP","center","WEIGHT_OF_SIDES","POSITION_ALIASES","collision","SIDE_BORDER_WIDTH_STYLES","getEventNameByOption","getEventName","getEventDelay","attachEvent","isSelector","isString","_clearEventsTimeouts","_timeouts","handler","EVENT_HANDLER_NAME","targetElement","detachEvent","Popover","shading","closeOnOutsideClick","closeOnTargetScroll","arrowPosition","arrowOffset","boundaryOffset","h","v","_fixedPosition","_renderArrow","_detachEvents","_attachEvents","_$arrow","_documentDownHandler","_isOutsideClick","_animate","_getContainerPosition","_stopAnimation","_renderOverlayPosition","_renderOverlayBoundaryOffset","_resetOverlayPosition","_updateContentSize","contentPosition","resultLocation","setup","positionSide","_getSideByLocation","_togglePositionClass","_toggleFlippedClass","flip","isArrowVisible","_isHorizontalSide","_isVerticalSide","_renderArrowPosition","_positionSide","containerLocation","calculate","oversize","fit","newContainerWidth","newOverlayContentHeight","newPopupContentHeight","pairToObject","hOffset","vOffset","isVerticalSide","isHorizontalSide","isPopoverInside","_isPopoverInside","sign","arrowSize","arrowSizeCorrection","_getContentBorderWidth","side","borderWidth","isFlippedByVertical","isFlippedByHorizontal","positionClass","isFlippedHorizontal","isFlippedVertical","arrowRect","arrowFlip","arrowLocation","axis","sizeProperty","contentOffset","contentLocation","targetSize","finalArrowLocation","fitIntoRange","_transformStringPosition","normalizeAlign","fullUpdate","_renderWrapperPosition","_renderWrapperDimensions","_normalizePosition","_getDisplaySide","weightSign","horizontalWeight","verticalWeight","_clearEventTimeout","previousValue","substring","_text_box","searchMode","searchValue","searchEnabled","searchEditorOptions","_renderSearch","searchBoxClassName","_addWidgetPrefix","rootElementClassName","_removeSearchBox","editorOptions","_getSearchEditorOptions","_searchEditor","_$searchEditorElement","userEditorOptions","searchText","placeholder","tabIndex","valueChangeEvent","inputAttr","searchTimeout","_valueChangeDeferred","_valueChangeTimeout","_getAriaTarget","_focusTarget","isFocused","_toggleFocusClass","getOperationBySearchMode","_cleanAria","activedescendant","searchOperation","_uiListEditDecorator","SWITCHABLE_DELETE_BUTTON_WRAPPER_CLASS","SWITCHABLE_DELETE_BUTTON_INNER_WRAPPER_CLASS","SWITCHABLE_DELETE_BUTTON_CLASS","SWITCHABLE_DELETE_BUTTON_ANIMATION_DURATION","SwitchableButtonEditDecorator","$buttonContainer","$buttonWrapper","$buttonInnerWrapper","_$buttonContainer","rtl","listWidth","buttonWidth","_buttonWidth","fromValue","toValue","_buttonContainerWidth","TOGGLE_DELETE_SWITCH_CONTAINER_CLASS","TOGGLE_DELETE_SWITCH_CLASS","$toggle","_uiScroll_viewNative","_uiScroll_viewNative2","_uiScroll_view","_load_panel","SCROLLVIEW_CLASS","SCROLLVIEW_CONTENT_CLASS","SCROLLVIEW_TOP_POCKET_CLASS","SCROLLVIEW_BOTTOM_POCKET_CLASS","SCROLLVIEW_PULLDOWN_CLASS","SCROLLVIEW_REACHBOTTOM_CLASS","SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS","SCROLLVIEW_REACHBOTTOM_TEXT_CLASS","SCROLLVIEW_LOADPANEL","refreshStrategies","pullDown","swipeDown","simulated","isServerSide","scrollViewServerConfig","refresh","ScrollView","refreshStrategy","_loadingIndicatorEnabled","_initContent","_initTopPocket","_initBottomPocket","_initLoadPanel","$reachBottom","_$reachBottom","_$reachBottomText","_updateReachBottomText","$loadPanelElement","loadPanelOptions","_loadPanel","strategyName","strategyClass","_reachBottomHandler","_pullDownAction","_reachBottomAction","_tryRefreshPocketState","_pullDownEnable","hasActionSubscription","_reachBottomEnable","_loadingIndicator","_pullDownLoading","preventReachBottom","showOrHide","_draggable","SORTABLE","PLACEHOLDER_CLASS","CLONE_CLASS","_config$to","_config$to2","transition","easing","stopAnimation","getScrollableBoundary","paddingLeft","parseFloat","paddingRight","Sortable","_sourceScrollHandler","_handleSourceScroll","_sourceScrollableInfo","clone","itemOrientation","dropFeedbackMode","allowDropInsideItem","allowReordering","moveItemOnDrop","onDragChange","onAdd","onRemove","onReorder","onPlaceholderPrepared","fromIndex","toIndex","dropInsideItem","itemPoints","fromIndexOffset","autoUpdate","draggableElementSize","reset","_$placeholderElement","_isIndicateMode","_$modifiedItem","_modifiedItemMargin","_getPrevVisibleItem","_dragStartHandler","$sourceElement","_getSourceElement","_updateItemPoints","_subscribeToSourceScroll","_getElementIndex","_dragEndHandler","_unsubscribeFromSourceScroll","_getScrollable","sourceScrollableInfo","scrollProp","_correctItemPoints","_dragEnterHandler","_getSourceDraggable","lastItemPoint","_isVerticalOrientation","sourceElementSize","scrollSize","positionProp","lastPointPosition","freeSize","_getItems","$lastItem","marginBottom","$sortable","sortable","dragEnter","_getTargetDraggable","dragLeave","_isInsideTargetDraggable","$targetDraggable","_getScrollableBoundar","validX","pageX","validY","pageY","dragEnd","sourceEvent","cancelAdd","cancelRemove","sourceDraggable","isSourceDraggable","isInsideTargetDraggable","_fireAddEvent","_fireRemoveEvent","_moveItem","_fireReorderEvent","dragMove","itemPoint","axisName","cursorPosition","centerPosition","_updatePlaceholderPosition","_verticalScrollHelper","isScrolling","_movePlaceholder","_createPlaceholder","$placeholderContainer","_$dragElement","itemsSelector","_getItemsSelector","_allowReordering","targetDraggable","_isValidPoint","visibleIndex","draggableVisibleIndex","_getItemPoints","itemWidth","visibleItemElements","visibleItemCount","$draggableItem","_getDraggableElement","needCorrectLeftPosition","needCorrectTopPosition","points","_i","floor","forceUpdate","positionPropName","_getDragTemplateArgs","_togglePlaceholder","_normalizeToIndex","isAnotherDraggable","eventArgs","_getEventArgs","_getAction","placeholderElement","dragElement","_makeWidthCorrection","_$scrollable","scrollableWidth","offsetLeft","offsetRight","_updatePlaceholderSizes","$placeholderElement","$prevTargetItemElement","$targetItemElement","_toggleDragSourceClass","_moveItemCore","$targetItem","prevItem","_getDragStartArgs","isDragSource","$fromElement","_optionChangedDropInsideItem","_optionChangedToIndex","_isPositionVisible","scrollContainer","clientRect","isVerticalOrientation","pageOffset","pageXOffset","showPlaceholder","_moveItems","_updateDragSourceClass","_getActualFromIndex","_$sourceElement","_makeLeftCorrection","leftMargin","prevVisibleItemElement","_getPositions","positions","_getDraggableElementSize","_this$option","prevToIndex","prevPositions","animationConfig","prevPosition","RADIO_BUTTON_CLASS","RADIO_BUTTON_ICON_CLASS","RADIO_BUTTON_ICON_DOT_CLASS","RADIO_BUTTON_CHECKED_CLASS","RADIO_BUTTON_ICON_CHECKED_CLASS","RadioButton","_renderCheckedState","_action_sheet","SLIDE_MENU_CLASS","SLIDE_MENU_WRAPPER_CLASS","SLIDE_MENU_CONTENT_CLASS","SLIDE_MENU_BUTTONS_CONTAINER_CLASS","SLIDE_MENU_BUTTONS_CLASS","SLIDE_MENU_BUTTON_CLASS","SLIDE_MENU_BUTTON_MENU_CLASS","SLIDE_MENU_BUTTON_DELETE_CLASS","SLIDE_MENU_ANIMATION_DURATION","SLIDE_MENU_ANIMATION_EASING","_$buttonsContainer","_$buttons","_renderMenu","_renderDeleteButton","_renderMenuButton","_fireAction","$menu","_menu","onItemClick","$menuButton","$deleteButton","_cachedNode","$slideMenuContent","_cacheItemData","_setPositions","signCorrection","isItemReadyToDelete","moveJustStarted","_getCurrentPositions","_getStartPositions","_cachedItemWidth","_cachedButtonWidth","correctedOffset","percent","buttonsContainer","buttons","startPositions","_$cachedContent","_minButtonContainerLeftOffset","endedAtReadyToDelete","_animateToPositions","currentPosition","durationTimePart","draw","decoratorsRegistry","decoratorConfig","_string","_drag","_view_port","DRAGGABLE","DRAGSTART_EVENT_NAME","DRAG_EVENT_NAME","DRAGEND_EVENT_NAME","DRAG_ENTER_EVENT_NAME","DRAGEND_LEAVE_EVENT_NAME","leave","POINTERDOWN_EVENT_NAME","ANONYMOUS_TEMPLATE_NAME","getMousePosition","GESTURE_COVER_CLASS","ScrollHelper","orientation","_preventScroll","_scrollValue","_overFlowAttr","_sizeAttr","_scrollSizeProp","_clientSizeProp","_limitProps","_proto","updateScrollable","elements","mousePosition","some","_trySetScrollable","_$scrollableAtPointer","_scrollSpeed","isScrollable","distanceToBorders","sensitivity","_calculateDistanceToBorders","_calculateScrollSpeed","$area","areaBoundingRect","area","maxSpeed","scrollByStep","scrollableInstance","nextScrollPosition","_nextScrollPosition","dragMoveArgs","_dragMoveArgs","_dragMoveHandler","isOutsideScrollable","scrollableSize","ScrollAnimator","horizontalScrollHelper","_horizontalScrollHelper","verticalScrollHelper","Draggable","onDragStart","onDragMove","onDragEnd","onDragEnter","onDragLeave","onDrop","immediate","dragDirection","boundary","boundOffset","allowMoveByClick","dragTemplate","contentTemplate","handle","autoScroll","scrollSpeed","scrollSensitivity","_setOptionsByReference","_optionsByReference","_scrollAnimator","_normalizeCursorOffset","splitPair","_getNormalizedCursorOffset","isFunction","_calculateElementOffset","elementOffset","dragElementOffset","$dragElement","isCloned","_dragElementIsCloned","cursorOffset","normalizedCursorOffset","currentLocate","_initialLocate","initialOffset","isFinite","_initPosition","_startPosition","_startAnimator","_stopAnimator","componentName","dasherize","checkDropTarget","targetGroup","sourceGroup","_getArea","_pointerDownHandler","_dragLeaveHandler","_createDragElement","_resetDragElement","_toggleDraggingClass","_resetSourceElement","$items","draggable","needSkipEvent","_isValidElement","dragStartArgs","_setSourceDraggable","_setGestureCoverCursor","isFixedPosition","areaOffset","_getAreaOffset","_getBoundOffset","areaWidth","areaHeight","elementHeight","quadToObject","startPosition","_updateScrollable","allObjects","getElementsFromPoint","ownerDocument","msElements","msElementsFromPoint","elementsFromPoint","$parent","_defaultActionArgs","fromComponent","toComponent","fromData","toData","_revertItemToInitialPosition","dragEndEventArgs","dropEventArgs","needRevertPosition","fromPromise","_resetTargetDraggable","_resetSourceDraggable","_isTargetOverAnotherDraggable","$sourceDraggableElement","$targetDraggableElement","firstWidgetElement","isTargetOverItself","isTargetOverNestedDraggable","_fireDragEnterEvent","_setTargetDraggable","_fireDragLeaveEvent","_getAnonymousTemplateName","transclude","anonymousTemplateName","currentGroup","ListSearch","_getCombinedFilter","_addSearchFilter","expr","_sortable","REORDER_HANDLE_CONTAINER_CLASS","REORDER_HANDLE_CLASS","REORDERING_ITEM_GHOST_CLASS","STATE_HOVER_CLASS","_groupedEnabled","_lockedDrag","_dragTemplate","_dragChangeHandler","_reorderHandler","_sameParent","$dragging","$over","$targetElement","$handle","isMouseEvent","_uiListEdit3","CONTEXTMENU_CLASS","CONTEXTMENU_MENUCONTENT_CLASS","_renderOverlay","_$menuList","_renderMenuContent","$overlayContent","_menuItemClickHandler","_$itemWithMenu","AsyncCollectionWidget","_deferredItems","_renderItemContent","renderContentDeferred","itemDeferred","$itemContent","itemTemplate","onRendered"],"mappings":"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","file":"js/chunk-19895e4b.aaa0e372.js","sourcesContent":["/**\r\n * DevExtreme (ui/toolbar/ui.toolbar.base.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _themes = require(\"../themes\");\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 _array = require(\"../../core/utils/array\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"../collection/ui.collection_widget.async\"));\r\nvar _promise = _interopRequireDefault(require(\"../../core/polyfills/promise\"));\r\nvar _bindable_template = require(\"../../core/templates/bindable_template\");\r\nvar _errors = _interopRequireDefault(require(\"../../core/errors\"));\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _constants = require(\"./constants\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TOOLBAR_BEFORE_CLASS = \"dx-toolbar-before\";\r\nvar TOOLBAR_CENTER_CLASS = \"dx-toolbar-center\";\r\nvar TOOLBAR_AFTER_CLASS = \"dx-toolbar-after\";\r\nvar TOOLBAR_MINI_CLASS = \"dx-toolbar-mini\";\r\nvar TOOLBAR_ITEM_CLASS = \"dx-toolbar-item\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar TOOLBAR_BUTTON_CLASS = \"dx-toolbar-button\";\r\nvar TOOLBAR_ITEMS_CONTAINER_CLASS = \"dx-toolbar-items-container\";\r\nvar TOOLBAR_GROUP_CLASS = \"dx-toolbar-group\";\r\nvar TOOLBAR_COMPACT_CLASS = \"dx-toolbar-compact\";\r\nvar TOOLBAR_LABEL_SELECTOR = \".\" + TOOLBAR_LABEL_CLASS;\r\nvar TOOLBAR_MULTILINE_CLASS = \"dx-toolbar-multiline\";\r\nvar TEXT_BUTTON_MODE = \"text\";\r\nvar DEFAULT_BUTTON_TYPE = \"default\";\r\nvar TOOLBAR_ITEM_DATA_KEY = \"dxToolbarItemDataKey\";\r\nvar ToolbarBase = _uiCollection_widget.default.inherit({\r\n compactMode: false,\r\n ctor: function(element, options) {\r\n this._userOptions = options || {};\r\n this.callBase(element, options);\r\n if (\"height\" in this._userOptions) {\r\n _errors.default.log(\"W0001\", this.NAME, \"height\", \"20.1\", \"Functionality associated with this option is not intended for the Toolbar widget.\")\r\n }\r\n },\r\n _getSynchronizableOptionsForCreateComponent: function() {\r\n return this.callBase().filter(function(item) {\r\n return \"disabled\" !== item\r\n })\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n var template = new _bindable_template.BindableTemplate(function($container, data, rawModel) {\r\n if ((0, _type.isPlainObject)(data)) {\r\n if (data.text) {\r\n $container.text(data.text).wrapInner(\"
\")\r\n }\r\n if (data.html) {\r\n $container.html(data.html)\r\n }\r\n if (\"dxButton\" === data.widget) {\r\n if (this.option(\"useFlatButtons\")) {\r\n data.options = data.options || {};\r\n data.options.stylingMode = data.options.stylingMode || TEXT_BUTTON_MODE\r\n }\r\n if (this.option(\"useDefaultButtons\")) {\r\n data.options = data.options || {};\r\n data.options.type = data.options.type || DEFAULT_BUTTON_TYPE\r\n }\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: rawModel,\r\n parent: this\r\n })\r\n }.bind(this), [\"text\", \"html\", \"widget\", \"options\"], this.option(\"integrationOptions.watchMethod\"));\r\n this._templateManager.addDefaultTemplates({\r\n item: template,\r\n menuItem: template\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n renderAs: \"topToolbar\",\r\n grouped: false,\r\n useFlatButtons: false,\r\n useDefaultButtons: false,\r\n multiline: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return (0, _themes.isMaterial)()\r\n },\r\n options: {\r\n useFlatButtons: true\r\n }\r\n }])\r\n },\r\n _itemContainer: function() {\r\n return this._$toolbarItemsContainer.find([\".\" + TOOLBAR_BEFORE_CLASS, \".\" + TOOLBAR_CENTER_CLASS, \".\" + TOOLBAR_AFTER_CLASS].join(\",\"))\r\n },\r\n _itemClass: function() {\r\n return TOOLBAR_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return TOOLBAR_ITEM_DATA_KEY\r\n },\r\n _buttonClass: function() {\r\n return TOOLBAR_BUTTON_CLASS\r\n },\r\n _dimensionChanged: function() {\r\n this._arrangeItems();\r\n this._applyCompactMode()\r\n },\r\n _initMarkup: function() {\r\n this._renderToolbar();\r\n this._renderSections();\r\n this.callBase();\r\n this.setAria(\"role\", \"toolbar\")\r\n },\r\n _waitParentAnimationFinished: function() {\r\n var _this = this;\r\n var $element = this.$element();\r\n var timeout = 15;\r\n return new _promise.default(function(resolve) {\r\n var check = function() {\r\n var readyToResolve = true;\r\n $element.parents().each(function(_, parent) {\r\n if (_fx.default.isAnimating((0, _renderer.default)(parent))) {\r\n readyToResolve = false;\r\n return false\r\n }\r\n });\r\n if (readyToResolve) {\r\n resolve()\r\n }\r\n return readyToResolve\r\n };\r\n var runCheck = function runCheck() {\r\n clearTimeout(_this._waitParentAnimationTimeout);\r\n _this._waitParentAnimationTimeout = setTimeout(function() {\r\n return check() || runCheck()\r\n }, timeout)\r\n };\r\n runCheck()\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderItemsAsync();\r\n if ((0, _themes.isMaterial)()) {\r\n _promise.default.all([this._waitParentAnimationFinished(), this._checkWebFontForLabelsLoaded()]).then(this._dimensionChanged.bind(this))\r\n }\r\n },\r\n _postProcessRenderItems: function() {\r\n this._arrangeItems()\r\n },\r\n _renderToolbar: function() {\r\n this.$element().addClass(_constants.TOOLBAR_CLASS).toggleClass(TOOLBAR_MULTILINE_CLASS, this.option(\"multiline\"));\r\n this._$toolbarItemsContainer = (0, _renderer.default)(\"
\").addClass(TOOLBAR_ITEMS_CONTAINER_CLASS).appendTo(this.$element())\r\n },\r\n _renderSections: function() {\r\n var $container = this._$toolbarItemsContainer;\r\n var that = this;\r\n (0, _iterator.each)([\"before\", \"center\", \"after\"], function() {\r\n var sectionClass = \"dx-toolbar-\" + this;\r\n var $section = $container.find(\".\" + sectionClass);\r\n if (!$section.length) {\r\n that[\"_$\" + this + \"Section\"] = $section = (0, _renderer.default)(\"
\").addClass(sectionClass).appendTo($container)\r\n }\r\n })\r\n },\r\n _checkWebFontForLabelsLoaded: function() {\r\n var $labels = this.$element().find(TOOLBAR_LABEL_SELECTOR);\r\n var promises = [];\r\n $labels.each(function(_, label) {\r\n var text = (0, _renderer.default)(label).text();\r\n var fontWeight = (0, _renderer.default)(label).css(\"fontWeight\");\r\n promises.push((0, _themes.waitWebFont)(text, fontWeight))\r\n });\r\n return _promise.default.all(promises)\r\n },\r\n _arrangeItems: function(elementWidth) {\r\n elementWidth = elementWidth || this.$element().width();\r\n this._$centerSection.css({\r\n margin: \"0 auto\",\r\n \"float\": \"none\"\r\n });\r\n var beforeRect = (0, _position.getBoundingRect)(this._$beforeSection.get(0));\r\n var afterRect = (0, _position.getBoundingRect)(this._$afterSection.get(0));\r\n this._alignCenterSection(beforeRect, afterRect, elementWidth);\r\n var $label = this._$toolbarItemsContainer.find(TOOLBAR_LABEL_SELECTOR).eq(0);\r\n var $section = $label.parent();\r\n if (!$label.length) {\r\n return\r\n }\r\n var labelOffset = beforeRect.width ? beforeRect.width : $label.position().left;\r\n var widthBeforeSection = $section.hasClass(TOOLBAR_BEFORE_CLASS) ? 0 : labelOffset;\r\n var widthAfterSection = $section.hasClass(TOOLBAR_AFTER_CLASS) ? 0 : afterRect.width;\r\n var elemsAtSectionWidth = 0;\r\n $section.children().not(TOOLBAR_LABEL_SELECTOR).each(function() {\r\n elemsAtSectionWidth += (0, _renderer.default)(this).outerWidth()\r\n });\r\n var freeSpace = elementWidth - elemsAtSectionWidth;\r\n var sectionMaxWidth = Math.max(freeSpace - widthBeforeSection - widthAfterSection, 0);\r\n if ($section.hasClass(TOOLBAR_BEFORE_CLASS)) {\r\n this._alignSection(this._$beforeSection, sectionMaxWidth)\r\n } else {\r\n var labelPaddings = $label.outerWidth() - $label.width();\r\n $label.css(\"maxWidth\", sectionMaxWidth - labelPaddings)\r\n }\r\n },\r\n _alignCenterSection: function(beforeRect, afterRect, elementWidth) {\r\n this._alignSection(this._$centerSection, elementWidth - beforeRect.width - afterRect.width);\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var leftRect = isRTL ? afterRect : beforeRect;\r\n var rightRect = isRTL ? beforeRect : afterRect;\r\n var centerRect = (0, _position.getBoundingRect)(this._$centerSection.get(0));\r\n if (leftRect.right > centerRect.left || centerRect.right > rightRect.left) {\r\n this._$centerSection.css({\r\n marginLeft: leftRect.width,\r\n marginRight: rightRect.width,\r\n \"float\": leftRect.width > rightRect.width ? \"none\" : \"right\"\r\n })\r\n }\r\n },\r\n _alignSection: function($section, maxWidth) {\r\n var $labels = $section.find(TOOLBAR_LABEL_SELECTOR);\r\n var labels = $labels.toArray();\r\n maxWidth -= this._getCurrentLabelsPaddings(labels);\r\n var currentWidth = this._getCurrentLabelsWidth(labels);\r\n var difference = Math.abs(currentWidth - maxWidth);\r\n if (maxWidth < currentWidth) {\r\n labels = labels.reverse();\r\n this._alignSectionLabels(labels, difference, false)\r\n } else {\r\n this._alignSectionLabels(labels, difference, true)\r\n }\r\n },\r\n _alignSectionLabels: function(labels, difference, expanding) {\r\n var getRealLabelWidth = function(label) {\r\n return (0, _position.getBoundingRect)(label).width\r\n };\r\n for (var i = 0; i < labels.length; i++) {\r\n var $label = (0, _renderer.default)(labels[i]);\r\n var currentLabelWidth = Math.ceil(getRealLabelWidth(labels[i]));\r\n var labelMaxWidth = void 0;\r\n if (expanding) {\r\n $label.css(\"maxWidth\", \"inherit\")\r\n }\r\n var possibleLabelWidth = Math.ceil(expanding ? getRealLabelWidth(labels[i]) : currentLabelWidth);\r\n if (possibleLabelWidth < difference) {\r\n labelMaxWidth = expanding ? possibleLabelWidth : 0;\r\n difference -= possibleLabelWidth\r\n } else {\r\n labelMaxWidth = expanding ? currentLabelWidth + difference : currentLabelWidth - difference;\r\n $label.css(\"maxWidth\", labelMaxWidth);\r\n break\r\n }\r\n $label.css(\"maxWidth\", labelMaxWidth)\r\n }\r\n },\r\n _applyCompactMode: function() {\r\n var $element = this.$element();\r\n $element.removeClass(TOOLBAR_COMPACT_CLASS);\r\n if (this.option(\"compactMode\") && this._getSummaryItemsWidth(this.itemElements(), true) > $element.width()) {\r\n $element.addClass(TOOLBAR_COMPACT_CLASS)\r\n }\r\n },\r\n _getCurrentLabelsWidth: function(labels) {\r\n var width = 0;\r\n labels.forEach(function(label, index) {\r\n width += (0, _renderer.default)(label).outerWidth()\r\n });\r\n return width\r\n },\r\n _getCurrentLabelsPaddings: function(labels) {\r\n var padding = 0;\r\n labels.forEach(function(label, index) {\r\n padding += (0, _renderer.default)(label).outerWidth() - (0, _renderer.default)(label).width()\r\n });\r\n return padding\r\n },\r\n _renderItem: function(index, item, itemContainer, $after) {\r\n var location = item.location || \"center\";\r\n var container = itemContainer || this[\"_$\" + location + \"Section\"];\r\n var itemHasText = !!(item.text || item.html);\r\n var itemElement = this.callBase(index, item, container, $after);\r\n itemElement.toggleClass(this._buttonClass(), !itemHasText).toggleClass(TOOLBAR_LABEL_CLASS, itemHasText).addClass(item.cssClass);\r\n return itemElement\r\n },\r\n _renderGroupedItems: function() {\r\n var that = this;\r\n (0, _iterator.each)(this.option(\"items\"), function(groupIndex, group) {\r\n var groupItems = group.items;\r\n var $container = (0, _renderer.default)(\"
\").addClass(TOOLBAR_GROUP_CLASS);\r\n var location = group.location || \"center\";\r\n if (!groupItems || !groupItems.length) {\r\n return\r\n }(0, _iterator.each)(groupItems, function(itemIndex, item) {\r\n that._renderItem(itemIndex, item, $container, null)\r\n });\r\n that._$toolbarItemsContainer.find(\".dx-toolbar-\" + location).append($container)\r\n })\r\n },\r\n _renderItems: function(items) {\r\n var grouped = this.option(\"grouped\") && items.length && items[0].items;\r\n grouped ? this._renderGroupedItems() : this.callBase(items)\r\n },\r\n _getToolbarItems: function() {\r\n return this.option(\"items\") || []\r\n },\r\n _renderContentImpl: function() {\r\n var items = this._getToolbarItems();\r\n this.$element().toggleClass(TOOLBAR_MINI_CLASS, 0 === items.length);\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n this._applyCompactMode()\r\n },\r\n _renderEmptyMessage: _common.noop,\r\n _clean: function() {\r\n this._$toolbarItemsContainer.children().empty();\r\n this.$element().empty()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._arrangeItems()\r\n }\r\n },\r\n _isVisible: function() {\r\n return this.$element().width() > 0 && this.$element().height() > 0\r\n },\r\n _getIndexByItem: function(item) {\r\n return (0, _array.inArray)(item, this._getToolbarItems())\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n this.callBase.apply(this, [item, property, value]);\r\n this._arrangeItems()\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"width\":\r\n this.callBase.apply(this, arguments);\r\n this._dimensionChanged();\r\n break;\r\n case \"multiline\":\r\n this.$element().toggleClass(TOOLBAR_MULTILINE_CLASS, args.value);\r\n break;\r\n case \"renderAs\":\r\n case \"useFlatButtons\":\r\n case \"useDefaultButtons\":\r\n this._invalidate();\r\n break;\r\n case \"compactMode\":\r\n this._applyCompactMode();\r\n break;\r\n case \"grouped\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._waitParentAnimationTimeout)\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxToolbarBase\", ToolbarBase);\r\nvar _default = ToolbarBase;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/list/ui.list.edit.decorator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _swipe = require(\"../../events/swipe\");\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 LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar SWIPE_START_EVENT_NAME = (0, _index.addNamespace)(_swipe.start, LIST_EDIT_DECORATOR);\r\nvar SWIPE_UPDATE_EVENT_NAME = (0, _index.addNamespace)(_swipe.swipe, LIST_EDIT_DECORATOR);\r\nvar SWIPE_END_EVENT_NAME = (0, _index.addNamespace)(_swipe.end, LIST_EDIT_DECORATOR);\r\nvar EditDecorator = _class.default.inherit({\r\n ctor: function(list) {\r\n this._list = list;\r\n this._init()\r\n },\r\n _init: _common.noop,\r\n _shouldHandleSwipe: false,\r\n _attachSwipeEvent: function(config) {\r\n var swipeConfig = {\r\n itemSizeFunc: function() {\r\n if (this._clearSwipeCache) {\r\n this._itemWidthCache = this._list.$element().width();\r\n this._clearSwipeCache = false\r\n }\r\n return this._itemWidthCache\r\n }.bind(this)\r\n };\r\n _events_engine.default.on(config.$itemElement, SWIPE_START_EVENT_NAME, swipeConfig, this._itemSwipeStartHandler.bind(this));\r\n _events_engine.default.on(config.$itemElement, SWIPE_UPDATE_EVENT_NAME, this._itemSwipeUpdateHandler.bind(this));\r\n _events_engine.default.on(config.$itemElement, SWIPE_END_EVENT_NAME, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeStartHandler: function(e) {\r\n var $itemElement = (0, _renderer.default)(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n clearTimeout(this._list._inkRippleTimer);\r\n this._swipeStartHandler($itemElement, e)\r\n },\r\n _itemSwipeUpdateHandler: function(e) {\r\n var $itemElement = (0, _renderer.default)(e.currentTarget);\r\n this._swipeUpdateHandler($itemElement, e)\r\n },\r\n _itemSwipeEndHandler: function(e) {\r\n var $itemElement = (0, _renderer.default)(e.currentTarget);\r\n this._swipeEndHandler($itemElement, e);\r\n this._clearSwipeCache = true\r\n },\r\n beforeBag: _common.noop,\r\n afterBag: _common.noop,\r\n _commonOptions: function() {\r\n return {\r\n activeStateEnabled: this._list.option(\"activeStateEnabled\"),\r\n hoverStateEnabled: this._list.option(\"hoverStateEnabled\"),\r\n focusStateEnabled: this._list.option(\"focusStateEnabled\")\r\n }\r\n },\r\n modifyElement: function(config) {\r\n if (this._shouldHandleSwipe) {\r\n this._attachSwipeEvent(config);\r\n this._clearSwipeCache = true\r\n }\r\n },\r\n afterRender: _common.noop,\r\n handleClick: _common.noop,\r\n handleKeyboardEvents: _common.noop,\r\n handleEnterPressing: _common.noop,\r\n handleContextMenu: _common.noop,\r\n _swipeStartHandler: _common.noop,\r\n _swipeUpdateHandler: _common.noop,\r\n _swipeEndHandler: _common.noop,\r\n visibilityChange: _common.noop,\r\n getExcludedSelectors: _common.noop,\r\n dispose: _common.noop\r\n});\r\nvar _default = EditDecorator;\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.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _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/action_sheet.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _common = require(\"../core/utils/common\");\r\nvar _message = _interopRequireDefault(require(\"../localization/message\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _button = _interopRequireDefault(require(\"./button\"));\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"./collection/ui.collection_widget.edit\"));\r\nvar _popup = _interopRequireDefault(require(\"./popup\"));\r\nvar _popover = _interopRequireDefault(require(\"./popover\"));\r\nvar _bindable_template = require(\"../core/templates/bindable_template\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar ACTION_SHEET_CLASS = \"dx-actionsheet\";\r\nvar ACTION_SHEET_CONTAINER_CLASS = \"dx-actionsheet-container\";\r\nvar ACTION_SHEET_POPUP_WRAPPER_CLASS = \"dx-actionsheet-popup-wrapper\";\r\nvar ACTION_SHEET_POPOVER_WRAPPER_CLASS = \"dx-actionsheet-popover-wrapper\";\r\nvar ACTION_SHEET_CANCEL_BUTTON_CLASS = \"dx-actionsheet-cancel\";\r\nvar ACTION_SHEET_ITEM_CLASS = \"dx-actionsheet-item\";\r\nvar ACTION_SHEET_ITEM_DATA_KEY = \"dxActionSheetItemData\";\r\nvar ACTION_SHEET_WITHOUT_TITLE_CLASS = \"dx-actionsheet-without-title\";\r\nvar ActionSheet = _uiCollection_widget.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n usePopover: false,\r\n target: null,\r\n title: \"\",\r\n showTitle: true,\r\n showCancelButton: true,\r\n cancelText: _message.default.format(\"Cancel\"),\r\n onCancelClick: null,\r\n visible: false,\r\n noDataText: \"\",\r\n focusStateEnabled: false,\r\n selectionByClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\",\r\n tablet: true\r\n },\r\n options: {\r\n usePopover: true\r\n }\r\n }])\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new _bindable_template.BindableTemplate(function($container, data) {\r\n var button = new _button.default((0, _renderer.default)(\"
\"), (0, _extend.extend)({\r\n onClick: data && data.click\r\n }, data));\r\n $container.append(button.$element())\r\n }, [\"disabled\", \"icon\", \"text\", \"type\", \"onClick\", \"click\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _itemContainer: function() {\r\n return this._$itemContainer\r\n },\r\n _itemClass: function() {\r\n return ACTION_SHEET_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return ACTION_SHEET_ITEM_DATA_KEY\r\n },\r\n _toggleVisibility: _common.noop,\r\n _renderDimensions: _common.noop,\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(ACTION_SHEET_CLASS);\r\n this._createItemContainer()\r\n },\r\n _render: function() {\r\n this._renderPopup()\r\n },\r\n _createItemContainer: function() {\r\n this._$itemContainer = (0, _renderer.default)(\"
\").addClass(ACTION_SHEET_CONTAINER_CLASS);\r\n this._renderDisabled()\r\n },\r\n _renderDisabled: function() {\r\n this._$itemContainer.toggleClass(\"dx-state-disabled\", this.option(\"disabled\"))\r\n },\r\n _renderPopup: function() {\r\n this._$popup = (0, _renderer.default)(\"
\").appendTo(this.$element());\r\n this._isPopoverMode() ? this._createPopover() : this._createPopup();\r\n this._renderPopupTitle();\r\n this._mapPopupOption(\"visible\")\r\n },\r\n _mapPopupOption: function(optionName) {\r\n this._popup && this._popup.option(optionName, this.option(optionName))\r\n },\r\n _isPopoverMode: function() {\r\n return this.option(\"usePopover\") && this.option(\"target\")\r\n },\r\n _renderPopupTitle: function() {\r\n this._mapPopupOption(\"showTitle\");\r\n this._popup && this._popup._wrapper().toggleClass(ACTION_SHEET_WITHOUT_TITLE_CLASS, !this.option(\"showTitle\"))\r\n },\r\n _clean: function() {\r\n if (this._$popup) {\r\n this._$popup.remove()\r\n }\r\n this.callBase()\r\n },\r\n _overlayConfig: function() {\r\n return {\r\n onInitialized: function(args) {\r\n this._popup = args.component\r\n }.bind(this),\r\n disabled: false,\r\n showTitle: true,\r\n title: this.option(\"title\"),\r\n deferRendering: !window.angular,\r\n onContentReady: this._popupContentReadyAction.bind(this),\r\n onHidden: this.hide.bind(this)\r\n }\r\n },\r\n _createPopover: function() {\r\n this._createComponent(this._$popup, _popover.default, (0, _extend.extend)(this._overlayConfig(), {\r\n width: this.option(\"width\") || 200,\r\n height: this.option(\"height\") || \"auto\",\r\n target: this.option(\"target\")\r\n }));\r\n this._popup._wrapper().addClass(ACTION_SHEET_POPOVER_WRAPPER_CLASS)\r\n },\r\n _createPopup: function() {\r\n this._createComponent(this._$popup, _popup.default, (0, _extend.extend)(this._overlayConfig(), {\r\n dragEnabled: false,\r\n width: this.option(\"width\") || \"100%\",\r\n height: this.option(\"height\") || \"auto\",\r\n showCloseButton: false,\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n },\r\n animation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }\r\n }\r\n }));\r\n this._popup._wrapper().addClass(ACTION_SHEET_POPUP_WRAPPER_CLASS)\r\n },\r\n _popupContentReadyAction: function() {\r\n this._popup.$content().append(this._$itemContainer);\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._prepareContent();\r\n this._renderContent();\r\n this._renderCancelButton()\r\n },\r\n _renderCancelButton: function() {\r\n if (this._isPopoverMode()) {\r\n return\r\n }\r\n if (this._$cancelButton) {\r\n this._$cancelButton.remove()\r\n }\r\n if (this.option(\"showCancelButton\")) {\r\n var cancelClickAction = this._createActionByOption(\"onCancelClick\") || _common.noop;\r\n var that = this;\r\n this._$cancelButton = (0, _renderer.default)(\"
\").addClass(ACTION_SHEET_CANCEL_BUTTON_CLASS).appendTo(this._popup && this._popup.$content());\r\n this._createComponent(this._$cancelButton, _button.default, {\r\n disabled: false,\r\n text: this.option(\"cancelText\"),\r\n onClick: function(e) {\r\n var hidingArgs = {\r\n event: e,\r\n cancel: false\r\n };\r\n cancelClickAction(hidingArgs);\r\n if (!hidingArgs.cancel) {\r\n that.hide()\r\n }\r\n },\r\n integrationOptions: {}\r\n })\r\n }\r\n },\r\n _attachItemClickEvent: _common.noop,\r\n _itemClickHandler: function(e) {\r\n this.callBase(e);\r\n if (!(0, _renderer.default)(e.target).is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n this.hide()\r\n }\r\n },\r\n _itemHoldHandler: function(e) {\r\n this.callBase(e);\r\n if (!(0, _renderer.default)(e.target).is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n this.hide()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n case \"visible\":\r\n case \"title\":\r\n this._mapPopupOption(args.name);\r\n break;\r\n case \"disabled\":\r\n this._renderDisabled();\r\n break;\r\n case \"showTitle\":\r\n this._renderPopupTitle();\r\n break;\r\n case \"showCancelButton\":\r\n case \"onCancelClick\":\r\n case \"cancelText\":\r\n this._renderCancelButton();\r\n break;\r\n case \"target\":\r\n case \"usePopover\":\r\n case \"items\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n toggle: function(showing) {\r\n var that = this;\r\n var d = new _deferred.Deferred;\r\n that._popup.toggle(showing).done(function() {\r\n that.option(\"visible\", showing);\r\n d.resolveWith(that)\r\n });\r\n return d.promise()\r\n },\r\n show: function() {\r\n return this.toggle(true)\r\n },\r\n hide: function() {\r\n return this.toggle(false)\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxActionSheet\", ActionSheet);\r\nvar _default = ActionSheet;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/shared/grouped_data_converter_mixin.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _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/list/ui.list.edit.decorator.switchable.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _uiListEdit = _interopRequireDefault(require(\"./ui.list.edit.decorator\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _emitter = require(\"../../events/core/emitter.feedback\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar abstract = _uiListEdit.default.abstract;\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar POINTER_DOWN_EVENT_NAME = (0, _index.addNamespace)(_pointer.default.down, LIST_EDIT_DECORATOR);\r\nvar ACTIVE_EVENT_NAME = (0, _index.addNamespace)(_emitter.active, LIST_EDIT_DECORATOR);\r\nvar LIST_ITEM_CONTENT_CLASS = \"dx-list-item-content\";\r\nvar SWITCHABLE_DELETE_READY_CLASS = \"dx-list-switchable-delete-ready\";\r\nvar SWITCHABLE_MENU_SHIELD_POSITIONING_CLASS = \"dx-list-switchable-menu-shield-positioning\";\r\nvar SWITCHABLE_DELETE_TOP_SHIELD_CLASS = \"dx-list-switchable-delete-top-shield\";\r\nvar SWITCHABLE_DELETE_BOTTOM_SHIELD_CLASS = \"dx-list-switchable-delete-bottom-shield\";\r\nvar SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS = \"dx-list-switchable-menu-item-shield-positioning\";\r\nvar SWITCHABLE_DELETE_ITEM_CONTENT_SHIELD_CLASS = \"dx-list-switchable-delete-item-content-shield\";\r\nvar SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS = \"dx-list-switchable-delete-button-container\";\r\nvar SwitchableEditDecorator = _uiListEdit.default.inherit({\r\n _init: function() {\r\n this._$topShield = (0, _renderer.default)(\"
\").addClass(SWITCHABLE_DELETE_TOP_SHIELD_CLASS);\r\n this._$bottomShield = (0, _renderer.default)(\"
\").addClass(SWITCHABLE_DELETE_BOTTOM_SHIELD_CLASS);\r\n this._$itemContentShield = (0, _renderer.default)(\"
\").addClass(SWITCHABLE_DELETE_ITEM_CONTENT_SHIELD_CLASS);\r\n _events_engine.default.on(this._$topShield, POINTER_DOWN_EVENT_NAME, this._cancelDeleteReadyItem.bind(this));\r\n _events_engine.default.on(this._$bottomShield, POINTER_DOWN_EVENT_NAME, this._cancelDeleteReadyItem.bind(this));\r\n this._list.$element().append(this._$topShield.toggle(false)).append(this._$bottomShield.toggle(false))\r\n },\r\n handleClick: function() {\r\n return this._cancelDeleteReadyItem()\r\n },\r\n _cancelDeleteReadyItem: function() {\r\n if (!this._$readyToDeleteItem) {\r\n return false\r\n }\r\n this._cancelDelete(this._$readyToDeleteItem);\r\n return true\r\n },\r\n _cancelDelete: function($itemElement) {\r\n this._toggleDeleteReady($itemElement, false)\r\n },\r\n _toggleDeleteReady: function($itemElement, readyToDelete) {\r\n if (void 0 === readyToDelete) {\r\n readyToDelete = !this._isReadyToDelete($itemElement)\r\n }\r\n this._toggleShields($itemElement, readyToDelete);\r\n this._toggleScrolling(readyToDelete);\r\n this._cacheReadyToDeleteItem($itemElement, readyToDelete);\r\n this._animateToggleDelete($itemElement, readyToDelete)\r\n },\r\n _isReadyToDelete: function($itemElement) {\r\n return $itemElement.hasClass(SWITCHABLE_DELETE_READY_CLASS)\r\n },\r\n _toggleShields: function($itemElement, enabled) {\r\n this._list.$element().toggleClass(SWITCHABLE_MENU_SHIELD_POSITIONING_CLASS, enabled);\r\n this._$topShield.toggle(enabled);\r\n this._$bottomShield.toggle(enabled);\r\n if (enabled) {\r\n this._updateShieldsHeight($itemElement)\r\n }\r\n this._toggleContentShield($itemElement, enabled)\r\n },\r\n _updateShieldsHeight: function($itemElement) {\r\n var $list = this._list.$element();\r\n var listTopOffset = $list.offset().top;\r\n var listHeight = $list.outerHeight();\r\n var itemTopOffset = $itemElement.offset().top;\r\n var itemHeight = $itemElement.outerHeight();\r\n var dirtyTopShieldHeight = itemTopOffset - listTopOffset;\r\n var dirtyBottomShieldHeight = listHeight - itemHeight - dirtyTopShieldHeight;\r\n this._$topShield.height(Math.max(dirtyTopShieldHeight, 0));\r\n this._$bottomShield.height(Math.max(dirtyBottomShieldHeight, 0))\r\n },\r\n _toggleContentShield: function($itemElement, enabled) {\r\n if (enabled) {\r\n $itemElement.find(\".\" + LIST_ITEM_CONTENT_CLASS).first().append(this._$itemContentShield)\r\n } else {\r\n this._$itemContentShield.detach()\r\n }\r\n },\r\n _toggleScrolling: function(readyToDelete) {\r\n var scrollView = this._list.$element().dxScrollView(\"instance\");\r\n if (readyToDelete) {\r\n scrollView.on(\"start\", this._cancelScrolling)\r\n } else {\r\n scrollView.off(\"start\", this._cancelScrolling)\r\n }\r\n },\r\n _cancelScrolling: function(args) {\r\n args.event.cancel = true\r\n },\r\n _cacheReadyToDeleteItem: function($itemElement, cache) {\r\n if (cache) {\r\n this._$readyToDeleteItem = $itemElement\r\n } else {\r\n delete this._$readyToDeleteItem\r\n }\r\n },\r\n _animateToggleDelete: function($itemElement, readyToDelete) {\r\n if (readyToDelete) {\r\n this._enablePositioning($itemElement);\r\n this._prepareDeleteReady($itemElement);\r\n this._animatePrepareDeleteReady($itemElement);\r\n _events_engine.default.off($itemElement, _pointer.default.up)\r\n } else {\r\n this._forgetDeleteReady($itemElement);\r\n this._animateForgetDeleteReady($itemElement).done(this._disablePositioning.bind(this, $itemElement))\r\n }\r\n },\r\n _enablePositioning: function($itemElement) {\r\n $itemElement.addClass(SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS);\r\n _events_engine.default.on($itemElement, ACTIVE_EVENT_NAME, _common.noop);\r\n _events_engine.default.one($itemElement, _pointer.default.up, this._disablePositioning.bind(this, $itemElement))\r\n },\r\n _disablePositioning: function($itemElement) {\r\n $itemElement.removeClass(SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS);\r\n _events_engine.default.off($itemElement, ACTIVE_EVENT_NAME)\r\n },\r\n _prepareDeleteReady: function($itemElement) {\r\n $itemElement.addClass(SWITCHABLE_DELETE_READY_CLASS)\r\n },\r\n _forgetDeleteReady: function($itemElement) {\r\n $itemElement.removeClass(SWITCHABLE_DELETE_READY_CLASS)\r\n },\r\n _animatePrepareDeleteReady: abstract,\r\n _animateForgetDeleteReady: abstract,\r\n _getDeleteButtonContainer: function($itemElement) {\r\n $itemElement = $itemElement || this._$readyToDeleteItem;\r\n return $itemElement.children(\".\" + SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS)\r\n },\r\n _deleteItem: function($itemElement) {\r\n $itemElement = $itemElement || this._$readyToDeleteItem;\r\n this._getDeleteButtonContainer($itemElement).detach();\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n this._list.deleteItem($itemElement).always(this._cancelDelete.bind(this, $itemElement))\r\n },\r\n _isRtlEnabled: function() {\r\n return this._list.option(\"rtlEnabled\")\r\n },\r\n dispose: function() {\r\n if (this._$topShield) {\r\n this._$topShield.remove()\r\n }\r\n if (this._$bottomShield) {\r\n this._$bottomShield.remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n});\r\nvar _default = SwitchableEditDecorator;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/list/ui.list.edit.decorator.static.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\nvar _uiListEdit = require(\"./ui.list.edit.decorator_registry\");\r\nvar _uiListEdit2 = _interopRequireDefault(require(\"./ui.list.edit.decorator\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar STATIC_DELETE_BUTTON_CONTAINER_CLASS = \"dx-list-static-delete-button-container\";\r\nvar STATIC_DELETE_BUTTON_CLASS = \"dx-list-static-delete-button\";\r\n(0, _uiListEdit.register)(\"delete\", \"static\", _uiListEdit2.default.inherit({\r\n afterBag: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container;\r\n var $button = (0, _renderer.default)(\"
\").addClass(STATIC_DELETE_BUTTON_CLASS);\r\n this._list._createComponent($button, _button.default, {\r\n icon: \"remove\",\r\n onClick: function(args) {\r\n args.event.stopPropagation();\r\n this._deleteItem($itemElement)\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $container.addClass(STATIC_DELETE_BUTTON_CONTAINER_CLASS).append($button)\r\n },\r\n _deleteItem: function($itemElement) {\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n this._list.deleteItem($itemElement)\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/list/ui.list.edit.strategy.grouped.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _store_helper = _interopRequireDefault(require(\"../../data/store_helper\"));\r\nvar _query = _interopRequireDefault(require(\"../../data/query\"));\r\nvar _uiCollection_widgetEditStrategy = _interopRequireDefault(require(\"../collection/ui.collection_widget.edit.strategy.plain\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar SELECTION_SHIFT = 20;\r\nvar SELECTION_MASK = 2303;\r\nvar combineIndex = function(indices) {\r\n return (indices.group << SELECTION_SHIFT) + indices.item\r\n};\r\nvar splitIndex = function(combinedIndex) {\r\n return {\r\n group: combinedIndex >> SELECTION_SHIFT,\r\n item: combinedIndex & SELECTION_MASK\r\n }\r\n};\r\nvar GroupedEditStrategy = _uiCollection_widgetEditStrategy.default.inherit({\r\n _groupElements: function() {\r\n return this._collectionWidget._itemContainer().find(\".\" + LIST_GROUP_CLASS)\r\n },\r\n _groupItemElements: function($group) {\r\n return $group.find(\".\" + LIST_ITEM_CLASS)\r\n },\r\n getIndexByItemData: function(itemData) {\r\n var groups = this._collectionWidget.option(\"items\");\r\n var index = false;\r\n if (!itemData) {\r\n return false\r\n }\r\n if (itemData.items && itemData.items.length) {\r\n itemData = itemData.items[0]\r\n }(0, _iterator.each)(groups, function(groupIndex, group) {\r\n if (!group.items) {\r\n return false\r\n }(0, _iterator.each)(group.items, function(itemIndex, item) {\r\n if (item !== itemData) {\r\n return true\r\n }\r\n index = {\r\n group: groupIndex,\r\n item: itemIndex\r\n };\r\n return false\r\n });\r\n if (index) {\r\n return false\r\n }\r\n });\r\n return index\r\n },\r\n getItemDataByIndex: function(index) {\r\n var items = this._collectionWidget.option(\"items\");\r\n if ((0, _type.isNumeric)(index)) {\r\n return this.itemsGetter()[index]\r\n }\r\n return index && items[index.group] && items[index.group].items[index.item] || null\r\n },\r\n itemsGetter: function() {\r\n var resultItems = [];\r\n var items = this._collectionWidget.option(\"items\");\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n resultItems = resultItems.concat(items[i].items)\r\n } else {\r\n resultItems.push(items[i])\r\n }\r\n }\r\n return resultItems\r\n },\r\n deleteItemAtIndex: function(index) {\r\n var indices = splitIndex(index);\r\n var itemGroup = this._collectionWidget.option(\"items\")[indices.group].items;\r\n itemGroup.splice(indices.item, 1)\r\n },\r\n getKeysByItems: function(items) {\r\n var plainItems = [];\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n var result = [];\r\n for (i = 0; i < plainItems.length; i++) {\r\n result.push(this._collectionWidget.keyOf(plainItems[i]))\r\n }\r\n return result\r\n },\r\n getIndexByKey: function(key, items) {\r\n var groups = items || this._collectionWidget.option(\"items\");\r\n var index = -1;\r\n var that = this;\r\n (0, _iterator.each)(groups, function(groupIndex, group) {\r\n if (!group.items) {\r\n return\r\n }\r\n var keys = that.getKeysByItems(group.items);\r\n (0, _iterator.each)(keys, function(keyIndex, itemKey) {\r\n if (that._equalKeys(itemKey, key)) {\r\n index = {\r\n group: groupIndex,\r\n item: keyIndex\r\n };\r\n return false\r\n }\r\n });\r\n if (index !== -1) {\r\n return false\r\n }\r\n });\r\n return index\r\n },\r\n _getGroups: function(items) {\r\n var dataSource = this._collectionWidget.getDataSource();\r\n var group = dataSource && dataSource.group();\r\n if (group) {\r\n return _store_helper.default.queryByOptions((0, _query.default)(items), {\r\n group: group\r\n }).toArray()\r\n }\r\n return this._collectionWidget.option(\"items\")\r\n },\r\n getItemsByKeys: function(keys, items) {\r\n var result = [];\r\n (0, _iterator.each)(keys, function(_, key) {\r\n var getItemMeta = function(groups) {\r\n var index = this.getIndexByKey(key, groups);\r\n var group = index && groups[index.group];\r\n if (!group) {\r\n return\r\n }\r\n return {\r\n groupKey: group.key,\r\n item: group.items[index.item]\r\n }\r\n }.bind(this);\r\n var itemMeta = getItemMeta(this._getGroups(items));\r\n if (!itemMeta) {\r\n return\r\n }\r\n var groupKey = itemMeta.groupKey;\r\n var item = itemMeta.item;\r\n var selectedGroup;\r\n (0, _iterator.each)(result, function(_, item) {\r\n if (item.key === groupKey) {\r\n selectedGroup = item;\r\n return false\r\n }\r\n });\r\n if (!selectedGroup) {\r\n selectedGroup = {\r\n key: groupKey,\r\n items: []\r\n };\r\n result.push(selectedGroup)\r\n }\r\n selectedGroup.items.push(item)\r\n }.bind(this));\r\n return result\r\n },\r\n moveItemAtIndexToIndex: function(movingIndex, destinationIndex) {\r\n var items = this._collectionWidget.option(\"items\");\r\n var movingIndices = splitIndex(movingIndex);\r\n var destinationIndices = splitIndex(destinationIndex);\r\n var movingItemGroup = items[movingIndices.group].items;\r\n var destinationItemGroup = items[destinationIndices.group].items;\r\n var movedItemData = movingItemGroup[movingIndices.item];\r\n movingItemGroup.splice(movingIndices.item, 1);\r\n destinationItemGroup.splice(destinationIndices.item, 0, movedItemData)\r\n },\r\n _isItemIndex: function(index) {\r\n return index && (0, _type.isNumeric)(index.group) && (0, _type.isNumeric)(index.item)\r\n },\r\n _getNormalizedItemIndex: function(itemElement) {\r\n var $item = (0, _renderer.default)(itemElement);\r\n var $group = $item.closest(\".\" + LIST_GROUP_CLASS);\r\n if (!$group.length) {\r\n return -1\r\n }\r\n return combineIndex({\r\n group: this._groupElements().index($group),\r\n item: this._groupItemElements($group).index($item)\r\n })\r\n },\r\n _normalizeItemIndex: function(index) {\r\n return combineIndex(index)\r\n },\r\n _denormalizeItemIndex: function(index) {\r\n return splitIndex(index)\r\n },\r\n _getItemByNormalizedIndex: function(index) {\r\n var indices = splitIndex(index);\r\n var $group = this._groupElements().eq(indices.group);\r\n return this._groupItemElements($group).eq(indices.item)\r\n },\r\n _itemsFromSameParent: function(firstIndex, secondIndex) {\r\n return splitIndex(firstIndex).group === splitIndex(secondIndex).group\r\n }\r\n});\r\nvar _default = GroupedEditStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/list/ui.list.edit.decorator.selection.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _check_box = _interopRequireDefault(require(\"../check_box\"));\r\nvar _radio_button = _interopRequireDefault(require(\"../radio_group/radio_button\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _uiListEdit = require(\"./ui.list.edit.decorator_registry\");\r\nvar _uiListEdit2 = _interopRequireDefault(require(\"./ui.list.edit.decorator\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SELECT_DECORATOR_ENABLED_CLASS = \"dx-list-select-decorator-enabled\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CLASS = \"dx-list-select-all\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS = \"dx-list-select-all-checkbox\";\r\nvar SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS = \"dx-list-select-all-label\";\r\nvar SELECT_CHECKBOX_CONTAINER_CLASS = \"dx-list-select-checkbox-container\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-list-select-checkbox\";\r\nvar SELECT_RADIO_BUTTON_CONTAINER_CLASS = \"dx-list-select-radiobutton-container\";\r\nvar SELECT_RADIO_BUTTON_CLASS = \"dx-list-select-radiobutton\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar CLICK_EVENT_NAME = (0, _index.addNamespace)(_click.name, \"dxListEditDecorator\");\r\n(0, _uiListEdit.register)(\"selection\", \"default\", _uiListEdit2.default.inherit({\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var selectionMode = this._list.option(\"selectionMode\");\r\n this._singleStrategy = \"single\" === selectionMode;\r\n this._containerClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CONTAINER_CLASS : SELECT_CHECKBOX_CONTAINER_CLASS;\r\n this._controlClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CLASS : SELECT_CHECKBOX_CLASS;\r\n this._controlWidget = this._singleStrategy ? _radio_button.default : _check_box.default;\r\n this._list.$element().addClass(SELECT_DECORATOR_ENABLED_CLASS)\r\n },\r\n beforeBag: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container.addClass(this._containerClass);\r\n var $control = (0, _renderer.default)(\"
\").addClass(this._controlClass).appendTo($container);\r\n new this._controlWidget($control, (0, _extend.extend)(this._commonOptions(), {\r\n value: this._isSelected($itemElement),\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n onValueChanged: function(e) {\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n this._processCheckedState($itemElement, e.value);\r\n e.event && e.event.stopPropagation()\r\n }.bind(this)\r\n }))\r\n },\r\n modifyElement: function(config) {\r\n this.callBase.apply(this, arguments);\r\n var $itemElement = config.$itemElement;\r\n var control = this._controlWidget.getInstance($itemElement.find(\".\" + this._controlClass));\r\n _events_engine.default.on($itemElement, \"stateChanged\", function(e, state) {\r\n control.option(\"value\", state)\r\n }.bind(this))\r\n },\r\n _updateSelectAllState: function() {\r\n if (!this._$selectAll) {\r\n return\r\n }\r\n this._selectAllCheckBox.option(\"value\", this._list.isSelectAll())\r\n },\r\n afterRender: function() {\r\n if (\"all\" !== this._list.option(\"selectionMode\")) {\r\n return\r\n }\r\n if (!this._$selectAll) {\r\n this._renderSelectAll()\r\n } else {\r\n this._updateSelectAllState()\r\n }\r\n },\r\n handleKeyboardEvents: function(currentFocusedIndex, moveFocusUp) {\r\n var moveFocusDown = !moveFocusUp;\r\n var list = this._list;\r\n var $selectAll = this._$selectAll;\r\n var lastItemIndex = list._getLastItemIndex();\r\n var isFocusOutOfList = moveFocusUp && 0 === currentFocusedIndex || moveFocusDown && currentFocusedIndex === lastItemIndex;\r\n var hasSelectAllItem = !!$selectAll;\r\n if (hasSelectAllItem && isFocusOutOfList) {\r\n list.option(\"focusedElement\", $selectAll);\r\n list.scrollToItem(list.option(\"focusedElement\"));\r\n return true\r\n }\r\n return false\r\n },\r\n handleEnterPressing: function(e) {\r\n if (this._$selectAll && this._$selectAll.hasClass(FOCUSED_STATE_CLASS)) {\r\n e.target = this._$selectAll.get(0);\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"));\r\n return true\r\n }\r\n },\r\n _renderSelectAll: function() {\r\n var $selectAll = this._$selectAll = (0, _renderer.default)(\"
\").addClass(SELECT_DECORATOR_SELECT_ALL_CLASS);\r\n var list = this._list;\r\n var downArrowHandler = list._supportedKeys().downArrow.bind(list);\r\n this._selectAllCheckBox = list._createComponent((0, _renderer.default)(\"
\").addClass(SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS).appendTo($selectAll), _check_box.default, {\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false\r\n });\r\n this._selectAllCheckBox.registerKeyHandler(\"downArrow\", downArrowHandler);\r\n (0, _renderer.default)(\"
\").addClass(SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS).text(this._list.option(\"selectAllText\")).appendTo($selectAll);\r\n this._list.itemsContainer().prepend($selectAll);\r\n this._updateSelectAllState();\r\n this._attachSelectAllHandler()\r\n },\r\n _attachSelectAllHandler: function() {\r\n this._selectAllCheckBox.option(\"onValueChanged\", this._selectAllHandler.bind(this));\r\n _events_engine.default.off(this._$selectAll, CLICK_EVENT_NAME);\r\n _events_engine.default.on(this._$selectAll, CLICK_EVENT_NAME, this._selectAllClickHandler.bind(this))\r\n },\r\n _selectAllHandler: function(e) {\r\n e.event && e.event.stopPropagation();\r\n var isSelectedAll = this._selectAllCheckBox.option(\"value\");\r\n var result = this._list._createActionByOption(\"onSelectAllValueChanged\")({\r\n value: isSelectedAll\r\n });\r\n if (false === result) {\r\n return\r\n }\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n if (true === isSelectedAll) {\r\n this._selectAllItems()\r\n } else {\r\n if (false === isSelectedAll) {\r\n this._unselectAllItems()\r\n }\r\n }\r\n },\r\n _checkSelectAllCapability: function() {\r\n var list = this._list;\r\n var dataSource = list.getDataSource();\r\n if (\"allPages\" === list.option(\"selectAllMode\") && list.option(\"grouped\") && (!dataSource || !dataSource.group())) {\r\n _ui.default.log(\"W1010\");\r\n return false\r\n }\r\n return true\r\n },\r\n _selectAllItems: function() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.selectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _unselectAllItems: function() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.deselectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _selectAllClickHandler: function(e) {\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"))\r\n },\r\n _isSelected: function($itemElement) {\r\n return this._list.isItemSelected($itemElement)\r\n },\r\n _processCheckedState: function($itemElement, checked) {\r\n if (checked) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n },\r\n dispose: function() {\r\n this._disposeSelectAll();\r\n this._list.$element().removeClass(SELECT_DECORATOR_ENABLED_CLASS);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _disposeSelectAll: function() {\r\n if (this._$selectAll) {\r\n this._$selectAll.remove();\r\n this._$selectAll = null\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/scroll_view/ui.scroll_view.native.swipe_down.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _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/check_box.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _utils = require(\"./widget/utils.ink_ripple\");\r\nvar _editor = _interopRequireDefault(require(\"./editor/editor\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _index = require(\"../events/utils/index\");\r\nvar _click = require(\"../events/click\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar CHECKBOX_CLASS = \"dx-checkbox\";\r\nvar CHECKBOX_ICON_CLASS = \"dx-checkbox-icon\";\r\nvar CHECKBOX_CHECKED_CLASS = \"dx-checkbox-checked\";\r\nvar CHECKBOX_CONTAINER_CLASS = \"dx-checkbox-container\";\r\nvar CHECKBOX_TEXT_CLASS = \"dx-checkbox-text\";\r\nvar CHECKBOX_HAS_TEXT_CLASS = \"dx-checkbox-has-text\";\r\nvar CHECKBOX_INDETERMINATE_CLASS = \"dx-checkbox-indeterminate\";\r\nvar CHECKBOX_FEEDBACK_HIDE_TIMEOUT = 100;\r\nvar CheckBox = _editor.default.inherit({\r\n _supportedKeys: function() {\r\n var click = function(e) {\r\n e.preventDefault();\r\n this._clickAction({\r\n event: e\r\n })\r\n };\r\n return (0, _extend.extend)(this.callBase(), {\r\n space: click\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n value: false,\r\n text: \"\",\r\n useInkRipple: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === _devices.default.real().deviceType && !_devices.default.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return true\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _feedbackHideTimeout: CHECKBOX_FEEDBACK_HIDE_TIMEOUT,\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this._$container = (0, _renderer.default)(\"
\").addClass(CHECKBOX_CONTAINER_CLASS);\r\n this.setAria(\"role\", \"checkbox\");\r\n this.$element().addClass(CHECKBOX_CLASS);\r\n this._renderValue();\r\n this._renderIcon();\r\n this._renderText();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.$element().append(this._$container);\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this._renderClick();\r\n this.callBase()\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = (0, _renderer.default)(\"\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = (0, _utils.render)({\r\n waveSizeCoefficient: 2.5,\r\n useHoldAnimation: false,\r\n wavesNumber: 2,\r\n isCentered: true\r\n })\r\n },\r\n _renderInkWave: function(element, dxEvent, doRender, waveIndex) {\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: element,\r\n event: dxEvent,\r\n wave: waveIndex\r\n };\r\n if (doRender) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _updateFocusState: function(e, value) {\r\n this.callBase.apply(this, arguments);\r\n this._renderInkWave(this._$icon, e, value, 0)\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n this._renderInkWave(this._$icon, e, value, 1)\r\n },\r\n _renderIcon: function() {\r\n this._$icon = (0, _renderer.default)(\"\").addClass(CHECKBOX_ICON_CLASS).prependTo(this._$container)\r\n },\r\n _renderText: function() {\r\n var textValue = this.option(\"text\");\r\n if (!textValue) {\r\n if (this._$text) {\r\n this._$text.remove();\r\n this.$element().removeClass(CHECKBOX_HAS_TEXT_CLASS)\r\n }\r\n return\r\n }\r\n if (!this._$text) {\r\n this._$text = (0, _renderer.default)(\"\").addClass(CHECKBOX_TEXT_CLASS)\r\n }\r\n this._$text.text(textValue);\r\n this._$container.append(this._$text);\r\n this.$element().addClass(CHECKBOX_HAS_TEXT_CLASS)\r\n },\r\n _renderClick: function() {\r\n var that = this;\r\n var eventName = (0, _index.addNamespace)(_click.name, that.NAME);\r\n that._clickAction = that._createAction(that._clickHandler);\r\n _events_engine.default.off(that.$element(), eventName);\r\n _events_engine.default.on(that.$element(), eventName, function(e) {\r\n that._clickAction({\r\n event: e\r\n })\r\n })\r\n },\r\n _clickHandler: function(args) {\r\n var that = args.component;\r\n that._saveValueChangeEvent(args.event);\r\n that.option(\"value\", !that.option(\"value\"))\r\n },\r\n _renderValue: function() {\r\n var $element = this.$element();\r\n var checked = this.option(\"value\");\r\n var indeterminate = void 0 === checked;\r\n $element.toggleClass(CHECKBOX_CHECKED_CLASS, Boolean(checked));\r\n $element.toggleClass(CHECKBOX_INDETERMINATE_CLASS, indeterminate);\r\n this._getSubmitElement().val(checked);\r\n this.setAria(\"checked\", indeterminate ? \"mixed\" : checked || \"false\")\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"value\":\r\n this._renderValue();\r\n this.callBase(args);\r\n break;\r\n case \"text\":\r\n this._renderText();\r\n this._renderDimensions();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n delete this._inkRipple;\r\n this.callBase()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxCheckBox\", CheckBox);\r\nvar _default = CheckBox;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/popup.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _translator = require(\"../animation/translator\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _element = require(\"../core/element\");\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _empty_template = require(\"../core/templates/empty_template\");\r\nvar _array = require(\"../core/utils/array\");\r\nvar _browser = _interopRequireDefault(require(\"../core/utils/browser\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _inflector = require(\"../core/utils/inflector\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _size = require(\"../core/utils/size\");\r\nvar _position = require(\"../core/utils/position\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _version = require(\"../core/utils/version\");\r\nvar _window = require(\"../core/utils/window\");\r\nvar _visibility_change = require(\"../events/visibility_change\");\r\nvar _message = _interopRequireDefault(require(\"../localization/message\"));\r\nvar _button = _interopRequireDefault(require(\"./button\"));\r\nvar _overlay = _interopRequireDefault(require(\"./overlay\"));\r\nvar _themes = require(\"./themes\");\r\nrequire(\"./toolbar/ui.toolbar.base\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar POPUP_CLASS = \"dx-popup\";\r\nvar POPUP_WRAPPER_CLASS = \"dx-popup-wrapper\";\r\nvar POPUP_FULL_SCREEN_CLASS = \"dx-popup-fullscreen\";\r\nvar POPUP_FULL_SCREEN_WIDTH_CLASS = \"dx-popup-fullscreen-width\";\r\nvar POPUP_NORMAL_CLASS = \"dx-popup-normal\";\r\nvar POPUP_CONTENT_CLASS = \"dx-popup-content\";\r\nvar POPUP_DRAGGABLE_CLASS = \"dx-popup-draggable\";\r\nvar POPUP_TITLE_CLASS = \"dx-popup-title\";\r\nvar POPUP_TITLE_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar POPUP_BOTTOM_CLASS = \"dx-popup-bottom\";\r\nvar POPUP_HAS_CLOSE_BUTTON_CLASS = \"dx-has-close-button\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar POPUP_CONTENT_FLEX_HEIGHT_CLASS = \"dx-popup-flex-height\";\r\nvar POPUP_CONTENT_INHERIT_HEIGHT_CLASS = \"dx-popup-inherit-height\";\r\nvar ALLOWED_TOOLBAR_ITEM_ALIASES = [\"cancel\", \"clear\", \"done\"];\r\nvar BUTTON_DEFAULT_TYPE = \"default\";\r\nvar BUTTON_NORMAL_TYPE = \"normal\";\r\nvar BUTTON_TEXT_MODE = \"text\";\r\nvar BUTTON_CONTAINED_MODE = \"contained\";\r\nvar IS_IE11 = _browser.default.msie && 11 === parseInt(_browser.default.version);\r\nvar IS_OLD_SAFARI = _browser.default.safari && (0, _version.compare)(_browser.default.version, [11]) < 0;\r\nvar HEIGHT_STRATEGIES = {\r\n \"static\": \"\",\r\n inherit: POPUP_CONTENT_INHERIT_HEIGHT_CLASS,\r\n flex: POPUP_CONTENT_FLEX_HEIGHT_CLASS\r\n};\r\nvar getButtonPlace = function(name) {\r\n var device = _devices.default.current();\r\n var platform = device.platform;\r\n var toolbar = \"bottom\";\r\n var location = \"before\";\r\n if (\"ios\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n toolbar = \"top\";\r\n break;\r\n case \"clear\":\r\n toolbar = \"top\";\r\n location = \"after\";\r\n break;\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n } else {\r\n if (\"android\" === platform && device.version && parseInt(device.version[0]) > 4) {\r\n switch (name) {\r\n case \"cancel\":\r\n location = \"after\";\r\n break;\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n }\r\n }\r\n return {\r\n toolbar: toolbar,\r\n location: location\r\n }\r\n};\r\nvar Popup = _overlay.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n fullScreen: false,\r\n title: \"\",\r\n showTitle: true,\r\n titleTemplate: \"title\",\r\n onTitleRendered: null,\r\n dragEnabled: false,\r\n toolbarItems: [],\r\n showCloseButton: false,\r\n bottomTemplate: \"bottom\",\r\n useDefaultToolbarButtons: false,\r\n useFlatToolbarButtons: false,\r\n autoResizeEnabled: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = (0, _themes.current)();\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n animation: this._iosAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n animation: this._androidAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n showCloseButton: true\r\n }\r\n }, {\r\n device: function(_device) {\r\n return \"desktop\" === _devices.default.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n dragEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === _devices.default.real().deviceType && !_devices.default.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return (0, _themes.isMaterial)(themeName)\r\n },\r\n options: {\r\n useDefaultToolbarButtons: true,\r\n useFlatToolbarButtons: true\r\n }\r\n }])\r\n },\r\n _iosAnimation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n opacity: 1,\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n },\r\n to: {\r\n opacity: 1,\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n }\r\n }\r\n },\r\n _androidAnimation: function() {\r\n var fullScreenConfig = {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: \"30%\",\r\n opacity: 0\r\n },\r\n to: {\r\n top: 0,\r\n opacity: 1\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: 0,\r\n opacity: 1\r\n },\r\n to: {\r\n top: \"30%\",\r\n opacity: 0\r\n }\r\n }\r\n };\r\n var defaultConfig = {\r\n show: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n };\r\n return this.option(\"fullScreen\") ? fullScreenConfig : defaultConfig\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(POPUP_CLASS);\r\n this._wrapper().addClass(POPUP_WRAPPER_CLASS);\r\n this._$popupContent = this._$content.wrapInner((0, _renderer.default)(\"
\").addClass(POPUP_CONTENT_CLASS)).children().eq(0)\r\n },\r\n _render: function() {\r\n var isFullscreen = this.option(\"fullScreen\");\r\n this._toggleFullScreenClass(isFullscreen);\r\n this.callBase()\r\n },\r\n _toggleFullScreenClass: function(value) {\r\n this._$content.toggleClass(POPUP_FULL_SCREEN_CLASS, value).toggleClass(POPUP_NORMAL_CLASS, !value)\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new _empty_template.EmptyTemplate,\r\n bottom: new _empty_template.EmptyTemplate\r\n })\r\n },\r\n _renderContentImpl: function() {\r\n this._renderTitle();\r\n this.callBase();\r\n this._renderBottom()\r\n },\r\n _renderTitle: function() {\r\n var items = this._getToolbarItems(\"top\");\r\n var titleText = this.option(\"title\");\r\n var showTitle = this.option(\"showTitle\");\r\n if (showTitle && !!titleText) {\r\n items.unshift({\r\n location: _devices.default.current().ios ? \"center\" : \"before\",\r\n text: titleText\r\n })\r\n }\r\n if (showTitle || items.length > 0) {\r\n this._$title && this._$title.remove();\r\n var $title = (0, _renderer.default)(\"
\").addClass(POPUP_TITLE_CLASS).insertBefore(this.$content());\r\n this._$title = this._renderTemplateByType(\"titleTemplate\", items, $title).addClass(POPUP_TITLE_CLASS);\r\n this._renderDrag();\r\n this._executeTitleRenderAction(this._$title);\r\n this._$title.toggleClass(POPUP_HAS_CLOSE_BUTTON_CLASS, this._hasCloseButton())\r\n } else {\r\n if (this._$title) {\r\n this._$title.detach()\r\n }\r\n }\r\n },\r\n _renderTemplateByType: function(optionName, data, $container, additionalToolbarOptions) {\r\n var template = this._getTemplateByOption(optionName);\r\n var toolbarTemplate = template instanceof _empty_template.EmptyTemplate;\r\n if (toolbarTemplate) {\r\n var integrationOptions = (0, _extend.extend)({}, this.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\", \"title\"]\r\n });\r\n var toolbarOptions = (0, _extend.extend)(additionalToolbarOptions, {\r\n items: data,\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n useDefaultButtons: this.option(\"useDefaultToolbarButtons\"),\r\n useFlatButtons: this.option(\"useFlatToolbarButtons\"),\r\n integrationOptions: integrationOptions\r\n });\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: {\r\n widget: \"dxToolbarBase\",\r\n options: toolbarOptions\r\n }\r\n });\r\n var $toolbar = $container.children(\"div\");\r\n $container.replaceWith($toolbar);\r\n return $toolbar\r\n } else {\r\n var $result = (0, _renderer.default)(template.render({\r\n container: (0, _element.getPublicElement)($container)\r\n }));\r\n if ($result.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n $container.replaceWith($result);\r\n $container = $result\r\n }\r\n return $container\r\n }\r\n },\r\n _executeTitleRenderAction: function($titleElement) {\r\n this._getTitleRenderAction()({\r\n titleElement: (0, _element.getPublicElement)($titleElement)\r\n })\r\n },\r\n _getTitleRenderAction: function() {\r\n return this._titleRenderAction || this._createTitleRenderAction()\r\n },\r\n _createTitleRenderAction: function() {\r\n return this._titleRenderAction = this._createActionByOption(\"onTitleRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _getCloseButton: function() {\r\n return {\r\n toolbar: \"top\",\r\n location: \"after\",\r\n template: this._getCloseButtonRenderer()\r\n }\r\n },\r\n _getCloseButtonRenderer: function() {\r\n var _this = this;\r\n return function(_, __, container) {\r\n var $button = (0, _renderer.default)(\"
\").addClass(POPUP_TITLE_CLOSEBUTTON_CLASS);\r\n _this._createComponent($button, _button.default, {\r\n icon: \"close\",\r\n onClick: _this._createToolbarItemAction(void 0),\r\n stylingMode: \"text\",\r\n integrationOptions: {}\r\n });\r\n (0, _renderer.default)(container).append($button)\r\n }\r\n },\r\n _getToolbarItems: function(toolbar) {\r\n var _this2 = this;\r\n var toolbarItems = this.option(\"toolbarItems\");\r\n var toolbarsItems = [];\r\n this._toolbarItemClasses = [];\r\n var currentPlatform = _devices.default.current().platform;\r\n var index = 0;\r\n (0, _iterator.each)(toolbarItems, function(_, data) {\r\n var isShortcut = (0, _type.isDefined)(data.shortcut);\r\n var item = isShortcut ? getButtonPlace(data.shortcut) : data;\r\n if (isShortcut && \"ios\" === currentPlatform && index < 2) {\r\n item.toolbar = \"top\";\r\n index++\r\n }\r\n item.toolbar = data.toolbar || item.toolbar || \"top\";\r\n if (item && item.toolbar === toolbar) {\r\n if (isShortcut) {\r\n (0, _extend.extend)(item, {\r\n location: data.location\r\n }, _this2._getToolbarItemByAlias(data))\r\n }\r\n var isLTROrder = \"generic\" === currentPlatform;\r\n if (\"done\" === data.shortcut && isLTROrder || \"cancel\" === data.shortcut && !isLTROrder) {\r\n toolbarsItems.unshift(item)\r\n } else {\r\n toolbarsItems.push(item)\r\n }\r\n }\r\n });\r\n if (\"top\" === toolbar && this._hasCloseButton()) {\r\n toolbarsItems.push(this._getCloseButton())\r\n }\r\n return toolbarsItems\r\n },\r\n _hasCloseButton: function() {\r\n return this.option(\"showCloseButton\") && this.option(\"showTitle\")\r\n },\r\n _getLocalizationKey: function(itemType) {\r\n return \"done\" === itemType.toLowerCase() ? \"OK\" : (0, _inflector.camelize)(itemType, true)\r\n },\r\n _getToolbarItemByAlias: function(data) {\r\n var that = this;\r\n var itemType = data.shortcut;\r\n if ((0, _array.inArray)(itemType, ALLOWED_TOOLBAR_ITEM_ALIASES) < 0) {\r\n return false\r\n }\r\n var itemConfig = (0, _extend.extend)({\r\n text: _message.default.format(this._getLocalizationKey(itemType)),\r\n onClick: this._createToolbarItemAction(data.onClick),\r\n integrationOptions: {},\r\n type: that.option(\"useDefaultToolbarButtons\") ? BUTTON_DEFAULT_TYPE : BUTTON_NORMAL_TYPE,\r\n stylingMode: that.option(\"useFlatToolbarButtons\") ? BUTTON_TEXT_MODE : BUTTON_CONTAINED_MODE\r\n }, data.options || {});\r\n var itemClass = POPUP_CLASS + \"-\" + itemType;\r\n this._toolbarItemClasses.push(itemClass);\r\n return {\r\n template: function(_, __, container) {\r\n var $toolbarItem = (0, _renderer.default)(\"
\").addClass(itemClass).appendTo(container);\r\n that._createComponent($toolbarItem, _button.default, itemConfig)\r\n }\r\n }\r\n },\r\n _createToolbarItemAction: function(clickAction) {\r\n return this._createAction(clickAction, {\r\n afterExecute: function(e) {\r\n e.component.hide()\r\n }\r\n })\r\n },\r\n _renderBottom: function() {\r\n var items = this._getToolbarItems(\"bottom\");\r\n if (items.length) {\r\n this._$bottom && this._$bottom.remove();\r\n var $bottom = (0, _renderer.default)(\"
\").addClass(POPUP_BOTTOM_CLASS).insertAfter(this.$content());\r\n this._$bottom = this._renderTemplateByType(\"bottomTemplate\", items, $bottom, {\r\n compactMode: true\r\n }).addClass(POPUP_BOTTOM_CLASS);\r\n this._toggleClasses()\r\n } else {\r\n this._$bottom && this._$bottom.detach()\r\n }\r\n },\r\n _toggleClasses: function() {\r\n var _this3 = this;\r\n var aliases = ALLOWED_TOOLBAR_ITEM_ALIASES;\r\n (0, _iterator.each)(aliases, function(_, alias) {\r\n var className = POPUP_CLASS + \"-\" + alias;\r\n if ((0, _array.inArray)(className, _this3._toolbarItemClasses) >= 0) {\r\n _this3._wrapper().addClass(className + \"-visible\");\r\n _this3._$bottom.addClass(className)\r\n } else {\r\n _this3._wrapper().removeClass(className + \"-visible\");\r\n _this3._$bottom.removeClass(className)\r\n }\r\n })\r\n },\r\n _getContainer: function() {\r\n if (this.option(\"fullScreen\")) {\r\n return (0, _renderer.default)(window)\r\n }\r\n return this.callBase()\r\n },\r\n _getDragTarget: function() {\r\n return this.topToolbar()\r\n },\r\n _renderGeometryImpl: function(isDimensionChanged) {\r\n if (!isDimensionChanged) {\r\n this._resetContentHeight()\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._setContentHeight()\r\n },\r\n _resetContentHeight: function() {\r\n this._$popupContent.css({\r\n height: \"auto\",\r\n maxHeight: \"none\"\r\n })\r\n },\r\n _renderDrag: function() {\r\n this.callBase();\r\n this._$content.toggleClass(POPUP_DRAGGABLE_CLASS, this.option(\"dragEnabled\"))\r\n },\r\n _renderResize: function() {\r\n this.callBase();\r\n this._resizable.option(\"onResize\", function() {\r\n this._setContentHeight();\r\n this._actions.onResize(arguments)\r\n }.bind(this))\r\n },\r\n _setContentHeight: function() {\r\n (this.option(\"forceApplyBindings\") || _common.noop)();\r\n var overlayContent = this.overlayContent().get(0);\r\n var currentHeightStrategyClass = this._chooseHeightStrategy(overlayContent);\r\n this.$content().css(this._getHeightCssStyles(currentHeightStrategyClass, overlayContent));\r\n this._setHeightClasses(this.overlayContent(), currentHeightStrategyClass)\r\n },\r\n _heightStrategyChangeOffset: function(currentHeightStrategyClass, popupVerticalPaddings) {\r\n return currentHeightStrategyClass === HEIGHT_STRATEGIES.flex ? -popupVerticalPaddings : 0\r\n },\r\n _chooseHeightStrategy: function(overlayContent) {\r\n var isAutoWidth = \"auto\" === overlayContent.style.width || \"\" === overlayContent.style.width;\r\n var currentHeightStrategyClass = HEIGHT_STRATEGIES.static;\r\n if (this._isAutoHeight() && this.option(\"autoResizeEnabled\")) {\r\n if (isAutoWidth || IS_OLD_SAFARI) {\r\n if (!IS_IE11) {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.inherit\r\n }\r\n } else {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.flex\r\n }\r\n }\r\n return currentHeightStrategyClass\r\n },\r\n _getHeightCssStyles: function(currentHeightStrategyClass, overlayContent) {\r\n var cssStyles = {};\r\n var contentMaxHeight = this._getOptionValue(\"maxHeight\", overlayContent);\r\n var contentMinHeight = this._getOptionValue(\"minHeight\", overlayContent);\r\n var popupHeightParts = this._splitPopupHeight();\r\n var toolbarsAndVerticalOffsetsHeight = popupHeightParts.header + popupHeightParts.footer + popupHeightParts.contentVerticalOffsets + popupHeightParts.popupVerticalOffsets + this._heightStrategyChangeOffset(currentHeightStrategyClass, popupHeightParts.popupVerticalPaddings);\r\n if (currentHeightStrategyClass === HEIGHT_STRATEGIES.static) {\r\n if (!this._isAutoHeight() || contentMaxHeight || contentMinHeight) {\r\n var overlayHeight = this.option(\"fullScreen\") ? Math.min((0, _position.getBoundingRect)(overlayContent).height, (0, _window.getWindow)().innerHeight) : (0, _position.getBoundingRect)(overlayContent).height;\r\n var contentHeight = overlayHeight - toolbarsAndVerticalOffsetsHeight;\r\n cssStyles = {\r\n height: Math.max(0, contentHeight),\r\n minHeight: \"auto\",\r\n maxHeight: \"auto\"\r\n }\r\n }\r\n } else {\r\n var container = (0, _renderer.default)(this._getContainer()).get(0);\r\n var maxHeightValue = (0, _size.addOffsetToMaxHeight)(contentMaxHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n var minHeightValue = (0, _size.addOffsetToMinHeight)(contentMinHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n cssStyles = {\r\n height: \"auto\",\r\n minHeight: minHeightValue,\r\n maxHeight: maxHeightValue\r\n }\r\n }\r\n return cssStyles\r\n },\r\n _setHeightClasses: function($container, currentClass) {\r\n var excessClasses = \"\";\r\n for (var name in HEIGHT_STRATEGIES) {\r\n if (HEIGHT_STRATEGIES[name] !== currentClass) {\r\n excessClasses += \" \" + HEIGHT_STRATEGIES[name]\r\n }\r\n }\r\n $container.removeClass(excessClasses).addClass(currentClass)\r\n },\r\n _isAutoHeight: function() {\r\n return \"auto\" === this.overlayContent().get(0).style.height\r\n },\r\n _splitPopupHeight: function() {\r\n var topToolbar = this.topToolbar();\r\n var bottomToolbar = this.bottomToolbar();\r\n return {\r\n header: (0, _size.getVisibleHeight)(topToolbar && topToolbar.get(0)),\r\n footer: (0, _size.getVisibleHeight)(bottomToolbar && bottomToolbar.get(0)),\r\n contentVerticalOffsets: (0, _size.getVerticalOffsets)(this.overlayContent().get(0), true),\r\n popupVerticalOffsets: (0, _size.getVerticalOffsets)(this.$content().get(0), true),\r\n popupVerticalPaddings: (0, _size.getVerticalOffsets)(this.$content().get(0), false)\r\n }\r\n },\r\n _shouldFixBodyPosition: function() {\r\n return this.callBase() || this.option(\"fullScreen\")\r\n },\r\n _toggleSafariFullScreen: function(value) {\r\n var toggleFullScreenBeforeShown = this._shouldFixBodyPosition() && value && !this._isShown;\r\n if (toggleFullScreenBeforeShown) {\r\n this._bodyScrollTop = value ? window.pageYOffset : void 0\r\n } else {\r\n this._toggleSafariScrolling(!value)\r\n }\r\n },\r\n _renderDimensions: function() {\r\n if (this.option(\"fullScreen\")) {\r\n this._$content.css({\r\n width: \"100%\",\r\n height: \"100%\",\r\n minWidth: \"\",\r\n maxWidth: \"\",\r\n minHeight: \"\",\r\n maxHeight: \"\"\r\n })\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n if ((0, _window.hasWindow)()) {\r\n this._renderFullscreenWidthClass()\r\n }\r\n },\r\n _renderFullscreenWidthClass: function() {\r\n this.overlayContent().toggleClass(POPUP_FULL_SCREEN_WIDTH_CLASS, this.overlayContent().outerWidth() === (0, _renderer.default)(window).width())\r\n },\r\n refreshPosition: function() {\r\n this._renderPosition()\r\n },\r\n _renderPosition: function() {\r\n if (this.option(\"fullScreen\")) {\r\n (0, _translator.move)(this._$content, {\r\n top: 0,\r\n left: 0\r\n })\r\n } else {\r\n (this.option(\"forceApplyBindings\") || _common.noop)();\r\n return this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"showTitle\":\r\n case \"title\":\r\n case \"titleTemplate\":\r\n this._renderTitle();\r\n this._renderGeometry();\r\n (0, _visibility_change.triggerResizeEvent)(this._$content);\r\n break;\r\n case \"bottomTemplate\":\r\n this._renderBottom();\r\n this._renderGeometry();\r\n (0, _visibility_change.triggerResizeEvent)(this._$content);\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderAction(args.value);\r\n break;\r\n case \"toolbarItems\":\r\n case \"useDefaultToolbarButtons\":\r\n case \"useFlatToolbarButtons\":\r\n var shouldRenderGeometry = !args.fullName.match(/^toolbarItems((\\[\\d+\\])(\\.(options|visible).*)?)?$/);\r\n this._renderTitle();\r\n this._renderBottom();\r\n if (shouldRenderGeometry) {\r\n this._renderGeometry();\r\n (0, _visibility_change.triggerResizeEvent)(this._$content)\r\n }\r\n break;\r\n case \"dragEnabled\":\r\n this._renderDrag();\r\n break;\r\n case \"autoResizeEnabled\":\r\n this._renderGeometry();\r\n (0, _visibility_change.triggerResizeEvent)(this._$content);\r\n break;\r\n case \"fullScreen\":\r\n this._toggleFullScreenClass(args.value);\r\n this._toggleSafariFullScreen(args.value);\r\n this._renderGeometry();\r\n (0, _visibility_change.triggerResizeEvent)(this._$content);\r\n break;\r\n case \"showCloseButton\":\r\n this._renderTitle();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n bottomToolbar: function() {\r\n return this._$bottom\r\n },\r\n topToolbar: function() {\r\n return this._$title\r\n },\r\n $content: function() {\r\n return this._$popupContent\r\n },\r\n content: function() {\r\n return (0, _element.getPublicElement)(this._$popupContent)\r\n },\r\n overlayContent: function() {\r\n return this._$content\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxPopup\", Popup);\r\nvar _default = Popup;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/list.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _uiListEdit = _interopRequireDefault(require(\"./list/ui.list.edit.search\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}(0, _component_registrator.default)(\"dxList\", _uiListEdit.default);\r\nvar _default = _uiListEdit.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.scroll_view.simulated.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _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/scroll_view.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _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.native.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _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/load_panel.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _message = _interopRequireDefault(require(\"../localization/message\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _load_indicator = _interopRequireDefault(require(\"./load_indicator\"));\r\nvar _overlay = _interopRequireDefault(require(\"./overlay\"));\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _themes = require(\"./themes\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar LOADPANEL_CLASS = \"dx-loadpanel\";\r\nvar LOADPANEL_WRAPPER_CLASS = \"dx-loadpanel-wrapper\";\r\nvar LOADPANEL_INDICATOR_CLASS = \"dx-loadpanel-indicator\";\r\nvar LOADPANEL_MESSAGE_CLASS = \"dx-loadpanel-message\";\r\nvar LOADPANEL_CONTENT_CLASS = \"dx-loadpanel-content\";\r\nvar LOADPANEL_CONTENT_WRAPPER_CLASS = \"dx-loadpanel-content-wrapper\";\r\nvar LOADPANEL_PANE_HIDDEN_CLASS = \"dx-loadpanel-pane-hidden\";\r\nvar LoadPanel = _overlay.default.inherit({\r\n _supportedKeys: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n escape: _common.noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n message: _message.default.format(\"Loading\"),\r\n width: 222,\r\n height: 90,\r\n animation: null,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true,\r\n delay: 0,\r\n templatesRenderAsynchronously: false,\r\n hideTopOverlayHandler: null,\r\n resizeEnabled: false,\r\n focusStateEnabled: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n shadingColor: \"transparent\"\r\n }\r\n }, {\r\n device: function() {\r\n return (0, _themes.isMaterial)()\r\n },\r\n options: {\r\n message: \"\",\r\n width: 60,\r\n height: 60,\r\n maxHeight: 60,\r\n maxWidth: 60\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(LOADPANEL_CLASS);\r\n this._wrapper().addClass(LOADPANEL_WRAPPER_CLASS)\r\n },\r\n _renderContentImpl: function() {\r\n this.callBase();\r\n this.$content().addClass(LOADPANEL_CONTENT_CLASS);\r\n this._$contentWrapper = (0, _renderer.default)(\"
\").addClass(LOADPANEL_CONTENT_WRAPPER_CLASS);\r\n this._$contentWrapper.appendTo(this._$content);\r\n this._togglePaneVisible();\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage()\r\n },\r\n _show: function() {\r\n var delay = this.option(\"delay\");\r\n if (!delay) {\r\n return this.callBase()\r\n }\r\n var deferred = new _deferred.Deferred;\r\n var callBase = this.callBase.bind(this);\r\n this._clearShowTimeout();\r\n this._showTimeout = setTimeout(function() {\r\n callBase().done(function() {\r\n deferred.resolve()\r\n })\r\n }, delay);\r\n return deferred.promise()\r\n },\r\n _hide: function() {\r\n this._clearShowTimeout();\r\n return this.callBase()\r\n },\r\n _clearShowTimeout: function() {\r\n clearTimeout(this._showTimeout)\r\n },\r\n _renderMessage: function() {\r\n if (!this._$contentWrapper) {\r\n return\r\n }\r\n var message = this.option(\"message\");\r\n if (!message) {\r\n return\r\n }\r\n var $message = (0, _renderer.default)(\"
\").addClass(LOADPANEL_MESSAGE_CLASS).text(message);\r\n this._$contentWrapper.append($message)\r\n },\r\n _renderLoadIndicator: function() {\r\n if (!this._$contentWrapper || !this.option(\"showIndicator\")) {\r\n return\r\n }\r\n if (!this._$indicator) {\r\n this._$indicator = (0, _renderer.default)(\"
\").addClass(LOADPANEL_INDICATOR_CLASS).appendTo(this._$contentWrapper)\r\n }\r\n this._createComponent(this._$indicator, _load_indicator.default, {\r\n indicatorSrc: this.option(\"indicatorSrc\")\r\n })\r\n },\r\n _cleanPreviousContent: function() {\r\n this.$content().find(\".\" + LOADPANEL_MESSAGE_CLASS).remove();\r\n this.$content().find(\".\" + LOADPANEL_INDICATOR_CLASS).remove();\r\n delete this._$indicator\r\n },\r\n _togglePaneVisible: function() {\r\n this.$content().toggleClass(LOADPANEL_PANE_HIDDEN_CLASS, !this.option(\"showPane\"))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"delay\":\r\n break;\r\n case \"message\":\r\n case \"showIndicator\":\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage();\r\n break;\r\n case \"showPane\":\r\n this._togglePaneVisible();\r\n break;\r\n case \"indicatorSrc\":\r\n this._renderLoadIndicator();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dispose: function() {\r\n this._clearShowTimeout();\r\n this.callBase()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxLoadPanel\", LoadPanel);\r\nvar _default = LoadPanel;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/list/item.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _item = _interopRequireDefault(require(\"../collection/item\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar LIST_ITEM_BADGE_CONTAINER_CLASS = \"dx-list-item-badge-container\";\r\nvar LIST_ITEM_BADGE_CLASS = \"dx-list-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar LIST_ITEM_CHEVRON_CONTAINER_CLASS = \"dx-list-item-chevron-container\";\r\nvar LIST_ITEM_CHEVRON_CLASS = \"dx-list-item-chevron\";\r\nvar ListItem = _item.default.inherit({\r\n _renderWatchers: function() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this));\r\n this._startWatcher(\"showChevron\", this._renderShowChevron.bind(this))\r\n },\r\n _renderBadge: function(badge) {\r\n this._$element.children(\".\" + LIST_ITEM_BADGE_CONTAINER_CLASS).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = (0, _renderer.default)(\"
\").addClass(LIST_ITEM_BADGE_CONTAINER_CLASS).append((0, _renderer.default)(\"
\").addClass(LIST_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge));\r\n var $chevron = this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).first();\r\n $chevron.length > 0 ? $badge.insertBefore($chevron) : $badge.appendTo(this._$element)\r\n },\r\n _renderShowChevron: function(showChevron) {\r\n this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).remove();\r\n if (!showChevron) {\r\n return\r\n }\r\n var $chevronContainer = (0, _renderer.default)(\"
\").addClass(LIST_ITEM_CHEVRON_CONTAINER_CLASS);\r\n var $chevron = (0, _renderer.default)(\"
\").addClass(LIST_ITEM_CHEVRON_CLASS);\r\n $chevronContainer.append($chevron).appendTo(this._$element)\r\n }\r\n});\r\nvar _default = ListItem;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/list/ui.list.base.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.setScrollView = setScrollView;\r\nexports.ListBase = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _icon = require(\"../../core/utils/icon\");\r\nvar _element = require(\"../../core/element\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _swipe = require(\"../../events/swipe\");\r\nvar _support = require(\"../../core/utils/support\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _utils = require(\"../widget/utils.ink_ripple\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _item = _interopRequireDefault(require(\"./item\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _themes = require(\"../themes\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _scroll_view = _interopRequireDefault(require(\"../scroll_view\"));\r\nvar _uiScrollable = require(\"../scroll_view/ui.scrollable.device\");\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"../collection/ui.collection_widget.live_update\"));\r\nvar _bindable_template = require(\"../../core/templates/bindable_template\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\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 LIST_CLASS = \"dx-list\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_ITEM_SELECTOR = \".\" + LIST_ITEM_CLASS;\r\nvar LIST_ITEM_ICON_CONTAINER_CLASS = \"dx-list-item-icon-container\";\r\nvar LIST_ITEM_ICON_CLASS = \"dx-list-item-icon\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar LIST_GROUP_HEADER_CLASS = \"dx-list-group-header\";\r\nvar LIST_GROUP_BODY_CLASS = \"dx-list-group-body\";\r\nvar LIST_COLLAPSIBLE_GROUPS_CLASS = \"dx-list-collapsible-groups\";\r\nvar LIST_GROUP_COLLAPSED_CLASS = \"dx-list-group-collapsed\";\r\nvar LIST_GROUP_HEADER_INDICATOR_CLASS = \"dx-list-group-header-indicator\";\r\nvar LIST_HAS_NEXT_CLASS = \"dx-has-next\";\r\nvar LIST_NEXT_BUTTON_CLASS = \"dx-list-next-button\";\r\nvar WRAP_ITEM_TEXT_CLASS = \"dx-wrap-item-text\";\r\nvar SELECT_ALL_ITEM_SELECTOR = \".dx-list-select-all\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar LIST_FEEDBACK_SHOW_TIMEOUT = 70;\r\nvar groupItemsGetter = (0, _data.compileGetter)(\"items\");\r\nvar _scrollView;\r\nvar ListBase = _uiCollection_widget.default.inherit({\r\n _activeStateUnit: [LIST_ITEM_SELECTOR, SELECT_ALL_ITEM_SELECTOR].join(\",\"),\r\n _supportedKeys: function() {\r\n var that = this;\r\n var moveFocusPerPage = function(direction) {\r\n var $item = getEdgeVisibleItem(direction);\r\n var isFocusedItem = $item.is(that.option(\"focusedElement\"));\r\n if (isFocusedItem) {\r\n scrollListTo($item, direction);\r\n $item = getEdgeVisibleItem(direction)\r\n }\r\n that.option(\"focusedElement\", (0, _element.getPublicElement)($item));\r\n that.scrollToItem($item)\r\n };\r\n\r\n function getEdgeVisibleItem(direction) {\r\n var scrollTop = that.scrollTop();\r\n var containerHeight = that.$element().height();\r\n var $item = (0, _renderer.default)(that.option(\"focusedElement\"));\r\n var isItemVisible = true;\r\n if (!$item.length) {\r\n return (0, _renderer.default)()\r\n }\r\n while (isItemVisible) {\r\n var $nextItem = $item[direction]();\r\n if (!$nextItem.length) {\r\n break\r\n }\r\n var nextItemLocation = $nextItem.position().top + $nextItem.outerHeight() / 2;\r\n isItemVisible = nextItemLocation < containerHeight + scrollTop && nextItemLocation > scrollTop;\r\n if (isItemVisible) {\r\n $item = $nextItem\r\n }\r\n }\r\n return $item\r\n }\r\n\r\n function scrollListTo($item, direction) {\r\n var resultPosition = $item.position().top;\r\n if (\"prev\" === direction) {\r\n resultPosition = $item.position().top - that.$element().height() + $item.outerHeight()\r\n }\r\n that.scrollTo(resultPosition)\r\n }\r\n return (0, _extend.extend)(this.callBase(), {\r\n leftArrow: _common.noop,\r\n rightArrow: _common.noop,\r\n pageUp: function() {\r\n moveFocusPerPage(\"prev\");\r\n return false\r\n },\r\n pageDown: function() {\r\n moveFocusPerPage(\"next\");\r\n return false\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n hoverStateEnabled: true,\r\n pullRefreshEnabled: false,\r\n scrollingEnabled: true,\r\n showScrollbar: \"onScroll\",\r\n useNativeScrolling: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n pullingDownText: _message.default.format(\"dxList-pullingDownText\"),\r\n pulledDownText: _message.default.format(\"dxList-pulledDownText\"),\r\n refreshingText: _message.default.format(\"dxList-refreshingText\"),\r\n pageLoadingText: _message.default.format(\"dxList-pageLoadingText\"),\r\n onScroll: null,\r\n onPullRefresh: null,\r\n onPageLoading: null,\r\n pageLoadMode: \"scrollBottom\",\r\n nextButtonText: _message.default.format(\"dxList-nextButtonText\"),\r\n onItemSwipe: null,\r\n grouped: false,\r\n onGroupRendered: null,\r\n collapsibleGroups: false,\r\n groupTemplate: \"group\",\r\n indicateLoading: true,\r\n activeStateEnabled: true,\r\n _itemAttributes: {\r\n role: \"option\"\r\n },\r\n _listAttributes: {\r\n role: \"listbox\"\r\n },\r\n useInkRipple: false,\r\n wrapItemText: false,\r\n _swipeEnabled: true,\r\n _revertPageOnEmptyLoad: false,\r\n showChevronExpr: function(data) {\r\n return data ? data.showChevron : void 0\r\n },\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = (0, _themes.current)();\r\n return this.callBase().concat((0, _uiScrollable.deviceDependentOptions)(), [{\r\n device: function() {\r\n return !_support.nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }, {\r\n device: function(_device) {\r\n return !_support.nativeScrolling && !_devices.default.isSimulator() && \"desktop\" === _devices.default.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n showScrollbar: \"onHover\",\r\n pageLoadMode: \"nextButton\"\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === _devices.default.real().deviceType && !_devices.default.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return (0, _themes.isMaterial)(themeName)\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n pageLoadingText: \"\",\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateLoadingState(true)\r\n }\r\n },\r\n _itemClass: function() {\r\n return LIST_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return LIST_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$container\r\n },\r\n _saveSelectionChangeEvent: function(e) {\r\n this._selectionChangeEventInstance = e\r\n },\r\n _getSelectionChangeEvent: function() {\r\n return this._selectionChangeEventInstance\r\n },\r\n _refreshItemElements: function() {\r\n if (!this.option(\"grouped\")) {\r\n this._itemElementsCache = this._itemContainer().children(this._itemSelector())\r\n } else {\r\n this._itemElementsCache = this._itemContainer().children(\".\" + LIST_GROUP_CLASS).children(\".\" + LIST_GROUP_BODY_CLASS).children(this._itemSelector())\r\n }\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n reorderItem: function(itemElement, toItemElement) {\r\n var promise = this.callBase(itemElement, toItemElement);\r\n return promise.done(function() {\r\n this._refreshItemElements()\r\n })\r\n },\r\n deleteItem: function(itemElement) {\r\n var promise = this.callBase(itemElement);\r\n return promise.done(function() {\r\n this._refreshItemElements()\r\n })\r\n },\r\n _itemElements: function() {\r\n return this._itemElementsCache\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return true\r\n },\r\n _resetDataSourcePageIndex: function() {\r\n var currentDataSource = this.getDataSource();\r\n if (currentDataSource && 0 !== currentDataSource.pageIndex()) {\r\n currentDataSource.pageIndex(0);\r\n currentDataSource.load()\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._resetDataSourcePageIndex();\r\n this._$container = this.$element();\r\n this._initScrollView();\r\n this._feedbackShowTimeout = LIST_FEEDBACK_SHOW_TIMEOUT;\r\n this._createGroupRenderAction()\r\n },\r\n _scrollBottomMode: function() {\r\n return \"scrollBottom\" === this.option(\"pageLoadMode\")\r\n },\r\n _nextButtonMode: function() {\r\n return \"nextButton\" === this.option(\"pageLoadMode\")\r\n },\r\n _dataSourceOptions: function() {\r\n var scrollBottom = this._scrollBottomMode();\r\n var nextButton = this._nextButtonMode();\r\n return (0, _extend.extend)(this.callBase(), {\r\n paginate: (0, _common.ensureDefined)(scrollBottom || nextButton, true)\r\n })\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"grouped\")\r\n },\r\n _dataSourceFromUrlLoadMode: function() {\r\n return \"raw\"\r\n },\r\n _initScrollView: function() {\r\n var scrollingEnabled = this.option(\"scrollingEnabled\");\r\n var pullRefreshEnabled = scrollingEnabled && this.option(\"pullRefreshEnabled\");\r\n var autoPagingEnabled = scrollingEnabled && this._scrollBottomMode() && !!this._dataSource;\r\n this._scrollView = this._createComponent(this.$element(), getScrollView(), {\r\n disabled: this.option(\"disabled\") || !scrollingEnabled,\r\n onScroll: this._scrollHandler.bind(this),\r\n onPullDown: pullRefreshEnabled ? this._pullDownHandler.bind(this) : null,\r\n onReachBottom: autoPagingEnabled ? this._scrollBottomHandler.bind(this) : null,\r\n showScrollbar: this.option(\"showScrollbar\"),\r\n useNative: this.option(\"useNativeScrolling\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n pullingDownText: this.option(\"pullingDownText\"),\r\n pulledDownText: this.option(\"pulledDownText\"),\r\n refreshingText: this.option(\"refreshingText\"),\r\n reachBottomText: this.option(\"pageLoadingText\"),\r\n useKeyboard: false\r\n });\r\n this._$container = (0, _renderer.default)(this._scrollView.content());\r\n if (this.option(\"wrapItemText\")) {\r\n this._$container.addClass(WRAP_ITEM_TEXT_CLASS)\r\n }\r\n this._createScrollViewActions()\r\n },\r\n _createScrollViewActions: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._pullRefreshAction = this._createActionByOption(\"onPullRefresh\");\r\n this._pageLoadingAction = this._createActionByOption(\"onPageLoading\")\r\n },\r\n _scrollHandler: function(e) {\r\n this._scrollAction && this._scrollAction(e)\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n group: new _bindable_template.BindableTemplate(function($container, data) {\r\n if ((0, _type.isPlainObject)(data)) {\r\n if (data.key) {\r\n $container.text(data.key)\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n }, [\"key\"], this.option(\"integrationOptions.watchMethod\"))\r\n });\r\n this.callBase()\r\n },\r\n _prepareDefaultItemTemplate: function(data, $container) {\r\n this.callBase(data, $container);\r\n if (data.icon) {\r\n var $icon = (0, _icon.getImageContainer)(data.icon).addClass(LIST_ITEM_ICON_CLASS);\r\n var $iconContainer = (0, _renderer.default)(\"
\").addClass(LIST_ITEM_ICON_CONTAINER_CLASS);\r\n $iconContainer.append($icon);\r\n $container.prepend($iconContainer)\r\n }\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\", \"icon\"]\r\n },\r\n _updateLoadingState: function(tryLoadMore) {\r\n var isDataLoaded = !tryLoadMore || this._isLastPage();\r\n var scrollBottomMode = this._scrollBottomMode();\r\n var stopLoading = isDataLoaded || !scrollBottomMode;\r\n var hideLoadIndicator = stopLoading && !this._isDataSourceLoading();\r\n if (stopLoading || this._scrollViewIsFull()) {\r\n this._scrollView.release(hideLoadIndicator);\r\n this._toggleNextButton(this._shouldRenderNextButton() && !this._isLastPage());\r\n this._loadIndicationSuppressed(false)\r\n } else {\r\n this._infiniteDataLoading()\r\n }\r\n },\r\n _shouldRenderNextButton: function() {\r\n return this._nextButtonMode() && this._dataSource && this._dataSource.isLoaded()\r\n },\r\n _isDataSourceFirstLoadCompleted: function(newValue) {\r\n if ((0, _type.isDefined)(newValue)) {\r\n this._isFirstLoadCompleted = newValue\r\n }\r\n return this._isFirstLoadCompleted\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n if (this._loadIndicationSuppressed()) {\r\n return\r\n }\r\n if (isLoading && this.option(\"indicateLoading\")) {\r\n this._showLoadingIndicatorTimer = setTimeout(function() {\r\n var isEmpty = !this._itemElements().length;\r\n var shouldIndicateLoading = !isEmpty || this._isDataSourceFirstLoadCompleted();\r\n if (shouldIndicateLoading) {\r\n var _this$_scrollView;\r\n null === (_this$_scrollView = this._scrollView) || void 0 === _this$_scrollView ? void 0 : _this$_scrollView.startLoading()\r\n }\r\n }.bind(this))\r\n } else {\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this._scrollView && this._scrollView.finishLoading()\r\n }\r\n if (!isLoading) {\r\n this._isDataSourceFirstLoadCompleted(false)\r\n }\r\n },\r\n _dataSourceChangedHandler: function() {\r\n if (!this._shouldAppendItems() && (0, _window.hasWindow)()) {\r\n this._scrollView && this._scrollView.scrollTo(0)\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._isDataSourceFirstLoadCompleted(true)\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._fireContentReadyAction()\r\n },\r\n _hideLoadingIfLoadIndicationOff: function() {\r\n if (!this.option(\"indicateLoading\")) {\r\n this._dataSourceLoadingChangedHandler(false)\r\n }\r\n },\r\n _loadIndicationSuppressed: function(value) {\r\n if (!arguments.length) {\r\n return this._isLoadIndicationSuppressed\r\n }\r\n this._isLoadIndicationSuppressed = value\r\n },\r\n _scrollViewIsFull: function() {\r\n return !this._scrollView || this._scrollView.isFull()\r\n },\r\n _pullDownHandler: function(e) {\r\n this._pullRefreshAction(e);\r\n if (this._dataSource && !this._isDataSourceLoading()) {\r\n this._clearSelectedItems();\r\n this._dataSource.pageIndex(0);\r\n this._dataSource.reload()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _infiniteDataLoading: function() {\r\n var _this = this;\r\n var isElementVisible = this.$element().is(\":visible\");\r\n if (isElementVisible && !this._scrollViewIsFull() && !this._isDataSourceLoading() && !this._isLastPage()) {\r\n clearTimeout(this._loadNextPageTimer);\r\n this._loadNextPageTimer = setTimeout(function() {\r\n _this._loadNextPage().done(_this._setPreviousPageIfNewIsEmpty.bind(_this))\r\n })\r\n }\r\n },\r\n _setPreviousPageIfNewIsEmpty: function(result) {\r\n if (this.option(\"_revertPageOnEmptyLoad\")) {\r\n var dataSource = this.getDataSource();\r\n var pageIndex = null === dataSource || void 0 === dataSource ? void 0 : dataSource.pageIndex();\r\n if (0 === (null === result || void 0 === result ? void 0 : result.length) && pageIndex > 0) {\r\n this._fireContentReadyAction();\r\n dataSource.pageIndex(pageIndex - 1)\r\n }\r\n }\r\n },\r\n _scrollBottomHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n if (!this._isDataSourceLoading() && !this._isLastPage()) {\r\n this._loadNextPage()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _renderItems: function(items) {\r\n if (this.option(\"grouped\")) {\r\n (0, _iterator.each)(items, this._renderGroup.bind(this));\r\n this._attachGroupCollapseEvent();\r\n this._renderEmptyMessage();\r\n if ((0, _themes.isMaterial)()) {\r\n this.attachGroupHeaderInkRippleEvents()\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n _attachGroupCollapseEvent: function() {\r\n var eventName = (0, _index.addNamespace)(_click.name, this.NAME);\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n var collapsibleGroups = this.option(\"collapsibleGroups\");\r\n $element.toggleClass(LIST_COLLAPSIBLE_GROUPS_CLASS, collapsibleGroups);\r\n _events_engine.default.off($element, eventName, selector);\r\n if (collapsibleGroups) {\r\n _events_engine.default.on($element, eventName, selector, function(e) {\r\n this._createAction(function(e) {\r\n var $group = (0, _renderer.default)(e.event.currentTarget).parent();\r\n this._collapseGroupHandler($group);\r\n if (this.option(\"focusStateEnabled\")) {\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($group.find(\".\" + LIST_ITEM_CLASS).eq(0)))\r\n }\r\n }.bind(this), {\r\n validatingTargetName: \"element\"\r\n })({\r\n event: e\r\n })\r\n }.bind(this))\r\n }\r\n },\r\n _collapseGroupHandler: function($group, toggle) {\r\n var deferred = new _deferred.Deferred;\r\n if ($group.hasClass(LIST_GROUP_COLLAPSED_CLASS) === toggle) {\r\n return deferred.resolve()\r\n }\r\n var $groupBody = $group.children(\".\" + LIST_GROUP_BODY_CLASS);\r\n var startHeight = $groupBody.outerHeight();\r\n var endHeight = 0 === startHeight ? $groupBody.height(\"auto\").outerHeight() : 0;\r\n $group.toggleClass(LIST_GROUP_COLLAPSED_CLASS, toggle);\r\n _fx.default.animate($groupBody, {\r\n type: \"custom\",\r\n from: {\r\n height: startHeight\r\n },\r\n to: {\r\n height: endHeight\r\n },\r\n duration: 200,\r\n complete: function() {\r\n this.updateDimensions();\r\n this._updateLoadingState();\r\n deferred.resolve()\r\n }.bind(this)\r\n });\r\n return deferred.promise()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n if (this._initialized) {\r\n this._renderEmptyMessage();\r\n this._updateLoadingState()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._itemElementsCache = (0, _renderer.default)();\r\n this.$element().addClass(LIST_CLASS);\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.setAria(\"role\", this.option(\"_listAttributes\").role)\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 var that = this;\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n if ((0, _themes.isMaterial)()) {\r\n this._inkRippleTimer = setTimeout(function() {\r\n that._inkRipple.showWave(config)\r\n }, LIST_FEEDBACK_SHOW_TIMEOUT / 2)\r\n } else {\r\n that._inkRipple.showWave(config)\r\n }\r\n } else {\r\n clearTimeout(this._inkRippleTimer);\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _postprocessRenderItem: function(args) {\r\n this._refreshItemElements();\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"_swipeEnabled\")) {\r\n this._attachSwipeEvent((0, _renderer.default)(args.itemElement))\r\n }\r\n },\r\n _attachSwipeEvent: function($itemElement) {\r\n var endEventName = (0, _index.addNamespace)(_swipe.end, this.NAME);\r\n _events_engine.default.on($itemElement, endEventName, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeEndHandler: function(e) {\r\n this._itemDXEventHandler(e, \"onItemSwipe\", {\r\n direction: e.offset < 0 ? \"left\" : \"right\"\r\n })\r\n },\r\n _nextButtonHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n var source = this._dataSource;\r\n if (source && !source.isLoading()) {\r\n this._scrollView.toggleLoading(true);\r\n this._$nextButton.detach();\r\n this._loadIndicationSuppressed(true);\r\n this._loadNextPage()\r\n }\r\n },\r\n _renderGroup: function(index, group) {\r\n var $groupElement = (0, _renderer.default)(\"
\").addClass(LIST_GROUP_CLASS).appendTo(this._itemContainer());\r\n var $groupHeaderElement = (0, _renderer.default)(\"
\").addClass(LIST_GROUP_HEADER_CLASS).appendTo($groupElement);\r\n var groupTemplateName = this.option(\"groupTemplate\");\r\n var groupTemplate = this._getTemplate(group.template || groupTemplateName, group, index, $groupHeaderElement);\r\n var renderArgs = {\r\n index: index,\r\n itemData: group,\r\n container: (0, _element.getPublicElement)($groupHeaderElement)\r\n };\r\n this._createItemByTemplate(groupTemplate, renderArgs);\r\n if ((0, _themes.isMaterial)()) {\r\n (0, _renderer.default)(\"
\").addClass(LIST_GROUP_HEADER_INDICATOR_CLASS).prependTo($groupHeaderElement)\r\n }\r\n this._renderingGroupIndex = index;\r\n var $groupBody = (0, _renderer.default)(\"
\").addClass(LIST_GROUP_BODY_CLASS).appendTo($groupElement);\r\n (0, _iterator.each)(groupItemsGetter(group) || [], function(index, item) {\r\n this._renderItem(index, item, $groupBody)\r\n }.bind(this));\r\n this._groupRenderAction({\r\n groupElement: (0, _element.getPublicElement)($groupElement),\r\n groupIndex: index,\r\n groupData: group\r\n })\r\n },\r\n downInkRippleHandler: function(e) {\r\n this._toggleActiveState((0, _renderer.default)(e.currentTarget), true, e)\r\n },\r\n upInkRippleHandler: function(e) {\r\n this._toggleActiveState((0, _renderer.default)(e.currentTarget), false)\r\n },\r\n attachGroupHeaderInkRippleEvents: function() {\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n this._downInkRippleHandler = this._downInkRippleHandler || this.downInkRippleHandler.bind(this);\r\n this._upInkRippleHandler = this._upInkRippleHandler || this.upInkRippleHandler.bind(this);\r\n var downArguments = [$element, \"dxpointerdown\", selector, this._downInkRippleHandler];\r\n var upArguments = [$element, \"dxpointerup dxpointerout\", selector, this._upInkRippleHandler];\r\n _events_engine.default.off.apply(_events_engine.default, downArguments);\r\n _events_engine.default.on.apply(_events_engine.default, downArguments);\r\n _events_engine.default.off.apply(_events_engine.default, upArguments);\r\n _events_engine.default.on.apply(_events_engine.default, upArguments)\r\n },\r\n _createGroupRenderAction: function() {\r\n this._groupRenderAction = this._createActionByOption(\"onGroupRendered\")\r\n },\r\n _clean: function() {\r\n clearTimeout(this._inkRippleTimer);\r\n if (this._$nextButton) {\r\n this._$nextButton.remove();\r\n this._$nextButton = null\r\n }\r\n delete this._inkRipple;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _dispose: function() {\r\n this._isDataSourceFirstLoadCompleted(false);\r\n clearTimeout(this._holdTimer);\r\n clearTimeout(this._loadNextPageTimer);\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this.callBase()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(value);\r\n this._scrollView.option(\"disabled\", value || !this.option(\"scrollingEnabled\"))\r\n },\r\n _toggleNextButton: function(value) {\r\n var dataSource = this._dataSource;\r\n var $nextButton = this._getNextButton();\r\n this.$element().toggleClass(LIST_HAS_NEXT_CLASS, value);\r\n if (value && dataSource && dataSource.isLoaded()) {\r\n $nextButton.appendTo(this._itemContainer())\r\n }\r\n if (!value) {\r\n $nextButton.detach()\r\n }\r\n },\r\n _getNextButton: function() {\r\n if (!this._$nextButton) {\r\n this._$nextButton = this._createNextButton()\r\n }\r\n return this._$nextButton\r\n },\r\n _createNextButton: function() {\r\n var $result = (0, _renderer.default)(\"
\").addClass(LIST_NEXT_BUTTON_CLASS);\r\n var $button = (0, _renderer.default)(\"
\").appendTo($result);\r\n this._createComponent($button, _button.default, {\r\n text: this.option(\"nextButtonText\"),\r\n onClick: this._nextButtonHandler.bind(this),\r\n type: (0, _themes.isMaterial)() ? \"default\" : void 0,\r\n integrationOptions: {}\r\n });\r\n return $result\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _refresh: function() {\r\n if (!(0, _window.hasWindow)()) {\r\n this.callBase()\r\n } else {\r\n var scrollTop = this._scrollView.scrollTop();\r\n this.callBase();\r\n scrollTop && this._scrollView.scrollTo(scrollTop)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"pageLoadMode\":\r\n this._toggleNextButton(args.value);\r\n this._initScrollView();\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initScrollView();\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"items\":\r\n this.callBase(args);\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"pageLoadingText\":\r\n case \"showScrollbar\":\r\n case \"bounceEnabled\":\r\n case \"scrollByContent\":\r\n case \"scrollByThumb\":\r\n case \"useNativeScrolling\":\r\n case \"scrollingEnabled\":\r\n case \"pullRefreshEnabled\":\r\n this._initScrollView();\r\n this._updateLoadingState();\r\n break;\r\n case \"nextButtonText\":\r\n case \"onItemSwipe\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"onScroll\":\r\n case \"onPullRefresh\":\r\n case \"onPageLoading\":\r\n this._createScrollViewActions();\r\n break;\r\n case \"grouped\":\r\n case \"collapsibleGroups\":\r\n case \"groupTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"wrapItemText\":\r\n this._$container.toggleClass(WRAP_ITEM_TEXT_CLASS, args.value);\r\n break;\r\n case \"onGroupRendered\":\r\n this._createGroupRenderAction();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._scrollView.update();\r\n break;\r\n case \"indicateLoading\":\r\n this._hideLoadingIfLoadIndicationOff();\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n this._scrollView.update();\r\n break;\r\n case \"rtlEnabled\":\r\n this._initScrollView();\r\n this.callBase(args);\r\n break;\r\n case \"showChevronExpr\":\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"_swipeEnabled\":\r\n case \"_revertPageOnEmptyLoad\":\r\n break;\r\n case \"_listAttributes\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _extendActionArgs: function($itemElement) {\r\n if (!this.option(\"grouped\")) {\r\n return this.callBase($itemElement)\r\n }\r\n var $group = $itemElement.closest(\".\" + LIST_GROUP_CLASS);\r\n var $item = $group.find(\".\" + LIST_ITEM_CLASS);\r\n return (0, _extend.extend)(this.callBase($itemElement), {\r\n itemIndex: {\r\n group: $group.index(),\r\n item: $item.index($itemElement)\r\n }\r\n })\r\n },\r\n expandGroup: function(groupIndex) {\r\n var deferred = new _deferred.Deferred;\r\n var $group = this._itemContainer().find(\".\" + LIST_GROUP_CLASS).eq(groupIndex);\r\n this._collapseGroupHandler($group, false).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n collapseGroup: function(groupIndex) {\r\n var deferred = new _deferred.Deferred;\r\n var $group = this._itemContainer().find(\".\" + LIST_GROUP_CLASS).eq(groupIndex);\r\n this._collapseGroupHandler($group, true).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred\r\n },\r\n updateDimensions: function() {\r\n var that = this;\r\n var deferred = new _deferred.Deferred;\r\n if (that._scrollView) {\r\n that._scrollView.update().done(function() {\r\n !that._scrollViewIsFull() && that._updateLoadingState(true);\r\n deferred.resolveWith(that)\r\n })\r\n } else {\r\n deferred.resolveWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reload: function() {\r\n this.callBase();\r\n this.scrollTo(0);\r\n this._pullDownHandler()\r\n },\r\n repaint: function() {\r\n this.scrollTo(0);\r\n this.callBase()\r\n },\r\n scrollTop: function() {\r\n return this._scrollView.scrollOffset().top\r\n },\r\n clientHeight: function() {\r\n return this._scrollView.clientHeight()\r\n },\r\n scrollHeight: function() {\r\n return this._scrollView.scrollHeight()\r\n },\r\n scrollBy: function(distance) {\r\n this._scrollView.scrollBy(distance)\r\n },\r\n scrollTo: function(location) {\r\n this._scrollView.scrollTo(location)\r\n },\r\n scrollToItem: function(itemElement) {\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n this._scrollView.scrollToElement($item)\r\n }\r\n}).include(_grouped_data_converter_mixin.default);\r\nexports.ListBase = ListBase;\r\nListBase.ItemClass = _item.default;\r\n\r\nfunction getScrollView() {\r\n return _scrollView || _scroll_view.default\r\n}\r\n\r\nfunction setScrollView(value) {\r\n _scrollView = value\r\n}\r\n","/**\r\n * DevExtreme (events/swipe.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.end = exports.start = exports.swipe = void 0;\r\nvar _index = require(\"./utils/index\");\r\nvar _emitter = _interopRequireDefault(require(\"./gesture/emitter.gesture\"));\r\nvar _emitter_registrator = _interopRequireDefault(require(\"./core/emitter_registrator\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SWIPE_START_EVENT = \"dxswipestart\";\r\nexports.start = SWIPE_START_EVENT;\r\nvar SWIPE_EVENT = \"dxswipe\";\r\nexports.swipe = SWIPE_EVENT;\r\nvar SWIPE_END_EVENT = \"dxswipeend\";\r\nexports.end = SWIPE_END_EVENT;\r\nvar HorizontalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return this.getElement().width()\r\n },\r\n getBounds: function() {\r\n return [this._maxLeftOffset, this._maxRightOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = (0, _index.eventData)(e);\r\n return (endEventData.x - (this._savedEventData && this._savedEventData.x || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = (0, _index.eventData)(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.x - this._tickData.x) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar VerticalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return this.getElement().height()\r\n },\r\n getBounds: function() {\r\n return [this._maxTopOffset, this._maxBottomOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = (0, _index.eventData)(e);\r\n return (endEventData.y - (this._savedEventData && this._savedEventData.y || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = (0, _index.eventData)(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.y - this._tickData.y) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar STRATEGIES = {\r\n horizontal: HorizontalStrategy,\r\n vertical: VerticalStrategy\r\n};\r\nvar SwipeEmitter = _emitter.default.inherit({\r\n TICK_INTERVAL: 300,\r\n FAST_SWIPE_SPEED_LIMIT: 10,\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"horizontal\";\r\n this.elastic = true\r\n },\r\n _getStrategy: function() {\r\n return STRATEGIES[this.direction]\r\n },\r\n _defaultItemSizeFunc: function() {\r\n return this._getStrategy().defaultItemSizeFunc.call(this)\r\n },\r\n _itemSizeFunc: function() {\r\n return this.itemSizeFunc || this._defaultItemSizeFunc\r\n },\r\n _init: function(e) {\r\n this._tickData = (0, _index.eventData)(e)\r\n },\r\n _start: function(e) {\r\n this._savedEventData = (0, _index.eventData)(e);\r\n e = this._fireEvent(SWIPE_START_EVENT, e);\r\n if (!e.cancel) {\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset\r\n }\r\n },\r\n _move: function(e) {\r\n var strategy = this._getStrategy();\r\n var moveEventData = (0, _index.eventData)(e);\r\n var offset = strategy.calcOffsetRatio.call(this, e);\r\n offset = this._fitOffset(offset, this.elastic);\r\n if (moveEventData.time - this._tickData.time > this.TICK_INTERVAL) {\r\n this._tickData = moveEventData\r\n }\r\n this._fireEvent(SWIPE_EVENT, e, {\r\n offset: offset\r\n });\r\n e.preventDefault()\r\n },\r\n _end: function(e) {\r\n var strategy = this._getStrategy();\r\n var offsetRatio = strategy.calcOffsetRatio.call(this, e);\r\n var isFast = strategy.isFastSwipe.call(this, e);\r\n var startOffset = offsetRatio;\r\n var targetOffset = this._calcTargetOffset(offsetRatio, isFast);\r\n startOffset = this._fitOffset(startOffset, this.elastic);\r\n targetOffset = this._fitOffset(targetOffset, false);\r\n this._fireEvent(SWIPE_END_EVENT, e, {\r\n offset: startOffset,\r\n targetOffset: targetOffset\r\n })\r\n },\r\n _fitOffset: function(offset, elastic) {\r\n var strategy = this._getStrategy();\r\n var bounds = strategy.getBounds.call(this);\r\n if (offset < -bounds[0]) {\r\n return elastic ? (-2 * bounds[0] + offset) / 3 : -bounds[0]\r\n }\r\n if (offset > bounds[1]) {\r\n return elastic ? (2 * bounds[1] + offset) / 3 : bounds[1]\r\n }\r\n return offset\r\n },\r\n _calcTargetOffset: function(offsetRatio, isFast) {\r\n var result;\r\n if (isFast) {\r\n result = Math.ceil(Math.abs(offsetRatio));\r\n if (offsetRatio < 0) {\r\n result = -result\r\n }\r\n } else {\r\n result = Math.round(offsetRatio)\r\n }\r\n return result\r\n }\r\n});\r\n(0, _emitter_registrator.default)({\r\n emitter: SwipeEmitter,\r\n events: [SWIPE_START_EVENT, SWIPE_EVENT, SWIPE_END_EVENT]\r\n});\r\n","/**\r\n * DevExtreme (ui/scroll_view/ui.scrollable.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _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 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/collection/ui.collection_widget.live_update.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"./ui.collection_widget.edit\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _array_utils = require(\"../../data/array_utils\");\r\nvar _utils = _interopRequireDefault(require(\"../../data/utils\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _array_compare = require(\"../../core/utils/array_compare\");\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\n\r\nfunction _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\nvar PRIVATE_KEY_FIELD = \"__dx_key__\";\r\nvar _default = _uiCollection_widget.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n repaintChangesOnly: false\r\n })\r\n },\r\n ctor: function() {\r\n var _this = this;\r\n this.callBase.apply(this, arguments);\r\n this._customizeStoreLoadOptions = function(e) {\r\n var dataSource = _this._dataSource;\r\n if (dataSource && !dataSource.isLoaded()) {\r\n _this._correctionIndex = 0\r\n }\r\n if (_this._correctionIndex && e.storeLoadOptions) {\r\n e.storeLoadOptions.skip += _this._correctionIndex\r\n }\r\n }, this._dataSource && this._dataSource.on(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions)\r\n },\r\n reload: function() {\r\n this._correctionIndex = 0\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._refreshItemsCache();\r\n this._correctionIndex = 0\r\n },\r\n _findItemElementByKey: function(key) {\r\n var _this2 = this;\r\n var result = (0, _renderer.default)();\r\n var keyExpr = this.key();\r\n this.itemElements().each(function(_, item) {\r\n var $item = (0, _renderer.default)(item);\r\n var itemData = _this2._getItemData($item);\r\n if (keyExpr ? _utils.default.keysEqual(keyExpr, _this2.keyOf(itemData), key) : _this2._isItemEquals(itemData, key)) {\r\n result = $item;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _dataSourceChangedHandler: function(newItems, e) {\r\n if (null !== e && void 0 !== e && e.changes) {\r\n this._modifyByChanges(e.changes)\r\n } else {\r\n this.callBase(newItems, e);\r\n this._refreshItemsCache()\r\n }\r\n },\r\n _isItemEquals: function(item1, item2) {\r\n if (item1 && item1[PRIVATE_KEY_FIELD]) {\r\n item1 = item1.data\r\n }\r\n try {\r\n return JSON.stringify(item1) === JSON.stringify(item2)\r\n } catch (e) {\r\n return item1 === item2\r\n }\r\n },\r\n _isItemStrictEquals: function(item1, item2) {\r\n return this._isItemEquals(item1, item2)\r\n },\r\n _partialRefresh: function() {\r\n var _this3 = this;\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var keyOf = function(data) {\r\n if (data && void 0 !== data[PRIVATE_KEY_FIELD]) {\r\n return data[PRIVATE_KEY_FIELD]\r\n }\r\n return _this3.keyOf(data)\r\n };\r\n var result = (0, _array_compare.findChanges)(this._itemsCache, this._editStrategy.itemsGetter(), keyOf, this._isItemStrictEquals.bind(this));\r\n if (result && this._itemsCache.length) {\r\n this._modifyByChanges(result, true);\r\n this._renderEmptyMessage();\r\n return true\r\n } else {\r\n this._refreshItemsCache()\r\n }\r\n }\r\n return false\r\n },\r\n _refreshItemsCache: function() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var items = this._editStrategy.itemsGetter();\r\n try {\r\n this._itemsCache = (0, _extend.extend)(true, [], items);\r\n if (!this.key()) {\r\n this._itemsCache = this._itemsCache.map(function(itemCache, index) {\r\n var _ref;\r\n return _ref = {}, _defineProperty(_ref, PRIVATE_KEY_FIELD, items[index]), _defineProperty(_ref, \"data\", itemCache), _ref\r\n })\r\n }\r\n } catch (e) {\r\n this._itemsCache = (0, _extend.extend)([], items)\r\n }\r\n }\r\n },\r\n _dispose: function() {\r\n this._dataSource && this._dataSource.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions);\r\n this.callBase()\r\n },\r\n _updateByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n var _this4 = this;\r\n if (isPartialRefresh) {\r\n this._renderItem(change.index, change.data, null, this._findItemElementByKey(change.key))\r\n } else {\r\n var changedItem = items[(0, _array_utils.indexByKey)(keyInfo, items, change.key)];\r\n if (changedItem) {\r\n (0, _array_utils.update)(keyInfo, items, change.key, change.data).done(function() {\r\n _this4._renderItem(items.indexOf(changedItem), changedItem, null, _this4._findItemElementByKey(change.key))\r\n })\r\n }\r\n }\r\n },\r\n _insertByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n var _this5 = this;\r\n (0, _deferred.when)(isPartialRefresh || (0, _array_utils.insert)(keyInfo, items, change.data, change.index)).done(function() {\r\n var _change$index;\r\n _this5._beforeItemElementInserted(change);\r\n _this5._renderItem(null !== (_change$index = change.index) && void 0 !== _change$index ? _change$index : items.length, change.data);\r\n _this5._afterItemElementInserted();\r\n _this5._correctionIndex++\r\n })\r\n },\r\n _updateSelectionAfterRemoveByChange: function(removeIndex) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (selectedIndex > removeIndex) {\r\n this.option(\"selectedIndex\", selectedIndex - 1)\r\n } else {\r\n if (selectedIndex === removeIndex && 1 === this.option(\"selectedItems\").length) {\r\n this.option(\"selectedItems\", [])\r\n } else {\r\n this._normalizeSelectedItems()\r\n }\r\n }\r\n },\r\n _beforeItemElementInserted: function(change) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (change.index <= selectedIndex) {\r\n this.option(\"selectedIndex\", selectedIndex + 1)\r\n }\r\n },\r\n _afterItemElementInserted: _common.noop,\r\n _removeByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n var _this6 = this;\r\n var index = isPartialRefresh ? change.index : (0, _array_utils.indexByKey)(keyInfo, items, change.key);\r\n var removedItem = isPartialRefresh ? change.oldItem : items[index];\r\n if (removedItem) {\r\n var $removedItemElement = this._findItemElementByKey(change.key);\r\n var deletedActionArgs = this._extendActionArgs($removedItemElement);\r\n this._waitDeletingPrepare($removedItemElement).done(function() {\r\n if (isPartialRefresh) {\r\n _this6._updateIndicesAfterIndex(index - 1);\r\n _this6._afterItemElementDeleted($removedItemElement, deletedActionArgs);\r\n _this6._updateSelectionAfterRemoveByChange(index)\r\n } else {\r\n _this6._deleteItemElementByIndex(index);\r\n _this6._afterItemElementDeleted($removedItemElement, deletedActionArgs)\r\n }\r\n });\r\n this._correctionIndex--\r\n }\r\n },\r\n _modifyByChanges: function(changes, isPartialRefresh) {\r\n var _this7 = this;\r\n var items = this._editStrategy.itemsGetter();\r\n var keyInfo = {\r\n key: this.key.bind(this),\r\n keyOf: this.keyOf.bind(this)\r\n };\r\n var dataSource = this._dataSource;\r\n var paginate = dataSource && dataSource.paginate();\r\n var group = dataSource && dataSource.group();\r\n if (paginate || group) {\r\n changes = changes.filter(function(item) {\r\n return \"insert\" !== item.type || void 0 !== item.index\r\n })\r\n }\r\n changes.forEach(function(change) {\r\n return _this7[\"_\".concat(change.type, \"ByChange\")](keyInfo, items, change, isPartialRefresh)\r\n });\r\n this._renderedItemsCount = items.length;\r\n this._refreshItemsCache();\r\n this._fireContentReadyAction()\r\n },\r\n _appendItemToContainer: function($container, $itemFrame, index) {\r\n var nextSiblingElement = $container.children(this._itemSelector()).get(index);\r\n _dom_adapter.default.insertElement($container.get(0), $itemFrame.get(0), nextSiblingElement)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n var isItemsUpdated = this._partialRefresh(args.value);\r\n if (!isItemsUpdated) {\r\n this.callBase(args)\r\n }\r\n break;\r\n case \"dataSource\":\r\n if (!this.option(\"repaintChangesOnly\") || !args.value) {\r\n this.option(\"items\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"repaintChangesOnly\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\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.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.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 _devices = _interopRequireDefault(require(\"../../core/devices\"));\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 realDevice = _devices.default.real;\r\nvar isSluggishPlatform = \"android\" === realDevice.platform;\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 = isSluggishPlatform ? .95 : .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 = isSluggishPlatform ? 300 : 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/list/ui.list.edit.decorator_menu_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar EditDecoratorMenuHelperMixin = {\r\n _menuEnabled: function() {\r\n return !!this._menuItems().length\r\n },\r\n _menuItems: function() {\r\n return this._list.option(\"menuItems\")\r\n },\r\n _deleteEnabled: function() {\r\n return this._list.option(\"allowItemDeleting\")\r\n },\r\n _fireMenuAction: function($itemElement, action) {\r\n this._list._itemEventHandlerByHandler($itemElement, action, {}, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n};\r\nvar _default = EditDecoratorMenuHelperMixin;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/scroll_view/animator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _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/list/ui.list.edit.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiListEditStrategy = _interopRequireDefault(require(\"./ui.list.edit.strategy.grouped\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _uiListEdit = _interopRequireDefault(require(\"./ui.list.edit.provider\"));\r\nvar _uiList = require(\"./ui.list.base\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar LIST_ITEM_SELECTED_CLASS = \"dx-list-item-selected\";\r\nvar LIST_ITEM_RESPONSE_WAIT_CLASS = \"dx-list-item-response-wait\";\r\nvar ListEdit = _uiList.ListBase.inherit({\r\n _supportedKeys: function() {\r\n var _this = this;\r\n var that = this;\r\n var parent = this.callBase();\r\n var deleteFocusedItem = function(e) {\r\n if (that.option(\"allowItemDeleting\")) {\r\n e.preventDefault();\r\n that.deleteItem(that.option(\"focusedElement\"))\r\n }\r\n };\r\n var moveFocusedItem = function(e, moveUp) {\r\n var editStrategy = _this._editStrategy;\r\n var focusedElement = _this.option(\"focusedElement\");\r\n var focusedItemIndex = editStrategy.getNormalizedIndex(focusedElement);\r\n var isLastIndexFocused = focusedItemIndex === _this._getLastItemIndex();\r\n if (isLastIndexFocused && _this._isDataSourceLoading()) {\r\n return\r\n }\r\n if (e.shiftKey && that.option(\"itemDragging.allowReordering\")) {\r\n var nextItemIndex = focusedItemIndex + (moveUp ? -1 : 1);\r\n var $nextItem = editStrategy.getItemElement(nextItemIndex);\r\n _this.reorderItem(focusedElement, $nextItem);\r\n _this.scrollToItem(focusedElement);\r\n e.preventDefault()\r\n } else {\r\n var editProvider = _this._editProvider;\r\n var isInternalMoving = editProvider.handleKeyboardEvents(focusedItemIndex, moveUp);\r\n if (!isInternalMoving) {\r\n moveUp ? parent.upArrow(e) : parent.downArrow(e)\r\n }\r\n }\r\n };\r\n var enter = function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.enter.apply(this, arguments)\r\n }\r\n };\r\n var space = function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.space.apply(this, arguments)\r\n }\r\n };\r\n return (0, _extend.extend)({}, parent, {\r\n del: deleteFocusedItem,\r\n upArrow: function(e) {\r\n return moveFocusedItem(e, true)\r\n },\r\n downArrow: function(e) {\r\n return moveFocusedItem(e)\r\n },\r\n enter: enter,\r\n space: space\r\n })\r\n },\r\n _updateSelection: function() {\r\n this._editProvider.afterItemsRendered();\r\n this.callBase()\r\n },\r\n _getLastItemIndex: function() {\r\n return this._itemElements().length - 1\r\n },\r\n _refreshItemElements: function() {\r\n this.callBase();\r\n var excludedSelectors = this._editProvider.getExcludedItemSelectors();\r\n if (excludedSelectors.length) {\r\n this._itemElementsCache = this._itemElementsCache.not(excludedSelectors)\r\n }\r\n },\r\n _isItemStrictEquals: function(item1, item2) {\r\n var privateKey = item1 && item1.__dx_key__;\r\n if (privateKey && !this.key() && this._selection.isItemSelected(privateKey)) {\r\n return false\r\n }\r\n return this.callBase(item1, item2)\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n showSelectionControls: false,\r\n selectionMode: \"none\",\r\n selectAllMode: \"page\",\r\n onSelectAllValueChanged: null,\r\n selectAllText: _message.default.format(\"dxList-selectAll\"),\r\n menuItems: [],\r\n menuMode: \"context\",\r\n allowItemDeleting: false,\r\n itemDeleteMode: \"static\",\r\n itemDragging: {}\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n return \"ios\" === _device.platform\r\n },\r\n options: {\r\n menuMode: \"slide\",\r\n itemDeleteMode: \"slideItem\"\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n itemDeleteMode: \"swipe\"\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initEditProvider()\r\n },\r\n _initDataSource: function() {\r\n this.callBase();\r\n if (!this._isPageSelectAll()) {\r\n this._dataSource && this._dataSource.requireTotalCount(true)\r\n }\r\n },\r\n _isPageSelectAll: function() {\r\n return \"page\" === this.option(\"selectAllMode\")\r\n },\r\n _initEditProvider: function() {\r\n this._editProvider = new _uiListEdit.default(this)\r\n },\r\n _disposeEditProvider: function() {\r\n if (this._editProvider) {\r\n this._editProvider.dispose()\r\n }\r\n },\r\n _refreshEditProvider: function() {\r\n this._disposeEditProvider();\r\n this._initEditProvider()\r\n },\r\n _initEditStrategy: function() {\r\n if (this.option(\"grouped\")) {\r\n this._editStrategy = new _uiListEditStrategy.default(this)\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._refreshEditProvider();\r\n this.callBase()\r\n },\r\n _renderItems: function() {\r\n this.callBase.apply(this, arguments);\r\n this._editProvider.afterItemsRendered()\r\n },\r\n _selectedItemClass: function() {\r\n return LIST_ITEM_SELECTED_CLASS\r\n },\r\n _itemResponseWaitClass: function() {\r\n return LIST_ITEM_RESPONSE_WAIT_CLASS\r\n },\r\n _itemClickHandler: function(e) {\r\n var $itemElement = (0, _renderer.default)(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = this._editProvider.handleClick($itemElement, e);\r\n if (handledByEditProvider) {\r\n return\r\n }\r\n this._saveSelectionChangeEvent(e);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _shouldFireContextMenuEvent: function() {\r\n return this.callBase.apply(this, arguments) || this._editProvider.contextMenuHandlerExists()\r\n },\r\n _itemHoldHandler: function(e) {\r\n var $itemElement = (0, _renderer.default)(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = (0, _index.isTouchEvent)(e) && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.handledByEditProvider = true;\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _itemContextMenuHandler: function(e) {\r\n var $itemElement = (0, _renderer.default)(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = !e.handledByEditProvider && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.preventDefault();\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _postprocessRenderItem: function(args) {\r\n this.callBase.apply(this, arguments);\r\n this._editProvider.modifyItemElement(args)\r\n },\r\n _clean: function() {\r\n this._disposeEditProvider();\r\n this.callBase()\r\n },\r\n focusListItem: function(index) {\r\n var $item = this._editStrategy.getItemElement(index);\r\n this.option(\"focusedElement\", $item);\r\n this.focus();\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"selectAllMode\":\r\n this._initDataSource();\r\n this._dataSource.pageIndex(0);\r\n this._dataSource.load();\r\n break;\r\n case \"grouped\":\r\n this._clearSelectedItems();\r\n delete this._renderingGroupIndex;\r\n this._initEditStrategy();\r\n this.callBase(args);\r\n break;\r\n case \"showSelectionControls\":\r\n case \"menuItems\":\r\n case \"menuMode\":\r\n case \"allowItemDeleting\":\r\n case \"itemDeleteMode\":\r\n case \"itemDragging\":\r\n case \"selectAllText\":\r\n this._invalidate();\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n selectAll: function() {\r\n return this._selection.selectAll(this._isPageSelectAll())\r\n },\r\n unselectAll: function() {\r\n return this._selection.deselectAll(this._isPageSelectAll())\r\n },\r\n isSelectAll: function() {\r\n return this._selection.getSelectAllState(this._isPageSelectAll())\r\n },\r\n getFlatIndexByItemElement: function(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n },\r\n getItemElementByFlatIndex: function(flatIndex) {\r\n var $itemElements = this._itemElements();\r\n if (flatIndex < 0 || flatIndex >= $itemElements.length) {\r\n return (0, _renderer.default)()\r\n }\r\n return $itemElements.eq(flatIndex)\r\n },\r\n getItemByIndex: function(index) {\r\n return this._editStrategy.getItemDataByIndex(index)\r\n }\r\n});\r\nvar _default = ListEdit;\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.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _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/list/ui.list.edit.decorator.swipe.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _uiListEdit = require(\"./ui.list.edit.decorator_registry\");\r\nvar _uiListEdit2 = _interopRequireDefault(require(\"./ui.list.edit.decorator\"));\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}(0, _uiListEdit.register)(\"delete\", \"swipe\", _uiListEdit2.default.inherit({\r\n _shouldHandleSwipe: true,\r\n _renderItemPosition: function($itemElement, offset, animate) {\r\n var deferred = new _deferred.Deferred;\r\n var itemOffset = offset * this._itemElementWidth;\r\n if (animate) {\r\n _fx.default.animate($itemElement, {\r\n to: {\r\n left: itemOffset\r\n },\r\n type: \"slide\",\r\n complete: function() {\r\n deferred.resolve($itemElement, offset)\r\n }\r\n })\r\n } else {\r\n (0, _translator.move)($itemElement, {\r\n left: itemOffset\r\n });\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n },\r\n _swipeStartHandler: function($itemElement) {\r\n this._itemElementWidth = $itemElement.width();\r\n return true\r\n },\r\n _swipeUpdateHandler: function($itemElement, args) {\r\n this._renderItemPosition($itemElement, args.offset);\r\n return true\r\n },\r\n _swipeEndHandler: function($itemElement, args) {\r\n var offset = args.targetOffset;\r\n this._renderItemPosition($itemElement, offset, true).done(function($itemElement, offset) {\r\n if (Math.abs(offset)) {\r\n this._list.deleteItem($itemElement).fail(function() {\r\n this._renderItemPosition($itemElement, 0, true)\r\n }.bind(this))\r\n }\r\n }.bind(this));\r\n return true\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/list/ui.list.edit.provider.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _uiListEdit = require(\"./ui.list.edit.decorator_registry\");\r\nrequire(\"./ui.list.edit.decorator.static\");\r\nrequire(\"./ui.list.edit.decorator.switchable.button\");\r\nrequire(\"./ui.list.edit.decorator.switchable.slide\");\r\nrequire(\"./ui.list.edit.decorator.swipe\");\r\nrequire(\"./ui.list.edit.decorator.context\");\r\nrequire(\"./ui.list.edit.decorator.selection\");\r\nrequire(\"./ui.list.edit.decorator.reorder\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar editOptionsRegistry = [];\r\nvar registerOption = function(enabledFunc, decoratorTypeFunc, decoratorSubTypeFunc) {\r\n editOptionsRegistry.push({\r\n enabled: enabledFunc,\r\n decoratorType: decoratorTypeFunc,\r\n decoratorSubType: decoratorSubTypeFunc\r\n })\r\n};\r\nregisterOption(function() {\r\n return this.option(\"menuItems\").length\r\n}, function() {\r\n return \"menu\"\r\n}, function() {\r\n return this.option(\"menuMode\")\r\n});\r\nregisterOption(function() {\r\n return !this.option(\"menuItems\").length && this.option(\"allowItemDeleting\")\r\n}, function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n return \"toggle\" === mode || \"slideButton\" === mode || \"swipe\" === mode || \"static\" === mode ? \"delete\" : \"menu\"\r\n}, function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n if (\"slideItem\" === mode) {\r\n mode = \"slide\"\r\n }\r\n if (\"hold\" === mode) {\r\n mode = \"context\"\r\n }\r\n return mode\r\n});\r\nregisterOption(function() {\r\n return \"none\" !== this.option(\"selectionMode\") && this.option(\"showSelectionControls\")\r\n}, function() {\r\n return \"selection\"\r\n}, function() {\r\n return \"default\"\r\n});\r\nregisterOption(function() {\r\n return this.option(\"itemDragging.allowReordering\") || this.option(\"itemDragging.allowDropInsideItem\") || this.option(\"itemDragging.group\")\r\n}, function() {\r\n return \"reorder\"\r\n}, function() {\r\n return \"default\"\r\n});\r\nvar LIST_ITEM_BEFORE_BAG_CLASS = \"dx-list-item-before-bag\";\r\nvar LIST_ITEM_AFTER_BAG_CLASS = \"dx-list-item-after-bag\";\r\nvar DECORATOR_BEFORE_BAG_CREATE_METHOD = \"beforeBag\";\r\nvar DECORATOR_AFTER_BAG_CREATE_METHOD = \"afterBag\";\r\nvar DECORATOR_MODIFY_ELEMENT_METHOD = \"modifyElement\";\r\nvar DECORATOR_AFTER_RENDER_METHOD = \"afterRender\";\r\nvar DECORATOR_GET_EXCLUDED_SELECTORS_METHOD = \"getExcludedSelectors\";\r\nvar EditProvider = _class.default.inherit({\r\n ctor: function(list) {\r\n this._list = list;\r\n this._fetchRequiredDecorators()\r\n },\r\n dispose: function() {\r\n if (this._decorators && this._decorators.length) {\r\n (0, _iterator.each)(this._decorators, function(_, decorator) {\r\n decorator.dispose()\r\n })\r\n }\r\n },\r\n _fetchRequiredDecorators: function() {\r\n this._decorators = [];\r\n (0, _iterator.each)(editOptionsRegistry, function(_, option) {\r\n var optionEnabled = option.enabled.call(this._list);\r\n if (optionEnabled) {\r\n var decoratorType = option.decoratorType.call(this._list);\r\n var decoratorSubType = option.decoratorSubType.call(this._list);\r\n var decorator = this._createDecorator(decoratorType, decoratorSubType);\r\n this._decorators.push(decorator)\r\n }\r\n }.bind(this))\r\n },\r\n _createDecorator: function(type, subType) {\r\n var decoratorClass = this._findDecorator(type, subType);\r\n return new decoratorClass(this._list)\r\n },\r\n _findDecorator: function(type, subType) {\r\n var foundDecorator = _uiListEdit.registry[type][subType];\r\n if (!foundDecorator) {\r\n throw _ui.default.Error(\"E1012\", type, subType)\r\n }\r\n return foundDecorator\r\n },\r\n modifyItemElement: function(args) {\r\n var $itemElement = (0, _renderer.default)(args.itemElement);\r\n var config = {\r\n $itemElement: $itemElement\r\n };\r\n this._prependBeforeBags($itemElement, config);\r\n this._appendAfterBags($itemElement, config);\r\n this._applyDecorators(DECORATOR_MODIFY_ELEMENT_METHOD, config)\r\n },\r\n afterItemsRendered: function() {\r\n this._applyDecorators(DECORATOR_AFTER_RENDER_METHOD)\r\n },\r\n _prependBeforeBags: function($itemElement, config) {\r\n var $beforeBags = this._collectDecoratorsMarkup(DECORATOR_BEFORE_BAG_CREATE_METHOD, config, LIST_ITEM_BEFORE_BAG_CLASS);\r\n $itemElement.prepend($beforeBags)\r\n },\r\n _appendAfterBags: function($itemElement, config) {\r\n var $afterBags = this._collectDecoratorsMarkup(DECORATOR_AFTER_BAG_CREATE_METHOD, config, LIST_ITEM_AFTER_BAG_CLASS);\r\n $itemElement.append($afterBags)\r\n },\r\n _collectDecoratorsMarkup: function(method, config, containerClass) {\r\n var $collector = (0, _renderer.default)(\"
\");\r\n (0, _iterator.each)(this._decorators, function() {\r\n var $container = (0, _renderer.default)(\"
\").addClass(containerClass);\r\n this[method]((0, _extend.extend)({\r\n $container: $container\r\n }, config));\r\n if ($container.children().length) {\r\n $collector.append($container)\r\n }\r\n });\r\n return $collector.children()\r\n },\r\n _applyDecorators: function(method, config) {\r\n (0, _iterator.each)(this._decorators, function() {\r\n this[method](config)\r\n })\r\n },\r\n _handlerExists: function(name) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var decorators = this._decorators;\r\n var length = decorators.length;\r\n for (var i = 0; i < length; i++) {\r\n if (decorators[i][name] !== _common.noop) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _eventHandler: function(name, $itemElement, e) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var response = false;\r\n var decorators = this._decorators;\r\n var length = decorators.length;\r\n for (var i = 0; i < length; i++) {\r\n response = decorators[i][name]($itemElement, e);\r\n if (response) {\r\n break\r\n }\r\n }\r\n return response\r\n },\r\n handleClick: function($itemElement, e) {\r\n return this._eventHandler(\"handleClick\", $itemElement, e)\r\n },\r\n handleKeyboardEvents: function(currentFocusedIndex, moveFocusUp) {\r\n return this._eventHandler(\"handleKeyboardEvents\", currentFocusedIndex, moveFocusUp)\r\n },\r\n handleEnterPressing: function(e) {\r\n return this._eventHandler(\"handleEnterPressing\", e)\r\n },\r\n contextMenuHandlerExists: function() {\r\n return this._handlerExists(\"handleContextMenu\")\r\n },\r\n handleContextMenu: function($itemElement, e) {\r\n return this._eventHandler(\"handleContextMenu\", $itemElement, e)\r\n },\r\n getExcludedItemSelectors: function() {\r\n var excludedSelectors = [];\r\n this._applyDecorators(DECORATOR_GET_EXCLUDED_SELECTORS_METHOD, excludedSelectors);\r\n return excludedSelectors.join(\",\")\r\n }\r\n});\r\nvar _default = EditProvider;\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.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.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/popover.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _element = require(\"../core/element\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../core/dom_adapter\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _translator = require(\"../animation/translator\");\r\nvar _position = _interopRequireDefault(require(\"../animation/position\"));\r\nvar _type = require(\"../core/utils/type\");\r\nvar _math = require(\"../core/utils/math\");\r\nvar _index = require(\"../events/utils/index\");\r\nvar _popup = _interopRequireDefault(require(\"./popup\"));\r\nvar _position2 = require(\"../core/utils/position\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar POPOVER_CLASS = \"dx-popover\";\r\nvar POPOVER_WRAPPER_CLASS = \"dx-popover-wrapper\";\r\nvar POPOVER_ARROW_CLASS = \"dx-popover-arrow\";\r\nvar POPOVER_WITHOUT_TITLE_CLASS = \"dx-popover-without-title\";\r\nvar POSITION_FLIP_MAP = {\r\n left: \"right\",\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n center: \"center\"\r\n};\r\nvar WEIGHT_OF_SIDES = {\r\n left: -1,\r\n top: -1,\r\n center: 0,\r\n right: 1,\r\n bottom: 1\r\n};\r\nvar POSITION_ALIASES = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\",\r\n collision: \"fit flip\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit flip\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\",\r\n collision: \"flip fit\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\",\r\n collision: \"flip fit\"\r\n }\r\n};\r\nvar SIDE_BORDER_WIDTH_STYLES = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\nvar getEventNameByOption = function(optionValue) {\r\n return (0, _type.isObject)(optionValue) ? optionValue.name : optionValue\r\n};\r\nvar getEventName = function(that, optionName) {\r\n var optionValue = that.option(optionName);\r\n return getEventNameByOption(optionValue)\r\n};\r\nvar getEventDelay = function(that, optionName) {\r\n var optionValue = that.option(optionName);\r\n return (0, _type.isObject)(optionValue) && optionValue.delay\r\n};\r\nvar attachEvent = function(that, name) {\r\n var target = that.option(\"target\");\r\n var isSelector = (0, _type.isString)(target);\r\n var event = getEventName(that, name + \"Event\");\r\n if (!event || that.option(\"disabled\")) {\r\n return\r\n }\r\n var eventName = (0, _index.addNamespace)(event, that.NAME);\r\n var action = that._createAction(function() {\r\n var delay = getEventDelay(that, name + \"Event\");\r\n this._clearEventsTimeouts();\r\n if (delay) {\r\n this._timeouts[name] = setTimeout(function() {\r\n that[name]()\r\n }, delay)\r\n } else {\r\n that[name]()\r\n }\r\n }.bind(that), {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = function(e) {\r\n action({\r\n event: e,\r\n target: (0, _renderer.default)(e.currentTarget)\r\n })\r\n };\r\n var EVENT_HANDLER_NAME = \"_\" + name + \"EventHandler\";\r\n if (isSelector) {\r\n that[EVENT_HANDLER_NAME] = handler;\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), eventName, target, handler)\r\n } else {\r\n var targetElement = (0, _element.getPublicElement)((0, _renderer.default)(target));\r\n that[EVENT_HANDLER_NAME] = void 0;\r\n _events_engine.default.on(targetElement, eventName, handler)\r\n }\r\n};\r\nvar detachEvent = function(that, target, name, event) {\r\n var eventName = event || getEventName(that, name + \"Event\");\r\n if (!eventName) {\r\n return\r\n }\r\n eventName = (0, _index.addNamespace)(eventName, that.NAME);\r\n var EVENT_HANDLER_NAME = \"_\" + name + \"EventHandler\";\r\n if (that[EVENT_HANDLER_NAME]) {\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), eventName, target, that[EVENT_HANDLER_NAME])\r\n } else {\r\n _events_engine.default.off((0, _element.getPublicElement)((0, _renderer.default)(target)), eventName)\r\n }\r\n};\r\nvar Popover = _popup.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n target: window,\r\n shading: false,\r\n position: \"bottom\",\r\n closeOnOutsideClick: true,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n to: 0\r\n }\r\n },\r\n showTitle: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n dragEnabled: false,\r\n resizeEnabled: false,\r\n fullScreen: false,\r\n closeOnTargetScroll: true,\r\n arrowPosition: \"\",\r\n arrowOffset: 0,\r\n boundaryOffset: {\r\n h: 10,\r\n v: 10\r\n },\r\n _fixedPosition: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return [{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n arrowPosition: {\r\n boundaryOffset: {\r\n h: 20,\r\n v: -10\r\n },\r\n collision: \"fit\"\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return !(0, _window.hasWindow)()\r\n },\r\n options: {\r\n animation: null\r\n }\r\n }]\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._renderArrow();\r\n this._timeouts = {};\r\n this.$element().addClass(POPOVER_CLASS);\r\n this._wrapper().addClass(POPOVER_WRAPPER_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase.apply(this, arguments);\r\n this._detachEvents(this.option(\"target\"));\r\n this._attachEvents()\r\n },\r\n _detachEvents: function(target) {\r\n detachEvent(this, target, \"show\");\r\n detachEvent(this, target, \"hide\")\r\n },\r\n _attachEvents: function() {\r\n attachEvent(this, \"show\");\r\n attachEvent(this, \"hide\")\r\n },\r\n _renderArrow: function() {\r\n this._$arrow = (0, _renderer.default)(\"
\").addClass(POPOVER_ARROW_CLASS).prependTo(this.overlayContent())\r\n },\r\n _documentDownHandler: function(e) {\r\n if (this._isOutsideClick(e)) {\r\n return this.callBase(e)\r\n }\r\n return true\r\n },\r\n _isOutsideClick: function(e) {\r\n return !(0, _renderer.default)(e.target).closest(this.option(\"target\")).length\r\n },\r\n _animate: function(animation) {\r\n if (animation && animation.to && \"object\" === _typeof(animation.to)) {\r\n (0, _extend.extend)(animation.to, {\r\n position: this._getContainerPosition()\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _stopAnimation: function() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _renderTitle: function() {\r\n this._wrapper().toggleClass(POPOVER_WITHOUT_TITLE_CLASS, !this.option(\"showTitle\"));\r\n this.callBase()\r\n },\r\n _renderPosition: function() {\r\n this.callBase();\r\n this._renderOverlayPosition()\r\n },\r\n _renderOverlayBoundaryOffset: _common.noop,\r\n _renderOverlayPosition: function() {\r\n this._resetOverlayPosition();\r\n this._updateContentSize();\r\n var contentPosition = this._getContainerPosition();\r\n var resultLocation = _position.default.setup(this._$content, contentPosition);\r\n var positionSide = this._getSideByLocation(resultLocation);\r\n this._togglePositionClass(\"dx-position-\" + positionSide);\r\n this._toggleFlippedClass(resultLocation.h.flip, resultLocation.v.flip);\r\n var isArrowVisible = this._isHorizontalSide() || this._isVerticalSide();\r\n if (isArrowVisible) {\r\n this._renderArrowPosition(positionSide)\r\n }\r\n },\r\n _resetOverlayPosition: function() {\r\n this._setContentHeight(true);\r\n this._togglePositionClass(\"dx-position-\" + this._positionSide);\r\n (0, _translator.move)(this._$content, {\r\n left: 0,\r\n top: 0\r\n });\r\n this._$arrow.css({\r\n top: \"auto\",\r\n right: \"auto\",\r\n bottom: \"auto\",\r\n left: \"auto\"\r\n })\r\n },\r\n _updateContentSize: function() {\r\n if (!this._$popupContent) {\r\n return\r\n }\r\n var containerLocation = _position.default.calculate(this._$content, this._getContainerPosition());\r\n if (containerLocation.h.oversize > 0 && this._isHorizontalSide() && !containerLocation.h.fit) {\r\n var newContainerWidth = this._$content.width() - containerLocation.h.oversize;\r\n this._$content.width(newContainerWidth)\r\n }\r\n if (containerLocation.v.oversize > 0 && this._isVerticalSide() && !containerLocation.v.fit) {\r\n var newOverlayContentHeight = this._$content.height() - containerLocation.v.oversize;\r\n var newPopupContentHeight = this._$popupContent.height() - containerLocation.v.oversize;\r\n this._$content.height(newOverlayContentHeight);\r\n this._$popupContent.height(newPopupContentHeight)\r\n }\r\n },\r\n _getContainerPosition: function() {\r\n var offset = (0, _common.pairToObject)(this._position.offset || \"\");\r\n var hOffset = offset.h;\r\n var vOffset = offset.v;\r\n var isVerticalSide = this._isVerticalSide();\r\n var isHorizontalSide = this._isHorizontalSide();\r\n if (isVerticalSide || isHorizontalSide) {\r\n var isPopoverInside = this._isPopoverInside();\r\n var sign = (isPopoverInside ? -1 : 1) * WEIGHT_OF_SIDES[this._positionSide];\r\n var arrowSize = isVerticalSide ? this._$arrow.height() : this._$arrow.width();\r\n var arrowSizeCorrection = this._getContentBorderWidth(this._positionSide);\r\n var arrowOffset = sign * (arrowSize - arrowSizeCorrection);\r\n isVerticalSide ? vOffset += arrowOffset : hOffset += arrowOffset\r\n }\r\n return (0, _extend.extend)({}, this._position, {\r\n offset: hOffset + \" \" + vOffset\r\n })\r\n },\r\n _getContentBorderWidth: function(side) {\r\n var borderWidth = this._$content.css(SIDE_BORDER_WIDTH_STYLES[side]);\r\n return parseInt(borderWidth) || 0\r\n },\r\n _getSideByLocation: function(location) {\r\n var isFlippedByVertical = location.v.flip;\r\n var isFlippedByHorizontal = location.h.flip;\r\n return this._isVerticalSide() && isFlippedByVertical || this._isHorizontalSide() && isFlippedByHorizontal || this._isPopoverInside() ? POSITION_FLIP_MAP[this._positionSide] : this._positionSide\r\n },\r\n _togglePositionClass: function(positionClass) {\r\n this._$wrapper.removeClass(\"dx-position-left dx-position-right dx-position-top dx-position-bottom\").addClass(positionClass)\r\n },\r\n _toggleFlippedClass: function(isFlippedHorizontal, isFlippedVertical) {\r\n this._$wrapper.toggleClass(\"dx-popover-flipped-horizontal\", isFlippedHorizontal).toggleClass(\"dx-popover-flipped-vertical\", isFlippedVertical)\r\n },\r\n _renderArrowPosition: function(side) {\r\n var arrowRect = (0, _position2.getBoundingRect)(this._$arrow.get(0));\r\n var arrowFlip = -(this._isVerticalSide(side) ? arrowRect.height : arrowRect.width);\r\n this._$arrow.css(POSITION_FLIP_MAP[side], arrowFlip);\r\n var axis = this._isVerticalSide(side) ? \"left\" : \"top\";\r\n var sizeProperty = this._isVerticalSide(side) ? \"width\" : \"height\";\r\n var $target = (0, _renderer.default)(this._position.of);\r\n var targetOffset = _position.default.offset($target) || {\r\n top: 0,\r\n left: 0\r\n };\r\n var contentOffset = _position.default.offset(this._$content);\r\n var arrowSize = arrowRect[sizeProperty];\r\n var contentLocation = contentOffset[axis];\r\n var contentSize = (0, _position2.getBoundingRect)(this._$content.get(0))[sizeProperty];\r\n var targetLocation = targetOffset[axis];\r\n var targetSize = $target.get(0).preventDefault ? 0 : (0, _position2.getBoundingRect)($target.get(0))[sizeProperty];\r\n var min = Math.max(contentLocation, targetLocation);\r\n var max = Math.min(contentLocation + contentSize, targetLocation + targetSize);\r\n var arrowLocation;\r\n if (\"start\" === this.option(\"arrowPosition\")) {\r\n arrowLocation = min - contentLocation\r\n } else {\r\n if (\"end\" === this.option(\"arrowPosition\")) {\r\n arrowLocation = max - contentLocation - arrowSize\r\n } else {\r\n arrowLocation = (min + max) / 2 - contentLocation - arrowSize / 2\r\n }\r\n }\r\n var borderWidth = this._getContentBorderWidth(side);\r\n var finalArrowLocation = (0, _math.fitIntoRange)(arrowLocation - borderWidth + this.option(\"arrowOffset\"), borderWidth, contentSize - arrowSize - 2 * borderWidth);\r\n this._$arrow.css(axis, finalArrowLocation)\r\n },\r\n _isPopoverInside: function() {\r\n var position = this._transformStringPosition(this.option(\"position\"), POSITION_ALIASES);\r\n var my = _position.default.setup.normalizeAlign(position.my);\r\n var at = _position.default.setup.normalizeAlign(position.at);\r\n return my.h === at.h && my.v === at.v\r\n },\r\n _setContentHeight: function(fullUpdate) {\r\n if (fullUpdate) {\r\n this.callBase()\r\n }\r\n },\r\n _renderWrapperPosition: function() {\r\n if (this.option(\"shading\")) {\r\n this._$wrapper.css({\r\n top: 0,\r\n left: 0\r\n })\r\n }\r\n },\r\n _renderWrapperDimensions: function() {\r\n if (this.option(\"shading\")) {\r\n this._$wrapper.css({\r\n width: \"100%\",\r\n height: \"100%\"\r\n })\r\n }\r\n },\r\n _normalizePosition: function() {\r\n var position = (0, _extend.extend)({}, this._transformStringPosition(this.option(\"position\"), POSITION_ALIASES));\r\n if (!position.of) {\r\n position.of = this.option(\"target\")\r\n }\r\n if (!position.collision) {\r\n position.collision = \"flip\"\r\n }\r\n if (!position.boundaryOffset) {\r\n position.boundaryOffset = this.option(\"boundaryOffset\")\r\n }\r\n this._positionSide = this._getDisplaySide(position);\r\n this._position = position\r\n },\r\n _getDisplaySide: function(position) {\r\n var my = _position.default.setup.normalizeAlign(position.my);\r\n var at = _position.default.setup.normalizeAlign(position.at);\r\n var weightSign = WEIGHT_OF_SIDES[my.h] === WEIGHT_OF_SIDES[at.h] && WEIGHT_OF_SIDES[my.v] === WEIGHT_OF_SIDES[at.v] ? -1 : 1;\r\n var horizontalWeight = Math.abs(WEIGHT_OF_SIDES[my.h] - weightSign * WEIGHT_OF_SIDES[at.h]);\r\n var verticalWeight = Math.abs(WEIGHT_OF_SIDES[my.v] - weightSign * WEIGHT_OF_SIDES[at.v]);\r\n return horizontalWeight > verticalWeight ? at.h : at.v\r\n },\r\n _isVerticalSide: function(side) {\r\n side = side || this._positionSide;\r\n return \"top\" === side || \"bottom\" === side\r\n },\r\n _isHorizontalSide: function(side) {\r\n side = side || this._positionSide;\r\n return \"left\" === side || \"right\" === side\r\n },\r\n _clearEventTimeout: function(name) {\r\n clearTimeout(this._timeouts[name])\r\n },\r\n _clearEventsTimeouts: function() {\r\n this._clearEventTimeout(\"show\");\r\n this._clearEventTimeout(\"hide\")\r\n },\r\n _clean: function() {\r\n this._detachEvents(this.option(\"target\"));\r\n this.callBase.apply(this, arguments)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"boundaryOffset\":\r\n case \"arrowPosition\":\r\n case \"arrowOffset\":\r\n this._renderGeometry();\r\n break;\r\n case \"fullScreen\":\r\n if (args.value) {\r\n this.option(\"fullScreen\", false)\r\n }\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachEvents(args.previousValue);\r\n this.callBase(args);\r\n break;\r\n case \"showEvent\":\r\n case \"hideEvent\":\r\n var name = args.name.substring(0, 4);\r\n var event = getEventNameByOption(args.previousValue);\r\n this.hide();\r\n detachEvent(this, this.option(\"target\"), name, event);\r\n attachEvent(this, name);\r\n break;\r\n case \"visible\":\r\n this._clearEventTimeout(args.value ? \"show\" : \"hide\");\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n show: function(target) {\r\n if (target) {\r\n this.option(\"target\", target)\r\n }\r\n return this.callBase()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxPopover\", Popover);\r\nvar _default = Popover;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/widget/ui.search_box_mixin.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _text_box = _interopRequireDefault(require(\"../text_box\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\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 = {\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n searchMode: \"\",\r\n searchExpr: null,\r\n searchValue: \"\",\r\n searchEnabled: false,\r\n searchEditorOptions: {}\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._renderSearch();\r\n this.callBase()\r\n },\r\n _renderSearch: function() {\r\n var $element = this.$element();\r\n var searchEnabled = this.option(\"searchEnabled\");\r\n var searchBoxClassName = this._addWidgetPrefix(\"search\");\r\n var rootElementClassName = this._addWidgetPrefix(\"with-search\");\r\n if (!searchEnabled) {\r\n $element.removeClass(rootElementClassName);\r\n this._removeSearchBox();\r\n return\r\n }\r\n var editorOptions = this._getSearchEditorOptions();\r\n if (this._searchEditor) {\r\n this._searchEditor.option(editorOptions)\r\n } else {\r\n $element.addClass(rootElementClassName);\r\n this._$searchEditorElement = (0, _renderer.default)(\"
\").addClass(searchBoxClassName).prependTo($element);\r\n this._searchEditor = this._createComponent(this._$searchEditorElement, _text_box.default, editorOptions)\r\n }\r\n },\r\n _removeSearchBox: function() {\r\n this._$searchEditorElement && this._$searchEditorElement.remove();\r\n delete this._$searchEditorElement;\r\n delete this._searchEditor\r\n },\r\n _getSearchEditorOptions: function() {\r\n var that = this;\r\n var userEditorOptions = that.option(\"searchEditorOptions\");\r\n var searchText = _message.default.format(\"Search\");\r\n return (0, _extend.extend)({\r\n mode: \"search\",\r\n placeholder: searchText,\r\n tabIndex: that.option(\"tabIndex\"),\r\n value: that.option(\"searchValue\"),\r\n valueChangeEvent: \"input\",\r\n inputAttr: {\r\n \"aria-label\": searchText\r\n },\r\n onValueChanged: function(e) {\r\n var searchTimeout = that.option(\"searchTimeout\");\r\n that._valueChangeDeferred = new _deferred.Deferred;\r\n clearTimeout(that._valueChangeTimeout);\r\n that._valueChangeDeferred.done(function() {\r\n this.option(\"searchValue\", e.value)\r\n }.bind(that));\r\n if (e.event && \"input\" === e.event.type && searchTimeout) {\r\n that._valueChangeTimeout = setTimeout(function() {\r\n that._valueChangeDeferred.resolve()\r\n }, searchTimeout)\r\n } else {\r\n that._valueChangeDeferred.resolve()\r\n }\r\n }\r\n }, userEditorOptions)\r\n },\r\n _getAriaTarget: function() {\r\n if (this.option(\"searchEnabled\")) {\r\n return this._itemContainer(true)\r\n }\r\n return this.$element()\r\n },\r\n _focusTarget: function() {\r\n if (this.option(\"searchEnabled\")) {\r\n return this._itemContainer(true)\r\n }\r\n return this.callBase()\r\n },\r\n _updateFocusState: function(e, isFocused) {\r\n if (this.option(\"searchEnabled\")) {\r\n this._toggleFocusClass(isFocused, this.$element())\r\n }\r\n this.callBase(e, isFocused)\r\n },\r\n getOperationBySearchMode: function(searchMode) {\r\n return \"equals\" === searchMode ? \"=\" : searchMode\r\n },\r\n _cleanAria: function($target) {\r\n this.setAria({\r\n role: null,\r\n activedescendant: null\r\n }, $target);\r\n $target.attr(\"tabIndex\", null)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"searchEnabled\":\r\n case \"searchEditorOptions\":\r\n this._cleanAria(this.option(\"searchEnabled\") ? this.$element() : this._itemContainer());\r\n this._invalidate();\r\n break;\r\n case \"searchExpr\":\r\n case \"searchMode\":\r\n case \"searchValue\":\r\n if (!this._dataSource) {\r\n _ui.default.log(\"W1009\");\r\n return\r\n }\r\n if (\"searchMode\" === args.name) {\r\n this._dataSource.searchOperation(this.getOperationBySearchMode(args.value))\r\n } else {\r\n this._dataSource[args.name](args.value)\r\n }\r\n this._dataSource.load();\r\n break;\r\n case \"searchTimeout\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n focus: function() {\r\n if (!this.option(\"focusedElement\") && this.option(\"searchEnabled\")) {\r\n this._searchEditor && this._searchEditor.focus();\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _refresh: function() {\r\n if (this._valueChangeDeferred) {\r\n this._valueChangeDeferred.resolve()\r\n }\r\n this.callBase()\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/list/ui.list.edit.decorator.switchable.button.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _uiListEdit = require(\"./ui.list.edit.decorator_registry\");\r\nvar _uiListEditDecorator = _interopRequireDefault(require(\"./ui.list.edit.decorator.switchable\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS = \"dx-list-switchable-delete-button-container\";\r\nvar SWITCHABLE_DELETE_BUTTON_WRAPPER_CLASS = \"dx-list-switchable-delete-button-wrapper\";\r\nvar SWITCHABLE_DELETE_BUTTON_INNER_WRAPPER_CLASS = \"dx-list-switchable-delete-button-inner-wrapper\";\r\nvar SWITCHABLE_DELETE_BUTTON_CLASS = \"dx-list-switchable-delete-button\";\r\nvar SWITCHABLE_DELETE_BUTTON_ANIMATION_DURATION = 200;\r\nvar SwitchableButtonEditDecorator = _uiListEditDecorator.default.inherit({\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var $buttonContainer = (0, _renderer.default)(\"
\").addClass(SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS);\r\n var $buttonWrapper = (0, _renderer.default)(\"
\").addClass(SWITCHABLE_DELETE_BUTTON_WRAPPER_CLASS);\r\n var $buttonInnerWrapper = (0, _renderer.default)(\"
\").addClass(SWITCHABLE_DELETE_BUTTON_INNER_WRAPPER_CLASS);\r\n var $button = (0, _renderer.default)(\"
\").addClass(SWITCHABLE_DELETE_BUTTON_CLASS);\r\n this._list._createComponent($button, _button.default, {\r\n text: _message.default.format(\"dxListEditDecorator-delete\"),\r\n type: \"danger\",\r\n onClick: function(e) {\r\n this._deleteItem();\r\n e.event.stopPropagation()\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $buttonContainer.append($buttonWrapper);\r\n $buttonWrapper.append($buttonInnerWrapper);\r\n $buttonInnerWrapper.append($button);\r\n this._$buttonContainer = $buttonContainer\r\n },\r\n _enablePositioning: function($itemElement) {\r\n this.callBase.apply(this, arguments);\r\n _fx.default.stop(this._$buttonContainer, true);\r\n this._$buttonContainer.appendTo($itemElement)\r\n },\r\n _disablePositioning: function() {\r\n this.callBase.apply(this, arguments);\r\n this._$buttonContainer.detach()\r\n },\r\n _animatePrepareDeleteReady: function() {\r\n var rtl = this._isRtlEnabled();\r\n var listWidth = this._list.$element().width();\r\n var buttonWidth = this._buttonWidth();\r\n var fromValue = rtl ? listWidth : -buttonWidth;\r\n var toValue = rtl ? listWidth - buttonWidth : 0;\r\n return _fx.default.animate(this._$buttonContainer, {\r\n type: \"custom\",\r\n duration: SWITCHABLE_DELETE_BUTTON_ANIMATION_DURATION,\r\n from: {\r\n right: fromValue\r\n },\r\n to: {\r\n right: toValue\r\n }\r\n })\r\n },\r\n _animateForgetDeleteReady: function() {\r\n var rtl = this._isRtlEnabled();\r\n var listWidth = this._list.$element().width();\r\n var buttonWidth = this._buttonWidth();\r\n var fromValue = rtl ? listWidth - buttonWidth : 0;\r\n var toValue = rtl ? listWidth : -buttonWidth;\r\n return _fx.default.animate(this._$buttonContainer, {\r\n type: \"custom\",\r\n duration: SWITCHABLE_DELETE_BUTTON_ANIMATION_DURATION,\r\n from: {\r\n right: fromValue\r\n },\r\n to: {\r\n right: toValue\r\n }\r\n })\r\n },\r\n _buttonWidth: function() {\r\n if (!this._buttonContainerWidth) {\r\n this._buttonContainerWidth = this._$buttonContainer.outerWidth()\r\n }\r\n return this._buttonContainerWidth\r\n },\r\n dispose: function() {\r\n if (this._$buttonContainer) {\r\n this._$buttonContainer.remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n});\r\nvar TOGGLE_DELETE_SWITCH_CONTAINER_CLASS = \"dx-list-toggle-delete-switch-container\";\r\nvar TOGGLE_DELETE_SWITCH_CLASS = \"dx-list-toggle-delete-switch\";\r\n(0, _uiListEdit.register)(\"delete\", \"toggle\", SwitchableButtonEditDecorator.inherit({\r\n beforeBag: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container;\r\n var $toggle = (0, _renderer.default)(\"
\").addClass(TOGGLE_DELETE_SWITCH_CLASS);\r\n this._list._createComponent($toggle, _button.default, {\r\n icon: \"toggle-delete\",\r\n onClick: function(e) {\r\n _fx.default.stop(this._$buttonContainer, false);\r\n this._toggleDeleteReady($itemElement);\r\n e.event.stopPropagation()\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $container.addClass(TOGGLE_DELETE_SWITCH_CONTAINER_CLASS);\r\n $container.append($toggle)\r\n }\r\n}));\r\n(0, _uiListEdit.register)(\"delete\", \"slideButton\", SwitchableButtonEditDecorator.inherit({\r\n _shouldHandleSwipe: true,\r\n _swipeEndHandler: function($itemElement, args) {\r\n if (0 !== args.targetOffset) {\r\n _fx.default.stop(this._$buttonContainer, false);\r\n this._toggleDeleteReady($itemElement)\r\n }\r\n return true\r\n }\r\n}));\r\nvar _default = SwitchableButtonEditDecorator;\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.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _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 if (!strategyClass) {\r\n throw Error(\"E1030\", this.option(\"refreshStrategy\"))\r\n }\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/sortable.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _draggable = _interopRequireDefault(require(\"./draggable\"));\r\nvar _element = require(\"../core/element\");\r\nvar _window = require(\"../core/utils/window\");\r\nvar _position = require(\"../core/utils/position\");\r\nvar _translator = require(\"../animation/translator\");\r\nvar _fx = _interopRequireDefault(require(\"../animation/fx\"));\r\nvar _deferred = require(\"../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar SORTABLE = \"dxSortable\";\r\nvar PLACEHOLDER_CLASS = \"placeholder\";\r\nvar CLONE_CLASS = \"clone\";\r\nvar isElementVisible = function(itemElement) {\r\n return (0, _renderer.default)(itemElement).is(\":visible\")\r\n};\r\nvar animate = function(element, config) {\r\n var _config$to, _config$to2;\r\n if (!element) {\r\n return\r\n }\r\n var left = (null === (_config$to = config.to) || void 0 === _config$to ? void 0 : _config$to.left) || 0;\r\n var top = (null === (_config$to2 = config.to) || void 0 === _config$to2 ? void 0 : _config$to2.top) || 0;\r\n element.style.transform = \"translate(\".concat(left, \"px,\").concat(top, \"px)\");\r\n element.style.transition = _fx.default.off ? \"\" : \"transform \".concat(config.duration, \"ms \").concat(config.easing)\r\n};\r\nvar stopAnimation = function(element) {\r\n if (!element) {\r\n return\r\n }\r\n element.style.transform = \"\";\r\n element.style.transition = \"\"\r\n};\r\n\r\nfunction getScrollableBoundary($scrollable) {\r\n var offset = $scrollable.offset();\r\n var style = $scrollable[0].style;\r\n var paddingLeft = parseFloat(style.paddingLeft) || 0;\r\n var paddingRight = parseFloat(style.paddingRight) || 0;\r\n var paddingTop = parseFloat(style.paddingTop) || 0;\r\n var width = $scrollable[0].clientWidth - (paddingLeft + paddingRight);\r\n var height = $scrollable.height();\r\n var left = offset.left + paddingLeft;\r\n var top = offset.top + paddingTop;\r\n return {\r\n left: left,\r\n right: left + width,\r\n top: top,\r\n bottom: top + height\r\n }\r\n}\r\nvar Sortable = _draggable.default.inherit({\r\n _init: function() {\r\n this.callBase();\r\n this._sourceScrollHandler = this._handleSourceScroll.bind(this);\r\n this._sourceScrollableInfo = null\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n clone: true,\r\n filter: \"> *\",\r\n itemOrientation: \"vertical\",\r\n dropFeedbackMode: \"push\",\r\n allowDropInsideItem: false,\r\n allowReordering: true,\r\n moveItemOnDrop: false,\r\n onDragChange: null,\r\n onAdd: null,\r\n onRemove: null,\r\n onReorder: null,\r\n onPlaceholderPrepared: null,\r\n animation: {\r\n type: \"slide\",\r\n duration: 300,\r\n easing: \"ease\"\r\n },\r\n fromIndex: null,\r\n toIndex: null,\r\n dropInsideItem: false,\r\n itemPoints: null,\r\n fromIndexOffset: 0,\r\n offset: 0,\r\n autoUpdate: false,\r\n draggableElementSize: 0\r\n })\r\n },\r\n reset: function() {\r\n this.option({\r\n dropInsideItem: false,\r\n toIndex: null,\r\n fromIndex: null,\r\n itemPoints: null,\r\n fromIndexOffset: 0,\r\n draggableElementSize: 0\r\n });\r\n if (this._$placeholderElement) {\r\n this._$placeholderElement.remove()\r\n }\r\n this._$placeholderElement = null;\r\n if (!this._isIndicateMode() && this._$modifiedItem) {\r\n this._$modifiedItem.css(\"marginBottom\", this._modifiedItemMargin);\r\n this._$modifiedItem = null\r\n }\r\n },\r\n _getPrevVisibleItem: function(items, index) {\r\n return items.slice(0, index).reverse().filter(isElementVisible)[0]\r\n },\r\n _dragStartHandler: function(e) {\r\n this.callBase.apply(this, arguments);\r\n if (true === e.cancel) {\r\n return\r\n }\r\n var $sourceElement = this._getSourceElement();\r\n this._updateItemPoints();\r\n this._subscribeToSourceScroll(e);\r\n this.option(\"fromIndex\", this._getElementIndex($sourceElement));\r\n this.option(\"fromIndexOffset\", this.option(\"offset\"))\r\n },\r\n _dragEndHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._unsubscribeFromSourceScroll()\r\n },\r\n _subscribeToSourceScroll: function(e) {\r\n var $scrollable = this._getScrollable((0, _renderer.default)(e.target));\r\n if ($scrollable) {\r\n this._sourceScrollableInfo = {\r\n element: $scrollable,\r\n scrollLeft: $scrollable.scrollLeft(),\r\n scrollTop: $scrollable.scrollTop()\r\n };\r\n _events_engine.default.on($scrollable, \"scroll\", this._sourceScrollHandler)\r\n }\r\n },\r\n _unsubscribeFromSourceScroll: function() {\r\n if (this._sourceScrollableInfo) {\r\n _events_engine.default.off(this._sourceScrollableInfo.element, \"scroll\", this._sourceScrollHandler);\r\n this._sourceScrollableInfo = null\r\n }\r\n },\r\n _handleSourceScroll: function(e) {\r\n var _this = this;\r\n var sourceScrollableInfo = this._sourceScrollableInfo;\r\n if (sourceScrollableInfo) {\r\n [\"scrollLeft\", \"scrollTop\"].forEach(function(scrollProp) {\r\n if (e.target[scrollProp] !== sourceScrollableInfo[scrollProp]) {\r\n var scrollBy = e.target[scrollProp] - sourceScrollableInfo[scrollProp];\r\n _this._correctItemPoints(scrollBy);\r\n sourceScrollableInfo[scrollProp] = e.target[scrollProp]\r\n }\r\n })\r\n }\r\n },\r\n _dragEnterHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n if (this === this._getSourceDraggable()) {\r\n return\r\n }\r\n this._updateItemPoints();\r\n this.option(\"fromIndex\", -1);\r\n if (!this._isIndicateMode()) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n var lastItemPoint = itemPoints[itemPoints.length - 1];\r\n if (lastItemPoint) {\r\n var $element = this.$element();\r\n var $sourceElement = this._getSourceElement();\r\n var isVertical = this._isVerticalOrientation();\r\n var sourceElementSize = isVertical ? $sourceElement.outerHeight(true) : $sourceElement.outerWidth(true);\r\n var scrollSize = $element.get(0)[isVertical ? \"scrollHeight\" : \"scrollWidth\"];\r\n var scrollPosition = $element.get(0)[isVertical ? \"scrollTop\" : \"scrollLeft\"];\r\n var positionProp = isVertical ? \"top\" : \"left\";\r\n var lastPointPosition = lastItemPoint[positionProp];\r\n var elementPosition = $element.offset()[positionProp];\r\n var freeSize = elementPosition + scrollSize - scrollPosition - lastPointPosition;\r\n if (freeSize < sourceElementSize) {\r\n if (isVertical) {\r\n var items = this._getItems();\r\n var $lastItem = (0, _renderer.default)(this._getPrevVisibleItem(items));\r\n this._$modifiedItem = $lastItem;\r\n this._modifiedItemMargin = $lastItem.get(0).style.marginBottom;\r\n $lastItem.css(\"marginBottom\", sourceElementSize - freeSize);\r\n var $sortable = $lastItem.closest(\".dx-sortable\");\r\n var sortable = $sortable.data(\"dxScrollable\") || $sortable.data(\"dxScrollView\");\r\n sortable && sortable.update()\r\n }\r\n }\r\n }\r\n }\r\n },\r\n dragEnter: function() {\r\n if (this !== this._getTargetDraggable()) {\r\n this.option(\"toIndex\", -1)\r\n }\r\n },\r\n dragLeave: function() {\r\n if (this !== this._getTargetDraggable()) {\r\n this.option(\"toIndex\", this.option(\"fromIndex\"))\r\n }\r\n },\r\n _isInsideTargetDraggable: function(event) {\r\n var $targetDraggable = this._getTargetDraggable().$element();\r\n var $scrollable = this._getScrollable($targetDraggable);\r\n if ($scrollable) {\r\n var _getScrollableBoundar = getScrollableBoundary($scrollable),\r\n left = _getScrollableBoundar.left,\r\n right = _getScrollableBoundar.right,\r\n top = _getScrollableBoundar.top,\r\n bottom = _getScrollableBoundar.bottom;\r\n var validX = left <= event.pageX && event.pageX <= right;\r\n var validY = top <= event.pageY && event.pageY <= bottom;\r\n return validY && validX\r\n }\r\n return true\r\n },\r\n dragEnd: function(sourceEvent) {\r\n var $sourceElement = this._getSourceElement();\r\n var sourceDraggable = this._getSourceDraggable();\r\n var isSourceDraggable = sourceDraggable.NAME !== this.NAME;\r\n var toIndex = this.option(\"toIndex\");\r\n var isInsideTargetDraggable = this._isInsideTargetDraggable(sourceEvent.event);\r\n if (null !== toIndex && toIndex >= 0 && isInsideTargetDraggable) {\r\n var cancelAdd;\r\n var cancelRemove;\r\n if (sourceDraggable !== this) {\r\n cancelAdd = this._fireAddEvent(sourceEvent);\r\n if (!cancelAdd) {\r\n cancelRemove = this._fireRemoveEvent(sourceEvent)\r\n }\r\n }\r\n if (isSourceDraggable) {\r\n (0, _translator.resetPosition)($sourceElement)\r\n }\r\n if (this.option(\"moveItemOnDrop\")) {\r\n !cancelAdd && this._moveItem($sourceElement, toIndex, cancelRemove)\r\n }\r\n if (sourceDraggable === this) {\r\n return this._fireReorderEvent(sourceEvent)\r\n }\r\n }\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n dragMove: function(e) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n if (!itemPoints) {\r\n return\r\n }\r\n var isVertical = this._isVerticalOrientation();\r\n var axisName = isVertical ? \"top\" : \"left\";\r\n var cursorPosition = isVertical ? e.pageY : e.pageX;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var itemPoint;\r\n for (var i = itemPoints.length - 1; i >= 0; i--) {\r\n var centerPosition = itemPoints[i + 1] && (itemPoints[i][axisName] + itemPoints[i + 1][axisName]) / 2;\r\n if ((!isVertical && rtlEnabled ? cursorPosition > centerPosition : centerPosition > cursorPosition) || void 0 === centerPosition) {\r\n itemPoint = itemPoints[i]\r\n } else {\r\n break\r\n }\r\n }\r\n if (itemPoint) {\r\n this._updatePlaceholderPosition(e, itemPoint);\r\n if (this._verticalScrollHelper.isScrolling() && this._isIndicateMode()) {\r\n this._movePlaceholder()\r\n }\r\n }\r\n },\r\n _isIndicateMode: function() {\r\n return \"indicate\" === this.option(\"dropFeedbackMode\") || this.option(\"allowDropInsideItem\")\r\n },\r\n _createPlaceholder: function() {\r\n var $placeholderContainer;\r\n if (this._isIndicateMode()) {\r\n $placeholderContainer = (0, _renderer.default)(\"
\").addClass(this._addWidgetPrefix(PLACEHOLDER_CLASS)).insertBefore(this._getSourceDraggable()._$dragElement)\r\n }\r\n this._$placeholderElement = $placeholderContainer;\r\n return $placeholderContainer\r\n },\r\n _getItems: function() {\r\n var itemsSelector = this._getItemsSelector();\r\n return this._$content().find(itemsSelector).not(\".\" + this._addWidgetPrefix(PLACEHOLDER_CLASS)).not(\".\" + this._addWidgetPrefix(CLONE_CLASS)).toArray()\r\n },\r\n _allowReordering: function() {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n return sourceDraggable !== targetDraggable || this.option(\"allowReordering\")\r\n },\r\n _isValidPoint: function(visibleIndex, draggableVisibleIndex, dropInsideItem) {\r\n var allowDropInsideItem = this.option(\"allowDropInsideItem\");\r\n var allowReordering = dropInsideItem || this._allowReordering();\r\n if (!allowReordering && (0 !== visibleIndex || !allowDropInsideItem)) {\r\n return false\r\n }\r\n if (!this._isIndicateMode()) {\r\n return true\r\n }\r\n return draggableVisibleIndex === -1 || visibleIndex !== draggableVisibleIndex && (dropInsideItem || visibleIndex !== draggableVisibleIndex + 1)\r\n },\r\n _getItemPoints: function() {\r\n var that = this;\r\n var result = [];\r\n var $item;\r\n var offset;\r\n var itemWidth;\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var isVertical = that._isVerticalOrientation();\r\n var itemElements = that._getItems();\r\n var visibleItemElements = itemElements.filter(isElementVisible);\r\n var visibleItemCount = visibleItemElements.length;\r\n var $draggableItem = this._getDraggableElement();\r\n var draggableVisibleIndex = visibleItemElements.indexOf($draggableItem.get(0));\r\n if (visibleItemCount) {\r\n for (var i = 0; i <= visibleItemCount; i++) {\r\n var needCorrectLeftPosition = !isVertical && rtlEnabled ^ i === visibleItemCount;\r\n var needCorrectTopPosition = isVertical && i === visibleItemCount;\r\n if (i < visibleItemCount) {\r\n $item = (0, _renderer.default)(visibleItemElements[i]);\r\n offset = $item.offset();\r\n itemWidth = $item.outerWidth()\r\n }\r\n result.push({\r\n dropInsideItem: false,\r\n left: offset.left + (needCorrectLeftPosition ? itemWidth : 0),\r\n top: offset.top + (needCorrectTopPosition ? result[i - 1].height : 0),\r\n index: i === visibleItemCount ? itemElements.length : itemElements.indexOf($item.get(0)),\r\n $item: $item,\r\n width: $item.outerWidth(),\r\n height: $item.outerHeight(),\r\n isValid: that._isValidPoint(i, draggableVisibleIndex)\r\n })\r\n }\r\n if (this.option(\"allowDropInsideItem\")) {\r\n var points = result;\r\n result = [];\r\n for (var _i = 0; _i < points.length; _i++) {\r\n result.push(points[_i]);\r\n if (points[_i + 1]) {\r\n result.push((0, _extend.extend)({}, points[_i], {\r\n dropInsideItem: true,\r\n top: Math.floor((points[_i].top + points[_i + 1].top) / 2),\r\n left: Math.floor((points[_i].left + points[_i + 1].left) / 2),\r\n isValid: this._isValidPoint(_i, draggableVisibleIndex, true)\r\n }))\r\n }\r\n }\r\n }\r\n } else {\r\n result.push({\r\n dropInsideItem: false,\r\n index: 0,\r\n isValid: true\r\n })\r\n }\r\n return result\r\n },\r\n _updateItemPoints: function(forceUpdate) {\r\n if (forceUpdate || this.option(\"autoUpdate\") || !this.option(\"itemPoints\")) {\r\n this.option(\"itemPoints\", this._getItemPoints())\r\n }\r\n },\r\n _correctItemPoints: function(scrollBy) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n if (scrollBy && itemPoints && !this.option(\"autoUpdate\")) {\r\n var isVertical = this._isVerticalOrientation();\r\n var positionPropName = isVertical ? \"top\" : \"left\";\r\n itemPoints.forEach(function(itemPoint) {\r\n itemPoint[positionPropName] -= scrollBy\r\n })\r\n }\r\n },\r\n _getElementIndex: function($itemElement) {\r\n return this._getItems().indexOf($itemElement.get(0))\r\n },\r\n _getDragTemplateArgs: function($element) {\r\n var args = this.callBase.apply(this, arguments);\r\n args.model.fromIndex = this._getElementIndex($element);\r\n return args\r\n },\r\n _togglePlaceholder: function(value) {\r\n this._$placeholderElement && this._$placeholderElement.toggle(value)\r\n },\r\n _isVerticalOrientation: function() {\r\n return \"vertical\" === this.option(\"itemOrientation\")\r\n },\r\n _normalizeToIndex: function(toIndex, dropInsideItem) {\r\n var isAnotherDraggable = this._getSourceDraggable() !== this._getTargetDraggable();\r\n var fromIndex = this.option(\"fromIndex\");\r\n if (null === toIndex) {\r\n return fromIndex\r\n }\r\n return Math.max(isAnotherDraggable || fromIndex >= toIndex || dropInsideItem ? toIndex : toIndex - 1, 0)\r\n },\r\n _updatePlaceholderPosition: function(e, itemPoint) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var toIndex = this._normalizeToIndex(itemPoint.index, itemPoint.dropInsideItem);\r\n var eventArgs = (0, _extend.extend)(this._getEventArgs(e), {\r\n toIndex: toIndex,\r\n dropInsideItem: itemPoint.dropInsideItem\r\n });\r\n itemPoint.isValid && this._getAction(\"onDragChange\")(eventArgs);\r\n if (eventArgs.cancel || !itemPoint.isValid) {\r\n if (!itemPoint.isValid) {\r\n this.option({\r\n dropInsideItem: false,\r\n toIndex: null\r\n })\r\n }\r\n return\r\n }\r\n this.option({\r\n dropInsideItem: itemPoint.dropInsideItem,\r\n toIndex: itemPoint.index\r\n });\r\n this._getAction(\"onPlaceholderPrepared\")((0, _extend.extend)(this._getEventArgs(e), {\r\n placeholderElement: (0, _element.getPublicElement)(this._$placeholderElement),\r\n dragElement: (0, _element.getPublicElement)(sourceDraggable._$dragElement)\r\n }));\r\n this._updateItemPoints()\r\n },\r\n _makeWidthCorrection: function($item, width) {\r\n this._$scrollable = this._getScrollable($item);\r\n if (this._$scrollable && this._$scrollable.width() < width) {\r\n var scrollableWidth = this._$scrollable.width();\r\n var offsetLeft = $item.offset().left - this._$scrollable.offset().left;\r\n var offsetRight = scrollableWidth - $item.outerWidth() - offsetLeft;\r\n if (offsetLeft > 0) {\r\n width = scrollableWidth - offsetLeft\r\n } else {\r\n if (offsetRight > 0) {\r\n width = scrollableWidth - offsetRight\r\n } else {\r\n width = scrollableWidth\r\n }\r\n }\r\n }\r\n return width\r\n },\r\n _updatePlaceholderSizes: function($placeholderElement, itemElement) {\r\n var that = this;\r\n var dropInsideItem = that.option(\"dropInsideItem\");\r\n var $item = (0, _renderer.default)(itemElement);\r\n var isVertical = that._isVerticalOrientation();\r\n var width = \"\";\r\n var height = \"\";\r\n $placeholderElement.toggleClass(that._addWidgetPrefix(\"placeholder-inside\"), dropInsideItem);\r\n if (isVertical || dropInsideItem) {\r\n width = $item.outerWidth()\r\n }\r\n if (!isVertical || dropInsideItem) {\r\n height = $item.outerHeight()\r\n }\r\n width = that._makeWidthCorrection($item, width);\r\n $placeholderElement.css({\r\n width: width,\r\n height: height\r\n })\r\n },\r\n _moveItem: function($itemElement, index, cancelRemove) {\r\n var $prevTargetItemElement;\r\n var $itemElements = this._getItems();\r\n var $targetItemElement = $itemElements[index];\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (cancelRemove) {\r\n $itemElement = $itemElement.clone();\r\n sourceDraggable._toggleDragSourceClass(false, $itemElement)\r\n }\r\n if (!$targetItemElement) {\r\n $prevTargetItemElement = $itemElements[index - 1]\r\n }\r\n this._moveItemCore($itemElement, $targetItemElement, $prevTargetItemElement)\r\n },\r\n _moveItemCore: function($targetItem, item, prevItem) {\r\n if (!item && !prevItem) {\r\n $targetItem.appendTo(this.$element())\r\n } else {\r\n if (prevItem) {\r\n $targetItem.insertAfter((0, _renderer.default)(prevItem))\r\n } else {\r\n $targetItem.insertBefore((0, _renderer.default)(item))\r\n }\r\n }\r\n },\r\n _getDragStartArgs: function(e, $itemElement) {\r\n return (0, _extend.extend)(this.callBase.apply(this, arguments), {\r\n fromIndex: this._getElementIndex($itemElement)\r\n })\r\n },\r\n _getEventArgs: function(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n var dropInsideItem = targetDraggable.option(\"dropInsideItem\");\r\n return (0, _extend.extend)(this.callBase.apply(this, arguments), {\r\n fromIndex: sourceDraggable.option(\"fromIndex\"),\r\n toIndex: this._normalizeToIndex(targetDraggable.option(\"toIndex\"), dropInsideItem),\r\n dropInsideItem: dropInsideItem\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n var _this2 = this;\r\n var name = args.name;\r\n switch (name) {\r\n case \"onDragChange\":\r\n case \"onPlaceholderPrepared\":\r\n case \"onAdd\":\r\n case \"onRemove\":\r\n case \"onReorder\":\r\n this[\"_\" + name + \"Action\"] = this._createActionByOption(name);\r\n break;\r\n case \"itemOrientation\":\r\n case \"allowDropInsideItem\":\r\n case \"moveItemOnDrop\":\r\n case \"dropFeedbackMode\":\r\n case \"itemPoints\":\r\n case \"animation\":\r\n case \"allowReordering\":\r\n case \"fromIndexOffset\":\r\n case \"offset\":\r\n case \"draggableElementSize\":\r\n case \"autoUpdate\":\r\n break;\r\n case \"fromIndex\":\r\n [false, true].forEach(function(isDragSource) {\r\n var fromIndex = isDragSource ? args.value : args.previousValue;\r\n if (null !== fromIndex) {\r\n var $fromElement = (0, _renderer.default)(_this2._getItems()[fromIndex]);\r\n _this2._toggleDragSourceClass(isDragSource, $fromElement)\r\n }\r\n });\r\n break;\r\n case \"dropInsideItem\":\r\n this._optionChangedDropInsideItem(args);\r\n break;\r\n case \"toIndex\":\r\n this._optionChangedToIndex(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _optionChangedDropInsideItem: function() {\r\n if (this._isIndicateMode() && this._$placeholderElement) {\r\n this._movePlaceholder()\r\n }\r\n },\r\n _isPositionVisible: function(position) {\r\n var $element = this.$element();\r\n var scrollContainer;\r\n if (\"hidden\" !== $element.css(\"overflow\")) {\r\n scrollContainer = $element.get(0)\r\n } else {\r\n $element.parents().each(function() {\r\n if (\"visible\" !== (0, _renderer.default)(this).css(\"overflow\")) {\r\n scrollContainer = this;\r\n return false\r\n }\r\n })\r\n }\r\n if (scrollContainer) {\r\n var clientRect = (0, _position.getBoundingRect)(scrollContainer);\r\n var isVerticalOrientation = this._isVerticalOrientation();\r\n var start = isVerticalOrientation ? \"top\" : \"left\";\r\n var end = isVerticalOrientation ? \"bottom\" : \"right\";\r\n var pageOffset = isVerticalOrientation ? window.pageYOffset : window.pageXOffset;\r\n if (position[start] < clientRect[start] + pageOffset || position[start] > clientRect[end] + pageOffset) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _optionChangedToIndex: function(args) {\r\n var toIndex = args.value;\r\n if (this._isIndicateMode()) {\r\n var showPlaceholder = null !== toIndex && toIndex >= 0;\r\n this._togglePlaceholder(showPlaceholder);\r\n if (showPlaceholder) {\r\n this._movePlaceholder()\r\n }\r\n } else {\r\n this._moveItems(args.previousValue, args.value, args.fullUpdate)\r\n }\r\n },\r\n update: function() {\r\n if (null === this.option(\"fromIndex\") && null === this.option(\"toIndex\")) {\r\n return\r\n }\r\n this._updateItemPoints(true);\r\n this._updateDragSourceClass();\r\n var toIndex = this.option(\"toIndex\");\r\n this._optionChangedToIndex({\r\n value: toIndex,\r\n fullUpdate: true\r\n })\r\n },\r\n _updateDragSourceClass: function() {\r\n var fromIndex = this._getActualFromIndex();\r\n var $fromElement = (0, _renderer.default)(this._getItems()[fromIndex]);\r\n if ($fromElement.length) {\r\n this._$sourceElement = $fromElement;\r\n this._toggleDragSourceClass(true, $fromElement)\r\n }\r\n },\r\n _makeLeftCorrection: function(left, leftMargin) {\r\n var that = this;\r\n var $scrollable = that._$scrollable;\r\n if ($scrollable && that._isVerticalOrientation() && $scrollable.scrollLeft() > leftMargin) {\r\n left += $scrollable.scrollLeft() - leftMargin\r\n }\r\n return left\r\n },\r\n _movePlaceholder: function() {\r\n var that = this;\r\n var $placeholderElement = that._$placeholderElement || that._createPlaceholder();\r\n var items = that._getItems();\r\n var toIndex = that.option(\"toIndex\");\r\n var isVerticalOrientation = that._isVerticalOrientation();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var dropInsideItem = that.option(\"dropInsideItem\");\r\n var position = null;\r\n var leftMargin = 0;\r\n var itemElement = items[toIndex];\r\n if (itemElement) {\r\n var $itemElement = (0, _renderer.default)(itemElement);\r\n position = $itemElement.offset();\r\n leftMargin = parseFloat($itemElement.css(\"marginLeft\"));\r\n if (!isVerticalOrientation && rtlEnabled && !dropInsideItem) {\r\n position.left += $itemElement.outerWidth(true)\r\n }\r\n } else {\r\n var prevVisibleItemElement = itemElement = this._getPrevVisibleItem(items, toIndex);\r\n if (prevVisibleItemElement) {\r\n position = (0, _renderer.default)(prevVisibleItemElement).offset();\r\n if (isVerticalOrientation) {\r\n position.top += (0, _renderer.default)(prevVisibleItemElement).outerHeight(true)\r\n } else {\r\n if (!rtlEnabled) {\r\n position.left += (0, _renderer.default)(prevVisibleItemElement).outerWidth(true)\r\n }\r\n }\r\n }\r\n }\r\n that._updatePlaceholderSizes($placeholderElement, itemElement);\r\n if (position && !that._isPositionVisible(position)) {\r\n position = null\r\n }\r\n if (position) {\r\n position.left = that._makeLeftCorrection(position.left, leftMargin);\r\n that._move(position, $placeholderElement)\r\n }\r\n $placeholderElement.toggle(!!position)\r\n },\r\n _getPositions: function(items, elementSize, fromIndex, toIndex) {\r\n var positions = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var position = 0;\r\n if (null === toIndex || null === fromIndex) {\r\n positions.push(position);\r\n continue\r\n }\r\n if (fromIndex === -1) {\r\n if (i >= toIndex) {\r\n position = elementSize\r\n }\r\n } else {\r\n if (toIndex === -1) {\r\n if (i > fromIndex) {\r\n position = -elementSize\r\n }\r\n } else {\r\n if (fromIndex < toIndex) {\r\n if (i > fromIndex && i < toIndex) {\r\n position = -elementSize\r\n }\r\n } else {\r\n if (fromIndex > toIndex) {\r\n if (i >= toIndex && i < fromIndex) {\r\n position = elementSize\r\n }\r\n }\r\n }\r\n }\r\n }\r\n positions.push(position)\r\n }\r\n return positions\r\n },\r\n _getDraggableElementSize: function(isVerticalOrientation) {\r\n var $draggableItem = this._getDraggableElement();\r\n var size = this.option(\"draggableElementSize\");\r\n if (!size) {\r\n size = isVerticalOrientation ? ($draggableItem.outerHeight() + $draggableItem.outerHeight(true)) / 2 : ($draggableItem.outerWidth() + $draggableItem.outerWidth(true)) / 2;\r\n if (!this.option(\"autoUpdate\")) {\r\n this.option(\"draggableElementSize\", size)\r\n }\r\n }\r\n return size\r\n },\r\n _getActualFromIndex: function() {\r\n var _this$option = this.option(),\r\n fromIndex = _this$option.fromIndex,\r\n fromIndexOffset = _this$option.fromIndexOffset,\r\n offset = _this$option.offset;\r\n return null == fromIndex ? null : fromIndex + fromIndexOffset - offset\r\n },\r\n _moveItems: function(prevToIndex, toIndex, fullUpdate) {\r\n var fromIndex = this._getActualFromIndex();\r\n var isVerticalOrientation = this._isVerticalOrientation();\r\n var positionPropName = isVerticalOrientation ? \"top\" : \"left\";\r\n var elementSize = this._getDraggableElementSize(isVerticalOrientation);\r\n var items = this._getItems();\r\n var prevPositions = this._getPositions(items, elementSize, fromIndex, prevToIndex);\r\n var positions = this._getPositions(items, elementSize, fromIndex, toIndex);\r\n var animationConfig = this.option(\"animation\");\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n for (var i = 0; i < items.length; i++) {\r\n var itemElement = items[i];\r\n var prevPosition = prevPositions[i];\r\n var position = positions[i];\r\n if (null === toIndex || null === fromIndex) {\r\n stopAnimation(itemElement)\r\n } else {\r\n if (prevPosition !== position || fullUpdate && position) {\r\n animate(itemElement, (0, _extend.extend)({}, animationConfig, {\r\n to: _defineProperty({}, positionPropName, !isVerticalOrientation && rtlEnabled ? -position : position)\r\n }))\r\n }\r\n }\r\n }\r\n },\r\n _toggleDragSourceClass: function(value, $element) {\r\n var $sourceElement = $element || this._$sourceElement;\r\n this.callBase.apply(this, arguments);\r\n if (!this._isIndicateMode()) {\r\n $sourceElement && $sourceElement.toggleClass(this._addWidgetPrefix(\"source-hidden\"), value)\r\n }\r\n },\r\n _dispose: function() {\r\n this.reset();\r\n this.callBase()\r\n },\r\n _fireAddEvent: function(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onAdd\")(args);\r\n return args.cancel\r\n },\r\n _fireRemoveEvent: function(sourceEvent) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var args = this._getEventArgs(sourceEvent);\r\n sourceDraggable._getAction(\"onRemove\")(args);\r\n return args.cancel\r\n },\r\n _fireReorderEvent: function(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onReorder\")(args);\r\n return args.promise || (new _deferred.Deferred).resolve()\r\n }\r\n});\r\n(0, _component_registrator.default)(SORTABLE, Sortable);\r\nvar _default = Sortable;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/radio_group/radio_button.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _utils = require(\"../widget/utils.ink_ripple\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _editor = _interopRequireDefault(require(\"../editor/editor\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _click = require(\"../../events/click\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar RADIO_BUTTON_CLASS = \"dx-radiobutton\";\r\nvar RADIO_BUTTON_ICON_CLASS = \"dx-radiobutton-icon\";\r\nvar RADIO_BUTTON_ICON_DOT_CLASS = \"dx-radiobutton-icon-dot\";\r\nvar RADIO_BUTTON_CHECKED_CLASS = \"dx-radiobutton-checked\";\r\nvar RADIO_BUTTON_ICON_CHECKED_CLASS = \"dx-radiobutton-icon-checked\";\r\nvar RadioButton = _editor.default.inherit({\r\n _supportedKeys: function() {\r\n var click = function(e) {\r\n e.preventDefault();\r\n this._clickAction({\r\n event: e\r\n })\r\n };\r\n return (0, _extend.extend)(this.callBase(), {\r\n space: click\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n value: false,\r\n useInkRipple: false\r\n })\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return true\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === _devices.default.real().deviceType && !_devices.default.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RADIO_BUTTON_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderIcon();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this._renderCheckedState(this.option(\"value\"));\r\n this._renderClick();\r\n this.setAria(\"role\", \"radio\")\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = (0, _utils.render)({\r\n waveSizeCoefficient: 3.3,\r\n useHoldAnimation: false,\r\n wavesNumber: 2,\r\n isCentered: true\r\n })\r\n },\r\n _renderInkWave: function(element, dxEvent, doRender, waveIndex) {\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: element,\r\n event: dxEvent,\r\n wave: waveIndex\r\n };\r\n if (doRender) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _updateFocusState: function(e, value) {\r\n this.callBase.apply(this, arguments);\r\n this._renderInkWave(this._$icon, e, value, 0)\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n this._renderInkWave(this._$icon, e, value, 1)\r\n },\r\n _renderIcon: function() {\r\n this._$icon = (0, _renderer.default)(\"
\").addClass(RADIO_BUTTON_ICON_CLASS);\r\n (0, _renderer.default)(\"
\").addClass(RADIO_BUTTON_ICON_DOT_CLASS).appendTo(this._$icon);\r\n this.$element().append(this._$icon)\r\n },\r\n _renderCheckedState: function(checked) {\r\n this.$element().toggleClass(RADIO_BUTTON_CHECKED_CLASS, checked).find(\".\" + RADIO_BUTTON_ICON_CLASS).toggleClass(RADIO_BUTTON_ICON_CHECKED_CLASS, checked);\r\n this.setAria(\"checked\", checked)\r\n },\r\n _renderClick: function() {\r\n var eventName = (0, _index.addNamespace)(_click.name, this.NAME);\r\n this._clickAction = this._createAction(function(args) {\r\n this._clickHandler(args.event)\r\n }.bind(this));\r\n _events_engine.default.off(this.$element(), eventName);\r\n _events_engine.default.on(this.$element(), eventName, function(e) {\r\n this._clickAction({\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _clickHandler: function(e) {\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", true)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"value\":\r\n this._renderCheckedState(args.value);\r\n this.callBase(args);\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)(\"dxRadioButton\", RadioButton);\r\nvar _default = RadioButton;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/toolbar/constants.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.TOOLBAR_CLASS = void 0;\r\nvar TOOLBAR_CLASS = \"dx-toolbar\";\r\nexports.TOOLBAR_CLASS = TOOLBAR_CLASS;\r\n","/**\r\n * DevExtreme (ui/list/ui.list.edit.decorator.switchable.slide.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\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 _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _emitter = require(\"../../events/core/emitter.feedback\");\r\nvar _uiListEdit = _interopRequireDefault(require(\"./ui.list.edit.decorator_menu_helper\"));\r\nvar _uiListEdit2 = require(\"./ui.list.edit.decorator_registry\");\r\nvar _uiListEditDecorator = _interopRequireDefault(require(\"./ui.list.edit.decorator.switchable\"));\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _themes = require(\"../themes\");\r\nvar _action_sheet = _interopRequireDefault(require(\"../action_sheet\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar CLICK_EVENT_NAME = (0, _index.addNamespace)(_click.name, LIST_EDIT_DECORATOR);\r\nvar ACTIVE_EVENT_NAME = (0, _index.addNamespace)(_emitter.active, LIST_EDIT_DECORATOR);\r\nvar SLIDE_MENU_CLASS = \"dx-list-slide-menu\";\r\nvar SLIDE_MENU_WRAPPER_CLASS = \"dx-list-slide-menu-wrapper\";\r\nvar SLIDE_MENU_CONTENT_CLASS = \"dx-list-slide-menu-content\";\r\nvar SLIDE_MENU_BUTTONS_CONTAINER_CLASS = \"dx-list-slide-menu-buttons-container\";\r\nvar SLIDE_MENU_BUTTONS_CLASS = \"dx-list-slide-menu-buttons\";\r\nvar SLIDE_MENU_BUTTON_CLASS = \"dx-list-slide-menu-button\";\r\nvar SLIDE_MENU_BUTTON_MENU_CLASS = \"dx-list-slide-menu-button-menu\";\r\nvar SLIDE_MENU_BUTTON_DELETE_CLASS = \"dx-list-slide-menu-button-delete\";\r\nvar SLIDE_MENU_ANIMATION_DURATION = 400;\r\nvar SLIDE_MENU_ANIMATION_EASING = \"cubic-bezier(0.075, 0.82, 0.165, 1)\";\r\n(0, _uiListEdit2.register)(\"menu\", \"slide\", _uiListEditDecorator.default.inherit({\r\n _shouldHandleSwipe: true,\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._$buttonsContainer = (0, _renderer.default)(\"
\").addClass(SLIDE_MENU_BUTTONS_CONTAINER_CLASS);\r\n _events_engine.default.on(this._$buttonsContainer, ACTIVE_EVENT_NAME, _common.noop);\r\n this._$buttons = (0, _renderer.default)(\"
\").addClass(SLIDE_MENU_BUTTONS_CLASS).appendTo(this._$buttonsContainer);\r\n this._renderMenu();\r\n this._renderDeleteButton()\r\n },\r\n _renderMenu: function() {\r\n if (!this._menuEnabled()) {\r\n return\r\n }\r\n var menuItems = this._menuItems();\r\n if (1 === menuItems.length) {\r\n var menuItem = menuItems[0];\r\n this._renderMenuButton(menuItem.text, function(e) {\r\n e.stopPropagation();\r\n this._fireAction(menuItem)\r\n }.bind(this))\r\n } else {\r\n var $menu = (0, _renderer.default)(\"
\").addClass(SLIDE_MENU_CLASS);\r\n this._menu = this._list._createComponent($menu, _action_sheet.default, {\r\n showTitle: false,\r\n items: menuItems,\r\n onItemClick: function(args) {\r\n this._fireAction(args.itemData)\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $menu.appendTo(this._list.$element());\r\n var $menuButton = this._renderMenuButton(_message.default.format(\"dxListEditDecorator-more\"), function(e) {\r\n e.stopPropagation();\r\n this._menu.show()\r\n }.bind(this));\r\n this._menu.option(\"target\", $menuButton)\r\n }\r\n },\r\n _renderMenuButton: function(text, action) {\r\n var $menuButton = (0, _renderer.default)(\"
\").addClass(SLIDE_MENU_BUTTON_CLASS).addClass(SLIDE_MENU_BUTTON_MENU_CLASS).text(text);\r\n this._$buttons.append($menuButton);\r\n _events_engine.default.on($menuButton, CLICK_EVENT_NAME, action);\r\n return $menuButton\r\n },\r\n _renderDeleteButton: function() {\r\n if (!this._deleteEnabled()) {\r\n return\r\n }\r\n var $deleteButton = (0, _renderer.default)(\"
\").addClass(SLIDE_MENU_BUTTON_CLASS).addClass(SLIDE_MENU_BUTTON_DELETE_CLASS).text((0, _themes.isMaterial)() ? \"\" : _message.default.format(\"dxListEditDecorator-delete\"));\r\n _events_engine.default.on($deleteButton, CLICK_EVENT_NAME, function(e) {\r\n e.stopPropagation();\r\n this._deleteItem()\r\n }.bind(this));\r\n this._$buttons.append($deleteButton)\r\n },\r\n _fireAction: function(menuItem) {\r\n this._fireMenuAction((0, _renderer.default)(this._cachedNode), menuItem.action);\r\n this._cancelDeleteReadyItem()\r\n },\r\n modifyElement: function(config) {\r\n this.callBase.apply(this, arguments);\r\n var $itemElement = config.$itemElement;\r\n $itemElement.addClass(SLIDE_MENU_WRAPPER_CLASS);\r\n var $slideMenuContent = (0, _renderer.default)(\"
\").addClass(SLIDE_MENU_CONTENT_CLASS);\r\n $itemElement.wrapInner($slideMenuContent)\r\n },\r\n _getDeleteButtonContainer: function() {\r\n return this._$buttonsContainer\r\n },\r\n handleClick: function(_, e) {\r\n if ((0, _renderer.default)(e.target).closest(\".\" + SLIDE_MENU_CONTENT_CLASS).length) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return false\r\n },\r\n _swipeStartHandler: function($itemElement) {\r\n this._enablePositioning($itemElement);\r\n this._cacheItemData($itemElement);\r\n this._setPositions(this._getPositions(0))\r\n },\r\n _swipeUpdateHandler: function($itemElement, args) {\r\n var rtl = this._isRtlEnabled();\r\n var signCorrection = rtl ? -1 : 1;\r\n var isItemReadyToDelete = this._isReadyToDelete($itemElement);\r\n var moveJustStarted = this._getCurrentPositions().content === this._getStartPositions().content;\r\n if (moveJustStarted && !isItemReadyToDelete && args.offset * signCorrection > 0) {\r\n args.cancel = true;\r\n return\r\n }\r\n var offset = this._cachedItemWidth * args.offset;\r\n var startOffset = isItemReadyToDelete ? -this._cachedButtonWidth * signCorrection : 0;\r\n var correctedOffset = (offset + startOffset) * signCorrection;\r\n var percent = correctedOffset < 0 ? Math.abs((offset + startOffset) / this._cachedButtonWidth) : 0;\r\n this._setPositions(this._getPositions(percent));\r\n return true\r\n },\r\n _getStartPositions: function() {\r\n var rtl = this._isRtlEnabled();\r\n var signCorrection = rtl ? -1 : 1;\r\n return {\r\n content: 0,\r\n buttonsContainer: rtl ? -this._cachedButtonWidth : this._cachedItemWidth,\r\n buttons: -this._cachedButtonWidth * signCorrection\r\n }\r\n },\r\n _getPositions: function(percent) {\r\n var rtl = this._isRtlEnabled();\r\n var signCorrection = rtl ? -1 : 1;\r\n var startPositions = this._getStartPositions();\r\n return {\r\n content: startPositions.content - percent * this._cachedButtonWidth * signCorrection,\r\n buttonsContainer: startPositions.buttonsContainer - Math.min(percent, 1) * this._cachedButtonWidth * signCorrection,\r\n buttons: startPositions.buttons + Math.min(percent, 1) * this._cachedButtonWidth * signCorrection\r\n }\r\n },\r\n _getCurrentPositions: function() {\r\n return {\r\n content: (0, _translator.locate)(this._$cachedContent).left,\r\n buttonsContainer: (0, _translator.locate)(this._$buttonsContainer).left,\r\n buttons: (0, _translator.locate)(this._$buttons).left\r\n }\r\n },\r\n _setPositions: function(positions) {\r\n (0, _translator.move)(this._$cachedContent, {\r\n left: positions.content\r\n });\r\n (0, _translator.move)(this._$buttonsContainer, {\r\n left: positions.buttonsContainer\r\n });\r\n (0, _translator.move)(this._$buttons, {\r\n left: positions.buttons\r\n })\r\n },\r\n _cacheItemData: function($itemElement) {\r\n if ($itemElement[0] === this._cachedNode) {\r\n return\r\n }\r\n this._$cachedContent = $itemElement.find(\".\" + SLIDE_MENU_CONTENT_CLASS);\r\n this._cachedItemWidth = $itemElement.outerWidth();\r\n this._cachedButtonWidth = this._cachedButtonWidth || this._$buttons.outerWidth();\r\n this._$buttonsContainer.width(this._cachedButtonWidth);\r\n if (this._$cachedContent.length) {\r\n this._cachedNode = $itemElement[0]\r\n }\r\n },\r\n _minButtonContainerLeftOffset: function() {\r\n return this._cachedItemWidth - this._cachedButtonWidth\r\n },\r\n _swipeEndHandler: function($itemElement, args) {\r\n this._cacheItemData($itemElement);\r\n var signCorrection = this._isRtlEnabled() ? 1 : -1;\r\n var offset = this._cachedItemWidth * args.offset;\r\n var endedAtReadyToDelete = !this._isReadyToDelete($itemElement) && offset * signCorrection > .2 * this._cachedButtonWidth;\r\n var readyToDelete = args.targetOffset === signCorrection && endedAtReadyToDelete;\r\n this._toggleDeleteReady($itemElement, readyToDelete);\r\n return true\r\n },\r\n _enablePositioning: function($itemElement) {\r\n _fx.default.stop(this._$cachedContent, true);\r\n this.callBase.apply(this, arguments);\r\n this._$buttonsContainer.appendTo($itemElement)\r\n },\r\n _disablePositioning: function() {\r\n this.callBase.apply(this, arguments);\r\n this._$buttonsContainer.detach()\r\n },\r\n _animatePrepareDeleteReady: function() {\r\n return this._animateToPositions(this._getPositions(1))\r\n },\r\n _animateForgetDeleteReady: function($itemElement) {\r\n this._cacheItemData($itemElement);\r\n return this._animateToPositions(this._getPositions(0))\r\n },\r\n _animateToPositions: function(positions) {\r\n var that = this;\r\n var currentPosition = this._getCurrentPositions();\r\n var durationTimePart = Math.min(Math.abs(currentPosition.content - positions.content) / this._cachedButtonWidth, 1);\r\n return _fx.default.animate(this._$cachedContent, {\r\n from: currentPosition,\r\n to: positions,\r\n easing: SLIDE_MENU_ANIMATION_EASING,\r\n duration: SLIDE_MENU_ANIMATION_DURATION * durationTimePart,\r\n strategy: \"frame\",\r\n draw: function(positions) {\r\n that._setPositions(positions)\r\n }\r\n })\r\n },\r\n dispose: function() {\r\n if (this._menu) {\r\n this._menu.$element().remove()\r\n }\r\n if (this._$buttonsContainer) {\r\n this._$buttonsContainer.remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n}).include(_uiListEdit.default));\r\n","/**\r\n * DevExtreme (ui/list/ui.list.edit.decorator_registry.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.register = register;\r\nexports.registry = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar registry = {};\r\nexports.registry = registry;\r\n\r\nfunction register(option, type, decoratorClass) {\r\n var decoratorsRegistry = registry;\r\n var decoratorConfig = {};\r\n decoratorConfig[option] = decoratorsRegistry[option] ? decoratorsRegistry[option] : {};\r\n decoratorConfig[option][type] = decoratorClass;\r\n decoratorsRegistry = (0, _extend.extend)(decoratorsRegistry, decoratorConfig)\r\n}\r\n","/**\r\n * DevExtreme (ui/draggable.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _string = require(\"../core/utils/string\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _translator = require(\"../animation/translator\");\r\nvar _animator = _interopRequireDefault(require(\"./scroll_view/animator\"));\r\nvar _browser = _interopRequireDefault(require(\"../core/utils/browser\"));\r\nvar _inflector = require(\"../core/utils/inflector\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _dom_component = _interopRequireDefault(require(\"../core/dom_component\"));\r\nvar _element = require(\"../core/element\");\r\nvar _index = require(\"../events/utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../events/pointer\"));\r\nvar _drag = require(\"../events/drag\");\r\nvar _position = _interopRequireDefault(require(\"../animation/position\"));\r\nvar _type = require(\"../core/utils/type\");\r\nvar _common = require(\"../core/utils/common\");\r\nvar _view_port = require(\"../core/utils/view_port\");\r\nvar _empty_template = require(\"../core/templates/empty_template\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _position2 = require(\"../core/utils/position\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar DRAGGABLE = \"dxDraggable\";\r\nvar DRAGSTART_EVENT_NAME = (0, _index.addNamespace)(_drag.start, DRAGGABLE);\r\nvar DRAG_EVENT_NAME = (0, _index.addNamespace)(_drag.move, DRAGGABLE);\r\nvar DRAGEND_EVENT_NAME = (0, _index.addNamespace)(_drag.end, DRAGGABLE);\r\nvar DRAG_ENTER_EVENT_NAME = (0, _index.addNamespace)(_drag.enter, DRAGGABLE);\r\nvar DRAGEND_LEAVE_EVENT_NAME = (0, _index.addNamespace)(_drag.leave, DRAGGABLE);\r\nvar POINTERDOWN_EVENT_NAME = (0, _index.addNamespace)(_pointer.default.down, DRAGGABLE);\r\nvar CLONE_CLASS = \"clone\";\r\nvar targetDraggable;\r\nvar sourceDraggable;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar getMousePosition = function(event) {\r\n return {\r\n x: event.pageX - (0, _renderer.default)(window).scrollLeft(),\r\n y: event.pageY - (0, _renderer.default)(window).scrollTop()\r\n }\r\n};\r\nvar GESTURE_COVER_CLASS = \"dx-gesture-cover\";\r\nvar ScrollHelper = function() {\r\n function ScrollHelper(orientation, component) {\r\n this._preventScroll = true;\r\n this._component = component;\r\n if (\"vertical\" === orientation) {\r\n this._scrollValue = \"scrollTop\";\r\n this._overFlowAttr = \"overflowY\";\r\n this._sizeAttr = \"height\";\r\n this._scrollSizeProp = \"scrollHeight\";\r\n this._clientSizeProp = \"clientHeight\";\r\n this._limitProps = {\r\n start: \"top\",\r\n end: \"bottom\"\r\n }\r\n } else {\r\n this._scrollValue = \"scrollLeft\";\r\n this._overFlowAttr = \"overflowX\";\r\n this._sizeAttr = \"width\";\r\n this._scrollSizeProp = \"scrollWidth\";\r\n this._clientSizeProp = \"clientWidth\";\r\n this._limitProps = {\r\n start: \"left\",\r\n end: \"right\"\r\n }\r\n }\r\n }\r\n var _proto = ScrollHelper.prototype;\r\n _proto.updateScrollable = function(elements, mousePosition) {\r\n var that = this;\r\n if (!elements.some(function(element) {\r\n return that._trySetScrollable(element, mousePosition)\r\n })) {\r\n that._$scrollableAtPointer = null;\r\n that._scrollSpeed = 0\r\n }\r\n };\r\n _proto.isScrolling = function() {\r\n return !!this._scrollSpeed\r\n };\r\n _proto.isScrollable = function($element) {\r\n var that = this;\r\n return (\"auto\" === $element.css(that._overFlowAttr) || $element.hasClass(\"dx-scrollable-container\")) && $element.prop(that._scrollSizeProp) > $element[that._sizeAttr]()\r\n };\r\n _proto._trySetScrollable = function(element, mousePosition) {\r\n var that = this;\r\n var $element = (0, _renderer.default)(element);\r\n var distanceToBorders;\r\n var sensitivity = that._component.option(\"scrollSensitivity\");\r\n var isScrollable = that.isScrollable($element);\r\n if (isScrollable) {\r\n distanceToBorders = that._calculateDistanceToBorders($element, mousePosition);\r\n if (sensitivity > distanceToBorders[that._limitProps.start]) {\r\n if (!that._preventScroll) {\r\n that._scrollSpeed = -that._calculateScrollSpeed(distanceToBorders[that._limitProps.start]);\r\n that._$scrollableAtPointer = $element\r\n }\r\n } else {\r\n if (sensitivity > distanceToBorders[that._limitProps.end]) {\r\n if (!that._preventScroll) {\r\n that._scrollSpeed = that._calculateScrollSpeed(distanceToBorders[that._limitProps.end]);\r\n that._$scrollableAtPointer = $element\r\n }\r\n } else {\r\n isScrollable = false;\r\n that._preventScroll = false\r\n }\r\n }\r\n }\r\n return isScrollable\r\n };\r\n _proto._calculateDistanceToBorders = function($area, mousePosition) {\r\n var area = $area.get(0);\r\n var areaBoundingRect;\r\n if (area) {\r\n areaBoundingRect = (0, _position2.getBoundingRect)(area);\r\n return {\r\n left: mousePosition.x - areaBoundingRect.left,\r\n top: mousePosition.y - areaBoundingRect.top,\r\n right: areaBoundingRect.right - mousePosition.x,\r\n bottom: areaBoundingRect.bottom - mousePosition.y\r\n }\r\n } else {\r\n return {}\r\n }\r\n };\r\n _proto._calculateScrollSpeed = function(distance) {\r\n var component = this._component;\r\n var sensitivity = component.option(\"scrollSensitivity\");\r\n var maxSpeed = component.option(\"scrollSpeed\");\r\n return Math.ceil(Math.pow((sensitivity - distance) / sensitivity, 2) * maxSpeed)\r\n };\r\n _proto.scrollByStep = function() {\r\n var that = this;\r\n if (that._$scrollableAtPointer && that._scrollSpeed) {\r\n if (that._$scrollableAtPointer.hasClass(\"dx-scrollable-container\")) {\r\n var $scrollable = that._$scrollableAtPointer.closest(\".dx-scrollable\");\r\n var scrollableInstance = $scrollable.data(\"dxScrollable\") || $scrollable.data(\"dxScrollView\");\r\n if (scrollableInstance) {\r\n var nextScrollPosition = scrollableInstance.scrollOffset()[that._limitProps.start] + that._scrollSpeed;\r\n scrollableInstance.scrollTo(_defineProperty({}, that._limitProps.start, nextScrollPosition))\r\n }\r\n } else {\r\n var _nextScrollPosition = that._$scrollableAtPointer[that._scrollValue]() + that._scrollSpeed;\r\n that._$scrollableAtPointer[that._scrollValue](_nextScrollPosition)\r\n }\r\n var dragMoveArgs = that._component._dragMoveArgs;\r\n if (dragMoveArgs) {\r\n that._component._dragMoveHandler(dragMoveArgs)\r\n }\r\n }\r\n };\r\n _proto.reset = function() {\r\n this._$scrollableAtPointer = null;\r\n this._scrollSpeed = 0;\r\n this._preventScroll = true\r\n };\r\n _proto.isOutsideScrollable = function($scrollable, event) {\r\n if (!$scrollable) {\r\n return false\r\n }\r\n var scrollableSize = (0, _position2.getBoundingRect)($scrollable.get(0));\r\n var start = scrollableSize[this._limitProps.start];\r\n var size = scrollableSize[this._sizeAttr];\r\n var mousePosition = getMousePosition(event);\r\n var location = \"width\" === this._sizeAttr ? mousePosition.x : mousePosition.y;\r\n return location < start || location > start + size\r\n };\r\n return ScrollHelper\r\n}();\r\nvar ScrollAnimator = _animator.default.inherit({\r\n ctor: function(strategy) {\r\n this.callBase();\r\n this._strategy = strategy\r\n },\r\n _step: function() {\r\n var horizontalScrollHelper = this._strategy._horizontalScrollHelper;\r\n var verticalScrollHelper = this._strategy._verticalScrollHelper;\r\n horizontalScrollHelper && horizontalScrollHelper.scrollByStep();\r\n verticalScrollHelper && verticalScrollHelper.scrollByStep()\r\n }\r\n});\r\nvar Draggable = _dom_component.default.inherit({\r\n reset: _common.noop,\r\n dragMove: _common.noop,\r\n dragEnter: _common.noop,\r\n dragLeave: _common.noop,\r\n dragEnd: function(sourceEvent) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable._fireRemoveEvent(sourceEvent);\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n _fireRemoveEvent: _common.noop,\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n onDragStart: null,\r\n onDragMove: null,\r\n onDragEnd: null,\r\n onDragEnter: null,\r\n onDragLeave: null,\r\n onDrop: null,\r\n immediate: true,\r\n dragDirection: \"both\",\r\n boundary: void 0,\r\n boundOffset: 0,\r\n allowMoveByClick: false,\r\n itemData: null,\r\n container: void 0,\r\n dragTemplate: void 0,\r\n contentTemplate: \"content\",\r\n handle: \"\",\r\n filter: \"\",\r\n clone: false,\r\n autoScroll: true,\r\n scrollSpeed: 30,\r\n scrollSensitivity: 60,\r\n group: void 0,\r\n data: void 0\r\n })\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase.apply(this, arguments);\r\n (0, _extend.extend)(this._optionsByReference, {\r\n component: true,\r\n group: true,\r\n itemData: true,\r\n data: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._attachEventHandlers();\r\n this._scrollAnimator = new ScrollAnimator(this);\r\n this._horizontalScrollHelper = new ScrollHelper(\"horizontal\", this);\r\n this._verticalScrollHelper = new ScrollHelper(\"vertical\", this)\r\n },\r\n _normalizeCursorOffset: function(offset) {\r\n if ((0, _type.isObject)(offset)) {\r\n offset = {\r\n h: offset.x,\r\n v: offset.y\r\n }\r\n }\r\n offset = (0, _common.splitPair)(offset).map(function(value) {\r\n return parseFloat(value)\r\n });\r\n return {\r\n left: offset[0],\r\n top: 1 === offset.length ? offset[0] : offset[1]\r\n }\r\n },\r\n _getNormalizedCursorOffset: function(offset, options) {\r\n if ((0, _type.isFunction)(offset)) {\r\n offset = offset.call(this, options)\r\n }\r\n return this._normalizeCursorOffset(offset)\r\n },\r\n _calculateElementOffset: function(options) {\r\n var elementOffset;\r\n var dragElementOffset;\r\n var event = options.event;\r\n var $element = (0, _renderer.default)(options.itemElement);\r\n var $dragElement = (0, _renderer.default)(options.dragElement);\r\n var isCloned = this._dragElementIsCloned();\r\n var cursorOffset = this.option(\"cursorOffset\");\r\n var normalizedCursorOffset = {\r\n left: 0,\r\n top: 0\r\n };\r\n var currentLocate = this._initialLocate = (0, _translator.locate)($dragElement);\r\n if (isCloned || options.initialOffset || cursorOffset) {\r\n elementOffset = options.initialOffset || $element.offset();\r\n if (cursorOffset) {\r\n normalizedCursorOffset = this._getNormalizedCursorOffset(cursorOffset, options);\r\n if (isFinite(normalizedCursorOffset.left)) {\r\n elementOffset.left = event.pageX\r\n }\r\n if (isFinite(normalizedCursorOffset.top)) {\r\n elementOffset.top = event.pageY\r\n }\r\n }\r\n dragElementOffset = $dragElement.offset();\r\n elementOffset.top -= dragElementOffset.top + (normalizedCursorOffset.top || 0) - currentLocate.top;\r\n elementOffset.left -= dragElementOffset.left + (normalizedCursorOffset.left || 0) - currentLocate.left\r\n }\r\n return elementOffset\r\n },\r\n _initPosition: function(options) {\r\n var $dragElement = (0, _renderer.default)(options.dragElement);\r\n var elementOffset = this._calculateElementOffset(options);\r\n if (elementOffset) {\r\n this._move(elementOffset, $dragElement)\r\n }\r\n this._startPosition = (0, _translator.locate)($dragElement)\r\n },\r\n _startAnimator: function() {\r\n if (!this._scrollAnimator.inProgress()) {\r\n this._scrollAnimator.start()\r\n }\r\n },\r\n _stopAnimator: function() {\r\n this._scrollAnimator.stop()\r\n },\r\n _addWidgetPrefix: function(className) {\r\n var componentName = this.NAME;\r\n return (0, _inflector.dasherize)(componentName) + (className ? \"-\" + className : \"\")\r\n },\r\n _getItemsSelector: function() {\r\n return this.option(\"filter\") || \"\"\r\n },\r\n _$content: function() {\r\n var $element = this.$element();\r\n var $wrapper = $element.children(\".dx-template-wrapper\");\r\n return $wrapper.length ? $wrapper : $element\r\n },\r\n _attachEventHandlers: function() {\r\n var _this = this;\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var $element = this._$content();\r\n var itemsSelector = this._getItemsSelector();\r\n var allowMoveByClick = this.option(\"allowMoveByClick\");\r\n var data = {\r\n direction: this.option(\"dragDirection\"),\r\n immediate: this.option(\"immediate\"),\r\n checkDropTarget: function($target, event) {\r\n var targetGroup = _this.option(\"group\");\r\n var sourceGroup = _this._getSourceDraggable().option(\"group\");\r\n var $scrollable = _this._getScrollable($target);\r\n if (_this._verticalScrollHelper.isOutsideScrollable($scrollable, event) || _this._horizontalScrollHelper.isOutsideScrollable($scrollable, event)) {\r\n return false\r\n }\r\n return sourceGroup && sourceGroup === targetGroup\r\n }\r\n };\r\n if (allowMoveByClick) {\r\n $element = this._getArea();\r\n _events_engine.default.on($element, POINTERDOWN_EVENT_NAME, data, this._pointerDownHandler.bind(this))\r\n }\r\n if (\">\" === itemsSelector[0]) {\r\n itemsSelector = itemsSelector.slice(1)\r\n }\r\n _events_engine.default.on($element, DRAGSTART_EVENT_NAME, itemsSelector, data, this._dragStartHandler.bind(this));\r\n _events_engine.default.on($element, DRAG_EVENT_NAME, data, this._dragMoveHandler.bind(this));\r\n _events_engine.default.on($element, DRAGEND_EVENT_NAME, data, this._dragEndHandler.bind(this));\r\n _events_engine.default.on($element, DRAG_ENTER_EVENT_NAME, data, this._dragEnterHandler.bind(this));\r\n _events_engine.default.on($element, DRAGEND_LEAVE_EVENT_NAME, data, this._dragLeaveHandler.bind(this))\r\n },\r\n _dragElementIsCloned: function() {\r\n return this._$dragElement && this._$dragElement.hasClass(this._addWidgetPrefix(CLONE_CLASS))\r\n },\r\n _getDragTemplateArgs: function($element, $container) {\r\n return {\r\n container: (0, _element.getPublicElement)($container),\r\n model: {\r\n itemData: this.option(\"itemData\"),\r\n itemElement: (0, _element.getPublicElement)($element)\r\n }\r\n }\r\n },\r\n _createDragElement: function($element) {\r\n var result = $element;\r\n var clone = this.option(\"clone\");\r\n var $container = this._getContainer();\r\n var template = this.option(\"dragTemplate\");\r\n if (template) {\r\n template = this._getTemplate(template);\r\n result = (0, _renderer.default)(\"
\").appendTo($container);\r\n template.render(this._getDragTemplateArgs($element, result))\r\n } else {\r\n if (clone) {\r\n result = (0, _renderer.default)(\"
\").appendTo($container);\r\n $element.clone().css({\r\n width: $element.css(\"width\"),\r\n height: $element.css(\"height\")\r\n }).appendTo(result)\r\n }\r\n }\r\n return result.toggleClass(this._addWidgetPrefix(CLONE_CLASS), result.get(0) !== $element.get(0)).toggleClass(\"dx-rtl\", this.option(\"rtlEnabled\"))\r\n },\r\n _resetDragElement: function() {\r\n if (this._dragElementIsCloned()) {\r\n this._$dragElement.remove()\r\n } else {\r\n this._toggleDraggingClass(false)\r\n }\r\n this._$dragElement = null\r\n },\r\n _resetSourceElement: function() {\r\n this._toggleDragSourceClass(false);\r\n this._$sourceElement = null\r\n },\r\n _detachEventHandlers: function() {\r\n _events_engine.default.off(this._$content(), \".\" + DRAGGABLE);\r\n _events_engine.default.off(this._getArea(), \".\" + DRAGGABLE)\r\n },\r\n _move: function(position, $element) {\r\n (0, _translator.move)($element || this._$dragElement, position)\r\n },\r\n _getDraggableElement: function(e) {\r\n var $sourceElement = this._getSourceElement();\r\n if ($sourceElement) {\r\n return $sourceElement\r\n }\r\n var allowMoveByClick = this.option(\"allowMoveByClick\");\r\n if (allowMoveByClick) {\r\n return this.$element()\r\n }\r\n var $target = (0, _renderer.default)(e && e.target);\r\n var itemsSelector = this._getItemsSelector();\r\n if (\">\" === itemsSelector[0]) {\r\n var $items = this._$content().find(itemsSelector);\r\n if (!$items.is($target)) {\r\n $target = $target.closest($items)\r\n }\r\n }\r\n return $target\r\n },\r\n _getSourceElement: function() {\r\n var draggable = this._getSourceDraggable();\r\n return draggable._$sourceElement\r\n },\r\n _pointerDownHandler: function(e) {\r\n if ((0, _index.needSkipEvent)(e)) {\r\n return\r\n }\r\n var position = {};\r\n var $element = this.$element();\r\n var dragDirection = this.option(\"dragDirection\");\r\n if (\"horizontal\" === dragDirection || \"both\" === dragDirection) {\r\n position.left = e.pageX - $element.offset().left + (0, _translator.locate)($element).left - $element.width() / 2\r\n }\r\n if (\"vertical\" === dragDirection || \"both\" === dragDirection) {\r\n position.top = e.pageY - $element.offset().top + (0, _translator.locate)($element).top - $element.height() / 2\r\n }\r\n this._move(position, $element);\r\n this._getAction(\"onDragMove\")(this._getEventArgs(e))\r\n },\r\n _isValidElement: function(event, $element) {\r\n var handle = this.option(\"handle\");\r\n var $target = (0, _renderer.default)(event.originalEvent && event.originalEvent.target);\r\n if (handle && !$target.closest(handle).length) {\r\n return false\r\n }\r\n if (!$element.length) {\r\n return false\r\n }\r\n return !$element.is(\".dx-state-disabled, .dx-state-disabled *\")\r\n },\r\n _dragStartHandler: function(e) {\r\n var $element = this._getDraggableElement(e);\r\n if (this._$sourceElement) {\r\n return\r\n }\r\n if (!this._isValidElement(e, $element)) {\r\n e.cancel = true;\r\n return\r\n }\r\n var dragStartArgs = this._getDragStartArgs(e, $element);\r\n this._getAction(\"onDragStart\")(dragStartArgs);\r\n if (dragStartArgs.cancel) {\r\n e.cancel = true;\r\n return\r\n }\r\n this.option(\"itemData\", dragStartArgs.itemData);\r\n this._setSourceDraggable();\r\n this._$sourceElement = $element;\r\n var initialOffset = $element.offset();\r\n var $dragElement = this._$dragElement = this._createDragElement($element);\r\n this._toggleDraggingClass(true);\r\n this._toggleDragSourceClass(true);\r\n this._setGestureCoverCursor($dragElement.children());\r\n var isFixedPosition = \"fixed\" === $dragElement.css(\"position\");\r\n this._initPosition((0, _extend.extend)({}, dragStartArgs, {\r\n dragElement: $dragElement.get(0),\r\n initialOffset: isFixedPosition && initialOffset\r\n }));\r\n var $area = this._getArea();\r\n var areaOffset = this._getAreaOffset($area);\r\n var boundOffset = this._getBoundOffset();\r\n var areaWidth = $area.outerWidth();\r\n var areaHeight = $area.outerHeight();\r\n var elementWidth = $dragElement.width();\r\n var elementHeight = $dragElement.height();\r\n var startOffset = {\r\n left: $dragElement.offset().left - areaOffset.left,\r\n top: $dragElement.offset().top - areaOffset.top\r\n };\r\n if ($area.length) {\r\n e.maxLeftOffset = startOffset.left - boundOffset.left;\r\n e.maxRightOffset = areaWidth - startOffset.left - elementWidth - boundOffset.right;\r\n e.maxTopOffset = startOffset.top - boundOffset.top;\r\n e.maxBottomOffset = areaHeight - startOffset.top - elementHeight - boundOffset.bottom\r\n }\r\n if (this.option(\"autoScroll\")) {\r\n this._startAnimator()\r\n }\r\n },\r\n _getAreaOffset: function($area) {\r\n var offset = $area && _position.default.offset($area);\r\n return offset ? offset : {\r\n left: 0,\r\n top: 0\r\n }\r\n },\r\n _toggleDraggingClass: function(value) {\r\n this._$dragElement && this._$dragElement.toggleClass(this._addWidgetPrefix(\"dragging\"), value)\r\n },\r\n _toggleDragSourceClass: function(value, $element) {\r\n var $sourceElement = $element || this._$sourceElement;\r\n $sourceElement && $sourceElement.toggleClass(this._addWidgetPrefix(\"source\"), value)\r\n },\r\n _setGestureCoverCursor: function($element) {\r\n (0, _renderer.default)(\".\".concat(GESTURE_COVER_CLASS)).css(\"cursor\", $element.css(\"cursor\"))\r\n },\r\n _getBoundOffset: function() {\r\n var boundOffset = this.option(\"boundOffset\");\r\n if ((0, _type.isFunction)(boundOffset)) {\r\n boundOffset = boundOffset.call(this)\r\n }\r\n return (0, _string.quadToObject)(boundOffset)\r\n },\r\n _getArea: function() {\r\n var area = this.option(\"boundary\");\r\n if ((0, _type.isFunction)(area)) {\r\n area = area.call(this)\r\n }\r\n return (0, _renderer.default)(area)\r\n },\r\n _getContainer: function() {\r\n var container = this.option(\"container\");\r\n if (void 0 === container) {\r\n container = (0, _view_port.value)()\r\n }\r\n return (0, _renderer.default)(container)\r\n },\r\n _dragMoveHandler: function(e, scrollBy) {\r\n this._dragMoveArgs = e;\r\n if (!this._$dragElement) {\r\n e.cancel = true;\r\n return\r\n }\r\n var offset = e.offset;\r\n var startPosition = this._startPosition;\r\n this._move({\r\n left: startPosition.left + offset.x,\r\n top: startPosition.top + offset.y\r\n });\r\n if (!scrollBy) {\r\n this._updateScrollable(e)\r\n }\r\n var eventArgs = this._getEventArgs(e);\r\n this._getAction(\"onDragMove\")(eventArgs);\r\n if (true === eventArgs.cancel) {\r\n return\r\n }\r\n var targetDraggable = this._getTargetDraggable();\r\n targetDraggable.dragMove(e, scrollBy)\r\n },\r\n _updateScrollable: function(e) {\r\n var that = this;\r\n if (that.option(\"autoScroll\")) {\r\n var mousePosition = getMousePosition(e);\r\n var allObjects = that.getElementsFromPoint(mousePosition);\r\n that._verticalScrollHelper.updateScrollable(allObjects, mousePosition);\r\n that._horizontalScrollHelper.updateScrollable(allObjects, mousePosition)\r\n }\r\n },\r\n getElementsFromPoint: function(position, dragElement) {\r\n var ownerDocument = (dragElement || this._$dragElement.get(0)).ownerDocument;\r\n if (_browser.default.msie) {\r\n var msElements = ownerDocument.msElementsFromPoint(position.x, position.y);\r\n if (msElements) {\r\n return Array.prototype.slice.call(msElements)\r\n }\r\n return []\r\n }\r\n return ownerDocument.elementsFromPoint(position.x, position.y)\r\n },\r\n _getScrollable: function($element) {\r\n var _this2 = this;\r\n var $scrollable;\r\n $element.parents().toArray().some(function(parent) {\r\n var $parent = (0, _renderer.default)(parent);\r\n if (_this2._horizontalScrollHelper.isScrollable($parent) || _this2._verticalScrollHelper.isScrollable($parent)) {\r\n $scrollable = $parent;\r\n return true\r\n }\r\n });\r\n return $scrollable\r\n },\r\n _defaultActionArgs: function() {\r\n var args = this.callBase.apply(this, arguments);\r\n var component = this.option(\"component\");\r\n if (component) {\r\n args.component = component;\r\n args.element = component.element()\r\n }\r\n return args\r\n },\r\n _getEventArgs: function(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n return {\r\n event: e,\r\n itemData: sourceDraggable.option(\"itemData\"),\r\n itemElement: (0, _element.getPublicElement)(sourceDraggable._$sourceElement),\r\n fromComponent: sourceDraggable.option(\"component\") || sourceDraggable,\r\n toComponent: targetDraggable.option(\"component\") || targetDraggable,\r\n fromData: sourceDraggable.option(\"data\"),\r\n toData: targetDraggable.option(\"data\")\r\n }\r\n },\r\n _getDragStartArgs: function(e, $itemElement) {\r\n var args = this._getEventArgs(e);\r\n return {\r\n event: args.event,\r\n itemData: args.itemData,\r\n itemElement: $itemElement,\r\n fromData: args.fromData\r\n }\r\n },\r\n _revertItemToInitialPosition: function() {\r\n !this._dragElementIsCloned() && this._move(this._initialLocate, this._$sourceElement)\r\n },\r\n _dragEndHandler: function(e) {\r\n var _this3 = this;\r\n var d = new _deferred.Deferred;\r\n var dragEndEventArgs = this._getEventArgs(e);\r\n var dropEventArgs = this._getEventArgs(e);\r\n var targetDraggable = this._getTargetDraggable();\r\n var needRevertPosition = true;\r\n try {\r\n this._getAction(\"onDragEnd\")(dragEndEventArgs)\r\n } finally {\r\n (0, _deferred.when)((0, _deferred.fromPromise)(dragEndEventArgs.cancel)).done(function(cancel) {\r\n if (!cancel) {\r\n if (targetDraggable !== _this3) {\r\n targetDraggable._getAction(\"onDrop\")(dropEventArgs)\r\n }\r\n if (!dropEventArgs.cancel) {\r\n needRevertPosition = false;\r\n (0, _deferred.when)((0, _deferred.fromPromise)(targetDraggable.dragEnd(dragEndEventArgs))).always(d.resolve);\r\n return\r\n }\r\n }\r\n d.resolve()\r\n }).fail(d.resolve);\r\n d.done(function() {\r\n if (needRevertPosition) {\r\n _this3._revertItemToInitialPosition()\r\n }\r\n _this3.reset();\r\n targetDraggable.reset();\r\n _this3._stopAnimator();\r\n _this3._horizontalScrollHelper.reset();\r\n _this3._verticalScrollHelper.reset();\r\n _this3._resetDragElement();\r\n _this3._resetSourceElement();\r\n _this3._resetTargetDraggable();\r\n _this3._resetSourceDraggable()\r\n })\r\n }\r\n },\r\n _isTargetOverAnotherDraggable: function(e) {\r\n var _this4 = this;\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (this === sourceDraggable) {\r\n return false\r\n }\r\n var $dragElement = sourceDraggable._$dragElement;\r\n var $sourceDraggableElement = sourceDraggable.$element();\r\n var $targetDraggableElement = this.$element();\r\n var mousePosition = getMousePosition(e);\r\n var elements = this.getElementsFromPoint(mousePosition, e.target);\r\n var firstWidgetElement = elements.filter(function(element) {\r\n var $element = (0, _renderer.default)(element);\r\n if ($element.hasClass(_this4._addWidgetPrefix())) {\r\n return !$element.closest($dragElement).length\r\n }\r\n })[0];\r\n var $sourceElement = this._getSourceElement();\r\n var isTargetOverItself = firstWidgetElement === $sourceDraggableElement.get(0);\r\n var isTargetOverNestedDraggable = (0, _renderer.default)(firstWidgetElement).closest($sourceElement).length;\r\n return !firstWidgetElement || firstWidgetElement === $targetDraggableElement.get(0) && !isTargetOverItself && !isTargetOverNestedDraggable\r\n },\r\n _dragEnterHandler: function(e) {\r\n this._fireDragEnterEvent(e);\r\n if (this._isTargetOverAnotherDraggable(e)) {\r\n this._setTargetDraggable()\r\n }\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable.dragEnter(e)\r\n },\r\n _dragLeaveHandler: function(e) {\r\n this._fireDragLeaveEvent(e);\r\n this._resetTargetDraggable();\r\n if (this !== this._getSourceDraggable()) {\r\n this.reset()\r\n }\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable.dragLeave(e)\r\n },\r\n _getAction: function(name) {\r\n return this[\"_\" + name + \"Action\"] || this._createActionByOption(name)\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates: function() {\r\n if (!this.option(\"contentTemplate\")) {\r\n return\r\n }\r\n this._templateManager.addDefaultTemplates({\r\n content: new _empty_template.EmptyTemplate\r\n });\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(this._addWidgetPrefix());\r\n var transclude = this._templateManager.anonymousTemplateName === this.option(\"contentTemplate\");\r\n var template = this._getTemplateByOption(\"contentTemplate\");\r\n if (template) {\r\n (0, _renderer.default)(template.render({\r\n container: this.element(),\r\n transclude: transclude\r\n }))\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"onDragStart\":\r\n case \"onDragMove\":\r\n case \"onDragEnd\":\r\n case \"onDrop\":\r\n case \"onDragEnter\":\r\n case \"onDragLeave\":\r\n this[\"_\" + name + \"Action\"] = this._createActionByOption(name);\r\n break;\r\n case \"dragTemplate\":\r\n case \"contentTemplate\":\r\n case \"container\":\r\n case \"clone\":\r\n break;\r\n case \"allowMoveByClick\":\r\n case \"dragDirection\":\r\n case \"disabled\":\r\n case \"boundary\":\r\n case \"filter\":\r\n case \"immediate\":\r\n this._resetDragElement();\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"autoScroll\":\r\n this._verticalScrollHelper.reset();\r\n this._horizontalScrollHelper.reset();\r\n break;\r\n case \"scrollSensitivity\":\r\n case \"scrollSpeed\":\r\n case \"boundOffset\":\r\n case \"handle\":\r\n case \"group\":\r\n case \"data\":\r\n case \"itemData\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getTargetDraggable: function() {\r\n return targetDraggable || this\r\n },\r\n _getSourceDraggable: function() {\r\n return sourceDraggable || this\r\n },\r\n _setTargetDraggable: function() {\r\n var currentGroup = this.option(\"group\");\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (currentGroup && currentGroup === sourceDraggable.option(\"group\")) {\r\n targetDraggable = this\r\n }\r\n },\r\n _setSourceDraggable: function() {\r\n sourceDraggable = this\r\n },\r\n _resetSourceDraggable: function() {\r\n sourceDraggable = null\r\n },\r\n _resetTargetDraggable: function() {\r\n targetDraggable = null\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n this._detachEventHandlers();\r\n this._resetDragElement();\r\n this._resetTargetDraggable();\r\n this._resetSourceDraggable();\r\n this._$sourceElement = null;\r\n this._stopAnimator()\r\n },\r\n _fireDragEnterEvent: function(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onDragEnter\")(args)\r\n },\r\n _fireDragLeaveEvent: function(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onDragLeave\")(args)\r\n }\r\n});\r\n(0, _component_registrator.default)(DRAGGABLE, Draggable);\r\nvar _default = Draggable;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/list/ui.list.edit.search.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _uiList = _interopRequireDefault(require(\"./ui.list.edit\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.search_box_mixin\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ListSearch = _uiList.default.inherit(_ui.default).inherit({\r\n _addWidgetPrefix: function(className) {\r\n return \"dx-list-\" + className\r\n },\r\n _getCombinedFilter: function() {\r\n var filter;\r\n var storeLoadOptions;\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n storeLoadOptions = {\r\n filter: dataSource.filter()\r\n };\r\n dataSource._addSearchFilter(storeLoadOptions);\r\n filter = storeLoadOptions.filter\r\n }\r\n return filter\r\n },\r\n _initDataSource: function() {\r\n var value = this.option(\"searchValue\");\r\n var expr = this.option(\"searchExpr\");\r\n var mode = this.option(\"searchMode\");\r\n this.callBase();\r\n if (this._dataSource) {\r\n value && value.length && this._dataSource.searchValue(value);\r\n mode.length && this._dataSource.searchOperation(_ui.default.getOperationBySearchMode(mode));\r\n expr && this._dataSource.searchExpr(expr)\r\n }\r\n }\r\n});\r\nvar _default = ListSearch;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/list/ui.list.edit.decorator.reorder.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _uiListEdit = require(\"./ui.list.edit.decorator_registry\");\r\nvar _uiListEdit2 = _interopRequireDefault(require(\"./ui.list.edit.decorator\"));\r\nvar _sortable = _interopRequireDefault(require(\"../sortable\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar REORDER_HANDLE_CONTAINER_CLASS = \"dx-list-reorder-handle-container\";\r\nvar REORDER_HANDLE_CLASS = \"dx-list-reorder-handle\";\r\nvar REORDERING_ITEM_GHOST_CLASS = \"dx-list-item-ghost-reordering\";\r\nvar STATE_HOVER_CLASS = \"dx-state-hover\";\r\n(0, _uiListEdit.register)(\"reorder\", \"default\", _uiListEdit2.default.inherit({\r\n _init: function() {\r\n var list = this._list;\r\n this._groupedEnabled = this._list.option(\"grouped\");\r\n this._lockedDrag = false;\r\n var filter = this._groupedEnabled ? \"> .dx-list-group > .dx-list-group-body > .dx-list-item\" : \"> .dx-list-item\";\r\n this._sortable = list._createComponent(list._scrollView.content(), _sortable.default, (0, _extend.extend)({\r\n component: list,\r\n contentTemplate: null,\r\n allowReordering: false,\r\n filter: filter,\r\n container: list.$element(),\r\n dragDirection: list.option(\"itemDragging.group\") ? \"both\" : \"vertical\",\r\n handle: \".\".concat(REORDER_HANDLE_CLASS),\r\n dragTemplate: this._dragTemplate,\r\n onDragStart: this._dragStartHandler.bind(this),\r\n onDragChange: this._dragChangeHandler.bind(this),\r\n onReorder: this._reorderHandler.bind(this)\r\n }, list.option(\"itemDragging\")))\r\n },\r\n afterRender: function() {\r\n this._sortable.update()\r\n },\r\n _dragTemplate: function(e) {\r\n return (0, _renderer.default)(e.itemElement).clone().width((0, _renderer.default)(e.itemElement).width()).addClass(REORDERING_ITEM_GHOST_CLASS).addClass(STATE_HOVER_CLASS)\r\n },\r\n _dragStartHandler: function(e) {\r\n if (this._lockedDrag) {\r\n e.cancel = true;\r\n return\r\n }\r\n },\r\n _dragChangeHandler: function(e) {\r\n if (this._groupedEnabled && !this._sameParent(e.fromIndex, e.toIndex)) {\r\n e.cancel = true;\r\n return\r\n }\r\n },\r\n _sameParent: function(fromIndex, toIndex) {\r\n var $dragging = this._list.getItemElementByFlatIndex(fromIndex);\r\n var $over = this._list.getItemElementByFlatIndex(toIndex);\r\n return $over.parent().get(0) === $dragging.parent().get(0)\r\n },\r\n _reorderHandler: function(e) {\r\n var $targetElement = this._list.getItemElementByFlatIndex(e.toIndex);\r\n this._list.reorderItem((0, _renderer.default)(e.itemElement), $targetElement)\r\n },\r\n afterBag: function(config) {\r\n var _this = this;\r\n var $handle = (0, _renderer.default)(\"
\").addClass(REORDER_HANDLE_CLASS);\r\n _events_engine.default.on($handle, \"dxpointerdown\", function(e) {\r\n _this._lockedDrag = !(0, _index.isMouseEvent)(e)\r\n });\r\n _events_engine.default.on($handle, \"dxhold\", {\r\n timeout: 30\r\n }, function(e) {\r\n e.cancel = true;\r\n _this._lockedDrag = false\r\n });\r\n config.$container.addClass(REORDER_HANDLE_CONTAINER_CLASS).append($handle)\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/list/ui.list.edit.decorator.context.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiListEdit = _interopRequireDefault(require(\"./ui.list.edit.decorator_menu_helper\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _uiListEdit2 = require(\"./ui.list.edit.decorator_registry\");\r\nvar _uiListEdit3 = _interopRequireDefault(require(\"./ui.list.edit.decorator\"));\r\nvar _overlay = _interopRequireDefault(require(\"../overlay\"));\r\nvar _uiList = require(\"./ui.list.base\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar CONTEXTMENU_CLASS = \"dx-list-context-menu\";\r\nvar CONTEXTMENU_MENUCONTENT_CLASS = \"dx-list-context-menucontent\";\r\n(0, _uiListEdit2.register)(\"menu\", \"context\", _uiListEdit3.default.inherit({\r\n _init: function() {\r\n var $menu = (0, _renderer.default)(\"
\").addClass(CONTEXTMENU_CLASS);\r\n this._list.$element().append($menu);\r\n this._menu = this._renderOverlay($menu)\r\n },\r\n _renderOverlay: function($element) {\r\n return this._list._createComponent($element, _overlay.default, {\r\n shading: false,\r\n deferRendering: true,\r\n closeOnTargetScroll: true,\r\n closeOnOutsideClick: function(e) {\r\n return !(0, _renderer.default)(e.target).closest(\".\" + CONTEXTMENU_CLASS).length\r\n },\r\n animation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n height: 0,\r\n opacity: 1\r\n },\r\n to: {\r\n height: function() {\r\n return this._$menuList.outerHeight()\r\n }.bind(this),\r\n opacity: 1\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 0,\r\n from: {\r\n opacity: 1\r\n },\r\n to: {\r\n opacity: 0\r\n }\r\n }\r\n },\r\n height: function() {\r\n return this._$menuList ? this._$menuList.outerHeight() : 0\r\n }.bind(this),\r\n width: function() {\r\n return this._list.$element().outerWidth()\r\n }.bind(this),\r\n onContentReady: this._renderMenuContent.bind(this)\r\n })\r\n },\r\n _renderMenuContent: function(e) {\r\n var $overlayContent = e.component.$content();\r\n var items = this._menuItems().slice();\r\n if (this._deleteEnabled()) {\r\n items.push({\r\n text: _message.default.format(\"dxListEditDecorator-delete\"),\r\n action: this._deleteItem.bind(this)\r\n })\r\n }\r\n this._$menuList = (0, _renderer.default)(\"
\");\r\n this._list._createComponent(this._$menuList, _uiList.ListBase, {\r\n items: items,\r\n onItemClick: this._menuItemClickHandler.bind(this),\r\n height: \"auto\",\r\n integrationOptions: {}\r\n });\r\n $overlayContent.addClass(CONTEXTMENU_MENUCONTENT_CLASS);\r\n $overlayContent.append(this._$menuList)\r\n },\r\n _menuItemClickHandler: function(args) {\r\n this._menu.hide();\r\n this._fireMenuAction(this._$itemWithMenu, args.itemData.action)\r\n },\r\n _deleteItem: function() {\r\n this._list.deleteItem(this._$itemWithMenu)\r\n },\r\n handleContextMenu: function($itemElement) {\r\n this._$itemWithMenu = $itemElement;\r\n this._menu.option({\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: $itemElement,\r\n collision: \"flip\"\r\n }\r\n });\r\n this._menu.show();\r\n return true\r\n },\r\n dispose: function() {\r\n if (this._menu) {\r\n this._menu.$element().remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n}).include(_uiListEdit.default));\r\n","/**\r\n * DevExtreme (ui/collection/ui.collection_widget.async.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"./ui.collection_widget.edit\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\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 AsyncCollectionWidget = _uiCollection_widget.default.inherit({\r\n _initMarkup: function() {\r\n this._deferredItems = [];\r\n this.callBase()\r\n },\r\n _renderItemContent: function(args) {\r\n var renderContentDeferred = new _deferred.Deferred;\r\n var itemDeferred = new _deferred.Deferred;\r\n var that = this;\r\n this._deferredItems[args.index] = itemDeferred;\r\n var $itemContent = this.callBase.call(that, args);\r\n itemDeferred.done(function() {\r\n renderContentDeferred.resolve($itemContent)\r\n });\r\n return renderContentDeferred.promise()\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n var _this = this;\r\n return itemTemplate.render({\r\n model: renderArgs.itemData,\r\n container: renderArgs.container,\r\n index: renderArgs.index,\r\n onRendered: function() {\r\n _this._deferredItems[renderArgs.index].resolve()\r\n }\r\n })\r\n },\r\n _postProcessRenderItems: _common.noop,\r\n _renderItemsAsync: function() {\r\n var _this2 = this;\r\n var d = new _deferred.Deferred;\r\n _deferred.when.apply(this, this._deferredItems).done(function() {\r\n _this2._postProcessRenderItems();\r\n d.resolve()\r\n });\r\n return d.promise()\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._deferredItems = []\r\n }\r\n});\r\nvar _default = AsyncCollectionWidget;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n"],"sourceRoot":""}