{"version":3,"sources":["../node_modules/devextreme/ui/list/ui.list.base.js","../node_modules/devextreme/ui/list/ui.list.edit.js","../node_modules/devextreme/ui/list/ui.list.edit.decorator.switchable.js","../node_modules/devextreme/ui/list/ui.list.edit.decorator_menu_helper.js","../node_modules/devextreme/ui/multi_view.js","../node_modules/devextreme/ui/menu.js","../node_modules/devextreme/ui/menu/ui.menu.js","../node_modules/devextreme/ui/map/provider.js","../node_modules/devextreme/ui/map/provider.dynamic.js","../node_modules/devextreme/ui/list/ui.list.edit.search.js","../node_modules/devextreme/ui/list/ui.list.edit.strategy.grouped.js","../node_modules/devextreme/ui/list/ui.list.edit.provider.js","../node_modules/devextreme/ui/list/ui.list.edit.decorator.static.js","../node_modules/devextreme/ui/list/ui.list.edit.decorator.switchable.button.js","../node_modules/devextreme/ui/list/ui.list.edit.decorator.switchable.slide.js","../node_modules/devextreme/ui/list/ui.list.edit.decorator.swipe.js","../node_modules/devextreme/ui/list/ui.list.edit.decorator.context.js","../node_modules/devextreme/ui/list/item.js","../node_modules/devextreme/ui/list/ui.list.edit.decorator.selection.js","../node_modules/devextreme/ui/list/ui.list.edit.decorator.reorder.js","../node_modules/devextreme/ui/multi_view/ui.multi_view.animation.js","../node_modules/devextreme/ui/menu/ui.submenu.js","../node_modules/devextreme/ui/lookup.js","../node_modules/devextreme/ui/map.js","../node_modules/devextreme/ui/map/provider.google_static.js","../node_modules/devextreme/ui/map/provider.dynamic.google.js","../node_modules/devextreme/ui/map/provider.dynamic.bing.js","../node_modules/devextreme/ui/nav_bar.js","../node_modules/devextreme/ui/nav_bar/item.js","../node_modules/devextreme/ui/load_indicator.js","../node_modules/devextreme/ui/list.js","../node_modules/devextreme/ui/list/ui.list.edit.decorator_registry.js","../node_modules/devextreme/ui/list/ui.list.edit.decorator.js","../node_modules/devextreme/ui/load_panel.js"],"names":["exports","ListBase","setScrollView","value","_scrollView","_renderer","_interopRequireDefault","require","_events_engine","_common","_type","_icon","_element","_iterator","_data","_extend","_fx","_click","_swipe","_support","_message","_utils","_devices","_item","_button","_index","_themes","_window","_scroll_view","_uiScrollable","_uiCollection_widget","_bindable_template","_deferred","_grouped_data_converter_mixin","obj","__esModule","LIST_ITEM_SELECTOR","groupItemsGetter","compileGetter","default","inherit","_activeStateUnit","join","_supportedKeys","that","this","moveFocusPerPage","direction","$item","getEdgeVisibleItem","is","option","resultPosition","position","top","$element","height","outerHeight","scrollTo","scrollListTo","getPublicElement","scrollToItem","scrollTop","containerHeight","isItemVisible","length","$nextItem","nextItemLocation","extend","callBase","leftArrow","noop","rightArrow","pageUp","pageDown","_getDefaultOptions","hoverStateEnabled","pullRefreshEnabled","scrollingEnabled","showScrollbar","useNativeScrolling","bounceEnabled","scrollByContent","scrollByThumb","pullingDownText","format","pulledDownText","refreshingText","pageLoadingText","onScroll","onPullRefresh","onPageLoading","pageLoadMode","nextButtonText","onItemSwipe","grouped","onGroupRendered","collapsibleGroups","groupTemplate","indicateLoading","activeStateEnabled","_itemAttributes","role","_listAttributes","useInkRipple","wrapItemText","_swipeEnabled","_revertPageOnEmptyLoad","showChevronExpr","data","showChevron","badgeExpr","badge","_defaultOptionsRules","themeName","current","concat","deviceDependentOptions","device","nativeScrolling","options","_device","isSimulator","real","deviceType","platform","focusStateEnabled","isMaterial","_visibilityChanged","visible","_updateLoadingState","_itemClass","_itemDataKey","_itemContainer","_$container","_saveSelectionChangeEvent","e","_selectionChangeEventInstance","_getSelectionChangeEvent","_refreshItemElements","_itemElementsCache","children","_itemSelector","_modifyByChanges","apply","arguments","reorderItem","itemElement","toItemElement","done","deleteItem","_itemElements","_itemSelectHandler","isItemSelected","currentTarget","_allowDynamicItemsAppend","_resetDataSourcePageIndex","currentDataSource","getDataSource","pageIndex","load","_init","_initScrollView","_feedbackShowTimeout","_createGroupRenderAction","_scrollBottomMode","_nextButtonMode","_dataSourceOptions","scrollBottom","nextButton","paginate","ensureDefined","_getGroupedOption","_getGroupContainerByIndex","groupIndex","find","eq","_dataSourceFromUrlLoadMode","autoPagingEnabled","_dataSource","_createComponent","disabled","_scrollHandler","bind","onPullDown","_pullDownHandler","onReachBottom","_scrollBottomHandler","useNative","reachBottomText","useKeyboard","content","addClass","_createScrollViewActions","_scrollAction","_createActionByOption","_pullRefreshAction","_pageLoadingAction","_initTemplates","_templateManager","addDefaultTemplates","group","BindableTemplate","$container","isPlainObject","key","text","String","_prepareDefaultItemTemplate","icon","$icon","getImageContainer","$iconContainer","append","prepend","_getBindableFields","tryLoadMore","isDataLoaded","_isLastPage","scrollBottomMode","stopLoading","hideLoadIndicator","_isDataSourceLoading","_scrollViewIsFull","release","_toggleNextButton","_shouldRenderNextButton","_loadIndicationSuppressed","_infiniteDataLoading","isLoaded","_isDataSourceFirstLoadCompleted","newValue","isDefined","_isFirstLoadCompleted","_dataSourceLoadingChangedHandler","isLoading","_showLoadingIndicatorTimer","setTimeout","_this$_scrollView","startLoading","clearTimeout","finishLoading","_dataSourceChangedHandler","_shouldAppendItems","hasWindow","_refreshContent","_prepareContent","_fireContentReadyAction","_hideLoadingIfLoadIndicationOff","_isLoadIndicationSuppressed","isFull","_clearSelectedItems","reload","_this","_loadNextPageTimer","_loadNextPage","_setPreviousPageIfNewIsEmpty","result","dataSource","_renderItems","items","each","_renderGroup","_attachGroupCollapseEvent","_renderEmptyMessage","attachGroupHeaderInkRippleEvents","eventName","addNamespace","name","NAME","toggleClass","off","on","_createAction","$group","event","parent","_collapseGroupHandler","validatingTargetName","toggle","deferred","Deferred","hasClass","resolve","$groupBody","startHeight","endHeight","animate","type","from","to","duration","complete","updateDimensions","promise","_dataSourceLoadErrorHandler","_forgetNextPageLoading","_initialized","_initMarkup","_renderInkRipple","setAria","_inkRipple","render","_toggleActiveState","config","element","_inkRippleTimer","showWave","LIST_FEEDBACK_SHOW_TIMEOUT","hideWave","_postprocessRenderItem","args","_attachSwipeEvent","$itemElement","endEventName","end","_itemSwipeEndHandler","_itemDXEventHandler","offset","_nextButtonHandler","source","toggleLoading","_$nextButton","detach","index","$groupElement","appendTo","$groupHeaderElement","groupTemplateName","_getTemplate","template","renderArgs","itemData","container","_createItemByTemplate","prependTo","_renderingGroupIndex","itemIndex","item","_renderItem","_groupRenderAction","groupElement","groupData","downInkRippleHandler","upInkRippleHandler","_downInkRippleHandler","_upInkRippleHandler","downArguments","upArguments","_clean","remove","_dispose","_holdTimer","_toggleDisabledState","$nextButton","_getNextButton","_createNextButton","$result","$button","onClick","integrationOptions","_moveFocus","_refresh","_optionChanged","_invalidate","update","_extendActionArgs","closest","expandGroup","resolveWith","collapseGroup","repaint","scrollOffset","clientHeight","scrollHeight","scrollBy","distance","location","_editStrategy","getItemElement","scrollToElement","_dimensionChanged","include","ItemClass","_uiListEditStrategy","_uiListEdit","_uiList","_default","moveFocusedItem","moveUp","editStrategy","focusedElement","focusedItemIndex","getNormalizedIndex","_getLastItemIndex","shiftKey","nextItemIndex","preventDefault","_editProvider","handleKeyboardEvents","upArrow","downArrow","del","enter","handleEnterPressing","space","_updateSelection","afterItemsRendered","excludedSelectors","getExcludedItemSelectors","not","_isItemStrictEquals","item1","item2","privateKey","__dx_key__","_selection","showSelectionControls","selectionMode","selectAllMode","onSelectAllValueChanged","selectAllText","menuItems","menuMode","allowItemDeleting","itemDeleteMode","itemDragging","_initEditProvider","_initDataSource","_isPageSelectAll","requireTotalCount","_disposeEditProvider","dispose","_refreshEditProvider","_initEditStrategy","_selectedItemClass","_itemResponseWaitClass","_itemClickHandler","handledByEditProvider","handleClick","_shouldFireContextMenuEvent","contextMenuHandlerExists","_itemHoldHandler","isTouchEvent","handleContextMenu","_getItemContainer","changeData","_this$_editStrategy$g","getIndexByItemData","_itemContextMenuHandler","modifyItemElement","focusListItem","focus","selectAll","unselectAll","deselectAll","isSelectAll","getSelectAllState","getFlatIndexByItemElement","getItemElementByFlatIndex","flatIndex","$itemElements","getItemByIndex","getItemDataByIndex","module","_pointer","_emitter","abstract","POINTER_DOWN_EVENT_NAME","down","ACTIVE_EVENT_NAME","active","_$topShield","_$bottomShield","_$itemContentShield","_cancelDeleteReadyItem","_list","_$readyToDeleteItem","_cancelDelete","_toggleDeleteReady","readyToDelete","_isReadyToDelete","_toggleShields","_toggleScrolling","_cacheReadyToDeleteItem","_animateToggleDelete","enabled","_updateShieldsHeight","_toggleContentShield","$list","listTopOffset","listHeight","dirtyTopShieldHeight","dirtyBottomShieldHeight","Math","max","first","scrollView","dxScrollView","_cancelScrolling","cancel","cache","_enablePositioning","_prepareDeleteReady","_animatePrepareDeleteReady","up","_forgetDeleteReady","_animateForgetDeleteReady","_disablePositioning","one","removeClass","_getDeleteButtonContainer","_deleteItem","always","_isRtlEnabled","_menuEnabled","_menuItems","_deleteEnabled","_fireMenuAction","action","_itemEventHandlerByHandler","excludeValidators","_translator2","_uiMulti_view","_math","_visibility_change","_component_registrator","_swipeable","toNumber","MultiView","selectedIndex","swipeEnabled","animationEnabled","loop","deferRendering","loopItemFocus","selectOnFocus","selectionRequired","selectionByClick","_$itemContainer","_itemWidth","_itemWidthValue","_$wrapper","width","_clearItemWidthCache","_itemsCount","_normalizeIndex","count","_getRTLSignCorrection","_initSwipeable","_deferredItems","selectedItemIndices","_getSelectedItemIndices","_updateItemsVisibility","_afterItemElementDeleted","deletedActionArgs","splice","_beforeItemElementInserted","change","_executeItemRenderAction","indexOf","_renderItemContent","renderContentDeferred","$itemContent","call","_render","deferRender","_updateItems","newIndex","_updateItemsPosition","positionSign","_animationDirection","$selectedItem","_translator","move","isHidden","_renderSpecificItem","hasItemContent","_itemContentClass","triggerResizeEvent","_refreshItem","_setAriaSelected","addedSelection","removedSelection","prevIndex","animation","animationDirection","_animateItemContainer","completeCallback","moveTo","containerPosition","locate","left","indexDifference","_getItemFocusLoopSignCorrection","directionSignVariable","sign","_getSwipeDisabledState","_this2","elastic","itemSizeFunc","onStart","_swipeStartHandler","onUpdated","_swipeUpdateHandler","onEnd","_swipeEndHandler","lastIndex","rtl","maxLeftOffset","maxRightOffset","_swipeDirection","swipeDirection","targetOffset","$selectedElement","itemElements","filter","_itemFocusLooped","_prevItem","$items","last","_nextItem","_updateSwipeDisabledState","getInstance","_hover","_ui","_overlay","_ui2","_tree_view","_setPrototypeOf","o","p","Object","setPrototypeOf","__proto__","DEFAULT_DELAY","show","hide","ACTIONS","Menu","_MenuBase","subClass","superClass","prototype","create","constructor","_proto","orientation","submenuDirection","showFirstSubmenuMode","delay","hideSubmenuOnMouseLeave","onSubmenuShowing","onSubmenuShown","onSubmenuHiding","onSubmenuHidden","adaptivityEnabled","_setOptionsByReference","_optionsByReference","selectedItem","rootMenuElements","submenuElements","_submenuItemElements","add","elements","itemSelector","DX_MENU_CLASS","currentSubmenu","_submenus","itemsContainer","_focusTarget","_isMenuHorizontal","argument","operation","$newTarget","_getAvailableItems","isMenuHorizontal","$activeItem","_getActiveItem","_getItemsNavigationOperation","_getKeyboardNavigationAction","navigationAction","navOperation","_showSubmenu","_resizeEventTimer","_menuItemsWidth","_updateItemsWidthCache","_isAdaptivityEnabled","$menuItems","_getSummaryItemsWidth","containerWidth","outerWidth","_toggleAdaptiveMode","_initActions","_actions","_visibleSubmenu","_initAdaptivity","_renderHamburgerButton","_hamburger","_toggleTreeView","state","_toggleHamburgerActiveState","$menuItemsContainer","$adaptiveElements","_hideVisibleSubmenu","_treeView","collapseAll","_removeAdaptivity","_$adaptiveContainer","_treeviewItemClickHandler","onItemClick","node","_getAdaptiveOverlayOptions","maxHeight","getElementMaxHeightByWindow","shading","closeOnTargetScroll","onHidden","closeOnOutsideClick","target","collision","at","my","of","_getTreeViewOptions","_this3","menuOptions","_","actionName","onItemExpanded","onItemCollapsed","selectNodesRecursive","selectByClick","expandEvent","$hamburger","$content","$wrapper","DX_ADAPTIVE_MODE_CLASS","_getDelay","delayType","isObject","_keyboardHandler","_renderContainer","_renderSubmenuItems","$itemFrame","submenu","_createSubmenu","push","_renderBorderElement","_getKeyboardListeners","$rootItem","$submenuContainer","_getChildNodes","_getSubmenuOptions","_dataAdapter","_parentKey","internalFields","onHoverStart","_clearTimeouts","getSubmenuPosition","_attachSubmenuHandlers","_this4","$submenuTarget","itemTemplate","cssClass","showSubmenuMode","displayExpr","disabledExpr","selectedExpr","itemsExpr","onFocusedItemChanged","component","onSelectionChanged","_nestedItemOnSelectionChangedHandler","_nestedItemOnItemClickHandler","onItemRendered","_nestedItemOnItemRenderedHandler","onLeftFirstItem","_moveMainMenuFocus","onLeftLastItem","onCloseRootSubmenu","onExpandLastSubmenu","_getShowFirstSubmenuMode","_isDesktopDevice","optionValue","itemCount","$currentItem","DX_MENU_ITEM_CLASS","_hideSubmenu","$newItem","addedItems","_clearSelectionInSubmenus","_clearRootSelection","_setOptionWithoutOptionChange","targetSubmenu","_this5","cleanAllSubmenus","$submenu","isOtherItem","selectedItemData","_getItemData","selected","$prevSelectedItem","_this6","submenus","getOverlayContent","submenuMouseLeaveName","onShowing","_submenuOnShowingHandler","onShown","_submenuOnShownHandler","onHiding","_submenuOnHidingHandler","_submenuOnHiddenHandler","_submenuMouseLeaveHandler","$border","DX_CONTEXT_MENU_CLASS","rootItem","eventArgs","relatedTarget","parents","contextMenu","_getSubmenuByRootElement","_hideSubmenuAfterTimeout","isRootItemHovered","context","isSubmenuItemHovered","get","querySelector","isHorizontalMenu","toLowerCase","rtlEnabled","submenuPosition","_itemPointerDownHandler","_hoverStartHandler","mouseMoveEventName","_getItemElementByEventArgs","getNodeByItem","isSelectionActive","buttons","which","_isItemDisabled","_hasChildren","_getSubmenuByElement","isOverlayVisible","_itemMouseMoveHandler","_showSubmenuTimer","_hoverEndHandler","eventArg","_this7","_hideSubmenuTimer","_hoveredRootItem","_this8","pointers","_updateSubmenuVisibilityOnClick","actionArgs","_disabledGetter","_updateSelectedItemOnClick","_changeSubmenusOption","fullName","selectItem","unselectItem","_promise","_class","_defaultRouteWeight","_defaultRouteOpacity","_defaultRouteColor","ctor","map","_mapWidget","markerOptions","routeOptions","_renderImpl","then","all","_applyFunctionIfNeeded","updateMapType","updateBounds","updateCenter","updateZoom","updateControls","updateMarkers","markerOptionsToRemove","markerOptionsToAdd","removeValue","addValue","addMarkers","removeMarkers","adjustViewport","updateRoutes","routeOptionsToRemove","routeOptionsToAdd","addRoutes","removeRoutes","clean","_map","isEventsCanceled","_option","setOptionSilent","_keyOption","providerName","_parseTooltipOptions","isShown","_getLatLng","coords","split","trim","numericRegex","match","lat","parseFloat","lng","Array","isArray","isNumeric","_areBoundsSet","_addEventNamespace","fnName","array","_fireAction","actionArguments","_fireClickAction","_fireMarkerAddedAction","_fireMarkerRemovedAction","_fireRouteAddedAction","_fireRouteRemovedAction","_provider","_geocodeLocation","_geocodedLocations","cachedLocation","_geocodeLocationImpl","geocodedLocation","_load","_attachHandlers","timeout","_mapsLoader","_loadImpl","_markers","_routes","_addMarker","markerObjects","_fitBounds","markerObject","marker","_renderMarker","originalMarker","markersOptionsToRemove","markerOptionToRemove","_removeMarker","markersOptionToRemove","markerIndex","_destroyMarker","_clearMarkers","_addRoute","routeObjects","routeObject","instance","_renderRoute","originalRoute","routeIndex","_removeRoute","_destroyRoute","_clearRoutes","_updateBounds","_clearBounds","_extendBounds","northEast","southWest","_bounds","_addWidgetPrefix","className","_getCombinedFilter","storeLoadOptions","_addSearchFilter","expr","mode","searchValue","searchOperation","getOperationBySearchMode","searchExpr","_store_helper","_query","_uiCollection_widgetEditStrategy","combineIndex","indices","splitIndex","combinedIndex","_groupElements","_collectionWidget","_groupItemElements","groups","itemsGetter","resultItems","i","deleteItemAtIndex","getKeysByItems","plainItems","keyOf","getIndexByKey","keys","keyIndex","itemKey","_equalKeys","_getGroups","queryByOptions","toArray","getItemsByKeys","itemMeta","groupKey","getItemMeta","selectedGroup","moveItemAtIndexToIndex","movingIndex","destinationIndex","movingIndices","destinationIndices","movingItemGroup","destinationItemGroup","movedItemData","_isItemIndex","_getNormalizedItemIndex","_normalizeItemIndex","_denormalizeItemIndex","_getItemByNormalizedIndex","_itemsFromSameParent","firstIndex","secondIndex","editOptionsRegistry","registerOption","enabledFunc","decoratorTypeFunc","decoratorSubTypeFunc","decoratorType","decoratorSubType","list","_fetchRequiredDecorators","_decorators","decorator","_createDecorator","subType","_findDecorator","foundDecorator","registry","Error","_prependBeforeBags","_appendAfterBags","_applyDecorators","$beforeBags","_collectDecoratorsMarkup","$afterBags","method","containerClass","$collector","_handlerExists","decorators","_eventHandler","response","currentFocusedIndex","moveFocusUp","_uiListEdit2","register","afterBag","stopPropagation","_uiListEditDecorator","SwitchableButtonEditDecorator","$buttonContainer","$buttonWrapper","$buttonInnerWrapper","_$buttonContainer","stop","listWidth","buttonWidth","_buttonWidth","fromValue","toValue","right","_buttonContainerWidth","beforeBag","$toggle","_shouldHandleSwipe","_action_sheet","CLICK_EVENT_NAME","_$buttonsContainer","_$buttons","_renderMenu","_renderDeleteButton","menuItem","_renderMenuButton","$menu","_menu","showTitle","$menuButton","$deleteButton","_cachedNode","modifyElement","$slideMenuContent","wrapInner","_cacheItemData","_setPositions","_getPositions","signCorrection","isItemReadyToDelete","_getCurrentPositions","_getStartPositions","_cachedItemWidth","startOffset","_cachedButtonWidth","percent","abs","buttonsContainer","startPositions","min","_$cachedContent","positions","_minButtonContainerLeftOffset","endedAtReadyToDelete","_animateToPositions","currentPosition","durationTimePart","easing","strategy","draw","_renderItemPosition","itemOffset","_itemElementWidth","fail","_uiListEdit3","_renderOverlay","opacity","_$menuList","onContentReady","_renderMenuContent","$overlayContent","slice","_menuItemClickHandler","_$itemWithMenu","_renderWatchers","_startWatcher","_renderBadge","_renderShowChevron","_$element","$badge","$chevron","insertBefore","$chevronContainer","_check_box","_radio_button","_singleStrategy","_containerClass","_controlClass","_controlWidget","$control","_commonOptions","_isSelected","onValueChanged","_processCheckedState","control","_updateSelectAllState","_$selectAll","_selectAllCheckBox","afterRender","_renderSelectAll","moveFocusDown","$selectAll","lastItemIndex","downArrowHandler","registerKeyHandler","_attachSelectAllHandler","_selectAllHandler","_selectAllClickHandler","isSelectedAll","_selectAllItems","_unselectAllItems","_checkSelectAllCapability","log","checked","_disposeSelectAll","_sortable","_groupedEnabled","_lockedDrag","contentTemplate","allowReordering","dragDirection","handle","dragTemplate","_dragTemplate","onDragStart","_dragStartHandler","onDragChange","_dragChangeHandler","onReorder","_reorderHandler","clone","_sameParent","fromIndex","toIndex","$dragging","$targetElement","$handle","isMouseEvent","completeAction","_position","_context_menu","_ContextMenu","Submenu","tabIndex","_initDataAdapter","_renderContentImpl","_renderContextMenuOverlay","getNodeByKey","_renderDelimiter","$contentDelimiter","_getOverlayOptions","onPositioned","_overlayPositionedActionHandler","arg","_showDelimiter","_toggleFocusClass","hoverStartAction","_drawSubmenu","containerOffset","vLocation","v","hLocation","h","rootOffset","offsetLeft","round","offsetTop","rootWidth","rootHeight","submenuWidth","submenuHeight","css","setup","_getContextMenuPosition","_popover","_text_box","_child_default_template","_utils2","window","getWindow","Lookup","_validatedOpening","placeholder","searchPlaceholder","searchEnabled","cleanSearchOnOpening","showCancelButton","showClearButton","clearButtonText","applyButtonText","usePopover","showDropDownButton","dropDownOptions","title","titleTemplate","onTitleRendered","fullScreen","dropDownCentered","_scrollToSelectedItemEnabled","useHiddenSubmitElement","phone","tablet","getElementWidth","_getPopupHeight","_initScrollAction","_initPageLoadingAction","_initPullRefreshAction","_pullRefreshHandler","_pageLoadingHandler","ChildDefaultTemplate","_inputWrapper","_popupWrapperClass","_renderInput","fieldClickAction","_toggleOpenState","_$field","$arrow","_$fieldWrapper","_getInputContainer","_renderField","fieldTemplate","_getTemplateByOption","_renderFieldTemplate","displayValue","_updateField","_renderDisplayText","_input","empty","_fieldRenderData","model","_popupShowingHandler","_searchBox","_searchCanceled","_popup","_popupShownHandler","scrollToSelectedItemEnabled","_setPopupPosition","_scrollToSelectedItem","listItems","itemsCount","_getDifferenceOffsets","selectedListItem","_isCenteringEnabled","_getPopupOffset","listItemsCount","_listItemElements","differenceOfHeights","lookupOffset","dropDownHeightOption","popupHeight","windowHeight","scrollOffsetTop","MATERIAL_LOOKUP_LIST_PADDING","offsetBottom","popupContentParent","popupOffset","_listItemGroupedElements","_calculateListHeight","_$searchWrapper","_$bottom","_$title","_renderPopup","_renderPopover","_$popup","_popupConfig","_options","showEvent","hideEvent","_fixedPosition","_isInitialOptionValue","showing","shown","hiding","_popupHidingHandler","hidden","_popupHiddenHandler","contentReady","_contentReadyHandler","_$arrow","_setPopupContentId","resetPosition","_preventFocusOnPopup","toolbarItems","_getPopupToolbarItems","optionName","popupOptionValue","buttonsConfig","_popupToolbarItemsConfig","cancelButton","_getCancelButtonConfig","clearButton","_getClearButtonConfig","_applyButtonsLocation","shortcut","_applyButtonHandler","_cancelButtonHandler","onInitialized","close","_resetValue","_saveValueChangeEvent","_valueGetter","_currentSelectedItem","_refreshSelected","_refreshPopupVisibility","_updatePopupDimensions","_$searchBox","_renderPopupContent","_renderSearch","isSearchEnabled","_toggleSearchClass","$searchWrapper","$searchBox","currentDevice","searchMode","android","version","isKeyboardListeningEnabled","onDisposing","onFocusIn","onFocusOut","onKeyboardHandled","opts","valueChangeEvent","_searchHandler","_registerSearchKeyHandlers","_$list","_setSearchPlaceholder","_removeSearch","_selectListItemHandler","_selectListItem","minSearchLength","getFormatter","_setAriaTargetForList","_renderList","_listConfig","_getSelectionChangedHandler","_selectionChangeHandler","_listContentReadyHandler","_runWithoutCloseOnScroll","callback","_closeOnTargetScrollTimer","_setFocusPolicy","trigger","_keyboardEventBindingTarget","_listItemClickHandler","_searchValue","_renderInputValue","_this9","_renderPlaceholder","_setDeprecatedOptions","_deprecatedOptions","since","alias","popupWidth","_setPopupOption","initialOption","_setListOption","field","_inflector","_array","_providerDynamic","_providerDynamic2","PROVIDERS","googleStatic","google","bing","Map","bounds","center","zoom","provider","autoAdjust","markers","markerIconSrc","onMarkerAdded","onMarkerRemoved","routes","onRouteAdded","onRouteRemoved","apiKey","controls","onReady","_lastAsyncAction","_checkOption","_initContainer","_grabEvents","_rendered","_useTemplates","_cancelEvent","_saveRendered","_renderShield","_queueAsyncAction","$shield","_cleanFocusState","_suppressAsyncAction","changeBag","_optionChangeBag","prevValue","titleize","removed","added","isActionSuppressed","wrapToArray","_disposed","_triggerReadyAction","originalMap","_triggerUpdateAction","addMarker","_addFunction","removeMarker","_removeFunction","addRoute","route","removeRoute","addingValue","addingValues","_partialArrayOptionChange","removingValue","removingValues","removingIndex","inArray","substring","removing","fromPromise","_color","_locationToString","latLng","toString","replace","_updateMap","mapRendered","requestOptions","_markersSubstring","_routeSubstrings","request","_attachClickEvent","markerIcon","color","toHex","weight","locations","routePoint","_ajax","CustomMarker","googleMapsLoader","googleMapsLoaded","maps","_mapType","mapTypes","hybrid","MapTypeId","HYBRID","roadmap","ROADMAP","satellite","SATELLITE","_movementMode","movementTypes","driving","TravelMode","DRIVING","walking","WALKING","_resolveLocation","LatLng","Geocoder","geocode","address","results","status","GeocoderStatus","OK","geometry","_normalizeLocation","_normalizeLocationRect","locationRect","getNorthEast","getSouthWest","_loadMapScript","_offset","_$overlayContainer","display","cursor","html","setMap","OverlayView","onAdd","getPanes","overlayMouseTarget","_clickListener","addDomListener","onRemove","removeListener","getProjection","fromLatLngToDivPixel","x","y","sendRequest","url","dataType","showDefaultUI","disableDefaultUI","listener","addListener","_boundsChangeListener","_boundsChangeHandler","_clickActionHandler","getBounds","getCenter","_preventZoomChangeEvent","getZoom","setMapTypeId","LatLngBounds","fitBounds","setCenter","setZoom","setOptions","gestureHandling","htmlOffset","Marker","iconSrc","infoWindow","_renderTooltip","tooltip","markerClickAction","markerNormalizedLocation","open","InfoWindow","point","origin","shift","destination","pop","waypoints","stopover","optimizeWaypoints","travelMode","DirectionsService","DirectionsStatus","directionOptions","directions","suppressMarkers","preserveViewport","polylineOptions","strokeWeight","strokeOpacity","strokeColor","DirectionsRenderer","zoomBeforeFitting","zoomAfterFitting","msMapsLoader","msMapsLoaded","Microsoft","Maps","road","aerial","Directions","RouteMode","Location","searchManager","Search","SearchManager","searchRequest","where","searchResponse","boundsBox","latitude","longitude","northWest","getNorthwest","southEast","getSoutheast","loadModule","_createMap","credentials","showDashboard","showMapTypeSelector","showScalebar","_providerViewChangeHandler","Events","addHandler","_viewChangeHandler","_providerClickHandler","targetType","labelOverlay","LabelOverlay","setView","mapTypeId","LocationRect","fromLocations","pushpinOptions","htmlContent","anchor","Point","pushpin","Pushpin","entities","handler","infobox","Infobox","description","removeHandler","DirectionsManager","routeColor","Color","fromHex","a","setRenderOptions","autoUpdateMapView","displayRouteSelector","waypointPushpinOptions","drivingPolylineOptions","strokeThickness","walkingPolylineOptions","setRequestOptions","routeMode","routeDraggable","waypoint","Waypoint","addWaypoint","directionHandlers","routeSummary","responseCode","message","calculateDirections","_tabs","NavBar","_logDeprecatedComponentWarning","navigator","getNavigator","LoadIndicator","indicatorSrc","_animatingSegmentCount","_animatingSegmentInner","test","userAgent","viaImage","isGeneric","_renderWrapper","_renderIndicatorContent","_renderMarkup","_$content","_renderMarkupForImage","_renderMarkupForAnimation","animatingSegmentInner","_$indicator","$segment","_renderDimensions","_updateContentSizeForAnimation","minDimension","fontSize","_removeMarkupForAnimation","_removeMarkupForImage","decoratorClass","decoratorsRegistry","decoratorConfig","SWIPE_START_EVENT_NAME","start","SWIPE_UPDATE_EVENT_NAME","swipe","SWIPE_END_EVENT_NAME","swipeConfig","_clearSwipeCache","_itemWidthCache","_itemSwipeStartHandler","_itemSwipeUpdateHandler","visibilityChange","getExcludedSelectors","_load_indicator","LoadPanel","escape","showIndicator","showPane","templatesRenderAsynchronously","hideTopOverlayHandler","resizeEnabled","shadingColor","maxWidth","_$loadPanelContentWrapper","_togglePaneVisible","_cleanPreviousContent","_renderLoadIndicator","_renderMessage","_show","_clearShowTimeout","_showTimeout","_hide","$message"],"mappings":"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","file":"static/js/main~fceeb0a2.fba78a9d.chunk.js","sourcesContent":["/**\r\n * DevExtreme (ui/list/ui.list.base.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.ListBase = void 0;\r\nexports.setScrollView = setScrollView;\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 return 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 _getGroupContainerByIndex: function(groupIndex) {\r\n return this._itemContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex).find(\".\".concat(LIST_GROUP_BODY_CLASS))\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(itemIndex, item) {\r\n this._renderItem({\r\n group: index,\r\n item: itemIndex\r\n }, 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 _dimensionChanged: function() {\r\n this.updateDimensions()\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 (ui/list/ui.list.edit.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _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 _getItemContainer: function(changeData) {\r\n if (this.option(\"grouped\")) {\r\n var _this$_editStrategy$g;\r\n var groupIndex = null === (_this$_editStrategy$g = this._editStrategy.getIndexByItemData(changeData)) || void 0 === _this$_editStrategy$g ? void 0 : _this$_editStrategy$g.group;\r\n return this._getGroupContainerByIndex(groupIndex)\r\n } else {\r\n return this.callBase(changeData)\r\n }\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/list/ui.list.edit.decorator.switchable.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _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_menu_helper.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar 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/multi_view.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _translator2 = require(\"../animation/translator\");\r\nvar _uiMulti_view = require(\"./multi_view/ui.multi_view.animation\");\r\nvar _math = require(\"../core/utils/math\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _common = require(\"../core/utils/common\");\r\nvar _visibility_change = require(\"../events/visibility_change\");\r\nvar _element = require(\"../core/element\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"./collection/ui.collection_widget.live_update\"));\r\nvar _swipeable = _interopRequireDefault(require(\"../events/gesture/swipeable\"));\r\nvar _deferred = require(\"../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar MULTIVIEW_CLASS = \"dx-multiview\";\r\nvar MULTIVIEW_WRAPPER_CLASS = \"dx-multiview-wrapper\";\r\nvar MULTIVIEW_ITEM_CONTAINER_CLASS = \"dx-multiview-item-container\";\r\nvar MULTIVIEW_ITEM_CLASS = \"dx-multiview-item\";\r\nvar MULTIVIEW_ITEM_HIDDEN_CLASS = \"dx-multiview-item-hidden\";\r\nvar MULTIVIEW_ITEM_DATA_KEY = \"dxMultiViewItemData\";\r\nvar MULTIVIEW_ANIMATION_DURATION = 200;\r\nvar toNumber = function(value) {\r\n return +value\r\n};\r\nvar position = function($element) {\r\n return (0, _translator2.locate)($element).left\r\n};\r\nvar MultiView = _uiCollection_widget.default.inherit({\r\n _activeStateUnit: \".\" + MULTIVIEW_ITEM_CLASS,\r\n _supportedKeys: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n pageUp: _common.noop,\r\n pageDown: _common.noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n selectedIndex: 0,\r\n swipeEnabled: true,\r\n animationEnabled: true,\r\n loop: false,\r\n deferRendering: true,\r\n _itemAttributes: {\r\n role: \"tabpanel\"\r\n },\r\n loopItemFocus: false,\r\n selectOnFocus: true,\r\n selectionMode: \"single\",\r\n selectionRequired: true,\r\n selectionByClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === _devices.default.real().deviceType && !_devices.default.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _itemClass: function() {\r\n return MULTIVIEW_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return MULTIVIEW_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$itemContainer\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().children(this._itemSelector())\r\n },\r\n _itemWidth: function() {\r\n if (!this._itemWidthValue) {\r\n this._itemWidthValue = this._$wrapper.width()\r\n }\r\n return this._itemWidthValue\r\n },\r\n _clearItemWidthCache: function() {\r\n delete this._itemWidthValue\r\n },\r\n _itemsCount: function() {\r\n return this.option(\"items\").length\r\n },\r\n _normalizeIndex: function(index) {\r\n var count = this._itemsCount();\r\n if (index < 0) {\r\n index += count\r\n }\r\n if (index >= count) {\r\n index -= count\r\n }\r\n return index\r\n },\r\n _getRTLSignCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var $element = this.$element();\r\n $element.addClass(MULTIVIEW_CLASS);\r\n this._$wrapper = (0, _renderer.default)(\"
\").addClass(MULTIVIEW_WRAPPER_CLASS);\r\n this._$wrapper.appendTo($element);\r\n this._$itemContainer = (0, _renderer.default)(\"
\").addClass(MULTIVIEW_ITEM_CONTAINER_CLASS);\r\n this._$itemContainer.appendTo(this._$wrapper);\r\n this.option(\"loopItemFocus\", this.option(\"loop\"));\r\n this._initSwipeable()\r\n },\r\n _initMarkup: function() {\r\n this._deferredItems = [];\r\n this.callBase();\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(deletedActionArgs.itemIndex, 1)\r\n }\r\n },\r\n _beforeItemElementInserted: function(change) {\r\n this.callBase.apply(this, arguments);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(change.index, 0, null)\r\n }\r\n },\r\n _executeItemRenderAction: function(index, itemData, itemElement) {\r\n index = (this.option(\"items\") || []).indexOf(itemData);\r\n this.callBase(index, itemData, itemElement)\r\n },\r\n _renderItemContent: function(args) {\r\n var renderContentDeferred = new _deferred.Deferred;\r\n var that = this;\r\n var callBase = this.callBase;\r\n var deferred = new _deferred.Deferred;\r\n deferred.done(function() {\r\n var $itemContent = callBase.call(that, args);\r\n renderContentDeferred.resolve($itemContent)\r\n });\r\n this._deferredItems[args.index] = deferred;\r\n this.option(\"deferRendering\") || deferred.resolve();\r\n return renderContentDeferred.promise()\r\n },\r\n _render: function() {\r\n var _this = this;\r\n this.callBase();\r\n (0, _common.deferRender)(function() {\r\n var selectedItemIndices = _this._getSelectedItemIndices();\r\n _this._updateItems(selectedItemIndices[0])\r\n })\r\n },\r\n _updateItems: function(selectedIndex, newIndex) {\r\n this._updateItemsPosition(selectedIndex, newIndex);\r\n this._updateItemsVisibility(selectedIndex, newIndex)\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _updateItemsPosition: function(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n var positionSign = (0, _type.isDefined)(newIndex) ? -this._animationDirection(newIndex, selectedIndex) : void 0;\r\n var $selectedItem = $itemElements.eq(selectedIndex);\r\n _uiMulti_view._translator.move($selectedItem, 0);\r\n if ((0, _type.isDefined)(newIndex)) {\r\n _uiMulti_view._translator.move($itemElements.eq(newIndex), 100 * positionSign + \"%\")\r\n }\r\n },\r\n _updateItemsVisibility: function(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n $itemElements.each(function(itemIndex, item) {\r\n var $item = (0, _renderer.default)(item);\r\n var isHidden = itemIndex !== selectedIndex && itemIndex !== newIndex;\r\n if (!isHidden) {\r\n this._renderSpecificItem(itemIndex)\r\n }\r\n $item.toggleClass(MULTIVIEW_ITEM_HIDDEN_CLASS, isHidden);\r\n this.setAria(\"hidden\", isHidden || void 0, $item)\r\n }.bind(this))\r\n },\r\n _renderSpecificItem: function(index) {\r\n var $item = this._itemElements().eq(index);\r\n var hasItemContent = $item.find(this._itemContentClass()).length > 0;\r\n if ((0, _type.isDefined)(index) && !hasItemContent) {\r\n this._deferredItems[index].resolve();\r\n (0, _visibility_change.triggerResizeEvent)($item)\r\n }\r\n },\r\n _refreshItem: function($item, item) {\r\n this.callBase($item, item);\r\n this._updateItemsVisibility(this.option(\"selectedIndex\"))\r\n },\r\n _setAriaSelected: _common.noop,\r\n _updateSelection: function(addedSelection, removedSelection) {\r\n var newIndex = addedSelection[0];\r\n var prevIndex = removedSelection[0];\r\n _uiMulti_view.animation.complete(this._$itemContainer);\r\n this._updateItems(prevIndex, newIndex);\r\n var animationDirection = this._animationDirection(newIndex, prevIndex);\r\n this._animateItemContainer(animationDirection * this._itemWidth(), function() {\r\n _uiMulti_view._translator.move(this._$itemContainer, 0);\r\n this._updateItems(newIndex);\r\n this._$itemContainer.width()\r\n }.bind(this))\r\n },\r\n _animateItemContainer: function(position, completeCallback) {\r\n var duration = this.option(\"animationEnabled\") ? MULTIVIEW_ANIMATION_DURATION : 0;\r\n _uiMulti_view.animation.moveTo(this._$itemContainer, position, duration, completeCallback)\r\n },\r\n _animationDirection: function(newIndex, prevIndex) {\r\n var containerPosition = position(this._$itemContainer);\r\n var indexDifference = (prevIndex - newIndex) * this._getRTLSignCorrection() * this._getItemFocusLoopSignCorrection();\r\n var isSwipePresent = 0 !== containerPosition;\r\n var directionSignVariable = isSwipePresent ? containerPosition : indexDifference;\r\n return (0, _math.sign)(directionSignVariable)\r\n },\r\n _getSwipeDisabledState: function() {\r\n return !this.option(\"swipeEnabled\") || this._itemsCount() <= 1\r\n },\r\n _initSwipeable: function() {\r\n var _this2 = this;\r\n this._createComponent(this.$element(), _swipeable.default, {\r\n disabled: this._getSwipeDisabledState(),\r\n elastic: false,\r\n itemSizeFunc: this._itemWidth.bind(this),\r\n onStart: function(args) {\r\n return _this2._swipeStartHandler(args.event)\r\n },\r\n onUpdated: function(args) {\r\n return _this2._swipeUpdateHandler(args.event)\r\n },\r\n onEnd: function(args) {\r\n return _this2._swipeEndHandler(args.event)\r\n }\r\n })\r\n },\r\n _swipeStartHandler: function(e) {\r\n _uiMulti_view.animation.complete(this._$itemContainer);\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var loop = this.option(\"loop\");\r\n var lastIndex = this._itemsCount() - 1;\r\n var rtl = this.option(\"rtlEnabled\");\r\n e.maxLeftOffset = toNumber(loop || (rtl ? selectedIndex > 0 : selectedIndex < lastIndex));\r\n e.maxRightOffset = toNumber(loop || (rtl ? selectedIndex < lastIndex : selectedIndex > 0));\r\n this._swipeDirection = null\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.offset;\r\n var swipeDirection = (0, _math.sign)(offset) * this._getRTLSignCorrection();\r\n _uiMulti_view._translator.move(this._$itemContainer, offset * this._itemWidth());\r\n if (swipeDirection !== this._swipeDirection) {\r\n this._swipeDirection = swipeDirection;\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var newIndex = this._normalizeIndex(selectedIndex - swipeDirection);\r\n this._updateItems(selectedIndex, newIndex)\r\n }\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.targetOffset * this._getRTLSignCorrection();\r\n if (targetOffset) {\r\n this.option(\"selectedIndex\", this._normalizeIndex(this.option(\"selectedIndex\") - targetOffset));\r\n var $selectedElement = this.itemElements().filter(\".dx-item-selected\");\r\n this.option(\"focusStateEnabled\") && this.option(\"focusedElement\", (0, _element.getPublicElement)($selectedElement))\r\n } else {\r\n this._animateItemContainer(0, _common.noop)\r\n }\r\n },\r\n _getItemFocusLoopSignCorrection: function() {\r\n return this._itemFocusLooped ? -1 : 1\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = false\r\n },\r\n _prevItem: function($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.last());\r\n return $result\r\n },\r\n _nextItem: function($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.first());\r\n return $result\r\n },\r\n _dimensionChanged: function() {\r\n this._clearItemWidthCache()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _updateSwipeDisabledState: function() {\r\n var disabled = this._getSwipeDisabledState();\r\n _swipeable.default.getInstance(this.$element()).option(\"disabled\", disabled)\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n switch (args.name) {\r\n case \"loop\":\r\n this.option(\"loopItemFocus\", value);\r\n break;\r\n case \"animationEnabled\":\r\n break;\r\n case \"swipeEnabled\":\r\n this._updateSwipeDisabledState();\r\n break;\r\n case \"deferRendering\":\r\n this._invalidate();\r\n break;\r\n case \"items\":\r\n this._updateSwipeDisabledState();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxMultiView\", MultiView);\r\nvar _default = MultiView;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/menu.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _ui = _interopRequireDefault(require(\"./menu/ui.menu\"));\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/menu/ui.menu.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _element = require(\"../../core/element\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _utils = require(\"../overlay/utils\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _hover = require(\"../../events/hover\");\r\nvar _ui = _interopRequireDefault(require(\"../context_menu/ui.menu_base\"));\r\nvar _overlay = _interopRequireDefault(require(\"../overlay\"));\r\nvar _ui2 = _interopRequireDefault(require(\"./ui.submenu\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\nvar _tree_view = _interopRequireDefault(require(\"../tree_view\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_VERTICAL_CLASS = DX_MENU_CLASS + \"-vertical\";\r\nvar DX_MENU_HORIZONTAL_CLASS = DX_MENU_CLASS + \"-horizontal\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS = DX_CONTEXT_MENU_CLASS + \"-container-border\";\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar DX_STATE_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DX_ADAPTIVE_MODE_CLASS = DX_MENU_CLASS + \"-adaptive-mode\";\r\nvar DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS = DX_MENU_CLASS + \"-hamburger-button\";\r\nvar DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS = DX_ADAPTIVE_MODE_CLASS + \"-overlay-wrapper\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar SHOW_SUBMENU_OPERATION = \"showSubmenu\";\r\nvar NEXTITEM_OPERATION = \"nextItem\";\r\nvar PREVITEM_OPERATION = \"prevItem\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nvar ACTIONS = [\"onSubmenuShowing\", \"onSubmenuShown\", \"onSubmenuHiding\", \"onSubmenuHidden\", \"onItemContextMenu\", \"onItemClick\", \"onSelectionChanged\", \"onItemRendered\"];\r\nvar Menu = function(_MenuBase) {\r\n _inheritsLoose(Menu, _MenuBase);\r\n\r\n function Menu() {\r\n return _MenuBase.apply(this, arguments) || this\r\n }\r\n var _proto = Menu.prototype;\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_MenuBase.prototype._getDefaultOptions.call(this), {\r\n orientation: \"horizontal\",\r\n submenuDirection: \"auto\",\r\n showFirstSubmenuMode: {\r\n name: \"onClick\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n hideSubmenuOnMouseLeave: false,\r\n onSubmenuShowing: null,\r\n onSubmenuShown: null,\r\n onSubmenuHiding: null,\r\n onSubmenuHidden: null,\r\n adaptivityEnabled: false\r\n })\r\n };\r\n _proto._setOptionsByReference = function() {\r\n _MenuBase.prototype._setOptionsByReference.call(this);\r\n (0, _extend.extend)(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n };\r\n _proto._itemElements = function() {\r\n var rootMenuElements = _MenuBase.prototype._itemElements.call(this);\r\n var submenuElements = this._submenuItemElements();\r\n return rootMenuElements.add(submenuElements)\r\n };\r\n _proto._submenuItemElements = function() {\r\n var elements = [];\r\n var itemSelector = \".\".concat(DX_MENU_ITEM_CLASS);\r\n var currentSubmenu = this._submenus.length && this._submenus[0];\r\n if (currentSubmenu && currentSubmenu.itemsContainer()) {\r\n elements = currentSubmenu.itemsContainer().find(itemSelector)\r\n }\r\n return elements\r\n };\r\n _proto._focusTarget = function() {\r\n return this.$element()\r\n };\r\n _proto._isMenuHorizontal = function() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n };\r\n _proto._moveFocus = function(location) {\r\n var $items = this._getAvailableItems();\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n var $activeItem = this._getActiveItem(true);\r\n var argument;\r\n var operation;\r\n var navigationAction;\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(PREVITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_DOWN:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(NEXTITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_RIGHT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(NEXTITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_LEFT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(PREVITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n default:\r\n return _MenuBase.prototype._moveFocus.call(this, location)\r\n }\r\n if ($newTarget && 0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($newTarget))\r\n }\r\n };\r\n _proto._getItemsNavigationOperation = function(operation) {\r\n var navOperation = operation;\r\n if (this.option(\"rtlEnabled\")) {\r\n navOperation = operation === PREVITEM_OPERATION ? NEXTITEM_OPERATION : PREVITEM_OPERATION\r\n }\r\n return navOperation\r\n };\r\n _proto._getKeyboardNavigationAction = function(operation, argument) {\r\n var action = _common.noop;\r\n switch (operation) {\r\n case SHOW_SUBMENU_OPERATION:\r\n if (!argument.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n action = this._showSubmenu.bind(this, argument)\r\n }\r\n break;\r\n case NEXTITEM_OPERATION:\r\n action = this._nextItem.bind(this, argument);\r\n break;\r\n case PREVITEM_OPERATION:\r\n action = this._prevItem.bind(this, argument)\r\n }\r\n return action\r\n };\r\n _proto._clean = function() {\r\n _MenuBase.prototype._clean.call(this);\r\n this.option(\"templatesRenderAsynchronously\") && clearTimeout(this._resizeEventTimer)\r\n };\r\n _proto._visibilityChanged = function(visible) {\r\n if (visible) {\r\n if (!this._menuItemsWidth) {\r\n this._updateItemsWidthCache()\r\n }\r\n this._dimensionChanged()\r\n }\r\n };\r\n _proto._isAdaptivityEnabled = function() {\r\n return this.option(\"adaptivityEnabled\") && \"horizontal\" === this.option(\"orientation\")\r\n };\r\n _proto._updateItemsWidthCache = function() {\r\n var $menuItems = this.$element().find(\"ul\").first().children(\"li\").children(\".\".concat(DX_MENU_ITEM_CLASS));\r\n this._menuItemsWidth = this._getSummaryItemsWidth($menuItems, true)\r\n };\r\n _proto._dimensionChanged = function() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n var containerWidth = this.$element().outerWidth();\r\n this._toggleAdaptiveMode(this._menuItemsWidth > containerWidth)\r\n };\r\n _proto._init = function() {\r\n _MenuBase.prototype._init.call(this);\r\n this._submenus = []\r\n };\r\n _proto._initActions = function() {\r\n var _this = this;\r\n this._actions = {};\r\n (0, _iterator.each)(ACTIONS, function(index, action) {\r\n _this._actions[action] = _this._createActionByOption(action)\r\n })\r\n };\r\n _proto._initMarkup = function() {\r\n this._visibleSubmenu = null;\r\n this.$element().addClass(DX_MENU_CLASS);\r\n _MenuBase.prototype._initMarkup.call(this);\r\n this.setAria(\"role\", \"menubar\")\r\n };\r\n _proto._render = function() {\r\n _MenuBase.prototype._render.call(this);\r\n this._initAdaptivity()\r\n };\r\n _proto._renderHamburgerButton = function() {\r\n this._hamburger = new _button.default((0, _renderer.default)(\"
\").addClass(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS), {\r\n icon: \"menu\",\r\n activeStateEnabled: false,\r\n onClick: this._toggleTreeView.bind(this)\r\n });\r\n return this._hamburger.$element()\r\n };\r\n _proto._toggleTreeView = function(state) {\r\n if ((0, _type.isPlainObject)(state)) {\r\n state = !this._overlay.option(\"visible\")\r\n }\r\n this._overlay.option(\"visible\", state);\r\n this._toggleHamburgerActiveState(state)\r\n };\r\n _proto._toggleHamburgerActiveState = function(state) {\r\n this._hamburger && this._hamburger.$element().toggleClass(DX_STATE_ACTIVE_CLASS, state)\r\n };\r\n _proto._toggleAdaptiveMode = function(state) {\r\n var $menuItemsContainer = this.$element().find(\".\".concat(DX_MENU_HORIZONTAL_CLASS));\r\n var $adaptiveElements = this.$element().find(\".\".concat(DX_ADAPTIVE_MODE_CLASS));\r\n if (state) {\r\n this._hideVisibleSubmenu()\r\n } else {\r\n this._treeView && this._treeView.collapseAll();\r\n this._overlay && this._toggleTreeView(state)\r\n }\r\n $menuItemsContainer.toggle(!state);\r\n $adaptiveElements.toggle(state)\r\n };\r\n _proto._removeAdaptivity = function() {\r\n if (!this._$adaptiveContainer) {\r\n return\r\n }\r\n this._toggleAdaptiveMode(false);\r\n this._$adaptiveContainer.remove();\r\n this._$adaptiveContainer = null;\r\n this._treeView = null;\r\n this._hamburger = null;\r\n this._overlay = null\r\n };\r\n _proto._treeviewItemClickHandler = function(e) {\r\n this._actions.onItemClick(e);\r\n if (!e.node.children.length) {\r\n this._toggleTreeView(false)\r\n }\r\n };\r\n _proto._getAdaptiveOverlayOptions = function() {\r\n var _this2 = this;\r\n var rtl = this.option(\"rtlEnabled\");\r\n var position = rtl ? \"right\" : \"left\";\r\n return {\r\n maxHeight: function() {\r\n return (0, _utils.getElementMaxHeightByWindow)(_this2.$element())\r\n },\r\n deferRendering: false,\r\n shading: false,\r\n animation: false,\r\n closeOnTargetScroll: true,\r\n onHidden: function() {\r\n _this2._toggleHamburgerActiveState(false)\r\n },\r\n height: \"auto\",\r\n closeOnOutsideClick: function(e) {\r\n return !(0, _renderer.default)(e.target).closest(\".\".concat(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS)).length\r\n },\r\n position: {\r\n collision: \"flipfit\",\r\n at: \"bottom \" + position,\r\n my: \"top \" + position,\r\n of: this._hamburger.$element()\r\n }\r\n }\r\n };\r\n _proto._getTreeViewOptions = function() {\r\n var _this3 = this;\r\n var menuOptions = {};\r\n var optionsToTransfer = [\"rtlEnabled\", \"width\", \"accessKey\", \"activeStateEnabled\", \"animation\", \"dataSource\", \"disabled\", \"displayExpr\", \"displayExpr\", \"focusStateEnabled\", \"hint\", \"hoverStateEnabled\", \"itemsExpr\", \"items\", \"itemTemplate\", \"selectedExpr\", \"selectionMode\", \"tabIndex\", \"visible\"];\r\n var actionsToTransfer = [\"onItemContextMenu\", \"onSelectionChanged\"];\r\n (0, _iterator.each)(optionsToTransfer, function(_, option) {\r\n menuOptions[option] = _this3.option(option)\r\n });\r\n (0, _iterator.each)(actionsToTransfer, function(_, actionName) {\r\n menuOptions[actionName] = function(e) {\r\n _this3._actions[actionName](e)\r\n }\r\n });\r\n return (0, _extend.extend)(menuOptions, {\r\n dataSource: this.getDataSource(),\r\n animationEnabled: !!this.option(\"animation\"),\r\n onItemClick: this._treeviewItemClickHandler.bind(this),\r\n onItemExpanded: function(e) {\r\n _this3._overlay.repaint();\r\n _this3._actions.onSubmenuShown(e)\r\n },\r\n onItemCollapsed: function(e) {\r\n _this3._overlay.repaint();\r\n _this3._actions.onSubmenuHidden(e)\r\n },\r\n selectNodesRecursive: false,\r\n selectByClick: this.option(\"selectByClick\"),\r\n expandEvent: \"click\"\r\n })\r\n };\r\n _proto._initAdaptivity = function() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n this._$adaptiveContainer = (0, _renderer.default)(\"
\").addClass(DX_ADAPTIVE_MODE_CLASS);\r\n var $hamburger = this._renderHamburgerButton();\r\n this._treeView = this._createComponent((0, _renderer.default)(\"
\"), _tree_view.default, this._getTreeViewOptions());\r\n this._overlay = this._createComponent((0, _renderer.default)(\"
\"), _overlay.default, this._getAdaptiveOverlayOptions());\r\n this._overlay.$content().append(this._treeView.$element()).addClass(DX_ADAPTIVE_MODE_CLASS).addClass(this.option(\"cssClass\"));\r\n this._overlay.$wrapper().addClass(DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS);\r\n this._$adaptiveContainer.append($hamburger);\r\n this._$adaptiveContainer.append(this._overlay.$element());\r\n this.$element().append(this._$adaptiveContainer);\r\n this._updateItemsWidthCache();\r\n this._dimensionChanged()\r\n };\r\n _proto._getDelay = function(delayType) {\r\n var delay = this.option(\"showFirstSubmenuMode\").delay;\r\n if (!(0, _type.isDefined)(delay)) {\r\n return DEFAULT_DELAY[delayType]\r\n } else {\r\n return (0, _type.isObject)(delay) ? delay[delayType] : delay\r\n }\r\n };\r\n _proto._keyboardHandler = function(e) {\r\n return _MenuBase.prototype._keyboardHandler.call(this, e, !!this._visibleSubmenu)\r\n };\r\n _proto._renderContainer = function() {\r\n var $wrapper = (0, _renderer.default)(\"
\");\r\n $wrapper.appendTo(this.$element()).addClass(this._isMenuHorizontal() ? DX_MENU_HORIZONTAL_CLASS : DX_MENU_VERTICAL_CLASS);\r\n return _MenuBase.prototype._renderContainer.call(this, $wrapper)\r\n };\r\n _proto._renderSubmenuItems = function(node, $itemFrame) {\r\n var submenu = this._createSubmenu(node, $itemFrame);\r\n this._submenus.push(submenu);\r\n this._renderBorderElement($itemFrame);\r\n return submenu\r\n };\r\n _proto._getKeyboardListeners = function() {\r\n return _MenuBase.prototype._getKeyboardListeners.call(this).concat(this._visibleSubmenu)\r\n };\r\n _proto._createSubmenu = function(node, $rootItem) {\r\n var $submenuContainer = (0, _renderer.default)(\"
\").addClass(DX_CONTEXT_MENU_CLASS).appendTo($rootItem);\r\n var items = this._getChildNodes(node);\r\n var result = this._createComponent($submenuContainer, _ui2.default, (0, _extend.extend)(this._getSubmenuOptions(), {\r\n _dataAdapter: this._dataAdapter,\r\n _parentKey: node.internalFields.key,\r\n items: items,\r\n onHoverStart: this._clearTimeouts.bind(this),\r\n position: this.getSubmenuPosition($rootItem)\r\n }));\r\n this._attachSubmenuHandlers($rootItem, result);\r\n return result\r\n };\r\n _proto._getSubmenuOptions = function() {\r\n var _this4 = this;\r\n var $submenuTarget = (0, _renderer.default)(\"
\");\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n return {\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n target: $submenuTarget,\r\n orientation: this.option(\"orientation\"),\r\n selectionMode: this.option(\"selectionMode\"),\r\n cssClass: this.option(\"cssClass\"),\r\n selectByClick: this.option(\"selectByClick\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n showSubmenuMode: this.option(\"showSubmenuMode\"),\r\n displayExpr: this.option(\"displayExpr\"),\r\n disabledExpr: this.option(\"disabledExpr\"),\r\n selectedExpr: this.option(\"selectedExpr\"),\r\n itemsExpr: this.option(\"itemsExpr\"),\r\n onFocusedItemChanged: function(e) {\r\n if (!e.component.option(\"visible\")) {\r\n return\r\n }\r\n _this4.option(\"focusedElement\", e.component.option(\"focusedElement\"))\r\n },\r\n onSelectionChanged: this._nestedItemOnSelectionChangedHandler.bind(this),\r\n onItemClick: this._nestedItemOnItemClickHandler.bind(this),\r\n onItemRendered: this._nestedItemOnItemRenderedHandler.bind(this),\r\n onLeftFirstItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, PREVITEM_OPERATION),\r\n onLeftLastItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION),\r\n onCloseRootSubmenu: this._moveMainMenuFocus.bind(this, isMenuHorizontal ? PREVITEM_OPERATION : null),\r\n onExpandLastSubmenu: isMenuHorizontal ? this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION) : null\r\n }\r\n };\r\n _proto._getShowFirstSubmenuMode = function() {\r\n if (!this._isDesktopDevice()) {\r\n return \"onClick\"\r\n }\r\n var optionValue = this.option(\"showFirstSubmenuMode\");\r\n return (0, _type.isObject)(optionValue) ? optionValue.name : optionValue\r\n };\r\n _proto._moveMainMenuFocus = function(direction) {\r\n var $items = this._getAvailableItems();\r\n var itemCount = $items.length;\r\n var $currentItem = $items.filter(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).eq(0);\r\n var itemIndex = $items.index($currentItem);\r\n this._hideSubmenu(this._visibleSubmenu);\r\n itemIndex += direction === PREVITEM_OPERATION ? -1 : 1;\r\n if (itemIndex >= itemCount) {\r\n itemIndex = 0\r\n } else {\r\n if (itemIndex < 0) {\r\n itemIndex = itemCount - 1\r\n }\r\n }\r\n var $newItem = $items.eq(itemIndex);\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($newItem))\r\n };\r\n _proto._nestedItemOnSelectionChangedHandler = function(args) {\r\n var selectedItem = args.addedItems.length && args.addedItems[0];\r\n var submenu = _ui2.default.getInstance(args.element);\r\n var onSelectionChanged = this._actions.onSelectionChanged;\r\n onSelectionChanged(args);\r\n selectedItem && this._clearSelectionInSubmenus(selectedItem[0], submenu);\r\n this._clearRootSelection();\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem)\r\n };\r\n _proto._clearSelectionInSubmenus = function(item, targetSubmenu) {\r\n var _this5 = this;\r\n var cleanAllSubmenus = !arguments.length;\r\n (0, _iterator.each)(this._submenus, function(index, submenu) {\r\n var $submenu = submenu._itemContainer();\r\n var isOtherItem = !$submenu.is(targetSubmenu && targetSubmenu._itemContainer());\r\n var $selectedItem = $submenu.find(\".\".concat(_this5._selectedItemClass()));\r\n if (isOtherItem && $selectedItem.length || cleanAllSubmenus) {\r\n $selectedItem.removeClass(_this5._selectedItemClass());\r\n var selectedItemData = _this5._getItemData($selectedItem);\r\n if (selectedItemData) {\r\n selectedItemData.selected = false\r\n }\r\n submenu._clearSelectedItems()\r\n }\r\n })\r\n };\r\n _proto._clearRootSelection = function() {\r\n var $prevSelectedItem = this.$element().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).first().children().children().filter(\".\".concat(this._selectedItemClass()));\r\n if ($prevSelectedItem.length) {\r\n var prevSelectedItemData = this._getItemData($prevSelectedItem);\r\n prevSelectedItemData.selected = false;\r\n $prevSelectedItem.removeClass(this._selectedItemClass())\r\n }\r\n };\r\n _proto._nestedItemOnItemClickHandler = function(e) {\r\n this._actions.onItemClick(e)\r\n };\r\n _proto._nestedItemOnItemRenderedHandler = function(e) {\r\n this._actions.onItemRendered(e)\r\n };\r\n _proto._attachSubmenuHandlers = function($rootItem, submenu) {\r\n var _this6 = this;\r\n var $submenuOverlayContent = submenu.getOverlayContent();\r\n var submenus = $submenuOverlayContent.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuMouseLeaveName = (0, _index.addNamespace)(_hover.end, this.NAME + \"_submenu\");\r\n submenu.option({\r\n onShowing: this._submenuOnShowingHandler.bind(this, $rootItem, submenu),\r\n onShown: this._submenuOnShownHandler.bind(this, $rootItem, submenu),\r\n onHiding: this._submenuOnHidingHandler.bind(this, $rootItem, submenu),\r\n onHidden: this._submenuOnHiddenHandler.bind(this, $rootItem, submenu)\r\n });\r\n (0, _iterator.each)(submenus, function(index, submenu) {\r\n _events_engine.default.off(submenu, submenuMouseLeaveName);\r\n _events_engine.default.on(submenu, submenuMouseLeaveName, null, _this6._submenuMouseLeaveHandler.bind(_this6, $rootItem))\r\n })\r\n };\r\n _proto._submenuOnShowingHandler = function($rootItem, submenu) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n this._actions.onSubmenuShowing({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: submenu\r\n });\r\n $border.show();\r\n $rootItem.addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n };\r\n _proto._submenuOnShownHandler = function($rootItem, submenu) {\r\n this._actions.onSubmenuShown({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: submenu\r\n })\r\n };\r\n _proto._submenuOnHidingHandler = function($rootItem, submenu, eventArgs) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n var args = eventArgs;\r\n args.rootItem = (0, _element.getPublicElement)($rootItem);\r\n args.submenu = submenu;\r\n this._actions.onSubmenuHiding(args);\r\n eventArgs = args;\r\n if (!eventArgs.cancel) {\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n $border.hide();\r\n $rootItem.removeClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n };\r\n _proto._submenuOnHiddenHandler = function($rootItem, submenu) {\r\n this._actions.onSubmenuHidden({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: submenu\r\n })\r\n };\r\n _proto._submenuMouseLeaveHandler = function($rootItem, eventArgs) {\r\n var target = (0, _renderer.default)(eventArgs.relatedTarget).parents(\".\".concat(DX_CONTEXT_MENU_CLASS))[0];\r\n var contextMenu = this._getSubmenuByRootElement($rootItem).getOverlayContent()[0];\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && target !== contextMenu) {\r\n this._clearTimeouts();\r\n setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"))\r\n }\r\n };\r\n _proto._hideSubmenuAfterTimeout = function() {\r\n if (!this._visibleSubmenu) {\r\n return\r\n }\r\n var isRootItemHovered = (0, _renderer.default)(this._visibleSubmenu.$element().context).hasClass(DX_STATE_HOVER_CLASS);\r\n var isSubmenuItemHovered = this._visibleSubmenu.getOverlayContent().find(\".\".concat(DX_STATE_HOVER_CLASS)).length;\r\n var hoveredElementFromSubMenu = this._visibleSubmenu.getOverlayContent().get(0).querySelector(\":hover\");\r\n if (!hoveredElementFromSubMenu && !isSubmenuItemHovered && !isRootItemHovered) {\r\n this._visibleSubmenu.hide()\r\n }\r\n };\r\n _proto._getSubmenuByRootElement = function($rootItem) {\r\n if (!$rootItem) {\r\n return false\r\n }\r\n var $submenu = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CLASS));\r\n return $submenu.length && _ui2.default.getInstance($submenu)\r\n };\r\n _proto.getSubmenuPosition = function($rootItem) {\r\n var isHorizontalMenu = this._isMenuHorizontal();\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var submenuPosition = {\r\n collision: \"flip\",\r\n of: $rootItem\r\n };\r\n switch (submenuDirection) {\r\n case \"leftortop\":\r\n submenuPosition.at = \"left top\";\r\n submenuPosition.my = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n break;\r\n case \"rightorbottom\":\r\n submenuPosition.at = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n submenuPosition.my = \"left top\";\r\n break;\r\n default:\r\n if (isHorizontalMenu) {\r\n submenuPosition.at = rtlEnabled ? \"right bottom\" : \"left bottom\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n } else {\r\n submenuPosition.at = rtlEnabled ? \"left top\" : \"right top\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n }\r\n }\r\n return submenuPosition\r\n };\r\n _proto._renderBorderElement = function($item) {\r\n (0, _renderer.default)(\"
\").appendTo($item).addClass(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS).hide()\r\n };\r\n _proto._itemPointerDownHandler = function(e) {\r\n var $target = (0, _renderer.default)(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n if ($closestItem.hasClass(\"dx-menu-item-has-submenu\")) {\r\n this.option(\"focusedElement\", null);\r\n return\r\n }\r\n _MenuBase.prototype._itemPointerDownHandler.call(this, e)\r\n };\r\n _proto._hoverStartHandler = function(e) {\r\n var mouseMoveEventName = (0, _index.addNamespace)(_pointer.default.move, this.NAME);\r\n var $item = this._getItemElementByEventArgs(e);\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n var isSelectionActive = (0, _type.isDefined)(e.buttons) && 1 === e.buttons || !(0, _type.isDefined)(e.buttons) && 1 === e.which;\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n _events_engine.default.off($item, mouseMoveEventName);\r\n if (!this._hasChildren(node)) {\r\n this._showSubmenuTimer = setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"));\r\n return\r\n }\r\n if (\"onHover\" === this._getShowFirstSubmenuMode() && !isSelectionActive) {\r\n var submenu = this._getSubmenuByElement($item);\r\n this._clearTimeouts();\r\n if (!submenu.isOverlayVisible()) {\r\n _events_engine.default.on($item, mouseMoveEventName, this._itemMouseMoveHandler.bind(this));\r\n this._showSubmenuTimer = this._getDelay(\"hide\")\r\n }\r\n }\r\n };\r\n _proto._hoverEndHandler = function(eventArg) {\r\n var _this7 = this;\r\n var $item = this._getItemElementByEventArgs(eventArg);\r\n var relatedTarget = (0, _renderer.default)(eventArg.relatedTarget);\r\n _MenuBase.prototype._hoverEndHandler.call(this, eventArg);\r\n this._clearTimeouts();\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n if (relatedTarget.hasClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)) {\r\n return\r\n }\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && !relatedTarget.hasClass(DX_MENU_ITEMS_CONTAINER_CLASS)) {\r\n this._hideSubmenuTimer = setTimeout(function() {\r\n _this7._hideSubmenuAfterTimeout()\r\n }, this._getDelay(\"hide\"))\r\n }\r\n };\r\n _proto._hideVisibleSubmenu = function() {\r\n if (!this._visibleSubmenu) {\r\n return false\r\n }\r\n this._hideSubmenu(this._visibleSubmenu);\r\n return true\r\n };\r\n _proto._showSubmenu = function($itemElement) {\r\n var submenu = this._getSubmenuByElement($itemElement);\r\n if (this._visibleSubmenu !== submenu) {\r\n this._hideVisibleSubmenu()\r\n }\r\n if (submenu) {\r\n this._clearTimeouts();\r\n submenu.show();\r\n this.option(\"focusedElement\", submenu.option(\"focusedElement\"))\r\n }\r\n this._visibleSubmenu = submenu;\r\n this._hoveredRootItem = $itemElement\r\n };\r\n _proto._hideSubmenu = function(submenu) {\r\n submenu && submenu.hide();\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n this._hoveredRootItem = null\r\n };\r\n _proto._itemMouseMoveHandler = function(e) {\r\n var _this8 = this;\r\n if (e.pointers && e.pointers.length) {\r\n return\r\n }\r\n var $item = (0, _renderer.default)(e.currentTarget);\r\n if (!(0, _type.isDefined)(this._showSubmenuTimer)) {\r\n return\r\n }\r\n this._clearTimeouts();\r\n this._showSubmenuTimer = setTimeout(function() {\r\n var submenu = _this8._getSubmenuByElement($item);\r\n if (submenu && !submenu.isOverlayVisible()) {\r\n _this8._showSubmenu($item)\r\n }\r\n }, this._getDelay(\"show\"))\r\n };\r\n _proto._clearTimeouts = function() {\r\n clearTimeout(this._hideSubmenuTimer);\r\n clearTimeout(this._showSubmenuTimer)\r\n };\r\n _proto._getSubmenuByElement = function($itemElement, itemData) {\r\n var submenu = this._getSubmenuByRootElement($itemElement);\r\n if (submenu) {\r\n return submenu\r\n } else {\r\n itemData = itemData || this._getItemData($itemElement);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n return this._hasChildren(node) && this._renderSubmenuItems(node, $itemElement)\r\n }\r\n };\r\n _proto._updateSubmenuVisibilityOnClick = function(actionArgs) {\r\n var args = actionArgs.args.length && actionArgs.args[0];\r\n if (!args || this._disabledGetter(args.itemData)) {\r\n return\r\n }\r\n var $itemElement = (0, _renderer.default)(args.itemElement);\r\n var currentSubmenu = this._getSubmenuByElement($itemElement, args.itemData);\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (this._visibleSubmenu) {\r\n if (this._visibleSubmenu === currentSubmenu) {\r\n if (\"onClick\" === this.option(\"showFirstSubmenuMode\")) {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n return\r\n } else {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n }\r\n if (!currentSubmenu) {\r\n return\r\n }\r\n if (!currentSubmenu.isOverlayVisible()) {\r\n this._showSubmenu($itemElement);\r\n return\r\n }\r\n };\r\n _proto._optionChanged = function(args) {\r\n if (ACTIONS.indexOf(args.name) >= 0) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"orientation\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"showFirstSubmenuMode\":\r\n case \"hideSubmenuOnMouseLeave\":\r\n break;\r\n case \"showSubmenuMode\":\r\n this._changeSubmenusOption(args.name, args.value);\r\n break;\r\n case \"adaptivityEnabled\":\r\n args.value ? this._initAdaptivity() : this._removeAdaptivity();\r\n break;\r\n case \"width\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(args.name, args.value);\r\n this._overlay.option(args.name, args.value)\r\n }\r\n _MenuBase.prototype._optionChanged.call(this, args);\r\n this._dimensionChanged();\r\n break;\r\n case \"animation\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(\"animationEnabled\", !!args.value)\r\n }\r\n _MenuBase.prototype._optionChanged.call(this, args);\r\n break;\r\n default:\r\n if (this._isAdaptivityEnabled() && (args.name === args.fullName || \"items\" === args.name)) {\r\n this._treeView.option(args.fullName, args.value)\r\n }\r\n _MenuBase.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto._changeSubmenusOption = function(name, value) {\r\n (0, _iterator.each)(this._submenus, function(index, submenu) {\r\n submenu.option(name, value)\r\n })\r\n };\r\n _proto.selectItem = function(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n _MenuBase.prototype.selectItem.call(this, itemElement)\r\n };\r\n _proto.unselectItem = function(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n _MenuBase.prototype.selectItem.call(this, itemElement)\r\n };\r\n return Menu\r\n}(_ui.default);\r\n(0, _component_registrator.default)(\"dxMenu\", Menu);\r\nvar _default = Menu;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/map/provider.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _promise = _interopRequireDefault(require(\"../../core/polyfills/promise\"));\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\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 abstract = _class.default.abstract;\r\nvar Provider = _class.default.inherit({\r\n _defaultRouteWeight: function() {\r\n return 5\r\n },\r\n _defaultRouteOpacity: function() {\r\n return .5\r\n },\r\n _defaultRouteColor: function() {\r\n return \"#0000FF\"\r\n },\r\n ctor: function(map, $container) {\r\n this._mapWidget = map;\r\n this._$container = $container\r\n },\r\n render: function(markerOptions, routeOptions) {\r\n return this._renderImpl().then(function() {\r\n return _promise.default.all([this._applyFunctionIfNeeded(\"addMarkers\", markerOptions), this._applyFunctionIfNeeded(\"addRoutes\", routeOptions)]).then(function() {\r\n return true\r\n })\r\n }.bind(this))\r\n },\r\n _renderImpl: abstract,\r\n updateDimensions: abstract,\r\n updateMapType: abstract,\r\n updateBounds: abstract,\r\n updateCenter: abstract,\r\n updateZoom: abstract,\r\n updateControls: abstract,\r\n updateMarkers: function(markerOptionsToRemove, markerOptionsToAdd) {\r\n return new _promise.default(function(resolve) {\r\n return this._applyFunctionIfNeeded(\"removeMarkers\", markerOptionsToRemove).then(function(removeValue) {\r\n this._applyFunctionIfNeeded(\"addMarkers\", markerOptionsToAdd).then(function(addValue) {\r\n resolve(addValue ? addValue : removeValue)\r\n })\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n addMarkers: abstract,\r\n removeMarkers: abstract,\r\n adjustViewport: abstract,\r\n updateRoutes: function(routeOptionsToRemove, routeOptionsToAdd) {\r\n return new _promise.default(function(resolve) {\r\n return this._applyFunctionIfNeeded(\"removeRoutes\", routeOptionsToRemove).then(function(removeValue) {\r\n this._applyFunctionIfNeeded(\"addRoutes\", routeOptionsToAdd).then(function(addValue) {\r\n resolve(addValue ? addValue : removeValue)\r\n })\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n addRoutes: abstract,\r\n removeRoutes: abstract,\r\n clean: abstract,\r\n map: function() {\r\n return this._map\r\n },\r\n isEventsCanceled: function() {\r\n return false\r\n },\r\n _option: function(name, value) {\r\n if (void 0 === value) {\r\n return this._mapWidget.option(name)\r\n }\r\n this._mapWidget.setOptionSilent(name, value)\r\n },\r\n _keyOption: function(providerName) {\r\n var key = this._option(\"apiKey\");\r\n return void 0 === key[providerName] ? key : key[providerName]\r\n },\r\n _parseTooltipOptions: function(option) {\r\n return {\r\n text: option.text || option,\r\n visible: option.isShown || false\r\n }\r\n },\r\n _getLatLng: function(location) {\r\n if (\"string\" === typeof location) {\r\n var coords = (0, _iterator.map)(location.split(\",\"), function(item) {\r\n return item.trim()\r\n });\r\n var numericRegex = /^[-+]?[0-9]*\\.?[0-9]*$/;\r\n if (2 === coords.length && coords[0].match(numericRegex) && coords[1].match(numericRegex)) {\r\n return {\r\n lat: parseFloat(coords[0]),\r\n lng: parseFloat(coords[1])\r\n }\r\n }\r\n } else {\r\n if (Array.isArray(location) && 2 === location.length) {\r\n return {\r\n lat: location[0],\r\n lng: location[1]\r\n }\r\n } else {\r\n if ((0, _type.isPlainObject)(location) && (0, _type.isNumeric)(location.lat) && (0, _type.isNumeric)(location.lng)) {\r\n return location\r\n }\r\n }\r\n }\r\n return null\r\n },\r\n _areBoundsSet: function() {\r\n return this._option(\"bounds.northEast\") && this._option(\"bounds.southWest\")\r\n },\r\n _addEventNamespace: function(name) {\r\n return (0, _index.addNamespace)(name, this._mapWidget.NAME)\r\n },\r\n _applyFunctionIfNeeded: function(fnName, array) {\r\n if (!array.length) {\r\n return _promise.default.resolve()\r\n }\r\n return this[fnName](array)\r\n },\r\n _fireAction: function(name, actionArguments) {\r\n this._mapWidget._createActionByOption(name)(actionArguments)\r\n },\r\n _fireClickAction: function(actionArguments) {\r\n this._fireAction(\"onClick\", actionArguments)\r\n },\r\n _fireMarkerAddedAction: function(actionArguments) {\r\n this._fireAction(\"onMarkerAdded\", actionArguments)\r\n },\r\n _fireMarkerRemovedAction: function(actionArguments) {\r\n this._fireAction(\"onMarkerRemoved\", actionArguments)\r\n },\r\n _fireRouteAddedAction: function(actionArguments) {\r\n this._fireAction(\"onRouteAdded\", actionArguments)\r\n },\r\n _fireRouteRemovedAction: function(actionArguments) {\r\n this._fireAction(\"onRouteRemoved\", actionArguments)\r\n }\r\n});\r\nvar _default = Provider;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/map/provider.dynamic.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _promise = _interopRequireDefault(require(\"../../core/polyfills/promise\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _provider = _interopRequireDefault(require(\"./provider\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar abstract = _provider.default.abstract;\r\nvar DynamicProvider = _provider.default.inherit({\r\n _geocodeLocation: function(location) {\r\n return new _promise.default(function(resolve) {\r\n var cache = this._geocodedLocations;\r\n var cachedLocation = cache[location];\r\n if (cachedLocation) {\r\n resolve(cachedLocation)\r\n } else {\r\n this._geocodeLocationImpl(location).then(function(geocodedLocation) {\r\n cache[location] = geocodedLocation;\r\n resolve(geocodedLocation)\r\n })\r\n }\r\n }.bind(this))\r\n },\r\n _renderImpl: function() {\r\n return this._load().then(function() {\r\n return this._init()\r\n }.bind(this)).then(function() {\r\n return _promise.default.all([this.updateMapType(), this._areBoundsSet() ? this.updateBounds() : this.updateCenter()])\r\n }.bind(this)).then(function() {\r\n this._attachHandlers();\r\n return new _promise.default(function(resolve) {\r\n var timeout = setTimeout(function() {\r\n clearTimeout(timeout);\r\n resolve()\r\n })\r\n })\r\n }.bind(this))\r\n },\r\n _load: function() {\r\n if (!this._mapsLoader) {\r\n this._mapsLoader = this._loadImpl()\r\n }\r\n this._markers = [];\r\n this._routes = [];\r\n return this._mapsLoader\r\n },\r\n _loadImpl: abstract,\r\n _init: abstract,\r\n _attachHandlers: abstract,\r\n addMarkers: function(options) {\r\n return _promise.default.all((0, _iterator.map)(options, function(options) {\r\n return this._addMarker(options)\r\n }.bind(this))).then(function(markerObjects) {\r\n this._fitBounds();\r\n return [false, (0, _iterator.map)(markerObjects, function(markerObject) {\r\n return markerObject.marker\r\n })]\r\n }.bind(this))\r\n },\r\n _addMarker: function(options) {\r\n return this._renderMarker(options).then(function(markerObject) {\r\n this._markers.push((0, _extend.extend)({\r\n options: options\r\n }, markerObject));\r\n this._fireMarkerAddedAction({\r\n options: options,\r\n originalMarker: markerObject.marker\r\n });\r\n return markerObject\r\n }.bind(this))\r\n },\r\n _renderMarker: abstract,\r\n removeMarkers: function(markersOptionsToRemove) {\r\n var that = this;\r\n (0, _iterator.each)(markersOptionsToRemove, function(_, markerOptionToRemove) {\r\n that._removeMarker(markerOptionToRemove)\r\n });\r\n return _promise.default.resolve()\r\n },\r\n _removeMarker: function(markersOptionToRemove) {\r\n var that = this;\r\n (0, _iterator.each)(this._markers, function(markerIndex, markerObject) {\r\n if (markerObject.options !== markersOptionToRemove) {\r\n return true\r\n }\r\n that._destroyMarker(markerObject);\r\n that._markers.splice(markerIndex, 1);\r\n that._fireMarkerRemovedAction({\r\n options: markerObject.options\r\n });\r\n return false\r\n })\r\n },\r\n _destroyMarker: abstract,\r\n _clearMarkers: function() {\r\n while (this._markers.length > 0) {\r\n this._removeMarker(this._markers[0].options)\r\n }\r\n },\r\n addRoutes: function(options) {\r\n return _promise.default.all((0, _iterator.map)(options, function(options) {\r\n return this._addRoute(options)\r\n }.bind(this))).then(function(routeObjects) {\r\n this._fitBounds();\r\n return [false, (0, _iterator.map)(routeObjects, function(routeObject) {\r\n return routeObject.instance\r\n })]\r\n }.bind(this))\r\n },\r\n _addRoute: function(options) {\r\n return this._renderRoute(options).then(function(routeObject) {\r\n this._routes.push((0, _extend.extend)({\r\n options: options\r\n }, routeObject));\r\n this._fireRouteAddedAction({\r\n options: options,\r\n originalRoute: routeObject.instance\r\n });\r\n return routeObject\r\n }.bind(this))\r\n },\r\n _renderRoute: abstract,\r\n removeRoutes: function(options) {\r\n var that = this;\r\n (0, _iterator.each)(options, function(routeIndex, options) {\r\n that._removeRoute(options)\r\n });\r\n return _promise.default.resolve()\r\n },\r\n _removeRoute: function(options) {\r\n var that = this;\r\n (0, _iterator.each)(this._routes, function(routeIndex, routeObject) {\r\n if (routeObject.options !== options) {\r\n return true\r\n }\r\n that._destroyRoute(routeObject);\r\n that._routes.splice(routeIndex, 1);\r\n that._fireRouteRemovedAction({\r\n options: options\r\n });\r\n return false\r\n })\r\n },\r\n _destroyRoute: abstract,\r\n _clearRoutes: function() {\r\n while (this._routes.length > 0) {\r\n this._removeRoute(this._routes[0].options)\r\n }\r\n },\r\n adjustViewport: function() {\r\n return this._fitBounds()\r\n },\r\n isEventsCanceled: function() {\r\n return true\r\n },\r\n _fitBounds: abstract,\r\n _updateBounds: function() {\r\n var that = this;\r\n this._clearBounds();\r\n if (!this._option(\"autoAdjust\")) {\r\n return\r\n }(0, _iterator.each)(this._markers, function(_, markerObject) {\r\n that._extendBounds(markerObject.location)\r\n });\r\n (0, _iterator.each)(this._routes, function(_, routeObject) {\r\n routeObject.northEast && that._extendBounds(routeObject.northEast);\r\n routeObject.southWest && that._extendBounds(routeObject.southWest)\r\n })\r\n },\r\n _clearBounds: function() {\r\n this._bounds = null\r\n },\r\n _extendBounds: abstract\r\n});\r\nvar _default = DynamicProvider;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/list/ui.list.edit.search.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _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.strategy.grouped.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _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 = (1 << SELECTION_SHIFT) - 1;\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.provider.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _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/list/ui.list.edit.decorator.static.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\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.decorator.switchable.button.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _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/list/ui.list.edit.decorator.switchable.slide.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\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.swipe.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\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.decorator.context.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\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/list/item.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _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.edit.decorator.selection.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\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/list/ui.list.edit.decorator.reorder.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\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/multi_view/ui.multi_view.animation.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.animation = exports._translator = void 0;\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _translator2 = require(\"../../animation/translator\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _translator = {\r\n move: function($element, position) {\r\n (0, _translator2.move)($element, {\r\n left: position\r\n })\r\n }\r\n};\r\nexports._translator = _translator;\r\nvar animation = {\r\n moveTo: function($element, position, duration, completeAction) {\r\n _fx.default.animate($element, {\r\n type: \"slide\",\r\n to: {\r\n left: position\r\n },\r\n duration: duration,\r\n complete: completeAction\r\n })\r\n },\r\n complete: function($element) {\r\n _fx.default.stop($element, true)\r\n }\r\n};\r\nexports.animation = animation;\r\n","/**\r\n * DevExtreme (ui/menu/ui.submenu.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _element = require(\"../../core/element\");\r\nvar _position = _interopRequireDefault(require(\"../../animation/position\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _context_menu = _interopRequireDefault(require(\"../context_menu\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar Submenu = function(_ContextMenu) {\r\n _inheritsLoose(Submenu, _ContextMenu);\r\n\r\n function Submenu() {\r\n return _ContextMenu.apply(this, arguments) || this\r\n }\r\n var _proto = Submenu.prototype;\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_ContextMenu.prototype._getDefaultOptions.call(this), {\r\n orientation: \"horizontal\",\r\n tabIndex: null,\r\n onHoverStart: _common.noop\r\n })\r\n };\r\n _proto._initDataAdapter = function() {\r\n this._dataAdapter = this.option(\"_dataAdapter\");\r\n if (!this._dataAdapter) {\r\n _ContextMenu.prototype._initDataAdapter.call(this)\r\n }\r\n };\r\n _proto._renderContentImpl = function() {\r\n this._renderContextMenuOverlay();\r\n _ContextMenu.prototype._renderContentImpl.call(this);\r\n var node = this._dataAdapter.getNodeByKey(this.option(\"_parentKey\"));\r\n node && this._renderItems(this._getChildNodes(node));\r\n this._renderDelimiter()\r\n };\r\n _proto._renderDelimiter = function() {\r\n this.$contentDelimiter = (0, _renderer.default)(\"
\").appendTo(this._itemContainer()).addClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)\r\n };\r\n _proto._getOverlayOptions = function() {\r\n return (0, _extend.extend)(_ContextMenu.prototype._getOverlayOptions.call(this), {\r\n onPositioned: this._overlayPositionedActionHandler.bind(this)\r\n })\r\n };\r\n _proto._overlayPositionedActionHandler = function(arg) {\r\n this._showDelimiter(arg)\r\n };\r\n _proto._hoverEndHandler = function(e) {\r\n _ContextMenu.prototype._hoverEndHandler.call(this, e);\r\n this._toggleFocusClass(false, e.currentTarget)\r\n };\r\n _proto._isMenuHorizontal = function() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n };\r\n _proto._hoverStartHandler = function(e) {\r\n var hoverStartAction = this.option(\"onHoverStart\");\r\n hoverStartAction(e);\r\n _ContextMenu.prototype._hoverStartHandler.call(this, e);\r\n this._toggleFocusClass(true, e.currentTarget)\r\n };\r\n _proto._drawSubmenu = function($rootItem) {\r\n this._actions.onShowing({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: this\r\n });\r\n _ContextMenu.prototype._drawSubmenu.call(this, $rootItem);\r\n this._actions.onShown({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: this\r\n })\r\n };\r\n _proto._hideSubmenu = function($rootItem) {\r\n this._actions.onHiding({\r\n cancel: true,\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: this\r\n });\r\n _ContextMenu.prototype._hideSubmenu.call(this, $rootItem);\r\n this._actions.onHidden({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: this\r\n })\r\n };\r\n _proto._showDelimiter = function(arg) {\r\n if (!this.$contentDelimiter) {\r\n return\r\n }\r\n var $submenu = this._itemContainer().children(\".\".concat(DX_SUBMENU_CLASS)).eq(0);\r\n var $rootItem = this.option(\"position\").of;\r\n var position = {\r\n of: $submenu\r\n };\r\n var containerOffset = arg.position;\r\n var vLocation = containerOffset.v.location;\r\n var hLocation = containerOffset.h.location;\r\n var rootOffset = $rootItem.offset();\r\n var offsetLeft = Math.round(rootOffset.left);\r\n var offsetTop = Math.round(rootOffset.top);\r\n var rootWidth = $rootItem.width();\r\n var rootHeight = $rootItem.height();\r\n var submenuWidth = $submenu.width();\r\n var submenuHeight = $submenu.height();\r\n this.$contentDelimiter.css(\"display\", \"block\");\r\n this.$contentDelimiter.width(this._isMenuHorizontal() ? rootWidth < submenuWidth ? rootWidth - 2 : submenuWidth : 2);\r\n this.$contentDelimiter.height(this._isMenuHorizontal() ? 2 : rootHeight < submenuHeight ? rootHeight - 2 : submenuHeight);\r\n if (this._isMenuHorizontal()) {\r\n if (vLocation > offsetTop) {\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"1 -1\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"-1 -1\";\r\n position.at = position.my = \"right top\"\r\n }\r\n } else {\r\n this.$contentDelimiter.height(5);\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"1 4\";\r\n position.at = position.my = \"left bottom\"\r\n } else {\r\n position.offset = \"-1 2\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n }\r\n } else {\r\n if (hLocation > offsetLeft) {\r\n if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"-1 1\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"-1 -1\";\r\n position.at = position.my = \"left bottom\"\r\n }\r\n } else {\r\n if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"1 1\";\r\n position.at = position.my = \"right top\"\r\n } else {\r\n position.offset = \"1 -1\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n }\r\n }\r\n _position.default.setup(this.$contentDelimiter, position)\r\n };\r\n _proto._getContextMenuPosition = function() {\r\n return this.option(\"position\")\r\n };\r\n _proto.isOverlayVisible = function() {\r\n return this._overlay.option(\"visible\")\r\n };\r\n _proto.getOverlayContent = function() {\r\n return this._overlay.$content()\r\n };\r\n return Submenu\r\n}(_context_menu.default);\r\nvar _default = Submenu;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/lookup.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _support = require(\"../core/utils/support\");\r\nvar _common = require(\"../core/utils/common\");\r\nvar _element = require(\"../core/element\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _utils = require(\"./widget/utils.ink_ripple\");\r\nvar _message = _interopRequireDefault(require(\"../localization/message\"));\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _index = require(\"../events/utils/index\");\r\nvar _ui = _interopRequireDefault(require(\"./drop_down_editor/ui.drop_down_list\"));\r\nvar _themes = require(\"./themes\");\r\nvar _click = require(\"../events/click\");\r\nvar _popover = _interopRequireDefault(require(\"./popover\"));\r\nvar _text_box = _interopRequireDefault(require(\"./text_box\"));\r\nvar _child_default_template = require(\"../core/templates/child_default_template\");\r\nvar _translator = require(\"../animation/translator\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _utils2 = require(\"./drop_down_editor/utils\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar LOOKUP_CLASS = \"dx-lookup\";\r\nvar LOOKUP_SEARCH_CLASS = \"dx-lookup-search\";\r\nvar LOOKUP_SEARCH_WRAPPER_CLASS = \"dx-lookup-search-wrapper\";\r\nvar LOOKUP_FIELD_CLASS = \"dx-lookup-field\";\r\nvar LOOKUP_ARROW_CLASS = \"dx-lookup-arrow\";\r\nvar LOOKUP_FIELD_WRAPPER_CLASS = \"dx-lookup-field-wrapper\";\r\nvar LOOKUP_POPUP_CLASS = \"dx-lookup-popup\";\r\nvar LOOKUP_POPUP_WRAPPER_CLASS = \"dx-lookup-popup-wrapper\";\r\nvar LOOKUP_POPUP_SEARCH_CLASS = \"dx-lookup-popup-search\";\r\nvar LOOKUP_POPOVER_MODE = \"dx-lookup-popover-mode\";\r\nvar LOOKUP_EMPTY_CLASS = \"dx-lookup-empty\";\r\nvar LOOKUP_POPOVER_FLIP_VERTICAL_CLASS = \"dx-popover-flipped-vertical\";\r\nvar TEXTEDITOR_INPUT_CLASS = \"dx-texteditor-input\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_ITEM_SELECTED_CLASS = \"dx-list-item-selected\";\r\nvar GROUP_LIST_HEADER_CLASS = \"dx-list-group-header\";\r\nvar MATERIAL_LOOKUP_LIST_ITEMS_COUNT = 5;\r\nvar MATERIAL_LOOKUP_LIST_PADDING = 8;\r\nvar Lookup = _ui.default.inherit({\r\n _supportedKeys: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._validatedOpening()\r\n },\r\n enter: function() {\r\n this._validatedOpening()\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n placeholder: _message.default.format(\"Select\"),\r\n searchPlaceholder: _message.default.format(\"Search\"),\r\n searchEnabled: true,\r\n cleanSearchOnOpening: true,\r\n showCancelButton: true,\r\n showClearButton: false,\r\n clearButtonText: _message.default.format(\"Clear\"),\r\n applyButtonText: _message.default.format(\"OK\"),\r\n pullRefreshEnabled: false,\r\n useNativeScrolling: true,\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 grouped: false,\r\n groupTemplate: \"group\",\r\n usePopover: false,\r\n showDropDownButton: false,\r\n focusStateEnabled: false,\r\n animation: {},\r\n dropDownOptions: {\r\n showTitle: true,\r\n width: function() {\r\n return .8 * (0, _renderer.default)(window).width()\r\n },\r\n height: function() {\r\n return .8 * (0, _renderer.default)(window).height()\r\n },\r\n shading: true,\r\n closeOnOutsideClick: false,\r\n position: void 0,\r\n animation: {},\r\n title: \"\",\r\n titleTemplate: \"title\",\r\n onTitleRendered: null,\r\n fullScreen: false\r\n },\r\n dropDownCentered: false,\r\n _scrollToSelectedItemEnabled: false,\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var _this = this;\r\n var themeName = (0, _themes.current)();\r\n return this.callBase().concat([{\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 !_devices.default.isSimulator() && \"desktop\" === _devices.default.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n usePopover: true,\r\n dropDownOptions: {\r\n height: \"auto\"\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"ios\",\r\n phone: true\r\n },\r\n options: {\r\n dropDownOptions: {\r\n fullScreen: true\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"ios\",\r\n tablet: true\r\n },\r\n options: {\r\n dropDownOptions: {\r\n width: function() {\r\n return .4 * Math.min((0, _renderer.default)(window).width(), (0, _renderer.default)(window).height())\r\n },\r\n height: \"auto\"\r\n },\r\n usePopover: true,\r\n useInkRipple: false\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === _devices.default.real().deviceType && !_devices.default.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return (0, _themes.isMaterial)(themeName)\r\n },\r\n options: {\r\n usePopover: false,\r\n searchEnabled: false,\r\n showCancelButton: false,\r\n dropDownCentered: true,\r\n _scrollToSelectedItemEnabled: true,\r\n dropDownOptions: {\r\n closeOnOutsideClick: true,\r\n width: function() {\r\n return (0, _utils2.getElementWidth)(_this.$element())\r\n },\r\n height: function() {\r\n return this._getPopupHeight()\r\n }.bind(this),\r\n showTitle: false,\r\n shading: false\r\n }\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initActions()\r\n },\r\n _initActions: function() {\r\n this.callBase();\r\n this._initScrollAction();\r\n this._initPageLoadingAction();\r\n this._initPullRefreshAction()\r\n },\r\n _initPageLoadingAction: function() {\r\n this._pageLoadingAction = this._createActionByOption(\"onPageLoading\")\r\n },\r\n _initPullRefreshAction: function() {\r\n this._pullRefreshAction = this._createActionByOption(\"onPullRefresh\")\r\n },\r\n _initScrollAction: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\")\r\n },\r\n _scrollHandler: function(e) {\r\n this._scrollAction(e)\r\n },\r\n _pullRefreshHandler: function(e) {\r\n this._pullRefreshAction(e)\r\n },\r\n _pageLoadingHandler: function(e) {\r\n this._pageLoadingAction(e)\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n group: new _child_default_template.ChildDefaultTemplate(\"group\"),\r\n title: new _child_default_template.ChildDefaultTemplate(\"title\")\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(LOOKUP_CLASS).toggleClass(LOOKUP_POPOVER_MODE, this.option(\"usePopover\"));\r\n this.callBase()\r\n },\r\n _inputWrapper: function() {\r\n return this.$element().find(\".\" + LOOKUP_FIELD_WRAPPER_CLASS)\r\n },\r\n _dataSourceOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n paginate: true\r\n })\r\n },\r\n _fireContentReadyAction: _common.noop,\r\n _popupWrapperClass: function() {\r\n return \"\"\r\n },\r\n _renderInput: function() {\r\n var _this2 = this;\r\n var fieldClickAction = this._createAction(function() {\r\n _this2._toggleOpenState()\r\n });\r\n this._$field = (0, _renderer.default)(\"
\").addClass(LOOKUP_FIELD_CLASS);\r\n _events_engine.default.on(this._$field, (0, _index.addNamespace)(_click.name, this.NAME), function(e) {\r\n fieldClickAction({\r\n event: e\r\n })\r\n });\r\n var $arrow = (0, _renderer.default)(\"
\").addClass(LOOKUP_ARROW_CLASS);\r\n this._$fieldWrapper = (0, _renderer.default)(\"
\").addClass(LOOKUP_FIELD_WRAPPER_CLASS).append(this._$field).append($arrow).appendTo(this.$element());\r\n this.option(\"useInkRipple\") && this._renderInkRipple()\r\n },\r\n _getInputContainer: function() {\r\n return this._$fieldWrapper\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = (0, _utils.render)()\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: this._inputWrapper(),\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _renderField: function() {\r\n var fieldTemplate = this._getTemplateByOption(\"fieldTemplate\");\r\n if (fieldTemplate && this.option(\"fieldTemplate\")) {\r\n this._renderFieldTemplate(fieldTemplate);\r\n return\r\n }\r\n var displayValue = this.option(\"displayValue\");\r\n this._updateField((0, _type.isDefined)(displayValue) && String(displayValue) || this.option(\"placeholder\"));\r\n this.$element().toggleClass(LOOKUP_EMPTY_CLASS, !this.option(\"selectedItem\"))\r\n },\r\n _renderDisplayText: function(text) {\r\n if (this._input().length) {\r\n this.callBase(text)\r\n } else {\r\n this._updateField(text)\r\n }\r\n },\r\n _updateField: function(text) {\r\n this._$field.text(text)\r\n },\r\n _renderFieldTemplate: function(template) {\r\n this._$field.empty();\r\n var data = this._fieldRenderData();\r\n template.render({\r\n model: data,\r\n container: (0, _element.getPublicElement)(this._$field)\r\n })\r\n },\r\n _fieldRenderData: function() {\r\n return this.option(\"selectedItem\")\r\n },\r\n _popupShowingHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"cleanSearchOnOpening\")) {\r\n if (this.option(\"searchEnabled\") && this._searchBox.option(\"value\")) {\r\n this._searchBox.option(\"value\", \"\");\r\n this._searchCanceled()\r\n }\r\n this._list && this._list.option(\"focusedElement\", null)\r\n }\r\n if (this.option(\"dropDownOptions.fullScreen\") && this.option(\"_scrollToSelectedItemEnabled\")) {\r\n this._popup.option(\"position\").of = (0, _renderer.default)(window)\r\n }\r\n },\r\n _popupShownHandler: function() {\r\n var scrollToSelectedItemEnabled = this.option(\"_scrollToSelectedItemEnabled\");\r\n var fullScreen = this.option(\"dropDownOptions.fullScreen\");\r\n if (!fullScreen && scrollToSelectedItemEnabled) {\r\n this._setPopupPosition()\r\n }\r\n this.callBase()\r\n },\r\n _scrollToSelectedItem: function() {\r\n var selectedIndex = this._list.option(\"selectedIndex\");\r\n var listItems = this._list.option(\"items\");\r\n var itemsCount = listItems.length;\r\n if (0 !== itemsCount) {\r\n if (this._list.option(\"grouped\")) {\r\n this._list.scrollToItem({\r\n group: itemsCount - 1,\r\n item: listItems[itemsCount - 1].items.length - 1\r\n })\r\n } else {\r\n this._list.scrollToItem(itemsCount - 1)\r\n }\r\n this._list.scrollToItem(selectedIndex)\r\n }\r\n },\r\n _getDifferenceOffsets: function(selectedListItem) {\r\n return selectedListItem.offset().top - (0, _renderer.default)(this.element()).offset().top\r\n },\r\n _isCenteringEnabled: function(index, count) {\r\n return 1 < index && index < count - 2\r\n },\r\n _getPopupOffset: function() {\r\n var listItemsCount = this._listItemElements().length;\r\n if (0 === listItemsCount) {\r\n return\r\n }\r\n var selectedListItem = (0, _renderer.default)(this._list.element()).find(\".\" + LIST_ITEM_SELECTED_CLASS);\r\n var selectedIndex = this._listItemElements().index(selectedListItem);\r\n var differenceOfHeights = (selectedListItem.height() - (0, _renderer.default)(this.element()).height()) / 2;\r\n var lookupOffset = (0, _renderer.default)(this._list.element()).offset().top;\r\n var dropDownHeightOption = this.option(\"dropDownOptions.height\");\r\n var popupHeight = \"function\" === typeof dropDownHeightOption ? dropDownHeightOption() : dropDownHeightOption;\r\n var windowHeight = (0, _renderer.default)(window).height();\r\n var offsetTop = 0;\r\n if (selectedIndex !== -1) {\r\n if (this._isCenteringEnabled(selectedIndex, listItemsCount)) {\r\n this._scrollToSelectedItem();\r\n var scrollOffsetTop = (popupHeight - selectedListItem.height()) / 2 - this._getDifferenceOffsets(selectedListItem);\r\n this._list.scrollTo(this._list.scrollTop() + MATERIAL_LOOKUP_LIST_PADDING / 2 - scrollOffsetTop);\r\n offsetTop = differenceOfHeights + this._getDifferenceOffsets(selectedListItem);\r\n if (lookupOffset < offsetTop && selectedIndex !== listItemsCount - 3) {\r\n this._list.scrollTo(this._list.scrollTop() + this._getDifferenceOffsets(selectedListItem) / 2);\r\n offsetTop = differenceOfHeights + this._getDifferenceOffsets(selectedListItem)\r\n }\r\n } else {\r\n if (selectedIndex <= 1) {\r\n this._list.scrollTo(0);\r\n offsetTop = differenceOfHeights + this._getDifferenceOffsets(selectedListItem)\r\n } else {\r\n if (selectedIndex >= listItemsCount - 2) {\r\n this._scrollToSelectedItem();\r\n offsetTop = differenceOfHeights + this._getDifferenceOffsets(selectedListItem)\r\n }\r\n }\r\n }\r\n if (lookupOffset < offsetTop) {\r\n this._scrollToSelectedItem();\r\n offsetTop = differenceOfHeights + MATERIAL_LOOKUP_LIST_PADDING\r\n }\r\n }\r\n var offsetBottom = popupHeight - offsetTop - (0, _renderer.default)(this.element()).height();\r\n if (windowHeight - lookupOffset < offsetBottom) {\r\n this._list.scrollTo(this._list.scrollTop() + differenceOfHeights - offsetBottom);\r\n offsetTop = popupHeight - (0, _renderer.default)(this.element()).height() - MATERIAL_LOOKUP_LIST_PADDING\r\n }\r\n return offsetTop\r\n },\r\n _setPopupPosition: function() {\r\n if (!this.option(\"dropDownCentered\")) {\r\n return\r\n }\r\n var flipped = this._popup.$wrapper().hasClass(LOOKUP_POPOVER_FLIP_VERTICAL_CLASS);\r\n if (flipped) {\r\n return\r\n }\r\n var popupContentParent = (0, _renderer.default)(this._popup.$content()).parent();\r\n var popupOffset = this._getPopupOffset();\r\n var position = (0, _translator.locate)(popupContentParent);\r\n (0, _translator.move)(popupContentParent, {\r\n top: position.top - popupOffset\r\n })\r\n },\r\n _listItemGroupedElements: function() {\r\n var groups = this._list._itemContainer().children();\r\n var items = [];\r\n groups.each(function(_, group) {\r\n items.push((0, _renderer.default)(group).find(\".\" + GROUP_LIST_HEADER_CLASS)[0]);\r\n var groupedItems = (0, _renderer.default)(group).find(\".\" + LIST_ITEM_CLASS);\r\n groupedItems.each(function(_, item) {\r\n items.push(item)\r\n })\r\n });\r\n return (0, _renderer.default)(items)\r\n },\r\n _calculateListHeight: function(grouped) {\r\n var listItems = grouped ? this._listItemGroupedElements() : this._listItemElements();\r\n var selectedListItem = (0, _renderer.default)(\".\" + LIST_ITEM_SELECTED_CLASS);\r\n var selectedIndex = listItems.index(selectedListItem);\r\n var listHeight = 0;\r\n var requireListItems = [];\r\n if (0 === listItems.length) {\r\n listHeight += MATERIAL_LOOKUP_LIST_PADDING\r\n } else {\r\n if (listItems.length < MATERIAL_LOOKUP_LIST_ITEMS_COUNT) {\r\n listItems.each(function(_, item) {\r\n listHeight += (0, _renderer.default)(item).outerHeight()\r\n })\r\n } else {\r\n if (selectedIndex <= 1) {\r\n requireListItems = listItems.slice(0, MATERIAL_LOOKUP_LIST_ITEMS_COUNT)\r\n } else {\r\n if (this._isCenteringEnabled(selectedIndex, listItems.length)) {\r\n requireListItems = listItems.slice(selectedIndex - 2, selectedIndex + 3)\r\n } else {\r\n requireListItems = listItems.slice(listItems.length - MATERIAL_LOOKUP_LIST_ITEMS_COUNT, listItems.length)\r\n }\r\n }\r\n requireListItems.each(function(_, item) {\r\n listHeight += (0, _renderer.default)(item).outerHeight()\r\n })\r\n }\r\n }\r\n return listHeight + (grouped ? MATERIAL_LOOKUP_LIST_PADDING : 2 * MATERIAL_LOOKUP_LIST_PADDING)\r\n },\r\n _getPopupHeight: function() {\r\n if (this._list && this._list.itemElements()) {\r\n return this._calculateListHeight(this.option(\"grouped\")) + (this._$searchWrapper ? this._$searchWrapper.outerHeight() : 0) + (this._popup._$bottom ? this._popup._$bottom.outerHeight() : 0) + (this._popup._$title ? this._popup._$title.outerHeight() : 0)\r\n } else {\r\n return \"auto\"\r\n }\r\n },\r\n _renderPopup: function() {\r\n if (this.option(\"usePopover\") && !this.option(\"dropDownOptions.fullScreen\")) {\r\n if (this.option(\"_scrollToSelectedItemEnabled\")) {\r\n this.callBase()\r\n } else {\r\n this._renderPopover()\r\n }\r\n } else {\r\n this.callBase()\r\n }\r\n this._$popup.addClass(LOOKUP_POPUP_CLASS);\r\n this._popup.$wrapper().addClass(LOOKUP_POPUP_WRAPPER_CLASS)\r\n },\r\n _renderPopover: function() {\r\n this._popup = this._createComponent(this._$popup, _popover.default, (0, _extend.extend)(this._popupConfig(), this._options.cache(\"dropDownOptions\"), {\r\n showEvent: null,\r\n hideEvent: null,\r\n target: this.$element(),\r\n _fixedPosition: false,\r\n fullScreen: false,\r\n shading: false,\r\n closeOnTargetScroll: true,\r\n width: this._isInitialOptionValue(\"dropDownOptions.width\") ? function() {\r\n return this.$element().outerWidth()\r\n }.bind(this) : this._popupConfig().width\r\n }));\r\n this._popup.on({\r\n showing: this._popupShowingHandler.bind(this),\r\n shown: this._popupShownHandler.bind(this),\r\n hiding: this._popupHidingHandler.bind(this),\r\n hidden: this._popupHiddenHandler.bind(this),\r\n contentReady: this._contentReadyHandler.bind(this)\r\n });\r\n if (this.option(\"_scrollToSelectedItemEnabled\")) {\r\n this._popup._$arrow.remove()\r\n }\r\n this._setPopupContentId(this._popup.$content());\r\n this._contentReadyHandler()\r\n },\r\n _popupHidingHandler: function() {\r\n this.callBase();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n if (this.option(\"_scrollToSelectedItemEnabled\")) {\r\n (0, _translator.resetPosition)((0, _renderer.default)(this._popup.content()).parent())\r\n }\r\n },\r\n _preventFocusOnPopup: _common.noop,\r\n _popupConfig: function() {\r\n var _this3 = this;\r\n var result = (0, _extend.extend)(this.callBase(), {\r\n toolbarItems: this._getPopupToolbarItems(),\r\n closeOnTargetScroll: false,\r\n onPositioned: null,\r\n maxHeight: function() {\r\n return (0, _renderer.default)(window).height()\r\n },\r\n showTitle: this.option(\"dropDownOptions.showTitle\"),\r\n title: this.option(\"dropDownOptions.title\"),\r\n titleTemplate: this._getTemplateByOption(\"dropDownOptions.titleTemplate\"),\r\n onTitleRendered: this.option(\"dropDownOptions.onTitleRendered\"),\r\n fullScreen: this.option(\"dropDownOptions.fullScreen\"),\r\n shading: this.option(\"dropDownOptions.shading\"),\r\n closeOnOutsideClick: this.option(\"dropDownOptions.closeOnOutsideClick\")\r\n });\r\n delete result.animation;\r\n delete result.position;\r\n if (this.option(\"_scrollToSelectedItemEnabled\")) {\r\n result.position = this.option(\"dropDownCentered\") ? {\r\n my: \"left top\",\r\n at: \"left top\",\r\n of: this.element()\r\n } : {\r\n my: \"left top\",\r\n at: \"left bottom\",\r\n of: this.element()\r\n };\r\n result.closeOnTargetScroll = true\r\n }(0, _iterator.each)([\"position\", \"animation\", \"width\", \"height\"], function(_, optionName) {\r\n var popupOptionValue = _this3.option(\"dropDownOptions.\".concat(optionName));\r\n if (void 0 !== popupOptionValue) {\r\n result[optionName] = popupOptionValue\r\n }\r\n });\r\n return result\r\n },\r\n _getPopupToolbarItems: function() {\r\n var buttonsConfig = \"useButtons\" === this.option(\"applyValueMode\") ? this._popupToolbarItemsConfig() : [];\r\n var cancelButton = this._getCancelButtonConfig();\r\n if (cancelButton) {\r\n buttonsConfig.push(cancelButton)\r\n }\r\n var clearButton = this._getClearButtonConfig();\r\n if (clearButton) {\r\n buttonsConfig.push(clearButton)\r\n }\r\n return this._applyButtonsLocation(buttonsConfig)\r\n },\r\n _popupToolbarItemsConfig: function() {\r\n return [{\r\n shortcut: \"done\",\r\n options: {\r\n onClick: this._applyButtonHandler.bind(this),\r\n text: this.option(\"applyButtonText\")\r\n }\r\n }]\r\n },\r\n _getCancelButtonConfig: function() {\r\n var _this4 = this;\r\n return this.option(\"showCancelButton\") ? {\r\n shortcut: \"cancel\",\r\n onClick: this._cancelButtonHandler.bind(this),\r\n options: {\r\n onInitialized: function(e) {\r\n e.component.registerKeyHandler(\"escape\", _this4.close.bind(_this4))\r\n },\r\n text: this.option(\"cancelButtonText\")\r\n }\r\n } : null\r\n },\r\n _getClearButtonConfig: function() {\r\n return this.option(\"showClearButton\") ? {\r\n shortcut: \"clear\",\r\n onClick: this._resetValue.bind(this),\r\n options: {\r\n text: this.option(\"clearButtonText\")\r\n }\r\n } : null\r\n },\r\n _applyButtonHandler: function(args) {\r\n if (args) {\r\n this._saveValueChangeEvent(args.event)\r\n }\r\n this.option(\"value\", this._valueGetter(this._currentSelectedItem()));\r\n this.callBase()\r\n },\r\n _cancelButtonHandler: function() {\r\n this._refreshSelected();\r\n this.callBase()\r\n },\r\n _refreshPopupVisibility: function() {\r\n if (this.option(\"opened\")) {\r\n this._updatePopupDimensions()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n if (this.option(\"usePopover\") && !this.option(\"dropDownOptions.width\")) {\r\n this.option(\"dropDownOptions.width\", this.$element().width())\r\n }\r\n this._popup && this._updatePopupDimensions()\r\n },\r\n _input: function() {\r\n return this._$searchBox || this.callBase()\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._renderSearch()\r\n },\r\n _renderSearch: function() {\r\n var _this5 = this;\r\n var isSearchEnabled = this.option(\"searchEnabled\");\r\n this._toggleSearchClass(isSearchEnabled);\r\n if (isSearchEnabled) {\r\n var $searchWrapper = this._$searchWrapper = (0, _renderer.default)(\"
\").addClass(LOOKUP_SEARCH_WRAPPER_CLASS);\r\n var $searchBox = this._$searchBox = (0, _renderer.default)(\"
\").addClass(LOOKUP_SEARCH_CLASS).appendTo($searchWrapper);\r\n var currentDevice = _devices.default.current();\r\n var searchMode = currentDevice.android && currentDevice.version[0] >= 5 ? \"text\" : \"search\";\r\n var isKeyboardListeningEnabled = false;\r\n this._searchBox = this._createComponent($searchBox, _text_box.default, {\r\n onDisposing: function() {\r\n return isKeyboardListeningEnabled = false\r\n },\r\n onFocusIn: function() {\r\n return isKeyboardListeningEnabled = true\r\n },\r\n onFocusOut: function() {\r\n return isKeyboardListeningEnabled = false\r\n },\r\n onKeyboardHandled: function(opts) {\r\n return isKeyboardListeningEnabled && _this5._list._keyboardHandler(opts)\r\n },\r\n mode: searchMode,\r\n showClearButton: true,\r\n valueChangeEvent: this.option(\"valueChangeEvent\"),\r\n onValueChanged: function(e) {\r\n _this5._searchHandler(e)\r\n }\r\n });\r\n this._registerSearchKeyHandlers();\r\n $searchWrapper.insertBefore(this._$list);\r\n this._setSearchPlaceholder()\r\n }\r\n },\r\n _removeSearch: function() {\r\n this._$searchWrapper && this._$searchWrapper.remove();\r\n delete this._$searchWrapper;\r\n this._$searchBox && this._$searchBox.remove();\r\n delete this._$searchBox;\r\n delete this._searchBox\r\n },\r\n _selectListItemHandler: function(e) {\r\n var $itemElement = (0, _renderer.default)(this._list.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n e.preventDefault();\r\n e.target = $itemElement.get(0);\r\n this._saveValueChangeEvent(e);\r\n this._selectListItem(e.itemData, $itemElement)\r\n },\r\n _registerSearchKeyHandlers: function() {\r\n this._searchBox.registerKeyHandler(\"escape\", this.close.bind(this));\r\n this._searchBox.registerKeyHandler(\"enter\", this._selectListItemHandler.bind(this));\r\n this._searchBox.registerKeyHandler(\"space\", this._selectListItemHandler.bind(this));\r\n this._searchBox.registerKeyHandler(\"end\", _common.noop);\r\n this._searchBox.registerKeyHandler(\"home\", _common.noop)\r\n },\r\n _toggleSearchClass: function(isSearchEnabled) {\r\n if (this._popup) {\r\n this._popup.$wrapper().toggleClass(LOOKUP_POPUP_SEARCH_CLASS, isSearchEnabled)\r\n }\r\n },\r\n _setSearchPlaceholder: function() {\r\n if (!this._$searchBox) {\r\n return\r\n }\r\n var minSearchLength = this.option(\"minSearchLength\");\r\n var placeholder = this.option(\"searchPlaceholder\");\r\n if (minSearchLength && placeholder === _message.default.format(\"Search\")) {\r\n placeholder = _message.default.getFormatter(\"dxLookup-searchPlaceholder\")(minSearchLength)\r\n }\r\n this._searchBox.option(\"placeholder\", placeholder)\r\n },\r\n _setAriaTargetForList: _common.noop,\r\n _renderList: function() {\r\n var _this6 = this;\r\n this.callBase();\r\n this._list.registerKeyHandler(\"escape\", function() {\r\n _this6.close()\r\n })\r\n },\r\n _listConfig: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n tabIndex: 0,\r\n grouped: this.option(\"grouped\"),\r\n groupTemplate: this._getTemplateByOption(\"groupTemplate\"),\r\n pullRefreshEnabled: this.option(\"pullRefreshEnabled\"),\r\n useNativeScrolling: this.option(\"useNativeScrolling\"),\r\n pullingDownText: this.option(\"pullingDownText\"),\r\n pulledDownText: this.option(\"pulledDownText\"),\r\n refreshingText: this.option(\"refreshingText\"),\r\n pageLoadingText: this.option(\"pageLoadingText\"),\r\n onScroll: this._scrollHandler.bind(this),\r\n onPullRefresh: this._pullRefreshHandler.bind(this),\r\n onPageLoading: this._pageLoadingHandler.bind(this),\r\n pageLoadMode: this.option(\"pageLoadMode\"),\r\n nextButtonText: this.option(\"nextButtonText\"),\r\n indicateLoading: this.option(\"searchEnabled\"),\r\n onSelectionChanged: this._getSelectionChangedHandler()\r\n })\r\n },\r\n _getSelectionChangedHandler: function() {\r\n return this.option(\"showSelectionControls\") ? this._selectionChangeHandler.bind(this) : _common.noop\r\n },\r\n _listContentReadyHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._refreshSelected()\r\n },\r\n _runWithoutCloseOnScroll: function(callback) {\r\n var _this7 = this;\r\n var _this$option = this.option(),\r\n _scrollToSelectedItemEnabled = _this$option._scrollToSelectedItemEnabled;\r\n var closeOnTargetScroll = this._popup.option(\"closeOnTargetScroll\");\r\n if (!_scrollToSelectedItemEnabled) {\r\n callback()\r\n } else {\r\n this._popup.option(\"closeOnTargetScroll\", false);\r\n callback();\r\n this._closeOnTargetScrollTimer = setTimeout(function() {\r\n _this7._popup.option(\"closeOnTargetScroll\", closeOnTargetScroll)\r\n })\r\n }\r\n },\r\n _setFocusPolicy: function() {\r\n var _this8 = this;\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n this._runWithoutCloseOnScroll(function() {\r\n if (_this8.option(\"searchEnabled\")) {\r\n _this8._searchBox.focus()\r\n } else {\r\n _events_engine.default.trigger(_this8._$list, \"focus\")\r\n }\r\n })\r\n },\r\n _focusTarget: function() {\r\n return this._$field\r\n },\r\n _keyboardEventBindingTarget: function() {\r\n return this._$field\r\n },\r\n _listItemClickHandler: function(e) {\r\n this._saveValueChangeEvent(e.event);\r\n this._selectListItem(e.itemData, e.event.currentTarget)\r\n },\r\n _selectListItem: function(itemData, target) {\r\n this._list.selectItem(target);\r\n if (\"instantly\" === this.option(\"applyValueMode\")) {\r\n this._applyButtonHandler()\r\n }\r\n },\r\n _currentSelectedItem: function() {\r\n return this.option(\"grouped\") ? this._list.option(\"selectedItems[0]\").items[0] : this._list.option(\"selectedItems[0]\")\r\n },\r\n _resetValue: function(e) {\r\n this._saveValueChangeEvent(e.event);\r\n this.option(\"value\", null);\r\n this.option(\"opened\", false)\r\n },\r\n _searchValue: function() {\r\n return this.option(\"searchEnabled\") && this._searchBox ? this._searchBox.option(\"value\") : \"\"\r\n },\r\n _renderInputValue: function() {\r\n var _this9 = this;\r\n return this.callBase().always(function() {\r\n _this9._refreshSelected()\r\n })\r\n },\r\n _renderPlaceholder: function() {\r\n if (0 === this.$element().find(\".\" + TEXTEDITOR_INPUT_CLASS).length) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _clean: function() {\r\n this._$fieldWrapper.remove();\r\n clearTimeout(this._closeOnTargetScrollTimer);\r\n this._closeOnTargetScrollTimer = null;\r\n this._$searchBox = null;\r\n delete this._inkRipple;\r\n this.callBase()\r\n },\r\n _setDeprecatedOptions: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._deprecatedOptions, {\r\n title: {\r\n since: \"20.1\",\r\n alias: \"dropDownOptions.title\"\r\n },\r\n titleTemplate: {\r\n since: \"20.1\",\r\n alias: \"dropDownOptions.titleTemplate\"\r\n },\r\n onTitleRendered: {\r\n since: \"20.1\",\r\n alias: \"dropDownOptions.onTitleRendered\"\r\n },\r\n fullScreen: {\r\n since: \"20.1\",\r\n alias: \"dropDownOptions.fullScreen\"\r\n },\r\n popupWidth: {\r\n since: \"20.1\",\r\n alias: \"dropDownOptions.width\"\r\n },\r\n popupHeight: {\r\n since: \"20.1\",\r\n alias: \"dropDownOptions.height\"\r\n },\r\n shading: {\r\n since: \"20.1\",\r\n alias: \"dropDownOptions.shading\"\r\n },\r\n closeOnOutsideClick: {\r\n since: \"20.1\",\r\n alias: \"dropDownOptions.closeOnOutsideClick\"\r\n },\r\n position: {\r\n since: \"20.1\",\r\n alias: \"dropDownOptions.position\"\r\n },\r\n animation: {\r\n since: \"20.1\",\r\n alias: \"dropDownOptions.animation\"\r\n }\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var value = args.value;\r\n switch (name) {\r\n case \"dataSource\":\r\n this.callBase.apply(this, arguments);\r\n this._renderField();\r\n break;\r\n case \"searchEnabled\":\r\n if (this._popup) {\r\n this._removeSearch();\r\n this._renderSearch()\r\n }\r\n break;\r\n case \"searchPlaceholder\":\r\n this._setSearchPlaceholder();\r\n break;\r\n case \"minSearchLength\":\r\n this._setSearchPlaceholder();\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"title\":\r\n case \"titleTemplate\":\r\n case \"onTitleRendered\":\r\n case \"shading\":\r\n case \"animation\":\r\n case \"position\":\r\n case \"closeOnOutsideClick\":\r\n case \"fullScreen\":\r\n this._setPopupOption(name, value);\r\n break;\r\n case \"usePopover\":\r\n case \"placeholder\":\r\n this._invalidate();\r\n break;\r\n case \"clearButtonText\":\r\n case \"showClearButton\":\r\n case \"showCancelButton\":\r\n this._setPopupOption(\"toolbarItems\", this._getPopupToolbarItems());\r\n break;\r\n case \"applyValueMode\":\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"popupWidth\":\r\n this._setPopupOption(\"width\", \"auto\" === value ? this.initialOption(\"dropDownOptions\").width : value);\r\n break;\r\n case \"popupHeight\":\r\n this._setPopupOption(\"height\", \"auto\" === value ? this.initialOption(\"dropDownOptions\").height : value);\r\n break;\r\n case \"onPageLoading\":\r\n this._initPageLoadingAction();\r\n break;\r\n case \"onPullRefresh\":\r\n this._initPullRefreshAction();\r\n break;\r\n case \"pullRefreshEnabled\":\r\n case \"useNativeScrolling\":\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"pageLoadingText\":\r\n case \"nextButtonText\":\r\n case \"grouped\":\r\n case \"groupTemplate\":\r\n this._setListOption(name);\r\n break;\r\n case \"onScroll\":\r\n this._initScrollAction();\r\n break;\r\n case \"pageLoadMode\":\r\n this._setListOption(\"pageLoadMode\", this.option(\"pageLoadMode\"));\r\n break;\r\n case \"cleanSearchOnOpening\":\r\n case \"_scrollToSelectedItemEnabled\":\r\n break;\r\n case \"dropDownCentered\":\r\n if (this.option(\"_scrollToSelectedItemEnabled\")) {\r\n this.option(\"dropDownOptions.position\", void 0);\r\n this._renderPopup()\r\n }\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n focus: function() {\r\n this.option(\"opened\") ? this._setFocusPolicy() : _events_engine.default.trigger(this._focusTarget(), \"focus\")\r\n },\r\n field: function() {\r\n return this._$field\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxLookup\", Lookup);\r\nvar _default = Lookup;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/map.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _promise = _interopRequireDefault(require(\"../core/polyfills/promise\"));\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _ui = _interopRequireDefault(require(\"./widget/ui.errors\"));\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _ui2 = _interopRequireDefault(require(\"./widget/ui.widget\"));\r\nvar _inflector = require(\"../core/utils/inflector\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _array = require(\"../core/utils/array\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _index = require(\"../events/utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../events/pointer\"));\r\nvar _provider = _interopRequireDefault(require(\"./map/provider.google_static\"));\r\nvar _providerDynamic = _interopRequireDefault(require(\"./map/provider.dynamic.google\"));\r\nvar _providerDynamic2 = _interopRequireDefault(require(\"./map/provider.dynamic.bing\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar PROVIDERS = {\r\n googleStatic: _provider.default,\r\n google: _providerDynamic.default,\r\n bing: _providerDynamic2.default\r\n};\r\nvar MAP_CLASS = \"dx-map\";\r\nvar MAP_CONTAINER_CLASS = \"dx-map-container\";\r\nvar MAP_SHIELD_CLASS = \"dx-map-shield\";\r\nvar NATIVE_CLICK_CLASS = \"dx-native-click\";\r\nvar Map = _ui2.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n bounds: {\r\n northEast: null,\r\n southWest: null\r\n },\r\n center: {\r\n lat: 0,\r\n lng: 0\r\n },\r\n zoom: 1,\r\n width: 300,\r\n height: 300,\r\n type: \"roadmap\",\r\n provider: \"google\",\r\n autoAdjust: true,\r\n markers: [],\r\n markerIconSrc: null,\r\n onMarkerAdded: null,\r\n onMarkerRemoved: null,\r\n routes: [],\r\n onRouteAdded: null,\r\n onRouteRemoved: null,\r\n key: {\r\n bing: \"\",\r\n google: \"\",\r\n googleStatic: \"\"\r\n },\r\n apiKey: {\r\n bing: \"\",\r\n google: \"\",\r\n googleStatic: \"\"\r\n },\r\n controls: false,\r\n onReady: null,\r\n onUpdated: null,\r\n onClick: null\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 _setDeprecatedOptions: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._deprecatedOptions, {\r\n key: {\r\n since: \"20.2\",\r\n alias: \"apiKey\"\r\n }\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(MAP_CLASS).addClass(NATIVE_CLICK_CLASS);\r\n this._lastAsyncAction = _promise.default.resolve();\r\n this._checkOption(\"provider\");\r\n this._checkOption(\"markers\");\r\n this._checkOption(\"routes\");\r\n this._initContainer();\r\n this._grabEvents();\r\n this._rendered = {}\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _checkOption: function(option) {\r\n var value = this.option(option);\r\n if (\"markers\" === option && !Array.isArray(value)) {\r\n throw _ui.default.Error(\"E1022\")\r\n }\r\n if (\"routes\" === option && !Array.isArray(value)) {\r\n throw _ui.default.Error(\"E1023\")\r\n }\r\n },\r\n _initContainer: function() {\r\n this._$container = (0, _renderer.default)(\"
\").addClass(MAP_CONTAINER_CLASS);\r\n this.$element().append(this._$container)\r\n },\r\n _grabEvents: function() {\r\n var eventName = (0, _index.addNamespace)(_pointer.default.down, this.NAME);\r\n _events_engine.default.on(this.$element(), eventName, this._cancelEvent.bind(this))\r\n },\r\n _cancelEvent: function(e) {\r\n var cancelByProvider = this._provider && this._provider.isEventsCanceled(e) && !this.option(\"disabled\");\r\n if (cancelByProvider) {\r\n e.stopPropagation()\r\n }\r\n },\r\n _saveRendered: function(option) {\r\n var value = this.option(option);\r\n this._rendered[option] = value.slice()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderShield();\r\n this._saveRendered(\"markers\");\r\n this._saveRendered(\"routes\");\r\n this._provider = new(PROVIDERS[this.option(\"provider\")])(this, this._$container);\r\n this._queueAsyncAction(\"render\", this._rendered.markers, this._rendered.routes)\r\n },\r\n _renderShield: function() {\r\n var $shield;\r\n if (this.option(\"disabled\")) {\r\n $shield = (0, _renderer.default)(\"
\").addClass(MAP_SHIELD_CLASS);\r\n this.$element().append($shield)\r\n } else {\r\n $shield = this.$element().find(\".\" + MAP_SHIELD_CLASS);\r\n $shield.remove()\r\n }\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n if (this._provider) {\r\n this._provider.clean()\r\n }\r\n this._provider = null;\r\n this._lastAsyncAction = _promise.default.resolve();\r\n this.setOptionSilent(\"bounds\", {\r\n northEast: null,\r\n southWest: null\r\n });\r\n delete this._suppressAsyncAction\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var changeBag = this._optionChangeBag;\r\n this._optionChangeBag = null;\r\n switch (name) {\r\n case \"disabled\":\r\n this._renderShield();\r\n this.callBase(args);\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"provider\":\r\n this._suppressAsyncAction = true;\r\n this._invalidate();\r\n break;\r\n case \"key\":\r\n case \"apiKey\":\r\n _ui.default.log(\"W1001\");\r\n break;\r\n case \"bounds\":\r\n this._queueAsyncAction(\"updateBounds\");\r\n break;\r\n case \"center\":\r\n this._queueAsyncAction(\"updateCenter\");\r\n break;\r\n case \"zoom\":\r\n this._queueAsyncAction(\"updateZoom\");\r\n break;\r\n case \"type\":\r\n this._queueAsyncAction(\"updateMapType\");\r\n break;\r\n case \"controls\":\r\n this._queueAsyncAction(\"updateControls\", this._rendered.markers, this._rendered.routes);\r\n break;\r\n case \"autoAdjust\":\r\n this._queueAsyncAction(\"adjustViewport\");\r\n break;\r\n case \"markers\":\r\n case \"routes\":\r\n this._checkOption(name);\r\n var prevValue = this._rendered[name];\r\n this._saveRendered(name);\r\n this._queueAsyncAction(\"update\" + (0, _inflector.titleize)(name), changeBag ? changeBag.removed : prevValue, changeBag ? changeBag.added : this._rendered[name]).then(function(result) {\r\n if (changeBag) {\r\n changeBag.resolve(result)\r\n }\r\n });\r\n break;\r\n case \"markerIconSrc\":\r\n this._queueAsyncAction(\"updateMarkers\", this._rendered.markers, this._rendered.markers);\r\n break;\r\n case \"onReady\":\r\n case \"onUpdated\":\r\n case \"onMarkerAdded\":\r\n case \"onMarkerRemoved\":\r\n case \"onRouteAdded\":\r\n case \"onRouteRemoved\":\r\n case \"onClick\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._queueAsyncAction(\"updateDimensions\")\r\n },\r\n _queueAsyncAction: function(name) {\r\n var options = [].slice.call(arguments).slice(1);\r\n var isActionSuppressed = this._suppressAsyncAction;\r\n this._lastAsyncAction = this._lastAsyncAction.then(function() {\r\n if (!this._provider || isActionSuppressed) {\r\n return _promise.default.resolve()\r\n }\r\n return this._provider[name].apply(this._provider, options).then(function(result) {\r\n result = (0, _array.wrapToArray)(result);\r\n var mapRefreshed = result[0];\r\n if (mapRefreshed && !this._disposed) {\r\n this._triggerReadyAction()\r\n }\r\n return result[1]\r\n }.bind(this))\r\n }.bind(this));\r\n return this._lastAsyncAction\r\n },\r\n _triggerReadyAction: function() {\r\n this._createActionByOption(\"onReady\")({\r\n originalMap: this._provider.map()\r\n })\r\n },\r\n _triggerUpdateAction: function() {\r\n this._createActionByOption(\"onUpdated\")()\r\n },\r\n setOptionSilent: function(name, value) {\r\n this._setOptionWithoutOptionChange(name, value)\r\n },\r\n addMarker: function(marker) {\r\n return this._addFunction(\"markers\", marker)\r\n },\r\n removeMarker: function(marker) {\r\n return this._removeFunction(\"markers\", marker)\r\n },\r\n addRoute: function(route) {\r\n return this._addFunction(\"routes\", route)\r\n },\r\n removeRoute: function(route) {\r\n return this._removeFunction(\"routes\", route)\r\n },\r\n _addFunction: function(optionName, addingValue) {\r\n var optionValue = this.option(optionName);\r\n var addingValues = (0, _array.wrapToArray)(addingValue);\r\n optionValue.push.apply(optionValue, addingValues);\r\n return this._partialArrayOptionChange(optionName, optionValue, addingValues, [])\r\n },\r\n _removeFunction: function(optionName, removingValue) {\r\n var optionValue = this.option(optionName);\r\n var removingValues = (0, _array.wrapToArray)(removingValue);\r\n (0, _iterator.each)(removingValues, function(removingIndex, removingValue) {\r\n var index = (0, _type.isNumeric)(removingValue) ? removingValue : (0, _array.inArray)(removingValue, optionValue);\r\n if (index !== -1) {\r\n var removing = optionValue.splice(index, 1)[0];\r\n removingValues.splice(removingIndex, 1, removing)\r\n } else {\r\n throw _ui.default.log(\"E1021\", (0, _inflector.titleize)(optionName.substring(0, optionName.length - 1)), removingValue)\r\n }\r\n });\r\n return this._partialArrayOptionChange(optionName, optionValue, [], removingValues)\r\n },\r\n _partialArrayOptionChange: function(optionName, optionValue, addingValues, removingValues) {\r\n return (0, _deferred.fromPromise)(new _promise.default(function(resolve) {\r\n this._optionChangeBag = {\r\n resolve: resolve,\r\n added: addingValues,\r\n removed: removingValues\r\n };\r\n this.option(optionName, optionValue)\r\n }.bind(this)).then(function(result) {\r\n return result && 1 === result.length ? result[0] : result\r\n }), this)\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxMap\", Map);\r\nvar _default = Map;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/map/provider.google_static.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _promise = _interopRequireDefault(require(\"../../core/polyfills/promise\"));\r\nvar _provider = _interopRequireDefault(require(\"./provider\"));\r\nvar _color = _interopRequireDefault(require(\"../../color\"));\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 GOOGLE_STATIC_URL = \"https://maps.google.com/maps/api/staticmap?\";\r\nvar GoogleStaticProvider = _provider.default.inherit({\r\n _locationToString: function(location) {\r\n var latLng = this._getLatLng(location);\r\n return latLng ? latLng.lat + \",\" + latLng.lng : location.toString().replace(/ /g, \"+\")\r\n },\r\n _renderImpl: function() {\r\n return this._updateMap()\r\n },\r\n updateDimensions: function() {\r\n return this._updateMap()\r\n },\r\n updateMapType: function() {\r\n return this._updateMap()\r\n },\r\n updateBounds: function() {\r\n return _promise.default.resolve()\r\n },\r\n updateCenter: function() {\r\n return this._updateMap()\r\n },\r\n updateZoom: function() {\r\n return this._updateMap()\r\n },\r\n updateControls: function() {\r\n return _promise.default.resolve()\r\n },\r\n addMarkers: function(options) {\r\n var that = this;\r\n return this._updateMap().then(function(result) {\r\n (0, _iterator.each)(options, function(_, options) {\r\n that._fireMarkerAddedAction({\r\n options: options\r\n })\r\n });\r\n return result\r\n })\r\n },\r\n removeMarkers: function(options) {\r\n var that = this;\r\n return this._updateMap().then(function(result) {\r\n (0, _iterator.each)(options, function(_, options) {\r\n that._fireMarkerRemovedAction({\r\n options: options\r\n })\r\n });\r\n return result\r\n })\r\n },\r\n adjustViewport: function() {\r\n return _promise.default.resolve()\r\n },\r\n addRoutes: function(options) {\r\n var that = this;\r\n return this._updateMap().then(function(result) {\r\n (0, _iterator.each)(options, function(_, options) {\r\n that._fireRouteAddedAction({\r\n options: options\r\n })\r\n });\r\n return result\r\n })\r\n },\r\n removeRoutes: function(options) {\r\n var that = this;\r\n return this._updateMap().then(function(result) {\r\n (0, _iterator.each)(options, function(_, options) {\r\n that._fireRouteRemovedAction({\r\n options: options\r\n })\r\n });\r\n return result\r\n })\r\n },\r\n clean: function() {\r\n this._$container.css(\"backgroundImage\", \"none\");\r\n _events_engine.default.off(this._$container, this._addEventNamespace(_click.name));\r\n return _promise.default.resolve()\r\n },\r\n mapRendered: function() {\r\n return true\r\n },\r\n _updateMap: function() {\r\n var key = this._keyOption(\"googleStatic\");\r\n var $container = this._$container;\r\n var requestOptions = [\"sensor=false\", \"size=\" + Math.round($container.width()) + \"x\" + Math.round($container.height()), \"maptype=\" + this._option(\"type\"), \"center=\" + this._locationToString(this._option(\"center\")), \"zoom=\" + this._option(\"zoom\"), this._markersSubstring()];\r\n requestOptions.push.apply(requestOptions, this._routeSubstrings());\r\n if (key) {\r\n requestOptions.push(\"key=\" + key)\r\n }\r\n var request = GOOGLE_STATIC_URL + requestOptions.join(\"&\");\r\n this._$container.css(\"background\", 'url(\"' + request + '\") no-repeat 0 0');\r\n this._attachClickEvent();\r\n return _promise.default.resolve(true)\r\n },\r\n _markersSubstring: function() {\r\n var that = this;\r\n var markers = [];\r\n var markerIcon = this._option(\"markerIconSrc\");\r\n if (markerIcon) {\r\n markers.push(\"icon:\" + markerIcon)\r\n }(0, _iterator.each)(this._option(\"markers\"), function(_, marker) {\r\n markers.push(that._locationToString(marker.location))\r\n });\r\n return \"markers=\" + markers.join(\"|\")\r\n },\r\n _routeSubstrings: function() {\r\n var that = this;\r\n var routes = [];\r\n (0, _iterator.each)(this._option(\"routes\"), function(_, route) {\r\n var color = new _color.default(route.color || that._defaultRouteColor()).toHex().replace(\"#\", \"0x\");\r\n var opacity = Math.round(255 * (route.opacity || that._defaultRouteOpacity())).toString(16);\r\n var width = route.weight || that._defaultRouteWeight();\r\n var locations = [];\r\n (0, _iterator.each)(route.locations, function(_, routePoint) {\r\n locations.push(that._locationToString(routePoint))\r\n });\r\n routes.push(\"path=color:\" + color + opacity + \"|weight:\" + width + \"|\" + locations.join(\"|\"))\r\n });\r\n return routes\r\n },\r\n _attachClickEvent: function() {\r\n var that = this;\r\n var eventName = this._addEventNamespace(_click.name);\r\n _events_engine.default.off(this._$container, eventName);\r\n _events_engine.default.on(this._$container, eventName, function(e) {\r\n that._fireClickAction({\r\n event: e\r\n })\r\n })\r\n }\r\n});\r\nvar _default = GoogleStaticProvider;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/map/provider.dynamic.google.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _promise = _interopRequireDefault(require(\"../../core/polyfills/promise\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _provider = _interopRequireDefault(require(\"./provider.dynamic\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _color = _interopRequireDefault(require(\"../../color\"));\r\nvar _ajax = _interopRequireDefault(require(\"../../core/utils/ajax\"));\r\nvar _type = require(\"../../core/utils/type\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar GOOGLE_MAP_READY = \"_googleScriptReady\";\r\nvar GOOGLE_URL = \"https://maps.googleapis.com/maps/api/js?callback=\" + GOOGLE_MAP_READY;\r\nvar INFO_WINDOW_CLASS = \"gm-style-iw\";\r\nvar CustomMarker;\r\nvar initCustomMarkerClass = function() {\r\n CustomMarker = function(options) {\r\n this._position = options.position;\r\n this._offset = options.offset;\r\n this._$overlayContainer = (0, _renderer.default)(\"
\").css({\r\n position: \"absolute\",\r\n display: \"none\",\r\n cursor: \"pointer\"\r\n }).append(options.html);\r\n this.setMap(options.map)\r\n };\r\n CustomMarker.prototype = new google.maps.OverlayView;\r\n CustomMarker.prototype.onAdd = function() {\r\n var $pane = (0, _renderer.default)(this.getPanes().overlayMouseTarget);\r\n $pane.append(this._$overlayContainer);\r\n this._clickListener = google.maps.event.addDomListener(this._$overlayContainer.get(0), \"click\", function(e) {\r\n google.maps.event.trigger(this, \"click\");\r\n e.preventDefault()\r\n }.bind(this));\r\n this.draw()\r\n };\r\n CustomMarker.prototype.onRemove = function() {\r\n google.maps.event.removeListener(this._clickListener);\r\n this._$overlayContainer.remove()\r\n };\r\n CustomMarker.prototype.draw = function() {\r\n var position = this.getProjection().fromLatLngToDivPixel(this._position);\r\n this._$overlayContainer.css({\r\n left: position.x + this._offset.left,\r\n top: position.y + this._offset.top,\r\n display: \"block\"\r\n })\r\n }\r\n};\r\nvar googleMapsLoaded = function() {\r\n return window.google && window.google.maps\r\n};\r\nvar googleMapsLoader;\r\nvar GoogleProvider = _provider.default.inherit({\r\n _mapType: function(type) {\r\n var mapTypes = {\r\n hybrid: google.maps.MapTypeId.HYBRID,\r\n roadmap: google.maps.MapTypeId.ROADMAP,\r\n satellite: google.maps.MapTypeId.SATELLITE\r\n };\r\n return mapTypes[type] || mapTypes.hybrid\r\n },\r\n _movementMode: function(type) {\r\n var movementTypes = {\r\n driving: google.maps.TravelMode.DRIVING,\r\n walking: google.maps.TravelMode.WALKING\r\n };\r\n return movementTypes[type] || movementTypes.driving\r\n },\r\n _resolveLocation: function(location) {\r\n return new _promise.default(function(resolve) {\r\n var latLng = this._getLatLng(location);\r\n if (latLng) {\r\n resolve(new google.maps.LatLng(latLng.lat, latLng.lng))\r\n } else {\r\n this._geocodeLocation(location).then(function(geocodedLocation) {\r\n resolve(geocodedLocation)\r\n })\r\n }\r\n }.bind(this))\r\n },\r\n _geocodedLocations: {},\r\n _geocodeLocationImpl: function(location) {\r\n return new _promise.default(function(resolve) {\r\n if (!(0, _type.isDefined)(location)) {\r\n resolve(new google.maps.LatLng(0, 0));\r\n return\r\n }\r\n var geocoder = new google.maps.Geocoder;\r\n geocoder.geocode({\r\n address: location\r\n }, function(results, status) {\r\n if (status === google.maps.GeocoderStatus.OK) {\r\n resolve(results[0].geometry.location)\r\n } else {\r\n _ui.default.log(\"W1006\", status);\r\n resolve(new google.maps.LatLng(0, 0))\r\n }\r\n })\r\n })\r\n },\r\n _normalizeLocation: function(location) {\r\n return {\r\n lat: location.lat(),\r\n lng: location.lng()\r\n }\r\n },\r\n _normalizeLocationRect: function(locationRect) {\r\n return {\r\n northEast: this._normalizeLocation(locationRect.getNorthEast()),\r\n southWest: this._normalizeLocation(locationRect.getSouthWest())\r\n }\r\n },\r\n _loadImpl: function() {\r\n return new _promise.default(function(resolve) {\r\n if (googleMapsLoaded()) {\r\n resolve()\r\n } else {\r\n if (!googleMapsLoader) {\r\n googleMapsLoader = this._loadMapScript()\r\n }\r\n googleMapsLoader.then(function() {\r\n if (googleMapsLoaded()) {\r\n resolve();\r\n return\r\n }\r\n this._loadMapScript().then(resolve)\r\n }.bind(this))\r\n }\r\n }.bind(this)).then(function() {\r\n initCustomMarkerClass()\r\n })\r\n },\r\n _loadMapScript: function() {\r\n return new _promise.default(function(resolve) {\r\n var key = this._keyOption(\"google\");\r\n window[GOOGLE_MAP_READY] = resolve;\r\n _ajax.default.sendRequest({\r\n url: GOOGLE_URL + (key ? \"&key=\" + key : \"\"),\r\n dataType: \"script\"\r\n })\r\n }.bind(this)).then(function() {\r\n try {\r\n delete window[GOOGLE_MAP_READY]\r\n } catch (e) {\r\n window[GOOGLE_MAP_READY] = void 0\r\n }\r\n })\r\n },\r\n _init: function() {\r\n return new _promise.default(function(resolve) {\r\n this._resolveLocation(this._option(\"center\")).then(function(center) {\r\n var showDefaultUI = this._option(\"controls\");\r\n this._map = new google.maps.Map(this._$container[0], {\r\n zoom: this._option(\"zoom\"),\r\n center: center,\r\n disableDefaultUI: !showDefaultUI\r\n });\r\n var listener = google.maps.event.addListener(this._map, \"idle\", function() {\r\n resolve(listener)\r\n })\r\n }.bind(this))\r\n }.bind(this)).then(function(listener) {\r\n google.maps.event.removeListener(listener)\r\n })\r\n },\r\n _attachHandlers: function() {\r\n this._boundsChangeListener = google.maps.event.addListener(this._map, \"bounds_changed\", this._boundsChangeHandler.bind(this));\r\n this._clickListener = google.maps.event.addListener(this._map, \"click\", this._clickActionHandler.bind(this))\r\n },\r\n _boundsChangeHandler: function() {\r\n var bounds = this._map.getBounds();\r\n this._option(\"bounds\", this._normalizeLocationRect(bounds));\r\n var center = this._map.getCenter();\r\n this._option(\"center\", this._normalizeLocation(center));\r\n if (!this._preventZoomChangeEvent) {\r\n this._option(\"zoom\", this._map.getZoom())\r\n }\r\n },\r\n _clickActionHandler: function(e) {\r\n this._fireClickAction({\r\n location: this._normalizeLocation(e.latLng)\r\n })\r\n },\r\n updateDimensions: function() {\r\n var center = this._option(\"center\");\r\n google.maps.event.trigger(this._map, \"resize\");\r\n this._option(\"center\", center);\r\n return this.updateCenter()\r\n },\r\n updateMapType: function() {\r\n this._map.setMapTypeId(this._mapType(this._option(\"type\")));\r\n return _promise.default.resolve()\r\n },\r\n updateBounds: function() {\r\n return _promise.default.all([this._resolveLocation(this._option(\"bounds.northEast\")), this._resolveLocation(this._option(\"bounds.southWest\"))]).then(function(result) {\r\n var bounds = new google.maps.LatLngBounds;\r\n bounds.extend(result[0]);\r\n bounds.extend(result[1]);\r\n this._map.fitBounds(bounds)\r\n }.bind(this))\r\n },\r\n updateCenter: function() {\r\n return this._resolveLocation(this._option(\"center\")).then(function(center) {\r\n this._map.setCenter(center);\r\n this._option(\"center\", this._normalizeLocation(center))\r\n }.bind(this))\r\n },\r\n updateZoom: function() {\r\n this._map.setZoom(this._option(\"zoom\"));\r\n return _promise.default.resolve()\r\n },\r\n updateControls: function() {\r\n var showDefaultUI = this._option(\"controls\");\r\n this._map.setOptions({\r\n disableDefaultUI: !showDefaultUI\r\n });\r\n return _promise.default.resolve()\r\n },\r\n isEventsCanceled: function(e) {\r\n var gestureHandling = this._map && this._map.get(\"gestureHandling\");\r\n var isInfoWindowContent = (0, _renderer.default)(e.target).closest(\".\".concat(INFO_WINDOW_CLASS)).length > 0;\r\n if (isInfoWindowContent || \"desktop\" !== _devices.default.real().deviceType && \"cooperative\" === gestureHandling) {\r\n return false\r\n }\r\n return this.callBase()\r\n },\r\n _renderMarker: function(options) {\r\n return this._resolveLocation(options.location).then(function(location) {\r\n var marker;\r\n if (options.html) {\r\n marker = new CustomMarker({\r\n map: this._map,\r\n position: location,\r\n html: options.html,\r\n offset: (0, _extend.extend)({\r\n top: 0,\r\n left: 0\r\n }, options.htmlOffset)\r\n })\r\n } else {\r\n marker = new google.maps.Marker({\r\n position: location,\r\n map: this._map,\r\n icon: options.iconSrc || this._option(\"markerIconSrc\")\r\n })\r\n }\r\n var infoWindow = this._renderTooltip(marker, options.tooltip);\r\n var listener;\r\n if (options.onClick || options.tooltip) {\r\n var markerClickAction = this._mapWidget._createAction(options.onClick || _common.noop);\r\n var markerNormalizedLocation = this._normalizeLocation(location);\r\n listener = google.maps.event.addListener(marker, \"click\", function() {\r\n markerClickAction({\r\n location: markerNormalizedLocation\r\n });\r\n if (infoWindow) {\r\n infoWindow.open(this._map, marker)\r\n }\r\n }.bind(this))\r\n }\r\n return {\r\n location: location,\r\n marker: marker,\r\n listener: listener\r\n }\r\n }.bind(this))\r\n },\r\n _renderTooltip: function(marker, options) {\r\n if (!options) {\r\n return\r\n }\r\n options = this._parseTooltipOptions(options);\r\n var infoWindow = new google.maps.InfoWindow({\r\n content: options.text\r\n });\r\n if (options.visible) {\r\n infoWindow.open(this._map, marker)\r\n }\r\n return infoWindow\r\n },\r\n _destroyMarker: function(marker) {\r\n marker.marker.setMap(null);\r\n if (marker.listener) {\r\n google.maps.event.removeListener(marker.listener)\r\n }\r\n },\r\n _renderRoute: function(options) {\r\n return _promise.default.all((0, _iterator.map)(options.locations, function(point) {\r\n return this._resolveLocation(point)\r\n }.bind(this))).then(function(locations) {\r\n return new _promise.default(function(resolve) {\r\n var origin = locations.shift();\r\n var destination = locations.pop();\r\n var waypoints = (0, _iterator.map)(locations, function(location) {\r\n return {\r\n location: location,\r\n stopover: true\r\n }\r\n });\r\n var request = {\r\n origin: origin,\r\n destination: destination,\r\n waypoints: waypoints,\r\n optimizeWaypoints: true,\r\n travelMode: this._movementMode(options.mode)\r\n };\r\n (new google.maps.DirectionsService).route(request, function(response, status) {\r\n if (status === google.maps.DirectionsStatus.OK) {\r\n var color = new _color.default(options.color || this._defaultRouteColor()).toHex();\r\n var directionOptions = {\r\n directions: response,\r\n map: this._map,\r\n suppressMarkers: true,\r\n preserveViewport: true,\r\n polylineOptions: {\r\n strokeWeight: options.weight || this._defaultRouteWeight(),\r\n strokeOpacity: options.opacity || this._defaultRouteOpacity(),\r\n strokeColor: color\r\n }\r\n };\r\n var route = new google.maps.DirectionsRenderer(directionOptions);\r\n var bounds = response.routes[0].bounds;\r\n resolve({\r\n instance: route,\r\n northEast: bounds.getNorthEast(),\r\n southWest: bounds.getSouthWest()\r\n })\r\n } else {\r\n _ui.default.log(\"W1006\", status);\r\n resolve({\r\n instance: new google.maps.DirectionsRenderer({})\r\n })\r\n }\r\n }.bind(this))\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n _destroyRoute: function(routeObject) {\r\n routeObject.instance.setMap(null)\r\n },\r\n _fitBounds: function() {\r\n this._updateBounds();\r\n if (this._bounds && this._option(\"autoAdjust\")) {\r\n var zoomBeforeFitting = this._map.getZoom();\r\n this._preventZoomChangeEvent = true;\r\n this._map.fitBounds(this._bounds);\r\n this._boundsChangeHandler();\r\n var zoomAfterFitting = this._map.getZoom();\r\n if (zoomBeforeFitting < zoomAfterFitting) {\r\n this._map.setZoom(zoomBeforeFitting)\r\n } else {\r\n this._option(\"zoom\", zoomAfterFitting)\r\n }\r\n delete this._preventZoomChangeEvent\r\n }\r\n return _promise.default.resolve()\r\n },\r\n _extendBounds: function(location) {\r\n if (this._bounds) {\r\n this._bounds.extend(location)\r\n } else {\r\n this._bounds = new google.maps.LatLngBounds;\r\n this._bounds.extend(location)\r\n }\r\n },\r\n clean: function() {\r\n if (this._map) {\r\n google.maps.event.removeListener(this._boundsChangeListener);\r\n google.maps.event.removeListener(this._clickListener);\r\n this._clearMarkers();\r\n this._clearRoutes();\r\n delete this._map;\r\n this._$container.empty()\r\n }\r\n return _promise.default.resolve()\r\n }\r\n});\r\nvar _default = GoogleProvider;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/map/provider.dynamic.bing.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _promise = _interopRequireDefault(require(\"../../core/polyfills/promise\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _provider = _interopRequireDefault(require(\"./provider.dynamic\"));\r\nvar _color = _interopRequireDefault(require(\"../../color\"));\r\nvar _ajax = _interopRequireDefault(require(\"../../core/utils/ajax\"));\r\nvar _type = require(\"../../core/utils/type\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar BING_MAP_READY = \"_bingScriptReady\";\r\nvar BING_URL_V8 = \"https://www.bing.com/api/maps/mapcontrol?callback=\" + BING_MAP_READY;\r\nvar INFOBOX_V_OFFSET_V8 = 13;\r\nvar BING_CREDENTIALS = \"AhuxC0dQ1DBTNo8L-H9ToVMQStmizZzBJdraTSgCzDSWPsA1Qd8uIvFSflzxdaLH\";\r\nvar MIN_LOCATION_RECT_LENGTH = 1e-16;\r\nvar msMapsLoaded = function() {\r\n return window.Microsoft && window.Microsoft.Maps\r\n};\r\nvar msMapsLoader;\r\nvar BingProvider = _provider.default.inherit({\r\n _mapType: function(type) {\r\n var mapTypes = {\r\n roadmap: Microsoft.Maps.MapTypeId.road,\r\n hybrid: Microsoft.Maps.MapTypeId.aerial,\r\n satellite: Microsoft.Maps.MapTypeId.aerial\r\n };\r\n return mapTypes[type] || mapTypes.road\r\n },\r\n _movementMode: function(type) {\r\n var movementTypes = {\r\n driving: Microsoft.Maps.Directions.RouteMode.driving,\r\n walking: Microsoft.Maps.Directions.RouteMode.walking\r\n };\r\n return movementTypes[type] || movementTypes.driving\r\n },\r\n _resolveLocation: function(location) {\r\n return new _promise.default(function(resolve) {\r\n var latLng = this._getLatLng(location);\r\n if (latLng) {\r\n resolve(new Microsoft.Maps.Location(latLng.lat, latLng.lng))\r\n } else {\r\n this._geocodeLocation(location).then(function(geocodedLocation) {\r\n resolve(geocodedLocation)\r\n })\r\n }\r\n }.bind(this))\r\n },\r\n _geocodedLocations: {},\r\n _geocodeLocationImpl: function(location) {\r\n return new _promise.default(function(resolve) {\r\n if (!(0, _type.isDefined)(location)) {\r\n resolve(new Microsoft.Maps.Location(0, 0));\r\n return\r\n }\r\n var searchManager = new Microsoft.Maps.Search.SearchManager(this._map);\r\n var searchRequest = {\r\n where: location,\r\n count: 1,\r\n callback: function(searchResponse) {\r\n var result = searchResponse.results[0];\r\n if (result) {\r\n var boundsBox = searchResponse.results[0].location;\r\n resolve(new Microsoft.Maps.Location(boundsBox.latitude, boundsBox.longitude))\r\n } else {\r\n resolve(new Microsoft.Maps.Location(0, 0))\r\n }\r\n }\r\n };\r\n searchManager.geocode(searchRequest)\r\n }.bind(this))\r\n },\r\n _normalizeLocation: function(location) {\r\n return {\r\n lat: location.latitude,\r\n lng: location.longitude\r\n }\r\n },\r\n _normalizeLocationRect: function(locationRect) {\r\n var northWest = this._normalizeLocation(locationRect.getNorthwest());\r\n var southEast = this._normalizeLocation(locationRect.getSoutheast());\r\n return {\r\n northEast: {\r\n lat: northWest.lat,\r\n lng: southEast.lng\r\n },\r\n southWest: {\r\n lat: southEast.lat,\r\n lng: northWest.lng\r\n }\r\n }\r\n },\r\n _loadImpl: function() {\r\n return new _promise.default(function(resolve) {\r\n if (msMapsLoaded()) {\r\n resolve()\r\n } else {\r\n if (!msMapsLoader) {\r\n msMapsLoader = this._loadMapScript()\r\n }\r\n msMapsLoader.then(function() {\r\n if (msMapsLoaded()) {\r\n resolve();\r\n return\r\n }\r\n this._loadMapScript().then(resolve)\r\n }.bind(this))\r\n }\r\n }.bind(this)).then(function() {\r\n return _promise.default.all([new _promise.default(function(resolve) {\r\n Microsoft.Maps.loadModule(\"Microsoft.Maps.Search\", {\r\n callback: resolve\r\n })\r\n }), new _promise.default(function(resolve) {\r\n Microsoft.Maps.loadModule(\"Microsoft.Maps.Directions\", {\r\n callback: resolve\r\n })\r\n })])\r\n })\r\n },\r\n _loadMapScript: function() {\r\n return new _promise.default(function(resolve) {\r\n window[BING_MAP_READY] = resolve;\r\n _ajax.default.sendRequest({\r\n url: BING_URL_V8,\r\n dataType: \"script\"\r\n })\r\n }).then(function() {\r\n try {\r\n delete window[BING_MAP_READY]\r\n } catch (e) {\r\n window[BING_MAP_READY] = void 0\r\n }\r\n })\r\n },\r\n _init: function() {\r\n this._createMap();\r\n return _promise.default.resolve()\r\n },\r\n _createMap: function() {\r\n var controls = this._option(\"controls\");\r\n this._map = new Microsoft.Maps.Map(this._$container[0], {\r\n credentials: this._keyOption(\"bing\") || BING_CREDENTIALS,\r\n zoom: this._option(\"zoom\"),\r\n showDashboard: controls,\r\n showMapTypeSelector: controls,\r\n showScalebar: controls\r\n })\r\n },\r\n _attachHandlers: function() {\r\n this._providerViewChangeHandler = Microsoft.Maps.Events.addHandler(this._map, \"viewchange\", this._viewChangeHandler.bind(this));\r\n this._providerClickHandler = Microsoft.Maps.Events.addHandler(this._map, \"click\", this._clickActionHandler.bind(this))\r\n },\r\n _viewChangeHandler: function() {\r\n var bounds = this._map.getBounds();\r\n this._option(\"bounds\", this._normalizeLocationRect(bounds));\r\n var center = this._map.getCenter();\r\n this._option(\"center\", this._normalizeLocation(center));\r\n if (!this._preventZoomChangeEvent) {\r\n this._option(\"zoom\", this._map.getZoom())\r\n }\r\n },\r\n _clickActionHandler: function(e) {\r\n if (\"map\" === e.targetType) {\r\n this._fireClickAction({\r\n location: this._normalizeLocation(e.location)\r\n })\r\n }\r\n },\r\n updateDimensions: function() {\r\n var $container = this._$container;\r\n this._map.setOptions({\r\n width: $container.width(),\r\n height: $container.height()\r\n });\r\n return _promise.default.resolve()\r\n },\r\n updateMapType: function() {\r\n var type = this._option(\"type\");\r\n var labelOverlay = Microsoft.Maps.LabelOverlay;\r\n this._map.setView({\r\n animate: false,\r\n mapTypeId: this._mapType(type),\r\n labelOverlay: \"satellite\" === type ? labelOverlay.hidden : labelOverlay.visible\r\n });\r\n return _promise.default.resolve()\r\n },\r\n updateBounds: function() {\r\n return _promise.default.all([this._resolveLocation(this._option(\"bounds.northEast\")), this._resolveLocation(this._option(\"bounds.southWest\"))]).then(function(result) {\r\n var bounds = new Microsoft.Maps.LocationRect.fromLocations(result[0], result[1]);\r\n this._map.setView({\r\n animate: false,\r\n bounds: bounds\r\n })\r\n }.bind(this))\r\n },\r\n updateCenter: function() {\r\n return this._resolveLocation(this._option(\"center\")).then(function(center) {\r\n this._map.setView({\r\n animate: false,\r\n center: center\r\n })\r\n }.bind(this))\r\n },\r\n updateZoom: function() {\r\n this._map.setView({\r\n animate: false,\r\n zoom: this._option(\"zoom\")\r\n });\r\n return _promise.default.resolve()\r\n },\r\n updateControls: function() {\r\n this.clean();\r\n return this.render.apply(this, arguments)\r\n },\r\n _renderMarker: function(options) {\r\n return this._resolveLocation(options.location).then(function(location) {\r\n var pushpinOptions = {\r\n icon: options.iconSrc || this._option(\"markerIconSrc\")\r\n };\r\n if (options.html) {\r\n (0, _extend.extend)(pushpinOptions, {\r\n htmlContent: options.html,\r\n width: null,\r\n height: null\r\n });\r\n var htmlOffset = options.htmlOffset;\r\n if (htmlOffset) {\r\n pushpinOptions.anchor = new Microsoft.Maps.Point((-htmlOffset.left), (-htmlOffset.top))\r\n }\r\n }\r\n var pushpin = new Microsoft.Maps.Pushpin(location, pushpinOptions);\r\n this._map.entities.push(pushpin);\r\n var infobox = this._renderTooltip(location, options.tooltip);\r\n var handler;\r\n if (options.onClick || options.tooltip) {\r\n var markerClickAction = this._mapWidget._createAction(options.onClick || _common.noop);\r\n var markerNormalizedLocation = this._normalizeLocation(location);\r\n handler = Microsoft.Maps.Events.addHandler(pushpin, \"click\", function() {\r\n markerClickAction({\r\n location: markerNormalizedLocation\r\n });\r\n if (infobox) {\r\n infobox.setOptions({\r\n visible: true\r\n })\r\n }\r\n })\r\n }\r\n return {\r\n location: location,\r\n marker: pushpin,\r\n infobox: infobox,\r\n handler: handler\r\n }\r\n }.bind(this))\r\n },\r\n _renderTooltip: function(location, options) {\r\n if (!options) {\r\n return\r\n }\r\n options = this._parseTooltipOptions(options);\r\n var infobox = new Microsoft.Maps.Infobox(location, {\r\n description: options.text,\r\n offset: new Microsoft.Maps.Point(0, INFOBOX_V_OFFSET_V8),\r\n visible: options.visible\r\n });\r\n infobox.setMap(this._map);\r\n return infobox\r\n },\r\n _destroyMarker: function(marker) {\r\n this._map.entities.remove(marker.marker);\r\n if (marker.infobox) {\r\n marker.infobox.setMap(null)\r\n }\r\n if (marker.handler) {\r\n Microsoft.Maps.Events.removeHandler(marker.handler)\r\n }\r\n },\r\n _renderRoute: function(options) {\r\n return _promise.default.all((0, _iterator.map)(options.locations, function(point) {\r\n return this._resolveLocation(point)\r\n }.bind(this))).then(function(locations) {\r\n return new _promise.default(function(resolve) {\r\n var direction = new Microsoft.Maps.Directions.DirectionsManager(this._map);\r\n var color = new _color.default(options.color || this._defaultRouteColor()).toHex();\r\n var routeColor = new Microsoft.Maps.Color.fromHex(color);\r\n routeColor.a = 255 * (options.opacity || this._defaultRouteOpacity());\r\n direction.setRenderOptions({\r\n autoUpdateMapView: false,\r\n displayRouteSelector: false,\r\n waypointPushpinOptions: {\r\n visible: false\r\n },\r\n drivingPolylineOptions: {\r\n strokeColor: routeColor,\r\n strokeThickness: options.weight || this._defaultRouteWeight()\r\n },\r\n walkingPolylineOptions: {\r\n strokeColor: routeColor,\r\n strokeThickness: options.weight || this._defaultRouteWeight()\r\n }\r\n });\r\n direction.setRequestOptions({\r\n routeMode: this._movementMode(options.mode),\r\n routeDraggable: false\r\n });\r\n (0, _iterator.each)(locations, function(_, location) {\r\n var waypoint = new Microsoft.Maps.Directions.Waypoint({\r\n location: location\r\n });\r\n direction.addWaypoint(waypoint)\r\n });\r\n var directionHandlers = [];\r\n directionHandlers.push(Microsoft.Maps.Events.addHandler(direction, \"directionsUpdated\", function(args) {\r\n while (directionHandlers.length) {\r\n Microsoft.Maps.Events.removeHandler(directionHandlers.pop())\r\n }\r\n var routeSummary = args.routeSummary[0];\r\n resolve({\r\n instance: direction,\r\n northEast: routeSummary.northEast,\r\n southWest: routeSummary.southWest\r\n })\r\n }));\r\n directionHandlers.push(Microsoft.Maps.Events.addHandler(direction, \"directionsError\", function(args) {\r\n while (directionHandlers.length) {\r\n Microsoft.Maps.Events.removeHandler(directionHandlers.pop())\r\n }\r\n var status = \"RouteResponseCode: \" + args.responseCode + \" - \" + args.message;\r\n _ui.default.log(\"W1006\", status);\r\n resolve({\r\n instance: direction\r\n })\r\n }));\r\n direction.calculateDirections()\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n _destroyRoute: function(routeObject) {\r\n routeObject.instance.dispose()\r\n },\r\n _fitBounds: function() {\r\n this._updateBounds();\r\n if (this._bounds && this._option(\"autoAdjust\")) {\r\n var zoomBeforeFitting = this._map.getZoom();\r\n this._preventZoomChangeEvent = true;\r\n var bounds = this._bounds.clone();\r\n bounds.height = 1.1 * bounds.height;\r\n bounds.width = 1.1 * bounds.width;\r\n this._map.setView({\r\n animate: false,\r\n bounds: bounds,\r\n zoom: zoomBeforeFitting\r\n });\r\n var zoomAfterFitting = this._map.getZoom();\r\n if (zoomBeforeFitting < zoomAfterFitting) {\r\n this._map.setView({\r\n animate: false,\r\n zoom: zoomBeforeFitting\r\n })\r\n } else {\r\n this._option(\"zoom\", zoomAfterFitting)\r\n }\r\n delete this._preventZoomChangeEvent\r\n }\r\n return _promise.default.resolve()\r\n },\r\n _extendBounds: function(location) {\r\n if (this._bounds) {\r\n this._bounds = new Microsoft.Maps.LocationRect.fromLocations(this._bounds.getNorthwest(), this._bounds.getSoutheast(), location)\r\n } else {\r\n this._bounds = new Microsoft.Maps.LocationRect(location, MIN_LOCATION_RECT_LENGTH, MIN_LOCATION_RECT_LENGTH)\r\n }\r\n },\r\n clean: function() {\r\n if (this._map) {\r\n Microsoft.Maps.Events.removeHandler(this._providerViewChangeHandler);\r\n Microsoft.Maps.Events.removeHandler(this._providerClickHandler);\r\n this._clearMarkers();\r\n this._clearRoutes();\r\n this._map.dispose()\r\n }\r\n return _promise.default.resolve()\r\n }\r\n});\r\nvar _default = BingProvider;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/nav_bar.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _item = _interopRequireDefault(require(\"./nav_bar/item\"));\r\nvar _tabs = _interopRequireDefault(require(\"./tabs\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar NAVBAR_CLASS = \"dx-navbar\";\r\nvar ITEM_CLASS = \"dx-item-content\";\r\nvar NAVBAR_ITEM_CLASS = \"dx-nav-item\";\r\nvar NAVBAR_ITEM_CONTENT_CLASS = \"dx-nav-item-content\";\r\nvar NavBar = _tabs.default.inherit({\r\n ctor: function(element, options) {\r\n this.callBase(element, options);\r\n this._logDeprecatedComponentWarning(\"20.1\", \"dxTabs\")\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n scrollingEnabled: false\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(NAVBAR_CLASS)\r\n },\r\n _postprocessRenderItem: function(args) {\r\n this.callBase(args);\r\n var $itemElement = args.itemElement;\r\n var itemData = args.itemData;\r\n $itemElement.addClass(NAVBAR_ITEM_CLASS);\r\n $itemElement.find(\".\" + ITEM_CLASS).addClass(NAVBAR_ITEM_CONTENT_CLASS);\r\n if (!itemData.icon) {\r\n $itemElement.addClass(\"dx-navbar-text-item\")\r\n }\r\n }\r\n});\r\nNavBar.ItemClass = _item.default;\r\n(0, _component_registrator.default)(\"dxNavBar\", NavBar);\r\nvar _default = NavBar;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/nav_bar/item.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _item = _interopRequireDefault(require(\"../tabs/item\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TABS_ITEM_BADGE_CLASS = \"dx-tabs-item-badge\";\r\nvar NAVBAR_ITEM_BADGE_CLASS = \"dx-navbar-item-badge\";\r\nvar NavBarItem = _item.default.inherit({\r\n _renderBadge: function(badge) {\r\n this.callBase(badge);\r\n this._$element.children(\".\" + TABS_ITEM_BADGE_CLASS).removeClass(TABS_ITEM_BADGE_CLASS).addClass(NAVBAR_ITEM_BADGE_CLASS)\r\n }\r\n});\r\nvar _default = NavBarItem;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/load_indicator.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _support = require(\"../core/utils/support\");\r\nvar _themes = require(\"./themes\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _ui = _interopRequireDefault(require(\"./widget/ui.widget\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar navigator = (0, _window.getNavigator)();\r\nvar LOADINDICATOR_CLASS = \"dx-loadindicator\";\r\nvar LOADINDICATOR_WRAPPER_CLASS = \"dx-loadindicator-wrapper\";\r\nvar LOADINDICATOR_CONTENT_CLASS = \"dx-loadindicator-content\";\r\nvar LOADINDICATOR_ICON_CLASS = \"dx-loadindicator-icon\";\r\nvar LOADINDICATOR_SEGMENT_CLASS = \"dx-loadindicator-segment\";\r\nvar LOADINDICATOR_SEGMENT_INNER_CLASS = \"dx-loadindicator-segment-inner\";\r\nvar LOADINDICATOR_IMAGE_CLASS = \"dx-loadindicator-image\";\r\nvar LoadIndicator = _ui.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n indicatorSrc: \"\",\r\n activeStateEnabled: false,\r\n hoverStateEnabled: false,\r\n _animatingSegmentCount: 1,\r\n _animatingSegmentInner: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = (0, _themes.current)();\r\n return this.callBase().concat([{\r\n device: function() {\r\n var realDevice = _devices.default.real();\r\n var obsoleteAndroid = \"android\" === realDevice.platform && !/chrome/i.test(navigator.userAgent);\r\n return obsoleteAndroid\r\n },\r\n options: {\r\n viaImage: true\r\n }\r\n }, {\r\n device: function() {\r\n return (0, _themes.isMaterial)(themeName)\r\n },\r\n options: {\r\n _animatingSegmentCount: 2,\r\n _animatingSegmentInner: true\r\n }\r\n }, {\r\n device: function() {\r\n return (0, _themes.isGeneric)(themeName)\r\n },\r\n options: {\r\n _animatingSegmentCount: 7\r\n }\r\n }])\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(LOADINDICATOR_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderWrapper();\r\n this._renderIndicatorContent();\r\n this._renderMarkup()\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = (0, _renderer.default)(\"
\").addClass(LOADINDICATOR_WRAPPER_CLASS);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _renderIndicatorContent: function() {\r\n this._$content = (0, _renderer.default)(\"
\").addClass(LOADINDICATOR_CONTENT_CLASS);\r\n this._$wrapper.append(this._$content)\r\n },\r\n _renderMarkup: function() {\r\n if ((0, _support.animation)() && !this.option(\"viaImage\") && !this.option(\"indicatorSrc\")) {\r\n this._renderMarkupForAnimation()\r\n } else {\r\n this._renderMarkupForImage()\r\n }\r\n },\r\n _renderMarkupForAnimation: function() {\r\n var animatingSegmentInner = this.option(\"_animatingSegmentInner\");\r\n this._$indicator = (0, _renderer.default)(\"
\").addClass(LOADINDICATOR_ICON_CLASS);\r\n this._$content.append(this._$indicator);\r\n for (var i = this.option(\"_animatingSegmentCount\"); i >= 0; --i) {\r\n var $segment = (0, _renderer.default)(\"
\").addClass(LOADINDICATOR_SEGMENT_CLASS).addClass(LOADINDICATOR_SEGMENT_CLASS + i);\r\n if (animatingSegmentInner) {\r\n $segment.append((0, _renderer.default)(\"
\").addClass(LOADINDICATOR_SEGMENT_INNER_CLASS))\r\n }\r\n this._$indicator.append($segment)\r\n }\r\n },\r\n _renderMarkupForImage: function() {\r\n var indicatorSrc = this.option(\"indicatorSrc\");\r\n this._$wrapper.addClass(LOADINDICATOR_IMAGE_CLASS);\r\n if (indicatorSrc) {\r\n this._$wrapper.css(\"backgroundImage\", \"url(\" + indicatorSrc + \")\")\r\n }\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this._updateContentSizeForAnimation()\r\n },\r\n _updateContentSizeForAnimation: function() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n var width = this.option(\"width\");\r\n var height = this.option(\"height\");\r\n if (width || height) {\r\n width = this.$element().width();\r\n height = this.$element().height();\r\n var minDimension = Math.min(height, width);\r\n this._$wrapper.css({\r\n height: minDimension,\r\n width: minDimension,\r\n fontSize: minDimension\r\n })\r\n }\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._removeMarkupForAnimation();\r\n this._removeMarkupForImage()\r\n },\r\n _removeMarkupForAnimation: function() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n this._$indicator.remove();\r\n delete this._$indicator\r\n },\r\n _removeMarkupForImage: function() {\r\n this._$wrapper.css(\"backgroundImage\", \"none\")\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"_animatingSegmentCount\":\r\n case \"_animatingSegmentInner\":\r\n case \"indicatorSrc\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxLoadIndicator\", LoadIndicator);\r\nvar _default = LoadIndicator;\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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _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/list/ui.list.edit.decorator_registry.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.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/list/ui.list.edit.decorator.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _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/load_panel.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _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._$loadPanelContentWrapper = (0, _renderer.default)(\"
\").addClass(LOADPANEL_CONTENT_WRAPPER_CLASS);\r\n this._$loadPanelContentWrapper.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._$loadPanelContentWrapper) {\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._$loadPanelContentWrapper.append($message)\r\n },\r\n _renderLoadIndicator: function() {\r\n if (!this._$loadPanelContentWrapper || !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._$loadPanelContentWrapper)\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"],"sourceRoot":""}