{"version":3,"sources":["webpack:///./node_modules/devextreme-vue/core/strategy/vue2/configuration.js","webpack:///./node_modules/devextreme/esm/data/abstract_store.js","webpack:///./node_modules/devextreme/esm/events/gesture/emitter.gesture.js","webpack:///./node_modules/devextreme/esm/events/utils/add_namespace.js","webpack:///./node_modules/devextreme/esm/events/utils/index.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/button.js","webpack:///./node_modules/devextreme/esm/renovation/ui/common/icon.js","webpack:///./node_modules/devextreme/esm/renovation/ui/common/ink_ripple.js","webpack:///./node_modules/devextreme/esm/renovation/ui/button.js","webpack:///./node_modules/devextreme/esm/renovation/ui/button.j.js","webpack:///./node_modules/devextreme/esm/ui/button.js","webpack:///./node_modules/devextreme/esm/core/component_registrator_callbacks.js","webpack:///./node_modules/devextreme/esm/core/component_registrator.js","webpack:///./node_modules/devextreme/esm/data/array_query.js","webpack:///./node_modules/devextreme/esm/ui/validation_message.js","webpack:///./node_modules/devextreme/esm/core/templates/empty_template.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.base.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.js","webpack:///./node_modules/devextreme/esm/core/templates/template_engine_registry.js","webpack:///./node_modules/devextreme/esm/core/templates/template_engines.js","webpack:///./node_modules/devextreme/esm/core/templates/template.js","webpack:///./node_modules/devextreme/esm/core/utils/template_manager.js","webpack:///./node_modules/devextreme-vue/core/extension-component.js","webpack:///./node_modules/devextreme-vue/core/children-processing.js","webpack:///./node_modules/devextreme/esm/core/utils/ready_callbacks.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/effect_host.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/base_component.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/create_context.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/effect.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/portal.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/re_render_effect.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/utils.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/mocked/shared.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/mocked/hydrate.js","webpack:///./node_modules/@devextreme/runtime/esm/inferno/render_template.js","webpack:///./node_modules/devextreme/esm/core/utils/queue.js","webpack:///./node_modules/devextreme/esm/data/data_source/operation_manager.js","webpack:///./node_modules/devextreme/esm/data/data_source/data_source.js","webpack:///./node_modules/devextreme/esm/core/utils/icon.js","webpack:///./node_modules/devextreme/esm/ui/themes.js","webpack:///./node_modules/devextreme/esm/ui/themes_callback.js","webpack:///./node_modules/devextreme-vue/core/index.js","webpack:///./node_modules/devextreme/esm/events/drag.js","webpack:///./node_modules/devextreme-vue/core/config.js","webpack:///./node_modules/devextreme/esm/core/inferno_renderer.js","webpack:///./node_modules/devextreme/esm/renovation/utils/shallow_equals.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/utils/utils.js","webpack:///./node_modules/devextreme/esm/core/polyfills/number.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/common/template_wrapper.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/utils/update_props_immutable.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/common/component.js","webpack:///./node_modules/devextreme/esm/ui/editor/editor.js","webpack:///./node_modules/devextreme/esm/core/utils/version.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/templates-manager.js","webpack:///./node_modules/devextreme/esm/core/utils/resize_callbacks.js","webpack:///./node_modules/devextreme/esm/renovation/common/config_provider.js","webpack:///./node_modules/devextreme/esm/renovation/utils/resolve_rtl.js","webpack:///./node_modules/devextreme/esm/renovation/ui/common/widget.js","webpack:///./node_modules/devextreme/esm/core/http_request.js","webpack:///./node_modules/devextreme/esm/core/utils/ajax.js","webpack:///./node_modules/devextreme/esm/events/short.js","webpack:///./node_modules/devextreme/esm/core/action.js","webpack:///./node_modules/devextreme/esm/data/errors.js","webpack:///./node_modules/devextreme/esm/ui/text_box/utils.support.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.rule.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.clear.js","webpack:///./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/custom.js","webpack:///./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/index.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.label.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.base.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.base.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.default.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.input_events.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.js","webpack:///./node_modules/devextreme/esm/renovation/ui/common/base_props.js","webpack:///./node_modules/devextreme/esm/core/utils/selection_filter.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.plain.js","webpack:///./node_modules/devextreme/esm/events/core/emitter_registrator.js","webpack:///./node_modules/devextreme/esm/ui/text_box/utils.caret.js","webpack:///./node_modules/devextreme/esm/events/core/event_registrator.js","webpack:///./node_modules/devextreme/esm/core/templates/template_base.js","webpack:///./node_modules/devextreme/esm/animation/easing.js","webpack:///./node_modules/devextreme/esm/animation/fx.js","webpack:///./node_modules/devextreme/esm/ui/widget/selectors.js","webpack:///./node_modules/devextreme/esm/core/devices.js","webpack:///./node_modules/devextreme/esm/animation/frame.js","webpack:///./node_modules/devextreme/esm/ui/validation_engine.js","webpack:///./node_modules/devextreme/esm/data/data_source/utils.js","webpack:///./node_modules/devextreme/esm/ui/text_box/text_box.js","webpack:///./node_modules/devextreme/esm/ui/text_box.js","webpack:///./node_modules/devextreme/esm/core/utils/dom.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue3/index.js","webpack:///./node_modules/inferno-create-element/dist/index.esm.js","webpack:///./node_modules/devextreme/esm/core/polyfills/promise.js","webpack:///./node_modules/devextreme/esm/core/templates/function_template.js","webpack:///./node_modules/devextreme-vue/core/helpers.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/errors.js","webpack:///./node_modules/devextreme/esm/data_helper.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/constants.js","webpack:///./node_modules/devextreme/esm/events/index.js","webpack:///./node_modules/devextreme/esm/events/contextmenu.js","webpack:///./node_modules/devextreme/esm/events/hold.js","webpack:///./node_modules/devextreme/esm/core/utils/view_port.js","webpack:///./node_modules/devextreme/esm/core/template_manager.js","webpack:///./node_modules/devextreme/esm/core/dom_component.js","webpack:///./node_modules/devextreme/esm/core/utils/position.js","webpack:///./node_modules/devextreme/esm/mobile/hide_callback.js","webpack:///./node_modules/devextreme/esm/ui/resizable.js","webpack:///./node_modules/devextreme/esm/ui/overlay/overlay_drag.js","webpack:///./node_modules/devextreme/esm/ui/overlay/z_index.js","webpack:///./node_modules/devextreme/esm/ui/overlay/ui.overlay.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/config.js","webpack:///./node_modules/devextreme/esm/core/templates/bindable_template.js","webpack:///./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/button.js","webpack:///./node_modules/devextreme/esm/events/swipe.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/templates-discovering.js","webpack:///./node_modules/devextreme-vue/core/configuration.js","webpack:///./node_modules/devextreme-vue/core/version.js","webpack:///./node_modules/devextreme/esm/events/pointer/base.js","webpack:///./node_modules/devextreme/esm/events/pointer/touch.js","webpack:///./node_modules/devextreme/esm/events/pointer/mouse.js","webpack:///./node_modules/devextreme/esm/events/pointer/observer.js","webpack:///./node_modules/devextreme/esm/events/pointer/mouse_and_touch.js","webpack:///./node_modules/devextreme/esm/events/pointer.js","webpack:///./node_modules/devextreme/esm/core/utils/browser.js","webpack:///./node_modules/devextreme/esm/events/core/keyboard_processor.js","webpack:///./node_modules/devextreme/esm/events/core/emitter.js","webpack:///./node_modules/devextreme-vue/core/templates-manager.js","webpack:///./node_modules/devextreme/esm/renovation/common/config_context.js","webpack:///./node_modules/devextreme/esm/core/utils/comparator.js","webpack:///./node_modules/devextreme/esm/core/options/option_manager.js","webpack:///./node_modules/devextreme/esm/core/options/index.js","webpack:///./node_modules/devextreme/esm/core/postponed_operations.js","webpack:///./node_modules/devextreme/esm/core/component.js","webpack:///./node_modules/devextreme/esm/data/utils.js","webpack:///./node_modules/devextreme/esm/ui/load_indicator.js","webpack:///./node_modules/devextreme/esm/ui/popup/popup_position_controller.js","webpack:///./node_modules/devextreme/esm/ui/popup/ui.popup.js","webpack:///./node_modules/devextreme/esm/ui/popup.js","webpack:///./node_modules/devextreme/esm/renovation/utils/combine_classes.js","webpack:///./node_modules/devextreme/esm/events/core/emitter.feedback.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/children-processing.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/helpers.js","webpack:///./node_modules/devextreme-vue/core/constants.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.strategy.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.strategy.deferred.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.strategy.standard.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.js","webpack:///./node_modules/devextreme/esm/core/templates/child_default_template.js","webpack:///./node_modules/devextreme/esm/core/element.js","webpack:///./node_modules/devextreme/esm/ui/widget/utils.ink_ripple.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/component.js","webpack:///./node_modules/devextreme-vue/core/templates-discovering.js","webpack:///./node_modules/devextreme/esm/ui/widget/ui.errors.js","webpack:///./node_modules/devextreme/esm/data/array_store.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.async.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.base.js","webpack:///./node_modules/devextreme/esm/ui/collection/item.js","webpack:///./node_modules/devextreme/esm/events/visibility_change.js","webpack:///./node_modules/devextreme/esm/data/array_utils.js","webpack:///./node_modules/devextreme/esm/animation/position.js","webpack:///./node_modules/devextreme/esm/core/utils/public_component.js","webpack:///./node_modules/devextreme/esm/ui/overlay/overlay_position_controller.js","webpack:///./node_modules/devextreme/esm/events/core/wheel.js","webpack:///./node_modules/devextreme/esm/animation/translator.js","webpack:///./node_modules/devextreme/esm/data/query_adapters.js","webpack:///./node_modules/devextreme/esm/data/remote_query.js","webpack:///./node_modules/devextreme/esm/data/query_implementation.js","webpack:///./node_modules/devextreme/esm/data/query.js","webpack:///./node_modules/devextreme/esm/core/utils/storage.js","webpack:///./node_modules/devextreme/esm/core/utils/support.js","webpack:///./node_modules/devextreme/esm/core/events_strategy.js","webpack:///./node_modules/devextreme/esm/data/custom_store.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/extension-component.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/devextreme/esm/core/options/utils.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/index.js","webpack:///./node_modules/inferno/dist/index.esm.js","webpack:///./node_modules/devextreme-vue/core/component.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/configuration-component.js","webpack:///./node_modules/devextreme/esm/events/remove.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/constants.js","webpack:///./node_modules/devextreme-vue/core/vue-helper.js","webpack:///./node_modules/devextreme/esm/ui/widget/swatch_container.js","webpack:///./node_modules/devextreme/esm/events/utils/event_nodes_disposing.js","webpack:///./node_modules/devextreme/esm/events/click.js","webpack:///./node_modules/devextreme/esm/data/store_helper.js","webpack:///./node_modules/devextreme/esm/core/resize_observer.js","webpack:///./node_modules/devextreme-vue/core/configuration-component.js","webpack:///./node_modules/devextreme/esm/core/utils/array_compare.js","webpack:///./node_modules/devextreme/esm/ui/widget/ui.widget.js","webpack:///./node_modules/devextreme/esm/events/hover.js"],"names":["__assign","this","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","defineProperty","exports","value","setEmitOptionChangedFunc","bindOptionWatchers","helpers_1","Configuration","updateFunc","name","initialValues","expectedChildren","isCollectionItem","collectionItemIndex","ownerConfig","_updateFunc","_name","_initialValues","_nestedConfigurations","_isCollectionItem","_collectionItemIndex","_expectedChildren","_ownerConfig","_componentChanges","updateValue","bind","get","enumerable","configurable","cleanComponentsCountChanged","fullPath","fullName","_options","_prevNestedConfigOptions","init","options","set","handler","_emitOptionChanged","setPrevNestedOptions","onOptionChanged","args","isEqual","previousValue","_onOptionChanged","split","cleanNested","createNested","expected","actualName","actualIsCollectionItem","optionName","filter","c","configuration","push","nestedName","join","getNestedOptionValues","values","forEach","o","nestedValue","arr","Array","isArray","getOptionsToWatch","blackList","optionRelPath","optionInfo","getOptionInfo","isCollection","nestedConfig","_getNestedConfig","slice","_tryEmitOptionChanged","component","option","_i","_a","config","vueInstance","innerChanges","targets","$watch","emitOptionChanged","$props","$emit","default","abstract","queryByOptions","storeImpl","Store","inherit","ctor","that","_eventsStrategy","_","on","toLowerCase","_key","key","_errorHandler","errorHandler","_useDefaultSearch","_customLoadOptions","keyOf","obj","_keyGetter","_requireKey","Error","load","fireEvent","_withLock","_loadImpl","done","result","createQuery","enumerate","task","promise","resolveWith","fail","rejectWith","totalCount","_totalCountImpl","count","byKey","extraOptions","_addFailHandlers","_byKeyImpl","insert","_insertImpl","callbackValues","callbackKey","update","_updateImpl","changes","beforePushArgs","waitFor","_pushImpl","remove","_removeImpl","deferred","eventName","eventHandler","off","create","alias","registerClass","type","inheritor","members","ready","add","abs","Math","SLEEP","INITED","STARTED","TOUCH_BOUNDARY","IMMEDIATE_TOUCH_BOUNDARY","IMMEDIATE_TIMEOUT","supportPointerEvents","setGestureCover","isDesktop","real","deviceType","$cover","addClass","css","subscribeGlobal","e","preventDefault","appendTo","toggle","cursor","gestureCover","gestureCoverStrategy","GestureEmitter","gesture","configure","data","getElement","immediate","callBase","allowInterruptionByMouseWheel","_stage","getDirection","direction","_cancel","_toggleGestureCover","start","_needSkipEvent","_startEvent","_startEventData","_init","_setupImmediateTimer","clearTimeout","_immediateTimer","_immediateAccepted","setTimeout","move","_directionConfirmed","_resetActiveElement","_clearSelection","_adjustStartEvent","_start","_requestAccept","_move","_forgetAccept","touchBoundary","_getTouchBoundary","delta","deltaX","x","deltaY","y","horizontalMove","_validateMove","verticalMove","bothAccepted","horizontalAccepted","verticalAccepted","mainAxis","crossAxis","pageX","pageY","platform","find","_toggleGestureCoverImpl","isStarted","end","_end","_stop","dispose","initialTouchBoundary","newBoundary","addNamespace","eventNames","namespace","errors","map","indexOf","concat","KEY_MAP","backspace","tab","enter","escape","pageup","pagedown","home","arrowleft","arrowup","arrowright","arrowdown","delete","f","a","alt","control","shift","LEGACY_KEY_CODES","8","9","13","27","33","34","35","36","37","38","39","40","46","32","70","65","106","109","189","173","16","17","18","EVENT_SOURCES_REGEX","dx","mouse","touch","keyboard","pointer","fixMethod","copyEvent","originalEvent","Event","isDxEvent","eventSource","isNativeMouseEvent","isNativeTouchEvent","_ref","test","isPointerEvent","isMouseEvent","pointerType","isDxMouseWheelEvent","isTouchEvent","eventData","_ref3","timeStamp","time","eventDelta","from","to","hasTouches","pointers","touches","skipEvents","needSkipEvent","target","$target","isDropDown","is","isContentEditable","hasAttribute","touchInEditable","isTextArea","hasClass","isInputFocused","which","createEvent","event","extend","props","delegateTarget","trigger","normalizeKeyName","_ref4","isKeySupported","String","fromCharCode","getChar","_ref5","isCommandKeyPressed","_ref6","ctrlKey","metaKey","getGroupConfig","_findGroup","super","getProps","onClick","_clickAction","validationGroup","_validationGroupConfig","iconType","icon","iconTemplate","_createTemplateComponent","template","button","viewRef","activate","deactivate","needValidate","validationStatus","_createAction","_ref2","submitInput","validationResult","validate","status","complete","then","click","stopPropagation","_addAction","_getSubmitAction","_createClickAction","_initMarkup","$content","$element","$template","children","$input","append","replaceWith","_patchOptionValues","templateData","_templateData","findGroup","_modelByElement","_createActionByOption","excludeValidators","_optionChanged","_excluded","viewFunction","iconClassName","IconTemplate","source","sourceType","src","IconProps","position","getTemplate","TemplateProp","defaultProps","state","generalClasses","cssClass","_this$props","restProps","restAttributes","model","InkRippleProps","__getterCache","hideWave","showWave","getConfig","opts","nextProps","nextState","context","stylingModes","getCssClasses","iconPosition","stylingMode","text","isValidStylingMode","includes","classesMap","viewModel","ButtonTemplate","renderText","isIconLeft","iconComponent","iconSource","accessKey","activeStateEnabled","aria","className","classes","cssClasses","disabled","focusStateEnabled","height","hint","hoverStateEnabled","onActive","onWidgetClick","onInactive","onKeyDown","keyDown","rtlEnabled","tabIndex","visible","width","buttonTemplateData","useSubmitBehavior","submitInputRef","useInkRipple","inkRippleConfig","inkRippleRef","contentRef","widgetRef","ButtonProps","getOwnPropertyDescriptors","defaultOptionRules","device","devices","isSimulator","focus","submitEffect","onSubmit","_this$_effects$","_effects","current","element","keyName","cancel","label","replace","role","isCentered","useHoldAnimation","waveSizeCoefficient","componentWillUpdate","__defaultOptionRules","defaultOptions","rule","_wrapKeyDownHandler","_this$viewRef","_this$viewRef2","_this$viewRef3","twoWay","allowNull","elements","templates","registerComponent","componentClass","fire","registerRendererComponent","fn","isMemberInvoke","memberName","memberArgs","each","instance","getInstance","member","memberValue","Iterator","toArray","reset","next","countable","ArrayIterator","array","index","WrappedIterator","iter","MapIterator","mapper","hasNext","defaultCompare","xValue","yValue","SortIterator","getter","desc","compare","_wrap","rules","thenBy","sortedIter","_ensureSorted","sort","_compare","_unwrap","record","wrappedItem","xIndex","yIndex","rulesCount","compareResult","compileCriteria","toString","compileEquals","negate","crit","ops","isConjunctiveOperator","isConjunctiveNextOperator","d","op","criteria","getterValue","searchValue","lastIndexOf","FilterIterator","GroupIterator","_ensureGrouped","groupedIter","hash","keys","items","SelectIterator","SliceIterator","skip","take","max","pos","min","arrayQueryImpl","queryOptions","handleError","error","aggregateCore","aggregator","seed","step","finalize","NaN","accumulator","resolve","reject","standardAggregate","select","chainQuery","selectProp","sortBy","Number","MAX_VALUE","groupBy","aggregate","sum","avg","INVALID_MESSAGE","INVALID_MESSAGE_AUTO","INVALID_MESSAGE_ALWAYS","INVALID_MESSAGE_CONTENT","VALIDATION_MESSAGE_MIN_WIDTH","ValidationMessage","integrationOptions","templatesRenderAsynchronously","shading","closeOnOutsideClick","animation","propagateOutsideClick","_checkParentVisibility","contentTemplate","_renderInnerHtml","maxWidth","mode","validationErrors","positionRequest","boundary","offset","h","v","contentId","updateMaxWidth","_updatePosition","_ensureMessageNotEmpty","_toggleModeClass","_updateContentId","_textMarkup","_getTextMarkup","shouldShowMessage","_toggleVisibilityClasses","$wrapper","removeClass","container","id","attr","html","_this$option","validationErrorMessage","err","_err$message","separator","message","toggleClass","targetWidth","positionSide","verticalPositions","my","at","collision","EmptyTemplate","COLLECTION_CLASS","ITEM_CLASS","CONTENT_CLASS_POSTFIX","ITEM_CONTENT_PLACEHOLDER_CLASS","ITEM_DATA_KEY","ITEM_INDEX_KEY","ITEM_TEMPLATE_ID_PREFIX","ITEMS_OPTIONS_NAME","SELECTED_ITEM_CLASS","ITEM_RESPONSE_WAIT_CLASS","EMPTY_COLLECTION","TEMPLATE_WRAPPER_CLASS","ITEM_PATH_REGEX","ANONYMOUS_TEMPLATE_NAME","FOCUS_UP","FOCUS_DOWN","FOCUS_LEFT","FOCUS_RIGHT","FOCUS_PAGE_UP","FOCUS_PAGE_DOWN","FOCUS_LAST","FOCUS_FIRST","CollectionWidget","_activeStateUnit","_supportedKeys","$itemElement","_itemClickHandler","currentTarget","location","_moveFocus","space","leftArrow","rightArrow","upArrow","downArrow","pageUp","pageDown","_getDefaultOptions","selectOnFocus","loopItemFocus","itemTemplate","onItemRendered","onItemClick","onItemHold","itemHoldTimeout","onItemContextMenu","onFocusedItemChanged","noDataText","format","dataSource","_itemAttributes","itemTemplateProperty","focusOnSelectedItem","focusedElement","displayExpr","disabledExpr","visibleExpr","_compileDisplayGetter","_cleanRenderedItems","_refreshDataSource","_displayGetter","_initTemplates","_initItemsFromMarkup","_initDefaultItemTemplate","_getAnonymousTemplateName","fieldsMap","_getFieldsMap","_templateManager","addDefaultTemplates","item","$container","_prepareDefaultItemTemplate","_getBindableFields","rawItems","isTemplateRequired","innerHTML","_prepareItemTemplate","templateId","detach","clone","removeAttr","_saveTemplate","_dataSourceOptions","paginate","_renderedItemsCount","_focusTarget","_focusInHandler","$focusedElement","_setFocusedItem","$activeItem","_getActiveItem","_focusOutHandler","_updateFocusedItemState","last","activeElements","_getActiveElement","lastIndex","eq","$newTarget","$items","_getAvailableItems","_prevItem","_nextItem","first","_getVisibleItems","$itemElements","_itemElements","not","targetIndex","$last","$item","loop","$first","_selectFocusedItem","selectItem","isFocused","needCleanItemId","_refreshActiveDescendant","_refreshItemId","_toggleFocusClass","_updateParentActiveDescendant","setAria","getFocusedItemId","_findItemElementByItem","itemElements","_itemDataKey","_getIndexByItem","_itemOptionChanged","property","oldValue","constructor","ItemClass","setDataField","_refreshItem","isDisabling","_resetItemFocus","itemData","_getItemData","_itemIndexKey","_renderItem","matches","match","itemPath","_invalidate","_renderEmptyMessage","_createItemRenderAction","_attachHoldEvent","_attachContextMenuEvent","_loadNextPage","_dataSource","_expectNextPageLoading","pageIndex","_startIndexForAppendedItems","_expectLastItemLoading","_forgetNextPageLoading","_dataSourceChangedHandler","newItems","_initialized","_shouldAppendItems","_isLastPage","_refreshContent","_prepareContent","_renderContent","_dataSourceLoadErrorHandler","_allowDynamicItemsAppend","_clean","_cleanFocusState","_cleanItemContainer","_itemContainer","empty","_dispose","_itemFocusTimeout","_refresh","_itemClass","_itemContentClass","_selectedItemClass","_itemResponseWaitClass","_itemSelector","_renderContentImpl","_fireContentReadyAction","_render","_attachClickEvent","itemSelector","clickEventNamespace","NAME","pointerDownEventNamespace","down","pointerDownAction","_itemPointerDownHandler","execute","_itemDXEventHandler","_itemFocusHandler","isDefaultPrevented","$closestItem","closest","$closestFocusable","_closestFocusable","_forcePointerDownFocus","parent","isDocument","_updateFocusState","$itemContainer","hold","timeout","_getHoldTimeout","_itemHoldHandler","_shouldFireHoldEvent","hasActionSubscription","_itemContextMenuHandler","_shouldFireContextMenuEvent","_renderItems","$itemToReplace","_index$item","itemIndex","$itemFrame","_renderItemFrame","_setElementData","_attachItemClickEvent","$itemContent","_getItemContent","renderContentPromise","_renderItemContent","contentClass","defaultTemplateName","_postprocessRenderItem","itemElement","itemContent","_executeItemRenderAction","_itemEventHandlerByHandler","itemTemplateName","_getItemTemplateName","_getTemplate","_addItemContentClasses","$templateResult","_createItemByTemplate","_renderItemContentByNode","$node","_appendItemToContainer","_itemOptions","displayValue","watchMethod","owner","fieldGetter","field","expr","_getItemRenderAction","_itemRenderAction","category","templateProperty","renderArgs","render","_emptyMessageContainer","hideNoData","_isDataSourceLoading","_$noData","dxEvent","handlerOptionName","actionArgs","actionConfig","_itemEventHandler","initiator","action","validatingTargetName","_itemEventHandlerImpl","_closestItemElement","_extendActionArgs","_getSummaryItemsWidth","includeMargin","_focusedItemId","itemsContainer","include","ITEM_DELETING_DATA_KEY","NOT_EXISTING_INDEX","indexExists","_setOptionsByReference","_optionsByReference","selectedItem","selectionMode","selectionRequired","selectionByClick","selectedItems","selectedItemKeys","maxFilterLengthInRequest","keyExpr","selectedIndex","onSelectionChanged","onItemReordered","onItemDeleting","onItemDeleted","_userOptions","_initEditStrategy","_initKeyGetter","_initSelectionModule","_getKeysByItems","_editStrategy","getKeysByItems","_getItemsByKeys","getItemsByKeys","_getKeyByIndex","getKeyByIndex","_getIndexByKey","getIndexByKey","_getIndexByItemData","getIndexByItemData","_isKeySpecified","_getCombinedFilter","store","_nullValueSelectionSupported","itemsGetter","_selection","allowNullValue","equalByReference","addedItemKeys","removedItemKeys","_updateSelectedItems","_getItemsCount","loadOptions","customQueryParams","userData","_userData","loadResult","_disposed","_applyMapFunction","plainItems","dataFields","reduce","itemsCount","Strategy","_getSelectedItemIndices","indices","getSelectedItemKeys","beginCache","endCache","_rendering","isLoading","_syncSelectionOptions","_normalizeSelectedItems","_rendered","byOption","_chooseSelectOption","getItemDataByIndex","_setOptionWithoutOptionChange","selectedItemIndex","setSelection","isOptionDefined","optionValue","_compareKeys","oldKeys","newKeys","newSelection","currentSelection","getSelectedItems","normalizedSelection","itemSelectPromise","_this$_itemSelectHand","_itemSelectHandler","always","_itemSelectPromise","isItemSelected","unselectItem","_selectedItemElement","normalizedItemIndex","getNormalizedIndex","_isItemSelected","_processSelectableItem","isSelected","_setAriaSelected","selectionChangePromise","_selectionChangePromise","normalizedIndex","addedSelection","removedSelection","_addSelection","_removeSelection","_updateSelection","_fireSelectionChangeEvent","addedItems","removedItems","getItemElement","triggerHandler","checkPending","_clearSelectedItems","_waitDeletingPrepare","deletingActionArgs","deletePromise","deletePromiseExists","deletePromiseResolved","argumentsSpecified","shouldDelete","_deleteItemFromDS","disabledState","dataStore","_tryRefreshLastPage","_refreshLastPage","_updateSelectionAfterDelete","deselect","_updateIndicesAfterIndex","_simulateOptionChange","_optionChangedAction","_deleteItemElementByIndex","deleteItemAtIndex","_afterItemElementDeleted","deletedActionArgs","changingOption","beforeExecute","deleteItem","itemResponseWaitClass","reorderItem","toItemElement","strategy","$movingItem","$destinationItem","movingIndex","destinationIndex","canMoveItems","itemPlacementFunc","moveItemAtIndexToIndex","fromIndex","getIndex","toIndex","currentTemplateEngine","templateEngines","registerTemplateEngine","templateEngine","setTemplateEngine","getCurrentTemplateEngine","compile","jQuery","tmpl","jsrender","Mustache","Hogan","Handlebars","doT","_element","transclude","_compiledTemplate","contents","findTemplates","optionsString","optionsParser","suitableTemplatesByName","rawTemplates","templatesMap","_findBestMatches$","suitableTemplate","addOneRenderedCall","templateResult","onRendered","getNormalizedTemplateArgs","validateTemplateSource","templateSource","templateKey","defaultCreateElement","acquireIntegrationTemplate","isAsyncTemplate","skipTemplates","integrationTemplate","acquireTemplate","createTemplate","defaultTemplates","nodeType","initDxExtensionComponent","vue_1","component_1","vue_helper_1","defineComponent","extends","initBaseComponent","created","nodeOptions","getNodeOptions","$_isExtension","$_attachTo","attachTo","mounted","$el","setAttribute","componentOptions","$_hasOwner","methods","$_createWidget","pullAllChildren","isFragment","directChildren","allChildren","pullConfigComponents","node","patchFlag","nodes","componentInfo","getComponentInfo","$_optionName","componentChildren","configurationChildren","$_predefinedProps","getNormalizedProps","$_isCollectionItem","$_expectedChildren","$_config","$_innerChanges","callbacks","subscribeReady","removeListener","listen","getDocument","readyCallbacks","callback","windowExists","getReadyState","InfernoEffectHost","lockCount","effects","areObjectsEqual","firstObject","secondObject","bothAreObjects","firstObjectKeys","secondObjectKeys","hasDifferentElement","some","_pendingContext","lock","_nextProps","_nextState","_context","createEffects","callEffects","updateEffects","destroyEffects","vDomElement","el","currentClasses","addedClasses","dxClasses","previous","removedClasses","indexInRemoved","removed","splice","added","indexInAdded","$LI","componentDidMount","componentDidUpdate","classList","shouldUpdate","shouldComponentUpdate","vDomUpdateClasses","createContext","defaultValue","InfernoEffect","effect","dependency","destroy","currentDependency","createReRenderEffect","NUMBER_STYLES","uppercasePattern","kebabCase","str","isNumeric","isNaN","getNumberStyleValue","style","normalizeStyles","styles","kebabString","ERROR_MSG","isNullOrUndef","isInvalid","isFunction","isNull","throwError","isSameInnerHTML","dom","tempdom","document","createElement","findLastDOMFromVNode","vNode","flags","childFlags","isSamePropsInnerHTML","Boolean","dangerouslySetInnerHTML","__html","hydrateComponent","parentDOM","isSVG","isClass","lifecycle","ref","currentNode","input","hydrateVNode","$CX","hydrateChildren","parentVNode","parentNode","nextSibling","appendChild","createTextNode","childNodes","textContent","nodeValue","prevVNodeIsTextNode","len","child","removeChild","firstChild","hydrateElement","replaceChild","removeAttribute","hydrateText","hydrateFragment","currentDom","hydrate","listener","undefined","$V","renderTemplate","_component","hasTemplate","properties","createQueue","discardPendingTasks","_tasks","_busy","exec","removeTaskCallback","busy","_counter","_deferreds","operationId","DataSource","_options$reshapeOnPus","syncStrategy","_store","_changedTime","needThrottling","pushAggregationTimeout","pushDeferred","lastPushWaiters","throttlingTimeout","throttlingPushHandler","storePushPending","_onPush","_onPushHandler","_aggregationTimeoutId","_storeLoadOptions","_extractLoadOptions","_mapFunc","_postProcessFunc","postProcess","_pageIndex","_pageSize","pageSize","_loadingCount","_loadQueue","_createLoadQueue","_searchValue","_searchOperation","searchOperation","_searchExpr","searchExpr","_paginate","_reshapeOnPush","reshapeOnPush","substr","_operationManager","_items","_totalCount","_isLoaded","group","_this$_delayedLoadTas","_delayedLoadTask","abort","cancelAll","names","customNames","newIndex","normalizedArgs","_len","generateStoreLoadOptionAccessor","newFilter","_len2","_key2","_len3","_key3","requireTotalCount","argc","_this$_store","_changeLoadingCount","increment","oldLoading","newLoading","beginLoading","endLoading","_this","_len4","_key4","date","Date","_fireChanged","propName","propValue","_createStoreLoadOptions","_scheduleFailCallbacks","refresh","searchString","_byKeyViaLoad","loadTask","_loadFromStore","loadOperation","_scheduleLoadCallbacks","_scheduleChangedCallbacks","_createLoadOperation","delay","groupLevel","dataSourceChanges","keyInfo","groupCount","useInsertIndex","storeLoadOptions","clearRawDataCache","_addSearchFilter","_addSearchOptions","selector","searchFilter","pendingDeferred","handleSuccess","extra","_processStoreLoadResult","resolvePendingDeferred","isFinite","_applyPostProcessFunction","ICON_CLASS","SVG_ICON_CLASS","getImageSourceType","getImageContainer","$activeThemeLink","knownThemes","currentThemeName","pendingThemeName","themeClasses","themeReadyCallback","viewPort","viewPortChanged","initDeferred","DX_LINK_SELECTOR","THEME_ATTR","ACTIVE_ATTR","DX_HAIRLINES_CLASS","ANY_THEME","defaultTimeout","THEME_MARKER_PREFIX","readThemeMarker","documentElement","getComputedStyle","fontFamily","waitForThemeLoad","themeName","waitStartTime","timerId","intervalCleared","handleLoaded","clearInterval","isPendingThemeLoaded","now","setInterval","isLoaded","isTimeout","log","anyThemePending","themeMarker","processMarkup","$allThemeLinks","link","fullThemeName","url","isActive","after","resolveFullThemeName","desiredThemeName","desiredThemeParts","knownThemeName","themeData","knownThemeParts","initContext","newContext","detachCssClasses","theme","currentThemeData","isAutoInit","_autoInit","loadCallback","has","_forceTimeout","attachCssClasses","themeNameParts","isMaterial","pixelRatio","devicePixelRatio","$tester","isTheme","themeRegExp","RegExp","isGeneric","isCompact","isWebFontLoaded","fontWeight","testElement","top","left","visibility","fontSize","body","etalonFontWidth","offsetWidth","testedFontWidth","waitWebFont","clear","intervalId","timeoutId","autoInit","prevViewPort","changed","__createBinding","m","k","k2","__setModuleDefault","__importStar","mod","__esModule","createExtensionComponent","createConfigurationComponent","createComponent","vue2Stategy","vue3Stategy","version_1","isVue3","DRAG_START_EVENT","DRAG_EVENT","DRAG_END_EVENT","DRAG_ENTER_EVENT","DRAG_LEAVE_EVENT","DROP_EVENT","DX_DRAG_EVENTS_COUNT_KEY","knownDropTargets","knownDropTargetSelectors","knownDropTargetConfigs","dropTargetRegistration","setup","knownDropTarget","handleObj","updateEventsCounter","eventsCount","teardown","handlersCount","getItemDelegatedTargets","dropTargetIndex","dropTargetSelectors","$delegatedTargets","getItemConfig","getItemPosition","dropTargetConfig","itemPositionFunc","getItemSize","itemSizeFunc","getBoundingClientRect","DragEmitter","_initEvent","_fireEvent","_maxLeftOffset","maxLeftOffset","_maxRightOffset","maxRightOffset","_maxTopOffset","maxTopOffset","_maxBottomOffset","maxBottomOffset","dropTargets","targetElements","_dropTargets","dragOffset","_calculateOffset","_processDropTargets","_cancelPreventDefault","_calculateXOffset","_calculateYOffset","_fitOffset","minOffset","maxOffset","_findDropTarget","sameTarget","_currentDropTarget","_fireDropTargetEvent","draggingElement","_$element","_checkDropTargetActive","delegatedTarget","$delegatedTarget","_checkDropTarget","active","activeTarget","$prevTarget","isDraggingElement","targetPosition","targetSize","checkDropTarget","emitter","events","getOption","deepWatch","setOptions","onAfterRender","onPreRender","nextNode","rootNode","mountNode","createDocumentFragment","vNodeAlreadyExists","insertBefore","shallowEquals","every","removeDifferentElements","$children","$newChildren","__","hasComponent","oldElement","number","_this$props$model","$parent","isNode","$result","nextModel","nextTemplate","sameTemplate","nextData","nextIndex","sameModel","cloneObjectValue","cloneObjectProp","prevValue","fullNameParts","updatePropsImmutable","currentPropsValue","prevPropsValue","setDefaultOptionValue","defaultValueGetter","_shouldRaiseContentReady","validateKeyDownHandler","supportedKeyNames","getSupportedKeyNames","hasComponentDefaultKeyHandlers","hasComponentKeyDownMethod","_viewComponent","_this$_viewRef","_viewRef","contentReadyOptions","_getContentReadyOptions","_checkContentReadyOption","_actionsMap","onContentReady","_propsInfo","defaultName","_renderWrapper","containerNode","_isNodeReplaced","_fireContentReady","silent","_removeWidget","_elementAttr","attributes","attrs","_attributes$attr$name","specified","updatedAttributes","_storedClasses","getAttribute","elemStyle","getPropertyValue","class","onKeyboardHandled","event_options","widgetProps","_getAdditionalProps","_patchElementParam","cssText","_this$elementAttr$cla","_elementAttr$class","elementAttr","_props","_extractDefaultSlot","_aria","_componentTemplates","prepareStyleProp","trim","_getActionConfigs","_getAdditionalActionConfigs","_templatesInfo","templateOptions","entries","_options$templateName","templateName","templateValue","_this$_templateManage","customKeyHandlers","getDefaultTemplates","_optionsWithDefaultTemplates","_getActionConfigsFull","defaultKeyHandlers","_createDefaultKeyHandlers","createKeyDownOptions","actionToAdd","actionByOption","actArgs","anonymousTemplateName","templateOption","initialHandler","func","IS_RENOVATED_WIDGET","READONLY_STATE_CLASS","INVALID_CLASS","DX_INVALID_BADGE_CLASS","VALIDATION_TARGET","VALIDATION_STATUS_VALID","VALIDATION_STATUS_INVALID","READONLY_NAMESPACE","ALLOWED_STYLING_MODES","VALIDATION_MESSAGE_KEYS_MAP","validationMessageMode","validationMessageOffset","validationBoundary","Editor","showValidationMessageTimeout","validationRequest","_createElement","_initOptions","initValidationOptions","cache","onValueChanged","readOnly","isValid","validationError","validationTooltipOptions","_attachKeyboardEvents","_createValueChangeAction","_valueChangeAction","_suppressValueChangeAction","_valueChangeActionSuppressed","_resumeValueChangeAction","_toggleReadOnlyState","_setSubmitElementName","_renderValidationState","_raiseValueChangeAction","_valueChangeArgs","_valueChangeEventInstance","_saveValueChangeEvent","isValidationMessageShownOnFocus","_canValueBeChangedByClick","_this$_validationMess","$validationMessageWrapper","_validationMessage","_getStylingModePrefix","_renderStylingMode","prefix","allowedStylingClasses","stylingModeClass","defaultOptionValue","platformOptionValue","_convertRulesToOptions","_defaultOptionsRules","_getValidationErrors","_disposeValidationMessage","_$validationMessage","_toggleValidationClasses","validationMessageContentId","_getValidationMessageTarget","_bindInnerWidgetOptions","_toggleBackspaceHandler","isReadOnly","$eventTarget","_keyboardEventBindingTarget","$submitElement","_getSubmitElement","_setValidationMessageOption","_this$_validationMess2","optionKey","_hasActiveElement","_this$_validationMess3","_refreshFocusState","editor","synchronizeValidationOptions","_innerWidgetOptionChanged","blur","isEditor","maxLevel","normalizeArg","xItem","parseInt","yItem","__importDefault","TemplatesManager","config_1","templates_discovering_1","dom_adapter_1","events_1","constants_1","_slots","_templates","_isDirty","discover","slots","allKeysAreEqual","_prepareTemplates","resetDirtyFlag","name_1","createDxTemplate","scopeData","placeholder","mountedTemplate","mountTemplate","setClass","DX_TEMPLATE_WRAPPER_CLASS","Node","TEXT_NODE","removalListener","nodeName","display","one","DX_REMOVE_EVENT","$destroy","resizeCallbacks","prevSize","originalCallbacksAdd","originalCallbacksRemove","formatSize","window","innerWidth","innerHeight","handleResize","changedDimension","setPrevSize","ConfigProviderProps","ConfigContext","resolveRtlEnabled","rtlProp","resolveRtlEnabledDefinition","isPropDefined","onlyGlobalDefined","DEFAULT_FEEDBACK_HIDE_TIMEOUT","DEFAULT_FEEDBACK_SHOW_TIMEOUT","getAria","r","widget","title","hidden","widgetElementRef","shouldRenderConfigProvider","WidgetProps","_feedbackHideTimeout","_feedbackShowTimeout","addWidgetClass","focused","hovered","setRootElementRef","activeEffect","clickEffect","focusEffect","hoverEffect","keyboardEffect","resizeEffect","windowResizeEffect","visibilityEffect","checkDeprecation","applyCssTextEffect","activeStateUnit","onFocusIn","onFocusOut","onHoverEnd","onHoverStart","onDimensionChanged","onVisibilityChange","_this$_effects$2","_this$_effects$3","_this$_effects$4","_this$_effects$5","_this$_effects$6","_this$_effects$7","_this$_effects$8","_this$_effects$9","_this$_effects$10","onRootElementRendered","rootElementRef","setState","__state_argument","hideTimeout","showTimeout","isFocusable","computedWidth","computedHeight","isHoverable","canBeActive","activeElement","getActiveElement","nativeXMLHttpRequest","getXhr","XMLHttpRequest","SUCCESS","ERROR","TIMEOUT","NO_CONTENT","PARSER_ERROR","isStatusSuccess","hasContent","paramsConvert","params","encodeURIComponent","createScript","script","removeScript","scriptNode","appendToHead","getHead","evalScript","code","evalCrossDomainScript","loadHandler","getAcceptHeader","dataType","scriptAccept","accepts","xml","json","jsonp","getContentTypeHeader","defaultContentType","upload","getMethod","contentType","getDataFromResponse","xhr","responseType","responseText","response","JSON","parse","isCrossDomain","crossDomain","originAnchor","urlAnchor","href","protocol","host","setHttpTimeout","customStatus","getJsonpOptions","random","callbackName","jsonpCallback","callbackParameter","getRequestOptions","headers","paramsAlreadyString","parameters","method","toUpperCase","getRequestHeaders","Accept","sendRequest","async","needScriptEvaluation","requestOptions","open","username","password","onreadystatechange","readyState","onprogress","onloadstart","onabort","xhrFields","setRequestHeader","beforeSend","send","executeAction","inactive","resize","hover","shown","hiding","focusIn","focusOut","hasDocumentProperty","_ref7","dxClick","keyboardProcessors","generateListenerId","focusTarget","listenerId","_getProcessor","Action","_action","_beforeExecute","_afterExecute","afterExecute","_validatingTargetName","_excludeValidators","handled","argsBag","_validateAction","_executeAction","executors","_executor$validate","executor","_executor$execute","registerExecutor","createValidatorByTargetElement","condition","ERROR_MESSAGES","E4000","E4001","E4002","E4003","E4004","E4005","E4006","E4007","E4008","E4009","E4010","E4011","E4012","E4013","E4014","E4015","E4016","E4017","E4018","E4019","E4020","E4021","E4022","E4023","E4024","W4000","W4001","W4002","isModernAndroidDevice","android","version","isInputEventsL2Supported","EMPTY_CHAR","BaseMaskRule","_value","_next","rawValue","handle","_prepareHandlingArgs","_config$str","_config$start","_config$length","handlingProperty","isAccepted","adjustedCaret","caret","isForwardDirection","char","_adjustedForward","_adjustedBackward","EmptyMaskRule","MaskRule","maskChar","rest","substring","_tryAcceptChar","_accepted","_isAllowed","acceptedChar","fullText","_isAccepted","_isValid","allowedChars","StubMaskRule","hasValueProperty","nextArgs","pointerDown","STATE_INVISIBLE_CLASS","TEXTEDITOR_CLEAR_BUTTON_CLASS","TEXTEDITOR_CLEAR_ICON_CLASS","TEXTEDITOR_ICON_CLASS","TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS","_addToContainer","_isClearButtonVisible","$button","editorName","_clearValueHandler","$editor","isVisible","rendered","_isVisible","_legacyRender","CUSTOM_BUTTON_HOVERED_CLASS","_createComponent","ignoreParentReadOnly","_isDisabled","_prepareIntegrationOptions","isUpdated","isDefinedByUser","TEXTEDITOR_BUTTONS_CONTAINER_CLASS","checkButtonInfo","buttonInfo","checkNamesUniqueness","existingNames","newName","isPredefinedButtonName","predefinedButtonsInfo","info","defaultButtonsInfo","buttons","isStringButton","isDefaultButton","defaultButtonInfo","Ctor","buttonsInfo","targetLocation","$buttonsContainer","_compileButtonInfo","_createButton","prepend","buttonName","_renderButtons","TEXTEDITOR_LABEL_CLASS","TEXTEDITOR_WITH_LABEL_CLASS","TEXTEDITOR_WITH_FLOATING_LABEL_CLASS","TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS","LABEL_BEFORE_CLASS","LABEL_CLASS","LABEL_AFTER_CLASS","mark","containsButtonsBefore","containerWidth","beforeWidth","_toggleMarkupVisibility","_$before","_$labelSpan","_$label","_$after","_$root","_updateMark","_updateText","_updateBeforeWidth","_updateMaxWidth","_updateEditorBeforeButtonsClass","_updateEditorLabelClass","labelClass","beforeButtonsClass","TEXTEDITOR_CLASS","TEXTEDITOR_INPUT_CONTAINER_CLASS","TEXTEDITOR_INPUT_CLASS","TEXTEDITOR_INPUT_SELECTOR","TEXTEDITOR_CONTAINER_CLASS","TEXTEDITOR_PLACEHOLDER_CLASS","TEXTEDITOR_EMPTY_INPUT_CLASS","TEXTEDITOR_PENDING_INDICATOR_CLASS","TEXTEDITOR_VALIDATION_PENDING_CLASS","TEXTEDITOR_VALID_CLASS","EVENTS_LIST","CONTROL_KEYS","TextEditorLabelCreator","checkButtonsOptionType","TextEditorBase","_buttonCollection","_getDefaultButtons","_$beforeButtonsContainer","_$afterButtonsContainer","_labelContainerElement","spellcheck","showClearButton","valueChangeEvent","inputAttr","onKeyUp","onChange","onInput","onCut","onCopy","onPaste","onEnterKey","displayValueFormatter","editorStylingMode","showValidationMark","labelMode","labelMark","_input","_isFocused","_inputWrapper","_buttonsContainer","_isControlKey","_updateButtonsStyling","_renderInput","_renderInputType","_renderPlaceholder","_renderProps","_renderValue","_renderLabel","_refreshValueChangeEvent","_renderEvents","_renderEnterKeyAction","_renderEmptinessEvent","_$buttonsContainer","_$textEditorContainer","_$textEditorInputContainer","_createInput","_renderButtonContainers","_renderPendingIndicator","$inputContainer","_getInputContainer","$indicatorElement","_pendingIndicator","_disposePendingIndicator","isPending","_showValidMark","renderBeforeButtons","renderAfterButtons","_cleanButtonContainers","_this$_$beforeButtons","_this$_$afterButtonsC","clean","_cleanLabelObservable","_applyInputAttributes","inputAttrName","customAttributes","inputAttributes","_getDefaultAttributes","defaultAttributes","autocomplete","ios","mac","_updateButtons","updateButtons","buttonInstance","getButton","renderInputPromise","_renderInputValue","val","_renderDisplayText","_toggleEmptinessEventHandler","_isValueValid","validity","valid","_toggleEmptiness","isEmpty","_togglePlaceholder","_toggleSpellcheckState","_toggleTabIndex","_toggleDisabledState","prop","_readOnlyPropValue","unobserve","_getLabelContainer","_getLabelContainerWidth","_getLabelBeforeWidth","buttonsBeforeWidth","_updateLabelWidth","_label","updateBeforeWidth","labelConfig","observe","_renderPlaceholderMarkup","_attachPlaceholderEvents","_$placeholder","placeholderText","$placeholder","insertAfter","startEvent","up","_placeholder","_clearValue","_refreshEvents","_keyPressHandler","_keyDownHandler","isCtrlEnter","isNewValue","_renderValueChangeEvent","keyPressEvent","_renderValueEventName","keyDownEvent","_valueChangeEventHandler","_cleanValueChangeEvent","valueChangeNamespace","textChangeNamespace","_focusEventTarget","_isInput","_preventNestedFocusEvent","_isNestedTarget","relatedTarget","_focusClassTarget","_hasFocusClass","formattedValue","_enterKeyAction","_enterKeyHandlerUp","_updateValue","_refreshFocusEvent","updateText","updateMark","updateMode","updateContainsButtonsBefore","_setInputType","charAt","MASK_EVENT_NAMESPACE","BLUR_EVENT","DIRECTION","FORWARD","BACKWARD","_getStrategyName","newCaret","_caret","handlerName","editorInput","getHandleEventNames","subscriptionName","getEventHandler","_attachChangeEventHandlers","editorOption","_suppressCaretChanging","_changeHandler","_showMaskPlaceholder","_direction","_isValueEmpty","_adjustCaret","_maskRulesChain","_caretTimeout","editorCaret","selectedText","_maskKeyHandler","_clearDragTimer","_dragTimer","_convertToValue","_keyPressHandled","pastedText","restText","accepted","_handleChain","inputVal","_inputHandlerTimer","_isAutoFill","_validateMask","browser","webkit","keyPressHandled","_hasSelection","_handleKey","_backspaceHandlerTimeout","BACKSPACE_INPUT_TYPE","_isControlKeyFired","_backspaceInputHandled","inputType","_handleBackspaceInput","_autoFillHandler","inputValue","afterBackspaceHandler","needAdjustCaret","callBack","currentCaret","_displayMask","_tryMoveCaretBackward","_backspaceHandler","DELETE_INPUT_TYPE","_prevCaret","setBackwardDirection","_updateEditorMask","_getEmptyString","_this$_prevCaret","_this$_prevCaret2","_this$_prevCaret3","_length","newData","setForwardDirection","hasValidChars","textLength","updatedCharsCount","correction","stubCaret","ESCAPED_CHAR","TEXTEDITOR_MASKED_CLASS","FORWARD_DIRECTION","BACKWARD_DIRECTION","buildInMaskRules","0","L","isLiteralChar","l","isSpaceChar","C","A","isNumericChar","charCodeAt","TextEditorMask","mask","maskRules","maskInvalidMessage","useMaskedValue","showMaskMode","keyHandlerMap","_maskStrategy","getHandler","del","parentHandler","_$hiddenElement","_initMaskStrategy","_renderHiddenElement","_attachMouseWheelEventHandlers","hasMouseWheelHandler","_onMouseWheel","wheel","mouseWheelAction","_renderMask","_removeHiddenElement","detachEvents","attachEvents","_parseMask","_renderMaskedValue","_changedValue","changeEvent","_maskRules","_parseMaskRule","currentMaskChar","isEscapedChar","_getMaskRule","pattern","ruleConfig","rulePattern","_normalizeChainArguments","chainArgs","_isMaskedValueMode","_replaceSelectedText","selection","textBefore","textAfter","edited","_shouldShowMask","submitElementValue","_getPreparedValue","handledCount","_textValue","_replaceMaskCharWithEmpty","keyHandler","_handleSelection","previousText","raiseInputEvent","runWithoutEventProcessing","_handleKeyChain","_moveCaret","emptyChars","chars","caretStart","maskRuleIndex","force","_typingDirection","editorSpecific","_updateHiddenElement","_updateMaskOption","_processEmptyMask","BaseWidgetProps","SelectionFilterCreator","isSelectAll","selectedItemKeyHashesMap","getLocalFilter","keyGetter","equalKeys","functionFilter","getExpr","filterExpr","filterExprPart","getFilterForPlainKey","itemKeyValue","currentKeyExpr","currentKeyValue","getCombinedFilter","dataSourceFilter","combinedFilter","normalizeKeys","keyHash","selectedKeyHashesMap","normalizedKeys","keyValue","EditStrategy","collectionWidget","_collectionWidget","resultIndex","_denormalizeItemIndex","_equalKeys","key1","key2","_cache","_isNormalizedItemIndex","_isItemIndex","_normalizeItemIndex","_isNode","_getNormalizedItemIndex","_getItemByNormalizedIndex","_itemsFromSameParent","round","PlainEditStrategy","_getPlainItems","movedItemData","MANAGER_EVENT","EMITTER_DATA","EventManager","_attachHandlers","_proxiedCancelHandler","_cancelHandler","_proxiedAcceptHandler","_acceptHandler","_pointerDownHandler","_pointerMoveHandler","_pointerUpHandler","_mouseWheelHandler","_eachEmitter","activeEmitters","_activeEmitters","_applyToEmitters","arg","resetEmitter","_updateEmitters","_isSetChanged","_cleanEmitters","_fetchEmitters","currentSet","_closestEmitter","previousSet","_emittersSet","setChanged","handleEmitter","validatePointers","addCancelCallback","addAcceptCallback","emitters","acceptedEmitter","_cancelEmitter","canceledEmitter","removeCancelCallback","removeAcceptCallback","emitterIndex","_allowInterruptionByMouseWheel","_adjustWheelEvent","allowInterruption","closestGestureEmitter","shiftKey","verticalGestureDirection","eventManager","EMITTER_SUBSCRIPTION_DATA","registerEmitter","emitterConfig","emitterClass","emitterName","emitterEvents","noBubble","bubble","subscriptions","delegateSelector","disposeEmitter","isFocusingOnCaretChange","getCaret","range","selectionStart","selectionEnd","setCaret","getBody","contains","registerEvent","eventObject","bindType","delegateType","methodName","unshift","renderedCallbacks","TemplateBase","_renderCore","_ensureResultInContainer","resultInContainer","resultInBody","CSS_TRANSITION_EASING_REGEX","TransitionTimingFuncMap","linear","swing","ease","polynomBezier","x1","y1","x2","y2","Cx","Bx","Ax","Cy","By","Ay","bezierX","derivativeX","z","easing","convertTransitionTimingFuncToEasing","cssTransitionEasing","forceName","coeffs","parseFloat","easingName","b","getEasing","removeEventName","RELATIVE_VALUE_REGEX","ANIM_DATA_KEY","ANIM_QUEUE_KEY","TRANSFORM_PROP","TransitionAnimationStrategy","initAnimation","transitionProperty","setProps","cleanupWhen","transitionAnimation","finish","_finishTransition","_cleanup","_completeAnimationCallback","duration","animate","_startAnimation","simulatedEndEventTimer","startTime","transitionEndFired","simulatedTransitionEndFired","transitionEndEventFullName","cleanup","waitForJSCompleteTimer","stop","fx","_simulatedTransitionEndDelay","transitionDelay","transitionDuration","transitionTimingFunction","jumpToEnd","FrameAnimationStrategy","_normalizeValue","_parseTransform","frameAnimation","currentValue","valueOf","draw","animationFrameId","delayTimeout","_animationStep","transformString","part","translateData","scaleData","rotateData","translate","scale","_calcStepValue","currentDuration","calcValueRecursively","endPropValue","numericValue","FallbackToNoAnimationStrategy","isSynchronous","getAnimationStrategy","animationStrategies","transition","frame","noAnimation","baseConfigValidator","animationType","typeMessage","isObjectConfigValidator","isStringConfigValidator","CustomAnimationConfigurator","CssAnimationConfigurator","validateConfig","positionAliases","bottom","right","SlideAnimationConfigurator","positioningConfig","of","setupPosition","_setUpConfig","_initNewPosition","relativeValue","_getRelativeValue","FadeAnimationConfigurator","_from$opacity","_to$opacity","defaultFromOpacity","defaultToOpacity","fromOpacity","opacity","toOpacity","skipElementInitialStyles","PopAnimationConfigurator","fromScale","toScale","_getCssTransform","animationConfigurators","custom","slide","slideIn","slideOut","fade","fadeIn","fadeOut","pop","getAnimationConfigurator","defaultJSConfig","defaultCssConfig","setupAnimationOnElement","configurator","onElementAnimationComplete","removeData","startAnimationOnElement","stopAnimationOnElement","startTimeout","scopedRemoveEvent","subscribeToRemoveEvent","createAnimation","initialConfig","defaultConfig","pushInAnimationQueue","queueData","getAnimQueueData","writeAnimQueueData","isAnimating","shiftFromAnimationQueue","destroyAnimQueueData","executeAnimation","win","calculate","currentPosition","scrollTop","scrollLeft","animationTypes","focusableFn","isTabIndexNotNaN","isDisabled","isDefaultFocus","isHyperlink","parents","focusable","tabbable","navigator","KNOWN_UA_TABLE","iPhone","iPhone5","iPhone6","iPhone6plus","iPad","iPadMini","androidPhone","androidTablet","msSurface","desktop","DEFAULT_DEVICE","phone","tablet","generic","grade","uaParsers","userAgent","isPhone","isTablet","isMac","isIPhone4","screen","worseThan4_4","Devices","_window","_realDevice","_getDevice","_currentDevice","_currentOrientation","_recalculateOrientation","deviceOrName","_forced","_getDeviceOrNameFromWindowScope","_getDeviceNameFromSessionStorage","forceDevice","tinyHippos","realDevice","_deviceClasses","_getCssClasses","_isSimulator","self","isRippleEmulator","deviceName","_fromConfig","ua","_fromUA","sessionStorage","getItem","ex","shortcuts","parser","$window","orientation","windowWidth","_currentWidth","_changeOrientation","viewPortElement","prevViewport","FRAME_ANIMATION_STEP_TIME","request","requestID","setAnimationFrameMethods","nativeRequest","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","nativeCancel","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","canceledRequests","requestId","STATUS","invalid","pending","BaseRuleValidator","getFormatter","rulesValidators","required","valueArray","itemValue","_validate","RequiredRuleValidator","NumericRuleValidator","ignoreEmptyValue","useCultureSettings","RangeRuleValidator","validNumber","numeric","validValue","StringLengthRuleValidator","CustomRuleValidator","validator","dataGetter","extraParams","validationCallback","AsyncRuleValidator","reevaluate","callbackResult","_getWrappedPromise","res","CompareRuleValidator","comparisonTarget","otherValue","comparisonType","PatternRuleValidator","EmailRuleValidator","stringLength","email","GroupConfig","validators","_pendingValidators","_onValidatorStatusChanged","_resetValidationInfo","brokenRules","_unsubscribeFromAllChangeEvents","validatorResult","_addPendingValidator","_subscribeToChangeEvents","_raiseValidatedEvent","_updateValidationInfo","_validationInfo","_unsubscribeFromChangeEvents","foundValidator","orderedRules","foundRules","_orderBrokenRules","_resolveIfComplete","_removePendingValidator","_updateBrokenRules","_synchronizeValidationInfo","ValidationEngine","groups","$dxGroup","dxValidationGroup","addGroup","defaultFormattedMessage","defaultMessage","brokenRule","_rules$","validationRules","pendingRules","asyncRuleItems","ruleValidationResult","ruleValidator","_addBrokenRule","_setDefaultMessage","_validateAsyncRules","_synchronizeGroupValidationInfo","_result$brokenRules","groupConfig","_validationGroup","asyncResults","validateResult","asyncResult","ruleResult","_getPatchedRuleResult","_updateRuleConfig","all","_getAsyncRulesResult","registerValidator","validatorsInGroup","isDefaultGroup","isValidationGroupInstance","removeRegisteredValidator","_shouldRemoveGroup","removeGroup","initedOptions","newStatus","initGroups","CANCELED_TOKEN","normalizeStoreLoadOptionAccessorArguments","originalArguments","mapGroup","level","restItem","mapRecursive","mapDataRespectingGrouping","groupInfo","normalizeLoadResult","_data","createCustomStoreFromLoadFunc","storeConfig","createStoreFromConfig","createCustomStoreFromUrl","normalizationOptions","loadMode","fromUrlLoadMode","normalizeDataSourceOptions","ignoreKeys","TEXTBOX_CLASS","SEARCHBOX_CLASS","SEARCH_ICON_CLASS","TextBox","_showClearButton","maxLength","_renderSearchMode","_useTemplates","_toggleMaxLengthProp","_getMaxLength","_renderSearchIcon","_$searchIcon","$searchIcon","prependTo","labelBeforeWidth","_onKeyDownCutOffHandler","actualMaxLength","_cutOffExtraChar","getSelection","_onChangeCutOffHandler","textInput","isMaskSpecified","resetActiveElement","_activeElement$blur","clearSelection","removeAllRanges","closestCommonParent","startTarget","endTarget","$startTarget","$endTarget","$startParents","$endParents","startingParent","extractTemplateMarkup","templateTag","normalizeTemplateElement","clipboardText","clipboard","clipboardData","getData","setData","isTextNode","compareDocumentPosition","DOCUMENT_POSITION_CONTAINS","createTextElementHiddenCopy","elementStyles","includePaddings","fontStyle","fontVariant","letterSpacing","border","paddingTop","paddingRight","paddingBottom","paddingLeft","whiteSpace","float","newElement","insertElement","currentElement","configuration_component_1","extension_component_1","initDxComponent","setVModel","initDxConfiguration","isString","isUndefined","componentHooks","onComponentDidMount","onComponentDidUpdate","onComponentShouldUpdate","onComponentWillMount","onComponentWillUnmount","onComponentWillUpdate","_children","newProps","arguments$1","childLen","prop$1","Promise","resolver","promises","FunctionTemplate","getTemplatePropName","uppercaseFirst","lowercaseFirst","camelize","toComparable","getTime","value1","value2","forEachChildNode","obj1","obj2","obj1Keys","obj1Keys_1","getOptionValue","optionPath","parts","TEMPLATE_MULTIPLE_ROOTS_ERROR","DATA_SOURCE_OPTIONS_METHOD","DATA_SOURCE_CHANGED_METHOD","DATA_SOURCE_LOAD_ERROR_METHOD","DATA_SOURCE_LOADING_CHANGED_METHOD","DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD","SPECIFIC_DATA_SOURCE_OPTION","NORMALIZE_DATA_SOURCE","DataHelperMixin","postCtor","_disposeDataSource","_initDataSource","_loadDataSource","widgetDataSourceOptions","dataSourceType","dataSourceOptions","_isSharedDataSource","_dataSourceType","_addDataSourceHandlers","_addDataSourceChangeHandler","_addDataSourceLoadErrorHandler","_addDataSourceLoadingChangedHandler","_addReadyWatcher","_ready","_proxiedDataSourceChangedHandler","_proxiedDataSourceLoadErrorHandler","_proxiedDataSourceLoadingChangedHandler","_loadSingle","loadSingle","isLastPage","getDataSource","TOOLBAR_CLASS","CONTEXTMENU_NAMESPACE","CONTEXTMENU_NAMESPACED_EVENT_NAME","HOLD_NAMESPACED_EVENT_NAME","CONTEXTMENU_EVENT_NAME","ContextMenu","_contextMenuHandler","_holdHandler","_fireContextMenu","HOLD_EVENT_NAME","HOLD_TIMEOUT","HoldEmitter","_startTimer","holdTimeout","_holdTimer","_touchWasMoved","_stopTimer","changeCallback","$originalViewPort","$current","isNewViewportFound","originalViewPort","TEMPLATE_OPTIONS_NAME","DX_POLYMORPH_WIDGET_TEMPLATE","widgetName","widgetElement","widgetOptions","_tempTemplates","_defaultTemplates","_anonymousTemplateName","_createTemplateIfNeeded","skipImmediate","useDeferUpdateForTemplates","tempTemplate","_extractTemplates","anonymousTemplateMeta","_extractAnonymousTemplate","suitableTemplates","_createTemplate","$anonymousTemplate","$notJunkTemplateContent","isEmptyText","cachedTemplate","templateSourceResult","DOMComponent","createDefaultOptions","_customClass","_getSynchronizableOptionsForCreateComponent","_checkFunctionValueDeprecation","optionNames","_visibilityChanged","_dimensionChanged","_attachWindowResizeCallback","_initTemplateManager","instanceCustomRules","_classCustomRules","isCustomOption","_isDimensionChangeSupported","windowResizeCallBack","_windowResizeCallBack","_renderElementAttributes","_toggleRTLDirection","_renderVisibilityChange","_renderDimensions","_attachVisibilityChangeHandlers","classNames","_attachDimensionChangeHandlers","_isVisibilityChangeSupported","_getOptionValue","_isCssUpdateRequired","_isHidden","_checkVisibilityChanged","modelByElement","_isUpdateAllowed","_requireRefresh","_renderComponent","_detachWindowResizeCallback","rtl","synchronizableOptions","nestedComponentOptions","nestedComponentConfig","_extendConfig","optionChangedHandler","extendConfig","renderRequired","_isInitializingRequired","_updateDOMComponent","_removeAttributes","_removeClasses","initialOption","extractTemplates","anonymousTemplate","getDefaultAlignment","isRtlEnabled","getBoundingRect","outerWidth","outerHeight","hideCallback","indexOfCallback","hasCallback","RESIZABLE","RESIZABLE_CLASS","RESIZABLE_RESIZING_CLASS","RESIZABLE_HANDLE_CLASS","RESIZABLE_HANDLE_TOP_CLASS","RESIZABLE_HANDLE_BOTTOM_CLASS","RESIZABLE_HANDLE_LEFT_CLASS","RESIZABLE_HANDLE_RIGHT_CLASS","RESIZABLE_HANDLE_CORNER_CLASS","DRAGSTART_START_EVENT_NAME","drag","DRAGSTART_EVENT_NAME","DRAGSTART_END_EVENT_NAME","SIDE_BORDER_WIDTH_STYLES","Resizable","handles","stepPrecision","area","minWidth","minHeight","maxHeight","onResizeStart","onResize","onResizeEnd","roundStepValue","_renderHandles","_renderActions","_resizeStartAction","_resizeEndAction","_resizeAction","_handles","directions","handleName","_renderHandle","_attachEventHandlers","$handle","handlers","_dragStartHandler","_dragHandler","_dragEndHandler","handleElement","_detachEventHandlers","_toggleEventHandlers","shouldAttachEvents","_toggleResizingClass","_movingSides","_getMovingSides","_elementLocation","elementRect","_elementSize","_renderDragOffsets","_getArea","handleWidth","handleHeight","handleOffset","areaOffset","scrollOffset","_getAreaScrollOffset","scrollX","scrollY","_getBorderWidth","borderWidth","sides","size","_getOffset","_renderWidth","_renderHeight","offsetTop","offsetLeft","steps","strictPrecision","_getStrictOffset","_getSimpleOffset","xPos","yPos","newXShift","newYShift","sign","separatorOffset","isSmallOffset","newOffsetX","newOffsetY","hasCornerTopLeftClass","hasCornerTopRightClass","hasCornerBottomLeftClass","hasCornerBottomRightClass","_getAreaFromObject","_getAreaFromElement","isElement","areaElement","pageXOffset","pageYOffset","_correctAreaGeometry","$area","areaBorderLeft","areaBorderTop","KEYBOARD_DRAG_STEP","dragEnabled","draggableElement","positionController","_positionController","_draggableElement","_handle","_dragEnabled","unsubscribe","subscribe","_moveTo","_getEventNames","startEventName","updateEventName","_dragUpdateHandler","endEventName","allowedOffsets","_getAllowedOffsets","_prevOffset","targetOffset","_moveByOffset","dragHandled","detectVisualPositionChange","_fitOffsetIntoAllowedRange","$dragResizeContainer","containerHeight","clientHeight","clientWidth","containerDimensions","_getContainerDimensions","elementDimensions","_getElementDimensions","outsideDragFactor","fullDelta","_getInnerDelta","outerDelta","_getOuterDelta","offsetHeight","_getFullDelta","isDragAllowed","elementPosition","_getElementPosition","containerPosition","_getContainerPosition","newPosition","baseZIndex","zIndexStack","base","ZIndex","baseIndex","zIndex","OVERLAY_CLASS","OVERLAY_WRAPPER_CLASS","OVERLAY_CONTENT_CLASS","OVERLAY_SHADER_CLASS","OVERLAY_MODAL_CLASS","INNER_OVERLAY_CLASS","INVISIBLE_STATE_CLASS","RTL_DIRECTION_CLASS","ACTIONS","OVERLAY_STACK","PREVENT_SAFARI_SCROLLING_CLASS","TAB_KEY","_proxiedDocumentDownHandler","Overlay","hide","_drag","moveUp","moveDown","moveLeft","moveRight","deferRendering","shadingColor","wrapperAttr","center","show","dragOutsideBoundary","copyRootClassesToWrapper","_ignoreCopyRootClassesToWrapperDeprecation","onShowing","onShown","onHiding","onHidden","dragAndResizeArea","resizeEnabled","innerOverlay","restorePosition","hideTopOverlayHandler","hideOnParentScroll","onPositioned","ignoreChildEvents","_fixWrapperPosition","_$wrapper","_eventBindingTarget","_$content","_deprecatedOptions","since","_initActions","_initCloseOnOutsideClickHandler","_initTabTerminatorHandler","_customWrapperClass","_initInnerOverlayClass","_toggleViewPortSubscription","_initHideTopOverlayHandler","_parentsScrollSubscriptionInfo","_targetParentsScrollHandler","_updateResizeCallbackSkipCondition","warnPositionAsFunction","_setAnimationTarget","path","pathParts","_hideTopOverlayHandler","_actions","_documentDownHandler","_areContentDimensionsRendered","entry","_entry$contentBoxSize","_this$_renderedDimens3","_this$_renderedDimens4","_this$_renderedDimens","_this$_renderedDimens2","contentBox","contentBoxSize","inlineSize","_renderedDimensions","blockSize","contentRect","_contentResizeHandler","_shouldSkipContentResize","_renderGeometry","shouldOnlyReposition","doesShowAnimationChangeDimensions","_doesShowAnimationChangeDimensions","_showAnimationProcessing","_animation$show","_observeContentResize","shouldObserve","contentElement","_renderWrapperAttributes","_initPositionController","_stopAnimation","isAttachedTarget","isInnerOverlay","outsideClick","_outsideClickHandler","content","_isTopOverlay","overlayStack","_overlayStack","tabbableElements","_findTabbableBounds","_zIndexInitValue","_this2","_viewPortChangeHandle","_viewPortChangeHandler","updateContainer","_renderVisibilityAnimate","_show","_hide","_getAnimationConfig","_animateShowing","_this$_getAnimationCo","_showAnimation$start","_showAnimation$comple","_this3","showAnimation","_normalizeAnimation","startShowAnimation","completeShowAnimation","_animate","_isAnimationPaused","_toggleSafariScrolling","_showingDeferred","_parentHidden","_isParentHidden","_currentVisible","_isHidingActionCanceled","_renderVisibility","_isShowingActionCanceled","_stopShowTimer","_asyncShowTimeout","_position","_animateHiding","_this$_getAnimationCo2","_hideAnimation$start","_hideAnimation$comple","_this4","hideAnimation","startHideAnimation","completeHideAnimation","_this4$_actions","_hideAnimationProcessing","_hidingDeferred","hidingArgs","_forceFocusLost","_toggleShading","_toggleSubscriptions","shouldResetActiveElement","completeCallback","startCallback","_toggleVisibility","_updateZIndexStackPosition","openingHandled","showingArgs","_moveFromContainer","_moveToContainer","pushToStack","_zIndex","_toggleTabTerminator","_this5","_proxiedTabTerminatorHandler","_tabKeyHandler","enabled","$elements","elementsCount","$firstTabbable","$lastTabbable","isTabOnLast","isShiftTabOnFirst","isEmptyTabList","isOutsideTarget","$focusElement","_toggleHideTopOverlayCallback","_toggleParentsScrollSubscription","needSubscribe","_this$_parentsScrollS","scrollEvent","prevTargets","closeOnScroll","$parents","closeHandled","_appendContentToElement","shouldDeferRendering","isParentHidden","_contentAlreadyRendered","isHidden","whenContentRendered","contentTemplateOption","noModel","_renderDrag","_renderResize","_renderScrollTerminator","$root","onVisualPositionChanged","_getPositionControllerConfig","$dragTarget","_getDragTarget","_resizable","_resizeEndHandler","_cacheDimensions","resizeHandled","$scrollTerminator","terminatorEventName","isNative","isWheel","isMouseMove","isScrollByWheel","cancelable","_detachWrapperToContainer","_attachWrapperToContainer","containerDefined","renderContainer","getSwatchContainer","useResizeObserver","isAnimated","shouldRepeatAnimation","forceStopAnimation","positionContent","_renderGeometryImpl","updatePosition","_renderPosition","_isAllWindowCovered","isAllWindowCoveredByWrapper","$body","isIosSafari","safari","isAllWindowCovered","isScrollingPrevented","shouldPreventScrolling","shouldEnableScrolling","scrollTo","_cachedBodyScrollTop","styleWrapperPosition","_renderWrapperDimensions","positionWrapper","wrapperWidth","wrapperHeight","_$wrapperCoveredElement","isWindow","getDocumentElement","_keyboardListenerId","_keyboardHandler","_deferShowTimer","_this$_resizable","restorePositionOnNextRender","_animateDeferred","updateTarget","_this$_resizable2","fixWrapperPosition","showing","animateDeferred","repaint","useLegacyTemplateEngine","watchChanges","rawData","fields","fieldsDispose","globalDispose","dataWithRawFields","resolvedData","missedFields","watchHandlers","BindableTemplate","_fields","_fieldsMap","_watchMethod","TextEditorButton","$placeMarker","_isRendered","_create","_attachEvents","_addPlaceMarker","_shouldRender","SWIPE_START_EVENT","SWIPE_EVENT","SWIPE_END_EVENT","HorizontalStrategy","defaultItemSizeFunc","getBounds","calcOffsetRatio","endEventData","_savedEventData","_itemSizeFunc","isFastSwipe","FAST_SWIPE_SPEED_LIMIT","_tickData","VerticalStrategy","STRATEGIES","horizontal","vertical","SwipeEmitter","TICK_INTERVAL","elastic","_getStrategy","_defaultItemSizeFunc","moveEventData","offsetRatio","isFast","startOffset","_calcTargetOffset","bounds","ceil","VueType","errors_1","TEMPLATE_PROP","Vue","asConfigurable","$vnode","scopedSlots","slotName","$scopedSlots","$slots","slot","childComponent","defaultSlot","getSlot","inject","eventBus","$on","$forceUpdate","destroyed","$off","deep","hasProp","$options","hasVModelValue","vnode","VMODEL_NAME","$","getVueVersion","currentVersion","POINTER_EVENTS_NAMESPACE","BaseStrategy","originalEvents","_eventName","_originalEvents","_handlerCount","_isNoBubble","_handler","_getDelegateTarget","mozilla","_setSelector","_selector","_getSelector","dxpointerdown","dxpointermove","dxpointerup","dxpointercancel","dxpointerover","dxpointerout","dxpointerenter","dxpointerleave","normalizeTouchEvent","pointerId","identifier","changedTouches","skipTouchWithSameIdentifier","pointerEvent","TouchStrategy","_pointerId","normalize","addEventsListener","Observer","eventMap","pointerEquals","onPointerAdding","getPointerIndex","removePointer","normalizeMouseEvent","activated","activateStrategy","MouseStrategy","resetObserver","MouseAndTouchStrategy","EVENT_LOCK_TIMEOUT","isMouse","_skipNextEvents","_mouseLocked","_unlockMouseTimer","normalizer","getStrategy","support","EventStrategy","leave","over","out","webkitRegExp","mozillaRegExp","browserFromUA","browserName","browserVersion","COMPOSITION_START_EVENT","COMPOSITION_END_EVENT","KEYDOWN_EVENT","NAMESPACE","ctrl","altKey","KeyboardProcessor","_keydown","_compositionStart","_compositionEnd","_processFunction","isNotFocusTarget","shouldSkipProcessing","_isComposingJustFinished","_isComposing","process","_toggleProcessingWithContext","toggleProcessing","Emitter","_cancelCallback","_acceptCallback","_accept","_acceptRequestEvent","_getEmitterTarget","counter","appContext","app","unmount","hasNegation","newValue","equals","oldValueIsNaN","newValueIsNaN","isElementNode","cachedGetters","cachedSetters","optionsByReference","_changingCallback","_changedCallback","_namePreparedCallbacks","rulesOptions","fieldName","merge","functionsAsIs","unwrapObservables","valueName","_prepareRelevantNames","_setPreparedValue","deprecatedOptions","_deprecatedCallback","_startChangeCallback","_endChangeCallback","_default","_deprecated","_deprecatedNames","_initDeprecatedNames","_optionManager","onRelevantNamesPrepared","_setRelevantNames","_cachedOptions","_rules","_initialOptions","_getByRules","_setByReference","normalizedName","_normalizeName","_setField","_clearField","fieldObject","previousFieldName","deprecate","_notifyDeprecated","onChanging","onChanged","initialValue","initial","areFunctions","_initial","isGetter","aliasName","_postponedOperations","postponedPromise","completePromise","operation","getEventName","actionName","isInnerOption","Component","onInitialized","onDisposing","defaultOptionsRules","applyRules","isInitial","_optionChangedCallbacks","_disposingCallbacks","eventsStrategy","_updateLockCount","postponedOperations","_createOptions","beginUpdate","_setDeprecatedOptions","_getOptionsByReference","_getDeprecatedOptions","_optionChanging","onDeprecated","_logDeprecatedOptionWarning","_notifyOptionChanged","onStartChange","onEndChange","endUpdate","addRules","onInitializing","_setOptionsByDevice","_createOptionChangedAction","fireWith","_disposingAction","_createDisposingAction","_initializing","callPostponedOperations","_initializeComponent","_lockUpdate","_unlockUpdate","_commitUpdate","getAliasesByName","_defaultActionArgs","_cancelOptionChange","actionSource","actionValue","_defaultActionConfig","actionFunc","hasEvent","wrapActionsBeforeExecute","beforeActionExecute","wrappedAction","onActionCreated","isDeprecated","XHR_ERROR_UNLOAD","normalizeBinaryCriterion","normalizeSortingInfo","dir","errorMessageFromXhr","unloading","textStatusMessages","parsererror","textStatus","statusText","aggregators","pair","processRequestResultLock","lockDeferred","obtain","release","keysEqual","isUnaryOperation","isGroupOperator","isGroupCriterion","second","trivialPromise","rejectedPromise","throttle","lastArgs","throttleChanges","throttled","LOADINDICATOR_CLASS","LOADINDICATOR_WRAPPER_CLASS","LOADINDICATOR_CONTENT_CLASS","LOADINDICATOR_ICON_CLASS","LOADINDICATOR_SEGMENT_CLASS","LOADINDICATOR_SEGMENT_INNER_CLASS","LOADINDICATOR_IMAGE_CLASS","LoadIndicator","indicatorSrc","_animatingSegmentCount","_animatingSegmentInner","obsoleteAndroid","viaImage","_renderIndicatorContent","_renderMarkup","_renderMarkupForImage","_renderMarkupForAnimation","animatingSegmentInner","_$indicator","$segment","_updateContentSizeForAnimation","minDimension","_removeMarkupForAnimation","_removeMarkupForImage","fullScreen","forceApplyBindings","_lastPositionBeforeFullScreen","_fullScreenEnabled","_fullScreenDisabled","_this$_props$forceApp","_this$_props","_shouldRenderContentInitialPosition","_getWrapperCoveredElement","_visualPosition","POPUP_CLASS","POPUP_WRAPPER_CLASS","POPUP_FULL_SCREEN_CLASS","POPUP_FULL_SCREEN_WIDTH_CLASS","POPUP_NORMAL_CLASS","POPUP_CONTENT_CLASS","DISABLED_STATE_CLASS","POPUP_DRAGGABLE_CLASS","POPUP_TITLE_CLASS","POPUP_TITLE_CLOSEBUTTON_CLASS","POPUP_BOTTOM_CLASS","POPUP_HAS_CLOSE_BUTTON_CLASS","POPUP_CONTENT_FLEX_HEIGHT_CLASS","POPUP_CONTENT_INHERIT_HEIGHT_CLASS","ALLOWED_TOOLBAR_ITEM_ALIASES","BUTTON_DEFAULT_TYPE","BUTTON_NORMAL_TYPE","BUTTON_TEXT_MODE","BUTTON_CONTAINED_MODE","IS_OLD_SAFARI","HEIGHT_STRATEGIES","static","flex","getButtonPlace","toolbar","Popup","showTitle","titleTemplate","onTitleRendered","toolbarItems","showCloseButton","bottomTemplate","useDefaultToolbarButtons","useFlatToolbarButtons","autoResizeEnabled","_iosAnimation","_androidAnimation","_device","_$popupContent","wrapInner","isFullscreen","_toggleFullScreenClass","$overlayContent","_renderTitle","_renderBottom","_getToolbarItems","titleText","_$title","$title","_renderTemplateByType","_executeTitleRenderAction","_hasCloseButton","additionalToolbarOptions","_getTemplateByOption","toolbarTemplate","toolbarOptions","useDefaultButtons","useFlatButtons","$toolbar","$titleElement","_getTitleRenderAction","titleElement","_titleRenderAction","_createTitleRenderAction","_getCloseButton","_getCloseButtonRenderer","_createToolbarItemAction","toolbarsItems","_toolbarItemClasses","currentPlatform","isShortcut","shortcut","_getToolbarItemByAlias","isLTROrder","_getLocalizationKey","itemType","itemConfig","itemClass","$toolbarItem","clickAction","_$bottom","$bottom","compactMode","_toggleClasses","aliases","topToolbar","_resetContentHeight","_setContentHeight","overlayContent","currentHeightStrategyClass","_chooseHeightStrategy","_getHeightCssStyles","_setHeightClasses","_heightStrategyChangeOffset","popupVerticalPaddings","isAutoWidth","_isAutoHeight","cssStyles","contentMaxHeight","contentMinHeight","popupHeightParts","_splitPopupHeight","toolbarsAndVerticalOffsetsHeight","header","footer","contentVerticalOffsets","popupVerticalOffsets","overlayHeight","contentHeight","maxHeightValue","minHeightValue","currentClass","excessClasses","bottomToolbar","_renderFullscreenWidthClass","refreshPosition","shouldRenderGeometry","combineClasses","activeFeedback","ACTIVE_EVENT_NAME","INACTIVE_EVENT_NAME","ACTIVE_TIMEOUT","INACTIVE_TIMEOUT","FeedbackEvent","_timeout","_fire","_schedule","_timer","_fired","fired","FeedbackEmitter","_active","_inactive","activeTimeout","inactiveTimeout","activeChildExists","childJustActivated","_initEvents","eventTarget","mouseEvent","deferFeedback","skipTimers","lockInactive","configComponent","propsData","_setOption","_clearItemKeys","getSelectableItems","preserve","isDeselect","_removeTemplateProperty","remoteFilter","_loadFilteredData","localFilter","filterLength","encodeURI","stringify","needLoadAllData","filteredItems","updateSelectedItemKeyHash","keyHashIndices","keyIndices","_isAnyItemSelected","_getFullSelectAllState","dataFilter","ignoreDisabledItems","selectedItemsLength","disabledItemsLength","_getVisibleSelectAllState","hasSelectedItems","hasUnselectedItems","getItemData","isSelectableItem","isItemKeySelected","selectionFilter","needResetSelectionFilter","_addSelectionFilter","removeSelectedItem","addSelectedItem","setSelectedItems","isItemDataSelected","_getKeyExpr","keyField","_normalizeKey","_getFilterByKey","_findSubFilter","filterString","subFilter","_isLastSubFilter","_addFilterOperator","filterOperator","_denormalizeFilter","currentFilter","currentOperation","needAddFilter","_removeSameFilter","filterIndex","isKeyOperatorsAfterRemoved","_isKeyFilter","_hasKeyFiltersOnlyStartingFromIndex","_normalizeFilter","_removeFilterByIndex","_isSimpleKeyFilter","inverted","_filterIndex","getSelectAllState","_initSelectedItemKeyHash","_preserveSelectionUpdate","keyIndicesToRemoveMap","keyIndex","isBatchDeselect","_batchRemoveSelectedItems","_loadSelectedItemsCore","selectionFilterCreator","deselectedItems","_replaceSelectionUpdate","internalKeys","_warnOnIncorrectKeys","_isMultiSelectEnabled","_requestInProgress","_this$_lastLoadDeferr","_lastLoadDeferred","_concatRequestsItems","oldRequestItems","updatedKeys","_collectLastRequestData","isDeselectAll","multiSelectEnabled","lastRequestData","_lastRequestData","_shouldMergeWithLastRequest","_updateKeysByLastRequestData","_this$_lastRequestDat","_this$_lastRequestDat2","currentKeys","_loadSelectedItems","disabledItemKeys","_getKeyHash","_indexOfSelectedItemKey","_getSelectedIndexByKey","ignoreIndicesMap","_getSelectedIndexByHash","_shiftSelectedKeyIndices","currentKeyIndex","currentKey","currentKeyHash","currentKeyIndices","_updateAddedItemKeys","_updateRemovedItemKeys","oldSelectedKeys","oldSelectedItems","_isItemSelectionInProgress","shouldCheckPending","_this$_lastRequestDat3","visibleOnly","selectedKeys","_selectionStrategy","_focusedItemIndex","filterIsChanged","_keys","_addSelectedItem","_removeSelectedItem","_setSelectedItems","changeItemSelection","isSelectedItemsChanged","isSelectable","isDataItem","itemKey","changeItemSelectionWhenShiftKeyPressed","_resetItemSelectionWhenShiftKeyPressed","clearSelectedItems","isKeysEqual","_shiftFocusedItemIndex","_resetFocusedItemIndex","itemIndexStep","focusedItem","focusedData","focusedKey","isFocusedItemSelected","selectAll","isOnePage","_onePageSelectAll","deselectAll","ChildDefaultTemplate","getPublicElement","INKRIPPLE_CLASS","INKRIPPLE_WAVE_CLASS","INKRIPPLE_SHOWING_CLASS","INKRIPPLE_HIDING_CLASS","DEFAULT_WAVE_SIZE_COEFFICIENT","MAX_WAVE_SIZE","ANIMATION_DURATION","HOLD_ANIMATION_DURATION","DEFAULT_WAVE_INDEX","initConfig","wavesNumber","durations","getDurations","getInkRipple","getWaves","inkRipple","$currentWave","getWaveStyleConfig","elementWidth","elementHeight","elementDiagonal","sqrt","waveSize","$wave","wave","hidingTimeout","hideSelectedWave","showingTimeout","showingWaveHandler","durationCss","showingScale","hidingScale","hidingOpacity","animationDuration","BaseComponent","DxComponent","children_processing_1","configuration_1","templates_manager_1","inheritAttrs","provide","$_processChildren","$attrs","beforeUpdate","updated","_b","initOptionChangedFunc","getInnerChanges","$_templatesManager","$_instance","isDirty","_c","_d","_e","$_pendingOptions","name_2","$_applyConfigurationChanges","beforeDestroy","componentsCountChanged","resetOption","thisComponent","$_getIntegrationOptions","$_WidgetClass","$_createEmitters","$_getWatchMethod","$_getExtraIntegrationOptions","name_3","valueGetter","valueChangeCallback","$listeners","listenerName","cleanWidgetNode","removedNodes","childNode","isExtension","restoreNodes","childExtension","componentInstance","configurationTemplate","namedTeplates","declaredTemplates","getChildren","componentChildren_1","configurationDefaultTemplate","clearConfiguration","newContent","getConfigurationOptions","mount","$_updatedHandler","unmounted","E1001","E1002","E1003","E1004","E1005","E1006","E1007","E1010","E1011","E1012","E1016","E1018","E1019","E1020","E1021","E1022","E1023","E1025","E1026","E1031","E1032","E1033","E1034","E1035","E1037","E1038","E1039","E1040","E1041","E1042","E1043","E1044","E1045","E1046","E1047","E1048","E1049","E1050","E1051","E1052","E1053","E1054","E1055","E1056","E1058","E1059","E1060","W1001","W1002","W1003","W1004","W1005","W1006","W1007","W1008","W1009","W1010","W1011","W1012","W1013","W1014","W1015","W1016","W1017","W1018","W1019","W1020","ArrayStore","initialArray","_array","AsyncCollectionWidget","_deferredItems","renderContentDeferred","itemDeferred","_postProcessRenderItems","TOOLBAR_BEFORE_CLASS","TOOLBAR_CENTER_CLASS","TOOLBAR_AFTER_CLASS","TOOLBAR_MINI_CLASS","TOOLBAR_ITEM_CLASS","TOOLBAR_LABEL_CLASS","TOOLBAR_BUTTON_CLASS","TOOLBAR_ITEMS_CONTAINER_CLASS","TOOLBAR_GROUP_CLASS","TOOLBAR_COMPACT_CLASS","TOOLBAR_LABEL_SELECTOR","TOOLBAR_MULTILINE_CLASS","TEXT_BUTTON_MODE","DEFAULT_BUTTON_TYPE","TOOLBAR_ITEM_DATA_KEY","ToolbarBase","rawModel","menuItem","renderAs","grouped","multiline","_$toolbarItemsContainer","_buttonClass","_arrangeItems","_applyCompactMode","_renderToolbar","_renderSections","_waitParentAnimationFinished","runCheck","_waitParentAnimationTimeout","readyToResolve","_renderItemsAsync","_checkWebFontForLabelsLoaded","sectionClass","$section","$labels","_$centerSection","margin","beforeRect","_$beforeSection","afterRect","_$afterSection","_alignCenterSection","$label","labelOffset","widthBeforeSection","widthAfterSection","elemsAtSectionWidth","freeSpace","sectionMaxWidth","_alignSection","labelPaddings","isRTL","leftRect","rightRect","centerRect","marginLeft","marginRight","labels","_getCurrentLabelsPaddings","currentWidth","_getCurrentLabelsWidth","difference","reverse","_alignSectionLabels","expanding","getRealLabelWidth","currentLabelWidth","labelMaxWidth","possibleLabelWidth","padding","itemContainer","$after","itemHasText","_renderGroupedItems","groupIndex","groupItems","forcibleWatcher","filteredCallback","CollectionItem","_rawData","_watchers","_renderWatchers","_startWatcher","_renderDisabled","_renderVisible","exprGetter","watcher","_dirty","_updateOwnerFocus","ownerComponent","triggerVisibilityChangeEvent","changeHandlers","triggerShownEvent","triggerHidingEvent","triggerResizeEvent","hasKey","keyOrKeys","findItems","childItems","collapsedItems","indexByKey","getItems","generateDataByKeyMap","_dataByKeyMap","_dataByKeyMapLength","dataByKeyMap","arrayLength","getCacheValue","getHasKeyCacheValue","setDataByKeyMapValue","cloneInstance","getPrototypeOf","instanceWithoutPrototype","createObjectWithChanges","applyBatch","immutable","disableCache","logError","resultItems","getErrorResult","isBatch","errorCode","newTarget","useLegacyStoreResult","scrollbarWidth","horzRe","vertRe","collisionRe","scaleRe","IS_SAFARI","normalizeAlign","raw","w","normalizeOffset","normalizeCollision","getAlignFactor","align","inverseAlign","calculateOversize","oversize","myLocation","collisionSide","initMyLocation","atLocation","atAlign","atSize","myAlign","mySize","collisionResolvers","fit","flip","inverseData","flipfit","none","calculateScrollbarWidth","$scrollDiv","overflow","defaultPositionResult","calculatePosition","what","$what","currentOffset","boundaryOffset","visualViewport","ofRect","getOffsetWithoutScale","windowHeight","hZoomLevel","vZoomLevel","boundaryWidth","boundaryHeight","$boundary","boundaryPosition","preciser","precise","setScaleProperty","transformProp","styleAttr","stylePropIsValid","transform","$startElement","_currentElement$getAt","_currentElement$style","_style$match","$currentElement","COMPONENT_NAMES_DATA_KEY","ANONYMOUS_COMPONENT_DATA_KEY","componentNames","nextAnonymousComponent","getName","generatedName","attachInstanceToElement","disposeFn","getInstanceByElement","OVERLAY_POSITION_ALIASES","OVERLAY_DEFAULT_BOUNDARY_OFFSET","OverlayPositionController","_$markupContainer","_initialPosition","_previousVisualPosition","_$dragResizeContainer","_outsideDragFactor","_updateDragResizeContainer","_updateOutsideDragFactor","shouldRestorePosition","positionProp","targetProp","_normalizePosition","_updateWrapperCoveredElement","containerProp","_updateVisualPositionValue","_raisePositionedEvents","_renderContentInitialPosition","useFixed","positionStyle","_renderBoundaryOffset","wrapperOverflow","resultPosition","previousPosition","isVisualPositionChanged","_getOutsideDragFactor","_getDragResizeContainer","isContainerDefined","_this$_position","defaultPositionConfig","_positionToObject","EVENT_NAME","EVENT_NAMESPACE","NATIVE_EVENT_NAME","PIXEL_MODE","DELTA_MUTLIPLIER","_wheelHandler","deltaMode","deltaZ","_normalizeDelta","TRANSLATOR_DATA_KEY","TRANSFORM_MATRIX_REGEX","TRANSLATE_REGEX","locate","getTranslate","isPercentValue","cacheTranslate","clearCache","getTranslateCss","xValueString","yValueString","transformValue","matrix","is3D","resetPosition","finishTransition","originalTransition","stylesConfig","parseTranslate","translateString","remoteQueryImpl","tasks","createTask","executorTask","_adapterFactory","_adapter","_taskQueue","_currentTask","_mergedSortArgs","rejectWithNotify","mergeSortTask","adapter","optimize","head","unmergedTasks","clientChain","query","queryImpl","remote","impl","getSessionStorage","maxTouchPoints","transitionEndEventNames","webkitTransition","MozTransition","OTransition","supportProp","isNativeScrollingSupported","isObsoleteAndroid","isNativeScrollDevice","detectTouchEvents","hasWindowProperty","detectPointerEvent","touchEvents","pointerEvents","touchPointersPresent","transitionEndEventName","nativeScrolling","EventsStrategy","_events","_owner","eventArgs","addFn","originalAdd","TOTAL_COUNT","LOAD","BY_KEY","INSERT","UPDATE","REMOVE","isPromise","ensureRequiredFuncOption","throwInvalidUserFuncResult","createUserFuncFailureHandler","promiseArguments","getResponseHeader","invokeUserLoad","userResult","userFunc","_loadFunc","invokeUserTotalCountFunc","_totalCountFunc","invokeUserByKeyFunc","_byKeyFunc","runRawLoad","userFuncOptions","continuation","__rawData","loadPromise","__rawDataPromise","_cacheRawData","runRawLoadWithQuery","countOnly","itemsQuery","totalCountQuery","rawDataQuery","waitList","runRawLoadWithKey","CustomStore","useDefaultSearch","_loadMode","cacheRawData","_insertFunc","_removeFunc","serverResponse","DxExtensionComponent","_objectWithoutPropertiesLoose","excluded","sourceKeys","convertRulesToOptions","currentDevice","ruleOptions","deviceFilter","deviceMatch","normalizeOptions","getFieldName","getParentName","getNestedOptionValue","optionsObject","createDefaultOptionRules","DxConfiguration","isStringOrNumber","isNumber","combineFrom","key$1","isLinkEventObject","EMPTY_OBJ","Fragment","normalizeEventName","insertOrAppend","newNode","documentCreateElement","tag","createElementNS","newDom","lastDom","callAll","arrayFn","findChildVNode","startEdge","findDOMfromVNode","removeVNodeDOM","moveVNodeDOM","createDerivedState","getDerivedStateFromProps","renderCheck","componentComparator","createVNode","renderComplete","setTextContent","isLastValueSameLinkEvent","lastValue","nextValue","mergeUnsetProperties","safeCall1","arg1","keyPrefix","V","childFlag","normalizeChildren","mergeDefaultHooks","defaultHooks","mergeDefaultProps","resolveComponentFlags","createComponentVNode","createTextVNode","createFragment","fragment","createVoidVNode","normalizeProps","cloneFragment","vNodeToClone","oldChildren","directClone","propsToClone","createPortal","normalizedRoot","normalizeRoot","_normalizeVNodes","newKey","oldKey","isPrefixedKey","getFlagsForElementVnode","newChildren","newChildFlags","needsCloning","isNullKey","isPrefixed","xlinkNS","xmlNS","namespaces","getDelegatedEventObject","onDblClick","onKeyPress","onMouseDown","onMouseMove","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","attachedEventCounts","attachedEvents","syntheticEvents","updateOrAddSyntheticEvent","eventsObject","$EV","attachEventToDocument","unmountSyntheticEvent","removeEventListener","handleSyntheticEvent","lastEvent","nextEvent","getTargetNode","composedPath","dispatchEvents","isClick","currentEvent","cancelBubble","immediatePropagationStopped","stopImmediatePropagation","defaultPrevented","isPropagationStopped","extendEventProperties","rootClickEvent","rootEvent","attachedEvent","addEventListener","triggerEventListener","nativeListenerName","createWrappedFunction","applyValue","fnMethod","newVNode","writable","attachEvent","previousKey","previousArgs","wrapped","isCheckedType","onTextInputChange","applyValueInput","wrappedOnChange","emptywrapper","inputEvents","nextPropsOrEmpty","checked","multiple","hasValue","updateChildOptions","updateChildOption","selected","onSelectChange","applyValueSelect","selectEvents","mounting","multiplePropInBoolean","onTextareaInputChange","applyValueTextArea","wrappedOnChange$1","textAreaEvents","domValue","processElement","isControlled","addFormElementEventHandlers","isControlledFormElement","createRef","unmountRef","mountRef","unmountAllChildren","componentWillUnmount","$UN","clearDOM","removeAllChildren","wrapLinkEvent","ev","patchEvent","patchStyle","lastAttrValue","nextAttrValue","domStyle","setProperty","removeProperty","patchDangerInnerHTML","lastVNode","lastHtml","nextHtml","patchProp","hasControlledValue","autofocus","setAttributeNS","mountProps","isFormElement","renderNewInput","nextInput","childContext","getChildContext","createClassComponentInstance","usesNewAPI","$N","getSnapshotBeforeUpdate","$SVG","$L","$BS","componentWillMount","$BR","$PS","renderFunctionalComponent","mountElement","mountClassComponent","mountFunctionalComponent","mountFunctionalComponentCallbacks","mountText","mountFragment","mountPortal","placeHolderVNode","mountArrayChildren","childrenIsSVG","mountClassComponentCallbacks","createClassMountCallback","createOnMountCallback","replaceWithNewNode","nextVNode","patch","nextFlags","patchElement","patchClassComponent","patchFunctionalComponent","patchText","patchFragment","patchPortal","patchSingleTextChild","lastChildren","nextChildren","patchContentEditableChildren","lastChildFlags","nextChildFlags","nextIsSingle","lastLen","patchChildren","lastContainer","nextContainer","lastProps","lastPropsOrEmpty","nextClassName","nextRef","lastRef","replaceOneVNodeWithMultipleVNodes","lastLength","nextLength","patchKeyedChildren","patchNonKeyedChildren","createDidUpdate","lastState","snapshot","updateClassComponent","hasSCU","componentWillReceiveProps","nextHooksDefined","lastInput","nextText","lastChildrenLength","nextChildrenLength","nextChild","lastChild","commonLength","aLength","bLength","outerEdge","nextPos","aEnd","bEnd","j","aNode","bNode","outer","patchKeyedChildrenComplex","aStart","bStart","aLeft","bLeft","sources","Int32Array","canRemoveWholeContent","moved","patched","seq","lis_algorithm","maxLen","arrI","u","hasDocumentAvailable","__render","rootInput","QUEUE","nextTick","microTaskPending","queueStateChanges","newState","stateKey","applyState","$F","rerender","QU","$QU","callSetStateCallbacks","queue","pendingState","forceUpdate","_nextContext","callbacks_1","includeAttrs","getAttrs","attrValue","defaultSlots","getComponentInstance","beforeUnmount","getComponentProps","getVModelValue","$_hasAsyncTemplate","childExtenton","parentPath","beforeMount","removeEvent","eventPropName","getNodeTypeOfComponent","saveComponentInstance","usedConfigurationProps","hasChildren","subTree","$_componentInstance","findConfigurationComponents","hasInlineTemplate","createApp","setAppContext","modelValue","emits","setCustomPluginsData","parentAppContext","components","setPrototypeOf","provides","directives","mixins","childType","isConfiguration","isComment","SWATCH_CONTAINER_CLASS_PREFIX","swatchContainer","viewport","swatchClassRegex","swatchClass","viewportSwatchContainer","nodesByEvent","subscribeNodesDisposing","unsubscribeNodesDisposing","CLICK_EVENT_NAME","isInput","misc","ClickEmitter","_makeElementClickable","_blurPrevented","_startTarget","_eventOutOfElement","_clickAnimationFrame","_fireClickEvent","targetChanged","gestureDelta","boundsExceeded","useNativeClick","isNativeClickEvent","prevented","lastFiredEvent","onNodeRemove","clickHandler","eventAlreadyFired","DXCLICK_FIRED","leftButton","useNative","desktopDevice","blurPrevented","multiLevelGroup","g","arrangeSortingInfo","sortInfo","filteredGroup","isCountQuery","keepInitialKeyOrder","ResizeObserverMock","disconnect","ResizeObserverSingleton","ResizeObserver","_callbacksMap","Map","_observer","_this$_callbacksMap$g","resizeObserverSingleton","getKeyWrapper","getKey","getSameNewByOld","oldItem","newIndexByKey","findChanges","oldItems","isItemEquals","oldIndexByKey","addedCount","removeCount","itemCount","newItem","oldNextIndex","nextOldItem","isRemoved","oldIndex","Widget","hoveredElement","_initContentReadyAction","innerWidget","getOptionsFromContainer","optionsContainer","syncOptions","_contentReadyAction","_renderHint","_isFocusable","_renderFocusTarget","_renderFocusState","_attachFeedbackEvents","_attachHoverEvents","_toggleIndependentState","_detachKeyboardEvents","_toggleActiveState","_resetActiveState","_attachFocusEvents","_renderAccessKey","_detachFocusEvents","$focusTarget","_getKeyboardListeners","hasChildListeners","hasKeyboardEventHandler","shouldAttach","onlyChildProcessing","keyboardListeners","_hoverStartHandler","_hoverEndHandler","_hover","$previous","_findHoverTarget","newHoveredElement","_setWidgetOption","widgetOptionMap","_updatedHover","_isReady","_getAriaTarget","HOVERSTART_NAMESPACE","HOVERSTART","POINTERENTER_NAMESPACED_EVENT_NAME","HOVEREND_NAMESPACE","HOVEREND","POINTERLEAVE_NAMESPACED_EVENT_NAME","Hover","_handlerArrayKeyPath","_eventNamespace","_originalEventName","guid","HoverStart","HoverEnd"],"mappings":"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","file":"js/chunk-0b9b6bd9.857c9c02.js","sourcesContent":["/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setEmitOptionChangedFunc = exports.bindOptionWatchers = void 0;\nvar helpers_1 = require(\"./helpers\");\nvar Configuration = /** @class */ (function () {\n function Configuration(updateFunc, name, initialValues, expectedChildren, isCollectionItem, collectionItemIndex, ownerConfig) {\n this._updateFunc = updateFunc;\n this._name = name;\n this._initialValues = initialValues ? initialValues : {};\n this._nestedConfigurations = [];\n this._isCollectionItem = !!isCollectionItem;\n this._collectionItemIndex = collectionItemIndex;\n this._expectedChildren = expectedChildren || {};\n this._ownerConfig = ownerConfig;\n this._componentChanges = [];\n this.updateValue = this.updateValue.bind(this);\n }\n Object.defineProperty(Configuration.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"fullName\", {\n get: function () {\n return this._name && this._isCollectionItem\n ? this._name + \"[\" + this._collectionItemIndex + \"]\"\n : this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"componentsCountChanged\", {\n get: function () {\n return this._componentChanges;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.cleanComponentsCountChanged = function () {\n this._componentChanges = [];\n };\n Object.defineProperty(Configuration.prototype, \"fullPath\", {\n get: function () {\n return this._ownerConfig && this._ownerConfig.fullPath\n ? this._ownerConfig.fullPath + \".\" + this.fullName\n : this.fullName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"ownerConfig\", {\n get: function () {\n return this._ownerConfig;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"options\", {\n get: function () {\n return this._options;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"initialValues\", {\n get: function () {\n return this._initialValues;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"expectedChildren\", {\n get: function () {\n return this._expectedChildren;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"nested\", {\n get: function () {\n return this._nestedConfigurations;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"prevNestedOptions\", {\n get: function () {\n return this._prevNestedConfigOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"collectionItemIndex\", {\n get: function () {\n return this._collectionItemIndex;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"isCollectionItem\", {\n get: function () {\n return this._isCollectionItem;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"updateFunc\", {\n get: function () {\n return this._updateFunc;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.init = function (options) {\n this._options = options ? options : [];\n };\n Object.defineProperty(Configuration.prototype, \"emitOptionChanged\", {\n set: function (handler) {\n this._emitOptionChanged = handler;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.setPrevNestedOptions = function (value) {\n this._prevNestedConfigOptions = value;\n };\n Configuration.prototype.onOptionChanged = function (args) {\n if (helpers_1.isEqual(args.value, args.previousValue)) {\n return;\n }\n this._onOptionChanged(args.fullName.split(\".\"), args);\n };\n Configuration.prototype.cleanNested = function () {\n this._nestedConfigurations = [];\n };\n Configuration.prototype.createNested = function (name, initialValues, isCollectionItem, expectedChildren) {\n var expected = this._expectedChildren[name];\n var actualName = name;\n var actualIsCollectionItem = isCollectionItem;\n if (expected) {\n actualIsCollectionItem = expected.isCollectionItem;\n if (expected.optionName) {\n actualName = expected.optionName;\n }\n }\n var collectionItemIndex = -1;\n if (actualIsCollectionItem && actualName) {\n collectionItemIndex = this._nestedConfigurations.filter(function (c) { return c._name && c._name === actualName; }).length;\n }\n var configuration = new Configuration(this._updateFunc, actualName, initialValues, expectedChildren, actualIsCollectionItem, collectionItemIndex, this);\n this._nestedConfigurations.push(configuration);\n return configuration;\n };\n Configuration.prototype.updateValue = function (nestedName, value) {\n var fullName = [this.fullPath, nestedName].filter(function (n) { return n; }).join(\".\");\n this._updateFunc(fullName, value);\n };\n Configuration.prototype.getNestedOptionValues = function () {\n var values = {};\n this._nestedConfigurations.forEach(function (o) {\n if (!o._name) {\n return;\n }\n var nestedValue = __assign(__assign({}, o.initialValues), o.getNestedOptionValues());\n if (!nestedValue) {\n return;\n }\n if (!o._isCollectionItem) {\n values[o._name] = nestedValue;\n }\n else {\n var arr = values[o._name];\n if (!arr || !Array.isArray(arr)) {\n arr = [];\n values[o._name] = arr;\n }\n arr.push(nestedValue);\n }\n });\n return values;\n };\n Configuration.prototype.getOptionsToWatch = function () {\n var blackList = {};\n this._nestedConfigurations.forEach(function (c) { return c._name && (blackList[c._name] = true); });\n return this._options.filter(function (o) { return !blackList[o]; });\n };\n Configuration.prototype._onOptionChanged = function (optionRelPath, args) {\n if (optionRelPath.length === 0) {\n return;\n }\n var optionInfo = helpers_1.getOptionInfo(optionRelPath[0]);\n if (optionInfo.isCollection || optionRelPath.length > 1) {\n var nestedConfig = this._getNestedConfig(optionInfo.fullName);\n if (nestedConfig) {\n nestedConfig._onOptionChanged(optionRelPath.slice(1), args);\n return;\n }\n this._tryEmitOptionChanged(optionInfo.name, args.component.option(this.fullPath ? this.fullPath + \".\" + optionInfo.name : optionInfo.name));\n }\n else {\n this._tryEmitOptionChanged(optionInfo.name, args.value);\n }\n };\n Configuration.prototype._getNestedConfig = function (fullName) {\n for (var _i = 0, _a = this._nestedConfigurations; _i < _a.length; _i++) {\n var nestedConfig = _a[_i];\n if (nestedConfig.fullName === fullName) {\n return nestedConfig;\n }\n }\n return undefined;\n };\n Configuration.prototype._tryEmitOptionChanged = function (name, value) {\n if (this._emitOptionChanged) {\n this._emitOptionChanged(name, value);\n }\n };\n return Configuration;\n}());\nfunction bindOptionWatchers(config, vueInstance, innerChanges) {\n var targets = config && config.getOptionsToWatch();\n if (targets) {\n targets.forEach(function (optionName) {\n vueInstance.$watch(optionName, function (value) {\n if (!innerChanges.hasOwnProperty(optionName) ||\n innerChanges[optionName] !== value) {\n config.updateValue(optionName, value);\n }\n delete innerChanges[optionName];\n });\n });\n }\n}\nexports.bindOptionWatchers = bindOptionWatchers;\nfunction setEmitOptionChangedFunc(config, vueInstance, innerChanges) {\n config.emitOptionChanged = function (name, value) {\n if (!helpers_1.isEqual(value, vueInstance.$props[name])) {\n innerChanges[name] = value;\n vueInstance.$emit(\"update:\" + name, value);\n }\n };\n}\nexports.setEmitOptionChangedFunc = setEmitOptionChangedFunc;\nexports.default = Configuration;\n","/**\r\n * DevExtreme (esm/data/abstract_store.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport Class from \"../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n EventsStrategy\r\n} from \"../core/events_strategy\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n processRequestResultLock\r\n} from \"./utils\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport storeHelper from \"./store_helper\";\r\nvar queryByOptions = storeHelper.queryByOptions;\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nvar storeImpl = {};\r\nvar Store = Class.inherit({\r\n ctor: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy = new EventsStrategy(this);\r\n each([\"onLoaded\", \"onLoading\", \"onInserted\", \"onInserting\", \"onUpdated\", \"onUpdating\", \"onPush\", \"onRemoved\", \"onRemoving\", \"onModified\", \"onModifying\"], (function(_, optionName) {\r\n if (optionName in options) {\r\n that.on(optionName.slice(2).toLowerCase(), options[optionName])\r\n }\r\n }));\r\n this._key = options.key;\r\n this._errorHandler = options.errorHandler;\r\n this._useDefaultSearch = true\r\n },\r\n _customLoadOptions: function() {\r\n return null\r\n },\r\n key: function() {\r\n return this._key\r\n },\r\n keyOf: function(obj) {\r\n if (!this._keyGetter) {\r\n this._keyGetter = compileGetter(this.key())\r\n }\r\n return this._keyGetter(obj)\r\n },\r\n _requireKey: function() {\r\n if (!this.key()) {\r\n throw errors.Error(\"E4005\")\r\n }\r\n },\r\n load: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy.fireEvent(\"loading\", [options]);\r\n return this._withLock(this._loadImpl(options)).done((function(result) {\r\n that._eventsStrategy.fireEvent(\"loaded\", [result, options])\r\n }))\r\n },\r\n _loadImpl: function(options) {\r\n return queryByOptions(this.createQuery(options), options).enumerate()\r\n },\r\n _withLock: function(task) {\r\n var result = new Deferred;\r\n task.done((function() {\r\n var that = this;\r\n var args = arguments;\r\n processRequestResultLock.promise().done((function() {\r\n result.resolveWith(that, args)\r\n }))\r\n })).fail((function() {\r\n result.rejectWith(this, arguments)\r\n }));\r\n return result\r\n },\r\n createQuery: abstract,\r\n totalCount: function(options) {\r\n return this._totalCountImpl(options)\r\n },\r\n _totalCountImpl: function(options) {\r\n return queryByOptions(this.createQuery(options), options, true).count()\r\n },\r\n byKey: function(key, extraOptions) {\r\n return this._addFailHandlers(this._withLock(this._byKeyImpl(key, extraOptions)))\r\n },\r\n _byKeyImpl: abstract,\r\n insert: function(values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"inserting\", [values]);\r\n return that._addFailHandlers(that._insertImpl(values).done((function(callbackValues, callbackKey) {\r\n that._eventsStrategy.fireEvent(\"inserted\", [callbackValues, callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _insertImpl: abstract,\r\n update: function(key, values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"updating\", [key, values]);\r\n return that._addFailHandlers(that._updateImpl(key, values).done((function() {\r\n that._eventsStrategy.fireEvent(\"updated\", [key, values]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _updateImpl: abstract,\r\n push: function(changes) {\r\n var beforePushArgs = {\r\n changes: changes,\r\n waitFor: []\r\n };\r\n this._eventsStrategy.fireEvent(\"beforePush\", [beforePushArgs]);\r\n when(...beforePushArgs.waitFor).done(() => {\r\n this._pushImpl(changes);\r\n this._eventsStrategy.fireEvent(\"push\", [changes])\r\n })\r\n },\r\n _pushImpl: noop,\r\n remove: function(key) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"removing\", [key]);\r\n return that._addFailHandlers(that._removeImpl(key).done((function(callbackKey) {\r\n that._eventsStrategy.fireEvent(\"removed\", [callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _removeImpl: abstract,\r\n _addFailHandlers: function(deferred) {\r\n return deferred.fail(this._errorHandler).fail(handleError)\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nStore.create = function(alias, options) {\r\n if (!(alias in storeImpl)) {\r\n throw errors.Error(\"E4020\", alias)\r\n }\r\n return new storeImpl[alias](options)\r\n};\r\nStore.registerClass = function(type, alias) {\r\n if (alias) {\r\n storeImpl[alias] = type\r\n }\r\n return type\r\n};\r\nStore.inherit = function(inheritor) {\r\n return function(members, alias) {\r\n var type = inheritor.apply(this, [members]);\r\n Store.registerClass(type, alias);\r\n return type\r\n }\r\n}(Store.inherit);\r\nexport default Store;\r\n","/**\r\n * DevExtreme (esm/events/gesture/emitter.gesture.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n styleProp\r\n} from \"../../core/utils/style\";\r\nimport callOnce from \"../../core/utils/call_once\";\r\nimport {\r\n resetActiveElement,\r\n clearSelection\r\n} from \"../../core/utils/dom\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport {\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n needSkipEvent,\r\n createEvent,\r\n eventData,\r\n isDxMouseWheelEvent,\r\n eventDelta,\r\n isTouchEvent\r\n} from \"../utils/index\";\r\nimport Emitter from \"../core/emitter\";\r\nvar abs = Math.abs;\r\nvar SLEEP = 0;\r\nvar INITED = 1;\r\nvar STARTED = 2;\r\nvar TOUCH_BOUNDARY = 10;\r\nvar IMMEDIATE_TOUCH_BOUNDARY = 0;\r\nvar IMMEDIATE_TIMEOUT = 180;\r\nvar supportPointerEvents = function() {\r\n return styleProp(\"pointer-events\")\r\n};\r\nvar setGestureCover = callOnce((function() {\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (!supportPointerEvents() || !isDesktop) {\r\n return noop\r\n }\r\n var $cover = $(\"
\").addClass(\"dx-gesture-cover\").css(\"pointerEvents\", \"none\");\r\n eventsEngine.subscribeGlobal($cover, \"dxmousewheel\", (function(e) {\r\n e.preventDefault()\r\n }));\r\n ready((function() {\r\n $cover.appendTo(\"body\")\r\n }));\r\n return function(toggle, cursor) {\r\n $cover.css(\"pointerEvents\", toggle ? \"all\" : \"none\");\r\n toggle && $cover.css(\"cursor\", cursor)\r\n }\r\n}));\r\nvar gestureCover = function(toggle, cursor) {\r\n var gestureCoverStrategy = setGestureCover();\r\n gestureCoverStrategy(toggle, cursor)\r\n};\r\nvar GestureEmitter = Emitter.inherit({\r\n gesture: true,\r\n configure: function(data) {\r\n this.getElement().css(\"msTouchAction\", data.immediate ? \"pinch-zoom\" : \"\");\r\n this.callBase(data)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return this._stage !== STARTED\r\n },\r\n getDirection: function() {\r\n return this.direction\r\n },\r\n _cancel: function() {\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false);\r\n this._stage = SLEEP\r\n },\r\n start: function(e) {\r\n if (e._needSkipEvent || needSkipEvent(e)) {\r\n this._cancel(e);\r\n return\r\n }\r\n this._startEvent = createEvent(e);\r\n this._startEventData = eventData(e);\r\n this._stage = INITED;\r\n this._init(e);\r\n this._setupImmediateTimer()\r\n },\r\n _setupImmediateTimer: function() {\r\n clearTimeout(this._immediateTimer);\r\n this._immediateAccepted = false;\r\n if (!this.immediate) {\r\n return\r\n }\r\n this._immediateTimer = setTimeout(function() {\r\n this._immediateAccepted = true\r\n }.bind(this), IMMEDIATE_TIMEOUT)\r\n },\r\n move: function(e) {\r\n if (this._stage === INITED && this._directionConfirmed(e)) {\r\n this._stage = STARTED;\r\n this._resetActiveElement();\r\n this._toggleGestureCover(true);\r\n this._clearSelection(e);\r\n this._adjustStartEvent(e);\r\n this._start(this._startEvent);\r\n if (this._stage === SLEEP) {\r\n return\r\n }\r\n this._requestAccept(e);\r\n this._move(e);\r\n this._forgetAccept()\r\n } else if (this._stage === STARTED) {\r\n this._clearSelection(e);\r\n this._move(e)\r\n }\r\n },\r\n _directionConfirmed: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n var deltaX = abs(delta.x);\r\n var deltaY = abs(delta.y);\r\n var horizontalMove = this._validateMove(touchBoundary, deltaX, deltaY);\r\n var verticalMove = this._validateMove(touchBoundary, deltaY, deltaX);\r\n var direction = this.getDirection(e);\r\n var bothAccepted = \"both\" === direction && (horizontalMove || verticalMove);\r\n var horizontalAccepted = \"horizontal\" === direction && horizontalMove;\r\n var verticalAccepted = \"vertical\" === direction && verticalMove;\r\n return bothAccepted || horizontalAccepted || verticalAccepted || this._immediateAccepted\r\n },\r\n _validateMove: function(touchBoundary, mainAxis, crossAxis) {\r\n return mainAxis && mainAxis >= touchBoundary && (this.immediate ? mainAxis >= crossAxis : true)\r\n },\r\n _getTouchBoundary: function(e) {\r\n return this.immediate || isDxMouseWheelEvent(e) ? IMMEDIATE_TOUCH_BOUNDARY : TOUCH_BOUNDARY\r\n },\r\n _adjustStartEvent: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n this._startEvent.pageX += sign(delta.x) * touchBoundary;\r\n this._startEvent.pageY += sign(delta.y) * touchBoundary\r\n },\r\n _resetActiveElement: function() {\r\n if (\"ios\" === devices.real().platform && this.getElement().find(\":focus\").length) {\r\n resetActiveElement()\r\n }\r\n },\r\n _toggleGestureCover: function(toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n },\r\n _toggleGestureCoverImpl: function(toggle) {\r\n var isStarted = this._stage === STARTED;\r\n if (isStarted) {\r\n gestureCover(toggle, this.getElement().css(\"cursor\"))\r\n }\r\n },\r\n _clearSelection: function(e) {\r\n if (isDxMouseWheelEvent(e) || isTouchEvent(e)) {\r\n return\r\n }\r\n clearSelection()\r\n },\r\n end: function(e) {\r\n this._toggleGestureCover(false);\r\n if (this._stage === STARTED) {\r\n this._end(e)\r\n } else if (this._stage === INITED) {\r\n this._stop(e)\r\n }\r\n this._stage = SLEEP\r\n },\r\n dispose: function() {\r\n clearTimeout(this._immediateTimer);\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false)\r\n },\r\n _init: noop,\r\n _start: noop,\r\n _move: noop,\r\n _stop: noop,\r\n _end: noop\r\n});\r\nGestureEmitter.initialTouchBoundary = TOUCH_BOUNDARY;\r\nGestureEmitter.touchBoundary = function(newBoundary) {\r\n if (isDefined(newBoundary)) {\r\n TOUCH_BOUNDARY = newBoundary;\r\n return\r\n }\r\n return TOUCH_BOUNDARY\r\n};\r\nexport default GestureEmitter;\r\n","/**\r\n * DevExtreme (esm/events/utils/add_namespace.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport errors from \"../../core/errors\";\r\nvar addNamespace = (eventNames, namespace) => {\r\n if (!namespace) {\r\n throw errors.Error(\"E0017\")\r\n }\r\n if (Array.isArray(eventNames)) {\r\n return eventNames.map(eventName => addNamespace(eventName, namespace)).join(\" \")\r\n }\r\n if (-1 !== eventNames.indexOf(\" \")) {\r\n return addNamespace(eventNames.split(/\\s+/g), namespace)\r\n }\r\n return \"\".concat(eventNames, \".\").concat(namespace)\r\n};\r\nexport default addNamespace;\r\n","/**\r\n * DevExtreme (esm/events/utils/index.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport mappedAddNamespace from \"./add_namespace\";\r\nimport eventsEngine from \"../core/events_engine\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../../ui/widget/selectors\";\r\nvar KEY_MAP = {\r\n backspace: \"backspace\",\r\n tab: \"tab\",\r\n enter: \"enter\",\r\n escape: \"escape\",\r\n pageup: \"pageUp\",\r\n pagedown: \"pageDown\",\r\n end: \"end\",\r\n home: \"home\",\r\n arrowleft: \"leftArrow\",\r\n arrowup: \"upArrow\",\r\n arrowright: \"rightArrow\",\r\n arrowdown: \"downArrow\",\r\n delete: \"del\",\r\n \" \": \"space\",\r\n f: \"F\",\r\n a: \"A\",\r\n \"*\": \"asterisk\",\r\n \"-\": \"minus\",\r\n alt: \"alt\",\r\n control: \"control\",\r\n shift: \"shift\"\r\n};\r\nvar LEGACY_KEY_CODES = {\r\n 8: \"backspace\",\r\n 9: \"tab\",\r\n 13: \"enter\",\r\n 27: \"escape\",\r\n 33: \"pageUp\",\r\n 34: \"pageDown\",\r\n 35: \"end\",\r\n 36: \"home\",\r\n 37: \"leftArrow\",\r\n 38: \"upArrow\",\r\n 39: \"rightArrow\",\r\n 40: \"downArrow\",\r\n 46: \"del\",\r\n 32: \"space\",\r\n 70: \"F\",\r\n 65: \"A\",\r\n 106: \"asterisk\",\r\n 109: \"minus\",\r\n 189: \"minus\",\r\n 173: \"minus\",\r\n 16: \"shift\",\r\n 17: \"control\",\r\n 18: \"alt\"\r\n};\r\nvar EVENT_SOURCES_REGEX = {\r\n dx: /^dx/i,\r\n mouse: /(mouse|wheel)/i,\r\n touch: /^touch/i,\r\n keyboard: /^key/i,\r\n pointer: /^(ms)?pointer/i\r\n};\r\nvar fixMethod = e => e;\r\nvar copyEvent = originalEvent => fixMethod(eventsEngine.Event(originalEvent, originalEvent), originalEvent);\r\nvar isDxEvent = e => \"dx\" === eventSource(e);\r\nvar isNativeMouseEvent = e => \"mouse\" === eventSource(e);\r\nvar isNativeTouchEvent = e => \"touch\" === eventSource(e);\r\nexport var eventSource = _ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n var result = \"other\";\r\n each(EVENT_SOURCES_REGEX, (function(key) {\r\n if (this.test(type)) {\r\n result = key;\r\n return false\r\n }\r\n }));\r\n return result\r\n};\r\nexport var isPointerEvent = e => \"pointer\" === eventSource(e);\r\nexport var isMouseEvent = e => isNativeMouseEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"mouse\" === e.pointerType;\r\nexport var isDxMouseWheelEvent = e => e && \"dxmousewheel\" === e.type;\r\nexport var isTouchEvent = e => isNativeTouchEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"touch\" === e.pointerType;\r\nexport var isKeyboardEvent = e => \"keyboard\" === eventSource(e);\r\nexport var isFakeClickEvent = _ref2 => {\r\n var {\r\n screenX: screenX,\r\n offsetX: offsetX,\r\n pageX: pageX\r\n } = _ref2;\r\n return 0 === screenX && !offsetX && 0 === pageX\r\n};\r\nexport var eventData = _ref3 => {\r\n var {\r\n pageX: pageX,\r\n pageY: pageY,\r\n timeStamp: timeStamp\r\n } = _ref3;\r\n return {\r\n x: pageX,\r\n y: pageY,\r\n time: timeStamp\r\n }\r\n};\r\nexport var eventDelta = (from, to) => ({\r\n x: to.x - from.x,\r\n y: to.y - from.y,\r\n time: to.time - from.time || 1\r\n});\r\nexport var hasTouches = e => {\r\n var {\r\n originalEvent: originalEvent,\r\n pointers: pointers\r\n } = e;\r\n if (isNativeTouchEvent(e)) {\r\n return (originalEvent.touches || []).length\r\n }\r\n if (isDxEvent(e)) {\r\n return (pointers || []).length\r\n }\r\n return 0\r\n};\r\nvar skipEvents = false;\r\nexport var forceSkipEvents = () => skipEvents = true;\r\nexport var stopEventsSkipping = () => skipEvents = false;\r\nexport var needSkipEvent = e => {\r\n if (skipEvents) {\r\n return true\r\n }\r\n var {\r\n target: target\r\n } = e;\r\n var $target = $(target);\r\n var isDropDown = $target.is(\".dx-dropdownlist-popup-wrapper *, .dx-dropdownlist-popup-wrapper\");\r\n var isContentEditable = (null === target || void 0 === target ? void 0 : target.isContentEditable) || (null === target || void 0 === target ? void 0 : target.hasAttribute(\"contenteditable\"));\r\n var touchInEditable = $target.is(\"input, textarea, select\") || isContentEditable;\r\n if ($target.is(\".dx-skip-gesture-event *, .dx-skip-gesture-event\") && !isDropDown) {\r\n return true\r\n }\r\n if (isDxMouseWheelEvent(e)) {\r\n var isTextArea = $target.is(\"textarea\") && $target.hasClass(\"dx-texteditor-input\");\r\n if (isTextArea || isContentEditable) {\r\n return false\r\n }\r\n var isInputFocused = $target.is(\"input[type='number'], textarea, select\") && $target.is(\":focus\");\r\n return isInputFocused\r\n }\r\n if (isMouseEvent(e)) {\r\n return touchInEditable || e.which > 1\r\n }\r\n if (isTouchEvent(e)) {\r\n return touchInEditable && focused($target)\r\n }\r\n};\r\nexport var setEventFixMethod = func => fixMethod = func;\r\nexport var createEvent = (originalEvent, args) => {\r\n var event = copyEvent(originalEvent);\r\n args && extend(event, args);\r\n return event\r\n};\r\nexport var fireEvent = props => {\r\n var {\r\n originalEvent: originalEvent,\r\n delegateTarget: delegateTarget\r\n } = props;\r\n var event = createEvent(originalEvent, props);\r\n eventsEngine.trigger(delegateTarget || event.target, event);\r\n return event\r\n};\r\nexport var normalizeKeyName = _ref4 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref4;\r\n var isKeySupported = !!key;\r\n key = isKeySupported ? key : which;\r\n if (key) {\r\n if (isKeySupported) {\r\n key = KEY_MAP[key.toLowerCase()] || key\r\n } else {\r\n key = LEGACY_KEY_CODES[key] || String.fromCharCode(key)\r\n }\r\n return key\r\n }\r\n};\r\nexport var getChar = _ref5 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref5;\r\n return key || String.fromCharCode(which)\r\n};\r\nexport var addNamespace = mappedAddNamespace;\r\nexport var isCommandKeyPressed = _ref6 => {\r\n var {\r\n ctrlKey: ctrlKey,\r\n metaKey: metaKey\r\n } = _ref6;\r\n return ctrlKey || metaKey\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/button.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport ValidationEngine from \"../../ui/validation_engine\";\r\nimport Component from \"./common/component\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../core/utils/icon\";\r\nexport default class ButtonWrapper extends Component {\r\n get _validationGroupConfig() {\r\n return ValidationEngine.getGroupConfig(this._findGroup())\r\n }\r\n getDefaultTemplateNames() {\r\n return [\"content\"]\r\n }\r\n getSupportedKeyNames() {\r\n return [\"space\", \"enter\"]\r\n }\r\n getProps() {\r\n var props = super.getProps();\r\n props.onClick = _ref => {\r\n var {\r\n event: event\r\n } = _ref;\r\n this._clickAction({\r\n event: event,\r\n validationGroup: this._validationGroupConfig\r\n })\r\n };\r\n var iconType = getImageSourceType(props.icon);\r\n if (\"svg\" === iconType) {\r\n props.iconTemplate = this._createTemplateComponent(() => props.icon)\r\n }\r\n return props\r\n }\r\n get _templatesInfo() {\r\n return {\r\n template: \"content\"\r\n }\r\n }\r\n _toggleActiveState(_, value) {\r\n var button = this.viewRef;\r\n value ? button.activate() : button.deactivate()\r\n }\r\n _getSubmitAction() {\r\n var needValidate = true;\r\n var validationStatus = \"valid\";\r\n return this._createAction(_ref2 => {\r\n var {\r\n event: event,\r\n submitInput: submitInput\r\n } = _ref2;\r\n if (needValidate) {\r\n var validationGroup = this._validationGroupConfig;\r\n if (void 0 !== validationGroup && \"\" !== validationGroup) {\r\n var validationResult = validationGroup.validate();\r\n validationStatus = validationResult.status;\r\n if (\"pending\" === validationResult.status) {\r\n needValidate = false;\r\n this.option(\"disabled\", true);\r\n validationResult.complete.then(_ref3 => {\r\n var {\r\n status: status\r\n } = _ref3;\r\n this.option(\"disabled\", false);\r\n validationStatus = status;\r\n \"valid\" === validationStatus && submitInput.click();\r\n needValidate = true\r\n })\r\n }\r\n }\r\n }\r\n \"valid\" !== validationStatus && event.preventDefault();\r\n event.stopPropagation()\r\n })\r\n }\r\n _init() {\r\n super._init();\r\n this._addAction(\"onSubmit\", this._getSubmitAction());\r\n this._clickAction = this._createClickAction()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n var $content = this.$element().find(\".dx-button-content\");\r\n var $template = $content.children().filter(\".dx-template-wrapper\");\r\n var $input = $content.children().filter(\".dx-button-submit-input\");\r\n if ($template.length) {\r\n $template.addClass(\"dx-button-content\");\r\n $template.append($input);\r\n $content.replaceWith($template)\r\n }\r\n }\r\n _patchOptionValues(options) {\r\n return super._patchOptionValues(_extends({}, options, {\r\n templateData: options._templateData\r\n }))\r\n }\r\n _findGroup() {\r\n var $element = this.$element();\r\n var validationGroup = this.option(\"validationGroup\");\r\n return void 0 !== validationGroup && \"\" !== validationGroup ? validationGroup : ValidationEngine.findGroup($element, this._modelByElement($element))\r\n }\r\n _createClickAction() {\r\n return this._createActionByOption(\"onClick\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n }\r\n _optionChanged(option) {\r\n switch (option.name) {\r\n case \"onClick\":\r\n this._clickAction = this._createClickAction()\r\n }\r\n super._optionChanged(option)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/icon.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"iconTemplate\", \"position\", \"source\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../../core/utils/icon\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n iconClassName: iconClassName,\r\n props: {\r\n iconTemplate: IconTemplate,\r\n source: source\r\n },\r\n sourceType: sourceType\r\n } = _ref;\r\n return createFragment([\"dxIcon\" === sourceType && createVNode(1, \"i\", iconClassName), \"fontIcon\" === sourceType && createVNode(1, \"i\", iconClassName), \"image\" === sourceType && createVNode(1, \"img\", iconClassName, null, 1, {\r\n alt: \"\",\r\n src: source\r\n }), IconTemplate && createVNode(1, \"i\", iconClassName, IconTemplate({}), 0)], 0)\r\n};\r\nexport var IconProps = {\r\n position: \"left\",\r\n source: \"\"\r\n};\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Icon extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get sourceType() {\r\n return getImageSourceType(this.props.source)\r\n }\r\n get cssClass() {\r\n return \"left\" !== this.props.position ? \"dx-icon-right\" : \"\"\r\n }\r\n get iconClassName() {\r\n var generalClasses = {\r\n \"dx-icon\": true,\r\n [this.cssClass]: !!this.cssClass\r\n };\r\n var {\r\n source: source\r\n } = this.props;\r\n if (\"dxIcon\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n [\"dx-icon-\".concat(source)]: true\r\n }))\r\n }\r\n if (\"fontIcon\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n [String(source)]: !!source\r\n }))\r\n }\r\n if (\"image\" === this.sourceType) {\r\n return combineClasses(generalClasses)\r\n }\r\n if (\"svg\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n \"dx-svg-icon\": true\r\n }))\r\n }\r\n return \"\"\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n iconTemplate: getTemplate(props.iconTemplate)\r\n }),\r\n sourceType: this.sourceType,\r\n cssClass: this.cssClass,\r\n iconClassName: this.iconClassName,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nIcon.defaultProps = IconProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/ink_ripple.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"config\"];\r\nimport {\r\n createVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n initConfig,\r\n showWave,\r\n hideWave\r\n} from \"../../../ui/widget/utils.ink_ripple\";\r\nexport var viewFunction = model => normalizeProps(createVNode(1, \"div\", \"dx-inkripple\", null, 1, _extends({}, model.restAttributes)));\r\nexport var InkRippleProps = {\r\n get config() {\r\n return {}\r\n }\r\n};\r\nexport class InkRipple extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {};\r\n this.hideWave = this.hideWave.bind(this);\r\n this.showWave = this.showWave.bind(this)\r\n }\r\n get getConfig() {\r\n if (void 0 !== this.__getterCache.getConfig) {\r\n return this.__getterCache.getConfig\r\n }\r\n return this.__getterCache.getConfig = (() => {\r\n var {\r\n config: config\r\n } = this.props;\r\n return initConfig(config)\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n hideWave(opts) {\r\n hideWave(this.getConfig, opts)\r\n }\r\n showWave(opts) {\r\n showWave(this.getConfig, opts)\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.config !== nextProps.config) {\r\n this.__getterCache.getConfig = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n getConfig: this.getConfig,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nInkRipple.defaultProps = InkRippleProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/button.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"children\", \"className\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"icon\", \"iconPosition\", \"iconTemplate\", \"onClick\", \"onKeyDown\", \"onSubmit\", \"pressed\", \"rtlEnabled\", \"stylingMode\", \"tabIndex\", \"template\", \"templateData\", \"text\", \"type\", \"useInkRipple\", \"useSubmitBehavior\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createDefaultOptionRules,\r\n convertRulesToOptions\r\n} from \"../../core/options/utils\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n isMaterial,\r\n current\r\n} from \"../../ui/themes\";\r\nimport {\r\n click\r\n} from \"../../events/short\";\r\nimport {\r\n combineClasses\r\n} from \"../utils/combine_classes\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n Icon\r\n} from \"./common/icon\";\r\nimport {\r\n InkRipple\r\n} from \"./common/ink_ripple\";\r\nimport {\r\n Widget\r\n} from \"./common/widget\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"./common/base_props\";\r\nvar stylingModes = [\"outlined\", \"text\", \"contained\"];\r\nvar getCssClasses = model => {\r\n var {\r\n icon: icon,\r\n iconPosition: iconPosition,\r\n stylingMode: stylingMode,\r\n text: text,\r\n type: type\r\n } = model;\r\n var isValidStylingMode = stylingMode && stylingModes.includes(stylingMode);\r\n var classesMap = {\r\n \"dx-button\": true,\r\n [\"dx-button-mode-\".concat(isValidStylingMode ? stylingMode : \"contained\")]: true,\r\n [\"dx-button-\".concat(null !== type && void 0 !== type ? type : \"normal\")]: true,\r\n \"dx-button-has-text\": !!text,\r\n \"dx-button-has-icon\": !!icon,\r\n \"dx-button-icon-right\": \"left\" !== iconPosition\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n children: children,\r\n iconPosition: iconPosition,\r\n iconTemplate: IconTemplate,\r\n template: ButtonTemplate,\r\n text: text\r\n } = viewModel.props;\r\n var renderText = !viewModel.props.template && !children && \"\" !== text;\r\n var isIconLeft = \"left\" === iconPosition;\r\n var iconComponent = !viewModel.props.template && !children && (viewModel.iconSource || viewModel.props.iconTemplate) && createComponentVNode(2, Icon, {\r\n source: viewModel.iconSource,\r\n position: iconPosition,\r\n iconTemplate: IconTemplate\r\n });\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n accessKey: viewModel.props.accessKey,\r\n activeStateEnabled: viewModel.props.activeStateEnabled,\r\n aria: viewModel.aria,\r\n className: viewModel.props.className,\r\n classes: viewModel.cssClasses,\r\n disabled: viewModel.props.disabled,\r\n focusStateEnabled: viewModel.props.focusStateEnabled,\r\n height: viewModel.props.height,\r\n hint: viewModel.props.hint,\r\n hoverStateEnabled: viewModel.props.hoverStateEnabled,\r\n onActive: viewModel.onActive,\r\n onClick: viewModel.onWidgetClick,\r\n onInactive: viewModel.onInactive,\r\n onKeyDown: viewModel.keyDown,\r\n rtlEnabled: viewModel.props.rtlEnabled,\r\n tabIndex: viewModel.props.tabIndex,\r\n visible: viewModel.props.visible,\r\n width: viewModel.props.width\r\n }, viewModel.restAttributes, {\r\n children: createVNode(1, \"div\", \"dx-button-content\", [viewModel.props.template && ButtonTemplate({\r\n data: viewModel.buttonTemplateData\r\n }), !viewModel.props.template && children, isIconLeft && iconComponent, renderText && createVNode(1, \"span\", \"dx-button-text\", text, 0), !isIconLeft && iconComponent, viewModel.props.useSubmitBehavior && createVNode(64, \"input\", \"dx-button-submit-input\", null, 1, {\r\n type: \"submit\",\r\n tabIndex: -1\r\n }, null, viewModel.submitInputRef), viewModel.props.useInkRipple && createComponentVNode(2, InkRipple, {\r\n config: viewModel.inkRippleConfig\r\n }, null, viewModel.inkRippleRef)], 0, null, null, viewModel.contentRef)\r\n }), null, viewModel.widgetRef))\r\n};\r\nexport var ButtonProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n icon: \"\",\r\n iconPosition: \"left\",\r\n stylingMode: \"contained\",\r\n text: \"\",\r\n type: \"normal\",\r\n useInkRipple: false,\r\n useSubmitBehavior: false,\r\n get templateData() {\r\n return {}\r\n }\r\n})));\r\nexport var defaultOptionRules = createDefaultOptionRules([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n}, {\r\n device: () => isMaterial(current()),\r\n options: {\r\n useInkRipple: true\r\n }\r\n}]);\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Button extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.contentRef = infernoCreateRef();\r\n this.inkRippleRef = infernoCreateRef();\r\n this.submitInputRef = infernoCreateRef();\r\n this.widgetRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.focus = this.focus.bind(this);\r\n this.activate = this.activate.bind(this);\r\n this.deactivate = this.deactivate.bind(this);\r\n this.submitEffect = this.submitEffect.bind(this);\r\n this.onActive = this.onActive.bind(this);\r\n this.onInactive = this.onInactive.bind(this);\r\n this.onWidgetClick = this.onWidgetClick.bind(this);\r\n this.keyDown = this.keyDown.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.submitEffect, [this.props.onSubmit, this.props.useSubmitBehavior]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.onSubmit, this.props.useSubmitBehavior])\r\n }\r\n submitEffect() {\r\n var {\r\n onSubmit: onSubmit,\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.props;\r\n if (useSubmitBehavior && onSubmit) {\r\n click.on(this.submitInputRef.current, event => onSubmit({\r\n event: event,\r\n submitInput: this.submitInputRef.current\r\n }), {\r\n namespace: \"UIFeedback\"\r\n });\r\n return () => click.off(this.submitInputRef.current, {\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n return\r\n }\r\n onActive(event) {\r\n var {\r\n useInkRipple: useInkRipple\r\n } = this.props;\r\n useInkRipple && this.inkRippleRef.current.showWave({\r\n element: this.contentRef.current,\r\n event: event\r\n })\r\n }\r\n onInactive(event) {\r\n var {\r\n useInkRipple: useInkRipple\r\n } = this.props;\r\n useInkRipple && this.inkRippleRef.current.hideWave({\r\n element: this.contentRef.current,\r\n event: event\r\n })\r\n }\r\n onWidgetClick(event) {\r\n var {\r\n onClick: onClick,\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.props;\r\n null === onClick || void 0 === onClick ? void 0 : onClick({\r\n event: event\r\n });\r\n useSubmitBehavior && this.submitInputRef.current.click()\r\n }\r\n keyDown(e) {\r\n var {\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = e;\r\n var result = null === onKeyDown || void 0 === onKeyDown ? void 0 : onKeyDown(e);\r\n if (null !== result && void 0 !== result && result.cancel) {\r\n return result\r\n }\r\n if (\"space\" === keyName || \"space\" === which || \"enter\" === keyName || \"enter\" === which) {\r\n originalEvent.preventDefault();\r\n this.onWidgetClick(originalEvent)\r\n }\r\n return\r\n }\r\n get aria() {\r\n var {\r\n icon: icon,\r\n text: text\r\n } = this.props;\r\n var label = (null !== text && void 0 !== text ? text : \"\") || icon;\r\n if (!text && icon && \"image\" === getImageSourceType(icon)) {\r\n label = !icon.includes(\"base64\") ? icon.replace(/.+\\/([^.]+)\\..+$/, \"$1\") : \"Base64\"\r\n }\r\n return _extends({\r\n role: \"button\"\r\n }, label ? {\r\n label: label\r\n } : {})\r\n }\r\n get cssClasses() {\r\n return getCssClasses(this.props)\r\n }\r\n get iconSource() {\r\n var {\r\n icon: icon,\r\n type: type\r\n } = this.props;\r\n if (icon || \"back\" === type) {\r\n return (null !== icon && void 0 !== icon ? icon : \"\") || \"back\"\r\n }\r\n return \"\"\r\n }\r\n get inkRippleConfig() {\r\n if (void 0 !== this.__getterCache.inkRippleConfig) {\r\n return this.__getterCache.inkRippleConfig\r\n }\r\n return this.__getterCache.inkRippleConfig = (() => {\r\n var {\r\n icon: icon,\r\n text: text,\r\n type: type\r\n } = this.props;\r\n return !text && icon || \"back\" === type ? {\r\n isCentered: true,\r\n useHoldAnimation: false,\r\n waveSizeCoefficient: 1\r\n } : {}\r\n })()\r\n }\r\n get buttonTemplateData() {\r\n var {\r\n icon: icon,\r\n templateData: templateData,\r\n text: text\r\n } = this.props;\r\n return _extends({\r\n icon: icon,\r\n text: text\r\n }, templateData)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.widgetRef.current.focus()\r\n }\r\n activate() {\r\n this.widgetRef.current.activate()\r\n }\r\n deactivate() {\r\n this.widgetRef.current.deactivate()\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.icon !== nextProps.icon || this.props.text !== nextProps.text || this.props.type !== nextProps.type) {\r\n this.__getterCache.inkRippleConfig = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n template: getTemplate(props.template),\r\n iconTemplate: getTemplate(props.iconTemplate)\r\n }),\r\n contentRef: this.contentRef,\r\n submitInputRef: this.submitInputRef,\r\n inkRippleRef: this.inkRippleRef,\r\n widgetRef: this.widgetRef,\r\n onActive: this.onActive,\r\n onInactive: this.onInactive,\r\n onWidgetClick: this.onWidgetClick,\r\n keyDown: this.keyDown,\r\n aria: this.aria,\r\n cssClasses: this.cssClasses,\r\n iconSource: this.iconSource,\r\n inkRippleConfig: this.inkRippleConfig,\r\n buttonTemplateData: this.buttonTemplateData,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nButton.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(ButtonProps), Object.getOwnPropertyDescriptors(_extends({}, convertRulesToOptions(defaultOptionRules)))));\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n Button.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(Button.defaultProps), Object.getOwnPropertyDescriptors(convertRulesToOptions(defaultOptionRules)), Object.getOwnPropertyDescriptors(convertRulesToOptions(__defaultOptionRules))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/button.j.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport registerComponent from \"../../core/component_registrator\";\r\nimport BaseComponent from \"../component_wrapper/button\";\r\nimport {\r\n Button as ButtonComponent,\r\n defaultOptions\r\n} from \"./button\";\r\nexport default class Button extends BaseComponent {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onKeyDown = this._wrapKeyDownHandler(props.onKeyDown);\r\n return props\r\n }\r\n focus() {\r\n var _this$viewRef;\r\n return null === (_this$viewRef = this.viewRef) || void 0 === _this$viewRef ? void 0 : _this$viewRef.focus(...arguments)\r\n }\r\n activate() {\r\n var _this$viewRef2;\r\n return null === (_this$viewRef2 = this.viewRef) || void 0 === _this$viewRef2 ? void 0 : _this$viewRef2.activate(...arguments)\r\n }\r\n deactivate() {\r\n var _this$viewRef3;\r\n return null === (_this$viewRef3 = this.viewRef) || void 0 === _this$viewRef3 ? void 0 : _this$viewRef3.deactivate(...arguments)\r\n }\r\n _getActionConfigs() {\r\n return {\r\n onClick: {\r\n excludeValidators: [\"readOnly\"]\r\n },\r\n onSubmit: {}\r\n }\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [\"onSubmit\"],\r\n templates: [\"template\", \"iconTemplate\"],\r\n props: [\"activeStateEnabled\", \"hoverStateEnabled\", \"icon\", \"iconPosition\", \"onClick\", \"onSubmit\", \"pressed\", \"stylingMode\", \"template\", \"iconTemplate\", \"text\", \"type\", \"useInkRipple\", \"useSubmitBehavior\", \"templateData\", \"className\", \"accessKey\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"onKeyDown\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return ButtonComponent\r\n }\r\n}\r\nregisterComponent(\"dxButton\", Button);\r\nButton.defaultOptions = defaultOptions;\r\n","/**\r\n * DevExtreme (esm/ui/button.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport Widget from \"../renovation/ui/button.j\";\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/core/component_registrator_callbacks.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport MemorizedCallbacks from \"./memorized_callbacks\";\r\nexport default new MemorizedCallbacks;\r\n","/**\r\n * DevExtreme (esm/core/component_registrator.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"./renderer\";\r\nimport callbacks from \"./component_registrator_callbacks\";\r\nimport errors from \"./errors\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nvar registerComponent = function(name, namespace, componentClass) {\r\n if (!componentClass) {\r\n componentClass = namespace\r\n } else {\r\n namespace[name] = componentClass\r\n }\r\n publicComponentName(componentClass, name);\r\n callbacks.fire(name, componentClass)\r\n};\r\nvar registerRendererComponent = function(name, componentClass) {\r\n $.fn[name] = function(options) {\r\n var isMemberInvoke = \"string\" === typeof options;\r\n var result;\r\n if (isMemberInvoke) {\r\n var memberName = options;\r\n var memberArgs = [].slice.call(arguments).slice(1);\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (!instance) {\r\n throw errors.Error(\"E0009\", name)\r\n }\r\n var member = instance[memberName];\r\n var memberValue = member.apply(instance, memberArgs);\r\n if (void 0 === result) {\r\n result = memberValue\r\n }\r\n }))\r\n } else {\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (instance) {\r\n instance.option(options)\r\n } else {\r\n new componentClass(this, options)\r\n }\r\n }));\r\n result = this\r\n }\r\n return result\r\n }\r\n};\r\ncallbacks.add(registerRendererComponent);\r\nexport default registerComponent;\r\n","/**\r\n * DevExtreme (esm/data/array_query.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport Class from \"../core/class\";\r\nimport {\r\n isFunction,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../core/utils/data\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n errors,\r\n handleError as handleDataError\r\n} from \"./errors\";\r\nimport {\r\n aggregators,\r\n isGroupCriterion,\r\n isUnaryOperation,\r\n normalizeBinaryCriterion,\r\n isConjunctiveOperator as isConjunctiveOperatorChecker\r\n} from \"./utils\";\r\nvar Iterator = Class.inherit({\r\n toArray: function() {\r\n var result = [];\r\n this.reset();\r\n while (this.next()) {\r\n result.push(this.current())\r\n }\r\n return result\r\n },\r\n countable: function() {\r\n return false\r\n }\r\n});\r\nvar ArrayIterator = Iterator.inherit({\r\n ctor: function(array) {\r\n this.array = array;\r\n this.index = -1\r\n },\r\n next: function() {\r\n if (this.index + 1 < this.array.length) {\r\n this.index++;\r\n return true\r\n }\r\n return false\r\n },\r\n current: function() {\r\n return this.array[this.index]\r\n },\r\n reset: function() {\r\n this.index = -1\r\n },\r\n toArray: function() {\r\n return this.array.slice(0)\r\n },\r\n countable: function() {\r\n return true\r\n },\r\n count: function() {\r\n return this.array.length\r\n }\r\n});\r\nvar WrappedIterator = Iterator.inherit({\r\n ctor: function(iter) {\r\n this.iter = iter\r\n },\r\n next: function() {\r\n return this.iter.next()\r\n },\r\n current: function() {\r\n return this.iter.current()\r\n },\r\n reset: function() {\r\n return this.iter.reset()\r\n }\r\n});\r\nvar MapIterator = WrappedIterator.inherit({\r\n ctor: function(iter, mapper) {\r\n this.callBase(iter);\r\n this.index = -1;\r\n this.mapper = mapper\r\n },\r\n current: function() {\r\n return this.mapper(this.callBase(), this.index)\r\n },\r\n next: function() {\r\n var hasNext = this.callBase();\r\n if (hasNext) {\r\n this.index++\r\n }\r\n return hasNext\r\n }\r\n});\r\nvar defaultCompare = function(xValue, yValue) {\r\n xValue = toComparable(xValue);\r\n yValue = toComparable(yValue);\r\n if (null === xValue && null !== yValue) {\r\n return -1\r\n }\r\n if (null !== xValue && null === yValue) {\r\n return 1\r\n }\r\n if (void 0 === xValue && void 0 !== yValue) {\r\n return 1\r\n }\r\n if (void 0 !== xValue && void 0 === yValue) {\r\n return -1\r\n }\r\n if (xValue < yValue) {\r\n return -1\r\n }\r\n if (xValue > yValue) {\r\n return 1\r\n }\r\n return 0\r\n};\r\nvar SortIterator = Iterator.inherit({\r\n ctor: function(iter, getter, desc, compare) {\r\n if (!(iter instanceof MapIterator)) {\r\n iter = new MapIterator(iter, this._wrap)\r\n }\r\n this.iter = iter;\r\n this.rules = [{\r\n getter: getter,\r\n desc: desc,\r\n compare: compare\r\n }]\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n var result = new SortIterator(this.sortedIter || this.iter, getter, desc, compare);\r\n if (!this.sortedIter) {\r\n result.rules = this.rules.concat(result.rules)\r\n }\r\n return result\r\n },\r\n next: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.next()\r\n },\r\n current: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.current()\r\n },\r\n reset: function() {\r\n delete this.sortedIter\r\n },\r\n countable: function() {\r\n return this.sortedIter || this.iter.countable()\r\n },\r\n count: function() {\r\n if (this.sortedIter) {\r\n return this.sortedIter.count()\r\n }\r\n return this.iter.count()\r\n },\r\n _ensureSorted: function() {\r\n var that = this;\r\n if (that.sortedIter) {\r\n return\r\n }\r\n each(that.rules, (function() {\r\n this.getter = compileGetter(this.getter)\r\n }));\r\n that.sortedIter = new MapIterator(new ArrayIterator(this.iter.toArray().sort((function(x, y) {\r\n return that._compare(x, y)\r\n }))), that._unwrap)\r\n },\r\n _wrap: function(record, index) {\r\n return {\r\n index: index,\r\n value: record\r\n }\r\n },\r\n _unwrap: function(wrappedItem) {\r\n return wrappedItem.value\r\n },\r\n _compare: function(x, y) {\r\n var xIndex = x.index;\r\n var yIndex = y.index;\r\n x = x.value;\r\n y = y.value;\r\n if (x === y) {\r\n return xIndex - yIndex\r\n }\r\n for (var i = 0, rulesCount = this.rules.length; i < rulesCount; i++) {\r\n var rule = this.rules[i];\r\n var xValue = rule.getter(x);\r\n var yValue = rule.getter(y);\r\n var compare = rule.compare || defaultCompare;\r\n var compareResult = compare(xValue, yValue);\r\n if (compareResult) {\r\n return rule.desc ? -compareResult : compareResult\r\n }\r\n }\r\n return xIndex - yIndex\r\n }\r\n});\r\nvar compileCriteria = function() {\r\n var toString = function(value) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n };\r\n\r\n function compileEquals(getter, value, negate) {\r\n return function(obj) {\r\n obj = toComparable(getter(obj));\r\n var result = function(value) {\r\n return \"\" === value || 0 === value || false === value\r\n }(value) ? obj === value : obj == value;\r\n if (negate) {\r\n result = !result\r\n }\r\n return result\r\n }\r\n }\r\n return function(crit) {\r\n if (isFunction(crit)) {\r\n return crit\r\n }\r\n if (isGroupCriterion(crit)) {\r\n return function(crit) {\r\n var ops = [];\r\n var isConjunctiveOperator = false;\r\n var isConjunctiveNextOperator = false;\r\n each(crit, (function() {\r\n if (Array.isArray(this) || isFunction(this)) {\r\n if (ops.length > 1 && isConjunctiveOperator !== isConjunctiveNextOperator) {\r\n throw new errors.Error(\"E4019\")\r\n }\r\n ops.push(compileCriteria(this));\r\n isConjunctiveOperator = isConjunctiveNextOperator;\r\n isConjunctiveNextOperator = true\r\n } else {\r\n isConjunctiveNextOperator = isConjunctiveOperatorChecker(this)\r\n }\r\n }));\r\n return function(d) {\r\n var result = isConjunctiveOperator;\r\n for (var i = 0; i < ops.length; i++) {\r\n if (ops[i](d) !== isConjunctiveOperator) {\r\n result = !isConjunctiveOperator;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n }(crit)\r\n }\r\n if (isUnaryOperation(crit)) {\r\n return function(crit) {\r\n var op = crit[0];\r\n var criteria = compileCriteria(crit[1]);\r\n if (\"!\" === op) {\r\n return function(obj) {\r\n return !criteria(obj)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n return function(crit) {\r\n crit = normalizeBinaryCriterion(crit);\r\n var getter = compileGetter(crit[0]);\r\n var op = crit[1];\r\n var value = crit[2];\r\n value = toComparable(value);\r\n switch (op.toLowerCase()) {\r\n case \"=\":\r\n return compileEquals(getter, value);\r\n case \"<>\":\r\n return compileEquals(getter, value, true);\r\n case \">\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) > value\r\n };\r\n case \"<\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) < value\r\n };\r\n case \">=\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) >= value\r\n };\r\n case \"<=\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) <= value\r\n };\r\n case \"startswith\":\r\n return function(obj) {\r\n return 0 === toComparable(toString(getter(obj))).indexOf(value)\r\n };\r\n case \"endswith\":\r\n return function(obj) {\r\n var getterValue = toComparable(toString(getter(obj)));\r\n var searchValue = toString(value);\r\n if (getterValue.length < searchValue.length) {\r\n return false\r\n }\r\n var index = getterValue.lastIndexOf(value);\r\n return -1 !== index && index === getterValue.length - value.length\r\n };\r\n case \"contains\":\r\n return function(obj) {\r\n return toComparable(toString(getter(obj))).indexOf(value) > -1\r\n };\r\n case \"notcontains\":\r\n return function(obj) {\r\n return -1 === toComparable(toString(getter(obj))).indexOf(value)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n}();\r\nvar FilterIterator = WrappedIterator.inherit({\r\n ctor: function(iter, criteria) {\r\n this.callBase(iter);\r\n this.criteria = compileCriteria(criteria)\r\n },\r\n next: function() {\r\n while (this.iter.next()) {\r\n if (this.criteria(this.current())) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n});\r\nvar GroupIterator = Iterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.iter = iter;\r\n this.getter = getter\r\n },\r\n next: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.next()\r\n },\r\n current: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.current()\r\n },\r\n reset: function() {\r\n delete this.groupedIter\r\n },\r\n countable: function() {\r\n return !!this.groupedIter\r\n },\r\n count: function() {\r\n return this.groupedIter.count()\r\n },\r\n _ensureGrouped: function() {\r\n if (this.groupedIter) {\r\n return\r\n }\r\n var hash = {};\r\n var keys = [];\r\n var iter = this.iter;\r\n var getter = compileGetter(this.getter);\r\n iter.reset();\r\n while (iter.next()) {\r\n var current = iter.current();\r\n var key = getter(current);\r\n if (key in hash) {\r\n hash[key].push(current)\r\n } else {\r\n hash[key] = [current];\r\n keys.push(key)\r\n }\r\n }\r\n this.groupedIter = new ArrayIterator(map(keys, (function(key) {\r\n return {\r\n key: key,\r\n items: hash[key]\r\n }\r\n })))\r\n }\r\n});\r\nvar SelectIterator = WrappedIterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.callBase(iter);\r\n this.getter = compileGetter(getter)\r\n },\r\n current: function() {\r\n return this.getter(this.callBase())\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return this.iter.count()\r\n }\r\n});\r\nvar SliceIterator = WrappedIterator.inherit({\r\n ctor: function(iter, skip, take) {\r\n this.callBase(iter);\r\n this.skip = Math.max(0, skip);\r\n this.take = Math.max(0, take);\r\n this.pos = 0\r\n },\r\n next: function() {\r\n if (this.pos >= this.skip + this.take) {\r\n return false\r\n }\r\n while (this.pos < this.skip && this.iter.next()) {\r\n this.pos++\r\n }\r\n this.pos++;\r\n return this.iter.next()\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this.pos = 0\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return Math.min(this.iter.count() - this.skip, this.take)\r\n }\r\n});\r\nvar arrayQueryImpl = function arrayQueryImpl(iter, queryOptions) {\r\n queryOptions = queryOptions || {};\r\n if (!(iter instanceof Iterator)) {\r\n iter = new ArrayIterator(iter)\r\n }\r\n var handleError = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleDataError(error)\r\n };\r\n var aggregateCore = function(aggregator) {\r\n var d = (new Deferred).fail(handleError);\r\n var seed;\r\n var step = aggregator.step;\r\n var finalize = aggregator.finalize;\r\n try {\r\n iter.reset();\r\n if (\"seed\" in aggregator) {\r\n seed = aggregator.seed\r\n } else {\r\n seed = iter.next() ? iter.current() : NaN\r\n }\r\n var accumulator = seed;\r\n while (iter.next()) {\r\n accumulator = step(accumulator, iter.current())\r\n }\r\n d.resolve(finalize ? finalize(accumulator) : accumulator)\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n };\r\n var standardAggregate = function(name) {\r\n return aggregateCore(aggregators[name])\r\n };\r\n var select = function(getter) {\r\n if (!isFunction(getter) && !Array.isArray(getter)) {\r\n getter = [].slice.call(arguments)\r\n }\r\n return chainQuery(new SelectIterator(iter, getter))\r\n };\r\n var selectProp = function(name) {\r\n return select(compileGetter(name))\r\n };\r\n\r\n function chainQuery(iter) {\r\n return arrayQueryImpl(iter, queryOptions)\r\n }\r\n return {\r\n toArray: function() {\r\n return iter.toArray()\r\n },\r\n enumerate: function() {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.toArray())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n },\r\n sortBy: function(getter, desc, compare) {\r\n return chainQuery(new SortIterator(iter, getter, desc, compare))\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n if (iter instanceof SortIterator) {\r\n return chainQuery(iter.thenBy(getter, desc, compare))\r\n }\r\n throw errors.Error(\"E4004\")\r\n },\r\n filter: function(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n criteria = [].slice.call(arguments)\r\n }\r\n return chainQuery(new FilterIterator(iter, criteria))\r\n },\r\n slice: function(skip, take) {\r\n if (void 0 === take) {\r\n take = Number.MAX_VALUE\r\n }\r\n return chainQuery(new SliceIterator(iter, skip, take))\r\n },\r\n select: select,\r\n groupBy: function(getter) {\r\n return chainQuery(new GroupIterator(iter, getter))\r\n },\r\n aggregate: function(seed, step, finalize) {\r\n if (arguments.length < 2) {\r\n return aggregateCore({\r\n step: arguments[0]\r\n })\r\n }\r\n return aggregateCore({\r\n seed: seed,\r\n step: step,\r\n finalize: finalize\r\n })\r\n },\r\n count: function() {\r\n if (iter.countable()) {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.count())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n }\r\n return standardAggregate(\"count\")\r\n },\r\n sum: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).sum()\r\n }\r\n return standardAggregate(\"sum\")\r\n },\r\n min: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).min()\r\n }\r\n return standardAggregate(\"min\")\r\n },\r\n max: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).max()\r\n }\r\n return standardAggregate(\"max\")\r\n },\r\n avg: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).avg()\r\n }\r\n return standardAggregate(\"avg\")\r\n }\r\n }\r\n};\r\nexport default arrayQueryImpl;\r\n","/**\r\n * DevExtreme (esm/ui/validation_message.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Overlay from \"./overlay/ui.overlay\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n encodeHtml\r\n} from \"../core/utils/string\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../core/utils/position\";\r\nvar INVALID_MESSAGE = \"dx-invalid-message\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar INVALID_MESSAGE_ALWAYS = \"dx-invalid-message-always\";\r\nvar INVALID_MESSAGE_CONTENT = \"dx-invalid-message-content\";\r\nvar VALIDATION_MESSAGE_MIN_WIDTH = 100;\r\nvar ValidationMessage = Overlay.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n integrationOptions: {},\r\n templatesRenderAsynchronously: false,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n closeOnOutsideClick: false,\r\n animation: null,\r\n visible: true,\r\n propagateOutsideClick: true,\r\n _checkParentVisibility: false,\r\n rtlEnabled: false,\r\n contentTemplate: this._renderInnerHtml,\r\n maxWidth: \"100%\",\r\n mode: \"auto\",\r\n validationErrors: void 0,\r\n positionRequest: void 0,\r\n boundary: void 0,\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n contentId: void 0\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this.updateMaxWidth();\r\n this._updatePosition()\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._ensureMessageNotEmpty();\r\n this._toggleModeClass();\r\n this._updateContentId()\r\n },\r\n _ensureMessageNotEmpty: function() {\r\n this._textMarkup = this._getTextMarkup();\r\n var shouldShowMessage = this.option(\"visible\") && this._textMarkup;\r\n this._toggleVisibilityClasses(shouldShowMessage)\r\n },\r\n _toggleVisibilityClasses: function(visible) {\r\n if (visible) {\r\n this.$element().addClass(INVALID_MESSAGE);\r\n this.$wrapper().addClass(INVALID_MESSAGE)\r\n } else {\r\n this.$element().removeClass(INVALID_MESSAGE);\r\n this.$wrapper().removeClass(INVALID_MESSAGE)\r\n }\r\n },\r\n _updateContentId() {\r\n var {\r\n container: container,\r\n contentId: contentId\r\n } = this.option();\r\n var id = null !== contentId && void 0 !== contentId ? contentId : $(container).attr(\"aria-describedby\");\r\n this.$content().addClass(INVALID_MESSAGE_CONTENT).attr(\"id\", id)\r\n },\r\n _renderInnerHtml(element) {\r\n var $element = element && $(element);\r\n null === $element || void 0 === $element ? void 0 : $element.html(this._textMarkup)\r\n },\r\n _getTextMarkup() {\r\n var _this$option;\r\n var validationErrors = null !== (_this$option = this.option(\"validationErrors\")) && void 0 !== _this$option ? _this$option : [];\r\n var validationErrorMessage = \"\";\r\n validationErrors.forEach(err => {\r\n var _err$message;\r\n var separator = validationErrorMessage ? \"
\" : \"\";\r\n validationErrorMessage += separator + encodeHtml(null !== (_err$message = null === err || void 0 === err ? void 0 : err.message) && void 0 !== _err$message ? _err$message : \"\")\r\n });\r\n return validationErrorMessage\r\n },\r\n _toggleModeClass() {\r\n var mode = this.option(\"mode\");\r\n this.$wrapper().toggleClass(INVALID_MESSAGE_AUTO, \"auto\" === mode).toggleClass(INVALID_MESSAGE_ALWAYS, \"always\" === mode)\r\n },\r\n updateMaxWidth() {\r\n var target = this.option(\"target\");\r\n var targetWidth = getOuterWidth(target);\r\n var maxWidth = \"100%\";\r\n if (targetWidth) {\r\n maxWidth = Math.max(targetWidth, VALIDATION_MESSAGE_MIN_WIDTH)\r\n }\r\n this.option({\r\n maxWidth: maxWidth\r\n })\r\n },\r\n _updatePosition: function() {\r\n var {\r\n positionRequest: positionRequest,\r\n rtlEnabled: rtlEnabled,\r\n offset: offset,\r\n boundary: boundary\r\n } = this.option();\r\n var positionSide = getDefaultAlignment(rtlEnabled);\r\n var verticalPositions = \"below\" === positionRequest ? [\" top\", \" bottom\"] : [\" bottom\", \" top\"];\r\n if (rtlEnabled) {\r\n offset.h = -offset.h\r\n }\r\n if (\"below\" !== positionRequest) {\r\n offset.v = -offset.v\r\n }\r\n this.option(\"position\", {\r\n offset: offset,\r\n boundary: boundary,\r\n my: positionSide + verticalPositions[0],\r\n at: positionSide + verticalPositions[1],\r\n collision: \"none flip\"\r\n })\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"target\":\r\n this.updateMaxWidth();\r\n this.callBase(args);\r\n break;\r\n case \"boundary\":\r\n this.option(\"position.boundary\", value);\r\n break;\r\n case \"mode\":\r\n this._toggleModeClass(value);\r\n break;\r\n case \"rtlEnabled\":\r\n case \"offset\":\r\n case \"positionRequest\":\r\n this._updatePosition();\r\n break;\r\n case \"container\":\r\n this._updateContentId();\r\n this.callBase(args);\r\n break;\r\n case \"contentId\":\r\n this._updateContentId();\r\n break;\r\n case \"validationErrors\":\r\n this._ensureMessageNotEmpty();\r\n this._renderInnerHtml(this.$content());\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxValidationMessage\", ValidationMessage);\r\nexport default ValidationMessage;\r\n","/**\r\n * DevExtreme (esm/core/templates/empty_template.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nexport class EmptyTemplate extends TemplateBase {\r\n _renderCore() {\r\n return $()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.base.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ensureDefined,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n findTemplates\r\n} from \"../../core/utils/template_manager\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport Action from \"../../core/action\";\r\nimport Guid from \"../../core/guid\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport CollectionWidgetItem from \"./item\";\r\nimport {\r\n focusable\r\n} from \"../widget/selectors\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../events/contextmenu\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nvar COLLECTION_CLASS = \"dx-collection\";\r\nvar ITEM_CLASS = \"dx-item\";\r\nvar CONTENT_CLASS_POSTFIX = \"-content\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar ITEM_DATA_KEY = \"dxItemData\";\r\nvar ITEM_INDEX_KEY = \"dxItemIndex\";\r\nvar ITEM_TEMPLATE_ID_PREFIX = \"tmpl-\";\r\nvar ITEMS_OPTIONS_NAME = \"dxItem\";\r\nvar SELECTED_ITEM_CLASS = \"dx-item-selected\";\r\nvar ITEM_RESPONSE_WAIT_CLASS = \"dx-item-response-wait\";\r\nvar EMPTY_COLLECTION = \"dx-empty-collection\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar ITEM_PATH_REGEX = /^([^.]+\\[\\d+\\]\\.)+([\\w.]+)$/;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"item\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_PAGE_UP = \"pageup\";\r\nvar FOCUS_PAGE_DOWN = \"pagedown\";\r\nvar FOCUS_LAST = \"last\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar CollectionWidget = Widget.inherit({\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _supportedKeys: function() {\r\n var enter = function(e) {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n this._itemClickHandler(extend({}, e, {\r\n target: $itemElement.get(0),\r\n currentTarget: $itemElement.get(0)\r\n }))\r\n };\r\n var move = function(location, e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._moveFocus(location, e)\r\n }\r\n };\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n enter.call(this, e)\r\n },\r\n enter: enter,\r\n leftArrow: move.bind(this, FOCUS_LEFT),\r\n rightArrow: move.bind(this, FOCUS_RIGHT),\r\n upArrow: move.bind(this, FOCUS_UP),\r\n downArrow: move.bind(this, FOCUS_DOWN),\r\n pageUp: move.bind(this, FOCUS_UP),\r\n pageDown: move.bind(this, FOCUS_DOWN),\r\n home: move.bind(this, FOCUS_FIRST),\r\n end: move.bind(this, FOCUS_LAST)\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectOnFocus: false,\r\n loopItemFocus: true,\r\n items: [],\r\n itemTemplate: \"item\",\r\n onItemRendered: null,\r\n onItemClick: null,\r\n onItemHold: null,\r\n itemHoldTimeout: 750,\r\n onItemContextMenu: null,\r\n onFocusedItemChanged: null,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n dataSource: null,\r\n _itemAttributes: {},\r\n itemTemplateProperty: \"template\",\r\n focusOnSelectedItem: true,\r\n focusedElement: null,\r\n displayExpr: void 0,\r\n disabledExpr: function(data) {\r\n return data ? data.disabled : void 0\r\n },\r\n visibleExpr: function(data) {\r\n return data ? data.visible : void 0\r\n }\r\n })\r\n },\r\n _init: function() {\r\n this._compileDisplayGetter();\r\n this.callBase();\r\n this._cleanRenderedItems();\r\n this._refreshDataSource()\r\n },\r\n _compileDisplayGetter: function() {\r\n var displayExpr = this.option(\"displayExpr\");\r\n this._displayGetter = displayExpr ? compileGetter(this.option(\"displayExpr\")) : void 0\r\n },\r\n _initTemplates: function() {\r\n this._initItemsFromMarkup();\r\n this._initDefaultItemTemplate();\r\n this.callBase()\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initDefaultItemTemplate: function() {\r\n var fieldsMap = this._getFieldsMap();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, data) {\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container)\r\n } else {\r\n if (fieldsMap && isFunction(fieldsMap.text)) {\r\n data = fieldsMap.text(data)\r\n }\r\n $container.text(String(ensureDefined(data, \"\")))\r\n }\r\n }.bind(this), this._getBindableFields(), this.option(\"integrationOptions.watchMethod\"), fieldsMap)\r\n })\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\"]\r\n },\r\n _getFieldsMap: function() {\r\n if (this._displayGetter) {\r\n return {\r\n text: this._displayGetter\r\n }\r\n }\r\n },\r\n _prepareDefaultItemTemplate: function(data, $container) {\r\n if (isDefined(data.text)) {\r\n $container.text(data.text)\r\n }\r\n if (isDefined(data.html)) {\r\n $container.html(data.html)\r\n }\r\n },\r\n _initItemsFromMarkup: function() {\r\n var rawItems = findTemplates(this.$element(), ITEMS_OPTIONS_NAME);\r\n if (!rawItems.length || this.option(\"items\").length) {\r\n return\r\n }\r\n var items = rawItems.map(_ref => {\r\n var {\r\n element: element,\r\n options: options\r\n } = _ref;\r\n var isTemplateRequired = /\\S/.test(element.innerHTML) && !options.template;\r\n if (isTemplateRequired) {\r\n options.template = this._prepareItemTemplate(element)\r\n } else {\r\n $(element).remove()\r\n }\r\n return options\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _prepareItemTemplate: function(item) {\r\n var templateId = ITEM_TEMPLATE_ID_PREFIX + new Guid;\r\n var $template = $(item).detach().clone().removeAttr(\"data-options\").addClass(TEMPLATE_WRAPPER_CLASS);\r\n this._saveTemplate(templateId, $template);\r\n return templateId\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _cleanRenderedItems: function() {\r\n this._renderedItemsCount = 0\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _focusInHandler: function(e) {\r\n this.callBase.apply(this, arguments);\r\n if (-1 === inArray(e.target, this._focusTarget())) {\r\n return\r\n }\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n this._setFocusedItem($focusedElement)\r\n } else {\r\n var $activeItem = this._getActiveItem();\r\n if ($activeItem.length) {\r\n this.option(\"focusedElement\", getPublicElement($activeItem))\r\n }\r\n }\r\n },\r\n _focusOutHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n var $target = $(this.option(\"focusedElement\"));\r\n this._updateFocusedItemState($target, false)\r\n },\r\n _getActiveItem: function(last) {\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n return $focusedElement\r\n }\r\n var index = this.option(\"focusOnSelectedItem\") ? this.option(\"selectedIndex\") : 0;\r\n var activeElements = this._getActiveElement();\r\n var lastIndex = activeElements.length - 1;\r\n if (index < 0) {\r\n index = last ? lastIndex : 0\r\n }\r\n return activeElements.eq(index)\r\n },\r\n _moveFocus: function(location) {\r\n var $items = this._getAvailableItems();\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_PAGE_UP:\r\n case FOCUS_UP:\r\n $newTarget = this._prevItem($items);\r\n break;\r\n case FOCUS_PAGE_DOWN:\r\n case FOCUS_DOWN:\r\n $newTarget = this._nextItem($items);\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._prevItem($items) : this._nextItem($items);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._nextItem($items) : this._prevItem($items);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n break;\r\n default:\r\n return false\r\n }\r\n if (0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", getPublicElement($newTarget))\r\n }\r\n },\r\n _getVisibleItems: function($itemElements) {\r\n $itemElements = $itemElements || this._itemElements();\r\n return $itemElements.filter(\":visible\")\r\n },\r\n _getAvailableItems: function($itemElements) {\r\n return this._getVisibleItems($itemElements).not(\".dx-state-disabled\")\r\n },\r\n _prevItem: function($items) {\r\n var $target = this._getActiveItem();\r\n var targetIndex = $items.index($target);\r\n var $last = $items.last();\r\n var $item = $($items[targetIndex - 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $last\r\n }\r\n return $item\r\n },\r\n _nextItem: function($items) {\r\n var $target = this._getActiveItem(true);\r\n var targetIndex = $items.index($target);\r\n var $first = $items.first();\r\n var $item = $($items[targetIndex + 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $first\r\n }\r\n return $item\r\n },\r\n _selectFocusedItem: function($target) {\r\n this.selectItem($target)\r\n },\r\n _updateFocusedItemState: function(target, isFocused, needCleanItemId) {\r\n var $target = $(target);\r\n if ($target.length) {\r\n this._refreshActiveDescendant();\r\n this._refreshItemId($target, needCleanItemId);\r\n this._toggleFocusClass(isFocused, $target)\r\n }\r\n this._updateParentActiveDescendant()\r\n },\r\n _refreshActiveDescendant: function($target) {\r\n this.setAria(\"activedescendant\", isDefined(this.option(\"focusedElement\")) ? this.getFocusedItemId() : null, $target)\r\n },\r\n _refreshItemId: function($target, needCleanItemId) {\r\n if (!needCleanItemId && this.option(\"focusedElement\")) {\r\n this.setAria(\"id\", this.getFocusedItemId(), $target)\r\n } else {\r\n this.setAria(\"id\", null, $target)\r\n }\r\n },\r\n _setFocusedItem: function($target) {\r\n if (!$target || !$target.length) {\r\n return\r\n }\r\n this._updateFocusedItemState($target, true);\r\n this.onFocusedItemChanged(this.getFocusedItemId());\r\n if (this.option(\"selectOnFocus\")) {\r\n this._selectFocusedItem($target)\r\n }\r\n },\r\n _findItemElementByItem: function(item) {\r\n var result = $();\r\n var that = this;\r\n this.itemElements().each((function() {\r\n var $item = $(this);\r\n if ($item.data(that._itemDataKey()) === item) {\r\n result = $item;\r\n return false\r\n }\r\n }));\r\n return result\r\n },\r\n _getIndexByItem: function(item) {\r\n return this.option(\"items\").indexOf(item)\r\n },\r\n _itemOptionChanged: function(item, property, value, oldValue) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n if (!this.constructor.ItemClass.getInstance($item).setDataField(property, value)) {\r\n this._refreshItem($item, item)\r\n }\r\n var isDisabling = \"disabled\" === property && value;\r\n if (isDisabling) {\r\n this._resetItemFocus($item)\r\n }\r\n },\r\n _resetItemFocus($item) {\r\n if ($item.is(this.option(\"focusedElement\"))) {\r\n this.option(\"focusedElement\", null)\r\n }\r\n },\r\n _refreshItem: function($item) {\r\n var itemData = this._getItemData($item);\r\n var index = $item.data(this._itemIndexKey());\r\n this._renderItem(this._renderedItemsCount + index, itemData, null, $item)\r\n },\r\n _updateParentActiveDescendant: noop,\r\n _optionChanged: function(args) {\r\n if (\"items\" === args.name) {\r\n var matches = args.fullName.match(ITEM_PATH_REGEX);\r\n if (matches && matches.length) {\r\n var property = matches[matches.length - 1];\r\n var itemPath = args.fullName.replace(\".\" + property, \"\");\r\n var item = this.option(itemPath);\r\n this._itemOptionChanged(item, property, args.value, args.previousValue);\r\n return\r\n }\r\n }\r\n switch (args.name) {\r\n case \"items\":\r\n case \"_itemAttributes\":\r\n case \"itemTemplateProperty\":\r\n case \"useItemTextAsTitle\":\r\n this._cleanRenderedItems();\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n this._refreshDataSource();\r\n this._renderEmptyMessage();\r\n break;\r\n case \"noDataText\":\r\n this._renderEmptyMessage();\r\n break;\r\n case \"itemTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"onItemRendered\":\r\n this._createItemRenderAction();\r\n break;\r\n case \"onItemClick\":\r\n break;\r\n case \"onItemHold\":\r\n case \"itemHoldTimeout\":\r\n this._attachHoldEvent();\r\n break;\r\n case \"onItemContextMenu\":\r\n this._attachContextMenuEvent();\r\n break;\r\n case \"onFocusedItemChanged\":\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n break;\r\n case \"selectOnFocus\":\r\n case \"loopItemFocus\":\r\n case \"focusOnSelectedItem\":\r\n break;\r\n case \"focusedElement\":\r\n this._updateFocusedItemState(args.previousValue, false, true);\r\n this._setFocusedItem($(args.value));\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDefaultItemTemplate();\r\n this._invalidate();\r\n break;\r\n case \"visibleExpr\":\r\n case \"disabledExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _invalidate: function() {\r\n this.option(\"focusedElement\", null);\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _loadNextPage: function() {\r\n var dataSource = this._dataSource;\r\n this._expectNextPageLoading();\r\n dataSource.pageIndex(1 + dataSource.pageIndex());\r\n return dataSource.load()\r\n },\r\n _expectNextPageLoading: function() {\r\n this._startIndexForAppendedItems = 0\r\n },\r\n _expectLastItemLoading: function() {\r\n this._startIndexForAppendedItems = -1\r\n },\r\n _forgetNextPageLoading: function() {\r\n this._startIndexForAppendedItems = null\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && items && this._shouldAppendItems()) {\r\n this._renderedItemsCount = items.length;\r\n if (!this._isLastPage() || -1 !== this._startIndexForAppendedItems) {\r\n this.option().items = items.concat(newItems.slice(this._startIndexForAppendedItems))\r\n }\r\n this._forgetNextPageLoading();\r\n this._refreshContent()\r\n } else {\r\n this.option(\"items\", newItems.slice())\r\n }\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n this.option(\"items\", this.option(\"items\"))\r\n },\r\n _shouldAppendItems: function() {\r\n return null != this._startIndexForAppendedItems && this._allowDynamicItemsAppend()\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return false\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n this._cleanItemContainer()\r\n },\r\n _cleanItemContainer: function() {\r\n $(this._itemContainer()).empty()\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._itemFocusTimeout)\r\n },\r\n _refresh: function() {\r\n this._cleanRenderedItems();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _itemContainer: function() {\r\n return this.$element()\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemContentClass: function() {\r\n return this._itemClass() + CONTENT_CLASS_POSTFIX\r\n },\r\n _selectedItemClass: function() {\r\n return SELECTED_ITEM_CLASS\r\n },\r\n _itemResponseWaitClass: function() {\r\n return ITEM_RESPONSE_WAIT_CLASS\r\n },\r\n _itemSelector: function() {\r\n return \".\" + this._itemClass()\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _itemIndexKey: function() {\r\n return ITEM_INDEX_KEY\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().find(this._itemSelector())\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n this.$element().addClass(COLLECTION_CLASS);\r\n this._prepareContent()\r\n },\r\n _prepareContent: deferRenderer((function() {\r\n this._renderContentImpl()\r\n })),\r\n _renderContent: function() {\r\n this._fireContentReadyAction()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._attachContextMenuEvent()\r\n },\r\n _attachClickEvent: function() {\r\n var itemSelector = this._itemSelector();\r\n var clickEventNamespace = addNamespace(clickEventName, this.NAME);\r\n var pointerDownEventNamespace = addNamespace(pointerEvents.down, this.NAME);\r\n var that = this;\r\n var pointerDownAction = new Action((function(args) {\r\n var event = args.event;\r\n that._itemPointerDownHandler(event)\r\n }));\r\n eventsEngine.off(this._itemContainer(), clickEventNamespace, itemSelector);\r\n eventsEngine.off(this._itemContainer(), pointerDownEventNamespace, itemSelector);\r\n eventsEngine.on(this._itemContainer(), clickEventNamespace, itemSelector, function(e) {\r\n this._itemClickHandler(e)\r\n }.bind(this));\r\n eventsEngine.on(this._itemContainer(), pointerDownEventNamespace, itemSelector, (function(e) {\r\n pointerDownAction.execute({\r\n element: $(e.target),\r\n event: e\r\n })\r\n }))\r\n },\r\n _itemClickHandler: function(e, args, config) {\r\n this._itemDXEventHandler(e, \"onItemClick\", args, config)\r\n },\r\n _itemPointerDownHandler: function(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n this._itemFocusHandler = function() {\r\n clearTimeout(this._itemFocusTimeout);\r\n this._itemFocusHandler = null;\r\n if (e.isDefaultPrevented()) {\r\n return\r\n }\r\n var $target = $(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n var $closestFocusable = this._closestFocusable($target);\r\n if ($closestItem.length && $closestFocusable && -1 !== inArray($closestFocusable.get(0), this._focusTarget())) {\r\n this.option(\"focusedElement\", getPublicElement($closestItem))\r\n }\r\n }.bind(this);\r\n this._itemFocusTimeout = setTimeout(this._forcePointerDownFocus.bind(this))\r\n },\r\n _closestFocusable: function($target) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n } else {\r\n $target = $target.parent();\r\n while ($target.length && !domAdapter.isDocument($target.get(0))) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n }\r\n $target = $target.parent()\r\n }\r\n }\r\n },\r\n _forcePointerDownFocus: function() {\r\n this._itemFocusHandler && this._itemFocusHandler()\r\n },\r\n _updateFocusState: function() {\r\n this.callBase.apply(this, arguments);\r\n this._forcePointerDownFocus()\r\n },\r\n _attachHoldEvent: function() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(holdEvent.name, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, {\r\n timeout: this._getHoldTimeout()\r\n }, this._itemHoldHandler.bind(this))\r\n },\r\n _getHoldTimeout: function() {\r\n return this.option(\"itemHoldTimeout\")\r\n },\r\n _shouldFireHoldEvent: function() {\r\n return this.hasActionSubscription(\"onItemHold\")\r\n },\r\n _itemHoldHandler: function(e) {\r\n if (this._shouldFireHoldEvent()) {\r\n this._itemDXEventHandler(e, \"onItemHold\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _attachContextMenuEvent: function() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, this._itemContextMenuHandler.bind(this))\r\n },\r\n _shouldFireContextMenuEvent: function() {\r\n return this.hasActionSubscription(\"onItemContextMenu\")\r\n },\r\n _itemContextMenuHandler: function(e) {\r\n if (this._shouldFireContextMenuEvent()) {\r\n this._itemDXEventHandler(e, \"onItemContextMenu\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _renderContentImpl: function() {\r\n var items = this.option(\"items\") || [];\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n },\r\n _renderItems: function(items) {\r\n if (items.length) {\r\n each(items, function(index, itemData) {\r\n this._renderItem(this._renderedItemsCount + index, itemData)\r\n }.bind(this))\r\n }\r\n this._renderEmptyMessage()\r\n },\r\n _renderItem: function(index, itemData, $container, $itemToReplace) {\r\n var _index$item;\r\n var itemIndex = null !== (_index$item = null === index || void 0 === index ? void 0 : index.item) && void 0 !== _index$item ? _index$item : index;\r\n $container = $container || this._itemContainer();\r\n var $itemFrame = this._renderItemFrame(itemIndex, itemData, $container, $itemToReplace);\r\n this._setElementData($itemFrame, itemData, itemIndex);\r\n $itemFrame.attr(this.option(\"_itemAttributes\"));\r\n this._attachItemClickEvent(itemData, $itemFrame);\r\n var $itemContent = this._getItemContent($itemFrame);\r\n var renderContentPromise = this._renderItemContent({\r\n index: itemIndex,\r\n itemData: itemData,\r\n container: getPublicElement($itemContent),\r\n contentClass: this._itemContentClass(),\r\n defaultTemplateName: this.option(\"itemTemplate\")\r\n });\r\n var that = this;\r\n when(renderContentPromise).done((function($itemContent) {\r\n that._postprocessRenderItem({\r\n itemElement: $itemFrame,\r\n itemContent: $itemContent,\r\n itemData: itemData,\r\n itemIndex: itemIndex\r\n });\r\n that._executeItemRenderAction(index, itemData, getPublicElement($itemFrame))\r\n }));\r\n return $itemFrame\r\n },\r\n _getItemContent: function($itemFrame) {\r\n var $itemContent = $itemFrame.find(\".\" + ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n $itemContent.removeClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n return $itemContent\r\n },\r\n _attachItemClickEvent: function(itemData, $itemElement) {\r\n if (!itemData || !itemData.onClick) {\r\n return\r\n }\r\n eventsEngine.on($itemElement, clickEventName, function(e) {\r\n this._itemEventHandlerByHandler($itemElement, itemData.onClick, {\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _renderItemContent: function(args) {\r\n var itemTemplateName = this._getItemTemplateName(args);\r\n var itemTemplate = this._getTemplate(itemTemplateName);\r\n this._addItemContentClasses(args);\r\n var $templateResult = $(this._createItemByTemplate(itemTemplate, args));\r\n if (!$templateResult.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n return args.container\r\n }\r\n return this._renderItemContentByNode(args, $templateResult)\r\n },\r\n _renderItemContentByNode: function(args, $node) {\r\n $(args.container).replaceWith($node);\r\n args.container = getPublicElement($node);\r\n this._addItemContentClasses(args);\r\n return $node\r\n },\r\n _addItemContentClasses: function(args) {\r\n var classes = [ITEM_CLASS + CONTENT_CLASS_POSTFIX, args.contentClass];\r\n $(args.container).addClass(classes.join(\" \"))\r\n },\r\n _appendItemToContainer: function($container, $itemFrame, index) {\r\n $itemFrame.appendTo($container)\r\n },\r\n _renderItemFrame: function(index, itemData, $container, $itemToReplace) {\r\n var $itemFrame = $(\"
\");\r\n new this.constructor.ItemClass($itemFrame, this._itemOptions(), itemData || {});\r\n if ($itemToReplace && $itemToReplace.length) {\r\n $itemToReplace.replaceWith($itemFrame)\r\n } else {\r\n this._appendItemToContainer.call(this, $container, $itemFrame, index)\r\n }\r\n if (this.option(\"useItemTextAsTitle\")) {\r\n var displayValue = this._displayGetter ? this._displayGetter(itemData) : itemData;\r\n $itemFrame.attr(\"title\", displayValue)\r\n }\r\n return $itemFrame\r\n },\r\n _itemOptions: function() {\r\n var that = this;\r\n return {\r\n watchMethod: function() {\r\n return that.option(\"integrationOptions.watchMethod\")\r\n },\r\n owner: that,\r\n fieldGetter: function(field) {\r\n var expr = that.option(field + \"Expr\");\r\n var getter = compileGetter(expr);\r\n return getter\r\n }\r\n }\r\n },\r\n _postprocessRenderItem: noop,\r\n _executeItemRenderAction: function(index, itemData, itemElement) {\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: index,\r\n itemData: itemData\r\n })\r\n },\r\n _setElementData: function(element, data, index) {\r\n element.addClass([ITEM_CLASS, this._itemClass()].join(\" \")).data(this._itemDataKey(), data).data(this._itemIndexKey(), index)\r\n },\r\n _createItemRenderAction: function() {\r\n return this._itemRenderAction = this._createActionByOption(\"onItemRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n })\r\n },\r\n _getItemRenderAction: function() {\r\n return this._itemRenderAction || this._createItemRenderAction()\r\n },\r\n _getItemTemplateName: function(args) {\r\n var data = args.itemData;\r\n var templateProperty = args.templateProperty || this.option(\"itemTemplateProperty\");\r\n var template = data && data[templateProperty];\r\n return template || args.defaultTemplateName\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n return itemTemplate.render({\r\n model: renderArgs.itemData,\r\n container: renderArgs.container,\r\n index: renderArgs.index\r\n })\r\n },\r\n _emptyMessageContainer: function() {\r\n return this._itemContainer()\r\n },\r\n _renderEmptyMessage: function(items) {\r\n items = items || this.option(\"items\");\r\n var noDataText = this.option(\"noDataText\");\r\n var hideNoData = !noDataText || items && items.length || this._isDataSourceLoading();\r\n if (hideNoData && this._$noData) {\r\n this._$noData.remove();\r\n this._$noData = null;\r\n this.setAria(\"label\", void 0)\r\n }\r\n if (!hideNoData) {\r\n this._$noData = this._$noData || $(\"
\").addClass(\"dx-empty-message\");\r\n this._$noData.appendTo(this._emptyMessageContainer()).html(noDataText);\r\n this.setAria(\"label\", noDataText)\r\n }\r\n this.$element().toggleClass(EMPTY_COLLECTION, !hideNoData)\r\n },\r\n _itemDXEventHandler: function(dxEvent, handlerOptionName, actionArgs, actionConfig) {\r\n this._itemEventHandler(dxEvent.target, handlerOptionName, extend(actionArgs, {\r\n event: dxEvent\r\n }), actionConfig)\r\n },\r\n _itemEventHandler: function(initiator, handlerOptionName, actionArgs, actionConfig) {\r\n var action = this._createActionByOption(handlerOptionName, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerByHandler: function(initiator, handler, actionArgs, actionConfig) {\r\n var action = this._createAction(handler, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerImpl: function(initiator, action, actionArgs) {\r\n var $itemElement = this._closestItemElement($(initiator));\r\n var args = extend({}, actionArgs);\r\n return action(extend(actionArgs, this._extendActionArgs($itemElement), args))\r\n },\r\n _extendActionArgs: function($itemElement) {\r\n return {\r\n itemElement: getPublicElement($itemElement),\r\n itemIndex: this._itemElements().index($itemElement),\r\n itemData: this._getItemData($itemElement)\r\n }\r\n },\r\n _closestItemElement: function($element) {\r\n return $($element).closest(this._itemSelector())\r\n },\r\n _getItemData: function(itemElement) {\r\n return $(itemElement).data(this._itemDataKey())\r\n },\r\n _getSummaryItemsWidth: function(items, includeMargin) {\r\n var result = 0;\r\n if (items) {\r\n each(items, (function(_, item) {\r\n result += getOuterWidth(item, includeMargin || false)\r\n }))\r\n }\r\n return result\r\n },\r\n getFocusedItemId: function() {\r\n if (!this._focusedItemId) {\r\n this._focusedItemId = \"dx-\" + new Guid\r\n }\r\n return this._focusedItemId\r\n },\r\n itemElements: function() {\r\n return this._itemElements()\r\n },\r\n itemsContainer: function() {\r\n return this._itemContainer()\r\n }\r\n}).include(DataHelperMixin);\r\nCollectionWidget.ItemClass = CollectionWidgetItem;\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport BaseCollectionWidget from \"./ui.collection_widget.base\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport PlainEditStrategy from \"./ui.collection_widget.edit.strategy.plain\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport {\r\n normalizeLoadResult\r\n} from \"../../data/data_source/utils\";\r\nimport Selection from \"../selection/selection\";\r\nimport {\r\n when,\r\n Deferred,\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nvar ITEM_DELETING_DATA_KEY = \"dxItemDeleting\";\r\nvar NOT_EXISTING_INDEX = -1;\r\nvar indexExists = function(index) {\r\n return index !== NOT_EXISTING_INDEX\r\n};\r\nvar CollectionWidget = BaseCollectionWidget.inherit({\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n selectedItem: true\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectionMode: \"none\",\r\n selectionRequired: false,\r\n selectionByClick: true,\r\n selectedItems: [],\r\n selectedItemKeys: [],\r\n maxFilterLengthInRequest: 1500,\r\n keyExpr: null,\r\n selectedIndex: NOT_EXISTING_INDEX,\r\n selectedItem: null,\r\n onSelectionChanged: null,\r\n onItemReordered: null,\r\n onItemDeleting: null,\r\n onItemDeleted: null\r\n })\r\n },\r\n ctor: function(element, options) {\r\n this._userOptions = options || {};\r\n this.callBase(element, options)\r\n },\r\n _init: function() {\r\n this._initEditStrategy();\r\n this.callBase();\r\n this._initKeyGetter();\r\n this._initSelectionModule()\r\n },\r\n _initKeyGetter: function() {\r\n this._keyGetter = compileGetter(this.option(\"keyExpr\"))\r\n },\r\n _getKeysByItems: function(selectedItems) {\r\n return this._editStrategy.getKeysByItems(selectedItems)\r\n },\r\n _getItemsByKeys: function(selectedItemKeys, selectedItems) {\r\n return this._editStrategy.getItemsByKeys(selectedItemKeys, selectedItems)\r\n },\r\n _getKeyByIndex: function(index) {\r\n return this._editStrategy.getKeyByIndex(index)\r\n },\r\n _getIndexByKey: function(key) {\r\n return this._editStrategy.getIndexByKey(key)\r\n },\r\n _getIndexByItemData: function(itemData) {\r\n return this._editStrategy.getIndexByItemData(itemData)\r\n },\r\n _isKeySpecified: function() {\r\n return !!(this._dataSource && this._dataSource.key())\r\n },\r\n _getCombinedFilter: function() {\r\n return this._dataSource && this._dataSource.filter()\r\n },\r\n key: function() {\r\n if (this.option(\"keyExpr\")) {\r\n return this.option(\"keyExpr\")\r\n }\r\n return this._dataSource && this._dataSource.key()\r\n },\r\n keyOf: function(item) {\r\n var key = item;\r\n var store = this._dataSource && this._dataSource.store();\r\n if (this.option(\"keyExpr\")) {\r\n key = this._keyGetter(item)\r\n } else if (store) {\r\n key = store.keyOf(item)\r\n }\r\n return key\r\n },\r\n _nullValueSelectionSupported: function() {\r\n return false\r\n },\r\n _initSelectionModule: function() {\r\n var that = this;\r\n var itemsGetter = that._editStrategy.itemsGetter;\r\n this._selection = new Selection({\r\n allowNullValue: this._nullValueSelectionSupported(),\r\n mode: this.option(\"selectionMode\"),\r\n maxFilterLengthInRequest: this.option(\"maxFilterLengthInRequest\"),\r\n equalByReference: !this._isKeySpecified(),\r\n onSelectionChanged: function(args) {\r\n if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n that.option(\"selectedItems\", that._getItemsByKeys(args.selectedItemKeys, args.selectedItems));\r\n that._updateSelectedItems(args)\r\n }\r\n },\r\n filter: that._getCombinedFilter.bind(that),\r\n totalCount: function() {\r\n var items = that.option(\"items\");\r\n var dataSource = that._dataSource;\r\n return dataSource && dataSource.totalCount() >= 0 ? dataSource.totalCount() : that._getItemsCount(items)\r\n },\r\n key: that.key.bind(that),\r\n keyOf: that.keyOf.bind(that),\r\n load: function(options) {\r\n if (that._dataSource) {\r\n var loadOptions = that._dataSource.loadOptions();\r\n options.customQueryParams = loadOptions.customQueryParams;\r\n options.userData = that._dataSource._userData\r\n }\r\n var store = that._dataSource && that._dataSource.store();\r\n if (store) {\r\n return store.load(options).done((function(loadResult) {\r\n if (that._disposed) {\r\n return\r\n }\r\n var items = normalizeLoadResult(loadResult).data;\r\n that._dataSource._applyMapFunction(items)\r\n }))\r\n } else {\r\n return (new Deferred).resolve(this.plainItems())\r\n }\r\n },\r\n dataFields: function() {\r\n return that._dataSource && that._dataSource.select()\r\n },\r\n plainItems: itemsGetter.bind(that._editStrategy)\r\n })\r\n },\r\n _getItemsCount: function(items) {\r\n return items.reduce((itemsCount, item) => itemsCount + (item.items ? this._getItemsCount(item.items) : 1), 0)\r\n },\r\n _initEditStrategy: function() {\r\n var Strategy = PlainEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n },\r\n _getSelectedItemIndices: function(keys) {\r\n var that = this;\r\n var indices = [];\r\n keys = keys || this._selection.getSelectedItemKeys();\r\n that._editStrategy.beginCache();\r\n each(keys, (function(_, key) {\r\n var selectedIndex = that._getIndexByKey(key);\r\n if (indexExists(selectedIndex)) {\r\n indices.push(selectedIndex)\r\n }\r\n }));\r\n that._editStrategy.endCache();\r\n return indices\r\n },\r\n _initMarkup: function() {\r\n this._rendering = true;\r\n if (!this._dataSource || !this._dataSource.isLoading()) {\r\n this._syncSelectionOptions().done(() => this._normalizeSelectedItems())\r\n }\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._rendering = false\r\n },\r\n _fireContentReadyAction: function() {\r\n this._rendering = false;\r\n this._rendered = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _syncSelectionOptions: function(byOption) {\r\n byOption = byOption || this._chooseSelectOption();\r\n var selectedItem;\r\n var selectedIndex;\r\n var selectedItemKeys;\r\n var selectedItems;\r\n switch (byOption) {\r\n case \"selectedIndex\":\r\n selectedItem = this._editStrategy.getItemDataByIndex(this.option(\"selectedIndex\"));\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n break;\r\n case \"selectedItems\":\r\n selectedItems = this.option(\"selectedItems\") || [];\r\n selectedIndex = selectedItems.length ? this._editStrategy.getIndexByItemData(selectedItems[0]) : NOT_EXISTING_INDEX;\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItems[0]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems(selectedItems));\r\n break;\r\n case \"selectedItem\":\r\n selectedItem = this.option(\"selectedItem\");\r\n selectedIndex = this._editStrategy.getIndexByItemData(selectedItem);\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", NOT_EXISTING_INDEX)\r\n }\r\n break;\r\n case \"selectedItemKeys\":\r\n selectedItemKeys = this.option(\"selectedItemKeys\");\r\n if (this.option(\"selectionRequired\")) {\r\n var selectedItemIndex = this._getIndexByKey(selectedItemKeys[0]);\r\n if (!indexExists(selectedItemIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n }\r\n return this._selection.setSelection(selectedItemKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n _chooseSelectOption: function() {\r\n var optionName = \"selectedIndex\";\r\n var isOptionDefined = function(optionName) {\r\n var optionValue = this.option(optionName);\r\n var length = isDefined(optionValue) && optionValue.length;\r\n return length || optionName in this._userOptions\r\n }.bind(this);\r\n if (isOptionDefined(\"selectedItems\")) {\r\n optionName = \"selectedItems\"\r\n } else if (isOptionDefined(\"selectedItem\")) {\r\n optionName = \"selectedItem\"\r\n } else if (isOptionDefined(\"selectedItemKeys\")) {\r\n optionName = \"selectedItemKeys\"\r\n }\r\n return optionName\r\n },\r\n _compareKeys: function(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _normalizeSelectedItems: function() {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n } else if (\"single\" === this.option(\"selectionMode\")) {\r\n var newSelection = this.option(\"selectedItems\");\r\n if (newSelection.length > 1 || !newSelection.length && this.option(\"selectionRequired\") && this.option(\"items\") && this.option(\"items\").length) {\r\n var currentSelection = this._selection.getSelectedItems();\r\n var normalizedSelection = void 0 === newSelection[0] ? currentSelection[0] : newSelection[0];\r\n if (void 0 === normalizedSelection) {\r\n normalizedSelection = this._editStrategy.itemsGetter()[0]\r\n }\r\n if (this.option(\"grouped\") && normalizedSelection && normalizedSelection.items) {\r\n normalizedSelection.items = [normalizedSelection.items[0]]\r\n }\r\n this._selection.setSelection(this._getKeysByItems([normalizedSelection]));\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [normalizedSelection]);\r\n return this._syncSelectionOptions(\"selectedItems\")\r\n } else {\r\n this._selection.setSelection(this._getKeysByItems(newSelection))\r\n }\r\n } else {\r\n var newKeys = this._getKeysByItems(this.option(\"selectedItems\"));\r\n var oldKeys = this._selection.getSelectedItemKeys();\r\n if (!this._compareKeys(oldKeys, newKeys)) {\r\n this._selection.setSelection(newKeys)\r\n }\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n _itemClickHandler: function(e) {\r\n var itemSelectPromise = (new Deferred).resolve();\r\n var callBase = this.callBase;\r\n this._createAction(function(e) {\r\n var _this$_itemSelectHand;\r\n itemSelectPromise = null !== (_this$_itemSelectHand = this._itemSelectHandler(e.event)) && void 0 !== _this$_itemSelectHand ? _this$_itemSelectHand : itemSelectPromise\r\n }.bind(this), {\r\n validatingTargetName: \"itemElement\"\r\n })({\r\n itemElement: $(e.currentTarget),\r\n event: e\r\n });\r\n itemSelectPromise.always(() => {\r\n callBase.apply(this, arguments)\r\n })\r\n },\r\n _itemSelectHandler: function(e) {\r\n var _itemSelectPromise;\r\n var itemSelectPromise;\r\n if (!this.option(\"selectionByClick\")) {\r\n return\r\n }\r\n var $itemElement = e.currentTarget;\r\n if (this.isItemSelected($itemElement)) {\r\n this.unselectItem(e.currentTarget)\r\n } else {\r\n itemSelectPromise = this.selectItem(e.currentTarget)\r\n }\r\n return null === (_itemSelectPromise = itemSelectPromise) || void 0 === _itemSelectPromise ? void 0 : _itemSelectPromise.promise()\r\n },\r\n _selectedItemElement: function(index) {\r\n return this._itemElements().eq(index)\r\n },\r\n _postprocessRenderItem: function(args) {\r\n if (\"none\" !== this.option(\"selectionMode\")) {\r\n var $itemElement = $(args.itemElement);\r\n var normalizedItemIndex = this._editStrategy.getNormalizedIndex($itemElement);\r\n var isItemSelected = this._isItemSelected(normalizedItemIndex);\r\n this._processSelectableItem($itemElement, isItemSelected)\r\n }\r\n },\r\n _processSelectableItem: function($itemElement, isSelected) {\r\n $itemElement.toggleClass(this._selectedItemClass(), isSelected);\r\n this._setAriaSelected($itemElement, String(isSelected))\r\n },\r\n _updateSelectedItems: function(args) {\r\n var that = this;\r\n var addedItemKeys = args.addedItemKeys;\r\n var removedItemKeys = args.removedItemKeys;\r\n if (that._rendered && (addedItemKeys.length || removedItemKeys.length)) {\r\n var selectionChangePromise = that._selectionChangePromise;\r\n if (!that._rendering) {\r\n var addedSelection = [];\r\n var normalizedIndex;\r\n var removedSelection = [];\r\n that._editStrategy.beginCache();\r\n for (var i = 0; i < addedItemKeys.length; i++) {\r\n normalizedIndex = that._getIndexByKey(addedItemKeys[i]);\r\n addedSelection.push(normalizedIndex);\r\n that._addSelection(normalizedIndex)\r\n }\r\n for (var _i = 0; _i < removedItemKeys.length; _i++) {\r\n normalizedIndex = that._getIndexByKey(removedItemKeys[_i]);\r\n removedSelection.push(normalizedIndex);\r\n that._removeSelection(normalizedIndex)\r\n }\r\n that._editStrategy.endCache();\r\n that._updateSelection(addedSelection, removedSelection)\r\n }\r\n when(selectionChangePromise).done((function() {\r\n that._fireSelectionChangeEvent(args.addedItems, args.removedItems)\r\n }))\r\n }\r\n },\r\n _fireSelectionChangeEvent: function(addedItems, removedItems) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n _updateSelection: noop,\r\n _setAriaSelected: function($target, value) {\r\n this.setAria(\"selected\", value, $target)\r\n },\r\n _removeSelection: function(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, false);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", false)\r\n }\r\n },\r\n _addSelection: function(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, true);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", true)\r\n }\r\n },\r\n _isItemSelected: function(index) {\r\n var key = this._getKeyByIndex(index);\r\n return this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"selectionMode\":\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n if (!args.value || Array.isArray(args.value) && !args.value.length) {\r\n this.option(\"selectedItemKeys\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n case \"selectedItems\":\r\n case \"selectedItemKeys\":\r\n this._syncSelectionOptions(args.name).done(() => this._normalizeSelectedItems());\r\n break;\r\n case \"keyExpr\":\r\n this._initKeyGetter();\r\n break;\r\n case \"selectionRequired\":\r\n this._normalizeSelectedItems();\r\n break;\r\n case \"selectionByClick\":\r\n case \"onSelectionChanged\":\r\n case \"onItemDeleting\":\r\n case \"onItemDeleted\":\r\n case \"onItemReordered\":\r\n case \"maxFilterLengthInRequest\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearSelectedItems: function() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n },\r\n _waitDeletingPrepare: function($itemElement) {\r\n if ($itemElement.data(ITEM_DELETING_DATA_KEY)) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, true);\r\n var deferred = new Deferred;\r\n var deletingActionArgs = {\r\n cancel: false\r\n };\r\n var deletePromise = this._itemEventHandler($itemElement, \"onItemDeleting\", deletingActionArgs, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n when(deletePromise).always(function(value) {\r\n var deletePromiseExists = !deletePromise;\r\n var deletePromiseResolved = !deletePromiseExists && \"resolved\" === deletePromise.state();\r\n var argumentsSpecified = !!arguments.length;\r\n var shouldDelete = deletePromiseExists || deletePromiseResolved && !argumentsSpecified || deletePromiseResolved && value;\r\n when(fromPromise(deletingActionArgs.cancel)).always((function() {\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, false)\r\n })).done((function(cancel) {\r\n shouldDelete && !cancel ? deferred.resolve() : deferred.reject()\r\n })).fail(deferred.reject)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n _deleteItemFromDS: function($item) {\r\n if (!this._dataSource) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var deferred = new Deferred;\r\n var disabledState = this.option(\"disabled\");\r\n var dataStore = this._dataSource.store();\r\n this.option(\"disabled\", true);\r\n if (!dataStore.remove) {\r\n throw errors.Error(\"E1011\")\r\n }\r\n dataStore.remove(dataStore.keyOf(this._getItemData($item))).done((function(key) {\r\n if (void 0 !== key) {\r\n deferred.resolve()\r\n } else {\r\n deferred.reject()\r\n }\r\n })).fail((function() {\r\n deferred.reject()\r\n }));\r\n deferred.always(function() {\r\n this.option(\"disabled\", disabledState)\r\n }.bind(this));\r\n return deferred\r\n },\r\n _tryRefreshLastPage: function() {\r\n var deferred = new Deferred;\r\n if (this._isLastPage() || this.option(\"grouped\")) {\r\n deferred.resolve()\r\n } else {\r\n this._refreshLastPage().done((function() {\r\n deferred.resolve()\r\n }))\r\n }\r\n return deferred.promise()\r\n },\r\n _refreshLastPage: function() {\r\n this._expectLastItemLoading();\r\n return this._dataSource.load()\r\n },\r\n _updateSelectionAfterDelete: function(index) {\r\n var key = this._getKeyByIndex(index);\r\n this._selection.deselect([key])\r\n },\r\n _updateIndicesAfterIndex: function(index) {\r\n var itemElements = this._itemElements();\r\n for (var i = index + 1; i < itemElements.length; i++) {\r\n $(itemElements[i]).data(this._itemIndexKey(), i - 1)\r\n }\r\n },\r\n _simulateOptionChange: function(optionName) {\r\n var optionValue = this.option(optionName);\r\n if (optionValue instanceof DataSource) {\r\n return\r\n }\r\n this._optionChangedAction({\r\n name: optionName,\r\n fullName: optionName,\r\n value: optionValue\r\n })\r\n },\r\n isItemSelected: function(itemElement) {\r\n return this._isItemSelected(this._editStrategy.getNormalizedIndex(itemElement))\r\n },\r\n selectItem: function(itemElement) {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n return\r\n }\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (this._selection.isItemSelected(key)) {\r\n return\r\n }\r\n if (\"single\" === this.option(\"selectionMode\")) {\r\n return this._selection.setSelection([key])\r\n } else {\r\n var selectedItemKeys = this.option(\"selectedItemKeys\") || [];\r\n return this._selection.setSelection([...selectedItemKeys, key], [key])\r\n }\r\n },\r\n unselectItem: function(itemElement) {\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var selectedItemKeys = this._selection.getSelectedItemKeys();\r\n if (this.option(\"selectionRequired\") && selectedItemKeys.length <= 1) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (!this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })) {\r\n return\r\n }\r\n this._selection.deselect([key])\r\n },\r\n _deleteItemElementByIndex: function(index) {\r\n this._updateSelectionAfterDelete(index);\r\n this._updateIndicesAfterIndex(index);\r\n this._editStrategy.deleteItemAtIndex(index)\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n var changingOption = this._dataSource ? \"dataSource\" : \"items\";\r\n this._simulateOptionChange(changingOption);\r\n this._itemEventHandler($item, \"onItemDeleted\", deletedActionArgs, {\r\n beforeExecute: function() {\r\n $item.remove()\r\n },\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._renderEmptyMessage()\r\n },\r\n deleteItem: function(itemElement) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n var index = this._editStrategy.getNormalizedIndex(itemElement);\r\n var itemResponseWaitClass = this._itemResponseWaitClass();\r\n if (indexExists(index)) {\r\n this._waitDeletingPrepare($item).done((function() {\r\n $item.addClass(itemResponseWaitClass);\r\n var deletedActionArgs = that._extendActionArgs($item);\r\n that._deleteItemFromDS($item).done((function() {\r\n that._deleteItemElementByIndex(index);\r\n that._afterItemElementDeleted($item, deletedActionArgs);\r\n that._tryRefreshLastPage().done((function() {\r\n deferred.resolveWith(that)\r\n }))\r\n })).fail((function() {\r\n $item.removeClass(itemResponseWaitClass);\r\n deferred.rejectWith(that)\r\n }))\r\n })).fail((function() {\r\n deferred.rejectWith(that)\r\n }))\r\n } else {\r\n deferred.rejectWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reorderItem: function(itemElement, toItemElement) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n var strategy = this._editStrategy;\r\n var $movingItem = strategy.getItemElement(itemElement);\r\n var $destinationItem = strategy.getItemElement(toItemElement);\r\n var movingIndex = strategy.getNormalizedIndex(itemElement);\r\n var destinationIndex = strategy.getNormalizedIndex(toItemElement);\r\n var changingOption = this._dataSource ? \"dataSource\" : \"items\";\r\n var canMoveItems = indexExists(movingIndex) && indexExists(destinationIndex) && movingIndex !== destinationIndex;\r\n if (canMoveItems) {\r\n deferred.resolveWith(this)\r\n } else {\r\n deferred.rejectWith(this)\r\n }\r\n return deferred.promise().done((function() {\r\n $destinationItem[strategy.itemPlacementFunc(movingIndex, destinationIndex)]($movingItem);\r\n strategy.moveItemAtIndexToIndex(movingIndex, destinationIndex);\r\n this._updateIndicesAfterIndex(movingIndex);\r\n that.option(\"selectedItems\", that._getItemsByKeys(that._selection.getSelectedItemKeys(), that._selection.getSelectedItems()));\r\n if (\"items\" === changingOption) {\r\n that._simulateOptionChange(changingOption)\r\n }\r\n that._itemEventHandler($movingItem, \"onItemReordered\", {\r\n fromIndex: strategy.getIndex(movingIndex),\r\n toIndex: strategy.getIndex(destinationIndex)\r\n }, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }))\r\n }\r\n});\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/core/templates/template_engine_registry.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n isString\r\n} from \"../utils/type\";\r\nimport errors from \"../errors\";\r\nvar templateEngines = {};\r\nvar currentTemplateEngine;\r\nexport function registerTemplateEngine(name, templateEngine) {\r\n templateEngines[name] = templateEngine\r\n}\r\nexport function setTemplateEngine(templateEngine) {\r\n if (isString(templateEngine)) {\r\n currentTemplateEngine = templateEngines[templateEngine];\r\n if (!currentTemplateEngine) {\r\n throw errors.Error(\"E0020\", templateEngine)\r\n }\r\n } else {\r\n currentTemplateEngine = templateEngine\r\n }\r\n}\r\nexport function getCurrentTemplateEngine() {\r\n return currentTemplateEngine\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/template_engines.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n extractTemplateMarkup\r\n} from \"../utils/dom\";\r\nimport {\r\n registerTemplateEngine\r\n} from \"./template_engine_registry\";\r\nregisterTemplateEngine(\"jquery-tmpl\", {\r\n compile: element => extractTemplateMarkup(element),\r\n render: (template, data) => jQuery.tmpl(template, data)\r\n});\r\nregisterTemplateEngine(\"jsrender\", {\r\n compile: element => (jQuery ? jQuery : jsrender).templates(extractTemplateMarkup(element)),\r\n render: (template, data) => template.render(data)\r\n});\r\nregisterTemplateEngine(\"mustache\", {\r\n compile: element => extractTemplateMarkup(element),\r\n render: (template, data) => Mustache.render(template, data)\r\n});\r\nregisterTemplateEngine(\"hogan\", {\r\n compile: element => Hogan.compile(extractTemplateMarkup(element)),\r\n render: (template, data) => template.render(data)\r\n});\r\nregisterTemplateEngine(\"underscore\", {\r\n compile: element => _.template(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\nregisterTemplateEngine(\"handlebars\", {\r\n compile: element => Handlebars.compile(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\nregisterTemplateEngine(\"doT\", {\r\n compile: element => doT.template(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\n","/**\r\n * DevExtreme (esm/core/templates/template.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nimport {\r\n getCurrentTemplateEngine,\r\n registerTemplateEngine,\r\n setTemplateEngine\r\n} from \"./template_engine_registry\";\r\nimport \"./template_engines\";\r\nregisterTemplateEngine(\"default\", {\r\n compile: element => normalizeTemplateElement(element),\r\n render: (template, model, index) => template.clone()\r\n});\r\nsetTemplateEngine(\"default\");\r\nexport class Template extends TemplateBase {\r\n constructor(element) {\r\n super();\r\n this._element = element\r\n }\r\n _renderCore(options) {\r\n var transclude = options.transclude;\r\n if (!transclude && !this._compiledTemplate) {\r\n this._compiledTemplate = getCurrentTemplateEngine().compile(this._element)\r\n }\r\n return $(\"
\").append(transclude ? this._element : getCurrentTemplateEngine().render(this._compiledTemplate, options.model, options.index)).contents()\r\n }\r\n source() {\r\n return $(this._element).clone()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/template_manager.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport config from \"../config\";\r\nimport devices from \"../devices\";\r\nimport Errors from \"../errors\";\r\nimport $ from \"../renderer\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../templates/child_default_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../templates/empty_template\";\r\nimport {\r\n Template\r\n} from \"../templates/template\";\r\nimport {\r\n TemplateBase\r\n} from \"../templates/template_base\";\r\nimport {\r\n groupBy\r\n} from \"./array\";\r\nimport {\r\n findBestMatches\r\n} from \"./common\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"./dom\";\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n isFunction,\r\n isRenderer\r\n} from \"./type\";\r\nexport var findTemplates = (element, name) => {\r\n var templates = $(element).contents().filter(\"[\".concat(\"data-options\", '*=\"').concat(name, '\"]'));\r\n return [].slice.call(templates).map(element => {\r\n var optionsString = $(element).attr(\"data-options\") || \"\";\r\n return {\r\n element: element,\r\n options: config().optionsParser(optionsString)[name]\r\n }\r\n }).filter(template => !!template.options)\r\n};\r\nexport var suitableTemplatesByName = rawTemplates => {\r\n var templatesMap = groupBy(rawTemplates, template => template.options.name);\r\n if (templatesMap[void 0]) {\r\n throw Errors.Error(\"E0023\")\r\n }\r\n var result = {};\r\n Object.keys(templatesMap).forEach(name => {\r\n var _findBestMatches$;\r\n var suitableTemplate = null === (_findBestMatches$ = findBestMatches(devices.current(), templatesMap[name], template => template.options)[0]) || void 0 === _findBestMatches$ ? void 0 : _findBestMatches$.element;\r\n if (suitableTemplate) {\r\n result[name] = suitableTemplate\r\n }\r\n });\r\n return result\r\n};\r\nexport var addOneRenderedCall = template => {\r\n var render = template.render.bind(template);\r\n return extend({}, template, {\r\n render(options) {\r\n var templateResult = render(options);\r\n options && options.onRendered && options.onRendered();\r\n return templateResult\r\n }\r\n })\r\n};\r\nexport var getNormalizedTemplateArgs = options => {\r\n var args = [];\r\n if (\"model\" in options) {\r\n args.push(options.model)\r\n }\r\n if (\"index\" in options) {\r\n args.push(options.index)\r\n }\r\n args.push(options.container);\r\n return args\r\n};\r\nexport var validateTemplateSource = templateSource => \"string\" === typeof templateSource ? normalizeTemplateElement(templateSource) : templateSource;\r\nexport var templateKey = templateSource => isRenderer(templateSource) && templateSource[0] || templateSource;\r\nexport var defaultCreateElement = element => new Template(element);\r\nexport var acquireIntegrationTemplate = (templateSource, templates, isAsyncTemplate, skipTemplates) => {\r\n var integrationTemplate = null;\r\n if (!skipTemplates || -1 === skipTemplates.indexOf(templateSource)) {\r\n integrationTemplate = templates[templateSource];\r\n if (integrationTemplate && !(integrationTemplate instanceof TemplateBase) && !isAsyncTemplate) {\r\n integrationTemplate = addOneRenderedCall(integrationTemplate)\r\n }\r\n }\r\n return integrationTemplate\r\n};\r\nexport var acquireTemplate = (templateSource, createTemplate, templates, isAsyncTemplate, skipTemplates, defaultTemplates) => {\r\n if (null == templateSource) {\r\n return new EmptyTemplate\r\n }\r\n if (templateSource instanceof ChildDefaultTemplate) {\r\n return defaultTemplates[templateSource.name]\r\n }\r\n if (templateSource instanceof TemplateBase) {\r\n return templateSource\r\n }\r\n if (isFunction(templateSource.render) && !isRenderer(templateSource)) {\r\n return isAsyncTemplate ? templateSource : addOneRenderedCall(templateSource)\r\n }\r\n if (templateSource.nodeType || isRenderer(templateSource)) {\r\n return createTemplate($(templateSource))\r\n }\r\n return acquireIntegrationTemplate(templateSource, templates, isAsyncTemplate, skipTemplates) || defaultTemplates[templateSource] || createTemplate(templateSource)\r\n};\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initDxExtensionComponent = void 0;\nvar vue_1 = require(\"vue\");\nvar component_1 = require(\"./component\");\nvar vue_helper_1 = require(\"./vue-helper\");\nfunction initDxExtensionComponent() {\n return vue_1.defineComponent({\n extends: component_1.initBaseComponent(),\n created: function () {\n var nodeOptions = vue_helper_1.getNodeOptions(this);\n nodeOptions.$_isExtension = true;\n nodeOptions.$_attachTo = this.attachTo.bind(this);\n },\n mounted: function () {\n this.$el.setAttribute(\"isExtension\", \"true\");\n var componentOptions = vue_helper_1.getNodeOptions(this);\n if (componentOptions && componentOptions.$_hasOwner) {\n return;\n }\n this.attachTo(this.$el);\n },\n methods: {\n attachTo: function (element) {\n this.$_createWidget(element);\n }\n }\n });\n}\nexports.initDxExtensionComponent = initDxExtensionComponent;\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pullAllChildren = exports.isFragment = void 0;\nvar vue_helper_1 = require(\"./vue-helper\");\nfunction pullAllChildren(directChildren, allChildren, config) {\n if (!directChildren || directChildren.length === 0) {\n return;\n }\n pullConfigComponents(directChildren, allChildren, config);\n}\nexports.pullAllChildren = pullAllChildren;\nfunction isFragment(node) {\n var patchFlag = node.patchFlag;\n return patchFlag === 128 /* KEYED_FRAGMENT */\n || patchFlag === 256 /* UNKEYED_FRAGMENT */\n || patchFlag === 64 /* STABLE_FRAGMENT */;\n}\nexports.isFragment = isFragment;\nfunction pullConfigComponents(children, nodes, ownerConfig) {\n children.forEach(function (node) {\n if (isFragment(node) && Array.isArray(node.children)) {\n pullConfigComponents(node.children, nodes, ownerConfig);\n }\n if (!isFragment(node)) {\n nodes.push(node);\n }\n if (!node) {\n return;\n }\n var componentInfo = vue_helper_1.getComponentInfo(node);\n if (!componentInfo || !componentInfo.$_optionName) {\n return;\n }\n var componentChildren = vue_helper_1.configurationChildren(node);\n var initialValues = __assign(__assign({}, componentInfo.$_predefinedProps), vue_helper_1.getNormalizedProps(node.props || {}));\n var config = ownerConfig.createNested(componentInfo.$_optionName, initialValues, componentInfo.$_isCollectionItem, componentInfo.$_expectedChildren);\n node.$_config = config;\n node.$_innerChanges = {};\n if (componentChildren) {\n pullConfigComponents(componentChildren, nodes, config);\n }\n });\n}\n","/**\r\n * DevExtreme (esm/core/utils/ready_callbacks.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport domAdapter from \"../dom_adapter\";\r\nimport injector from \"./dependency_injector\";\r\nimport {\r\n hasWindow\r\n} from \"./window\";\r\nimport callOnce from \"./call_once\";\r\nvar callbacks = [];\r\nvar subscribeReady = callOnce(() => {\r\n var removeListener = domAdapter.listen(domAdapter.getDocument(), \"DOMContentLoaded\", () => {\r\n readyCallbacks.fire();\r\n removeListener()\r\n })\r\n});\r\nvar readyCallbacks = {\r\n add: callback => {\r\n var windowExists = hasWindow();\r\n if (windowExists && \"loading\" !== domAdapter.getReadyState()) {\r\n callback()\r\n } else {\r\n callbacks.push(callback);\r\n windowExists && subscribeReady()\r\n }\r\n },\r\n fire: () => {\r\n callbacks.forEach(callback => callback());\r\n callbacks = []\r\n }\r\n};\r\nexport default injector(readyCallbacks);\r\n","export const InfernoEffectHost = {\n lockCount: 0,\n lock() {\n this.lockCount++;\n },\n callbacks: [],\n callEffects() {\n this.lockCount--;\n if (this.lockCount < 0) {\n throw new Error('Unexpected Effect Call');\n }\n if (this.lockCount === 0) {\n const effects = this.callbacks;\n this.callbacks = [];\n effects.forEach((callback) => callback());\n }\n },\n};\n","import { Component, findDOMfromVNode } from 'inferno';\nimport { InfernoEffectHost } from './effect_host';\nconst areObjectsEqual = (firstObject, secondObject) => {\n const bothAreObjects = firstObject instanceof Object && secondObject instanceof Object;\n if (!bothAreObjects) {\n return firstObject === secondObject;\n }\n const firstObjectKeys = Object.keys(firstObject);\n const secondObjectKeys = Object.keys(secondObject);\n if (firstObjectKeys.length !== secondObjectKeys.length) {\n return false;\n }\n const hasDifferentElement = firstObjectKeys.some((key) => firstObject[key] !== secondObject[key]);\n return !hasDifferentElement;\n};\nexport class BaseInfernoComponent extends Component {\n constructor() {\n super(...arguments);\n this._pendingContext = this.context;\n }\n componentWillReceiveProps(_, context) {\n this._pendingContext = context !== null && context !== void 0 ? context : {};\n }\n shouldComponentUpdate(nextProps, nextState) {\n return (!areObjectsEqual(this.props, nextProps)\n || !areObjectsEqual(this.state, nextState)\n || !areObjectsEqual(this.context, this._pendingContext));\n }\n}\nexport class InfernoComponent extends BaseInfernoComponent {\n constructor() {\n super(...arguments);\n this._effects = [];\n }\n createEffects() {\n return [];\n }\n updateEffects() { }\n componentWillMount() {\n InfernoEffectHost.lock();\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n componentWillUpdate(_nextProps, _nextState, _context) {\n InfernoEffectHost.lock();\n }\n componentDidMount() {\n InfernoEffectHost.callbacks.push(() => { this._effects = this.createEffects(); });\n InfernoEffectHost.callEffects();\n }\n componentDidUpdate() {\n InfernoEffectHost.callbacks.push(() => this.updateEffects());\n InfernoEffectHost.callEffects();\n }\n destroyEffects() {\n this._effects.forEach((e) => e.dispose());\n }\n componentWillUnmount() {\n this.destroyEffects();\n }\n}\nexport class InfernoWrapperComponent extends InfernoComponent {\n constructor() {\n super(...arguments);\n this.vDomElement = null;\n }\n vDomUpdateClasses() {\n const el = this.vDomElement;\n const currentClasses = el.className.length\n ? el.className.split(' ')\n : [];\n const addedClasses = currentClasses.filter((className) => el.dxClasses.previous.indexOf(className) < 0);\n const removedClasses = el.dxClasses.previous.filter((className) => currentClasses.indexOf(className) < 0);\n addedClasses.forEach((value) => {\n const indexInRemoved = el.dxClasses.removed.indexOf(value);\n if (indexInRemoved > -1) {\n el.dxClasses.removed.splice(indexInRemoved, 1);\n }\n else {\n el.dxClasses.added.push(value);\n }\n });\n removedClasses.forEach((value) => {\n const indexInAdded = el.dxClasses.added.indexOf(value);\n if (indexInAdded > -1) {\n el.dxClasses.added.splice(indexInAdded, 1);\n }\n else {\n el.dxClasses.removed.push(value);\n }\n });\n }\n componentDidMount() {\n const el = findDOMfromVNode(this.$LI, true);\n this.vDomElement = el;\n super.componentDidMount();\n el.dxClasses = el.dxClasses || {\n removed: [], added: [], previous: [],\n };\n el.dxClasses.previous = (el === null || el === void 0 ? void 0 : el.className.length) ? el.className.split(' ')\n : [];\n }\n componentDidUpdate() {\n super.componentDidUpdate();\n const el = this.vDomElement;\n if (el !== null) {\n el.dxClasses.added.forEach((className) => el.classList.add(className));\n el.dxClasses.removed.forEach((className) => el.classList.remove(className));\n el.dxClasses.previous = el.className.length\n ? el.className.split(' ')\n : [];\n }\n }\n shouldComponentUpdate(nextProps, nextState) {\n const shouldUpdate = super.shouldComponentUpdate(nextProps, nextState);\n if (shouldUpdate) {\n this.vDomUpdateClasses();\n }\n return shouldUpdate;\n }\n}\n","export const createContext = function (defaultValue) {\n return defaultValue;\n};\n","export class InfernoEffect {\n constructor(effect, dependency) {\n this.effect = effect;\n this.dependency = dependency;\n this.destroy = effect();\n }\n update(dependency) {\n const currentDependency = this.dependency;\n if (dependency) {\n this.dependency = dependency;\n }\n if (!dependency || dependency.some((d, i) => currentDependency[i] !== d)) {\n this.dispose();\n this.destroy = this.effect();\n }\n }\n dispose() {\n if (this.destroy) {\n this.destroy();\n }\n }\n}\n","import { createPortal } from 'inferno';\nexport const Portal = ({ container, children }) => {\n if (container) {\n return createPortal(children, container);\n }\n return null;\n};\n","import { rerender as reRender } from 'inferno';\nimport { InfernoEffect } from './effect';\nexport const createReRenderEffect = () => new InfernoEffect(() => {\n reRender();\n}, []);\n","const NUMBER_STYLES = [\n 'animation-iteration-count',\n 'border-image-outset',\n 'border-image-slice',\n 'border-image-width',\n 'box-flex',\n 'box-flex-group',\n 'box-ordinal-group',\n 'column-count',\n 'fill-opacity',\n 'flex',\n 'flex-grow',\n 'flex-negative',\n 'flex-order',\n 'flex-positive',\n 'flex-shrink',\n 'flood-opacity',\n 'font-weight',\n 'grid-column',\n 'grid-row',\n 'line-clamp',\n 'line-height',\n 'opacity',\n 'order',\n 'orphans',\n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke-width',\n 'tab-size',\n 'widows',\n 'z-index',\n 'zoom',\n];\nconst uppercasePattern = /[A-Z]/g;\nconst kebabCase = (str) => str.replace(uppercasePattern, '-$&').toLowerCase();\nconst isNumeric = (value) => {\n if (typeof value === 'number')\n return true;\n return !isNaN(Number(value));\n};\nconst getNumberStyleValue = (style, value) => (NUMBER_STYLES.indexOf(style) > -1 ? value : `${value}px`);\nexport const normalizeStyles = (styles) => {\n if (!(styles instanceof Object))\n return undefined;\n return Object.keys(styles).reduce((result, key) => {\n const value = styles[key];\n const kebabString = kebabCase(key);\n result[kebabString] = isNumeric(value)\n ? getNumberStyleValue(kebabString, value)\n : value;\n return result;\n }, {});\n};\n","export const ERROR_MSG = 'a runtime error occured! Use Inferno in development environment to find the error.';\nexport function isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nexport function isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nexport function isFunction(o) {\n return typeof o === 'function';\n}\nexport function isNull(o) {\n return o === null;\n}\nexport function throwError(message) {\n if (!message) {\n message = ERROR_MSG;\n }\n throw new Error(`Inferno Error: ${message}`);\n}\n","import { _CI, _HI, _M, _MCCC, _ME, _MFCC, _MP, _MR, EMPTY_OBJ, render, _RFC as renderFunctionalComponent, } from 'inferno';\nimport { isFunction, isInvalid, isNull, isNullOrUndef, throwError, } from './shared';\nfunction isSameInnerHTML(dom, innerHTML) {\n const tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\nfunction findLastDOMFromVNode(vNode) {\n let flags;\n let children;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n return vNode.dom;\n }\n children = vNode.children;\n if (flags & 8192 /* Fragment */) {\n vNode = vNode.childFlags === 2 /* HasVNodeChildren */ ? children : children[children.length - 1];\n }\n else if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n else {\n vNode = children;\n }\n }\n return null;\n}\nfunction isSamePropsInnerHTML(dom, props) {\n return Boolean(props && props.dangerouslySetInnerHTML && props.dangerouslySetInnerHTML.__html && isSameInnerHTML(dom, props.dangerouslySetInnerHTML.__html));\n}\nfunction hydrateComponent(vNode, parentDOM, dom, context, isSVG, isClass, lifecycle) {\n const type = vNode.type;\n const ref = vNode.ref;\n const props = vNode.props || EMPTY_OBJ;\n let currentNode;\n if (isClass) {\n const instance = _CI(vNode, type, props, context, isSVG, lifecycle);\n const input = instance.$LI;\n currentNode = hydrateVNode(input, parentDOM, dom, instance.$CX, isSVG, lifecycle);\n _MCCC(ref, instance, lifecycle);\n }\n else {\n const input = _HI(renderFunctionalComponent(vNode, context));\n currentNode = hydrateVNode(input, parentDOM, dom, context, isSVG, lifecycle);\n vNode.children = input;\n _MFCC(vNode, lifecycle);\n }\n return currentNode;\n}\nfunction hydrateChildren(parentVNode, parentNode, currentNode, context, isSVG, lifecycle) {\n const childFlags = parentVNode.childFlags;\n const children = parentVNode.children;\n const props = parentVNode.props;\n const flags = parentVNode.flags;\n if (childFlags !== 1 /* HasInvalidChildren */) {\n if (childFlags === 2 /* HasVNodeChildren */) {\n if (isNull(currentNode)) {\n _M(children, parentNode, context, isSVG, null, lifecycle);\n }\n else {\n currentNode = hydrateVNode(children, parentNode, currentNode, context, isSVG, lifecycle);\n currentNode = currentNode ? currentNode.nextSibling : null;\n }\n }\n else if (childFlags === 16 /* HasTextChildren */) {\n if (isNull(currentNode)) {\n parentNode.appendChild(document.createTextNode(children));\n }\n else if (parentNode.childNodes.length !== 1 || currentNode.nodeType !== 3) {\n parentNode.textContent = children;\n }\n else if (currentNode.nodeValue !== children) {\n currentNode.nodeValue = children;\n }\n currentNode = null;\n }\n else if (childFlags & 12 /* MultipleChildren */) {\n let prevVNodeIsTextNode = false;\n for (let i = 0, len = children.length; i < len; ++i) {\n const child = children[i];\n if (isNull(currentNode) || (prevVNodeIsTextNode && (child.flags & 16 /* Text */) > 0)) {\n _M(child, parentNode, context, isSVG, currentNode, lifecycle);\n }\n else {\n currentNode = hydrateVNode(child, parentNode, currentNode, context, isSVG, lifecycle);\n currentNode = currentNode ? currentNode.nextSibling : null;\n }\n prevVNodeIsTextNode = (child.flags & 16 /* Text */) > 0;\n }\n }\n // clear any other DOM nodes, there should be only a single entry for the root\n if ((flags & 8192 /* Fragment */) === 0) {\n let nextSibling = null;\n while (currentNode) {\n nextSibling = currentNode.nextSibling;\n parentNode.removeChild(currentNode);\n currentNode = nextSibling;\n }\n }\n }\n else if (!isNull(parentNode.firstChild) && !isSamePropsInnerHTML(parentNode, props)) {\n parentNode.textContent = ''; // dom has content, but VNode has no children remove everything from DOM\n if (flags & 448 /* FormElement */) {\n // If element is form element, we need to clear defaultValue also\n parentNode.defaultValue = '';\n }\n }\n}\nfunction hydrateElement(vNode, parentDOM, dom, context, isSVG, lifecycle) {\n const props = vNode.props;\n const className = vNode.className;\n const flags = vNode.flags;\n const ref = vNode.ref;\n isSVG = isSVG || (flags & 32 /* SvgElement */) > 0;\n if (dom.nodeType !== 1) {\n _ME(vNode, null, context, isSVG, null, lifecycle);\n parentDOM.replaceChild(vNode.dom, dom);\n }\n else {\n vNode.dom = dom;\n hydrateChildren(vNode, dom, dom.firstChild, context, isSVG, lifecycle);\n if (!isNull(props)) {\n _MP(vNode, flags, props, dom, isSVG);\n }\n if (isNullOrUndef(className)) {\n if (dom.className !== '') {\n dom.removeAttribute('class');\n }\n }\n else if (isSVG) {\n dom.setAttribute('class', className);\n }\n else {\n dom.className = className;\n }\n _MR(ref, dom, lifecycle);\n }\n return vNode.dom;\n}\nfunction hydrateText(vNode, parentDOM, dom) {\n if (dom.nodeType !== 3) {\n parentDOM.replaceChild((vNode.dom = document.createTextNode(vNode.children)), dom);\n }\n else {\n const text = vNode.children;\n if (dom.nodeValue !== text) {\n dom.nodeValue = text;\n }\n vNode.dom = dom;\n }\n return vNode.dom;\n}\nfunction hydrateFragment(vNode, parentDOM, dom, context, isSVG, lifecycle) {\n const children = vNode.children;\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n hydrateText(children, parentDOM, dom);\n return children.dom;\n }\n hydrateChildren(vNode, parentDOM, dom, context, isSVG, lifecycle);\n return findLastDOMFromVNode(children[children.length - 1]);\n}\nfunction hydrateVNode(vNode, parentDOM, currentDom, context, isSVG, lifecycle) {\n const flags = (vNode.flags |= 16384 /* InUse */);\n if (flags & 14 /* Component */) {\n return hydrateComponent(vNode, parentDOM, currentDom, context, isSVG, (flags & 4 /* ComponentClass */) > 0, lifecycle);\n }\n if (flags & 481 /* Element */) {\n return hydrateElement(vNode, parentDOM, currentDom, context, isSVG, lifecycle);\n }\n if (flags & 16 /* Text */) {\n return hydrateText(vNode, parentDOM, currentDom);\n }\n if (flags & 512 /* Void */) {\n return (vNode.dom = currentDom);\n }\n if (flags & 8192 /* Fragment */) {\n return hydrateFragment(vNode, parentDOM, currentDom, context, isSVG, lifecycle);\n }\n throwError();\n return null;\n}\nexport function hydrate(input, parentDOM, callback) {\n let dom = parentDOM.firstChild;\n if (isNull(dom)) {\n render(input, parentDOM, callback);\n }\n else {\n const lifecycle = [];\n if (!isInvalid(input)) {\n dom = hydrateVNode(input, parentDOM, dom, {}, false, lifecycle);\n }\n // clear any other DOM nodes, there should be only a single entry for the root\n while (dom && (dom = dom.nextSibling)) {\n parentDOM.removeChild(dom);\n }\n if (lifecycle.length > 0) {\n let listener;\n while ((listener = lifecycle.shift()) !== undefined) {\n listener();\n }\n }\n }\n parentDOM.$V = input;\n if (isFunction(callback)) {\n callback();\n }\n}\n","import { render } from 'inferno';\nimport { createElement } from 'inferno-create-element';\nexport function renderTemplate(template, props, _component) {\n setTimeout(() => {\n var _a;\n render(createElement(template, props), (_a = props.container) === null || _a === void 0 ? void 0 : _a.get(0));\n }, 0);\n}\nexport const hasTemplate = (name, properties, _component) => !!properties[name];\n","/**\r\n * DevExtreme (esm/core/utils/queue.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport errors from \"../errors\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\n\r\nfunction createQueue(discardPendingTasks) {\r\n var _tasks = [];\r\n var _busy = false;\r\n\r\n function exec() {\r\n while (_tasks.length) {\r\n _busy = true;\r\n var task = _tasks.shift();\r\n var result = task();\r\n if (void 0 === result) {\r\n continue\r\n }\r\n if (result.then) {\r\n when(result).always(exec);\r\n return\r\n }\r\n throw errors.Error(\"E0015\")\r\n }\r\n _busy = false\r\n }\r\n return {\r\n add: function(task, removeTaskCallback) {\r\n if (!discardPendingTasks) {\r\n _tasks.push(task)\r\n } else {\r\n if (_tasks[0] && removeTaskCallback) {\r\n removeTaskCallback(_tasks[0])\r\n }\r\n _tasks = [task]\r\n }\r\n if (!_busy) {\r\n exec()\r\n }\r\n },\r\n busy: function() {\r\n return _busy\r\n }\r\n }\r\n}\r\nexport {\r\n createQueue as create\r\n};\r\nexport var enqueue = createQueue().add;\r\n","/**\r\n * DevExtreme (esm/data/data_source/operation_manager.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n CANCELED_TOKEN\r\n} from \"./utils\";\r\nexport default class OperationManager {\r\n constructor() {\r\n this._counter = -1;\r\n this._deferreds = {}\r\n }\r\n add(deferred) {\r\n this._counter++;\r\n this._deferreds[this._counter] = deferred;\r\n return this._counter\r\n }\r\n remove(operationId) {\r\n return delete this._deferreds[operationId]\r\n }\r\n cancel(operationId) {\r\n if (operationId in this._deferreds) {\r\n this._deferreds[operationId].reject(CANCELED_TOKEN);\r\n return true\r\n }\r\n return false\r\n }\r\n cancelAll() {\r\n while (this._counter > -1) {\r\n this.cancel(this._counter);\r\n this._counter--\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/data/data_source/data_source.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isNumeric,\r\n isBoolean,\r\n isDefined,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n throttleChanges\r\n} from \"../utils\";\r\nimport {\r\n applyBatch\r\n} from \"../array_utils\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n EventsStrategy\r\n} from \"../../core/events_strategy\";\r\nimport {\r\n errors\r\n} from \"../errors\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/array\";\r\nimport {\r\n create\r\n} from \"../../core/utils/queue\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport OperationManager from \"./operation_manager\";\r\nimport {\r\n normalizeDataSourceOptions,\r\n normalizeStoreLoadOptionAccessorArguments,\r\n CANCELED_TOKEN,\r\n isPending,\r\n normalizeLoadResult,\r\n mapDataRespectingGrouping\r\n} from \"./utils\";\r\nexport var DataSource = Class.inherit({\r\n ctor(options) {\r\n var _options$reshapeOnPus;\r\n options = normalizeDataSourceOptions(options);\r\n this._eventsStrategy = new EventsStrategy(this, {\r\n syncStrategy: true\r\n });\r\n this._store = options.store;\r\n this._changedTime = 0;\r\n var needThrottling = 0 !== options.pushAggregationTimeout;\r\n if (needThrottling) {\r\n var throttlingTimeout = void 0 === options.pushAggregationTimeout ? () => 5 * this._changedTime : options.pushAggregationTimeout;\r\n var pushDeferred;\r\n var lastPushWaiters;\r\n var throttlingPushHandler = throttleChanges(changes => {\r\n pushDeferred.resolve();\r\n var storePushPending = when(...lastPushWaiters);\r\n storePushPending.done(() => this._onPush(changes));\r\n lastPushWaiters = void 0;\r\n pushDeferred = void 0\r\n }, throttlingTimeout);\r\n this._onPushHandler = args => {\r\n this._aggregationTimeoutId = throttlingPushHandler(args.changes);\r\n if (!pushDeferred) {\r\n pushDeferred = new Deferred\r\n }\r\n lastPushWaiters = args.waitFor;\r\n args.waitFor.push(pushDeferred.promise())\r\n };\r\n this._store.on(\"beforePush\", this._onPushHandler)\r\n } else {\r\n this._onPushHandler = changes => this._onPush(changes);\r\n this._store.on(\"push\", this._onPushHandler)\r\n }\r\n this._storeLoadOptions = this._extractLoadOptions(options);\r\n this._mapFunc = options.map;\r\n this._postProcessFunc = options.postProcess;\r\n this._pageIndex = void 0 !== options.pageIndex ? options.pageIndex : 0;\r\n this._pageSize = void 0 !== options.pageSize ? options.pageSize : 20;\r\n this._loadingCount = 0;\r\n this._loadQueue = this._createLoadQueue();\r\n this._searchValue = \"searchValue\" in options ? options.searchValue : null;\r\n this._searchOperation = options.searchOperation || \"contains\";\r\n this._searchExpr = options.searchExpr;\r\n this._paginate = options.paginate;\r\n this._reshapeOnPush = null !== (_options$reshapeOnPus = options.reshapeOnPush) && void 0 !== _options$reshapeOnPus ? _options$reshapeOnPus : false;\r\n each([\"onChanged\", \"onLoadError\", \"onLoadingChanged\", \"onCustomizeLoadResult\", \"onCustomizeStoreLoadOptions\"], (_, optionName) => {\r\n if (optionName in options) {\r\n this.on(optionName.substr(2, 1).toLowerCase() + optionName.substr(3), options[optionName])\r\n }\r\n });\r\n this._operationManager = new OperationManager;\r\n this._init()\r\n },\r\n _init() {\r\n this._items = [];\r\n this._userData = {};\r\n this._totalCount = -1;\r\n this._isLoaded = false;\r\n if (!isDefined(this._paginate)) {\r\n this._paginate = !this.group()\r\n }\r\n this._isLastPage = !this._paginate\r\n },\r\n dispose() {\r\n var _this$_delayedLoadTas;\r\n this._store.off(\"beforePush\", this._onPushHandler);\r\n this._store.off(\"push\", this._onPushHandler);\r\n this._eventsStrategy.dispose();\r\n clearTimeout(this._aggregationTimeoutId);\r\n null === (_this$_delayedLoadTas = this._delayedLoadTask) || void 0 === _this$_delayedLoadTas ? void 0 : _this$_delayedLoadTas.abort();\r\n this._operationManager.cancelAll();\r\n delete this._store;\r\n delete this._items;\r\n delete this._delayedLoadTask;\r\n this._disposed = true\r\n },\r\n _extractLoadOptions(options) {\r\n var result = {};\r\n var names = [\"sort\", \"filter\", \"select\", \"group\", \"requireTotalCount\"];\r\n var customNames = this._store._customLoadOptions();\r\n if (customNames) {\r\n names = names.concat(customNames)\r\n }\r\n each(names, (function() {\r\n result[this] = options[this]\r\n }));\r\n return result\r\n },\r\n loadOptions() {\r\n return this._storeLoadOptions\r\n },\r\n items() {\r\n return this._items\r\n },\r\n pageIndex(newIndex) {\r\n if (!isNumeric(newIndex)) {\r\n return this._pageIndex\r\n }\r\n this._pageIndex = newIndex;\r\n this._isLastPage = !this._paginate\r\n },\r\n paginate(value) {\r\n if (!isBoolean(value)) {\r\n return this._paginate\r\n }\r\n if (this._paginate !== value) {\r\n this._paginate = value;\r\n this.pageIndex(0)\r\n }\r\n },\r\n pageSize(value) {\r\n if (!isNumeric(value)) {\r\n return this._pageSize\r\n }\r\n this._pageSize = value\r\n },\r\n isLastPage() {\r\n return this._isLastPage\r\n },\r\n generateStoreLoadOptionAccessor(optionName) {\r\n return args => {\r\n var normalizedArgs = normalizeStoreLoadOptionAccessorArguments(args);\r\n if (void 0 === normalizedArgs) {\r\n return this._storeLoadOptions[optionName]\r\n }\r\n this._storeLoadOptions[optionName] = normalizedArgs\r\n }\r\n },\r\n sort() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"sort\")(args)\r\n },\r\n filter() {\r\n var newFilter = normalizeStoreLoadOptionAccessorArguments(arguments);\r\n if (void 0 === newFilter) {\r\n return this._storeLoadOptions.filter\r\n }\r\n this._storeLoadOptions.filter = newFilter;\r\n this.pageIndex(0)\r\n },\r\n group() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"group\")(args)\r\n },\r\n select() {\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"select\")(args)\r\n },\r\n requireTotalCount(value) {\r\n if (!isBoolean(value)) {\r\n return this._storeLoadOptions.requireTotalCount\r\n }\r\n this._storeLoadOptions.requireTotalCount = value\r\n },\r\n searchValue(value) {\r\n if (arguments.length < 1) {\r\n return this._searchValue\r\n }\r\n this._searchValue = value;\r\n this.pageIndex(0)\r\n },\r\n searchOperation(op) {\r\n if (!isString(op)) {\r\n return this._searchOperation\r\n }\r\n this._searchOperation = op;\r\n this.pageIndex(0)\r\n },\r\n searchExpr(expr) {\r\n var argc = arguments.length;\r\n if (0 === argc) {\r\n return this._searchExpr\r\n }\r\n if (argc > 1) {\r\n expr = [].slice.call(arguments)\r\n }\r\n this._searchExpr = expr;\r\n this.pageIndex(0)\r\n },\r\n store() {\r\n return this._store\r\n },\r\n key() {\r\n var _this$_store;\r\n return null === (_this$_store = this._store) || void 0 === _this$_store ? void 0 : _this$_store.key()\r\n },\r\n totalCount() {\r\n return this._totalCount\r\n },\r\n isLoaded() {\r\n return this._isLoaded\r\n },\r\n isLoading() {\r\n return this._loadingCount > 0\r\n },\r\n beginLoading() {\r\n this._changeLoadingCount(1)\r\n },\r\n endLoading() {\r\n this._changeLoadingCount(-1)\r\n },\r\n _createLoadQueue: () => create(),\r\n _changeLoadingCount(increment) {\r\n var oldLoading = this.isLoading();\r\n this._loadingCount += increment;\r\n var newLoading = this.isLoading();\r\n if (oldLoading ^ newLoading) {\r\n this._eventsStrategy.fireEvent(\"loadingChanged\", [newLoading])\r\n }\r\n },\r\n _scheduleLoadCallbacks(deferred) {\r\n this.beginLoading();\r\n deferred.always(() => {\r\n this.endLoading()\r\n })\r\n },\r\n _scheduleFailCallbacks(deferred) {\r\n var _this = this;\r\n deferred.fail((function() {\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n if (args[0] === CANCELED_TOKEN) {\r\n return\r\n }\r\n _this._eventsStrategy.fireEvent(\"loadError\", args)\r\n }))\r\n },\r\n _fireChanged(args) {\r\n var date = new Date;\r\n this._eventsStrategy.fireEvent(\"changed\", args);\r\n this._changedTime = new Date - date\r\n },\r\n _scheduleChangedCallbacks(deferred) {\r\n deferred.done(() => this._fireChanged())\r\n },\r\n loadSingle(propName, propValue) {\r\n var d = new Deferred;\r\n var key = this.key();\r\n var store = this._store;\r\n var options = this._createStoreLoadOptions();\r\n this._scheduleFailCallbacks(d);\r\n if (arguments.length < 2) {\r\n propValue = propName;\r\n propName = key\r\n }\r\n delete options.skip;\r\n delete options.group;\r\n delete options.refresh;\r\n delete options.pageIndex;\r\n delete options.searchString;\r\n (() => {\r\n if (propName === key || store instanceof CustomStore && !store._byKeyViaLoad()) {\r\n return store.byKey(propValue, options)\r\n }\r\n options.take = 1;\r\n options.filter = options.filter ? [options.filter, [propName, propValue]] : [propName, propValue];\r\n return store.load(options)\r\n })().fail(d.reject).done(data => {\r\n if (!isDefined(data) || isEmpty(data)) {\r\n d.reject(new errors.Error(\"E4009\"))\r\n } else {\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n d.resolve(this._applyMapFunction(data)[0])\r\n }\r\n });\r\n return d.promise()\r\n },\r\n load() {\r\n var d = new Deferred;\r\n var loadTask = () => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(d)) {\r\n return\r\n }\r\n return this._loadFromStore(loadOperation, d)\r\n };\r\n this._scheduleLoadCallbacks(d);\r\n this._scheduleFailCallbacks(d);\r\n this._scheduleChangedCallbacks(d);\r\n var loadOperation = this._createLoadOperation(d);\r\n this._eventsStrategy.fireEvent(\"customizeStoreLoadOptions\", [loadOperation]);\r\n this._loadQueue.add(() => {\r\n if (\"number\" === typeof loadOperation.delay) {\r\n this._delayedLoadTask = executeAsync(loadTask, loadOperation.delay)\r\n } else {\r\n loadTask()\r\n }\r\n return d.promise()\r\n });\r\n return d.promise({\r\n operationId: loadOperation.operationId\r\n })\r\n },\r\n _onPush(changes) {\r\n if (this._reshapeOnPush) {\r\n this.load()\r\n } else {\r\n this._eventsStrategy.fireEvent(\"changing\", [{\r\n changes: changes\r\n }]);\r\n var group = this.group();\r\n var items = this.items();\r\n var groupLevel = 0;\r\n var dataSourceChanges = this.paginate() || group ? changes.filter(item => \"update\" === item.type) : changes;\r\n if (group) {\r\n groupLevel = Array.isArray(group) ? group.length : 1\r\n }\r\n if (this._mapFunc) {\r\n dataSourceChanges.forEach(item => {\r\n if (\"insert\" === item.type) {\r\n item.data = this._mapFunc(item.data)\r\n }\r\n })\r\n }\r\n applyBatch({\r\n keyInfo: this.store(),\r\n data: items,\r\n changes: dataSourceChanges,\r\n groupCount: groupLevel,\r\n useInsertIndex: true\r\n });\r\n this._fireChanged([{\r\n changes: changes\r\n }])\r\n }\r\n },\r\n _createLoadOperation(deferred) {\r\n var operationId = this._operationManager.add(deferred);\r\n var storeLoadOptions = this._createStoreLoadOptions();\r\n deferred.always(() => this._operationManager.remove(operationId));\r\n return {\r\n operationId: operationId,\r\n storeLoadOptions: storeLoadOptions\r\n }\r\n },\r\n reload() {\r\n var store = this.store();\r\n if (store instanceof CustomStore) {\r\n store.clearRawDataCache()\r\n }\r\n this._init();\r\n return this.load()\r\n },\r\n cancel(operationId) {\r\n return this._operationManager.cancel(operationId)\r\n },\r\n cancelAll() {\r\n return this._operationManager.cancelAll()\r\n },\r\n _addSearchOptions(storeLoadOptions) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (this.store()._useDefaultSearch) {\r\n this._addSearchFilter(storeLoadOptions)\r\n } else {\r\n storeLoadOptions.searchOperation = this._searchOperation;\r\n storeLoadOptions.searchValue = this._searchValue;\r\n storeLoadOptions.searchExpr = this._searchExpr\r\n }\r\n },\r\n _createStoreLoadOptions() {\r\n var result = extend({}, this._storeLoadOptions);\r\n this._addSearchOptions(result);\r\n if (this._paginate) {\r\n if (this._pageSize) {\r\n result.skip = this._pageIndex * this._pageSize;\r\n result.take = this._pageSize\r\n }\r\n }\r\n result.userData = this._userData;\r\n return result\r\n },\r\n _addSearchFilter(storeLoadOptions) {\r\n var value = this._searchValue;\r\n var op = this._searchOperation;\r\n var selector = this._searchExpr;\r\n var searchFilter = [];\r\n if (!value) {\r\n return\r\n }\r\n if (!selector) {\r\n selector = \"this\"\r\n }\r\n if (!Array.isArray(selector)) {\r\n selector = [selector]\r\n }\r\n each(selector, (function(i, item) {\r\n if (searchFilter.length) {\r\n searchFilter.push(\"or\")\r\n }\r\n searchFilter.push([item, op, value])\r\n }));\r\n if (storeLoadOptions.filter) {\r\n storeLoadOptions.filter = [searchFilter, storeLoadOptions.filter]\r\n } else {\r\n storeLoadOptions.filter = searchFilter\r\n }\r\n },\r\n _loadFromStore(loadOptions, pendingDeferred) {\r\n var handleSuccess = (data, extra) => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(pendingDeferred)) {\r\n return\r\n }\r\n var loadResult = extend(normalizeLoadResult(data, extra), loadOptions);\r\n this._eventsStrategy.fireEvent(\"customizeLoadResult\", [loadResult]);\r\n when(loadResult.data).done(data => {\r\n loadResult.data = data;\r\n this._processStoreLoadResult(loadResult, pendingDeferred)\r\n }).fail(pendingDeferred.reject)\r\n };\r\n if (loadOptions.data) {\r\n return (new Deferred).resolve(loadOptions.data).done(handleSuccess)\r\n }\r\n return this.store().load(loadOptions.storeLoadOptions).done(handleSuccess).fail(pendingDeferred.reject)\r\n },\r\n _processStoreLoadResult(loadResult, pendingDeferred) {\r\n var data = loadResult.data;\r\n var extra = loadResult.extra;\r\n var storeLoadOptions = loadResult.storeLoadOptions;\r\n var resolvePendingDeferred = () => {\r\n this._isLoaded = true;\r\n this._totalCount = isFinite(extra.totalCount) ? extra.totalCount : -1;\r\n return pendingDeferred.resolve(data, extra)\r\n };\r\n if (this._disposed) {\r\n return\r\n }\r\n data = this._applyPostProcessFunction(this._applyMapFunction(data));\r\n if (!isPlainObject(extra)) {\r\n extra = {}\r\n }\r\n this._items = data;\r\n if (!data.length || !this._paginate || this._pageSize && data.length < this._pageSize) {\r\n this._isLastPage = true\r\n }\r\n if (storeLoadOptions.requireTotalCount && !isFinite(extra.totalCount)) {\r\n (() => {\r\n this.store().totalCount(storeLoadOptions).done((function(count) {\r\n extra.totalCount = count;\r\n resolvePendingDeferred()\r\n })).fail(pendingDeferred.reject)\r\n })()\r\n } else {\r\n resolvePendingDeferred()\r\n }\r\n },\r\n _applyMapFunction(data) {\r\n if (this._mapFunc) {\r\n return mapDataRespectingGrouping(data, this._mapFunc, this.group())\r\n }\r\n return data\r\n },\r\n _applyPostProcessFunction(data) {\r\n if (this._postProcessFunc) {\r\n return this._postProcessFunc(data)\r\n }\r\n return data\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/icon.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SVG_ICON_CLASS = \"dx-svg-icon\";\r\nexport var getImageSourceType = source => {\r\n if (!source || \"string\" !== typeof source) {\r\n return false\r\n }\r\n if (/^\\s*]*>(.|\\r?\\n)*?<\\/svg>\\s*$/i.test(source)) {\r\n return \"svg\"\r\n }\r\n if (/data:.*base64|\\.|[^<\\s]\\//.test(source)) {\r\n return \"image\"\r\n }\r\n if (/^[\\w-_]+$/.test(source)) {\r\n return \"dxIcon\"\r\n }\r\n if (/^\\s?([\\w-_]\\s?)+$/.test(source)) {\r\n return \"fontIcon\"\r\n }\r\n return false\r\n};\r\nexport var getImageContainer = source => {\r\n switch (getImageSourceType(source)) {\r\n case \"image\":\r\n return $(\"\").attr(\"src\", source).addClass(ICON_CLASS);\r\n case \"fontIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(source));\r\n case \"dxIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(ICON_CLASS, \"-\").concat(source));\r\n case \"svg\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(SVG_ICON_CLASS)).append(source);\r\n default:\r\n return null\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/themes.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport Promise from \"../core/polyfills/promise\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n parseHTML\r\n} from \"../core/utils/html_parser\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n value as viewPortValue,\r\n changeCallback,\r\n originalViewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n themeReadyCallback\r\n} from \"./themes_callback\";\r\nimport errors from \"./widget/ui.errors\";\r\nvar window = getWindow();\r\nvar ready = readyCallbacks.add;\r\nvar viewPort = viewPortValue;\r\nvar viewPortChanged = changeCallback;\r\nvar initDeferred = new Deferred;\r\nvar DX_LINK_SELECTOR = \"link[rel=dx-theme]\";\r\nvar THEME_ATTR = \"data-theme\";\r\nvar ACTIVE_ATTR = \"data-active\";\r\nvar DX_HAIRLINES_CLASS = \"dx-hairlines\";\r\nvar ANY_THEME = \"any\";\r\nvar context;\r\nvar $activeThemeLink;\r\nvar knownThemes;\r\nvar currentThemeName;\r\nvar pendingThemeName;\r\nvar defaultTimeout = 15e3;\r\nvar THEME_MARKER_PREFIX = \"dx.\";\r\n\r\nfunction readThemeMarker() {\r\n if (!hasWindow()) {\r\n return null\r\n }\r\n var element = $(\"
\", context).addClass(\"dx-theme-marker\").appendTo(context.documentElement);\r\n var result;\r\n try {\r\n result = window.getComputedStyle(element.get(0)).fontFamily;\r\n if (!result) {\r\n return null\r\n }\r\n result = result.replace(/[\"']/g, \"\");\r\n if (result.substr(0, THEME_MARKER_PREFIX.length) !== THEME_MARKER_PREFIX) {\r\n return null\r\n }\r\n return result.substr(THEME_MARKER_PREFIX.length)\r\n } finally {\r\n element.remove()\r\n }\r\n}\r\nexport function waitForThemeLoad(themeName) {\r\n var waitStartTime;\r\n var timerId;\r\n var intervalCleared = true;\r\n pendingThemeName = themeName;\r\n\r\n function handleLoaded() {\r\n pendingThemeName = null;\r\n clearInterval(timerId);\r\n intervalCleared = true;\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty();\r\n initDeferred.resolve()\r\n }\r\n if (isPendingThemeLoaded() || !defaultTimeout) {\r\n handleLoaded()\r\n } else {\r\n if (!intervalCleared) {\r\n if (pendingThemeName) {\r\n pendingThemeName = themeName\r\n }\r\n return\r\n }\r\n waitStartTime = Date.now();\r\n intervalCleared = false;\r\n timerId = setInterval((function() {\r\n var isLoaded = isPendingThemeLoaded();\r\n var isTimeout = !isLoaded && Date.now() - waitStartTime > defaultTimeout;\r\n if (isTimeout) {\r\n errors.log(\"W0004\", pendingThemeName)\r\n }\r\n if (isLoaded || isTimeout) {\r\n handleLoaded()\r\n }\r\n }), 10)\r\n }\r\n}\r\nexport function isPendingThemeLoaded() {\r\n if (!pendingThemeName) {\r\n return true\r\n }\r\n var anyThemePending = pendingThemeName === ANY_THEME;\r\n if (\"resolved\" === initDeferred.state() && anyThemePending) {\r\n return true\r\n }\r\n var themeMarker = readThemeMarker();\r\n if (themeMarker && anyThemePending) {\r\n return true\r\n }\r\n return themeMarker === pendingThemeName\r\n}\r\n\r\nfunction processMarkup() {\r\n var $allThemeLinks = $(DX_LINK_SELECTOR, context);\r\n if (!$allThemeLinks.length) {\r\n return\r\n }\r\n knownThemes = {};\r\n $activeThemeLink = $(parseHTML(\"\"), context);\r\n $allThemeLinks.each((function() {\r\n var link = $(this, context);\r\n var fullThemeName = link.attr(THEME_ATTR);\r\n var url = link.attr(\"href\");\r\n var isActive = \"true\" === link.attr(ACTIVE_ATTR);\r\n knownThemes[fullThemeName] = {\r\n url: url,\r\n isActive: isActive\r\n }\r\n }));\r\n $allThemeLinks.last().after($activeThemeLink);\r\n $allThemeLinks.remove()\r\n}\r\n\r\nfunction resolveFullThemeName(desiredThemeName) {\r\n var desiredThemeParts = desiredThemeName ? desiredThemeName.split(\".\") : [];\r\n var result = null;\r\n if (knownThemes) {\r\n if (desiredThemeName in knownThemes) {\r\n return desiredThemeName\r\n }\r\n each(knownThemes, (function(knownThemeName, themeData) {\r\n var knownThemeParts = knownThemeName.split(\".\");\r\n if (desiredThemeParts[0] && knownThemeParts[0] !== desiredThemeParts[0]) {\r\n return\r\n }\r\n if (desiredThemeParts[1] && desiredThemeParts[1] !== knownThemeParts[1]) {\r\n return\r\n }\r\n if (desiredThemeParts[2] && desiredThemeParts[2] !== knownThemeParts[2]) {\r\n return\r\n }\r\n if (!result || themeData.isActive) {\r\n result = knownThemeName\r\n }\r\n if (themeData.isActive) {\r\n return false\r\n }\r\n }))\r\n }\r\n return result\r\n}\r\n\r\nfunction initContext(newContext) {\r\n try {\r\n if (newContext !== context) {\r\n knownThemes = null\r\n }\r\n } catch (x) {\r\n knownThemes = null\r\n }\r\n context = newContext\r\n}\r\nexport function init(options) {\r\n options = options || {};\r\n initContext(options.context || domAdapter.getDocument());\r\n if (!context) {\r\n return\r\n }\r\n processMarkup();\r\n currentThemeName = void 0;\r\n current(options)\r\n}\r\nexport function current(options) {\r\n if (!arguments.length) {\r\n currentThemeName = currentThemeName || readThemeMarker();\r\n return currentThemeName\r\n }\r\n detachCssClasses(viewPort());\r\n options = options || {};\r\n if (\"string\" === typeof options) {\r\n options = {\r\n theme: options\r\n }\r\n }\r\n var isAutoInit = options._autoInit;\r\n var loadCallback = options.loadCallback;\r\n var currentThemeData;\r\n currentThemeName = resolveFullThemeName(options.theme || currentThemeName);\r\n if (currentThemeName) {\r\n currentThemeData = knownThemes[currentThemeName]\r\n }\r\n if (loadCallback) {\r\n themeReadyCallback.add(loadCallback)\r\n }\r\n if (currentThemeData) {\r\n $activeThemeLink.attr(\"href\", knownThemes[currentThemeName].url);\r\n if (themeReadyCallback.has() || \"resolved\" !== initDeferred.state() || options._forceTimeout) {\r\n waitForThemeLoad(currentThemeName)\r\n }\r\n } else if (isAutoInit) {\r\n if (hasWindow()) {\r\n waitForThemeLoad(ANY_THEME)\r\n }\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty()\r\n } else {\r\n throw errors.Error(\"E0021\", currentThemeName)\r\n }\r\n initDeferred.done(() => attachCssClasses(originalViewPort(), currentThemeName))\r\n}\r\n\r\nfunction getCssClasses(themeName) {\r\n themeName = themeName || current();\r\n var result = [];\r\n var themeNameParts = themeName && themeName.split(\".\");\r\n if (themeNameParts) {\r\n result.push(\"dx-theme-\" + themeNameParts[0], \"dx-theme-\" + themeNameParts[0] + \"-typography\");\r\n if (themeNameParts.length > 1) {\r\n result.push(\"dx-color-scheme-\" + themeNameParts[1] + (isMaterial(themeName) ? \"-\" + themeNameParts[2] : \"\"))\r\n }\r\n }\r\n return result\r\n}\r\nvar themeClasses;\r\nexport function attachCssClasses(element, themeName) {\r\n themeClasses = getCssClasses(themeName).join(\" \");\r\n $(element).addClass(themeClasses);\r\n ! function() {\r\n var pixelRatio = hasWindow() && window.devicePixelRatio;\r\n if (!pixelRatio || pixelRatio < 2) {\r\n return\r\n }\r\n var $tester = $(\"
\");\r\n $tester.css(\"border\", \".5px solid transparent\");\r\n $(\"body\").append($tester);\r\n if (1 === getOuterHeight($tester)) {\r\n $(element).addClass(DX_HAIRLINES_CLASS);\r\n themeClasses += \" \" + DX_HAIRLINES_CLASS\r\n }\r\n $tester.remove()\r\n }()\r\n}\r\nexport function detachCssClasses(element) {\r\n $(element).removeClass(themeClasses)\r\n}\r\n\r\nfunction themeReady(callback) {\r\n themeReadyCallback.add(callback)\r\n}\r\n\r\nfunction isTheme(themeRegExp, themeName) {\r\n if (!themeName) {\r\n themeName = currentThemeName || readThemeMarker()\r\n }\r\n return new RegExp(themeRegExp).test(themeName)\r\n}\r\nexport function isMaterial(themeName) {\r\n return isTheme(\"material\", themeName)\r\n}\r\nexport function isGeneric(themeName) {\r\n return isTheme(\"generic\", themeName)\r\n}\r\nexport function isDark(themeName) {\r\n return isTheme(\"dark\", themeName)\r\n}\r\nexport function isCompact(themeName) {\r\n return isTheme(\"compact\", themeName)\r\n}\r\nexport function isWebFontLoaded(text, fontWeight) {\r\n var document = domAdapter.getDocument();\r\n var testElement = document.createElement(\"span\");\r\n testElement.style.position = \"absolute\";\r\n testElement.style.top = \"-9999px\";\r\n testElement.style.left = \"-9999px\";\r\n testElement.style.visibility = \"hidden\";\r\n testElement.style.fontFamily = \"Arial\";\r\n testElement.style.fontSize = \"250px\";\r\n testElement.style.fontWeight = fontWeight;\r\n testElement.innerHTML = text;\r\n document.body.appendChild(testElement);\r\n var etalonFontWidth = testElement.offsetWidth;\r\n testElement.style.fontFamily = \"Roboto, RobotoFallback, Arial\";\r\n var testedFontWidth = testElement.offsetWidth;\r\n testElement.parentNode.removeChild(testElement);\r\n return etalonFontWidth !== testedFontWidth\r\n}\r\nexport function waitWebFont(text, fontWeight) {\r\n return new Promise(resolve => {\r\n var clear = () => {\r\n clearInterval(intervalId);\r\n clearTimeout(timeoutId);\r\n resolve()\r\n };\r\n var intervalId = setInterval(() => {\r\n if (isWebFontLoaded(text, fontWeight)) {\r\n clear()\r\n }\r\n }, 15);\r\n var timeoutId = setTimeout(clear, 2e3)\r\n })\r\n}\r\n\r\nfunction autoInit() {\r\n init({\r\n _autoInit: true,\r\n _forceTimeout: true\r\n });\r\n if ($(DX_LINK_SELECTOR, context).length) {\r\n throw errors.Error(\"E0022\")\r\n }\r\n}\r\nif (hasWindow()) {\r\n autoInit()\r\n} else {\r\n ready(autoInit)\r\n}\r\nviewPortChanged.add((function(viewPort, prevViewPort) {\r\n initDeferred.done((function() {\r\n detachCssClasses(prevViewPort);\r\n attachCssClasses(viewPort)\r\n }))\r\n}));\r\ndevices.changed.add((function() {\r\n init({\r\n _autoInit: true\r\n })\r\n}));\r\nexport {\r\n themeReady as ready\r\n};\r\nexport function resetTheme() {\r\n $activeThemeLink && $activeThemeLink.attr(\"href\", \"about:blank\");\r\n currentThemeName = null;\r\n pendingThemeName = null;\r\n initDeferred = new Deferred\r\n}\r\nexport function initialized(callback) {\r\n initDeferred.done(callback)\r\n}\r\nexport function setDefaultTimeout(timeout) {\r\n defaultTimeout = timeout\r\n}\r\nexport default {\r\n setDefaultTimeout: setDefaultTimeout,\r\n initialized: initialized,\r\n resetTheme: resetTheme,\r\n ready: themeReady,\r\n waitWebFont: waitWebFont,\r\n isWebFontLoaded: isWebFontLoaded,\r\n isCompact: isCompact,\r\n isDark: isDark,\r\n isGeneric: isGeneric,\r\n isMaterial: isMaterial,\r\n detachCssClasses: detachCssClasses,\r\n attachCssClasses: attachCssClasses,\r\n current: current,\r\n waitForThemeLoad: waitForThemeLoad,\r\n isPendingThemeLoaded: isPendingThemeLoaded\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/themes_callback.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport Callbacks from \"../core/utils/callbacks\";\r\nexport var themeReadyCallback = new Callbacks;\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createExtensionComponent = exports.createConfigurationComponent = exports.createComponent = void 0;\nvar vue2Stategy = __importStar(require(\"./strategy/vue2/index\"));\nvar vue3Stategy = __importStar(require(\"./strategy/vue3/index\"));\nvar version_1 = require(\"./version\");\nvar strategy = version_1.isVue3() ? vue3Stategy : vue2Stategy;\nexports.createComponent = strategy.createComponent;\nexports.createConfigurationComponent = strategy.createConfigurationComponent;\nexports.createExtensionComponent = strategy.createExtensionComponent;\n","/**\r\n * DevExtreme (esm/events/drag.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../core/renderer\";\r\nimport {\r\n data as elementData,\r\n removeData\r\n} from \"../core/element_data\";\r\nimport {\r\n wrapToArray,\r\n inArray\r\n} from \"../core/utils/array\";\r\nimport * as iteratorUtils from \"../core/utils/iterator\";\r\nimport {\r\n contains\r\n} from \"../core/utils/dom\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n eventData as eData,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar DRAG_START_EVENT = \"dxdragstart\";\r\nvar DRAG_EVENT = \"dxdrag\";\r\nvar DRAG_END_EVENT = \"dxdragend\";\r\nvar DRAG_ENTER_EVENT = \"dxdragenter\";\r\nvar DRAG_LEAVE_EVENT = \"dxdragleave\";\r\nvar DROP_EVENT = \"dxdrop\";\r\nvar DX_DRAG_EVENTS_COUNT_KEY = \"dxDragEventsCount\";\r\nvar knownDropTargets = [];\r\nvar knownDropTargetSelectors = [];\r\nvar knownDropTargetConfigs = [];\r\nvar dropTargetRegistration = {\r\n setup: function(element, data) {\r\n var knownDropTarget = -1 !== inArray(element, knownDropTargets);\r\n if (!knownDropTarget) {\r\n knownDropTargets.push(element);\r\n knownDropTargetSelectors.push([]);\r\n knownDropTargetConfigs.push(data || {})\r\n }\r\n },\r\n add: function(element, handleObj) {\r\n var index = inArray(element, knownDropTargets);\r\n this.updateEventsCounter(element, handleObj.type, 1);\r\n var selector = handleObj.selector;\r\n if (-1 === inArray(selector, knownDropTargetSelectors[index])) {\r\n knownDropTargetSelectors[index].push(selector)\r\n }\r\n },\r\n updateEventsCounter: function(element, event, value) {\r\n if ([DRAG_ENTER_EVENT, DRAG_LEAVE_EVENT, DROP_EVENT].indexOf(event) > -1) {\r\n var eventsCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY) || 0;\r\n elementData(element, DX_DRAG_EVENTS_COUNT_KEY, Math.max(0, eventsCount + value))\r\n }\r\n },\r\n remove: function(element, handleObj) {\r\n this.updateEventsCounter(element, handleObj.type, -1)\r\n },\r\n teardown: function(element) {\r\n var handlersCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY);\r\n if (!handlersCount) {\r\n var index = inArray(element, knownDropTargets);\r\n knownDropTargets.splice(index, 1);\r\n knownDropTargetSelectors.splice(index, 1);\r\n knownDropTargetConfigs.splice(index, 1);\r\n removeData(element, DX_DRAG_EVENTS_COUNT_KEY)\r\n }\r\n }\r\n};\r\nregisterEvent(DRAG_ENTER_EVENT, dropTargetRegistration);\r\nregisterEvent(DRAG_LEAVE_EVENT, dropTargetRegistration);\r\nregisterEvent(DROP_EVENT, dropTargetRegistration);\r\nvar getItemDelegatedTargets = function($element) {\r\n var dropTargetIndex = inArray($element.get(0), knownDropTargets);\r\n var dropTargetSelectors = knownDropTargetSelectors[dropTargetIndex].filter(selector => selector);\r\n var $delegatedTargets = $element.find(dropTargetSelectors.join(\", \"));\r\n if (-1 !== inArray(void 0, knownDropTargetSelectors[dropTargetIndex])) {\r\n $delegatedTargets = $delegatedTargets.add($element)\r\n }\r\n return $delegatedTargets\r\n};\r\nvar getItemConfig = function($element) {\r\n var dropTargetIndex = inArray($element.get(0), knownDropTargets);\r\n return knownDropTargetConfigs[dropTargetIndex]\r\n};\r\nvar getItemPosition = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemPositionFunc) {\r\n return dropTargetConfig.itemPositionFunc($element)\r\n } else {\r\n return $element.offset()\r\n }\r\n};\r\nvar getItemSize = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemSizeFunc) {\r\n return dropTargetConfig.itemSizeFunc($element)\r\n }\r\n return {\r\n width: $element.get(0).getBoundingClientRect().width,\r\n height: $element.get(0).getBoundingClientRect().height\r\n }\r\n};\r\nvar DragEmitter = GestureEmitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"both\"\r\n },\r\n _init: function(e) {\r\n this._initEvent = e\r\n },\r\n _start: function(e) {\r\n e = this._fireEvent(DRAG_START_EVENT, this._initEvent);\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset;\r\n var dropTargets = wrapToArray(e.targetElements || (null === e.targetElements ? [] : knownDropTargets));\r\n this._dropTargets = iteratorUtils.map(dropTargets, (function(element) {\r\n return $(element).get(0)\r\n }))\r\n },\r\n _move: function(e) {\r\n var eventData = eData(e);\r\n var dragOffset = this._calculateOffset(eventData);\r\n e = this._fireEvent(DRAG_EVENT, e, {\r\n offset: dragOffset\r\n });\r\n this._processDropTargets(e);\r\n if (!e._cancelPreventDefault) {\r\n e.preventDefault()\r\n }\r\n },\r\n _calculateOffset: function(eventData) {\r\n return {\r\n x: this._calculateXOffset(eventData),\r\n y: this._calculateYOffset(eventData)\r\n }\r\n },\r\n _calculateXOffset: function(eventData) {\r\n if (\"vertical\" !== this.direction) {\r\n var offset = eventData.x - this._startEventData.x;\r\n return this._fitOffset(offset, this._maxLeftOffset, this._maxRightOffset)\r\n }\r\n return 0\r\n },\r\n _calculateYOffset: function(eventData) {\r\n if (\"horizontal\" !== this.direction) {\r\n var offset = eventData.y - this._startEventData.y;\r\n return this._fitOffset(offset, this._maxTopOffset, this._maxBottomOffset)\r\n }\r\n return 0\r\n },\r\n _fitOffset: function(offset, minOffset, maxOffset) {\r\n if (null != minOffset) {\r\n offset = Math.max(offset, -minOffset)\r\n }\r\n if (null != maxOffset) {\r\n offset = Math.min(offset, maxOffset)\r\n }\r\n return offset\r\n },\r\n _processDropTargets: function(e) {\r\n var target = this._findDropTarget(e);\r\n var sameTarget = target === this._currentDropTarget;\r\n if (!sameTarget) {\r\n this._fireDropTargetEvent(e, DRAG_LEAVE_EVENT);\r\n this._currentDropTarget = target;\r\n this._fireDropTargetEvent(e, DRAG_ENTER_EVENT)\r\n }\r\n },\r\n _fireDropTargetEvent: function(event, eventName) {\r\n if (!this._currentDropTarget) {\r\n return\r\n }\r\n var eventData = {\r\n type: eventName,\r\n originalEvent: event,\r\n draggingElement: this._$element.get(0),\r\n target: this._currentDropTarget\r\n };\r\n fireEvent(eventData)\r\n },\r\n _findDropTarget: function(e) {\r\n var that = this;\r\n var result;\r\n iteratorUtils.each(knownDropTargets, (function(_, target) {\r\n if (!that._checkDropTargetActive(target)) {\r\n return\r\n }\r\n var $target = $(target);\r\n iteratorUtils.each(getItemDelegatedTargets($target), (function(_, delegatedTarget) {\r\n var $delegatedTarget = $(delegatedTarget);\r\n if (that._checkDropTarget(getItemConfig($target), $delegatedTarget, $(result), e)) {\r\n result = delegatedTarget\r\n }\r\n }))\r\n }));\r\n return result\r\n },\r\n _checkDropTargetActive: function(target) {\r\n var active = false;\r\n iteratorUtils.each(this._dropTargets, (function(_, activeTarget) {\r\n active = active || activeTarget === target || contains(activeTarget, target);\r\n return !active\r\n }));\r\n return active\r\n },\r\n _checkDropTarget: function(config, $target, $prevTarget, e) {\r\n var isDraggingElement = $target.get(0) === $(e.target).get(0);\r\n if (isDraggingElement) {\r\n return false\r\n }\r\n var targetPosition = getItemPosition(config, $target);\r\n if (e.pageX < targetPosition.left) {\r\n return false\r\n }\r\n if (e.pageY < targetPosition.top) {\r\n return false\r\n }\r\n var targetSize = getItemSize(config, $target);\r\n if (e.pageX > targetPosition.left + targetSize.width) {\r\n return false\r\n }\r\n if (e.pageY > targetPosition.top + targetSize.height) {\r\n return false\r\n }\r\n if ($prevTarget.length && $prevTarget.closest($target).length) {\r\n return false\r\n }\r\n if (config.checkDropTarget && !config.checkDropTarget($target, e)) {\r\n return false\r\n }\r\n return $target\r\n },\r\n _end: function(e) {\r\n var eventData = eData(e);\r\n this._fireEvent(DRAG_END_EVENT, e, {\r\n offset: this._calculateOffset(eventData)\r\n });\r\n this._fireDropTargetEvent(e, DROP_EVENT);\r\n delete this._currentDropTarget\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: DragEmitter,\r\n events: [DRAG_START_EVENT, DRAG_EVENT, DRAG_END_EVENT]\r\n});\r\nexport {\r\n DRAG_EVENT as move, DRAG_START_EVENT as start, DRAG_END_EVENT as end, DRAG_ENTER_EVENT as enter, DRAG_LEAVE_EVENT as leave, DROP_EVENT as drop\r\n};\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOption = void 0;\nvar config = {\n deepWatch: false\n};\nfunction setOptions(options) {\n config = __assign(__assign({}, config), options);\n}\nfunction getOption(optionName) {\n return config[optionName];\n}\nexports.getOption = getOption;\nexports.default = setOptions;\n","/**\r\n * DevExtreme (esm/core/inferno_renderer.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n render as _render\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffectHost,\r\n hydrate\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createElement as _createElement\r\n} from \"inferno-create-element\";\r\nimport domAdapter from \"./dom_adapter\";\r\nimport {\r\n cleanDataRecursive\r\n} from \"./element_data\";\r\nimport injector from \"./utils/dependency_injector\";\r\nvar remove = element => {\r\n var {\r\n parentNode: parentNode\r\n } = element;\r\n if (parentNode) {\r\n cleanDataRecursive(element);\r\n parentNode.$V = element.$V;\r\n _render(null, parentNode);\r\n parentNode.appendChild(element);\r\n element.innerHTML = \"\";\r\n delete parentNode.$V\r\n }\r\n delete element.$V\r\n};\r\nexport default injector({\r\n createElement: (component, props) => _createElement(component, props),\r\n remove: remove,\r\n onAfterRender: () => {\r\n InfernoEffectHost.callEffects()\r\n },\r\n onPreRender: () => {\r\n InfernoEffectHost.lock()\r\n },\r\n render: (component, props, container, replace) => {\r\n if (!replace) {\r\n var {\r\n parentNode: parentNode\r\n } = container;\r\n var nextNode = null === container || void 0 === container ? void 0 : container.nextSibling;\r\n var rootNode = domAdapter.createElement(\"div\");\r\n rootNode.appendChild(container);\r\n var mountNode = domAdapter.createDocumentFragment().appendChild(rootNode);\r\n var vNodeAlreadyExists = !!container.$V;\r\n vNodeAlreadyExists && remove(container);\r\n hydrate(_createElement(component, props), mountNode);\r\n container.$V = mountNode.$V;\r\n if (parentNode) {\r\n parentNode.insertBefore(container, nextNode)\r\n }\r\n } else {\r\n _render(_createElement(component, props), container)\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/renovation/utils/shallow_equals.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nexport var shallowEquals = (firstObject, secondObject) => {\r\n if (Object.keys(firstObject).length !== Object.keys(secondObject).length) {\r\n return false\r\n }\r\n return Object.keys(firstObject).every(key => firstObject[key] === secondObject[key])\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/utils/utils.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nexport var removeDifferentElements = ($children, $newChildren) => {\r\n each($newChildren, (__, element) => {\r\n var hasComponent = false;\r\n each($children, (_, oldElement) => {\r\n if (element === oldElement) {\r\n hasComponent = true\r\n }\r\n });\r\n if (!hasComponent && element.parentNode) {\r\n element.parentNode.removeChild(element)\r\n }\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/core/polyfills/number.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar number = hasWindow() ? getWindow().Number : Number;\r\nnumber.isFinite = number.isFinite || function(value) {\r\n return \"number\" === typeof value && isFinite(value)\r\n};\r\nexport default number;\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/common/template_wrapper.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n InfernoComponent,\r\n InfernoEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n findDOMfromVNode\r\n} from \"inferno\";\r\nimport {\r\n shallowEquals\r\n} from \"../../utils/shallow_equals\";\r\nimport {\r\n replaceWith\r\n} from \"../../../core/utils/dom\";\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n removeDifferentElements\r\n} from \"../utils/utils\";\r\nimport Number from \"../../../core/polyfills/number\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nexport class TemplateWrapper extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.renderTemplate = this.renderTemplate.bind(this)\r\n }\r\n renderTemplate() {\r\n var _this$props$model;\r\n var node = findDOMfromVNode(this.$LI, true);\r\n var parentNode = node.parentNode;\r\n var $parent = $(parentNode);\r\n var $children = $parent.contents();\r\n var {\r\n data: data,\r\n index: index\r\n } = null !== (_this$props$model = this.props.model) && void 0 !== _this$props$model ? _this$props$model : {\r\n data: {}\r\n };\r\n if (data) {\r\n Object.keys(data).forEach(name => {\r\n if (data[name] && domAdapter.isNode(data[name])) {\r\n data[name] = getPublicElement($(data[name]))\r\n }\r\n })\r\n }\r\n var $result = $(this.props.template.render(_extends({\r\n container: getPublicElement($parent),\r\n transclude: this.props.transclude\r\n }, !this.props.transclude ? {\r\n model: data\r\n } : {}, !this.props.transclude && Number.isFinite(index) ? {\r\n index: index\r\n } : {})));\r\n replaceWith($(node), $result);\r\n return () => {\r\n removeDifferentElements($children, $parent.contents());\r\n parentNode.appendChild(node)\r\n }\r\n }\r\n shouldComponentUpdate(nextProps) {\r\n var {\r\n model: model,\r\n template: template\r\n } = this.props;\r\n var {\r\n model: nextModel,\r\n template: nextTemplate\r\n } = nextProps;\r\n var sameTemplate = template === nextTemplate;\r\n if (!sameTemplate) {\r\n return true\r\n }\r\n if (isDefined(model) && isDefined(nextModel)) {\r\n var {\r\n data: data,\r\n index: index\r\n } = model;\r\n var {\r\n data: nextData,\r\n index: nextIndex\r\n } = nextModel;\r\n return index !== nextIndex || !shallowEquals(data, nextData)\r\n }\r\n var sameModel = model === nextModel;\r\n return !sameModel\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.renderTemplate, [this.props.template, this.props.model])]\r\n }\r\n updateEffects() {\r\n this._effects[0].update([this.props.template, this.props.model])\r\n }\r\n componentWillUnmount() {}\r\n render() {\r\n return null\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/utils/update_props_immutable.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getPathParts\r\n} from \"../../../core/utils/data\";\r\n\r\nfunction cloneObjectValue(value) {\r\n return Array.isArray(value) ? [...value] : _extends({}, value)\r\n}\r\n\r\nfunction cloneObjectProp(value, prevValue, fullNameParts) {\r\n var result = fullNameParts.length > 0 && prevValue && value !== prevValue ? cloneObjectValue(prevValue) : cloneObjectValue(value);\r\n var name = fullNameParts[0];\r\n if (fullNameParts.length > 1) {\r\n result[name] = cloneObjectProp(value[name], null === prevValue || void 0 === prevValue ? void 0 : prevValue[name], fullNameParts.slice(1))\r\n } else if (name) {\r\n if (isPlainObject(value[name])) {\r\n result[name] = cloneObjectValue(value[name])\r\n } else {\r\n result[name] = value[name]\r\n }\r\n }\r\n return result\r\n}\r\nexport function updatePropsImmutable(props, option, name, fullName) {\r\n var currentPropsValue = option[name];\r\n var prevPropsValue = props[name];\r\n var result = props;\r\n if (isPlainObject(currentPropsValue) || name !== fullName && Array.isArray(currentPropsValue)) {\r\n result[name] = cloneObjectProp(currentPropsValue, prevPropsValue, getPathParts(fullName).slice(1))\r\n } else {\r\n result[name] = currentPropsValue\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/common/component.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createRef\r\n} from \"inferno\";\r\nimport KeyboardProcessor from \"../../../events/core/keyboard_processor\";\r\nimport renderer from \"../../../core/inferno_renderer\";\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport DOMComponent from \"../../../core/dom_component\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n TemplateWrapper\r\n} from \"./template_wrapper\";\r\nimport {\r\n updatePropsImmutable\r\n} from \"../utils/update_props_immutable\";\r\nvar setDefaultOptionValue = (options, defaultValueGetter) => name => {\r\n if (Object.prototype.hasOwnProperty.call(options, name) && void 0 === options[name]) {\r\n options[name] = defaultValueGetter(name)\r\n }\r\n};\r\nexport default class ComponentWrapper extends DOMComponent {\r\n constructor(element, options) {\r\n super(element, options);\r\n this._shouldRaiseContentReady = false;\r\n this.validateKeyDownHandler()\r\n }\r\n get _propsInfo() {\r\n return {\r\n allowNull: [],\r\n twoWay: [],\r\n elements: [],\r\n templates: [],\r\n props: []\r\n }\r\n }\r\n validateKeyDownHandler() {\r\n var supportedKeyNames = this.getSupportedKeyNames();\r\n var hasComponentDefaultKeyHandlers = supportedKeyNames.length > 0;\r\n var hasComponentKeyDownMethod = \"function\" === typeof this._viewComponent.prototype.keyDown;\r\n if (hasComponentDefaultKeyHandlers && !hasComponentKeyDownMethod) {\r\n throw Error(\"Component's declaration must have 'keyDown' method.\")\r\n }\r\n }\r\n get viewRef() {\r\n var _this$_viewRef;\r\n return null === (_this$_viewRef = this._viewRef) || void 0 === _this$_viewRef ? void 0 : _this$_viewRef.current\r\n }\r\n _checkContentReadyOption(fullName) {\r\n var contentReadyOptions = this._getContentReadyOptions().reduce((options, name) => {\r\n options[name] = true;\r\n return options\r\n }, {});\r\n this._checkContentReadyOption = optionName => !!contentReadyOptions[optionName];\r\n return this._checkContentReadyOption(fullName)\r\n }\r\n _getContentReadyOptions() {\r\n return [\"rtlEnabled\"]\r\n }\r\n _fireContentReady() {\r\n this._actionsMap.onContentReady({})\r\n }\r\n _getDefaultOptions() {\r\n return extend(true, super._getDefaultOptions(), this._viewComponent.defaultProps, this._propsInfo.twoWay.reduce((options, _ref) => {\r\n var [name, defaultName, eventName] = _ref;\r\n return _extends({}, options, {\r\n [name]: this._viewComponent.defaultProps[defaultName],\r\n [eventName]: value => this.option(name, value)\r\n })\r\n }, {}), this._propsInfo.templates.reduce((options, name) => _extends({}, options, {\r\n [name]: null\r\n }), {}))\r\n }\r\n _initMarkup() {\r\n var props = this.getProps();\r\n this._renderWrapper(props)\r\n }\r\n _renderWrapper(props) {\r\n var containerNode = this.$element()[0];\r\n if (!this._isNodeReplaced) {\r\n renderer.onPreRender()\r\n }\r\n renderer.render(this._viewComponent, props, containerNode, this._isNodeReplaced);\r\n if (!this._isNodeReplaced) {\r\n this._isNodeReplaced = true;\r\n renderer.onAfterRender();\r\n this._shouldRaiseContentReady = true\r\n }\r\n if (this._shouldRaiseContentReady) {\r\n this._fireContentReady();\r\n this._shouldRaiseContentReady = false\r\n }\r\n }\r\n _silent(name, value) {\r\n this._options.silent(name, value)\r\n }\r\n _render() {}\r\n _removeWidget() {\r\n renderer.remove(this.$element()[0])\r\n }\r\n _dispose() {\r\n this._removeWidget();\r\n super._dispose()\r\n }\r\n get elementAttr() {\r\n if (!this._elementAttr) {\r\n var {\r\n attributes: attributes\r\n } = this.$element()[0];\r\n var attrs = Array.from(attributes).filter(attr => {\r\n var _attributes$attr$name;\r\n return !this._propsInfo.templates.includes(attr.name) && (null === (_attributes$attr$name = attributes[attr.name]) || void 0 === _attributes$attr$name ? void 0 : _attributes$attr$name.specified)\r\n }).reduce((result, _ref2) => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref2;\r\n var updatedAttributes = result;\r\n updatedAttributes[name] = value;\r\n return updatedAttributes\r\n }, {});\r\n this._elementAttr = attrs;\r\n this._storedClasses = this.$element()[0].getAttribute(\"class\") || \"\"\r\n }\r\n var elemStyle = this.$element()[0].style;\r\n var style = {};\r\n for (var i = 0; i < elemStyle.length; i += 1) {\r\n style[elemStyle[i]] = elemStyle.getPropertyValue(elemStyle[i])\r\n }\r\n this._elementAttr.style = style;\r\n this._elementAttr.class = this._storedClasses;\r\n return this._elementAttr\r\n }\r\n _getAdditionalActionConfigs() {\r\n return {\r\n onContentReady: {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }\r\n }\r\n }\r\n _getAdditionalProps() {\r\n return []\r\n }\r\n _patchOptionValues(options) {\r\n var {\r\n allowNull: allowNull,\r\n elements: elements,\r\n props: props,\r\n twoWay: twoWay\r\n } = this._propsInfo;\r\n var {\r\n defaultProps: defaultProps\r\n } = this._viewComponent;\r\n var {\r\n children: children,\r\n onKeyboardHandled: onKeyboardHandled,\r\n ref: ref\r\n } = options;\r\n var onKeyDown = onKeyboardHandled ? (_, event_options) => {\r\n onKeyboardHandled(event_options)\r\n } : void 0;\r\n var widgetProps = {\r\n ref: ref,\r\n children: children,\r\n onKeyDown: onKeyDown\r\n };\r\n [...props, ...this._getAdditionalProps()].forEach(propName => {\r\n if (Object.prototype.hasOwnProperty.call(options, propName)) {\r\n widgetProps[propName] = options[propName]\r\n }\r\n });\r\n allowNull.forEach(setDefaultOptionValue(widgetProps, () => null));\r\n Object.keys(defaultProps).forEach(setDefaultOptionValue(widgetProps, name => defaultProps[name]));\r\n twoWay.forEach(_ref3 => {\r\n var [name, defaultName] = _ref3;\r\n setDefaultOptionValue(widgetProps, () => defaultProps[defaultName])(name)\r\n });\r\n elements.forEach(name => {\r\n if (name in widgetProps) {\r\n var value = widgetProps[name];\r\n if (isRenderer(value)) {\r\n widgetProps[name] = this._patchElementParam(value)\r\n }\r\n }\r\n });\r\n return widgetProps\r\n }\r\n getSupportedKeyNames() {\r\n return []\r\n }\r\n prepareStyleProp(props) {\r\n if (\"string\" === typeof props.style) {\r\n return _extends({}, props, {\r\n style: {},\r\n cssText: props.style\r\n })\r\n }\r\n return props\r\n }\r\n getProps() {\r\n var _this$elementAttr$cla, _elementAttr$class;\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option();\r\n var options = this._patchOptionValues(_extends({}, this._props, {\r\n ref: this._viewRef,\r\n children: this._extractDefaultSlot(),\r\n aria: this._aria\r\n }));\r\n this._propsInfo.templates.forEach(template => {\r\n options[template] = this._componentTemplates[template]\r\n });\r\n return this.prepareStyleProp(_extends({}, options, this.elementAttr, elementAttr, {\r\n className: [...(null !== (_this$elementAttr$cla = this.elementAttr.class) && void 0 !== _this$elementAttr$cla ? _this$elementAttr$cla : \"\").split(\" \"), ...(null !== (_elementAttr$class = null === elementAttr || void 0 === elementAttr ? void 0 : elementAttr.class) && void 0 !== _elementAttr$class ? _elementAttr$class : \"\").split(\" \")].filter((c, i, a) => c && a.indexOf(c) === i).join(\" \").trim(),\r\n class: \"\"\r\n }, this._actionsMap))\r\n }\r\n _getActionConfigs() {\r\n return {}\r\n }\r\n _getActionConfigsFull() {\r\n return _extends({}, this._getActionConfigs(), this._getAdditionalActionConfigs())\r\n }\r\n getDefaultTemplates() {\r\n var defaultTemplates = Object.values(this._templatesInfo);\r\n var result = {};\r\n defaultTemplates.forEach(template => {\r\n result[template] = \"dx-renovation-template-mock\"\r\n });\r\n return result\r\n }\r\n get _templatesInfo() {\r\n return {}\r\n }\r\n _optionsWithDefaultTemplates(options) {\r\n var templateOptions = Object.entries(this._templatesInfo).reduce((result, _ref4) => {\r\n var _options$templateName;\r\n var [templateName, templateValue] = _ref4;\r\n return _extends({}, result, {\r\n [templateName]: null !== (_options$templateName = options[templateName]) && void 0 !== _options$templateName ? _options$templateName : templateValue\r\n })\r\n }, {});\r\n return _extends({}, options, templateOptions)\r\n }\r\n _init() {\r\n var _this$_templateManage;\r\n super._init();\r\n this.customKeyHandlers = {};\r\n null === (_this$_templateManage = this._templateManager) || void 0 === _this$_templateManage ? void 0 : _this$_templateManage.addDefaultTemplates(this.getDefaultTemplates());\r\n this._props = this._optionsWithDefaultTemplates(this.option());\r\n this._actionsMap = {};\r\n this._aria = {};\r\n this._componentTemplates = {};\r\n this._propsInfo.templates.forEach(template => {\r\n this._componentTemplates[template] = this._createTemplateComponent(this._props[template])\r\n });\r\n Object.keys(this._getActionConfigsFull()).forEach(name => this._addAction(name));\r\n this._viewRef = createRef();\r\n this.defaultKeyHandlers = this._createDefaultKeyHandlers()\r\n }\r\n _createDefaultKeyHandlers() {\r\n var result = {};\r\n var keys = this.getSupportedKeyNames();\r\n keys.forEach(key => {\r\n result[key] = e => this.viewRef.keyDown(KeyboardProcessor.createKeyDownOptions(e))\r\n });\r\n return result\r\n }\r\n _addAction(event, actionToAdd) {\r\n var action = actionToAdd;\r\n if (!action) {\r\n var actionByOption = this._createActionByOption(event, this._getActionConfigsFull()[event]);\r\n action = actArgs => {\r\n Object.keys(actArgs).forEach(name => {\r\n if (isDefined(actArgs[name]) && domAdapter.isNode(actArgs[name])) {\r\n actArgs[name] = getPublicElement($(actArgs[name]))\r\n }\r\n });\r\n return actionByOption(actArgs)\r\n }\r\n }\r\n this._actionsMap[event] = action\r\n }\r\n _optionChanged(option) {\r\n var {\r\n fullName: fullName,\r\n name: name,\r\n value: value\r\n } = option;\r\n updatePropsImmutable(this._props, this.option(), name, fullName);\r\n if (this._propsInfo.templates.includes(name)) {\r\n this._componentTemplates[name] = this._createTemplateComponent(value)\r\n }\r\n if (name && this._getActionConfigsFull()[name]) {\r\n this._addAction(name)\r\n }\r\n this._shouldRaiseContentReady = this._shouldRaiseContentReady || this._checkContentReadyOption(fullName);\r\n super._optionChanged(option);\r\n this._invalidate()\r\n }\r\n _extractDefaultSlot() {\r\n if (this.option(\"_hasAnonymousTemplateContent\")) {\r\n return renderer.createElement(TemplateWrapper, {\r\n template: this._getTemplate(this._templateManager.anonymousTemplateName),\r\n transclude: true\r\n })\r\n }\r\n return null\r\n }\r\n _createTemplateComponent(templateOption) {\r\n if (!templateOption) {\r\n return\r\n }\r\n var template = this._getTemplate(templateOption);\r\n if (isString(template) && \"dx-renovation-template-mock\" === template) {\r\n return\r\n }\r\n return model => renderer.createElement(TemplateWrapper, {\r\n template: template,\r\n model: model\r\n })\r\n }\r\n _wrapKeyDownHandler(initialHandler) {\r\n return options => {\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = options;\r\n var keys = this.customKeyHandlers;\r\n var func = keys[keyName] || keys[which];\r\n if (void 0 !== func) {\r\n var handler = func.bind(this);\r\n var result = handler(originalEvent, options);\r\n if (!result) {\r\n originalEvent.cancel = true;\r\n return originalEvent\r\n }\r\n }\r\n return null === initialHandler || void 0 === initialHandler ? void 0 : initialHandler(originalEvent, options)\r\n }\r\n }\r\n _toPublicElement(element) {\r\n return getPublicElement($(element))\r\n }\r\n _patchElementParam(value) {\r\n try {\r\n var result = $(value);\r\n var element = null === result || void 0 === result ? void 0 : result.get(0);\r\n return null !== element && void 0 !== element && element.nodeType ? element : value\r\n } catch (error) {\r\n return value\r\n }\r\n }\r\n repaint() {\r\n this._isNodeReplaced = false;\r\n this._shouldRaiseContentReady = true;\r\n this._removeWidget();\r\n this._refresh()\r\n }\r\n _supportedKeys() {\r\n return _extends({}, this.defaultKeyHandlers, this.customKeyHandlers)\r\n }\r\n registerKeyHandler(key, handler) {\r\n this.customKeyHandlers[key] = handler\r\n }\r\n setAria(name, value) {\r\n this._aria[name] = value;\r\n this._initMarkup()\r\n }\r\n}\r\nComponentWrapper.IS_RENOVATED_WIDGET = false;\r\nComponentWrapper.IS_RENOVATED_WIDGET = true;\r\n","/**\r\n * DevExtreme (esm/ui/editor/editor.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport {\r\n data\r\n} from \"../../core/element_data\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport ValidationEngine from \"../validation_engine\";\r\nimport EventsEngine from \"../../events/core/events_engine\";\r\nimport ValidationMessage from \"../validation_message\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar READONLY_STATE_CLASS = \"dx-state-readonly\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar VALIDATION_TARGET = \"dx-validation-target\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar READONLY_NAMESPACE = \"editorReadOnly\";\r\nvar ALLOWED_STYLING_MODES = [\"outlined\", \"filled\", \"underlined\"];\r\nvar VALIDATION_MESSAGE_KEYS_MAP = {\r\n validationMessageMode: \"mode\",\r\n validationMessageOffset: \"offset\",\r\n validationBoundary: \"boundary\"\r\n};\r\nvar Editor = Widget.inherit({\r\n ctor: function() {\r\n this.showValidationMessageTimeout = null;\r\n this.validationRequest = Callbacks();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _createElement: function(element) {\r\n this.callBase(element);\r\n var $element = this.$element();\r\n if ($element) {\r\n data($element[0], VALIDATION_TARGET, this)\r\n }\r\n },\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._options.cache(\"validationTooltipOptions\", this.option(\"validationTooltipOptions\"));\r\n var $element = this.$element();\r\n $element.addClass(DX_INVALID_BADGE_CLASS)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n name: \"\",\r\n onValueChanged: null,\r\n readOnly: false,\r\n isValid: true,\r\n validationError: null,\r\n validationErrors: null,\r\n validationStatus: VALIDATION_STATUS_VALID,\r\n validationMessageMode: \"auto\",\r\n validationBoundary: void 0,\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {}\r\n })\r\n },\r\n _attachKeyboardEvents: function() {\r\n if (!this.option(\"readOnly\")) {\r\n this.callBase()\r\n }\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationError: true\r\n })\r\n },\r\n _createValueChangeAction: function() {\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _suppressValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = true\r\n },\r\n _resumeValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = false\r\n },\r\n _initMarkup: function() {\r\n var _this$option;\r\n this._toggleReadOnlyState();\r\n this._setSubmitElementName(this.option(\"name\"));\r\n this.callBase();\r\n this._renderValidationState();\r\n null === (_this$option = this.option(\"_onMarkupRendered\")) || void 0 === _this$option ? void 0 : _this$option()\r\n },\r\n _raiseValueChangeAction: function(value, previousValue) {\r\n if (!this._valueChangeAction) {\r\n this._createValueChangeAction()\r\n }\r\n this._valueChangeAction(this._valueChangeArgs(value, previousValue))\r\n },\r\n _valueChangeArgs: function(value, previousValue) {\r\n return {\r\n value: value,\r\n previousValue: previousValue,\r\n event: this._valueChangeEventInstance\r\n }\r\n },\r\n _saveValueChangeEvent: function(e) {\r\n this._valueChangeEventInstance = e\r\n },\r\n _focusInHandler: function(e) {\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (this._canValueBeChangedByClick() && isValidationMessageShownOnFocus) {\r\n var _this$_validationMess;\r\n var $validationMessageWrapper = null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.$wrapper();\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this.showValidationMessageTimeout = setTimeout(() => null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO), 150)\r\n }\r\n return this.callBase(e)\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return false\r\n },\r\n _getStylingModePrefix: function() {\r\n return \"dx-editor-\"\r\n },\r\n _renderStylingMode: function() {\r\n var optionValue = this.option(\"stylingMode\");\r\n var prefix = this._getStylingModePrefix();\r\n var allowedStylingClasses = ALLOWED_STYLING_MODES.map(mode => prefix + mode);\r\n allowedStylingClasses.forEach(className => this.$element().removeClass(className));\r\n var stylingModeClass = prefix + optionValue;\r\n if (-1 === allowedStylingClasses.indexOf(stylingModeClass)) {\r\n var defaultOptionValue = this._getDefaultOptions().stylingMode;\r\n var platformOptionValue = this._convertRulesToOptions(this._defaultOptionsRules()).stylingMode;\r\n stylingModeClass = prefix + (platformOptionValue || defaultOptionValue)\r\n }\r\n this.$element().addClass(stylingModeClass)\r\n },\r\n _getValidationErrors: function() {\r\n var validationErrors = this.option(\"validationErrors\");\r\n if (!validationErrors && this.option(\"validationError\")) {\r\n validationErrors = [this.option(\"validationError\")]\r\n }\r\n return validationErrors\r\n },\r\n _disposeValidationMessage: function() {\r\n if (this._$validationMessage) {\r\n this._$validationMessage.remove();\r\n this.setAria(\"describedby\", null);\r\n this._$validationMessage = void 0;\r\n this._validationMessage = void 0\r\n }\r\n },\r\n _toggleValidationClasses: function(isInvalid) {\r\n this.$element().toggleClass(INVALID_CLASS, isInvalid);\r\n this.setAria(VALIDATION_STATUS_INVALID, isInvalid || void 0)\r\n },\r\n _renderValidationState: function() {\r\n var isValid = this.option(\"isValid\") && this.option(\"validationStatus\") !== VALIDATION_STATUS_INVALID;\r\n var validationErrors = this._getValidationErrors();\r\n var $element = this.$element();\r\n this._toggleValidationClasses(!isValid);\r\n if (!hasWindow()) {\r\n return\r\n }\r\n this._disposeValidationMessage();\r\n if (!isValid && validationErrors) {\r\n var {\r\n validationMessageMode: validationMessageMode,\r\n validationMessageOffset: validationMessageOffset,\r\n validationBoundary: validationBoundary,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n this._$validationMessage = $(\"
\").appendTo($element);\r\n var validationMessageContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"describedby\", validationMessageContentId);\r\n this._validationMessage = new ValidationMessage(this._$validationMessage, extend({\r\n validationErrors: validationErrors,\r\n rtlEnabled: rtlEnabled,\r\n target: this._getValidationMessageTarget(),\r\n container: $element,\r\n mode: validationMessageMode,\r\n positionRequest: \"below\",\r\n offset: validationMessageOffset,\r\n boundary: validationBoundary,\r\n contentId: validationMessageContentId\r\n }, this._options.cache(\"validationTooltipOptions\")));\r\n this._bindInnerWidgetOptions(this._validationMessage, \"validationTooltipOptions\")\r\n }\r\n },\r\n _getValidationMessageTarget: function() {\r\n return this.$element()\r\n },\r\n _toggleReadOnlyState: function() {\r\n var readOnly = this.option(\"readOnly\");\r\n this._toggleBackspaceHandler(readOnly);\r\n this.$element().toggleClass(READONLY_STATE_CLASS, !!readOnly);\r\n this.setAria(\"readonly\", readOnly || void 0)\r\n },\r\n _toggleBackspaceHandler: function(isReadOnly) {\r\n var $eventTarget = this._keyboardEventBindingTarget();\r\n var eventName = addNamespace(\"keydown\", READONLY_NAMESPACE);\r\n EventsEngine.off($eventTarget, eventName);\r\n if (isReadOnly) {\r\n EventsEngine.on($eventTarget, eventName, e => {\r\n if (\"backspace\" === normalizeKeyName(e)) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n },\r\n _dispose: function() {\r\n var element = this.$element()[0];\r\n data(element, VALIDATION_TARGET, null);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this._disposeValidationMessage();\r\n this.callBase()\r\n },\r\n _setSubmitElementName: function(name) {\r\n var $submitElement = this._getSubmitElement();\r\n if (!$submitElement) {\r\n return\r\n }\r\n if (name.length > 0) {\r\n $submitElement.attr(\"name\", name)\r\n } else {\r\n $submitElement.removeAttr(\"name\")\r\n }\r\n },\r\n _getSubmitElement: function() {\r\n return null\r\n },\r\n _setValidationMessageOption: function(_ref) {\r\n var _this$_validationMess2;\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n var optionKey = VALIDATION_MESSAGE_KEYS_MAP[name] ? VALIDATION_MESSAGE_KEYS_MAP[name] : name;\r\n null === (_this$_validationMess2 = this._validationMessage) || void 0 === _this$_validationMess2 ? void 0 : _this$_validationMess2.option(optionKey, value)\r\n },\r\n _hasActiveElement: noop,\r\n _optionChanged: function(args) {\r\n var _this$_validationMess3;\r\n switch (args.name) {\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"readOnly\":\r\n this._toggleReadOnlyState();\r\n this._refreshFocusState();\r\n break;\r\n case \"value\":\r\n if (args.value != args.previousValue) {\r\n this.validationRequest.fire({\r\n value: args.value,\r\n editor: this\r\n })\r\n }\r\n if (!this._valueChangeActionSuppressed) {\r\n this._raiseValueChangeAction(args.value, args.previousValue);\r\n this._saveValueChangeEvent(void 0)\r\n }\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n null === (_this$_validationMess3 = this._validationMessage) || void 0 === _this$_validationMess3 ? void 0 : _this$_validationMess3.updateMaxWidth();\r\n break;\r\n case \"name\":\r\n this._setSubmitElementName(args.value);\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n this._renderValidationState();\r\n break;\r\n case \"validationBoundary\":\r\n case \"validationMessageMode\":\r\n case \"validationMessageOffset\":\r\n this._setValidationMessageOption(args);\r\n break;\r\n case \"rtlEnabled\":\r\n this._setValidationMessageOption(args);\r\n this.callBase(args);\r\n break;\r\n case \"validationTooltipOptions\":\r\n this._innerWidgetOptionChanged(this._validationMessage, args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n blur: function() {\r\n if (this._hasActiveElement()) {\r\n resetActiveElement()\r\n }\r\n },\r\n reset: function() {\r\n var defaultOptions = this._getDefaultOptions();\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n});\r\nEditor.isEditor = instance => instance instanceof Editor;\r\nexport default Editor;\r\n","/**\r\n * DevExtreme (esm/core/utils/version.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nexport function compare(x, y, maxLevel) {\r\n function normalizeArg(value) {\r\n if (\"string\" === typeof value) {\r\n return value.split(\".\")\r\n }\r\n if (\"number\" === typeof value) {\r\n return [value]\r\n }\r\n return value\r\n }\r\n x = normalizeArg(x);\r\n y = normalizeArg(y);\r\n var length = Math.max(x.length, y.length);\r\n if (isFinite(maxLevel)) {\r\n length = Math.min(length, maxLevel)\r\n }\r\n for (var i = 0; i < length; i++) {\r\n var xItem = parseInt(x[i] || 0, 10);\r\n var yItem = parseInt(y[i] || 0, 10);\r\n if (xItem < yItem) {\r\n return -1\r\n }\r\n if (xItem > yItem) {\r\n return 1\r\n }\r\n }\r\n return 0\r\n}\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplatesManager = void 0;\nvar config_1 = require(\"./config\");\nvar templates_discovering_1 = require(\"./templates-discovering\");\nvar dom_adapter_1 = __importDefault(require(\"devextreme/core/dom_adapter\"));\nvar events_1 = require(\"devextreme/events\");\nvar constants_1 = require(\"./constants\");\nvar helpers_1 = require(\"./helpers\");\nvar TemplatesManager = /** @class */ (function () {\n function TemplatesManager(component) {\n this._slots = {};\n this._templates = {};\n this._isDirty = false;\n this._component = component;\n this.discover();\n }\n TemplatesManager.prototype.discover = function () {\n var slots = templates_discovering_1.discover(this._component);\n this._slots = __assign(__assign({}, this._slots), slots);\n if (!helpers_1.allKeysAreEqual(this._templates, slots)) {\n this._prepareTemplates();\n }\n };\n Object.defineProperty(TemplatesManager.prototype, \"templates\", {\n get: function () {\n return this._templates;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TemplatesManager.prototype, \"isDirty\", {\n get: function () {\n return this._isDirty;\n },\n enumerable: false,\n configurable: true\n });\n TemplatesManager.prototype.resetDirtyFlag = function () {\n this._isDirty = false;\n };\n TemplatesManager.prototype._prepareTemplates = function () {\n this._templates = {};\n for (var _i = 0, _a = Object.keys(this._slots); _i < _a.length; _i++) {\n var name_1 = _a[_i];\n this._templates[name_1] = this.createDxTemplate(name_1);\n }\n this._isDirty = true;\n };\n TemplatesManager.prototype.createDxTemplate = function (name) {\n var _this = this;\n return {\n render: function (data) {\n var scopeData = config_1.getOption(\"useLegacyTemplateEngine\")\n ? data.model\n : { data: data.model, index: data.index };\n var container = data.container.get ? data.container.get(0) : data.container;\n var placeholder = document.createElement(\"div\");\n container.appendChild(placeholder);\n var mountedTemplate = templates_discovering_1.mountTemplate(function () { return _this._slots[name]; }, _this._component, scopeData, name, placeholder);\n var element = mountedTemplate.$el;\n dom_adapter_1.default.setClass(element, constants_1.DX_TEMPLATE_WRAPPER_CLASS, true);\n if (element.nodeType === Node.TEXT_NODE) {\n var removalListener = document.createElement(container.nodeName === \"TABLE\" ? \"tbody\" : \"span\");\n removalListener.style.display = \"none\";\n container.appendChild(removalListener);\n events_1.one(removalListener, constants_1.DX_REMOVE_EVENT, mountedTemplate.$destroy.bind(mountedTemplate));\n }\n else {\n events_1.one(element, constants_1.DX_REMOVE_EVENT, mountedTemplate.$destroy.bind(mountedTemplate));\n }\n return element;\n }\n };\n };\n return TemplatesManager;\n}());\nexports.TemplatesManager = TemplatesManager;\n","/**\r\n * DevExtreme (esm/core/utils/resize_callbacks.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"./window\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"./callbacks\";\r\nimport readyCallbacks from \"./ready_callbacks\";\r\nimport callOnce from \"./call_once\";\r\nvar resizeCallbacks = function() {\r\n var prevSize;\r\n var callbacks = Callbacks();\r\n var originalCallbacksAdd = callbacks.add;\r\n var originalCallbacksRemove = callbacks.remove;\r\n if (!hasWindow()) {\r\n return callbacks\r\n }\r\n var formatSize = function() {\r\n var window = getWindow();\r\n return {\r\n width: window.innerWidth,\r\n height: window.innerHeight\r\n }\r\n };\r\n var handleResize = function() {\r\n var now = formatSize();\r\n if (now.width === prevSize.width && now.height === prevSize.height) {\r\n return\r\n }\r\n var changedDimension;\r\n if (now.width === prevSize.width) {\r\n changedDimension = \"height\"\r\n }\r\n if (now.height === prevSize.height) {\r\n changedDimension = \"width\"\r\n }\r\n prevSize = now;\r\n callbacks.fire(changedDimension)\r\n };\r\n var setPrevSize = callOnce((function() {\r\n prevSize = formatSize()\r\n }));\r\n var removeListener;\r\n callbacks.add = function() {\r\n var result = originalCallbacksAdd.apply(callbacks, arguments);\r\n setPrevSize();\r\n readyCallbacks.add((function() {\r\n if (!removeListener && callbacks.has()) {\r\n removeListener = domAdapter.listen(getWindow(), \"resize\", handleResize)\r\n }\r\n }));\r\n return result\r\n };\r\n callbacks.remove = function() {\r\n var result = originalCallbacksRemove.apply(callbacks, arguments);\r\n if (!callbacks.has() && removeListener) {\r\n removeListener();\r\n removeListener = void 0\r\n }\r\n return result\r\n };\r\n return callbacks\r\n}();\r\nexport default resizeCallbacks;\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_provider.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"children\", \"rtlEnabled\"];\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var viewFunction = viewModel => viewModel.props.children;\r\nexport var ConfigProviderProps = {};\r\nexport class ConfigProvider extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {}\r\n }\r\n getChildContext() {\r\n return _extends({}, this.context, {\r\n ConfigContext: this.config\r\n })\r\n }\r\n get config() {\r\n if (void 0 !== this.__getterCache.config) {\r\n return this.__getterCache.config\r\n }\r\n return this.__getterCache.config = (() => ({\r\n rtlEnabled: this.props.rtlEnabled\r\n }))()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.rtlEnabled !== nextProps.rtlEnabled) {\r\n this.__getterCache.config = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n config: this.config,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nConfigProvider.defaultProps = ConfigProviderProps;\r\n","/**\r\n * DevExtreme (esm/renovation/utils/resolve_rtl.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport globalConfig from \"../../core/config\";\r\nexport function resolveRtlEnabled(rtlProp, config) {\r\n if (void 0 !== rtlProp) {\r\n return rtlProp\r\n }\r\n if (void 0 !== (null === config || void 0 === config ? void 0 : config.rtlEnabled)) {\r\n return config.rtlEnabled\r\n }\r\n return globalConfig().rtlEnabled\r\n}\r\nexport function resolveRtlEnabledDefinition(rtlProp, config) {\r\n var isPropDefined = isDefined(rtlProp);\r\n var onlyGlobalDefined = isDefined(globalConfig().rtlEnabled) && !isPropDefined && !isDefined(null === config || void 0 === config ? void 0 : config.rtlEnabled);\r\n return isPropDefined && rtlProp !== (null === config || void 0 === config ? void 0 : config.rtlEnabled) || onlyGlobalDefined\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/widget.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"_feedbackHideTimeout\", \"_feedbackShowTimeout\", \"accessKey\", \"activeStateEnabled\", \"activeStateUnit\", \"addWidgetClass\", \"aria\", \"children\", \"className\", \"classes\", \"cssText\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"name\", \"onActive\", \"onClick\", \"onDimensionChanged\", \"onFocusIn\", \"onFocusOut\", \"onHoverEnd\", \"onHoverStart\", \"onInactive\", \"onKeyDown\", \"onRootElementRendered\", \"onVisibilityChange\", \"rootElementRef\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent,\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport \"../../../events/click\";\r\nimport \"../../../events/hover\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n active,\r\n dxClick,\r\n focus,\r\n hover,\r\n keyboard,\r\n resize,\r\n visibility\r\n} from \"../../../events/short\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n focusable\r\n} from \"../../../ui/widget/selectors\";\r\nimport {\r\n normalizeStyleProp\r\n} from \"../../../core/utils/style\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"./base_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../common/config_context\";\r\nimport {\r\n ConfigProvider\r\n} from \"../../common/config_provider\";\r\nimport {\r\n resolveRtlEnabled,\r\n resolveRtlEnabledDefinition\r\n} from \"../../utils/resolve_rtl\";\r\nimport resizeCallbacks from \"../../../core/utils/resize_callbacks\";\r\nimport errors from \"../../../core/errors\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nvar DEFAULT_FEEDBACK_HIDE_TIMEOUT = 400;\r\nvar DEFAULT_FEEDBACK_SHOW_TIMEOUT = 30;\r\nvar getAria = args => Object.keys(args).reduce((r, key) => {\r\n if (args[key]) {\r\n return _extends({}, r, {\r\n [\"role\" === key || \"id\" === key ? key : \"aria-\".concat(key)]: String(args[key])\r\n })\r\n }\r\n return r\r\n}, {});\r\nexport var viewFunction = viewModel => {\r\n var widget = normalizeProps(createVNode(1, \"div\", viewModel.cssClasses, viewModel.props.children, 0, _extends({}, viewModel.attributes, {\r\n tabIndex: viewModel.tabIndex,\r\n title: viewModel.props.hint,\r\n hidden: !viewModel.props.visible,\r\n style: normalizeStyles(viewModel.styles)\r\n }), null, viewModel.widgetElementRef));\r\n return viewModel.shouldRenderConfigProvider ? createComponentVNode(2, ConfigProvider, {\r\n rtlEnabled: viewModel.rtlEnabled,\r\n children: widget\r\n }) : widget\r\n};\r\nexport var WidgetProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n _feedbackHideTimeout: DEFAULT_FEEDBACK_HIDE_TIMEOUT,\r\n _feedbackShowTimeout: DEFAULT_FEEDBACK_SHOW_TIMEOUT,\r\n cssText: \"\",\r\n get aria() {\r\n return {}\r\n },\r\n classes: \"\",\r\n name: \"\",\r\n addWidgetClass: true\r\n})));\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class Widget extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.widgetElementRef = infernoCreateRef();\r\n this.state = {\r\n active: false,\r\n focused: false,\r\n hovered: false\r\n };\r\n this.setRootElementRef = this.setRootElementRef.bind(this);\r\n this.activeEffect = this.activeEffect.bind(this);\r\n this.clickEffect = this.clickEffect.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.activate = this.activate.bind(this);\r\n this.deactivate = this.deactivate.bind(this);\r\n this.focusEffect = this.focusEffect.bind(this);\r\n this.hoverEffect = this.hoverEffect.bind(this);\r\n this.keyboardEffect = this.keyboardEffect.bind(this);\r\n this.resizeEffect = this.resizeEffect.bind(this);\r\n this.windowResizeEffect = this.windowResizeEffect.bind(this);\r\n this.visibilityEffect = this.visibilityEffect.bind(this);\r\n this.checkDeprecation = this.checkDeprecation.bind(this);\r\n this.applyCssTextEffect = this.applyCssTextEffect.bind(this)\r\n }\r\n get config() {\r\n if (\"ConfigContext\" in this.context) {\r\n return this.context.ConfigContext\r\n }\r\n return ConfigContext\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setRootElementRef, []), new InfernoEffect(this.activeEffect, [this.props._feedbackHideTimeout, this.props._feedbackShowTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.disabled, this.props.onActive, this.props.onInactive]), new InfernoEffect(this.clickEffect, [this.props.disabled, this.props.name, this.props.onClick]), new InfernoEffect(this.focusEffect, [this.props.disabled, this.props.focusStateEnabled, this.props.name, this.props.onFocusIn, this.props.onFocusOut]), new InfernoEffect(this.hoverEffect, [this.props.activeStateUnit, this.props.disabled, this.props.hoverStateEnabled, this.props.onHoverEnd, this.props.onHoverStart, this.state.active]), new InfernoEffect(this.keyboardEffect, [this.props.focusStateEnabled, this.props.onKeyDown]), new InfernoEffect(this.resizeEffect, [this.props.name, this.props.onDimensionChanged]), new InfernoEffect(this.windowResizeEffect, [this.props.onDimensionChanged]), new InfernoEffect(this.visibilityEffect, [this.props.name, this.props.onVisibilityChange]), new InfernoEffect(this.checkDeprecation, [this.props.height, this.props.width]), new InfernoEffect(this.applyCssTextEffect, [this.props.cssText]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2, _this$_effects$3, _this$_effects$4, _this$_effects$5, _this$_effects$6, _this$_effects$7, _this$_effects$8, _this$_effects$9, _this$_effects$10;\r\n null === (_this$_effects$ = this._effects[1]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props._feedbackHideTimeout, this.props._feedbackShowTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.disabled, this.props.onActive, this.props.onInactive]);\r\n null === (_this$_effects$2 = this._effects[2]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props.disabled, this.props.name, this.props.onClick]);\r\n null === (_this$_effects$3 = this._effects[3]) || void 0 === _this$_effects$3 ? void 0 : _this$_effects$3.update([this.props.disabled, this.props.focusStateEnabled, this.props.name, this.props.onFocusIn, this.props.onFocusOut]);\r\n null === (_this$_effects$4 = this._effects[4]) || void 0 === _this$_effects$4 ? void 0 : _this$_effects$4.update([this.props.activeStateUnit, this.props.disabled, this.props.hoverStateEnabled, this.props.onHoverEnd, this.props.onHoverStart, this.state.active]);\r\n null === (_this$_effects$5 = this._effects[5]) || void 0 === _this$_effects$5 ? void 0 : _this$_effects$5.update([this.props.focusStateEnabled, this.props.onKeyDown]);\r\n null === (_this$_effects$6 = this._effects[6]) || void 0 === _this$_effects$6 ? void 0 : _this$_effects$6.update([this.props.name, this.props.onDimensionChanged]);\r\n null === (_this$_effects$7 = this._effects[7]) || void 0 === _this$_effects$7 ? void 0 : _this$_effects$7.update([this.props.onDimensionChanged]);\r\n null === (_this$_effects$8 = this._effects[8]) || void 0 === _this$_effects$8 ? void 0 : _this$_effects$8.update([this.props.name, this.props.onVisibilityChange]);\r\n null === (_this$_effects$9 = this._effects[9]) || void 0 === _this$_effects$9 ? void 0 : _this$_effects$9.update([this.props.height, this.props.width]);\r\n null === (_this$_effects$10 = this._effects[10]) || void 0 === _this$_effects$10 ? void 0 : _this$_effects$10.update([this.props.cssText])\r\n }\r\n setRootElementRef() {\r\n var {\r\n onRootElementRendered: onRootElementRendered,\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.widgetElementRef.current\r\n }\r\n null === onRootElementRendered || void 0 === onRootElementRendered ? void 0 : onRootElementRendered(this.widgetElementRef.current)\r\n }\r\n activeEffect() {\r\n var {\r\n _feedbackHideTimeout: _feedbackHideTimeout,\r\n _feedbackShowTimeout: _feedbackShowTimeout,\r\n activeStateEnabled: activeStateEnabled,\r\n activeStateUnit: activeStateUnit,\r\n disabled: disabled,\r\n onActive: onActive,\r\n onInactive: onInactive\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (activeStateEnabled) {\r\n if (disabled) {\r\n this.setState(__state_argument => ({\r\n active: false\r\n }))\r\n } else {\r\n active.on(this.widgetElementRef.current, _ref => {\r\n var {\r\n event: event\r\n } = _ref;\r\n this.setState(__state_argument => ({\r\n active: true\r\n }));\r\n null === onActive || void 0 === onActive ? void 0 : onActive(event)\r\n }, _ref2 => {\r\n var {\r\n event: event\r\n } = _ref2;\r\n this.setState(__state_argument => ({\r\n active: false\r\n }));\r\n null === onInactive || void 0 === onInactive ? void 0 : onInactive(event)\r\n }, {\r\n hideTimeout: _feedbackHideTimeout,\r\n namespace: \"UIFeedback\",\r\n selector: selector,\r\n showTimeout: _feedbackShowTimeout\r\n });\r\n return () => active.off(this.widgetElementRef.current, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n }\r\n return\r\n }\r\n clickEffect() {\r\n var {\r\n disabled: disabled,\r\n name: name,\r\n onClick: onClick\r\n } = this.props;\r\n var namespace = name;\r\n if (onClick && !disabled) {\r\n dxClick.on(this.widgetElementRef.current, onClick, {\r\n namespace: namespace\r\n });\r\n return () => dxClick.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n focusEffect() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n name: name,\r\n onFocusIn: onFocusIn,\r\n onFocusOut: onFocusOut\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"Focus\");\r\n if (focusStateEnabled) {\r\n if (disabled) {\r\n this.setState(__state_argument => ({\r\n focused: false\r\n }))\r\n } else {\r\n focus.on(this.widgetElementRef.current, e => {\r\n if (!e.isDefaultPrevented()) {\r\n this.setState(__state_argument => ({\r\n focused: true\r\n }));\r\n null === onFocusIn || void 0 === onFocusIn ? void 0 : onFocusIn(e)\r\n }\r\n }, e => {\r\n if (!e.isDefaultPrevented()) {\r\n this.setState(__state_argument => ({\r\n focused: false\r\n }));\r\n null === onFocusOut || void 0 === onFocusOut ? void 0 : onFocusOut(e)\r\n }\r\n }, {\r\n isFocusable: focusable,\r\n namespace: namespace\r\n });\r\n return () => focus.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n }\r\n return\r\n }\r\n hoverEffect() {\r\n var {\r\n activeStateUnit: activeStateUnit,\r\n disabled: disabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onHoverEnd: onHoverEnd,\r\n onHoverStart: onHoverStart\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (hoverStateEnabled) {\r\n if (disabled) {\r\n this.setState(__state_argument => ({\r\n hovered: false\r\n }))\r\n } else {\r\n hover.on(this.widgetElementRef.current, _ref3 => {\r\n var {\r\n event: event\r\n } = _ref3;\r\n !this.state.active && this.setState(__state_argument => ({\r\n hovered: true\r\n }));\r\n null === onHoverStart || void 0 === onHoverStart ? void 0 : onHoverStart(event)\r\n }, event => {\r\n this.setState(__state_argument => ({\r\n hovered: false\r\n }));\r\n null === onHoverEnd || void 0 === onHoverEnd ? void 0 : onHoverEnd(event)\r\n }, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n });\r\n return () => hover.off(this.widgetElementRef.current, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n }\r\n return\r\n }\r\n keyboardEffect() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n if (focusStateEnabled && onKeyDown) {\r\n var id = keyboard.on(this.widgetElementRef.current, this.widgetElementRef.current, e => onKeyDown(e));\r\n return () => keyboard.off(id)\r\n }\r\n return\r\n }\r\n resizeEffect() {\r\n var namespace = \"\".concat(this.props.name, \"VisibilityChange\");\r\n var {\r\n onDimensionChanged: onDimensionChanged\r\n } = this.props;\r\n if (onDimensionChanged) {\r\n resize.on(this.widgetElementRef.current, onDimensionChanged, {\r\n namespace: namespace\r\n });\r\n return () => resize.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n windowResizeEffect() {\r\n var {\r\n onDimensionChanged: onDimensionChanged\r\n } = this.props;\r\n if (onDimensionChanged) {\r\n resizeCallbacks.add(onDimensionChanged);\r\n return () => {\r\n resizeCallbacks.remove(onDimensionChanged)\r\n }\r\n }\r\n return\r\n }\r\n visibilityEffect() {\r\n var {\r\n name: name,\r\n onVisibilityChange: onVisibilityChange\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"VisibilityChange\");\r\n if (onVisibilityChange) {\r\n visibility.on(this.widgetElementRef.current, () => onVisibilityChange(true), () => onVisibilityChange(false), {\r\n namespace: namespace\r\n });\r\n return () => visibility.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n checkDeprecation() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n if (isFunction(width)) {\r\n errors.log(\"W0017\", \"width\")\r\n }\r\n if (isFunction(height)) {\r\n errors.log(\"W0017\", \"height\")\r\n }\r\n }\r\n applyCssTextEffect() {\r\n var {\r\n cssText: cssText\r\n } = this.props;\r\n if (\"\" !== cssText) {\r\n this.widgetElementRef.current.style.cssText = cssText\r\n }\r\n }\r\n get shouldRenderConfigProvider() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.props;\r\n return resolveRtlEnabledDefinition(rtlEnabled, this.config)\r\n }\r\n get rtlEnabled() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.props;\r\n return resolveRtlEnabled(rtlEnabled, this.config)\r\n }\r\n get attributes() {\r\n var {\r\n aria: aria,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n visible: visible\r\n } = this.props;\r\n var accessKey = focusStateEnabled && !disabled && this.props.accessKey;\r\n return _extends({}, extend({}, this.restAttributes, accessKey && {\r\n accessKey: accessKey\r\n }), getAria(_extends({}, aria, {\r\n disabled: disabled,\r\n hidden: !visible\r\n })))\r\n }\r\n get styles() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n var style = this.restAttributes.style || {};\r\n var computedWidth = normalizeStyleProp(\"width\", isFunction(width) ? width() : width);\r\n var computedHeight = normalizeStyleProp(\"height\", isFunction(height) ? height() : height);\r\n return _extends({}, style, {\r\n height: null !== computedHeight && void 0 !== computedHeight ? computedHeight : style.height,\r\n width: null !== computedWidth && void 0 !== computedWidth ? computedWidth : style.width\r\n })\r\n }\r\n get cssClasses() {\r\n var {\r\n activeStateEnabled: activeStateEnabled,\r\n addWidgetClass: addWidgetClass,\r\n className: className,\r\n classes: classes,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onVisibilityChange: onVisibilityChange,\r\n visible: visible\r\n } = this.props;\r\n var isFocusable = !!focusStateEnabled && !disabled;\r\n var isHoverable = !!hoverStateEnabled && !disabled;\r\n var canBeActive = !!activeStateEnabled && !disabled;\r\n var classesMap = {\r\n \"dx-widget\": !!addWidgetClass,\r\n [String(classes)]: !!classes,\r\n [String(className)]: !!className,\r\n \"dx-state-disabled\": !!disabled,\r\n \"dx-state-invisible\": !visible,\r\n \"dx-state-focused\": !!this.state.focused && isFocusable,\r\n \"dx-state-active\": !!this.state.active && canBeActive,\r\n \"dx-state-hover\": !!this.state.hovered && isHoverable && !this.state.active,\r\n \"dx-rtl\": !!this.rtlEnabled,\r\n \"dx-visibility-change-handler\": !!onVisibilityChange\r\n };\r\n return combineClasses(classesMap)\r\n }\r\n get tabIndex() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n tabIndex: tabIndex\r\n } = this.props;\r\n var isFocusable = focusStateEnabled && !disabled;\r\n return isFocusable ? tabIndex : void 0\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n focus.trigger(this.widgetElementRef.current)\r\n }\r\n blur() {\r\n var activeElement = domAdapter.getActiveElement();\r\n if (this.widgetElementRef.current === activeElement) {\r\n activeElement.blur()\r\n }\r\n }\r\n activate() {\r\n this.setState(__state_argument => ({\r\n active: true\r\n }))\r\n }\r\n deactivate() {\r\n this.setState(__state_argument => ({\r\n active: false\r\n }))\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n active: this.state.active,\r\n focused: this.state.focused,\r\n hovered: this.state.hovered,\r\n widgetElementRef: this.widgetElementRef,\r\n config: this.config,\r\n shouldRenderConfigProvider: this.shouldRenderConfigProvider,\r\n rtlEnabled: this.rtlEnabled,\r\n attributes: this.attributes,\r\n styles: this.styles,\r\n cssClasses: this.cssClasses,\r\n tabIndex: this.tabIndex,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nWidget.defaultProps = WidgetProps;\r\n","/**\r\n * DevExtreme (esm/core/http_request.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nvar window = getWindow();\r\nimport injector from \"./utils/dependency_injector\";\r\nvar nativeXMLHttpRequest = {\r\n getXhr: function() {\r\n return new window.XMLHttpRequest\r\n }\r\n};\r\nexport default injector(nativeXMLHttpRequest);\r\n","/**\r\n * DevExtreme (esm/core/utils/ajax.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n Deferred\r\n} from \"./deferred\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport httpRequest from \"../../core/http_request\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n extendFromObject\r\n} from \"./extend\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport Promise from \"../polyfills/promise\";\r\nimport injector from \"./dependency_injector\";\r\nvar SUCCESS = \"success\";\r\nvar ERROR = \"error\";\r\nvar TIMEOUT = \"timeout\";\r\nvar NO_CONTENT = \"nocontent\";\r\nvar PARSER_ERROR = \"parsererror\";\r\nvar isStatusSuccess = function(status) {\r\n return 200 <= status && status < 300\r\n};\r\nvar hasContent = function(status) {\r\n return 204 !== status\r\n};\r\nvar paramsConvert = function(params) {\r\n var result = [];\r\n for (var name in params) {\r\n var value = params[name];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n if (null === value) {\r\n value = \"\"\r\n }\r\n if (\"function\" === typeof value) {\r\n value = value()\r\n }\r\n result.push(encodeURIComponent(name) + \"=\" + encodeURIComponent(value))\r\n }\r\n return result.join(\"&\")\r\n};\r\nvar createScript = function(options) {\r\n var script = domAdapter.createElement(\"script\");\r\n for (var name in options) {\r\n script[name] = options[name]\r\n }\r\n return script\r\n};\r\nvar removeScript = function(scriptNode) {\r\n scriptNode.parentNode.removeChild(scriptNode)\r\n};\r\nvar appendToHead = function(element) {\r\n return domAdapter.getHead().appendChild(element)\r\n};\r\nvar evalScript = function(code) {\r\n var script = createScript({\r\n text: code\r\n });\r\n appendToHead(script);\r\n removeScript(script)\r\n};\r\nvar evalCrossDomainScript = function(url) {\r\n var script = createScript({\r\n src: url\r\n });\r\n return new Promise((function(resolve, reject) {\r\n var events = {\r\n load: resolve,\r\n error: reject\r\n };\r\n var loadHandler = function(e) {\r\n events[e.type]();\r\n removeScript(script)\r\n };\r\n for (var event in events) {\r\n domAdapter.listen(script, event, loadHandler)\r\n }\r\n appendToHead(script)\r\n }))\r\n};\r\nvar getAcceptHeader = function(options) {\r\n var dataType = options.dataType || \"*\";\r\n var scriptAccept = \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\";\r\n var accepts = {\r\n \"*\": \"*/*\",\r\n text: \"text/plain\",\r\n html: \"text/html\",\r\n xml: \"application/xml, text/xml\",\r\n json: \"application/json, text/javascript\",\r\n jsonp: scriptAccept,\r\n script: scriptAccept\r\n };\r\n extendFromObject(accepts, options.accepts, true);\r\n return accepts[dataType] ? accepts[dataType] + (\"*\" !== dataType ? \", */*; q=0.01\" : \"\") : accepts[\"*\"]\r\n};\r\nvar getContentTypeHeader = function(options) {\r\n var defaultContentType;\r\n if (options.data && !options.upload && \"GET\" !== getMethod(options)) {\r\n defaultContentType = \"application/x-www-form-urlencoded;charset=utf-8\"\r\n }\r\n return options.contentType || defaultContentType\r\n};\r\nvar getDataFromResponse = function(xhr) {\r\n return xhr.responseType && \"text\" !== xhr.responseType || \"string\" !== typeof xhr.responseText ? xhr.response : xhr.responseText\r\n};\r\nvar postProcess = function(deferred, xhr, dataType) {\r\n var data = getDataFromResponse(xhr);\r\n switch (dataType) {\r\n case \"jsonp\":\r\n evalScript(data);\r\n break;\r\n case \"script\":\r\n evalScript(data);\r\n deferred.resolve(data, SUCCESS, xhr);\r\n break;\r\n case \"json\":\r\n try {\r\n deferred.resolve(JSON.parse(data), SUCCESS, xhr)\r\n } catch (e) {\r\n deferred.reject(xhr, PARSER_ERROR, e)\r\n }\r\n break;\r\n default:\r\n deferred.resolve(data, SUCCESS, xhr)\r\n }\r\n};\r\nvar isCrossDomain = function(url) {\r\n if (!hasWindow()) {\r\n return true\r\n }\r\n var crossDomain = false;\r\n var originAnchor = domAdapter.createElement(\"a\");\r\n var urlAnchor = domAdapter.createElement(\"a\");\r\n originAnchor.href = window.location.href;\r\n try {\r\n urlAnchor.href = url;\r\n urlAnchor.href = urlAnchor.href;\r\n crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host\r\n } catch (e) {\r\n crossDomain = true\r\n }\r\n return crossDomain\r\n};\r\nvar setHttpTimeout = function(timeout, xhr) {\r\n return timeout && setTimeout((function() {\r\n xhr.customStatus = TIMEOUT;\r\n xhr.abort()\r\n }), timeout)\r\n};\r\nvar getJsonpOptions = function(options) {\r\n if (\"jsonp\" === options.dataType) {\r\n var random = Math.random().toString().replace(/\\D/g, \"\");\r\n var callbackName = options.jsonpCallback || \"dxCallback\" + Date.now() + \"_\" + random;\r\n var callbackParameter = options.jsonp || \"callback\";\r\n options.data = options.data || {};\r\n options.data[callbackParameter] = callbackName;\r\n return callbackName\r\n }\r\n};\r\nvar getRequestOptions = function(options, headers) {\r\n var params = options.data;\r\n var paramsAlreadyString = \"string\" === typeof params;\r\n var url = options.url || window.location.href;\r\n if (!paramsAlreadyString && !options.cache) {\r\n params = params || {};\r\n params._ = Date.now()\r\n }\r\n if (params && !options.upload) {\r\n if (!paramsAlreadyString) {\r\n params = paramsConvert(params)\r\n }\r\n if (\"GET\" === getMethod(options)) {\r\n if (\"\" !== params) {\r\n url += (url.indexOf(\"?\") > -1 ? \"&\" : \"?\") + params\r\n }\r\n params = null\r\n } else if (headers[\"Content-Type\"] && headers[\"Content-Type\"].indexOf(\"application/x-www-form-urlencoded\") > -1) {\r\n params = params.replace(/%20/g, \"+\")\r\n }\r\n }\r\n return {\r\n url: url,\r\n parameters: params\r\n }\r\n};\r\n\r\nfunction getMethod(options) {\r\n return (options.method || \"GET\").toUpperCase()\r\n}\r\nvar getRequestHeaders = function(options) {\r\n var headers = options.headers || {};\r\n headers[\"Content-Type\"] = headers[\"Content-Type\"] || getContentTypeHeader(options);\r\n headers.Accept = headers.Accept || getAcceptHeader(options);\r\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\r\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\"\r\n }\r\n return headers\r\n};\r\nvar sendRequest = function(options) {\r\n var xhr = httpRequest.getXhr();\r\n var d = new Deferred;\r\n var result = d.promise();\r\n var async = isDefined(options.async) ? options.async : true;\r\n var dataType = options.dataType;\r\n var timeout = options.timeout || 0;\r\n var timeoutId;\r\n options.crossDomain = isCrossDomain(options.url);\r\n var needScriptEvaluation = \"jsonp\" === dataType || \"script\" === dataType;\r\n if (void 0 === options.cache) {\r\n options.cache = !needScriptEvaluation\r\n }\r\n var callbackName = getJsonpOptions(options);\r\n var headers = getRequestHeaders(options);\r\n var requestOptions = getRequestOptions(options, headers);\r\n var url = requestOptions.url;\r\n var parameters = requestOptions.parameters;\r\n if (callbackName) {\r\n window[callbackName] = function(data) {\r\n d.resolve(data, SUCCESS, xhr)\r\n }\r\n }\r\n if (options.crossDomain && needScriptEvaluation) {\r\n evalCrossDomainScript(url).then((function() {\r\n if (\"jsonp\" === dataType) {\r\n return\r\n }\r\n d.resolve(null, SUCCESS, xhr)\r\n }), (function() {\r\n d.reject(xhr, ERROR)\r\n }));\r\n return result\r\n }\r\n if (options.crossDomain && !(\"withCredentials\" in xhr)) {\r\n d.reject(xhr, ERROR);\r\n return result\r\n }\r\n xhr.open(getMethod(options), url, async, options.username, options.password);\r\n if (async) {\r\n xhr.timeout = timeout;\r\n timeoutId = setHttpTimeout(timeout, xhr, d)\r\n }\r\n xhr.onreadystatechange = function(e) {\r\n if (4 === xhr.readyState) {\r\n clearTimeout(timeoutId);\r\n if (isStatusSuccess(xhr.status)) {\r\n if (hasContent(xhr.status)) {\r\n postProcess(d, xhr, dataType)\r\n } else {\r\n d.resolve(null, NO_CONTENT, xhr)\r\n }\r\n } else {\r\n d.reject(xhr, xhr.customStatus || ERROR)\r\n }\r\n }\r\n };\r\n if (options.upload) {\r\n xhr.upload.onprogress = options.upload.onprogress;\r\n xhr.upload.onloadstart = options.upload.onloadstart;\r\n xhr.upload.onabort = options.upload.onabort\r\n }\r\n if (options.xhrFields) {\r\n for (var field in options.xhrFields) {\r\n xhr[field] = options.xhrFields[field]\r\n }\r\n }\r\n if (\"arraybuffer\" === options.responseType) {\r\n xhr.responseType = options.responseType\r\n }\r\n for (var name in headers) {\r\n if (Object.prototype.hasOwnProperty.call(headers, name) && isDefined(headers[name])) {\r\n xhr.setRequestHeader(name, headers[name])\r\n }\r\n }\r\n if (options.beforeSend) {\r\n options.beforeSend(xhr)\r\n }\r\n xhr.send(parameters);\r\n result.abort = function() {\r\n xhr.abort()\r\n };\r\n return result\r\n};\r\nexport default injector({\r\n sendRequest: sendRequest\r\n});\r\n","/**\r\n * DevExtreme (esm/events/short.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport domAdapter from \"../core/dom_adapter\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport KeyboardProcessor from \"./core/keyboard_processor\";\r\nimport {\r\n addNamespace as pureAddNamespace\r\n} from \"./utils/index\";\r\n\r\nfunction addNamespace(event, namespace) {\r\n return namespace ? pureAddNamespace(event, namespace) : event\r\n}\r\n\r\nfunction executeAction(action, args) {\r\n return \"function\" === typeof action ? action(args) : action.execute(args)\r\n}\r\nexport var active = {\r\n on: ($el, active, inactive, opts) => {\r\n var {\r\n selector: selector,\r\n showTimeout: showTimeout,\r\n hideTimeout: hideTimeout,\r\n namespace: namespace\r\n } = opts;\r\n eventsEngine.on($el, addNamespace(\"dxactive\", namespace), selector, {\r\n timeout: showTimeout\r\n }, event => executeAction(active, {\r\n event: event,\r\n element: event.currentTarget\r\n }));\r\n eventsEngine.on($el, addNamespace(\"dxinactive\", namespace), selector, {\r\n timeout: hideTimeout\r\n }, event => executeAction(inactive, {\r\n event: event,\r\n element: event.currentTarget\r\n }))\r\n },\r\n off: ($el, _ref) => {\r\n var {\r\n namespace: namespace,\r\n selector: selector\r\n } = _ref;\r\n eventsEngine.off($el, addNamespace(\"dxactive\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxinactive\", namespace), selector)\r\n }\r\n};\r\nexport var resize = {\r\n on: function($el, resize) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxresize\", namespace), resize)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxresize\", namespace))\r\n }\r\n};\r\nexport var hover = {\r\n on: ($el, start, end, _ref2) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref2;\r\n eventsEngine.on($el, addNamespace(\"dxhoverend\", namespace), selector, event => end(event));\r\n eventsEngine.on($el, addNamespace(\"dxhoverstart\", namespace), selector, event => executeAction(start, {\r\n element: event.target,\r\n event: event\r\n }))\r\n },\r\n off: ($el, _ref3) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref3;\r\n eventsEngine.off($el, addNamespace(\"dxhoverstart\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxhoverend\", namespace), selector)\r\n }\r\n};\r\nexport var visibility = {\r\n on: ($el, shown, hiding, _ref4) => {\r\n var {\r\n namespace: namespace\r\n } = _ref4;\r\n eventsEngine.on($el, addNamespace(\"dxhiding\", namespace), hiding);\r\n eventsEngine.on($el, addNamespace(\"dxshown\", namespace), shown)\r\n },\r\n off: ($el, _ref5) => {\r\n var {\r\n namespace: namespace\r\n } = _ref5;\r\n eventsEngine.off($el, addNamespace(\"dxhiding\", namespace));\r\n eventsEngine.off($el, addNamespace(\"dxshown\", namespace))\r\n }\r\n};\r\nexport var focus = {\r\n on: ($el, focusIn, focusOut, _ref6) => {\r\n var {\r\n namespace: namespace,\r\n isFocusable: isFocusable\r\n } = _ref6;\r\n eventsEngine.on($el, addNamespace(\"focusin\", namespace), focusIn);\r\n eventsEngine.on($el, addNamespace(\"focusout\", namespace), focusOut);\r\n if (domAdapter.hasDocumentProperty(\"onbeforeactivate\")) {\r\n eventsEngine.on($el, addNamespace(\"beforeactivate\", namespace), e => isFocusable(null, e.target) || e.preventDefault())\r\n }\r\n },\r\n off: ($el, _ref7) => {\r\n var {\r\n namespace: namespace\r\n } = _ref7;\r\n eventsEngine.off($el, addNamespace(\"focusin\", namespace));\r\n eventsEngine.off($el, addNamespace(\"focusout\", namespace));\r\n if (domAdapter.hasDocumentProperty(\"onbeforeactivate\")) {\r\n eventsEngine.off($el, addNamespace(\"beforeactivate\", namespace))\r\n }\r\n },\r\n trigger: $el => eventsEngine.trigger($el, \"focus\")\r\n};\r\nexport var dxClick = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxclick\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxclick\", namespace))\r\n }\r\n};\r\nexport var click = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"click\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"click\", namespace))\r\n }\r\n};\r\nvar index = 0;\r\nvar keyboardProcessors = {};\r\nvar generateListenerId = () => \"keyboardProcessorId\".concat(index++);\r\nexport var keyboard = {\r\n on: (element, focusTarget, handler) => {\r\n var listenerId = generateListenerId();\r\n keyboardProcessors[listenerId] = new KeyboardProcessor({\r\n element: element,\r\n focusTarget: focusTarget,\r\n handler: handler\r\n });\r\n return listenerId\r\n },\r\n off: listenerId => {\r\n if (listenerId && keyboardProcessors[listenerId]) {\r\n keyboardProcessors[listenerId].dispose();\r\n delete keyboardProcessors[listenerId]\r\n }\r\n },\r\n _getProcessor: listenerId => keyboardProcessors[listenerId]\r\n};\r\n","/**\r\n * DevExtreme (esm/core/action.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"./renderer\";\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isPlainObject,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nexport default class Action {\r\n constructor(action, config) {\r\n config = config || {};\r\n this._action = action;\r\n this._context = config.context || getWindow();\r\n this._beforeExecute = config.beforeExecute;\r\n this._afterExecute = config.afterExecute;\r\n this._component = config.component;\r\n this._validatingTargetName = config.validatingTargetName;\r\n var excludeValidators = this._excludeValidators = {};\r\n if (config.excludeValidators) {\r\n for (var i = 0; i < config.excludeValidators.length; i++) {\r\n excludeValidators[config.excludeValidators[i]] = true\r\n }\r\n }\r\n }\r\n execute() {\r\n var e = {\r\n action: this._action,\r\n args: Array.prototype.slice.call(arguments),\r\n context: this._context,\r\n component: this._component,\r\n validatingTargetName: this._validatingTargetName,\r\n cancel: false,\r\n handled: false\r\n };\r\n var beforeExecute = this._beforeExecute;\r\n var afterExecute = this._afterExecute;\r\n var argsBag = e.args[0] || {};\r\n if (!this._validateAction(e)) {\r\n return\r\n }\r\n null === beforeExecute || void 0 === beforeExecute ? void 0 : beforeExecute.call(this._context, e);\r\n if (e.cancel) {\r\n return\r\n }\r\n var result = this._executeAction(e);\r\n if (argsBag.cancel) {\r\n return\r\n }\r\n null === afterExecute || void 0 === afterExecute ? void 0 : afterExecute.call(this._context, e);\r\n return result\r\n }\r\n _validateAction(e) {\r\n var excludeValidators = this._excludeValidators;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n if (!excludeValidators[name]) {\r\n var _executor$validate;\r\n var executor = executors[name];\r\n null === (_executor$validate = executor.validate) || void 0 === _executor$validate ? void 0 : _executor$validate.call(executor, e);\r\n if (e.cancel) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n }\r\n _executeAction(e) {\r\n var result;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n var _executor$execute;\r\n var executor = executors[name];\r\n null === (_executor$execute = executor.execute) || void 0 === _executor$execute ? void 0 : _executor$execute.call(executor, e);\r\n if (e.handled) {\r\n result = e.result;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n static registerExecutor(name, executor) {\r\n if (isPlainObject(name)) {\r\n each(name, Action.registerExecutor);\r\n return\r\n }\r\n Action.executors[name] = executor\r\n }\r\n static unregisterExecutor() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n each(args, (function() {\r\n delete Action.executors[this]\r\n }))\r\n }\r\n}\r\nAction.executors = {};\r\nvar createValidatorByTargetElement = condition => e => {\r\n if (!e.args.length) {\r\n return\r\n }\r\n var args = e.args[0];\r\n var element = args[e.validatingTargetName] || args.element;\r\n if (element && condition($(element))) {\r\n e.cancel = true\r\n }\r\n};\r\nAction.registerExecutor({\r\n disabled: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-disabled, .dx-state-disabled *\"))\r\n },\r\n readOnly: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-readonly, .dx-state-readonly *:not(.dx-state-independent)\"))\r\n },\r\n undefined: {\r\n execute: e => {\r\n if (!e.action) {\r\n e.result = void 0;\r\n e.handled = true\r\n }\r\n }\r\n },\r\n func: {\r\n execute: e => {\r\n if (isFunction(e.action)) {\r\n e.result = e.action.call(e.context, e.args[0]);\r\n e.handled = true\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/data/errors.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport errorUtils from \"../core/utils/error\";\r\nimport coreErrors from \"../core/errors\";\r\nexport var errors = errorUtils(coreErrors.ERROR_MESSAGES, {\r\n E4000: \"[DevExpress.data]: {0}\",\r\n E4001: \"Unknown aggregating function is detected: '{0}'\",\r\n E4002: \"Unsupported OData protocol version is used\",\r\n E4003: \"Unknown filter operation is used: {0}\",\r\n E4004: \"The thenby() method is called before the sortby() method\",\r\n E4005: \"Store requires a key expression for this operation\",\r\n E4006: \"ArrayStore 'data' option must be an array\",\r\n E4007: \"Compound keys cannot be auto-generated\",\r\n E4008: \"Attempt to insert an item with a duplicated key\",\r\n E4009: \"Data item cannot be found\",\r\n E4010: \"CustomStore does not support creating queries\",\r\n E4011: \"Custom Store method is not implemented or is not a function: {0}\",\r\n E4012: \"Custom Store method returns an invalid value: {0}\",\r\n E4013: \"Local Store requires the 'name' configuration option is specified\",\r\n E4014: \"Unknown data type is specified for ODataStore: {0}\",\r\n E4015: \"Unknown entity name or alias is used: {0}\",\r\n E4016: \"The compileSetter(expr) method is called with 'self' passed as a parameter\",\r\n E4017: \"Keys cannot be modified\",\r\n E4018: \"The server has returned a non-numeric value in a response to an item count request\",\r\n E4019: \"Mixing of group operators inside a single group of filter expression is not allowed\",\r\n E4020: \"Unknown store type is detected: {0}\",\r\n E4021: \"The server response does not provide the totalCount value\",\r\n E4022: \"The server response does not provide the groupCount value\",\r\n E4023: \"Could not parse the following XML: {0}\",\r\n E4024: \"String function {0} cannot be used with the data field {1} of type {2}.\",\r\n W4000: \"Data returned from the server has an incorrect structure\",\r\n W4001: 'The {0} field is listed in both \"keyType\" and \"fieldTypes\". The value of \"fieldTypes\" is used.',\r\n W4002: \"Data loading has failed for some cells due to the following error: {0}\"\r\n});\r\nexport var errorHandler = null;\r\nexport var handleError = function(error) {\r\n var _errorHandler;\r\n null === (_errorHandler = errorHandler) || void 0 === _errorHandler ? void 0 : _errorHandler(error)\r\n};\r\nexport var setErrorHandler = handler => errorHandler = handler;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/utils.support.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport devices from \"../../core/devices\";\r\n\r\nfunction isModernAndroidDevice() {\r\n var {\r\n android: android,\r\n version: version\r\n } = devices.real();\r\n return android && version[0] > 4\r\n}\r\nexport function isInputEventsL2Supported() {\r\n return \"onbeforeinput\" in domAdapter.createElement(\"input\") || isModernAndroidDevice()\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.rule.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar EMPTY_CHAR = \" \";\r\nvar BaseMaskRule = Class.inherit({\r\n ctor: function(config) {\r\n this._value = EMPTY_CHAR;\r\n extend(this, config)\r\n },\r\n next: function(rule) {\r\n if (!arguments.length) {\r\n return this._next\r\n }\r\n this._next = rule\r\n },\r\n text: noop,\r\n value: noop,\r\n rawValue: noop,\r\n handle: noop,\r\n _prepareHandlingArgs: function(args, config) {\r\n var _config$str, _config$start, _config$length;\r\n config = config || {};\r\n var handlingProperty = Object.prototype.hasOwnProperty.call(args, \"value\") ? \"value\" : \"text\";\r\n args[handlingProperty] = null !== (_config$str = config.str) && void 0 !== _config$str ? _config$str : args[handlingProperty];\r\n args.start = null !== (_config$start = config.start) && void 0 !== _config$start ? _config$start : args.start;\r\n args.length = null !== (_config$length = config.length) && void 0 !== _config$length ? _config$length : args.length;\r\n args.index = args.index + 1;\r\n return args\r\n },\r\n reset: noop,\r\n clear: noop,\r\n first: function(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n },\r\n isAccepted: function() {\r\n return false\r\n },\r\n adjustedCaret: function(caret, isForwardDirection, char) {\r\n return isForwardDirection ? this._adjustedForward(caret, 0, char) : this._adjustedBackward(caret, 0, char)\r\n },\r\n _adjustedForward: noop,\r\n _adjustedBackward: noop,\r\n isValid: noop\r\n});\r\nexport var EmptyMaskRule = BaseMaskRule.inherit({\r\n next: noop,\r\n handle: function() {\r\n return 0\r\n },\r\n text: function() {\r\n return \"\"\r\n },\r\n value: function() {\r\n return \"\"\r\n },\r\n first: function() {\r\n return 0\r\n },\r\n rawValue: function() {\r\n return \"\"\r\n },\r\n adjustedCaret: function() {\r\n return 0\r\n },\r\n isValid: function() {\r\n return true\r\n }\r\n});\r\nexport var MaskRule = BaseMaskRule.inherit({\r\n text: function() {\r\n return (this._value !== EMPTY_CHAR ? this._value : this.maskChar) + this.next().text()\r\n },\r\n value: function() {\r\n return this._value + this.next().value()\r\n },\r\n rawValue: function() {\r\n return this._value + this.next().rawValue()\r\n },\r\n handle: function(args) {\r\n var str = Object.prototype.hasOwnProperty.call(args, \"value\") ? args.value : args.text;\r\n if (!str || !str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char, args);\r\n return this._accepted() ? this.next().handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n })) + 1 : this.handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }))\r\n },\r\n clear: function(args) {\r\n this._tryAcceptChar(EMPTY_CHAR, args);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n },\r\n reset: function() {\r\n this._accepted(false);\r\n this.next().reset()\r\n },\r\n _tryAcceptChar: function(char, args) {\r\n this._accepted(false);\r\n if (!this._isAllowed(char, args)) {\r\n return\r\n }\r\n var acceptedChar = char === EMPTY_CHAR ? this.maskChar : char;\r\n args.fullText = args.fullText.substring(0, args.index) + acceptedChar + args.fullText.substring(args.index + 1);\r\n this._accepted(true);\r\n this._value = char\r\n },\r\n _accepted: function(value) {\r\n if (!arguments.length) {\r\n return !!this._isAccepted\r\n }\r\n this._isAccepted = !!value\r\n },\r\n first: function(index) {\r\n return this._value === EMPTY_CHAR ? index || 0 : this.callBase(index)\r\n },\r\n _isAllowed: function(char, args) {\r\n if (char === EMPTY_CHAR) {\r\n return true\r\n }\r\n return this._isValid(char, args)\r\n },\r\n _isValid: function(char, args) {\r\n var allowedChars = this.allowedChars;\r\n if (allowedChars instanceof RegExp) {\r\n return allowedChars.test(char)\r\n }\r\n if (isFunction(allowedChars)) {\r\n return allowedChars(char, args.index, args.fullText)\r\n }\r\n if (Array.isArray(allowedChars)) {\r\n return inArray(char, allowedChars) > -1\r\n }\r\n return allowedChars === char\r\n },\r\n isAccepted: function(caret) {\r\n return 0 === caret ? this._accepted() : this.next().isAccepted(caret - 1)\r\n },\r\n _adjustedForward: function(caret, index, char) {\r\n if (index >= caret) {\r\n return index\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char) || index + 1\r\n },\r\n _adjustedBackward: function(caret, index) {\r\n if (index >= caret - 1) {\r\n return caret\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1) || index + 1\r\n },\r\n isValid: function(args) {\r\n return this._isValid(this._value, args) && this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n});\r\nexport var StubMaskRule = MaskRule.inherit({\r\n value: function() {\r\n return this.next().value()\r\n },\r\n handle: function(args) {\r\n var hasValueProperty = Object.prototype.hasOwnProperty.call(args, \"value\");\r\n var str = hasValueProperty ? args.value : args.text;\r\n if (!str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start || hasValueProperty) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start && args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char);\r\n var nextArgs = this._isAllowed(char) ? this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }) : args;\r\n return this.next().handle(nextArgs) + 1\r\n },\r\n clear: function(args) {\r\n this._accepted(false);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n },\r\n _tryAcceptChar: function(char) {\r\n this._accepted(this._isValid(char))\r\n },\r\n _isValid: function(char) {\r\n return char === this.maskChar\r\n },\r\n first: function(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n },\r\n _adjustedForward: function(caret, index, char) {\r\n if (index >= caret && char === this.maskChar) {\r\n return index\r\n }\r\n if (caret === index + 1 && this._accepted()) {\r\n return caret\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char)\r\n },\r\n _adjustedBackward: function(caret, index) {\r\n if (index >= caret - 1) {\r\n return 0\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1)\r\n },\r\n isValid: function(args) {\r\n return this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.clear.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport TextEditorButton from \"./texteditor_button_collection/button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointer from \"../../events/pointer\";\r\nimport {\r\n name as click\r\n} from \"../../events/click\";\r\nvar pointerDown = pointer.down;\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar TEXTEDITOR_CLEAR_ICON_CLASS = \"dx-icon-clear\";\r\nvar TEXTEDITOR_ICON_CLASS = \"dx-icon\";\r\nvar TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS = \"dx-show-clear-button\";\r\nexport default class ClearButton extends TextEditorButton {\r\n _create() {\r\n var $element = $(\"\").addClass(TEXTEDITOR_CLEAR_BUTTON_CLASS).append($(\"\").addClass(TEXTEDITOR_ICON_CLASS).addClass(TEXTEDITOR_CLEAR_ICON_CLASS));\r\n this._addToContainer($element);\r\n this.update(true);\r\n return {\r\n instance: $element,\r\n $element: $element\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor._isClearButtonVisible()\r\n }\r\n _attachEvents(instance, $button) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var editorName = editor.NAME;\r\n eventsEngine.on($button, addNamespace(pointerDown, editorName), e => {\r\n e.preventDefault();\r\n if (\"mouse\" !== e.pointerType) {\r\n editor._clearValueHandler(e)\r\n }\r\n });\r\n eventsEngine.on($button, addNamespace(click, editorName), e => editor._clearValueHandler(e))\r\n }\r\n _legacyRender($editor, isVisible) {\r\n $editor.toggleClass(TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS, isVisible)\r\n }\r\n update() {\r\n var rendered = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n !rendered && super.update();\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n instance && instance.toggleClass(STATE_INVISIBLE_CLASS, !isVisible);\r\n this._legacyRender($editor, isVisible)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/custom.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../../core/renderer\";\r\nimport TextEditorButton from \"./button\";\r\nimport Button from \"../../button\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n start,\r\n end\r\n} from \"../../../events/hover\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nvar CUSTOM_BUTTON_HOVERED_CLASS = \"dx-custom-button-hovered\";\r\nexport default class CustomButton extends TextEditorButton {\r\n _attachEvents(instance, $element) {\r\n var {\r\n editor: editor\r\n } = this;\r\n eventsEngine.on($element, start, () => {\r\n editor.$element().addClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, end, () => {\r\n editor.$element().removeClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, clickEventName, e => {\r\n e.stopPropagation()\r\n })\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $element = $(\"
\");\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, Button, extend({}, this.options, {\r\n ignoreParentReadOnly: true,\r\n disabled: this._isDisabled(),\r\n integrationOptions: this._prepareIntegrationOptions(editor)\r\n }));\r\n return {\r\n $element: $element,\r\n instance: instance\r\n }\r\n }\r\n _prepareIntegrationOptions(editor) {\r\n return extend({}, editor.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\"]\r\n })\r\n }\r\n update() {\r\n var isUpdated = super.update();\r\n if (this.instance) {\r\n this.instance.option(\"disabled\", this._isDisabled())\r\n }\r\n return isUpdated\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"visible\")\r\n }\r\n _isDisabled() {\r\n var isDefinedByUser = void 0 !== this.options.disabled;\r\n if (isDefinedByUser) {\r\n return this.instance ? this.instance.option(\"disabled\") : this.options.disabled\r\n } else {\r\n return this.editor.option(\"readOnly\")\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/index.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../../core/renderer\";\r\nimport CustomButton from \"./custom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n find\r\n} from \"../../../core/utils/array\";\r\nimport errors from \"../../widget/ui.errors\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\n\r\nfunction checkButtonInfo(buttonInfo) {\r\n (() => {\r\n if (!buttonInfo || \"object\" !== typeof buttonInfo || Array.isArray(buttonInfo)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n })();\r\n (() => {\r\n if (!(\"name\" in buttonInfo)) {\r\n throw errors.Error(\"E1054\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n name: name\r\n } = buttonInfo;\r\n if (\"string\" !== typeof name) {\r\n throw errors.Error(\"E1055\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n location: location\r\n } = buttonInfo;\r\n if (\"location\" in buttonInfo && \"after\" !== location && \"before\" !== location) {\r\n buttonInfo.location = \"after\"\r\n }\r\n })()\r\n}\r\n\r\nfunction checkNamesUniqueness(existingNames, newName) {\r\n if (-1 !== existingNames.indexOf(newName)) {\r\n throw errors.Error(\"E1055\", newName)\r\n }\r\n existingNames.push(newName)\r\n}\r\n\r\nfunction isPredefinedButtonName(name, predefinedButtonsInfo) {\r\n return !!find(predefinedButtonsInfo, info => info.name === name)\r\n}\r\nexport default class TextEditorButtonCollection {\r\n constructor(editor, defaultButtonsInfo) {\r\n this.buttons = [];\r\n this.defaultButtonsInfo = defaultButtonsInfo;\r\n this.editor = editor\r\n }\r\n _compileButtonInfo(buttons) {\r\n var names = [];\r\n return buttons.map(button => {\r\n var isStringButton = \"string\" === typeof button;\r\n if (!isStringButton) {\r\n checkButtonInfo(button)\r\n }\r\n var isDefaultButton = isStringButton || isPredefinedButtonName(button.name, this.defaultButtonsInfo);\r\n if (isDefaultButton) {\r\n var defaultButtonInfo = find(this.defaultButtonsInfo, _ref => {\r\n var {\r\n name: name\r\n } = _ref;\r\n return name === button || name === button.name\r\n });\r\n if (!defaultButtonInfo) {\r\n throw errors.Error(\"E1056\", this.editor.NAME, button)\r\n }\r\n checkNamesUniqueness(names, button);\r\n return defaultButtonInfo\r\n } else {\r\n var {\r\n name: name\r\n } = button;\r\n checkNamesUniqueness(names, name);\r\n return extend(button, {\r\n Ctor: CustomButton\r\n })\r\n }\r\n })\r\n }\r\n _createButton(buttonsInfo) {\r\n var {\r\n Ctor: Ctor,\r\n options: options,\r\n name: name\r\n } = buttonsInfo;\r\n var button = new Ctor(name, this.editor, options);\r\n this.buttons.push(button);\r\n return button\r\n }\r\n _renderButtons(buttons, $container, targetLocation) {\r\n var $buttonsContainer = null;\r\n var buttonsInfo = buttons ? this._compileButtonInfo(buttons) : this.defaultButtonsInfo;\r\n buttonsInfo.forEach(buttonsInfo => {\r\n var {\r\n location: location = \"after\"\r\n } = buttonsInfo;\r\n if (location === targetLocation) {\r\n this._createButton(buttonsInfo).render((() => {\r\n $buttonsContainer = $buttonsContainer || $(\"
\").addClass(TEXTEDITOR_BUTTONS_CONTAINER_CLASS);\r\n \"before\" === targetLocation ? $container.prepend($buttonsContainer) : $container.append($buttonsContainer);\r\n return $buttonsContainer\r\n })())\r\n }\r\n });\r\n return $buttonsContainer\r\n }\r\n clean() {\r\n this.buttons.forEach(button => button.dispose());\r\n this.buttons = []\r\n }\r\n getButton(buttonName) {\r\n var button = find(this.buttons, _ref2 => {\r\n var {\r\n name: name\r\n } = _ref2;\r\n return name === buttonName\r\n });\r\n return button && button.instance\r\n }\r\n renderAfterButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"after\")\r\n }\r\n renderBeforeButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"before\")\r\n }\r\n updateButtons(names) {\r\n this.buttons.forEach(button => {\r\n if (!names || -1 !== names.indexOf(button.name)) {\r\n button.update()\r\n }\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.label.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nvar TEXTEDITOR_LABEL_CLASS = \"dx-texteditor-label\";\r\nvar TEXTEDITOR_WITH_LABEL_CLASS = \"dx-texteditor-with-label\";\r\nvar TEXTEDITOR_WITH_FLOATING_LABEL_CLASS = \"dx-texteditor-with-floating-label\";\r\nvar TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS = \"dx-texteditor-with-before-buttons\";\r\nvar LABEL_BEFORE_CLASS = \"dx-label-before\";\r\nvar LABEL_CLASS = \"dx-label\";\r\nvar LABEL_AFTER_CLASS = \"dx-label-after\";\r\nclass TextEditorLabel {\r\n constructor(_ref) {\r\n var {\r\n $editor: $editor,\r\n text: text,\r\n mode: mode,\r\n mark: mark,\r\n containsButtonsBefore: containsButtonsBefore,\r\n containerWidth: containerWidth,\r\n beforeWidth: beforeWidth\r\n } = _ref;\r\n this._props = {\r\n $editor: $editor,\r\n text: text,\r\n mode: mode,\r\n mark: mark,\r\n containsButtonsBefore: containsButtonsBefore,\r\n containerWidth: containerWidth,\r\n beforeWidth: beforeWidth\r\n };\r\n this._render();\r\n this._toggleMarkupVisibility()\r\n }\r\n _isVisible() {\r\n return !!this._props.text && \"hidden\" !== this._props.mode\r\n }\r\n _render() {\r\n this._$before = $(\"
\").addClass(LABEL_BEFORE_CLASS);\r\n this._$labelSpan = $(\"\");\r\n this._$label = $(\"
\").addClass(LABEL_CLASS).append(this._$labelSpan);\r\n this._$after = $(\"
\").addClass(LABEL_AFTER_CLASS);\r\n this._$root = $(\"
\").addClass(TEXTEDITOR_LABEL_CLASS).append(this._$before).append(this._$label).append(this._$after);\r\n this._updateMark();\r\n this._updateText();\r\n this._updateBeforeWidth();\r\n this._updateMaxWidth()\r\n }\r\n _toggleMarkupVisibility() {\r\n var visible = this._isVisible();\r\n this._updateEditorBeforeButtonsClass(visible);\r\n this._updateEditorLabelClass(visible);\r\n visible ? this._$root.appendTo(this._props.$editor) : this._$root.detach()\r\n }\r\n _updateEditorLabelClass(visible) {\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_FLOATING_LABEL_CLASS).removeClass(TEXTEDITOR_WITH_LABEL_CLASS);\r\n if (visible) {\r\n var labelClass = \"floating\" === this._props.mode ? TEXTEDITOR_WITH_FLOATING_LABEL_CLASS : TEXTEDITOR_WITH_LABEL_CLASS;\r\n this._props.$editor.addClass(labelClass)\r\n }\r\n }\r\n _updateEditorBeforeButtonsClass() {\r\n var visible = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._isVisible();\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS);\r\n if (visible) {\r\n var beforeButtonsClass = this._props.containsButtonsBefore ? TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS : \"\";\r\n this._props.$editor.addClass(beforeButtonsClass)\r\n }\r\n }\r\n _updateMark() {\r\n this._$labelSpan.attr(\"data-mark\", this._props.mark)\r\n }\r\n _updateText() {\r\n this._$labelSpan.text(this._props.text)\r\n }\r\n _updateBeforeWidth() {\r\n this._$before.css({\r\n width: this._props.beforeWidth\r\n })\r\n }\r\n _updateMaxWidth() {\r\n this._$label.css({\r\n maxWidth: this._props.containerWidth\r\n })\r\n }\r\n $element() {\r\n return this._$root\r\n }\r\n isVisible() {\r\n return this._isVisible()\r\n }\r\n updateMode(mode) {\r\n this._props.mode = mode;\r\n this._toggleMarkupVisibility()\r\n }\r\n updateText(text) {\r\n this._props.text = text;\r\n this._updateText();\r\n this._toggleMarkupVisibility()\r\n }\r\n updateMark(mark) {\r\n this._props.mark = mark;\r\n this._updateMark()\r\n }\r\n updateContainsButtonsBefore(containsButtonsBefore) {\r\n this._props.containsButtonsBefore = containsButtonsBefore;\r\n this._updateEditorBeforeButtonsClass()\r\n }\r\n updateBeforeWidth(beforeWidth) {\r\n this._props.beforeWidth = beforeWidth;\r\n this._updateBeforeWidth()\r\n }\r\n updateMaxWidth(containerWidth) {\r\n this._props.containerWidth = containerWidth;\r\n this._updateMaxWidth()\r\n }\r\n}\r\nexport {\r\n TextEditorLabel\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.base.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n current,\r\n isMaterial\r\n} from \"../themes\";\r\nimport devices from \"../../core/devices\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport ClearButton from \"./ui.text_editor.clear\";\r\nimport TextEditorButtonCollection from \"./texteditor_button_collection/index\";\r\nimport config from \"../../core/config\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n TextEditorLabel\r\n} from \"./ui.text_editor.label\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nvar TEXTEDITOR_CLASS = \"dx-texteditor\";\r\nvar TEXTEDITOR_INPUT_CONTAINER_CLASS = \"dx-texteditor-input-container\";\r\nvar TEXTEDITOR_INPUT_CLASS = \"dx-texteditor-input\";\r\nvar TEXTEDITOR_INPUT_SELECTOR = \".\" + TEXTEDITOR_INPUT_CLASS;\r\nvar TEXTEDITOR_CONTAINER_CLASS = \"dx-texteditor-container\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\nvar TEXTEDITOR_PLACEHOLDER_CLASS = \"dx-placeholder\";\r\nvar TEXTEDITOR_EMPTY_INPUT_CLASS = \"dx-texteditor-empty\";\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_PENDING_INDICATOR_CLASS = \"dx-pending-indicator\";\r\nvar TEXTEDITOR_VALIDATION_PENDING_CLASS = \"dx-validation-pending\";\r\nvar TEXTEDITOR_VALID_CLASS = \"dx-valid\";\r\nvar EVENTS_LIST = [\"KeyDown\", \"KeyPress\", \"KeyUp\", \"Change\", \"Cut\", \"Copy\", \"Paste\", \"Input\"];\r\nvar CONTROL_KEYS = [\"tab\", \"enter\", \"shift\", \"control\", \"alt\", \"escape\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"upArrow\", \"rightArrow\", \"downArrow\"];\r\nvar TextEditorLabelCreator = TextEditorLabel;\r\n\r\nfunction checkButtonsOptionType(buttons) {\r\n if (isDefined(buttons) && !Array.isArray(buttons)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n}\r\nvar TextEditorBase = Editor.inherit({\r\n ctor: function(_, options) {\r\n if (options) {\r\n checkButtonsOptionType(options.buttons)\r\n }\r\n this._buttonCollection = new TextEditorButtonCollection(this, this._getDefaultButtons());\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._labelContainerElement = null;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n buttons: void 0,\r\n value: \"\",\r\n spellcheck: false,\r\n showClearButton: false,\r\n valueChangeEvent: \"change\",\r\n placeholder: \"\",\r\n inputAttr: {},\r\n onFocusIn: null,\r\n onFocusOut: null,\r\n onKeyDown: null,\r\n onKeyUp: null,\r\n onChange: null,\r\n onInput: null,\r\n onCut: null,\r\n onCopy: null,\r\n onPaste: null,\r\n onEnterKey: null,\r\n mode: \"text\",\r\n hoverStateEnabled: true,\r\n focusStateEnabled: true,\r\n text: void 0,\r\n displayValueFormatter: function(value) {\r\n return isDefined(value) && false !== value ? value : \"\"\r\n },\r\n stylingMode: config().editorStylingMode || \"outlined\",\r\n showValidationMark: true,\r\n label: \"\",\r\n labelMode: \"static\",\r\n labelMark: \"\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = current();\r\n return this.callBase().concat([{\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n stylingMode: config().editorStylingMode || \"filled\",\r\n labelMode: \"floating\"\r\n }\r\n }])\r\n },\r\n _getDefaultButtons: function() {\r\n return [{\r\n name: \"clear\",\r\n Ctor: ClearButton\r\n }]\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.option(\"showClearButton\") && !this.option(\"readOnly\")\r\n },\r\n _input: function() {\r\n return this.$element().find(TEXTEDITOR_INPUT_SELECTOR).first()\r\n },\r\n _isFocused: function() {\r\n return focused(this._input()) || this.callBase()\r\n },\r\n _inputWrapper: function() {\r\n return this.$element()\r\n },\r\n _buttonsContainer: function() {\r\n return this._inputWrapper().find(\".\" + TEXTEDITOR_BUTTONS_CONTAINER_CLASS).eq(0)\r\n },\r\n _isControlKey: function(key) {\r\n return -1 !== CONTROL_KEYS.indexOf(key)\r\n },\r\n _renderStylingMode: function() {\r\n this.callBase();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTEDITOR_CLASS);\r\n this._renderInput();\r\n this._renderStylingMode();\r\n this._renderInputType();\r\n this._renderPlaceholder();\r\n this._renderProps();\r\n this.callBase();\r\n this._renderValue();\r\n this._renderLabel()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._refreshValueChangeEvent();\r\n this._renderEvents();\r\n this._renderEnterKeyAction();\r\n this._renderEmptinessEvent()\r\n },\r\n _renderInput: function() {\r\n this._$buttonsContainer = this._$textEditorContainer = $(\"
\").addClass(TEXTEDITOR_CONTAINER_CLASS).appendTo(this.$element());\r\n this._$textEditorInputContainer = $(\"
\").addClass(TEXTEDITOR_INPUT_CONTAINER_CLASS).appendTo(this._$textEditorContainer);\r\n this._$textEditorInputContainer.append(this._createInput());\r\n this._renderButtonContainers()\r\n },\r\n _getInputContainer() {\r\n return this._$textEditorInputContainer\r\n },\r\n _renderPendingIndicator: function() {\r\n this.$element().addClass(TEXTEDITOR_VALIDATION_PENDING_CLASS);\r\n var $inputContainer = this._getInputContainer();\r\n var $indicatorElement = $(\"
\").addClass(TEXTEDITOR_PENDING_INDICATOR_CLASS).appendTo($inputContainer);\r\n this._pendingIndicator = this._createComponent($indicatorElement, LoadIndicator)\r\n },\r\n _disposePendingIndicator: function() {\r\n if (!this._pendingIndicator) {\r\n return\r\n }\r\n this._pendingIndicator.dispose();\r\n this._pendingIndicator.$element().remove();\r\n this._pendingIndicator = null;\r\n this.$element().removeClass(TEXTEDITOR_VALIDATION_PENDING_CLASS)\r\n },\r\n _renderValidationState: function() {\r\n this.callBase();\r\n var isPending = \"pending\" === this.option(\"validationStatus\");\r\n var $element = this.$element();\r\n if (isPending) {\r\n !this._pendingIndicator && this._renderPendingIndicator();\r\n this._showValidMark = false\r\n } else {\r\n if (\"invalid\" === this.option(\"validationStatus\")) {\r\n this._showValidMark = false\r\n }\r\n if (!this._showValidMark && true === this.option(\"showValidationMark\")) {\r\n this._showValidMark = \"valid\" === this.option(\"validationStatus\") && !!this._pendingIndicator\r\n }\r\n this._disposePendingIndicator()\r\n }\r\n $element.toggleClass(TEXTEDITOR_VALID_CLASS, !!this._showValidMark)\r\n },\r\n _renderButtonContainers: function() {\r\n var buttons = this.option(\"buttons\");\r\n this._$beforeButtonsContainer = this._buttonCollection.renderBeforeButtons(buttons, this._$buttonsContainer);\r\n this._$afterButtonsContainer = this._buttonCollection.renderAfterButtons(buttons, this._$buttonsContainer)\r\n },\r\n _cleanButtonContainers: function() {\r\n var _this$_$beforeButtons, _this$_$afterButtonsC;\r\n null === (_this$_$beforeButtons = this._$beforeButtonsContainer) || void 0 === _this$_$beforeButtons ? void 0 : _this$_$beforeButtons.remove();\r\n null === (_this$_$afterButtonsC = this._$afterButtonsContainer) || void 0 === _this$_$afterButtonsC ? void 0 : _this$_$afterButtonsC.remove();\r\n this._buttonCollection.clean()\r\n },\r\n _clean() {\r\n this._buttonCollection.clean();\r\n this._disposePendingIndicator();\r\n this._cleanLabelObservable();\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._$textEditorContainer = null;\r\n this._$buttonsContainer = null;\r\n this.callBase()\r\n },\r\n _createInput: function() {\r\n var $input = $(\"\");\r\n this._applyInputAttributes($input, this.option(\"inputAttr\"));\r\n return $input\r\n },\r\n _setSubmitElementName: function(name) {\r\n var inputAttrName = this.option(\"inputAttr.name\");\r\n return this.callBase(name || inputAttrName || \"\")\r\n },\r\n _applyInputAttributes: function($input, customAttributes) {\r\n var inputAttributes = extend(this._getDefaultAttributes(), customAttributes);\r\n $input.attr(inputAttributes).addClass(TEXTEDITOR_INPUT_CLASS).css(\"minHeight\", this.option(\"height\") ? \"0\" : \"\")\r\n },\r\n _getDefaultAttributes: function() {\r\n var defaultAttributes = {\r\n autocomplete: \"off\"\r\n };\r\n var {\r\n ios: ios,\r\n mac: mac\r\n } = devices.real();\r\n if (ios || mac) {\r\n defaultAttributes.placeholder = \" \"\r\n }\r\n return defaultAttributes\r\n },\r\n _updateButtons: function(names) {\r\n this._buttonCollection.updateButtons(names)\r\n },\r\n _updateButtonsStyling: function(editorStylingMode) {\r\n each(this.option(\"buttons\"), (_, _ref) => {\r\n var {\r\n options: options,\r\n name: buttonName\r\n } = _ref;\r\n if (options && !options.stylingMode && this.option(\"visible\")) {\r\n var buttonInstance = this.getButton(buttonName);\r\n buttonInstance.option && buttonInstance.option(\"stylingMode\", \"underlined\" === editorStylingMode ? \"text\" : \"contained\")\r\n }\r\n })\r\n },\r\n _renderValue: function() {\r\n var renderInputPromise = this._renderInputValue();\r\n return renderInputPromise.promise()\r\n },\r\n _renderInputValue: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this.option(\"value\");\r\n var text = this.option(\"text\");\r\n var displayValue = this.option(\"displayValue\");\r\n var displayValueFormatter = this.option(\"displayValueFormatter\");\r\n if (void 0 !== displayValue && null !== value) {\r\n text = displayValueFormatter(displayValue)\r\n } else if (!isDefined(text)) {\r\n text = displayValueFormatter(value)\r\n }\r\n this.option(\"text\", text);\r\n if (this._input().val() !== (isDefined(text) ? text : \"\")) {\r\n this._renderDisplayText(text)\r\n } else {\r\n this._toggleEmptinessEventHandler()\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n _renderDisplayText: function(text) {\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _isValueValid: function() {\r\n if (this._input().length) {\r\n var validity = this._input().get(0).validity;\r\n if (validity) {\r\n return validity.valid\r\n }\r\n }\r\n return true\r\n },\r\n _toggleEmptiness: function(isEmpty) {\r\n this.$element().toggleClass(TEXTEDITOR_EMPTY_INPUT_CLASS, isEmpty);\r\n this._togglePlaceholder(isEmpty)\r\n },\r\n _togglePlaceholder: function(isEmpty) {\r\n this.$element().find(\".\".concat(TEXTEDITOR_PLACEHOLDER_CLASS)).eq(0).toggleClass(STATE_INVISIBLE_CLASS, !isEmpty)\r\n },\r\n _renderProps: function() {\r\n this._toggleReadOnlyState();\r\n this._toggleSpellcheckState();\r\n this._toggleTabIndex()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase.apply(this, arguments);\r\n var $input = this._input();\r\n $input.prop(\"disabled\", value)\r\n },\r\n _toggleTabIndex: function() {\r\n var $input = this._input();\r\n var disabled = this.option(\"disabled\");\r\n var focusStateEnabled = this.option(\"focusStateEnabled\");\r\n if (disabled || !focusStateEnabled) {\r\n $input.attr(\"tabIndex\", -1)\r\n } else {\r\n $input.removeAttr(\"tabIndex\")\r\n }\r\n },\r\n _toggleReadOnlyState: function() {\r\n this._input().prop(\"readOnly\", this._readOnlyPropValue());\r\n this.callBase()\r\n },\r\n _readOnlyPropValue: function() {\r\n return this.option(\"readOnly\")\r\n },\r\n _toggleSpellcheckState: function() {\r\n this._input().prop(\"spellcheck\", this.option(\"spellcheck\"))\r\n },\r\n _cleanLabelObservable: function() {\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.unobserve(this._labelContainerElement);\r\n this._labelContainerElement = null\r\n }\r\n },\r\n _getLabelContainer: function() {\r\n return this._input()\r\n },\r\n _getLabelContainerWidth: function() {\r\n return getWidth(this._getLabelContainer())\r\n },\r\n _getLabelBeforeWidth: function() {\r\n var buttonsBeforeWidth = this._$beforeButtonsContainer && getWidth(this._$beforeButtonsContainer);\r\n return null !== buttonsBeforeWidth && void 0 !== buttonsBeforeWidth ? buttonsBeforeWidth : 0\r\n },\r\n _updateLabelWidth: function() {\r\n this._label.updateBeforeWidth(this._getLabelBeforeWidth());\r\n this._label.updateMaxWidth(this._getLabelContainerWidth())\r\n },\r\n _renderLabel: function() {\r\n this._cleanLabelObservable();\r\n this._labelContainerElement = $(this._getLabelContainer()).get(0);\r\n var {\r\n label: label,\r\n labelMode: labelMode,\r\n labelMark: labelMark\r\n } = this.option();\r\n var labelConfig = {\r\n $editor: this.$element(),\r\n text: label,\r\n mark: labelMark,\r\n mode: labelMode,\r\n containsButtonsBefore: !!this._$beforeButtonsContainer,\r\n containerWidth: this._getLabelContainerWidth(),\r\n beforeWidth: this._getLabelBeforeWidth()\r\n };\r\n this._label = new TextEditorLabelCreator(labelConfig);\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.observe(this._labelContainerElement, this._updateLabelWidth.bind(this))\r\n }\r\n },\r\n _renderPlaceholder: function() {\r\n this._renderPlaceholderMarkup();\r\n this._attachPlaceholderEvents()\r\n },\r\n _renderPlaceholderMarkup: function() {\r\n if (this._$placeholder) {\r\n this._$placeholder.remove();\r\n this._$placeholder = null\r\n }\r\n var $input = this._input();\r\n var placeholderText = this.option(\"placeholder\");\r\n var $placeholder = this._$placeholder = $(\"
\").attr(\"data-dx_placeholder\", placeholderText);\r\n $placeholder.insertAfter($input);\r\n $placeholder.addClass(TEXTEDITOR_PLACEHOLDER_CLASS)\r\n },\r\n _attachPlaceholderEvents: function() {\r\n var startEvent = addNamespace(pointerEvents.up, this.NAME);\r\n eventsEngine.on(this._$placeholder, startEvent, () => {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n });\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _placeholder: function() {\r\n return this._$placeholder || $()\r\n },\r\n _clearValueHandler: function(e) {\r\n var $input = this._input();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e);\r\n this._clearValue();\r\n !this._isFocused() && eventsEngine.trigger($input, \"focus\");\r\n eventsEngine.trigger($input, \"input\")\r\n },\r\n _clearValue: function() {\r\n this.reset()\r\n },\r\n _renderEvents: function() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n if (this.hasActionSubscription(\"on\" + event)) {\r\n var action = this._createActionByOption(\"on\" + event, {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.on($input, addNamespace(event.toLowerCase(), this.NAME), e => {\r\n if (this._disposed) {\r\n return\r\n }\r\n action({\r\n event: e\r\n })\r\n })\r\n }\r\n })\r\n },\r\n _refreshEvents: function() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n eventsEngine.off($input, addNamespace(event.toLowerCase(), this.NAME))\r\n });\r\n this._renderEvents()\r\n },\r\n _keyPressHandler: function() {\r\n this.option(\"text\", this._input().val())\r\n },\r\n _keyDownHandler: function(e) {\r\n var $input = this._input();\r\n var isCtrlEnter = e.ctrlKey && \"enter\" === normalizeKeyName(e);\r\n var isNewValue = $input.val() !== this.option(\"value\");\r\n if (isCtrlEnter && isNewValue) {\r\n eventsEngine.trigger($input, \"change\")\r\n }\r\n },\r\n _renderValueChangeEvent: function() {\r\n var keyPressEvent = addNamespace(this._renderValueEventName(), \"\".concat(this.NAME, \"TextChange\"));\r\n var valueChangeEvent = addNamespace(this.option(\"valueChangeEvent\"), \"\".concat(this.NAME, \"ValueChange\"));\r\n var keyDownEvent = addNamespace(\"keydown\", \"\".concat(this.NAME, \"TextChange\"));\r\n var $input = this._input();\r\n eventsEngine.on($input, keyPressEvent, this._keyPressHandler.bind(this));\r\n eventsEngine.on($input, valueChangeEvent, this._valueChangeEventHandler.bind(this));\r\n eventsEngine.on($input, keyDownEvent, this._keyDownHandler.bind(this))\r\n },\r\n _cleanValueChangeEvent: function() {\r\n var valueChangeNamespace = \".\".concat(this.NAME, \"ValueChange\");\r\n var textChangeNamespace = \".\".concat(this.NAME, \"TextChange\");\r\n eventsEngine.off(this._input(), valueChangeNamespace);\r\n eventsEngine.off(this._input(), textChangeNamespace)\r\n },\r\n _refreshValueChangeEvent: function() {\r\n this._cleanValueChangeEvent();\r\n this._renderValueChangeEvent()\r\n },\r\n _renderValueEventName: function() {\r\n return \"input change keypress\"\r\n },\r\n _focusTarget: function() {\r\n return this._input()\r\n },\r\n _focusEventTarget: function() {\r\n return this.element()\r\n },\r\n _isInput: function(element) {\r\n return element === this._input().get(0)\r\n },\r\n _preventNestedFocusEvent: function(event) {\r\n if (event.isDefaultPrevented()) {\r\n return true\r\n }\r\n var result = this._isNestedTarget(event.relatedTarget);\r\n if (\"focusin\" === event.type) {\r\n result = result && this._isNestedTarget(event.target) && !this._isInput(event.target)\r\n }\r\n result && event.preventDefault();\r\n return result\r\n },\r\n _isNestedTarget: function(target) {\r\n return !!this.$element().find(target).length\r\n },\r\n _focusClassTarget: function() {\r\n return this.$element()\r\n },\r\n _focusInHandler: function(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _focusOutHandler: function(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _toggleFocusClass: function(isFocused, $element) {\r\n this.callBase(isFocused, this._focusClassTarget($element))\r\n },\r\n _hasFocusClass: function(element) {\r\n return this.callBase($(element || this.$element()))\r\n },\r\n _renderEmptinessEvent: function() {\r\n var $input = this._input();\r\n eventsEngine.on($input, \"input blur\", this._toggleEmptinessEventHandler.bind(this))\r\n },\r\n _toggleEmptinessEventHandler: function() {\r\n var text = this._input().val();\r\n var isEmpty = (\"\" === text || null === text) && this._isValueValid();\r\n this._toggleEmptiness(isEmpty)\r\n },\r\n _valueChangeEventHandler: function(e, formattedValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", arguments.length > 1 ? formattedValue : this._input().val());\r\n this._saveValueChangeEvent(void 0)\r\n },\r\n _renderEnterKeyAction: function() {\r\n this._enterKeyAction = this._createActionByOption(\"onEnterKey\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.off(this._input(), \"keyup.onEnterKey.dxTextEditor\");\r\n eventsEngine.on(this._input(), \"keyup.onEnterKey.dxTextEditor\", this._enterKeyHandlerUp.bind(this))\r\n },\r\n _enterKeyHandlerUp: function(e) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (\"enter\" === normalizeKeyName(e)) {\r\n this._enterKeyAction({\r\n event: e\r\n })\r\n }\r\n },\r\n _updateValue: function() {\r\n this._options.silent(\"text\", null);\r\n this._renderValue()\r\n },\r\n _dispose: function() {\r\n this._enterKeyAction = void 0;\r\n this.callBase()\r\n },\r\n _getSubmitElement: function() {\r\n return this._input()\r\n },\r\n _hasActiveElement: function() {\r\n return this._input().is(domAdapter.getActiveElement())\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = args;\r\n if (inArray(name.replace(\"on\", \"\"), EVENTS_LIST) > -1) {\r\n this._refreshEvents();\r\n return\r\n }\r\n switch (name) {\r\n case \"valueChangeEvent\":\r\n this._refreshValueChangeEvent();\r\n this._refreshFocusEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"focusStateEnabled\":\r\n this.callBase(args);\r\n this._toggleTabIndex();\r\n break;\r\n case \"spellcheck\":\r\n this._toggleSpellcheckState();\r\n break;\r\n case \"mode\":\r\n this._renderInputType();\r\n break;\r\n case \"onEnterKey\":\r\n this._renderEnterKeyAction();\r\n break;\r\n case \"placeholder\":\r\n this._renderPlaceholder();\r\n break;\r\n case \"label\":\r\n this._label.updateText(value);\r\n break;\r\n case \"labelMark\":\r\n this._label.updateMark(value);\r\n break;\r\n case \"labelMode\":\r\n this._label.updateMode(value);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._label.updateMaxWidth(this._getLabelContainerWidth());\r\n break;\r\n case \"readOnly\":\r\n case \"disabled\":\r\n this._updateButtons();\r\n this.callBase(args);\r\n break;\r\n case \"showClearButton\":\r\n this._updateButtons([\"clear\"]);\r\n break;\r\n case \"text\":\r\n break;\r\n case \"value\":\r\n this._updateValue();\r\n this.callBase(args);\r\n break;\r\n case \"inputAttr\":\r\n this._applyInputAttributes(this._input(), this.option(name));\r\n break;\r\n case \"stylingMode\":\r\n this._renderStylingMode();\r\n this._updateLabelWidth();\r\n break;\r\n case \"buttons\":\r\n if (fullName === name) {\r\n checkButtonsOptionType(value)\r\n }\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"));\r\n this._updateLabelWidth();\r\n this._label.updateContainsButtonsBefore(0 !== value.length);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (value && this.option(\"buttons\")) {\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n }\r\n break;\r\n case \"displayValueFormatter\":\r\n this._invalidate();\r\n break;\r\n case \"showValidationMark\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _renderInputType: function() {\r\n this._setInputType(this.option(\"mode\"))\r\n },\r\n _setInputType: function(type) {\r\n var input = this._input();\r\n if (\"search\" === type) {\r\n type = \"text\"\r\n }\r\n try {\r\n input.prop(\"type\", type)\r\n } catch (e) {\r\n input.prop(\"type\", \"text\")\r\n }\r\n },\r\n getButton(name) {\r\n return this._buttonCollection.getButton(name)\r\n },\r\n focus: function() {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n },\r\n reset: function() {\r\n if (this._showValidMark) {\r\n this._showValidMark = false;\r\n this._renderValidationState()\r\n }\r\n var defaultOptions = this._getDefaultOptions();\r\n if (this.option(\"value\") === defaultOptions.value) {\r\n this._options.silent(\"text\", \"\");\r\n this._renderValue()\r\n } else {\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n },\r\n on: function(eventName, eventHandler) {\r\n var result = this.callBase(eventName, eventHandler);\r\n var event = eventName.charAt(0).toUpperCase() + eventName.substr(1);\r\n if (EVENTS_LIST.indexOf(event) >= 0) {\r\n this._refreshEvents()\r\n }\r\n return result\r\n }\r\n});\r\nexport default TextEditorBase;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.base.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport EventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n clipboardText as getClipboardText\r\n} from \"../../core/utils/dom\";\r\nvar MASK_EVENT_NAMESPACE = \"dxMask\";\r\nvar BLUR_EVENT = \"blur beforedeactivate\";\r\nvar EMPTY_CHAR = \" \";\r\nexport default class BaseMaskStrategy {\r\n constructor(editor) {\r\n this.editor = editor;\r\n this.DIRECTION = {\r\n FORWARD: \"forward\",\r\n BACKWARD: \"backward\"\r\n };\r\n this.NAME = this._getStrategyName()\r\n }\r\n _getStrategyName() {\r\n return \"base\"\r\n }\r\n editorOption() {\r\n return this.editor.option(...arguments)\r\n }\r\n editorInput() {\r\n return this.editor._input()\r\n }\r\n editorCaret(newCaret) {\r\n if (!newCaret) {\r\n return this.editor._caret()\r\n }\r\n this.editor._caret(newCaret)\r\n }\r\n getHandler(handlerName) {\r\n var handler = this[\"_\".concat(handlerName, \"Handler\")] || function() {};\r\n return handler.bind(this)\r\n }\r\n attachEvents() {\r\n var $input = this.editorInput();\r\n this.getHandleEventNames().forEach(eventName => {\r\n var subscriptionName = addNamespace(eventName.toLowerCase(), MASK_EVENT_NAMESPACE);\r\n EventsEngine.on($input, subscriptionName, this.getEventHandler(eventName))\r\n });\r\n this._attachChangeEventHandlers()\r\n }\r\n getHandleEventNames() {\r\n return [\"focusIn\", \"focusOut\", \"keyDown\", \"input\", \"paste\", \"cut\", \"drop\"]\r\n }\r\n getEventHandler(eventName) {\r\n return this[\"_\".concat(eventName, \"Handler\")].bind(this)\r\n }\r\n detachEvents() {\r\n EventsEngine.off(this.editorInput(), \".\".concat(MASK_EVENT_NAMESPACE))\r\n }\r\n _attachChangeEventHandlers() {\r\n if (-1 === inArray(\"change\", this.editorOption(\"valueChangeEvent\").split(\" \"))) {\r\n return\r\n }\r\n EventsEngine.on(this.editorInput(), addNamespace(BLUR_EVENT, MASK_EVENT_NAMESPACE), function(e) {\r\n this._suppressCaretChanging(this._changeHandler, [e]);\r\n this._changeHandler(e)\r\n }.bind(this.editor))\r\n }\r\n _focusInHandler() {\r\n this.editor._showMaskPlaceholder();\r\n this.editor._direction(this.DIRECTION.FORWARD);\r\n if (!this.editor._isValueEmpty() && this.editorOption(\"isValid\")) {\r\n this.editor._adjustCaret()\r\n } else {\r\n var caret = this.editor._maskRulesChain.first();\r\n this._caretTimeout = setTimeout(function() {\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n }.bind(this.editor), 0)\r\n }\r\n }\r\n _focusOutHandler(event) {\r\n this.editor._changeHandler(event);\r\n if (\"onFocus\" === this.editorOption(\"showMaskMode\") && this.editor._isValueEmpty()) {\r\n this.editorOption(\"text\", \"\");\r\n this.editor._renderDisplayText(\"\")\r\n }\r\n }\r\n _cutHandler(event) {\r\n var caret = this.editorCaret();\r\n var selectedText = this.editorInput().val().substring(caret.start, caret.end);\r\n this.editor._maskKeyHandler(event, () => getClipboardText(event, selectedText))\r\n }\r\n _dropHandler() {\r\n this._clearDragTimer();\r\n this._dragTimer = setTimeout(function() {\r\n this.option(\"value\", this._convertToValue(this._input().val()))\r\n }.bind(this.editor))\r\n }\r\n _clearDragTimer() {\r\n clearTimeout(this._dragTimer)\r\n }\r\n _keyDownHandler() {\r\n this._keyPressHandled = false\r\n }\r\n _pasteHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n this._keyPressHandled = true;\r\n var caret = this.editorCaret();\r\n editor._maskKeyHandler(event, () => {\r\n var pastedText = getClipboardText(event);\r\n var restText = editor._maskRulesChain.text().substring(caret.end);\r\n var accepted = editor._handleChain({\r\n text: pastedText,\r\n start: caret.start,\r\n length: pastedText.length\r\n });\r\n var newCaret = caret.start + accepted;\r\n editor._handleChain({\r\n text: restText,\r\n start: newCaret,\r\n length: restText.length\r\n });\r\n editor._caret({\r\n start: newCaret,\r\n end: newCaret\r\n })\r\n })\r\n }\r\n _autoFillHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var inputVal = this.editorInput().val();\r\n this._inputHandlerTimer = setTimeout(() => {\r\n this._keyPressHandled = true;\r\n if (this._isAutoFill()) {\r\n this._keyPressHandled = true;\r\n editor._maskKeyHandler(event, () => {\r\n editor._handleChain({\r\n text: inputVal,\r\n start: 0,\r\n length: inputVal.length\r\n })\r\n });\r\n editor._validateMask()\r\n }\r\n })\r\n }\r\n _isAutoFill() {\r\n var $input = this.editor._input();\r\n var result = false;\r\n if (browser.webkit) {\r\n var input = $input.get(0);\r\n result = input && input.matches(\":-webkit-autofill\")\r\n }\r\n return result\r\n }\r\n runWithoutEventProcessing(action) {\r\n var keyPressHandled = this._keyPressHandled;\r\n this._keyPressHandled = true;\r\n action();\r\n this._keyPressHandled = keyPressHandled\r\n }\r\n _backspaceHandler() {}\r\n _delHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n this._keyPressHandled = true;\r\n editor._maskKeyHandler(event, () => !editor._hasSelection() && editor._handleKey(EMPTY_CHAR))\r\n }\r\n clean() {\r\n this._clearDragTimer();\r\n clearTimeout(this._backspaceHandlerTimeout);\r\n clearTimeout(this._caretTimeout);\r\n clearTimeout(this._inputHandlerTimer)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.default.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport BaseMaskStrategy from \"./ui.text_editor.mask.strategy.base\";\r\nimport {\r\n getChar\r\n} from \"../../events/utils/index\";\r\nimport Promise from \"../../core/polyfills/promise\";\r\nvar BACKSPACE_INPUT_TYPE = \"deleteContentBackward\";\r\nvar EMPTY_CHAR = \" \";\r\nclass DefaultMaskStrategy extends BaseMaskStrategy {\r\n _getStrategyName() {\r\n return \"default\"\r\n }\r\n getHandleEventNames() {\r\n return [...super.getHandleEventNames(), \"keyPress\"]\r\n }\r\n _keyPressHandler(event) {\r\n if (this._keyPressHandled) {\r\n return\r\n }\r\n this._keyPressHandled = true;\r\n if (this.editor._isControlKeyFired(event)) {\r\n return\r\n }\r\n var {\r\n editor: editor\r\n } = this;\r\n editor._maskKeyHandler(event, () => editor._handleKey(getChar(event)))\r\n }\r\n _inputHandler(event) {\r\n if (this._backspaceInputHandled(event.originalEvent && event.originalEvent.inputType)) {\r\n this._handleBackspaceInput(event)\r\n }\r\n if (event.originalEvent) {\r\n this._autoFillHandler(event)\r\n }\r\n if (this._keyPressHandled) {\r\n return\r\n }\r\n this._keyPressHandled = true;\r\n var inputValue = this.editorInput().val();\r\n var caret = this.editorCaret();\r\n if (!caret.end) {\r\n return\r\n }\r\n caret.start = caret.end - 1;\r\n var oldValue = inputValue.substring(0, caret.start) + inputValue.substring(caret.end);\r\n var char = inputValue[caret.start];\r\n var {\r\n editor: editor\r\n } = this;\r\n this.editorInput().val(oldValue);\r\n editor._caret({\r\n start: caret.start,\r\n end: caret.start\r\n });\r\n editor._maskKeyHandler(event, () => editor._handleKey(char))\r\n }\r\n _backspaceHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n this._keyPressHandled = true;\r\n var afterBackspaceHandler = (needAdjustCaret, callBack) => {\r\n if (needAdjustCaret) {\r\n editor._direction(this.DIRECTION.FORWARD);\r\n editor._adjustCaret()\r\n }\r\n var currentCaret = this.editorCaret();\r\n return new Promise(resolve => {\r\n clearTimeout(this._backspaceHandlerTimeout);\r\n this._backspaceHandlerTimeout = setTimeout((function() {\r\n callBack(currentCaret);\r\n resolve()\r\n }))\r\n })\r\n };\r\n editor._maskKeyHandler(event, () => {\r\n if (editor._hasSelection()) {\r\n return afterBackspaceHandler(true, currentCaret => {\r\n editor._displayMask(currentCaret);\r\n editor._maskRulesChain.reset()\r\n })\r\n }\r\n if (editor._tryMoveCaretBackward()) {\r\n return afterBackspaceHandler(false, currentCaret => {\r\n this.editorCaret(currentCaret)\r\n })\r\n }\r\n editor._handleKey(EMPTY_CHAR, this.DIRECTION.BACKWARD);\r\n return afterBackspaceHandler(true, currentCaret => {\r\n editor._displayMask(currentCaret);\r\n editor._maskRulesChain.reset()\r\n })\r\n })\r\n }\r\n _backspaceInputHandled(inputType) {\r\n return inputType === BACKSPACE_INPUT_TYPE && !this._keyPressHandled\r\n }\r\n _handleBackspaceInput(event) {\r\n var {\r\n start: start,\r\n end: end\r\n } = this.editorCaret();\r\n this.editorCaret({\r\n start: start + 1,\r\n end: end + 1\r\n });\r\n this._backspaceHandler(event)\r\n }\r\n}\r\nexport default DefaultMaskStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.input_events.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport BaseMaskStrategy from \"./ui.text_editor.mask.strategy.base\";\r\nvar DELETE_INPUT_TYPE = \"deleteContentBackward\";\r\nclass InputEventsMaskStrategy extends BaseMaskStrategy {\r\n _getStrategyName() {\r\n return \"inputEvents\"\r\n }\r\n getHandleEventNames() {\r\n return [...super.getHandleEventNames(), \"beforeInput\"]\r\n }\r\n _beforeInputHandler() {\r\n this._prevCaret = this.editorCaret()\r\n }\r\n _inputHandler(_ref) {\r\n var {\r\n originalEvent: originalEvent\r\n } = _ref;\r\n if (!originalEvent) {\r\n return\r\n }\r\n var {\r\n inputType: inputType,\r\n data: data\r\n } = originalEvent;\r\n var currentCaret = this.editorCaret();\r\n if (inputType === DELETE_INPUT_TYPE) {\r\n var length = this._prevCaret.end - this._prevCaret.start || 1;\r\n this.editor.setBackwardDirection();\r\n this._updateEditorMask({\r\n start: currentCaret.start,\r\n length: length,\r\n text: this._getEmptyString(length)\r\n })\r\n } else {\r\n var _this$_prevCaret, _this$_prevCaret2, _this$_prevCaret3;\r\n if (!currentCaret.end) {\r\n return\r\n }\r\n this._autoFillHandler(originalEvent);\r\n this.editorCaret(currentCaret);\r\n var _length = (null === (_this$_prevCaret = this._prevCaret) || void 0 === _this$_prevCaret ? void 0 : _this$_prevCaret.end) - (null === (_this$_prevCaret2 = this._prevCaret) || void 0 === _this$_prevCaret2 ? void 0 : _this$_prevCaret2.start);\r\n var newData = data + (_length ? this._getEmptyString(_length - data.length) : \"\");\r\n this.editor.setForwardDirection();\r\n var hasValidChars = this._updateEditorMask({\r\n start: null === (_this$_prevCaret3 = this._prevCaret) || void 0 === _this$_prevCaret3 ? void 0 : _this$_prevCaret3.start,\r\n length: _length || newData.length,\r\n text: newData\r\n });\r\n if (!hasValidChars) {\r\n this.editorCaret(this._prevCaret)\r\n }\r\n }\r\n }\r\n _getEmptyString(length) {\r\n return Array(length + 1).join(\" \")\r\n }\r\n _updateEditorMask(args) {\r\n var textLength = args.text.length;\r\n var updatedCharsCount = this.editor._handleChain(args);\r\n if (this.editor.isForwardDirection()) {\r\n var {\r\n start: start,\r\n end: end\r\n } = this.editorCaret();\r\n var correction = updatedCharsCount - textLength;\r\n if (start <= updatedCharsCount && updatedCharsCount > 1) {\r\n this.editorCaret({\r\n start: start + correction,\r\n end: end + correction\r\n })\r\n }\r\n this.editor.isForwardDirection() && this.editor._adjustCaret()\r\n }\r\n this.editor._displayMask();\r\n return !!updatedCharsCount\r\n }\r\n}\r\nexport default InputEventsMaskStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport caretUtils from \"./utils.caret\";\r\nimport {\r\n isInputEventsL2Supported\r\n} from \"./utils.support\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace,\r\n createEvent,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/string\";\r\nimport {\r\n name as wheelEventName\r\n} from \"../../events/core/wheel\";\r\nimport {\r\n EmptyMaskRule,\r\n StubMaskRule,\r\n MaskRule\r\n} from \"./ui.text_editor.mask.rule\";\r\nimport TextEditorBase from \"./ui.text_editor.base\";\r\nimport DefaultMaskStrategy from \"./ui.text_editor.mask.strategy.default\";\r\nimport InputEventsMaskStrategy from \"./ui.text_editor.mask.strategy.input_events\";\r\nvar stubCaret = function() {\r\n return {}\r\n};\r\nvar caret = caretUtils;\r\nvar EMPTY_CHAR = \" \";\r\nvar ESCAPED_CHAR = \"\\\\\";\r\nvar TEXTEDITOR_MASKED_CLASS = \"dx-texteditor-masked\";\r\nvar FORWARD_DIRECTION = \"forward\";\r\nvar BACKWARD_DIRECTION = \"backward\";\r\nvar buildInMaskRules = {\r\n 0: /[0-9]/,\r\n 9: /[0-9\\s]/,\r\n \"#\": /[-+0-9\\s]/,\r\n L: function(char) {\r\n return isLiteralChar(char)\r\n },\r\n l: function(char) {\r\n return isLiteralChar(char) || isSpaceChar(char)\r\n },\r\n C: /\\S/,\r\n c: /./,\r\n A: function(char) {\r\n return isLiteralChar(char) || isNumericChar(char)\r\n },\r\n a: function(char) {\r\n return isLiteralChar(char) || isNumericChar(char) || isSpaceChar(char)\r\n }\r\n};\r\n\r\nfunction isNumericChar(char) {\r\n return /[0-9]/.test(char)\r\n}\r\n\r\nfunction isLiteralChar(char) {\r\n var code = char.charCodeAt();\r\n return 64 < code && code < 91 || 96 < code && code < 123 || code > 127\r\n}\r\n\r\nfunction isSpaceChar(char) {\r\n return \" \" === char\r\n}\r\nvar TextEditorMask = TextEditorBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n mask: \"\",\r\n maskChar: \"_\",\r\n maskRules: {},\r\n maskInvalidMessage: messageLocalization.format(\"validation-mask\"),\r\n useMaskedValue: false,\r\n showMaskMode: \"always\"\r\n })\r\n },\r\n _supportedKeys: function() {\r\n var that = this;\r\n var keyHandlerMap = {\r\n backspace: that._maskStrategy.getHandler(\"backspace\"),\r\n del: that._maskStrategy.getHandler(\"del\"),\r\n enter: that._changeHandler\r\n };\r\n var result = that.callBase();\r\n each(keyHandlerMap, (function(key, callback) {\r\n var parentHandler = result[key];\r\n result[key] = function(e) {\r\n that.option(\"mask\") && callback.call(that, e);\r\n parentHandler && parentHandler(e)\r\n }\r\n }));\r\n return result\r\n },\r\n _getSubmitElement: function() {\r\n return !this.option(\"mask\") ? this.callBase() : this._$hiddenElement\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initMaskStrategy()\r\n },\r\n _initMaskStrategy: function() {\r\n this._maskStrategy = isInputEventsL2Supported() ? new InputEventsMaskStrategy(this) : new DefaultMaskStrategy(this)\r\n },\r\n _initMarkup: function() {\r\n this._renderHiddenElement();\r\n this.callBase()\r\n },\r\n _attachMouseWheelEventHandlers: function() {\r\n var hasMouseWheelHandler = this._onMouseWheel !== noop;\r\n if (!hasMouseWheelHandler) {\r\n return\r\n }\r\n var input = this._input();\r\n var eventName = addNamespace(wheelEventName, this.NAME);\r\n var mouseWheelAction = this._createAction(function(e) {\r\n var {\r\n event: event\r\n } = e;\r\n if (focused(input) && !isCommandKeyPressed(event)) {\r\n this._onMouseWheel(event);\r\n event.preventDefault();\r\n event.stopPropagation()\r\n }\r\n }.bind(this));\r\n eventsEngine.off(input, eventName);\r\n eventsEngine.on(input, eventName, (function(e) {\r\n mouseWheelAction({\r\n event: e\r\n })\r\n }))\r\n },\r\n _onMouseWheel: noop,\r\n _render: function() {\r\n this._renderMask();\r\n this.callBase();\r\n this._attachMouseWheelEventHandlers()\r\n },\r\n _renderHiddenElement: function() {\r\n if (this.option(\"mask\")) {\r\n this._$hiddenElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this._inputWrapper())\r\n }\r\n },\r\n _removeHiddenElement: function() {\r\n this._$hiddenElement && this._$hiddenElement.remove()\r\n },\r\n _renderMask: function() {\r\n this.$element().removeClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskRulesChain = null;\r\n this._maskStrategy.detachEvents();\r\n if (!this.option(\"mask\")) {\r\n return\r\n }\r\n this.$element().addClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskStrategy.attachEvents();\r\n this._parseMask();\r\n this._renderMaskedValue()\r\n },\r\n _suppressCaretChanging: function(callback, args) {\r\n caret = stubCaret;\r\n try {\r\n callback.apply(this, args)\r\n } finally {\r\n caret = caretUtils\r\n }\r\n },\r\n _changeHandler: function(e) {\r\n var $input = this._input();\r\n var inputValue = $input.val();\r\n if (inputValue === this._changedValue) {\r\n return\r\n }\r\n this._changedValue = inputValue;\r\n var changeEvent = createEvent(e, {\r\n type: \"change\"\r\n });\r\n eventsEngine.trigger($input, changeEvent)\r\n },\r\n _parseMask: function() {\r\n this._maskRules = extend({}, buildInMaskRules, this.option(\"maskRules\"));\r\n this._maskRulesChain = this._parseMaskRule(0)\r\n },\r\n _parseMaskRule: function(index) {\r\n var mask = this.option(\"mask\");\r\n if (index >= mask.length) {\r\n return new EmptyMaskRule\r\n }\r\n var currentMaskChar = mask[index];\r\n var isEscapedChar = currentMaskChar === ESCAPED_CHAR;\r\n var result = isEscapedChar ? new StubMaskRule({\r\n maskChar: mask[index + 1]\r\n }) : this._getMaskRule(currentMaskChar);\r\n result.next(this._parseMaskRule(index + 1 + isEscapedChar));\r\n return result\r\n },\r\n _getMaskRule: function(pattern) {\r\n var ruleConfig;\r\n each(this._maskRules, (function(rulePattern, allowedChars) {\r\n if (rulePattern === pattern) {\r\n ruleConfig = {\r\n pattern: rulePattern,\r\n allowedChars: allowedChars\r\n };\r\n return false\r\n }\r\n }));\r\n return isDefined(ruleConfig) ? new MaskRule(extend({\r\n maskChar: this.option(\"maskChar\")\r\n }, ruleConfig)) : new StubMaskRule({\r\n maskChar: pattern\r\n })\r\n },\r\n _renderMaskedValue: function() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var value = this.option(\"value\") || \"\";\r\n this._maskRulesChain.clear(this._normalizeChainArguments());\r\n var chainArgs = {\r\n length: value.length\r\n };\r\n chainArgs[this._isMaskedValueMode() ? \"text\" : \"value\"] = value;\r\n this._handleChain(chainArgs);\r\n this._displayMask()\r\n },\r\n _replaceSelectedText: function(text, selection, char) {\r\n if (void 0 === char) {\r\n return text\r\n }\r\n var textBefore = text.slice(0, selection.start);\r\n var textAfter = text.slice(selection.end);\r\n var edited = textBefore + char + textAfter;\r\n return edited\r\n },\r\n _isMaskedValueMode: function() {\r\n return this.option(\"useMaskedValue\")\r\n },\r\n _displayMask: function(caret) {\r\n caret = caret || this._caret();\r\n this._renderValue();\r\n this._caret(caret)\r\n },\r\n _isValueEmpty: function() {\r\n return isEmpty(this._value)\r\n },\r\n _shouldShowMask: function() {\r\n var showMaskMode = this.option(\"showMaskMode\");\r\n if (\"onFocus\" === showMaskMode) {\r\n return focused(this._input()) || !this._isValueEmpty()\r\n }\r\n return true\r\n },\r\n _showMaskPlaceholder: function() {\r\n if (this._shouldShowMask()) {\r\n var text = this._maskRulesChain.text();\r\n this.option(\"text\", text);\r\n if (\"onFocus\" === this.option(\"showMaskMode\")) {\r\n this._renderDisplayText(text)\r\n }\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this._maskRulesChain) {\r\n this._showMaskPlaceholder();\r\n if (this._$hiddenElement) {\r\n var value = this._maskRulesChain.value();\r\n var submitElementValue = !isEmpty(value) ? this._getPreparedValue() : \"\";\r\n this._$hiddenElement.val(submitElementValue)\r\n }\r\n }\r\n return this.callBase()\r\n },\r\n _getPreparedValue: function() {\r\n return this._convertToValue().replace(/\\s+$/, \"\")\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (!this._maskRulesChain) {\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", this._getPreparedValue())\r\n },\r\n _isControlKeyFired: function(e) {\r\n return this._isControlKey(normalizeKeyName(e)) || isCommandKeyPressed(e)\r\n },\r\n _handleChain: function(args) {\r\n var handledCount = this._maskRulesChain.handle(this._normalizeChainArguments(args));\r\n this._value = this._maskRulesChain.value();\r\n this._textValue = this._maskRulesChain.text();\r\n return handledCount\r\n },\r\n _normalizeChainArguments: function(args) {\r\n args = args || {};\r\n args.index = 0;\r\n args.fullText = this._maskRulesChain.text();\r\n return args\r\n },\r\n _convertToValue: function(text) {\r\n if (this._isMaskedValueMode()) {\r\n text = this._replaceMaskCharWithEmpty(text || this._textValue || \"\")\r\n } else {\r\n text = text || this._value || \"\"\r\n }\r\n return text\r\n },\r\n _replaceMaskCharWithEmpty: function(text) {\r\n return text.replace(new RegExp(this.option(\"maskChar\"), \"g\"), EMPTY_CHAR)\r\n },\r\n _maskKeyHandler: function(e, keyHandler) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this.setForwardDirection();\r\n e.preventDefault();\r\n this._handleSelection();\r\n var previousText = this._input().val();\r\n var raiseInputEvent = () => {\r\n if (previousText !== this._input().val()) {\r\n this._maskStrategy.runWithoutEventProcessing(() => eventsEngine.trigger(this._input(), \"input\"))\r\n }\r\n };\r\n var handled = keyHandler();\r\n if (handled) {\r\n handled.then(raiseInputEvent)\r\n } else {\r\n this.setForwardDirection();\r\n this._adjustCaret();\r\n this._displayMask();\r\n this._maskRulesChain.reset();\r\n raiseInputEvent()\r\n }\r\n },\r\n _handleKey: function(key, direction) {\r\n this._direction(direction || FORWARD_DIRECTION);\r\n this._adjustCaret(key);\r\n this._handleKeyChain(key);\r\n this._moveCaret()\r\n },\r\n _handleSelection: function() {\r\n if (!this._hasSelection()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n var emptyChars = new Array(caret.end - caret.start + 1).join(EMPTY_CHAR);\r\n this._handleKeyChain(emptyChars)\r\n },\r\n _handleKeyChain: function(chars) {\r\n var caret = this._caret();\r\n var start = this.isForwardDirection() ? caret.start : caret.start - 1;\r\n var end = this.isForwardDirection() ? caret.end : caret.end - 1;\r\n var length = start === end ? 1 : end - start;\r\n this._handleChain({\r\n text: chars,\r\n start: start,\r\n length: length\r\n })\r\n },\r\n _tryMoveCaretBackward: function() {\r\n this.setBackwardDirection();\r\n var currentCaret = this._caret().start;\r\n this._adjustCaret();\r\n return !currentCaret || currentCaret !== this._caret().start\r\n },\r\n _adjustCaret: function(char) {\r\n var caretStart = this._caret().start;\r\n var isForwardDirection = this.isForwardDirection();\r\n var caret = this._maskRulesChain.adjustedCaret(caretStart, isForwardDirection, char);\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _moveCaret: function() {\r\n var currentCaret = this._caret().start;\r\n var maskRuleIndex = currentCaret + (this.isForwardDirection() ? 0 : -1);\r\n var caret = this._maskRulesChain.isAccepted(maskRuleIndex) ? currentCaret + (this.isForwardDirection() ? 1 : -1) : currentCaret;\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _caret: function(position, force) {\r\n var $input = this._input();\r\n if (!$input.length) {\r\n return\r\n }\r\n if (!arguments.length) {\r\n return caret($input)\r\n }\r\n caret($input, position, force)\r\n },\r\n _hasSelection: function() {\r\n var caret = this._caret();\r\n return caret.start !== caret.end\r\n },\r\n _direction: function(direction) {\r\n if (!arguments.length) {\r\n return this._typingDirection\r\n }\r\n this._typingDirection = direction\r\n },\r\n setForwardDirection: function() {\r\n this._direction(FORWARD_DIRECTION)\r\n },\r\n setBackwardDirection: function() {\r\n this._direction(BACKWARD_DIRECTION)\r\n },\r\n isForwardDirection: function() {\r\n return this._direction() === FORWARD_DIRECTION\r\n },\r\n _clean: function() {\r\n this._maskStrategy && this._maskStrategy.clean();\r\n this.callBase()\r\n },\r\n _validateMask: function() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var isValid = isEmpty(this.option(\"value\")) || this._maskRulesChain.isValid(this._normalizeChainArguments());\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"maskInvalidMessage\")\r\n }\r\n })\r\n },\r\n _updateHiddenElement: function() {\r\n this._removeHiddenElement();\r\n if (this.option(\"mask\")) {\r\n this._input().removeAttr(\"name\");\r\n this._renderHiddenElement()\r\n }\r\n this._setSubmitElementName(this.option(\"name\"))\r\n },\r\n _updateMaskOption: function() {\r\n this._updateHiddenElement();\r\n this._renderMask();\r\n this._validateMask()\r\n },\r\n _processEmptyMask: function(mask) {\r\n if (mask) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n this.option({\r\n text: value,\r\n isValid: true\r\n });\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n });\r\n this._renderValue()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"mask\":\r\n this._updateMaskOption();\r\n this._processEmptyMask(args.value);\r\n break;\r\n case \"maskChar\":\r\n case \"maskRules\":\r\n case \"useMaskedValue\":\r\n this._updateMaskOption();\r\n break;\r\n case \"value\":\r\n this._renderMaskedValue();\r\n this._validateMask();\r\n this.callBase(args);\r\n this._changedValue = this._input().val();\r\n break;\r\n case \"maskInvalidMessage\":\r\n break;\r\n case \"showMaskMode\":\r\n this.option(\"text\", \"\");\r\n this._renderValue();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditorMask from \"./ui.text_editor.mask\";\r\nregisterComponent(\"dxTextEditor\", TextEditorMask);\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/base_props.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nexport var BaseWidgetProps = {\r\n className: \"\",\r\n activeStateEnabled: false,\r\n disabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n rtlEnabled: false,\r\n tabIndex: 0,\r\n visible: true\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/selection_filter.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getKeyHash,\r\n equalByValue\r\n} from \"./common\";\r\nimport {\r\n isString,\r\n isObject\r\n} from \"./type\";\r\nexport var SelectionFilterCreator = function(selectedItemKeys, isSelectAll) {\r\n this.getLocalFilter = function(keyGetter, equalKeys, equalByReference, keyExpr) {\r\n equalKeys = void 0 === equalKeys ? equalByValue : equalKeys;\r\n return functionFilter.bind(this, equalKeys, keyGetter, equalByReference, keyExpr)\r\n };\r\n this.getExpr = function(keyExpr) {\r\n if (!keyExpr) {\r\n return\r\n }\r\n var filterExpr;\r\n selectedItemKeys.forEach((function(key, index) {\r\n filterExpr = filterExpr || [];\r\n var filterExprPart;\r\n if (index > 0) {\r\n filterExpr.push(isSelectAll ? \"and\" : \"or\")\r\n }\r\n if (isString(keyExpr)) {\r\n filterExprPart = getFilterForPlainKey(keyExpr, key)\r\n } else {\r\n filterExprPart = function(keyExpr, itemKeyValue) {\r\n var filterExpr = [];\r\n for (var i = 0, length = keyExpr.length; i < length; i++) {\r\n var currentKeyExpr = keyExpr[i];\r\n var currentKeyValue = itemKeyValue && itemKeyValue[currentKeyExpr];\r\n var filterExprPart = getFilterForPlainKey(currentKeyExpr, currentKeyValue);\r\n if (!filterExprPart) {\r\n break\r\n }\r\n if (i > 0) {\r\n filterExpr.push(isSelectAll ? \"or\" : \"and\")\r\n }\r\n filterExpr.push(filterExprPart)\r\n }\r\n return filterExpr\r\n }(keyExpr, key)\r\n }\r\n filterExpr.push(filterExprPart)\r\n }));\r\n if (filterExpr && 1 === filterExpr.length) {\r\n filterExpr = filterExpr[0]\r\n }\r\n return filterExpr\r\n };\r\n this.getCombinedFilter = function(keyExpr, dataSourceFilter) {\r\n var filterExpr = this.getExpr(keyExpr);\r\n var combinedFilter = filterExpr;\r\n if (isSelectAll && dataSourceFilter) {\r\n if (filterExpr) {\r\n combinedFilter = [];\r\n combinedFilter.push(filterExpr);\r\n combinedFilter.push(dataSourceFilter)\r\n } else {\r\n combinedFilter = dataSourceFilter\r\n }\r\n }\r\n return combinedFilter\r\n };\r\n var selectedItemKeyHashesMap;\r\n var normalizeKeys = function(keys, keyOf, keyExpr) {\r\n return Array.isArray(keyExpr) ? keys.map(key => keyOf(key)) : keys\r\n };\r\n\r\n function functionFilter(equalKeys, keyOf, equalByReference, keyExpr, item) {\r\n var key = keyOf(item);\r\n var keyHash;\r\n var i;\r\n if (!equalByReference) {\r\n keyHash = getKeyHash(key);\r\n if (!isObject(keyHash)) {\r\n var selectedKeyHashesMap = function(keyOf, keyExpr) {\r\n if (!selectedItemKeyHashesMap) {\r\n selectedItemKeyHashesMap = {};\r\n var normalizedKeys = normalizeKeys(selectedItemKeys, keyOf, keyExpr);\r\n for (var i = 0; i < normalizedKeys.length; i++) {\r\n selectedItemKeyHashesMap[getKeyHash(normalizedKeys[i])] = true\r\n }\r\n }\r\n return selectedItemKeyHashesMap\r\n }(keyOf, keyExpr);\r\n if (selectedKeyHashesMap[keyHash]) {\r\n return !isSelectAll\r\n }\r\n return !!isSelectAll\r\n }\r\n }\r\n for (i = 0; i < selectedItemKeys.length; i++) {\r\n if (equalKeys(selectedItemKeys[i], key)) {\r\n return !isSelectAll\r\n }\r\n }\r\n return !!isSelectAll\r\n }\r\n\r\n function getFilterForPlainKey(keyExpr, keyValue) {\r\n if (void 0 === keyValue) {\r\n return\r\n }\r\n return [keyExpr, isSelectAll ? \"<>\" : \"=\", keyValue]\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.strategy.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isRenderer\r\n} from \"../../core/utils/type\";\r\nvar abstract = Class.abstract;\r\nvar EditStrategy = Class.inherit({\r\n ctor: function(collectionWidget) {\r\n this._collectionWidget = collectionWidget\r\n },\r\n getIndexByItemData: abstract,\r\n getItemDataByIndex: abstract,\r\n getKeysByItems: abstract,\r\n getItemsByKeys: abstract,\r\n itemsGetter: abstract,\r\n getKeyByIndex: function(index) {\r\n var resultIndex = this._denormalizeItemIndex(index);\r\n return this.getKeysByItems([this.getItemDataByIndex(resultIndex)])[0]\r\n },\r\n _equalKeys: function(key1, key2) {\r\n if (this._collectionWidget._isKeySpecified()) {\r\n return equalByValue(key1, key2)\r\n } else {\r\n return key1 === key2\r\n }\r\n },\r\n beginCache: function() {\r\n this._cache = {}\r\n },\r\n endCache: function() {\r\n this._cache = null\r\n },\r\n getIndexByKey: abstract,\r\n getNormalizedIndex: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._normalizeItemIndex(value)\r\n }\r\n if (this._isNode(value)) {\r\n return this._getNormalizedItemIndex(value)\r\n }\r\n return this._normalizeItemIndex(this.getIndexByItemData(value))\r\n },\r\n getIndex: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._denormalizeItemIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isNode(value)) {\r\n return this._denormalizeItemIndex(this._getNormalizedItemIndex(value))\r\n }\r\n return this.getIndexByItemData(value)\r\n },\r\n getItemElement: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(this._normalizeItemIndex(value))\r\n }\r\n if (this._isNode(value)) {\r\n return $(value)\r\n }\r\n var normalizedItemIndex = this._normalizeItemIndex(this.getIndexByItemData(value));\r\n return this._getItemByNormalizedIndex(normalizedItemIndex)\r\n },\r\n _isNode: el => domAdapter.isNode(el && isRenderer(el) ? el.get(0) : el),\r\n deleteItemAtIndex: abstract,\r\n itemPlacementFunc: function(movingIndex, destinationIndex) {\r\n return this._itemsFromSameParent(movingIndex, destinationIndex) && movingIndex < destinationIndex ? \"after\" : \"before\"\r\n },\r\n moveItemAtIndexToIndex: abstract,\r\n _isNormalizedItemIndex: function(index) {\r\n return \"number\" === typeof index && Math.round(index) === index\r\n },\r\n _isItemIndex: abstract,\r\n _getNormalizedItemIndex: abstract,\r\n _normalizeItemIndex: abstract,\r\n _denormalizeItemIndex: abstract,\r\n _getItemByNormalizedIndex: abstract,\r\n _itemsFromSameParent: abstract\r\n});\r\nexport default EditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.strategy.plain.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport EditStrategy from \"./ui.collection_widget.edit.strategy\";\r\nvar PlainEditStrategy = EditStrategy.inherit({\r\n _getPlainItems: function() {\r\n return this._collectionWidget.option(\"items\") || []\r\n },\r\n getIndexByItemData: function(itemData) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n if (keyOf) {\r\n return this.getIndexByKey(keyOf(itemData))\r\n } else {\r\n return inArray(itemData, this._getPlainItems())\r\n }\r\n },\r\n getItemDataByIndex: function(index) {\r\n return this._getPlainItems()[index]\r\n },\r\n deleteItemAtIndex: function(index) {\r\n this._getPlainItems().splice(index, 1)\r\n },\r\n itemsGetter: function() {\r\n return this._getPlainItems()\r\n },\r\n getKeysByItems: function(items) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n var result = items;\r\n if (keyOf) {\r\n result = [];\r\n for (var i = 0; i < items.length; i++) {\r\n result.push(keyOf(items[i]))\r\n }\r\n }\r\n return result\r\n },\r\n getIndexByKey: function(key) {\r\n var cache = this._cache;\r\n var keys = cache && cache.keys || this.getKeysByItems(this._getPlainItems());\r\n if (cache && !cache.keys) {\r\n cache.keys = keys\r\n }\r\n if (\"object\" === typeof key) {\r\n for (var i = 0, length = keys.length; i < length; i++) {\r\n if (this._equalKeys(key, keys[i])) {\r\n return i\r\n }\r\n }\r\n } else {\r\n return keys.indexOf(key)\r\n }\r\n return -1\r\n },\r\n getItemsByKeys: function(keys, items) {\r\n return (items || keys).slice()\r\n },\r\n moveItemAtIndexToIndex: function(movingIndex, destinationIndex) {\r\n var items = this._getPlainItems();\r\n var movedItemData = items[movingIndex];\r\n items.splice(movingIndex, 1);\r\n items.splice(destinationIndex, 0, movedItemData)\r\n },\r\n _isItemIndex: function(index) {\r\n return \"number\" === typeof index && Math.round(index) === index\r\n },\r\n _getNormalizedItemIndex: function(itemElement) {\r\n return this._collectionWidget._itemElements().index(itemElement)\r\n },\r\n _normalizeItemIndex: function(index) {\r\n return index\r\n },\r\n _denormalizeItemIndex: function(index) {\r\n return index\r\n },\r\n _getItemByNormalizedIndex: function(index) {\r\n return index > -1 ? this._collectionWidget._itemElements().eq(index) : null\r\n },\r\n _itemsFromSameParent: function() {\r\n return true\r\n }\r\n});\r\nexport default PlainEditStrategy;\r\n","/**\r\n * DevExtreme (esm/events/core/emitter_registrator.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport {\r\n name as wheelEventName\r\n} from \"./wheel\";\r\nvar MANAGER_EVENT = \"dxEventManager\";\r\nvar EMITTER_DATA = \"dxEmitter\";\r\nvar EventManager = Class.inherit({\r\n ctor: function() {\r\n this._attachHandlers();\r\n this.reset();\r\n this._proxiedCancelHandler = this._cancelHandler.bind(this);\r\n this._proxiedAcceptHandler = this._acceptHandler.bind(this)\r\n },\r\n _attachHandlers: function() {\r\n readyCallbacks.add(function() {\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, MANAGER_EVENT), this._pointerDownHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.move, MANAGER_EVENT), this._pointerMoveHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace([pointerEvents.up, pointerEvents.cancel].join(\" \"), MANAGER_EVENT), this._pointerUpHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(wheelEventName, MANAGER_EVENT), this._mouseWheelHandler.bind(this))\r\n }.bind(this))\r\n },\r\n _eachEmitter: function(callback) {\r\n var activeEmitters = this._activeEmitters || [];\r\n var i = 0;\r\n while (activeEmitters.length > i) {\r\n var emitter = activeEmitters[i];\r\n if (false === callback(emitter)) {\r\n break\r\n }\r\n if (activeEmitters[i] === emitter) {\r\n i++\r\n }\r\n }\r\n },\r\n _applyToEmitters: function(method, arg) {\r\n this._eachEmitter((function(emitter) {\r\n emitter[method].call(emitter, arg)\r\n }))\r\n },\r\n reset: function() {\r\n this._eachEmitter(this._proxiedCancelHandler);\r\n this._activeEmitters = []\r\n },\r\n resetEmitter: function(emitter) {\r\n this._proxiedCancelHandler(emitter)\r\n },\r\n _pointerDownHandler: function(e) {\r\n if (isMouseEvent(e) && e.which > 1) {\r\n return\r\n }\r\n this._updateEmitters(e)\r\n },\r\n _updateEmitters: function(e) {\r\n if (!this._isSetChanged(e)) {\r\n return\r\n }\r\n this._cleanEmitters(e);\r\n this._fetchEmitters(e)\r\n },\r\n _isSetChanged: function(e) {\r\n var currentSet = this._closestEmitter(e);\r\n var previousSet = this._emittersSet || [];\r\n var setChanged = currentSet.length !== previousSet.length;\r\n each(currentSet, (function(index, emitter) {\r\n setChanged = setChanged || previousSet[index] !== emitter;\r\n return !setChanged\r\n }));\r\n this._emittersSet = currentSet;\r\n return setChanged\r\n },\r\n _closestEmitter: function(e) {\r\n var that = this;\r\n var result = [];\r\n var $element = $(e.target);\r\n\r\n function handleEmitter(_, emitter) {\r\n if (!!emitter && emitter.validatePointers(e) && emitter.validate(e)) {\r\n emitter.addCancelCallback(that._proxiedCancelHandler);\r\n emitter.addAcceptCallback(that._proxiedAcceptHandler);\r\n result.push(emitter)\r\n }\r\n }\r\n while ($element.length) {\r\n var emitters = elementData($element.get(0), EMITTER_DATA) || [];\r\n each(emitters, handleEmitter);\r\n $element = $element.parent()\r\n }\r\n return result\r\n },\r\n _acceptHandler: function(acceptedEmitter, e) {\r\n var that = this;\r\n this._eachEmitter((function(emitter) {\r\n if (emitter !== acceptedEmitter) {\r\n that._cancelEmitter(emitter, e)\r\n }\r\n }))\r\n },\r\n _cancelHandler: function(canceledEmitter, e) {\r\n this._cancelEmitter(canceledEmitter, e)\r\n },\r\n _cancelEmitter: function(emitter, e) {\r\n var activeEmitters = this._activeEmitters;\r\n if (e) {\r\n emitter.cancel(e)\r\n } else {\r\n emitter.reset()\r\n }\r\n emitter.removeCancelCallback();\r\n emitter.removeAcceptCallback();\r\n var emitterIndex = inArray(emitter, activeEmitters);\r\n if (emitterIndex > -1) {\r\n activeEmitters.splice(emitterIndex, 1)\r\n }\r\n },\r\n _cleanEmitters: function(e) {\r\n this._applyToEmitters(\"end\", e);\r\n this.reset(e)\r\n },\r\n _fetchEmitters: function(e) {\r\n this._activeEmitters = this._emittersSet.slice();\r\n this._applyToEmitters(\"start\", e)\r\n },\r\n _pointerMoveHandler: function(e) {\r\n this._applyToEmitters(\"move\", e)\r\n },\r\n _pointerUpHandler: function(e) {\r\n this._updateEmitters(e)\r\n },\r\n _mouseWheelHandler: function(e) {\r\n if (!this._allowInterruptionByMouseWheel()) {\r\n return\r\n }\r\n e.pointers = [null];\r\n this._pointerDownHandler(e);\r\n this._adjustWheelEvent(e);\r\n this._pointerMoveHandler(e);\r\n e.pointers = [];\r\n this._pointerUpHandler(e)\r\n },\r\n _allowInterruptionByMouseWheel: function() {\r\n var allowInterruption = true;\r\n this._eachEmitter((function(emitter) {\r\n allowInterruption = emitter.allowInterruptionByMouseWheel() && allowInterruption;\r\n return allowInterruption\r\n }));\r\n return allowInterruption\r\n },\r\n _adjustWheelEvent: function(e) {\r\n var closestGestureEmitter = null;\r\n this._eachEmitter((function(emitter) {\r\n if (!emitter.gesture) {\r\n return\r\n }\r\n var direction = emitter.getDirection(e);\r\n if (\"horizontal\" !== direction && !e.shiftKey || \"vertical\" !== direction && e.shiftKey) {\r\n closestGestureEmitter = emitter;\r\n return false\r\n }\r\n }));\r\n if (!closestGestureEmitter) {\r\n return\r\n }\r\n var direction = closestGestureEmitter.getDirection(e);\r\n var verticalGestureDirection = \"both\" === direction && !e.shiftKey || \"vertical\" === direction;\r\n var prop = verticalGestureDirection ? \"pageY\" : \"pageX\";\r\n e[prop] += e.delta\r\n },\r\n isActive: function(element) {\r\n var result = false;\r\n this._eachEmitter((function(emitter) {\r\n result = result || emitter.getElement().is(element)\r\n }));\r\n return result\r\n }\r\n});\r\nvar eventManager = new EventManager;\r\nvar EMITTER_SUBSCRIPTION_DATA = \"dxEmitterSubscription\";\r\nvar registerEmitter = function(emitterConfig) {\r\n var emitterClass = emitterConfig.emitter;\r\n var emitterName = emitterConfig.events[0];\r\n var emitterEvents = emitterConfig.events;\r\n each(emitterEvents, (function(_, eventName) {\r\n registerEvent(eventName, {\r\n noBubble: !emitterConfig.bubble,\r\n setup: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA) || {};\r\n var emitters = elementData(element, EMITTER_DATA) || {};\r\n var emitter = emitters[emitterName] || new emitterClass(element);\r\n subscriptions[eventName] = true;\r\n emitters[emitterName] = emitter;\r\n elementData(element, EMITTER_DATA, emitters);\r\n elementData(element, EMITTER_SUBSCRIPTION_DATA, subscriptions)\r\n },\r\n add: function(element, handleObj) {\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n emitter.configure(extend({\r\n delegateSelector: handleObj.selector\r\n }, handleObj.data), handleObj.type)\r\n },\r\n teardown: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA);\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n delete subscriptions[eventName];\r\n var disposeEmitter = true;\r\n each(emitterEvents, (function(_, eventName) {\r\n disposeEmitter = disposeEmitter && !subscriptions[eventName];\r\n return disposeEmitter\r\n }));\r\n if (disposeEmitter) {\r\n if (eventManager.isActive(element)) {\r\n eventManager.resetEmitter(emitter)\r\n }\r\n emitter && emitter.dispose();\r\n delete emitters[emitterName]\r\n }\r\n }\r\n })\r\n }))\r\n};\r\nexport default registerEmitter;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/utils.caret.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar {\r\n ios: ios,\r\n mac: mac\r\n} = devices.real();\r\nvar isFocusingOnCaretChange = ios || mac;\r\nvar getCaret = function(input) {\r\n var range;\r\n try {\r\n range = {\r\n start: input.selectionStart,\r\n end: input.selectionEnd\r\n }\r\n } catch (e) {\r\n range = {\r\n start: 0,\r\n end: 0\r\n }\r\n }\r\n return range\r\n};\r\nvar setCaret = function(input, position) {\r\n if (!domAdapter.getBody().contains(input)) {\r\n return\r\n }\r\n try {\r\n input.selectionStart = position.start;\r\n input.selectionEnd = position.end\r\n } catch (e) {}\r\n};\r\nvar caret = function(input, position) {\r\n var force = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n input = $(input).get(0);\r\n if (!isDefined(position)) {\r\n return getCaret(input)\r\n }\r\n if (!force && isFocusingOnCaretChange && domAdapter.getActiveElement() !== input) {\r\n return\r\n }\r\n setCaret(input, position)\r\n};\r\nexport default caret;\r\n","/**\r\n * DevExtreme (esm/events/core/event_registrator.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport callbacks from \"./event_registrator_callbacks\";\r\nvar registerEvent = function(name, eventObject) {\r\n var strategy = {};\r\n if (\"noBubble\" in eventObject) {\r\n strategy.noBubble = eventObject.noBubble\r\n }\r\n if (\"bindType\" in eventObject) {\r\n strategy.bindType = eventObject.bindType\r\n }\r\n if (\"delegateType\" in eventObject) {\r\n strategy.delegateType = eventObject.delegateType\r\n }\r\n each([\"setup\", \"teardown\", \"add\", \"remove\", \"trigger\", \"handle\", \"_default\", \"dispose\"], (function(_, methodName) {\r\n if (!eventObject[methodName]) {\r\n return\r\n }\r\n strategy[methodName] = function() {\r\n var args = [].slice.call(arguments);\r\n args.unshift(this);\r\n return eventObject[methodName].apply(eventObject, args)\r\n }\r\n }));\r\n callbacks.fire(name, strategy)\r\n};\r\nregisterEvent.callbacks = callbacks;\r\nexport default registerEvent;\r\n","/**\r\n * DevExtreme (esm/core/templates/template_base.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../renderer\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"../utils/callbacks\";\r\nimport {\r\n contains\r\n} from \"../utils/dom\";\r\nimport {\r\n triggerShownEvent\r\n} from \"../../events/visibility_change\";\r\nimport errors from \"../errors\";\r\nexport var renderedCallbacks = Callbacks({\r\n syncStrategy: true\r\n});\r\nexport class TemplateBase {\r\n render(options) {\r\n options = options || {};\r\n var onRendered = options.onRendered;\r\n delete options.onRendered;\r\n var $result = this._renderCore(options);\r\n this._ensureResultInContainer($result, options.container);\r\n renderedCallbacks.fire($result, options.container);\r\n onRendered && onRendered();\r\n return $result\r\n }\r\n _ensureResultInContainer($result, container) {\r\n if (!container) {\r\n return\r\n }\r\n var $container = $(container);\r\n var resultInContainer = contains($container.get(0), $result.get(0));\r\n $container.append($result);\r\n if (resultInContainer) {\r\n return\r\n }\r\n var resultInBody = domAdapter.getBody().contains($container.get(0));\r\n if (!resultInBody) {\r\n return\r\n }\r\n triggerShownEvent($result)\r\n }\r\n _renderCore() {\r\n throw errors.Error(\"E0001\")\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/animation/easing.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nvar CSS_TRANSITION_EASING_REGEX = /cubic-bezier\\((\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\)/;\r\nvar TransitionTimingFuncMap = {\r\n linear: \"cubic-bezier(0, 0, 1, 1)\",\r\n swing: \"cubic-bezier(0.445, 0.05, 0.55, 0.95)\",\r\n ease: \"cubic-bezier(0.25, 0.1, 0.25, 1)\",\r\n \"ease-in\": \"cubic-bezier(0.42, 0, 1, 1)\",\r\n \"ease-out\": \"cubic-bezier(0, 0, 0.58, 1)\",\r\n \"ease-in-out\": \"cubic-bezier(0.42, 0, 0.58, 1)\"\r\n};\r\nvar polynomBezier = function(x1, y1, x2, y2) {\r\n var Cx = 3 * x1;\r\n var Bx = 3 * (x2 - x1) - Cx;\r\n var Ax = 1 - Cx - Bx;\r\n var Cy = 3 * y1;\r\n var By = 3 * (y2 - y1) - Cy;\r\n var Ay = 1 - Cy - By;\r\n var bezierX = function(t) {\r\n return t * (Cx + t * (Bx + t * Ax))\r\n };\r\n var derivativeX = function(t) {\r\n return Cx + t * (2 * Bx + 3 * t * Ax)\r\n };\r\n return function(t) {\r\n return function(t) {\r\n return t * (Cy + t * (By + t * Ay))\r\n }(function(t) {\r\n var x = t;\r\n var i = 0;\r\n var z;\r\n while (i < 14) {\r\n z = bezierX(x) - t;\r\n if (Math.abs(z) < .001) {\r\n break\r\n }\r\n x -= z / derivativeX(x);\r\n i++\r\n }\r\n return x\r\n }(t))\r\n }\r\n};\r\nvar easing = {};\r\nexport var convertTransitionTimingFuncToEasing = function(cssTransitionEasing) {\r\n cssTransitionEasing = TransitionTimingFuncMap[cssTransitionEasing] || cssTransitionEasing;\r\n var coeffs = cssTransitionEasing.match(CSS_TRANSITION_EASING_REGEX);\r\n var forceName;\r\n if (!coeffs) {\r\n forceName = \"linear\";\r\n coeffs = TransitionTimingFuncMap[forceName].match(CSS_TRANSITION_EASING_REGEX)\r\n }\r\n coeffs = coeffs.slice(1, 5);\r\n for (var i = 0; i < coeffs.length; i++) {\r\n coeffs[i] = parseFloat(coeffs[i])\r\n }\r\n var easingName = forceName || \"cubicbezier_\" + coeffs.join(\"_\").replace(/\\./g, \"p\");\r\n if (!isFunction(easing[easingName])) {\r\n easing[easingName] = function(x, t, b, c, d) {\r\n return c * polynomBezier(coeffs[0], coeffs[1], coeffs[2], coeffs[3])(t / d) + b\r\n }\r\n }\r\n return easingName\r\n};\r\nexport function setEasing(value) {\r\n easing = value\r\n}\r\nexport function getEasing(name) {\r\n return easing[name]\r\n}\r\n","/**\r\n * DevExtreme (esm/animation/fx.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getTranslateCss,\r\n parseTranslate,\r\n clearCache,\r\n locate,\r\n getTranslate\r\n} from \"./translator\";\r\nimport {\r\n convertTransitionTimingFuncToEasing,\r\n getEasing\r\n} from \"./easing\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"./frame\";\r\nimport {\r\n transitionEndEventName,\r\n transition\r\n} from \"../core/utils/support\";\r\nimport positionUtils from \"./position\";\r\nimport {\r\n removeEvent\r\n} from \"../events/remove\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar removeEventName = addNamespace(removeEvent, \"dxFX\");\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nvar RELATIVE_VALUE_REGEX = /^([+-])=(.*)/i;\r\nvar ANIM_DATA_KEY = \"dxAnimData\";\r\nvar ANIM_QUEUE_KEY = \"dxAnimQueue\";\r\nvar TRANSFORM_PROP = \"transform\";\r\nvar TransitionAnimationStrategy = {\r\n initAnimation: function($element, config) {\r\n $element.css({\r\n transitionProperty: \"none\"\r\n });\r\n if (\"string\" === typeof config.from) {\r\n $element.addClass(config.from)\r\n } else {\r\n setProps($element, config.from)\r\n }\r\n var that = this;\r\n var deferred = new Deferred;\r\n var cleanupWhen = config.cleanupWhen;\r\n config.transitionAnimation = {\r\n deferred: deferred,\r\n finish: function() {\r\n that._finishTransition($element);\r\n if (cleanupWhen) {\r\n when(deferred, cleanupWhen).always((function() {\r\n that._cleanup($element, config)\r\n }))\r\n } else {\r\n that._cleanup($element, config)\r\n }\r\n deferred.resolveWith($element, [config, $element])\r\n }\r\n };\r\n this._completeAnimationCallback($element, config).done((function() {\r\n config.transitionAnimation.finish()\r\n })).fail((function() {\r\n deferred.rejectWith($element, [config, $element])\r\n }));\r\n if (!config.duration) {\r\n config.transitionAnimation.finish()\r\n }\r\n $element.css(\"transform\")\r\n },\r\n animate: function($element, config) {\r\n this._startAnimation($element, config);\r\n return config.transitionAnimation.deferred.promise()\r\n },\r\n _completeAnimationCallback: function($element, config) {\r\n var that = this;\r\n var startTime = Date.now() + config.delay;\r\n var deferred = new Deferred;\r\n var transitionEndFired = new Deferred;\r\n var simulatedTransitionEndFired = new Deferred;\r\n var simulatedEndEventTimer;\r\n var transitionEndEventFullName = transitionEndEventName() + \".dxFX\";\r\n config.transitionAnimation.cleanup = function() {\r\n clearTimeout(simulatedEndEventTimer);\r\n clearTimeout(waitForJSCompleteTimer);\r\n eventsEngine.off($element, transitionEndEventFullName);\r\n eventsEngine.off($element, removeEventName)\r\n };\r\n eventsEngine.one($element, transitionEndEventFullName, (function() {\r\n if (Date.now() - startTime >= config.duration) {\r\n transitionEndFired.reject()\r\n }\r\n }));\r\n eventsEngine.off($element, removeEventName);\r\n eventsEngine.on($element, removeEventName, (function() {\r\n that.stop($element, config);\r\n deferred.reject()\r\n }));\r\n var waitForJSCompleteTimer = setTimeout((function() {\r\n simulatedEndEventTimer = setTimeout((function() {\r\n simulatedTransitionEndFired.reject()\r\n }), config.duration + config.delay + fx._simulatedTransitionEndDelay);\r\n when(transitionEndFired, simulatedTransitionEndFired).fail(function() {\r\n deferred.resolve()\r\n }.bind(this))\r\n }));\r\n return deferred.promise()\r\n },\r\n _startAnimation: function($element, config) {\r\n $element.css({\r\n transitionProperty: \"all\",\r\n transitionDelay: config.delay + \"ms\",\r\n transitionDuration: config.duration + \"ms\",\r\n transitionTimingFunction: config.easing\r\n });\r\n if (\"string\" === typeof config.to) {\r\n $element[0].className += \" \" + config.to\r\n } else if (config.to) {\r\n setProps($element, config.to)\r\n }\r\n },\r\n _finishTransition: function($element) {\r\n $element.css(\"transition\", \"none\")\r\n },\r\n _cleanup: function($element, config) {\r\n config.transitionAnimation.cleanup();\r\n if (\"string\" === typeof config.from) {\r\n $element.removeClass(config.from);\r\n $element.removeClass(config.to)\r\n }\r\n },\r\n stop: function($element, config, jumpToEnd) {\r\n if (!config) {\r\n return\r\n }\r\n if (jumpToEnd) {\r\n config.transitionAnimation.finish()\r\n } else {\r\n if (isPlainObject(config.to)) {\r\n each(config.to, (function(key) {\r\n $element.css(key, $element.css(key))\r\n }))\r\n }\r\n this._finishTransition($element);\r\n this._cleanup($element, config)\r\n }\r\n }\r\n};\r\nvar FrameAnimationStrategy = {\r\n initAnimation: function($element, config) {\r\n setProps($element, config.from)\r\n },\r\n animate: function($element, config) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n if (!config) {\r\n return deferred.reject().promise()\r\n }\r\n each(config.to, (function(prop) {\r\n if (void 0 === config.from[prop]) {\r\n config.from[prop] = that._normalizeValue($element.css(prop))\r\n }\r\n }));\r\n if (config.to[TRANSFORM_PROP]) {\r\n config.from[TRANSFORM_PROP] = that._parseTransform(config.from[TRANSFORM_PROP]);\r\n config.to[TRANSFORM_PROP] = that._parseTransform(config.to[TRANSFORM_PROP])\r\n }\r\n config.frameAnimation = {\r\n to: config.to,\r\n from: config.from,\r\n currentValue: config.from,\r\n easing: convertTransitionTimingFuncToEasing(config.easing),\r\n duration: config.duration,\r\n startTime: (new Date).valueOf(),\r\n finish: function() {\r\n this.currentValue = this.to;\r\n this.draw();\r\n cancelAnimationFrame(config.frameAnimation.animationFrameId);\r\n deferred.resolve()\r\n },\r\n draw: function() {\r\n if (config.draw) {\r\n config.draw(this.currentValue);\r\n return\r\n }\r\n var currentValue = extend({}, this.currentValue);\r\n if (currentValue[TRANSFORM_PROP]) {\r\n currentValue[TRANSFORM_PROP] = map(currentValue[TRANSFORM_PROP], (function(value, prop) {\r\n if (\"translate\" === prop) {\r\n return getTranslateCss(value)\r\n } else if (\"scale\" === prop) {\r\n return \"scale(\" + value + \")\"\r\n } else if (\"rotate\" === prop.substr(0, prop.length - 1)) {\r\n return prop + \"(\" + value + \"deg)\"\r\n }\r\n })).join(\" \")\r\n }\r\n $element.css(currentValue)\r\n }\r\n };\r\n if (config.delay) {\r\n config.frameAnimation.startTime += config.delay;\r\n config.frameAnimation.delayTimeout = setTimeout((function() {\r\n that._startAnimation($element, config)\r\n }), config.delay)\r\n } else {\r\n that._startAnimation($element, config)\r\n }\r\n return deferred.promise()\r\n },\r\n _startAnimation: function($element, config) {\r\n eventsEngine.off($element, removeEventName);\r\n eventsEngine.on($element, removeEventName, (function() {\r\n if (config.frameAnimation) {\r\n cancelAnimationFrame(config.frameAnimation.animationFrameId)\r\n }\r\n }));\r\n this._animationStep($element, config)\r\n },\r\n _parseTransform: function(transformString) {\r\n var result = {};\r\n each(transformString.match(/\\w+\\d*\\w*\\([^)]*\\)\\s*/g), (function(i, part) {\r\n var translateData = parseTranslate(part);\r\n var scaleData = part.match(/scale\\((.+?)\\)/);\r\n var rotateData = part.match(/(rotate.)\\((.+)deg\\)/);\r\n if (translateData) {\r\n result.translate = translateData\r\n }\r\n if (scaleData && scaleData[1]) {\r\n result.scale = parseFloat(scaleData[1])\r\n }\r\n if (rotateData && rotateData[1]) {\r\n result[rotateData[1]] = parseFloat(rotateData[2])\r\n }\r\n }));\r\n return result\r\n },\r\n stop: function($element, config, jumpToEnd) {\r\n var frameAnimation = config && config.frameAnimation;\r\n if (!frameAnimation) {\r\n return\r\n }\r\n cancelAnimationFrame(frameAnimation.animationFrameId);\r\n clearTimeout(frameAnimation.delayTimeout);\r\n if (jumpToEnd) {\r\n frameAnimation.finish()\r\n }\r\n delete config.frameAnimation\r\n },\r\n _animationStep: function($element, config) {\r\n var frameAnimation = config && config.frameAnimation;\r\n if (!frameAnimation) {\r\n return\r\n }\r\n var now = (new Date).valueOf();\r\n if (now >= frameAnimation.startTime + frameAnimation.duration) {\r\n frameAnimation.finish();\r\n return\r\n }\r\n frameAnimation.currentValue = this._calcStepValue(frameAnimation, now - frameAnimation.startTime);\r\n frameAnimation.draw();\r\n var that = this;\r\n frameAnimation.animationFrameId = requestAnimationFrame((function() {\r\n that._animationStep($element, config)\r\n }))\r\n },\r\n _calcStepValue: function(frameAnimation, currentDuration) {\r\n return function calcValueRecursively(from, to) {\r\n var result = Array.isArray(to) ? [] : {};\r\n each(to, (function(propName, endPropValue) {\r\n if (\"string\" === typeof endPropValue && false === parseFloat(endPropValue, 10)) {\r\n return true\r\n }\r\n result[propName] = \"object\" === typeof endPropValue ? calcValueRecursively(from[propName], endPropValue) : function(propName) {\r\n var x = currentDuration / frameAnimation.duration;\r\n var t = currentDuration;\r\n var b = 1 * from[propName];\r\n var c = to[propName] - from[propName];\r\n var d = frameAnimation.duration;\r\n return getEasing(frameAnimation.easing)(x, t, b, c, d)\r\n }(propName)\r\n }));\r\n return result\r\n }(frameAnimation.from, frameAnimation.to)\r\n },\r\n _normalizeValue: function(value) {\r\n var numericValue = parseFloat(value, 10);\r\n if (false === numericValue) {\r\n return value\r\n }\r\n return numericValue\r\n }\r\n};\r\nvar FallbackToNoAnimationStrategy = {\r\n initAnimation: function() {},\r\n animate: function() {\r\n return (new Deferred).resolve().promise()\r\n },\r\n stop: noop,\r\n isSynchronous: true\r\n};\r\nvar getAnimationStrategy = function(config) {\r\n config = config || {};\r\n var animationStrategies = {\r\n transition: transition() ? TransitionAnimationStrategy : FrameAnimationStrategy,\r\n frame: FrameAnimationStrategy,\r\n noAnimation: FallbackToNoAnimationStrategy\r\n };\r\n var strategy = config.strategy || \"transition\";\r\n if (\"css\" === config.type && !transition()) {\r\n strategy = \"noAnimation\"\r\n }\r\n return animationStrategies[strategy]\r\n};\r\nvar baseConfigValidator = function(config, animationType, validate, typeMessage) {\r\n each([\"from\", \"to\"], (function() {\r\n if (!validate(config[this])) {\r\n throw errors.Error(\"E0010\", animationType, this, typeMessage)\r\n }\r\n }))\r\n};\r\nvar isObjectConfigValidator = function(config, animationType) {\r\n return baseConfigValidator(config, animationType, (function(target) {\r\n return isPlainObject(target)\r\n }), \"a plain object\")\r\n};\r\nvar isStringConfigValidator = function(config, animationType) {\r\n return baseConfigValidator(config, animationType, (function(target) {\r\n return \"string\" === typeof target\r\n }), \"a string\")\r\n};\r\nvar CustomAnimationConfigurator = {\r\n setup: function() {}\r\n};\r\nvar CssAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isStringConfigValidator(config, \"css\")\r\n },\r\n setup: function() {}\r\n};\r\nvar positionAliases = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\"\r\n }\r\n};\r\nvar SlideAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isObjectConfigValidator(config, \"slide\")\r\n },\r\n setup: function($element, config) {\r\n var location = locate($element);\r\n if (\"slide\" !== config.type) {\r\n var positioningConfig = \"slideIn\" === config.type ? config.from : config.to;\r\n positioningConfig.position = extend({\r\n of: window\r\n }, positionAliases[config.direction]);\r\n setupPosition($element, positioningConfig)\r\n }\r\n this._setUpConfig(location, config.from);\r\n this._setUpConfig(location, config.to);\r\n clearCache($element)\r\n },\r\n _setUpConfig: function(location, config) {\r\n config.left = \"left\" in config ? config.left : \"+=0\";\r\n config.top = \"top\" in config ? config.top : \"+=0\";\r\n this._initNewPosition(location, config)\r\n },\r\n _initNewPosition: function(location, config) {\r\n var position = {\r\n left: config.left,\r\n top: config.top\r\n };\r\n delete config.left;\r\n delete config.top;\r\n var relativeValue = this._getRelativeValue(position.left);\r\n if (void 0 !== relativeValue) {\r\n position.left = relativeValue + location.left\r\n } else {\r\n config.left = 0\r\n }\r\n relativeValue = this._getRelativeValue(position.top);\r\n if (void 0 !== relativeValue) {\r\n position.top = relativeValue + location.top\r\n } else {\r\n config.top = 0\r\n }\r\n config[TRANSFORM_PROP] = getTranslateCss({\r\n x: position.left,\r\n y: position.top\r\n })\r\n },\r\n _getRelativeValue: function(value) {\r\n var relativeValue;\r\n if (\"string\" === typeof value && (relativeValue = RELATIVE_VALUE_REGEX.exec(value))) {\r\n return parseInt(relativeValue[1] + \"1\") * relativeValue[2]\r\n }\r\n }\r\n};\r\nvar FadeAnimationConfigurator = {\r\n setup: function($element, config) {\r\n var _from$opacity, _to$opacity;\r\n var from = config.from;\r\n var to = config.to;\r\n var defaultFromOpacity = \"fadeOut\" === config.type ? 1 : 0;\r\n var defaultToOpacity = \"fadeOut\" === config.type ? 0 : 1;\r\n var fromOpacity = isPlainObject(from) ? String(null !== (_from$opacity = from.opacity) && void 0 !== _from$opacity ? _from$opacity : defaultFromOpacity) : String(from);\r\n var toOpacity = isPlainObject(to) ? String(null !== (_to$opacity = to.opacity) && void 0 !== _to$opacity ? _to$opacity : defaultToOpacity) : String(to);\r\n if (!config.skipElementInitialStyles) {\r\n fromOpacity = $element.css(\"opacity\")\r\n }\r\n switch (config.type) {\r\n case \"fadeIn\":\r\n toOpacity = 1;\r\n break;\r\n case \"fadeOut\":\r\n toOpacity = 0\r\n }\r\n config.from = {\r\n visibility: \"visible\",\r\n opacity: fromOpacity\r\n };\r\n config.to = {\r\n opacity: toOpacity\r\n }\r\n }\r\n};\r\nvar PopAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isObjectConfigValidator(config, \"pop\")\r\n },\r\n setup: function($element, config) {\r\n var from = config.from;\r\n var to = config.to;\r\n var fromOpacity = \"opacity\" in from ? from.opacity : $element.css(\"opacity\");\r\n var toOpacity = \"opacity\" in to ? to.opacity : 1;\r\n var fromScale = \"scale\" in from ? from.scale : 0;\r\n var toScale = \"scale\" in to ? to.scale : 1;\r\n config.from = {\r\n opacity: fromOpacity\r\n };\r\n var translate = getTranslate($element);\r\n config.from[TRANSFORM_PROP] = this._getCssTransform(translate, fromScale);\r\n config.to = {\r\n opacity: toOpacity\r\n };\r\n config.to[TRANSFORM_PROP] = this._getCssTransform(translate, toScale)\r\n },\r\n _getCssTransform: function(translate, scale) {\r\n return getTranslateCss(translate) + \"scale(\" + scale + \")\"\r\n }\r\n};\r\nvar animationConfigurators = {\r\n custom: CustomAnimationConfigurator,\r\n slide: SlideAnimationConfigurator,\r\n slideIn: SlideAnimationConfigurator,\r\n slideOut: SlideAnimationConfigurator,\r\n fade: FadeAnimationConfigurator,\r\n fadeIn: FadeAnimationConfigurator,\r\n fadeOut: FadeAnimationConfigurator,\r\n pop: PopAnimationConfigurator,\r\n css: CssAnimationConfigurator\r\n};\r\nvar getAnimationConfigurator = function(config) {\r\n var result = animationConfigurators[config.type];\r\n if (!result) {\r\n throw errors.Error(\"E0011\", config.type)\r\n }\r\n return result\r\n};\r\nvar defaultJSConfig = {\r\n type: \"custom\",\r\n from: {},\r\n to: {},\r\n duration: 400,\r\n start: noop,\r\n complete: noop,\r\n easing: \"ease\",\r\n delay: 0\r\n};\r\nvar defaultCssConfig = {\r\n duration: 400,\r\n easing: \"ease\",\r\n delay: 0\r\n};\r\n\r\nfunction setupAnimationOnElement() {\r\n var $element = this.element;\r\n var config = this.config;\r\n setupPosition($element, config.from);\r\n setupPosition($element, config.to);\r\n this.configurator.setup($element, config);\r\n $element.data(ANIM_DATA_KEY, this);\r\n if (fx.off) {\r\n config.duration = 0;\r\n config.delay = 0\r\n }\r\n this.strategy.initAnimation($element, config);\r\n if (config.start) {\r\n var element = getPublicElement($element);\r\n config.start.apply(this, [element, config])\r\n }\r\n}\r\nvar onElementAnimationComplete = function(animation) {\r\n var $element = animation.element;\r\n var config = animation.config;\r\n $element.removeData(ANIM_DATA_KEY);\r\n if (config.complete) {\r\n var element = getPublicElement($element);\r\n config.complete.apply(this, [element, config])\r\n }\r\n animation.deferred.resolveWith(this, [$element, config])\r\n};\r\nvar startAnimationOnElement = function() {\r\n var animation = this;\r\n var $element = animation.element;\r\n var config = animation.config;\r\n animation.isStarted = true;\r\n return animation.strategy.animate($element, config).done((function() {\r\n onElementAnimationComplete(animation)\r\n })).fail((function() {\r\n animation.deferred.rejectWith(this, [$element, config])\r\n }))\r\n};\r\nvar stopAnimationOnElement = function(jumpToEnd) {\r\n var $element = this.element;\r\n var config = this.config;\r\n clearTimeout(this.startTimeout);\r\n if (!this.isStarted) {\r\n this.start()\r\n }\r\n this.strategy.stop($element, config, jumpToEnd)\r\n};\r\nvar scopedRemoveEvent = addNamespace(removeEvent, \"dxFXStartAnimation\");\r\nvar subscribeToRemoveEvent = function(animation) {\r\n eventsEngine.off(animation.element, scopedRemoveEvent);\r\n eventsEngine.on(animation.element, scopedRemoveEvent, (function() {\r\n fx.stop(animation.element)\r\n }));\r\n animation.deferred.always((function() {\r\n eventsEngine.off(animation.element, scopedRemoveEvent)\r\n }))\r\n};\r\nvar createAnimation = function(element, initialConfig) {\r\n var defaultConfig = \"css\" === initialConfig.type ? defaultCssConfig : defaultJSConfig;\r\n var config = extend(true, {}, defaultConfig, initialConfig);\r\n var configurator = getAnimationConfigurator(config);\r\n var strategy = getAnimationStrategy(config);\r\n var animation = {\r\n element: $(element),\r\n config: config,\r\n configurator: configurator,\r\n strategy: strategy,\r\n isSynchronous: strategy.isSynchronous,\r\n setup: setupAnimationOnElement,\r\n start: startAnimationOnElement,\r\n stop: stopAnimationOnElement,\r\n deferred: new Deferred\r\n };\r\n if (isFunction(configurator.validateConfig)) {\r\n configurator.validateConfig(config)\r\n }\r\n subscribeToRemoveEvent(animation);\r\n return animation\r\n};\r\nvar animate = function(element, config) {\r\n var $element = $(element);\r\n if (!$element.length) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var animation = createAnimation($element, config);\r\n pushInAnimationQueue($element, animation);\r\n return animation.deferred.promise()\r\n};\r\n\r\nfunction pushInAnimationQueue($element, animation) {\r\n var queueData = getAnimQueueData($element);\r\n writeAnimQueueData($element, queueData);\r\n queueData.push(animation);\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element, queueData)\r\n }\r\n}\r\n\r\nfunction getAnimQueueData($element) {\r\n return $element.data(ANIM_QUEUE_KEY) || []\r\n}\r\n\r\nfunction writeAnimQueueData($element, queueData) {\r\n $element.data(ANIM_QUEUE_KEY, queueData)\r\n}\r\nvar destroyAnimQueueData = function($element) {\r\n $element.removeData(ANIM_QUEUE_KEY)\r\n};\r\n\r\nfunction isAnimating($element) {\r\n return !!$element.data(ANIM_DATA_KEY)\r\n}\r\n\r\nfunction shiftFromAnimationQueue($element, queueData) {\r\n queueData = getAnimQueueData($element);\r\n if (!queueData.length) {\r\n return\r\n }\r\n var animation = queueData.shift();\r\n if (0 === queueData.length) {\r\n destroyAnimQueueData($element)\r\n }\r\n executeAnimation(animation).done((function() {\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element)\r\n }\r\n }))\r\n}\r\n\r\nfunction executeAnimation(animation) {\r\n animation.setup();\r\n if (fx.off || animation.isSynchronous) {\r\n animation.start()\r\n } else {\r\n animation.startTimeout = setTimeout((function() {\r\n animation.start()\r\n }))\r\n }\r\n return animation.deferred.promise()\r\n}\r\n\r\nfunction setupPosition($element, config) {\r\n if (!config || !config.position) {\r\n return\r\n }\r\n var win = $(window);\r\n var left = 0;\r\n var top = 0;\r\n var position = positionUtils.calculate($element, config.position);\r\n var offset = $element.offset();\r\n var currentPosition = $element.position();\r\n if (currentPosition.top > offset.top) {\r\n top = win.scrollTop()\r\n }\r\n if (currentPosition.left > offset.left) {\r\n left = win.scrollLeft()\r\n }\r\n extend(config, {\r\n left: position.h.location - offset.left + currentPosition.left - left,\r\n top: position.v.location - offset.top + currentPosition.top - top\r\n });\r\n delete config.position\r\n}\r\n\r\nfunction setProps($element, props) {\r\n each(props, (function(key, value) {\r\n try {\r\n $element.css(key, isFunction(value) ? value() : value)\r\n } catch (e) {}\r\n }))\r\n}\r\nvar stop = function(element, jumpToEnd) {\r\n var $element = $(element);\r\n var queueData = getAnimQueueData($element);\r\n each(queueData, (function(_, animation) {\r\n animation.config.delay = 0;\r\n animation.config.duration = 0;\r\n animation.isSynchronous = true\r\n }));\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element, queueData)\r\n }\r\n var animation = $element.data(ANIM_DATA_KEY);\r\n if (animation) {\r\n animation.stop(jumpToEnd)\r\n }\r\n $element.removeData(ANIM_DATA_KEY);\r\n destroyAnimQueueData($element)\r\n};\r\nvar fx = {\r\n off: false,\r\n animationTypes: animationConfigurators,\r\n animate: animate,\r\n createAnimation: createAnimation,\r\n isAnimating: isAnimating,\r\n stop: stop,\r\n _simulatedTransitionEndDelay: 100\r\n};\r\nexport default fx;\r\n","/**\r\n * DevExtreme (esm/ui/widget/selectors.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar focusableFn = function(element, tabIndex) {\r\n if (!visible(element)) {\r\n return false\r\n }\r\n var nodeName = element.nodeName.toLowerCase();\r\n var isTabIndexNotNaN = !isNaN(tabIndex);\r\n var isDisabled = element.disabled;\r\n var isDefaultFocus = /^(input|select|textarea|button|object|iframe)$/.test(nodeName);\r\n var isHyperlink = \"a\" === nodeName;\r\n var isFocusable = true;\r\n var isContentEditable = element.isContentEditable;\r\n if (isDefaultFocus || isContentEditable) {\r\n isFocusable = !isDisabled\r\n } else if (isHyperlink) {\r\n isFocusable = element.href || isTabIndexNotNaN\r\n } else {\r\n isFocusable = isTabIndexNotNaN\r\n }\r\n return isFocusable\r\n};\r\n\r\nfunction visible(element) {\r\n var $element = $(element);\r\n return $element.is(\":visible\") && \"hidden\" !== $element.css(\"visibility\") && \"hidden\" !== $element.parents().css(\"visibility\")\r\n}\r\nexport var focusable = function(index, element) {\r\n return focusableFn(element, $(element).attr(\"tabIndex\"))\r\n};\r\nexport var tabbable = function(index, element) {\r\n var tabIndex = $(element).attr(\"tabIndex\");\r\n return (isNaN(tabIndex) || tabIndex >= 0) && focusableFn(element, tabIndex)\r\n};\r\nexport var focused = function($element) {\r\n var element = $($element).get(0);\r\n return domAdapter.getActiveElement() === element\r\n};\r\n","/**\r\n * DevExtreme (esm/core/devices.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"./utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow,\r\n getNavigator,\r\n hasWindow\r\n} from \"./utils/window\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"./utils/type\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport readyCallbacks from \"./utils/ready_callbacks\";\r\nimport resizeCallbacks from \"./utils/resize_callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n sessionStorage as SessionStorage\r\n} from \"./utils/storage\";\r\nimport {\r\n changeCallback,\r\n value as viewPort\r\n} from \"./utils/view_port\";\r\nimport Config from \"./config\";\r\nvar navigator = getNavigator();\r\nvar window = getWindow();\r\nvar KNOWN_UA_TABLE = {\r\n iPhone: \"iPhone\",\r\n iPhone5: \"iPhone\",\r\n iPhone6: \"iPhone\",\r\n iPhone6plus: \"iPhone\",\r\n iPad: \"iPad\",\r\n iPadMini: \"iPad Mini\",\r\n androidPhone: \"Android Mobile\",\r\n androidTablet: \"Android\",\r\n msSurface: \"Windows ARM Tablet PC\",\r\n desktop: \"desktop\"\r\n};\r\nvar DEFAULT_DEVICE = {\r\n deviceType: \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n phone: false,\r\n tablet: false,\r\n android: false,\r\n ios: false,\r\n generic: true,\r\n grade: \"A\",\r\n mac: false\r\n};\r\nvar uaParsers = {\r\n generic(userAgent) {\r\n var isPhone = /windows phone/i.test(userAgent) || userAgent.match(/WPDesktop/);\r\n var isTablet = !isPhone && /Windows(.*)arm(.*)Tablet PC/i.test(userAgent);\r\n var isDesktop = !isPhone && !isTablet && /msapphost/i.test(userAgent);\r\n var isMac = /((intel|ppc) mac os x)/.test(userAgent.toLowerCase());\r\n if (!(isPhone || isTablet || isDesktop || isMac)) {\r\n return\r\n }\r\n return {\r\n deviceType: isPhone ? \"phone\" : isTablet ? \"tablet\" : \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n grade: \"A\",\r\n mac: isMac\r\n }\r\n },\r\n ios(userAgent) {\r\n if (!/ip(hone|od|ad)/i.test(userAgent)) {\r\n return\r\n }\r\n var isPhone = /ip(hone|od)/i.test(userAgent);\r\n var matches = userAgent.match(/os (\\d+)_(\\d+)_?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2], 10), parseInt(matches[3] || 0, 10)] : [];\r\n var isIPhone4 = 480 === window.screen.height;\r\n var grade = isIPhone4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"ios\",\r\n version: version,\r\n grade: grade\r\n }\r\n },\r\n android(userAgent) {\r\n if (!/android|htc_|silk/i.test(userAgent)) {\r\n return\r\n }\r\n var isPhone = /mobile/i.test(userAgent);\r\n var matches = userAgent.match(/android (\\d+)\\.?(\\d+)?\\.?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2] || 0, 10), parseInt(matches[3] || 0, 10)] : [];\r\n var worseThan4_4 = version.length > 1 && (version[0] < 4 || 4 === version[0] && version[1] < 4);\r\n var grade = worseThan4_4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"android\",\r\n version: version,\r\n grade: grade\r\n }\r\n }\r\n};\r\nclass Devices {\r\n constructor(options) {\r\n this._window = (null === options || void 0 === options ? void 0 : options.window) || window;\r\n this._realDevice = this._getDevice();\r\n this._currentDevice = void 0;\r\n this._currentOrientation = void 0;\r\n this._eventsStrategy = new EventsStrategy(this);\r\n this.changed = Callbacks();\r\n if (hasWindow()) {\r\n readyCallbacks.add(this._recalculateOrientation.bind(this));\r\n resizeCallbacks.add(this._recalculateOrientation.bind(this))\r\n }\r\n }\r\n current(deviceOrName) {\r\n if (deviceOrName) {\r\n this._currentDevice = this._getDevice(deviceOrName);\r\n this._forced = true;\r\n this.changed.fire();\r\n return\r\n }\r\n if (!this._currentDevice) {\r\n deviceOrName = void 0;\r\n try {\r\n deviceOrName = this._getDeviceOrNameFromWindowScope()\r\n } catch (e) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n } finally {\r\n if (!deviceOrName) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n }\r\n if (deviceOrName) {\r\n this._forced = true\r\n }\r\n }\r\n this._currentDevice = this._getDevice(deviceOrName)\r\n }\r\n return this._currentDevice\r\n }\r\n real(forceDevice) {\r\n return extend({}, this._realDevice)\r\n }\r\n orientation() {\r\n return this._currentOrientation\r\n }\r\n isForced() {\r\n return this._forced\r\n }\r\n isRippleEmulator() {\r\n return !!this._window.tinyHippos\r\n }\r\n _getCssClasses(device) {\r\n var result = [];\r\n var realDevice = this._realDevice;\r\n device = device || this.current();\r\n if (device.deviceType) {\r\n result.push(\"dx-device-\".concat(device.deviceType));\r\n if (\"desktop\" !== device.deviceType) {\r\n result.push(\"dx-device-mobile\")\r\n }\r\n }\r\n result.push(\"dx-device-\".concat(realDevice.platform));\r\n if (realDevice.version && realDevice.version.length) {\r\n result.push(\"dx-device-\".concat(realDevice.platform, \"-\").concat(realDevice.version[0]))\r\n }\r\n if (this.isSimulator()) {\r\n result.push(\"dx-simulator\")\r\n }\r\n if (Config().rtlEnabled) {\r\n result.push(\"dx-rtl\")\r\n }\r\n return result\r\n }\r\n attachCssClasses(element, device) {\r\n this._deviceClasses = this._getCssClasses(device).join(\" \");\r\n $(element).addClass(this._deviceClasses)\r\n }\r\n detachCssClasses(element) {\r\n $(element).removeClass(this._deviceClasses)\r\n }\r\n isSimulator() {\r\n try {\r\n return this._isSimulator || hasWindow() && this._window.top !== this._window.self && this._window.top[\"dx-force-device\"] || this.isRippleEmulator()\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n forceSimulator() {\r\n this._isSimulator = true\r\n }\r\n _getDevice(deviceName) {\r\n if (\"genericPhone\" === deviceName) {\r\n deviceName = {\r\n deviceType: \"phone\",\r\n platform: \"generic\",\r\n generic: true\r\n }\r\n }\r\n if (isPlainObject(deviceName)) {\r\n return this._fromConfig(deviceName)\r\n } else {\r\n var ua;\r\n if (deviceName) {\r\n ua = KNOWN_UA_TABLE[deviceName];\r\n if (!ua) {\r\n throw errors.Error(\"E0005\")\r\n }\r\n } else {\r\n ua = navigator.userAgent\r\n }\r\n return this._fromUA(ua)\r\n }\r\n }\r\n _getDeviceOrNameFromWindowScope() {\r\n var result;\r\n if (hasWindow() && (this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"])) {\r\n result = this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"]\r\n }\r\n return result\r\n }\r\n _getDeviceNameFromSessionStorage() {\r\n var sessionStorage = SessionStorage();\r\n if (!sessionStorage) {\r\n return\r\n }\r\n var deviceOrName = sessionStorage.getItem(\"dx-force-device\");\r\n try {\r\n return JSON.parse(deviceOrName)\r\n } catch (ex) {\r\n return deviceOrName\r\n }\r\n }\r\n _fromConfig(config) {\r\n var result = extend({}, DEFAULT_DEVICE, this._currentDevice, config);\r\n var shortcuts = {\r\n phone: \"phone\" === result.deviceType,\r\n tablet: \"tablet\" === result.deviceType,\r\n android: \"android\" === result.platform,\r\n ios: \"ios\" === result.platform,\r\n generic: \"generic\" === result.platform\r\n };\r\n return extend(result, shortcuts)\r\n }\r\n _fromUA(ua) {\r\n var config;\r\n each(uaParsers, (platform, parser) => {\r\n config = parser(ua);\r\n return !config\r\n });\r\n if (config) {\r\n return this._fromConfig(config)\r\n }\r\n return DEFAULT_DEVICE\r\n }\r\n _changeOrientation() {\r\n var $window = $(this._window);\r\n var orientation = getHeight($window) > getWidth($window) ? \"portrait\" : \"landscape\";\r\n if (this._currentOrientation === orientation) {\r\n return\r\n }\r\n this._currentOrientation = orientation;\r\n this._eventsStrategy.fireEvent(\"orientationChanged\", [{\r\n orientation: orientation\r\n }])\r\n }\r\n _recalculateOrientation() {\r\n var windowWidth = getWidth(this._window);\r\n if (this._currentWidth === windowWidth) {\r\n return\r\n }\r\n this._currentWidth = windowWidth;\r\n this._changeOrientation()\r\n }\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n }\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n}\r\nvar devices = new Devices;\r\nvar viewPortElement = viewPort();\r\nif (viewPortElement) {\r\n devices.attachCssClasses(viewPortElement)\r\n}\r\nchangeCallback.add((viewPort, prevViewport) => {\r\n devices.detachCssClasses(prevViewport);\r\n devices.attachCssClasses(viewPort)\r\n});\r\nexport default devices;\r\n","/**\r\n * DevExtreme (esm/animation/frame.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = hasWindow() ? getWindow() : {};\r\nimport callOnce from \"../core/utils/call_once\";\r\nvar FRAME_ANIMATION_STEP_TIME = 1e3 / 60;\r\nvar request = function(callback) {\r\n return setTimeout(callback, FRAME_ANIMATION_STEP_TIME)\r\n};\r\nvar cancel = function(requestID) {\r\n clearTimeout(requestID)\r\n};\r\nvar setAnimationFrameMethods = callOnce((function() {\r\n var nativeRequest = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame;\r\n var nativeCancel = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame;\r\n if (nativeRequest && nativeCancel) {\r\n request = nativeRequest;\r\n cancel = nativeCancel\r\n }\r\n if (nativeRequest && !nativeCancel) {\r\n var canceledRequests = {};\r\n request = function(callback) {\r\n var requestId = nativeRequest.call(window, (function() {\r\n try {\r\n if (requestId in canceledRequests) {\r\n return\r\n }\r\n callback.apply(this, arguments)\r\n } finally {\r\n delete canceledRequests[requestId]\r\n }\r\n }));\r\n return requestId\r\n };\r\n cancel = function(requestId) {\r\n canceledRequests[requestId] = true\r\n }\r\n }\r\n}));\r\nexport function requestAnimationFrame() {\r\n setAnimationFrameMethods();\r\n return request.apply(window, arguments)\r\n}\r\nexport function cancelAnimationFrame() {\r\n setAnimationFrameMethods();\r\n cancel.apply(window, arguments)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/validation_engine.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport Class from \"../core/class\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../core/utils/array\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n EventsStrategy\r\n} from \"../core/events_strategy\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isDate,\r\n isBoolean,\r\n isObject,\r\n isFunction,\r\n isPromise,\r\n isNumeric\r\n} from \"../core/utils/type\";\r\nimport numberLocalization from \"../localization/number\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport Promise from \"../core/polyfills/promise\";\r\nimport {\r\n fromPromise,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar STATUS = {\r\n valid: \"valid\",\r\n invalid: \"invalid\",\r\n pending: \"pending\"\r\n};\r\nclass BaseRuleValidator {\r\n constructor() {\r\n this.NAME = \"base\"\r\n }\r\n defaultMessage(value) {\r\n return messageLocalization.getFormatter(\"validation-\".concat(this.NAME))(value)\r\n }\r\n defaultFormattedMessage(value) {\r\n return messageLocalization.getFormatter(\"validation-\".concat(this.NAME, \"-formatted\"))(value)\r\n }\r\n _isValueEmpty(value) {\r\n return !rulesValidators.required.validate(value, {})\r\n }\r\n validate(value, rule) {\r\n var valueArray = Array.isArray(value) ? value : [value];\r\n var result = true;\r\n if (valueArray.length) {\r\n valueArray.every(itemValue => {\r\n result = this._validate(itemValue, rule);\r\n return result\r\n })\r\n } else {\r\n result = this._validate(null, rule)\r\n }\r\n return result\r\n }\r\n}\r\nclass RequiredRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"required\"\r\n }\r\n _validate(value, rule) {\r\n if (!isDefined(value)) {\r\n return false\r\n }\r\n if (false === value) {\r\n return false\r\n }\r\n value = String(value);\r\n if (rule.trim || !isDefined(rule.trim)) {\r\n value = value.trim()\r\n }\r\n return \"\" !== value\r\n }\r\n}\r\nclass NumericRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"numeric\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n if (rule.useCultureSettings && isString(value)) {\r\n return !isNaN(numberLocalization.parse(value))\r\n } else {\r\n return isNumeric(value)\r\n }\r\n }\r\n}\r\nclass RangeRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"range\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validNumber = rulesValidators.numeric.validate(value, rule);\r\n var validValue = isDefined(value) && \"\" !== value;\r\n var number = validNumber ? parseFloat(value) : validValue && value.valueOf();\r\n var min = rule.min;\r\n var max = rule.max;\r\n if (!(validNumber || isDate(value)) && !validValue) {\r\n return false\r\n }\r\n if (isDefined(min)) {\r\n if (isDefined(max)) {\r\n return number >= min && number <= max\r\n }\r\n return number >= min\r\n } else if (isDefined(max)) {\r\n return number <= max\r\n } else {\r\n throw errors.Error(\"E0101\")\r\n }\r\n }\r\n}\r\nclass StringLengthRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"stringLength\"\r\n }\r\n _validate(value, rule) {\r\n var _value;\r\n value = String(null !== (_value = value) && void 0 !== _value ? _value : \"\");\r\n if (rule.trim || !isDefined(rule.trim)) {\r\n value = value.trim()\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.range.validate(value.length, extend({}, rule))\r\n }\r\n}\r\nclass CustomRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"custom\"\r\n }\r\n validate(value, rule) {\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validator = rule.validator;\r\n var dataGetter = validator && isFunction(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = isFunction(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n extend(params, extraParams)\r\n }\r\n return rule.validationCallback(params)\r\n }\r\n}\r\nclass AsyncRuleValidator extends CustomRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"async\"\r\n }\r\n validate(value, rule) {\r\n if (!isDefined(rule.reevaluate)) {\r\n extend(rule, {\r\n reevaluate: true\r\n })\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validator = rule.validator;\r\n var dataGetter = validator && isFunction(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = isFunction(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n extend(params, extraParams)\r\n }\r\n var callbackResult = rule.validationCallback(params);\r\n if (!isPromise(callbackResult)) {\r\n throw errors.Error(\"E0103\")\r\n }\r\n return this._getWrappedPromise(fromPromise(callbackResult).promise())\r\n }\r\n _getWrappedPromise(promise) {\r\n var deferred = new Deferred;\r\n promise.then((function(res) {\r\n deferred.resolve(res)\r\n }), (function(err) {\r\n var res = {\r\n isValid: false\r\n };\r\n if (isDefined(err)) {\r\n if (isString(err)) {\r\n res.message = err\r\n } else if (isObject(err) && isDefined(err.message) && isString(err.message)) {\r\n res.message = err.message\r\n }\r\n }\r\n deferred.resolve(res)\r\n }));\r\n return deferred.promise()\r\n }\r\n}\r\nclass CompareRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"compare\"\r\n }\r\n _validate(value, rule) {\r\n if (!rule.comparisonTarget) {\r\n throw errors.Error(\"E0102\")\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n extend(rule, {\r\n reevaluate: true\r\n });\r\n var otherValue = rule.comparisonTarget();\r\n var type = rule.comparisonType || \"==\";\r\n switch (type) {\r\n case \"==\":\r\n return value == otherValue;\r\n case \"!=\":\r\n return value != otherValue;\r\n case \"===\":\r\n return value === otherValue;\r\n case \"!==\":\r\n return value !== otherValue;\r\n case \">\":\r\n return value > otherValue;\r\n case \">=\":\r\n return value >= otherValue;\r\n case \"<\":\r\n return value < otherValue;\r\n case \"<=\":\r\n return value <= otherValue\r\n }\r\n }\r\n}\r\nclass PatternRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"pattern\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var pattern = rule.pattern;\r\n if (isString(pattern)) {\r\n pattern = new RegExp(pattern)\r\n }\r\n return pattern.test(value)\r\n }\r\n}\r\nclass EmailRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"email\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.pattern.validate(value, extend({}, rule, {\r\n pattern: /^[\\d\\w._-]+@[\\d\\w._-]+\\.[\\w]+$/i\r\n }))\r\n }\r\n}\r\nvar rulesValidators = {\r\n required: new RequiredRuleValidator,\r\n numeric: new NumericRuleValidator,\r\n range: new RangeRuleValidator,\r\n stringLength: new StringLengthRuleValidator,\r\n custom: new CustomRuleValidator,\r\n async: new AsyncRuleValidator,\r\n compare: new CompareRuleValidator,\r\n pattern: new PatternRuleValidator,\r\n email: new EmailRuleValidator\r\n};\r\nvar GroupConfig = Class.inherit({\r\n ctor(group) {\r\n this.group = group;\r\n this.validators = [];\r\n this._pendingValidators = [];\r\n this._onValidatorStatusChanged = this._onValidatorStatusChanged.bind(this);\r\n this._resetValidationInfo();\r\n this._eventsStrategy = new EventsStrategy(this)\r\n },\r\n validate() {\r\n var result = {\r\n isValid: true,\r\n brokenRules: [],\r\n validators: [],\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n this._unsubscribeFromAllChangeEvents();\r\n this._pendingValidators = [];\r\n this._resetValidationInfo();\r\n each(this.validators, (_, validator) => {\r\n var validatorResult = validator.validate();\r\n result.isValid = result.isValid && validatorResult.isValid;\r\n if (validatorResult.brokenRules) {\r\n result.brokenRules = result.brokenRules.concat(validatorResult.brokenRules)\r\n }\r\n result.validators.push(validator);\r\n if (validatorResult.status === STATUS.pending) {\r\n this._addPendingValidator(validator)\r\n }\r\n this._subscribeToChangeEvents(validator)\r\n });\r\n if (this._pendingValidators.length) {\r\n result.status = STATUS.pending\r\n } else {\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n this._unsubscribeFromAllChangeEvents();\r\n this._raiseValidatedEvent(result)\r\n }\r\n this._updateValidationInfo(result);\r\n return extend({}, this._validationInfo.result)\r\n },\r\n _subscribeToChangeEvents(validator) {\r\n validator.on(\"validating\", this._onValidatorStatusChanged);\r\n validator.on(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromChangeEvents(validator) {\r\n validator.off(\"validating\", this._onValidatorStatusChanged);\r\n validator.off(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromAllChangeEvents() {\r\n each(this.validators, (_, validator) => {\r\n this._unsubscribeFromChangeEvents(validator)\r\n })\r\n },\r\n _updateValidationInfo(result) {\r\n this._validationInfo.result = result;\r\n if (result.status !== STATUS.pending) {\r\n return\r\n }\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n },\r\n _addPendingValidator(validator) {\r\n var foundValidator = grep(this._pendingValidators, (function(val) {\r\n return val === validator\r\n }))[0];\r\n if (!foundValidator) {\r\n this._pendingValidators.push(validator)\r\n }\r\n },\r\n _removePendingValidator(validator) {\r\n var index = inArray(validator, this._pendingValidators);\r\n if (index >= 0) {\r\n this._pendingValidators.splice(index, 1)\r\n }\r\n },\r\n _orderBrokenRules(brokenRules) {\r\n var orderedRules = [];\r\n each(this.validators, (function(_, validator) {\r\n var foundRules = grep(brokenRules, (function(rule) {\r\n return rule.validator === validator\r\n }));\r\n if (foundRules.length) {\r\n orderedRules = orderedRules.concat(foundRules)\r\n }\r\n }));\r\n return orderedRules\r\n },\r\n _updateBrokenRules(result) {\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n var brokenRules = this._validationInfo.result.brokenRules;\r\n var rules = grep(brokenRules, (function(rule) {\r\n return rule.validator !== result.validator\r\n }));\r\n if (result.brokenRules) {\r\n brokenRules = rules.concat(result.brokenRules)\r\n }\r\n this._validationInfo.result.brokenRules = this._orderBrokenRules(brokenRules)\r\n },\r\n _onValidatorStatusChanged(result) {\r\n if (result.status === STATUS.pending) {\r\n this._addPendingValidator(result.validator);\r\n return\r\n }\r\n this._resolveIfComplete(result)\r\n },\r\n _resolveIfComplete(result) {\r\n this._removePendingValidator(result.validator);\r\n this._updateBrokenRules(result);\r\n if (!this._pendingValidators.length) {\r\n this._unsubscribeFromAllChangeEvents();\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n this._validationInfo.result.status = 0 === this._validationInfo.result.brokenRules.length ? STATUS.valid : STATUS.invalid;\r\n this._validationInfo.result.isValid = this._validationInfo.result.status === STATUS.valid;\r\n var res = extend({}, this._validationInfo.result, {\r\n complete: null\r\n });\r\n var deferred = this._validationInfo.deferred;\r\n this._validationInfo.deferred = null;\r\n this._raiseValidatedEvent(res);\r\n deferred && setTimeout(() => {\r\n deferred.resolve(res)\r\n })\r\n }\r\n },\r\n _raiseValidatedEvent(result) {\r\n this._eventsStrategy.fireEvent(\"validated\", [result])\r\n },\r\n _resetValidationInfo() {\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null\r\n }\r\n },\r\n _synchronizeValidationInfo() {\r\n if (this._validationInfo.result) {\r\n this._validationInfo.result.validators = this.validators\r\n }\r\n },\r\n removeRegisteredValidator(validator) {\r\n var index = inArray(validator, this.validators);\r\n if (index > -1) {\r\n this.validators.splice(index, 1);\r\n this._synchronizeValidationInfo();\r\n this._resolveIfComplete({\r\n validator: validator\r\n })\r\n }\r\n },\r\n registerValidator(validator) {\r\n if (inArray(validator, this.validators) < 0) {\r\n this.validators.push(validator);\r\n this._synchronizeValidationInfo()\r\n }\r\n },\r\n reset() {\r\n each(this.validators, (function(_, validator) {\r\n validator.reset()\r\n }));\r\n this._pendingValidators = [];\r\n this._resetValidationInfo()\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nvar ValidationEngine = {\r\n groups: [],\r\n getGroupConfig(group) {\r\n var result = grep(this.groups, (function(config) {\r\n return config.group === group\r\n }));\r\n if (result.length) {\r\n return result[0]\r\n }\r\n },\r\n findGroup($element, model) {\r\n var $dxGroup = $element.parents(\".dx-validationgroup\").first();\r\n if ($dxGroup.length) {\r\n return $dxGroup.dxValidationGroup(\"instance\")\r\n }\r\n return model\r\n },\r\n initGroups() {\r\n this.groups = [];\r\n this.addGroup()\r\n },\r\n addGroup(group) {\r\n var config = this.getGroupConfig(group);\r\n if (!config) {\r\n config = new GroupConfig(group);\r\n this.groups.push(config)\r\n }\r\n return config\r\n },\r\n removeGroup(group) {\r\n var config = this.getGroupConfig(group);\r\n var index = inArray(config, this.groups);\r\n if (index > -1) {\r\n this.groups.splice(index, 1)\r\n }\r\n return config\r\n },\r\n _setDefaultMessage(info) {\r\n var {\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n } = info;\r\n if (!isDefined(rule.message)) {\r\n if (validator.defaultFormattedMessage && isDefined(name)) {\r\n rule.message = validator.defaultFormattedMessage(name)\r\n } else {\r\n rule.message = validator.defaultMessage()\r\n }\r\n }\r\n },\r\n _addBrokenRule(info) {\r\n var {\r\n result: result,\r\n rule: rule\r\n } = info;\r\n if (!result.brokenRule) {\r\n result.brokenRule = rule\r\n }\r\n if (!result.brokenRules) {\r\n result.brokenRules = []\r\n }\r\n result.brokenRules.push(rule)\r\n },\r\n validate(value, rules, name) {\r\n var _rules$;\r\n var result = {\r\n name: name,\r\n value: value,\r\n brokenRule: null,\r\n brokenRules: null,\r\n isValid: true,\r\n validationRules: rules,\r\n pendingRules: null,\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n var validator = null === rules || void 0 === rules ? void 0 : null === (_rules$ = rules[0]) || void 0 === _rules$ ? void 0 : _rules$.validator;\r\n var asyncRuleItems = [];\r\n each(rules || [], (_, rule) => {\r\n var ruleValidator = rulesValidators[rule.type];\r\n var ruleValidationResult;\r\n if (ruleValidator) {\r\n if (isDefined(rule.isValid) && rule.value === value && !rule.reevaluate) {\r\n if (!rule.isValid) {\r\n result.isValid = false;\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n });\r\n return false\r\n }\r\n return true\r\n }\r\n rule.value = value;\r\n if (\"async\" === rule.type) {\r\n asyncRuleItems.push({\r\n rule: rule,\r\n ruleValidator: ruleValidator\r\n });\r\n return true\r\n }\r\n ruleValidationResult = ruleValidator.validate(value, rule);\r\n rule.isValid = ruleValidationResult;\r\n if (!ruleValidationResult) {\r\n result.isValid = false;\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: ruleValidator,\r\n name: name\r\n });\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n if (!rule.isValid) {\r\n return false\r\n }\r\n } else {\r\n throw errors.Error(\"E0100\")\r\n }\r\n });\r\n if (result.isValid && !result.brokenRules && asyncRuleItems.length) {\r\n result = this._validateAsyncRules({\r\n value: value,\r\n items: asyncRuleItems,\r\n result: result,\r\n name: name\r\n })\r\n }\r\n this._synchronizeGroupValidationInfo(validator, result);\r\n result.status = result.pendingRules ? STATUS.pending : result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n _synchronizeGroupValidationInfo(validator, result) {\r\n var _result$brokenRules;\r\n if (!validator) {\r\n return\r\n }\r\n var groupConfig = ValidationEngine.getGroupConfig(validator._validationGroup);\r\n groupConfig._updateBrokenRules.call(groupConfig, {\r\n validator: validator,\r\n brokenRules: null !== (_result$brokenRules = result.brokenRules) && void 0 !== _result$brokenRules ? _result$brokenRules : []\r\n })\r\n },\r\n _validateAsyncRules(_ref) {\r\n var {\r\n result: result,\r\n value: value,\r\n items: items,\r\n name: name\r\n } = _ref;\r\n var asyncResults = [];\r\n each(items, (_, item) => {\r\n var validateResult = item.ruleValidator.validate(value, item.rule);\r\n if (!isPromise(validateResult)) {\r\n this._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: this._getPatchedRuleResult(validateResult),\r\n validator: item.ruleValidator,\r\n name: name\r\n })\r\n } else {\r\n if (!result.pendingRules) {\r\n result.pendingRules = []\r\n }\r\n result.pendingRules.push(item.rule);\r\n var asyncResult = validateResult.then(res => {\r\n var ruleResult = this._getPatchedRuleResult(res);\r\n this._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: ruleResult,\r\n validator: item.ruleValidator,\r\n name: name\r\n });\r\n return ruleResult\r\n });\r\n asyncResults.push(asyncResult)\r\n }\r\n });\r\n if (asyncResults.length) {\r\n result.complete = Promise.all(asyncResults).then(values => this._getAsyncRulesResult({\r\n result: result,\r\n values: values\r\n }))\r\n }\r\n return result\r\n },\r\n _updateRuleConfig(_ref2) {\r\n var {\r\n rule: rule,\r\n ruleResult: ruleResult,\r\n validator: validator,\r\n name: name\r\n } = _ref2;\r\n rule.isValid = ruleResult.isValid;\r\n if (!ruleResult.isValid) {\r\n if (isDefined(ruleResult.message) && isString(ruleResult.message) && ruleResult.message.length) {\r\n rule.message = ruleResult.message\r\n } else {\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n })\r\n }\r\n }\r\n },\r\n _getPatchedRuleResult(ruleResult) {\r\n var result;\r\n if (isObject(ruleResult)) {\r\n result = extend({}, ruleResult);\r\n if (!isDefined(result.isValid)) {\r\n result.isValid = true\r\n }\r\n } else {\r\n result = {\r\n isValid: isBoolean(ruleResult) ? ruleResult : true\r\n }\r\n }\r\n return result\r\n },\r\n _getAsyncRulesResult(_ref3) {\r\n var {\r\n values: values,\r\n result: result\r\n } = _ref3;\r\n each(values, (index, val) => {\r\n if (false === val.isValid) {\r\n result.isValid = val.isValid;\r\n var rule = result.pendingRules[index];\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n });\r\n result.pendingRules = null;\r\n result.complete = null;\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n registerValidatorInGroup(group, validator) {\r\n var groupConfig = ValidationEngine.addGroup(group);\r\n groupConfig.registerValidator.call(groupConfig, validator)\r\n },\r\n _shouldRemoveGroup(group, validatorsInGroup) {\r\n var isDefaultGroup = void 0 === group;\r\n var isValidationGroupInstance = group && \"dxValidationGroup\" === group.NAME;\r\n return !isDefaultGroup && !isValidationGroupInstance && !validatorsInGroup.length\r\n },\r\n removeRegisteredValidator(group, validator) {\r\n var config = ValidationEngine.getGroupConfig(group);\r\n if (config) {\r\n config.removeRegisteredValidator.call(config, validator);\r\n var validatorsInGroup = config.validators;\r\n if (this._shouldRemoveGroup(group, validatorsInGroup)) {\r\n this.removeGroup(group)\r\n }\r\n }\r\n },\r\n initValidationOptions(options) {\r\n var initedOptions = {};\r\n if (options) {\r\n [\"isValid\", \"validationStatus\", \"validationError\", \"validationErrors\"].forEach(prop => {\r\n if (prop in options) {\r\n extend(initedOptions, this.synchronizeValidationOptions({\r\n name: prop,\r\n value: options[prop]\r\n }, options))\r\n }\r\n })\r\n }\r\n return initedOptions\r\n },\r\n synchronizeValidationOptions(_ref4, options) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref4;\r\n switch (name) {\r\n case \"validationStatus\":\r\n var isValid = value === STATUS.valid || value === STATUS.pending;\r\n return options.isValid !== isValid ? {\r\n isValid: isValid\r\n } : {};\r\n case \"isValid\":\r\n var {\r\n validationStatus: validationStatus\r\n } = options;\r\n var newStatus = validationStatus;\r\n if (value && validationStatus === STATUS.invalid) {\r\n newStatus = STATUS.valid\r\n } else if (!value && validationStatus !== STATUS.invalid) {\r\n newStatus = STATUS.invalid\r\n }\r\n return newStatus !== validationStatus ? {\r\n validationStatus: newStatus\r\n } : {};\r\n case \"validationErrors\":\r\n var validationError = !value || !value.length ? null : value[0];\r\n return options.validationError !== validationError ? {\r\n validationError: validationError\r\n } : {};\r\n case \"validationError\":\r\n var {\r\n validationErrors: validationErrors\r\n } = options;\r\n if (!value && validationErrors) {\r\n return {\r\n validationErrors: null\r\n }\r\n } else if (value && !validationErrors) {\r\n return {\r\n validationErrors: [value]\r\n }\r\n } else if (value && validationErrors && value !== validationErrors[0]) {\r\n validationErrors[0] = value;\r\n return {\r\n validationErrors: validationErrors.slice()\r\n }\r\n }\r\n }\r\n return {}\r\n },\r\n validateGroup(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw errors.Error(\"E0110\")\r\n }\r\n return groupConfig.validate()\r\n },\r\n resetGroup(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw errors.Error(\"E0110\")\r\n }\r\n return groupConfig.reset()\r\n }\r\n};\r\nValidationEngine.initGroups();\r\nexport default ValidationEngine;\r\n","/**\r\n * DevExtreme (esm/data/data_source/utils.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"items\"];\r\nimport ajaxUtils from \"../../core/utils/ajax\";\r\nimport Store from \"../abstract_store\";\r\nimport ArrayStore from \"../array_store\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../utils\";\r\nexport var CANCELED_TOKEN = \"canceled\";\r\nexport var isPending = deferred => \"pending\" === deferred.state();\r\nexport var normalizeStoreLoadOptionAccessorArguments = originalArguments => {\r\n switch (originalArguments.length) {\r\n case 0:\r\n return;\r\n case 1:\r\n return originalArguments[0]\r\n }\r\n return [].slice.call(originalArguments)\r\n};\r\nvar mapGroup = (group, level, mapper) => map(group, item => {\r\n var restItem = _objectWithoutPropertiesLoose(item, _excluded);\r\n return _extends({}, restItem, {\r\n items: mapRecursive(item.items, level - 1, mapper)\r\n })\r\n});\r\nvar mapRecursive = (items, level, mapper) => {\r\n if (!Array.isArray(items)) {\r\n return items\r\n }\r\n return level ? mapGroup(items, level, mapper) : map(items, mapper)\r\n};\r\nexport var mapDataRespectingGrouping = (items, mapper, groupInfo) => {\r\n var level = groupInfo ? normalizeSortingInfo(groupInfo).length : 0;\r\n return mapRecursive(items, level, mapper)\r\n};\r\nexport var normalizeLoadResult = (data, extra) => {\r\n var _data;\r\n if (null !== (_data = data) && void 0 !== _data && _data.data) {\r\n extra = data;\r\n data = data.data\r\n }\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n return {\r\n data: data,\r\n extra: extra\r\n }\r\n};\r\nvar createCustomStoreFromLoadFunc = options => {\r\n var storeConfig = {};\r\n each([\"useDefaultSearch\", \"key\", \"load\", \"loadMode\", \"cacheRawData\", \"byKey\", \"lookup\", \"totalCount\", \"insert\", \"update\", \"remove\"], (function() {\r\n storeConfig[this] = options[this];\r\n delete options[this]\r\n }));\r\n return new CustomStore(storeConfig)\r\n};\r\nvar createStoreFromConfig = storeConfig => {\r\n var alias = storeConfig.type;\r\n delete storeConfig.type;\r\n return Store.create(alias, storeConfig)\r\n};\r\nvar createCustomStoreFromUrl = (url, normalizationOptions) => new CustomStore({\r\n load: () => ajaxUtils.sendRequest({\r\n url: url,\r\n dataType: \"json\"\r\n }),\r\n loadMode: null === normalizationOptions || void 0 === normalizationOptions ? void 0 : normalizationOptions.fromUrlLoadMode\r\n});\r\nexport var normalizeDataSourceOptions = (options, normalizationOptions) => {\r\n var store;\r\n if (\"string\" === typeof options) {\r\n options = {\r\n paginate: false,\r\n store: createCustomStoreFromUrl(options, normalizationOptions)\r\n }\r\n }\r\n if (void 0 === options) {\r\n options = []\r\n }\r\n if (Array.isArray(options) || options instanceof Store) {\r\n options = {\r\n store: options\r\n }\r\n } else {\r\n options = extend({}, options)\r\n }\r\n if (void 0 === options.store) {\r\n options.store = []\r\n }\r\n store = options.store;\r\n if (\"load\" in options) {\r\n store = createCustomStoreFromLoadFunc(options)\r\n } else if (Array.isArray(store)) {\r\n store = new ArrayStore(store)\r\n } else if (isPlainObject(store)) {\r\n store = createStoreFromConfig(extend({}, store))\r\n }\r\n options.store = store;\r\n return options\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/text_box/text_box.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditor from \"./ui.text_editor\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nvar ignoreKeys = [\"backspace\", \"tab\", \"enter\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"rightArrow\", \"downArrow\", \"upArrow\", \"del\"];\r\nvar TEXTBOX_CLASS = \"dx-textbox\";\r\nvar SEARCHBOX_CLASS = \"dx-searchbox\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SEARCH_ICON_CLASS = \"dx-icon-search\";\r\nvar TextBox = TextEditor.inherit({\r\n ctor: function(element, options) {\r\n if (options) {\r\n this._showClearButton = options.showClearButton\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: \"\",\r\n mode: \"text\",\r\n maxLength: null\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTBOX_CLASS);\r\n this.callBase();\r\n this.setAria(\"role\", \"textbox\")\r\n },\r\n _renderInputType: function() {\r\n this.callBase();\r\n this._renderSearchMode()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._toggleMaxLengthProp()\r\n },\r\n _toggleMaxLengthProp: function() {\r\n var maxLength = this._getMaxLength();\r\n if (maxLength && maxLength > 0) {\r\n this._input().attr(\"maxLength\", maxLength)\r\n } else {\r\n this._input().removeAttr(\"maxLength\")\r\n }\r\n },\r\n _renderSearchMode: function() {\r\n var $element = this._$element;\r\n if (\"search\" === this.option(\"mode\")) {\r\n $element.addClass(SEARCHBOX_CLASS);\r\n this._renderSearchIcon();\r\n if (void 0 === this._showClearButton) {\r\n this._showClearButton = this.option(\"showClearButton\");\r\n this.option(\"showClearButton\", true)\r\n }\r\n } else {\r\n $element.removeClass(SEARCHBOX_CLASS);\r\n this._$searchIcon && this._$searchIcon.remove();\r\n this.option(\"showClearButton\", void 0 === this._showClearButton ? this.option(\"showClearButton\") : this._showClearButton);\r\n delete this._showClearButton\r\n }\r\n },\r\n _renderSearchIcon: function() {\r\n var $searchIcon = $(\"
\").addClass(ICON_CLASS).addClass(SEARCH_ICON_CLASS);\r\n $searchIcon.prependTo(this._input().parent());\r\n this._$searchIcon = $searchIcon\r\n },\r\n _getLabelContainerWidth: function() {\r\n if (this._$searchIcon) {\r\n var $inputContainer = this._input().parent();\r\n return getWidth($inputContainer) - this._getLabelBeforeWidth()\r\n }\r\n return this.callBase()\r\n },\r\n _getLabelBeforeWidth: function() {\r\n var labelBeforeWidth = this.callBase();\r\n if (this._$searchIcon) {\r\n labelBeforeWidth += getOuterWidth(this._$searchIcon)\r\n }\r\n return labelBeforeWidth\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"maxLength\":\r\n this._toggleMaxLengthProp();\r\n break;\r\n case \"mode\":\r\n this.callBase(args);\r\n this._updateLabelWidth();\r\n break;\r\n case \"mask\":\r\n this.callBase(args);\r\n this._toggleMaxLengthProp();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _onKeyDownCutOffHandler: function(e) {\r\n var actualMaxLength = this._getMaxLength();\r\n if (actualMaxLength && !e.ctrlKey && !this._hasSelection()) {\r\n var $input = $(e.target);\r\n var key = normalizeKeyName(e);\r\n this._cutOffExtraChar($input);\r\n return $input.val().length < actualMaxLength || -1 !== inArray(key, ignoreKeys) || \"\" !== window.getSelection().toString()\r\n } else {\r\n return true\r\n }\r\n },\r\n _onChangeCutOffHandler: function(e) {\r\n var $input = $(e.target);\r\n if (this.option(\"maxLength\")) {\r\n this._cutOffExtraChar($input)\r\n }\r\n },\r\n _cutOffExtraChar: function($input) {\r\n var actualMaxLength = this._getMaxLength();\r\n var textInput = $input.val();\r\n if (actualMaxLength && textInput.length > actualMaxLength) {\r\n $input.val(textInput.substr(0, actualMaxLength))\r\n }\r\n },\r\n _getMaxLength: function() {\r\n var isMaskSpecified = !!this.option(\"mask\");\r\n return isMaskSpecified ? null : this.option(\"maxLength\")\r\n }\r\n});\r\nregisterComponent(\"dxTextBox\", TextBox);\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/ui/text_box.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport TextBox from \"./text_box/text_box\";\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/core/utils/dom.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isWindow\r\n} from \"./type\";\r\nimport {\r\n getWindow\r\n} from \"./window\";\r\nvar window = getWindow();\r\nexport var resetActiveElement = () => {\r\n var activeElement = domAdapter.getActiveElement();\r\n if (activeElement && activeElement !== domAdapter.getBody()) {\r\n var _activeElement$blur;\r\n null === (_activeElement$blur = activeElement.blur) || void 0 === _activeElement$blur ? void 0 : _activeElement$blur.call(activeElement)\r\n }\r\n};\r\nexport var clearSelection = () => {\r\n var selection = window.getSelection();\r\n if (!selection) {\r\n return\r\n }\r\n if (\"Caret\" === selection.type) {\r\n return\r\n }\r\n if (selection.empty) {\r\n selection.empty()\r\n } else if (selection.removeAllRanges) {\r\n try {\r\n selection.removeAllRanges()\r\n } catch (e) {}\r\n }\r\n};\r\nexport var closestCommonParent = (startTarget, endTarget) => {\r\n var $startTarget = $(startTarget);\r\n var $endTarget = $(endTarget);\r\n if ($startTarget[0] === $endTarget[0]) {\r\n return $startTarget[0]\r\n }\r\n var $startParents = $startTarget.parents();\r\n var $endParents = $endTarget.parents();\r\n var startingParent = Math.min($startParents.length, $endParents.length);\r\n for (var i = -startingParent; i < 0; i++) {\r\n if ($startParents.get(i) === $endParents.get(i)) {\r\n return $startParents.get(i)\r\n }\r\n }\r\n};\r\nexport var extractTemplateMarkup = element => {\r\n element = $(element);\r\n var templateTag = element.length && element.filter((function() {\r\n var $node = $(this);\r\n return $node.is(\"script[type]\") && $node.attr(\"type\").indexOf(\"script\") < 0\r\n }));\r\n if (templateTag.length) {\r\n return templateTag.eq(0).html()\r\n } else {\r\n element = $(\"
\").append(element);\r\n return element.html()\r\n }\r\n};\r\nexport var normalizeTemplateElement = element => {\r\n var $element = isDefined(element) && (element.nodeType || isRenderer(element)) ? $(element) : $(\"
\").html(element).contents();\r\n if (1 === $element.length) {\r\n if ($element.is(\"script\")) {\r\n $element = normalizeTemplateElement($element.html().trim())\r\n } else if ($element.is(\"table\")) {\r\n $element = $element.children(\"tbody\").contents()\r\n }\r\n }\r\n return $element\r\n};\r\nexport var clipboardText = (event, text) => {\r\n var clipboard = event.originalEvent && event.originalEvent.clipboardData || window.clipboardData;\r\n if (!text) {\r\n return clipboard && clipboard.getData(\"Text\")\r\n }\r\n clipboard && clipboard.setData(\"Text\", text)\r\n};\r\nexport var contains = (container, element) => {\r\n if (!element) {\r\n return false\r\n }\r\n if (domAdapter.isTextNode(element)) {\r\n element = element.parentNode\r\n }\r\n if (domAdapter.isDocument(container)) {\r\n return container.documentElement.contains(element)\r\n }\r\n if (isWindow(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains ? container.contains(element) : !!(element.compareDocumentPosition(container) & element.DOCUMENT_POSITION_CONTAINS)\r\n};\r\nexport var createTextElementHiddenCopy = (element, text, options) => {\r\n var elementStyles = window.getComputedStyle($(element).get(0));\r\n var includePaddings = options && options.includePaddings;\r\n return $(\"
\").text(text).css({\r\n fontStyle: elementStyles.fontStyle,\r\n fontVariant: elementStyles.fontVariant,\r\n fontWeight: elementStyles.fontWeight,\r\n fontSize: elementStyles.fontSize,\r\n fontFamily: elementStyles.fontFamily,\r\n letterSpacing: elementStyles.letterSpacing,\r\n border: elementStyles.border,\r\n paddingTop: includePaddings ? elementStyles.paddingTop : \"\",\r\n paddingRight: includePaddings ? elementStyles.paddingRight : \"\",\r\n paddingBottom: includePaddings ? elementStyles.paddingBottom : \"\",\r\n paddingLeft: includePaddings ? elementStyles.paddingLeft : \"\",\r\n visibility: \"hidden\",\r\n whiteSpace: \"pre\",\r\n position: \"absolute\",\r\n float: \"left\"\r\n })\r\n};\r\nexport var insertBefore = (element, newElement) => {\r\n if (newElement) {\r\n domAdapter.insertElement(element.parentNode, newElement, element)\r\n }\r\n return element\r\n};\r\nexport var replaceWith = (element, newElement) => {\r\n if (!(newElement && newElement[0])) {\r\n return\r\n }\r\n if (newElement.is(element)) {\r\n return element\r\n }\r\n each(newElement, (_, currentElement) => {\r\n insertBefore(element[0], currentElement)\r\n });\r\n element.remove();\r\n return newElement\r\n};\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createExtensionComponent = exports.createConfigurationComponent = exports.createComponent = void 0;\nvar vue_1 = require(\"vue\");\nvar component_1 = require(\"../../component\");\nvar configuration_component_1 = require(\"../../configuration-component\");\nvar extension_component_1 = require(\"../../extension-component\");\nvar vue_helper_1 = require(\"../../vue-helper\");\nfunction createComponent(config) {\n config.extends = component_1.initDxComponent();\n if (config.model) {\n vue_helper_1.setVModel(config);\n }\n return vue_1.defineComponent(config);\n}\nexports.createComponent = createComponent;\nfunction createConfigurationComponent(config) {\n config.extends = configuration_component_1.initDxConfiguration();\n return vue_1.defineComponent(config);\n}\nexports.createConfigurationComponent = createConfigurationComponent;\nfunction createExtensionComponent(config) {\n config.extends = extension_component_1.initDxExtensionComponent();\n return vue_1.defineComponent(config);\n}\nexports.createExtensionComponent = createExtensionComponent;\n","import { getFlagsForElementVnode, createComponentVNode, createFragment, createVNode } from 'inferno';\n\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\n\nvar componentHooks = {\n onComponentDidMount: 1,\n onComponentDidUpdate: 1,\n onComponentShouldUpdate: 1,\n onComponentWillMount: 1,\n onComponentWillUnmount: 1,\n onComponentWillUpdate: 1\n};\nfunction createElement(type, props, _children) {\n var arguments$1 = arguments;\n var children;\n var ref = null;\n var key = null;\n var className = null;\n var flags = 0;\n var newProps;\n var childLen = arguments.length - 2;\n if (childLen === 1) {\n children = _children;\n }\n else if (childLen > 1) {\n children = [];\n while (childLen-- > 0) {\n children[childLen] = arguments$1[childLen + 2];\n }\n }\n if (isString(type)) {\n flags = getFlagsForElementVnode(type);\n if (!isNullOrUndef(props)) {\n newProps = {};\n for (var prop in props) {\n if (prop === 'className' || prop === 'class') {\n className = props[prop];\n }\n else if (prop === 'key') {\n key = props.key;\n }\n else if (prop === 'children' && isUndefined(children)) {\n children = props.children; // always favour children args over props\n }\n else if (prop === 'ref') {\n ref = props.ref;\n }\n else {\n if (prop === 'contenteditable') {\n flags |= 4096 /* ContentEditable */;\n }\n newProps[prop] = props[prop];\n }\n }\n }\n }\n else {\n flags = 2 /* ComponentUnknown */;\n if (!isUndefined(children)) {\n if (!props) {\n props = {};\n }\n props.children = children;\n }\n if (!isNullOrUndef(props)) {\n newProps = {};\n for (var prop$1 in props) {\n if (prop$1 === 'key') {\n key = props.key;\n }\n else if (prop$1 === 'ref') {\n ref = props.ref;\n }\n else if (componentHooks[prop$1] === 1) {\n if (!ref) {\n ref = {};\n }\n ref[prop$1] = props[prop$1];\n }\n else {\n newProps[prop$1] = props[prop$1];\n }\n }\n }\n return createComponentVNode(flags, type, newProps, key, ref);\n }\n if (flags & 8192 /* Fragment */) {\n return createFragment(childLen === 1 ? [children] : children, 0 /* UnknownChildren */, key);\n }\n return createVNode(flags, type, className, children, 0 /* UnknownChildren */, newProps, key, ref);\n}\n\nexport { createElement };\n","/**\r\n * DevExtreme (esm/core/polyfills/promise.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar promise = hasWindow() ? getWindow().Promise : Promise;\r\nif (!promise) {\r\n promise = function(resolver) {\r\n var d = new Deferred;\r\n resolver(d.resolve.bind(this), d.reject.bind(this));\r\n return d.promise()\r\n };\r\n promise.resolve = function(val) {\r\n return (new Deferred).resolve(val).promise()\r\n };\r\n promise.reject = function(val) {\r\n return (new Deferred).reject(val).promise()\r\n };\r\n promise.all = function(promises) {\r\n return when.apply(this, promises).then((function() {\r\n return [].slice.call(arguments)\r\n }))\r\n }\r\n}\r\nexport default promise;\r\n","/**\r\n * DevExtreme (esm/core/templates/function_template.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nexport class FunctionTemplate extends TemplateBase {\r\n constructor(render) {\r\n super();\r\n this._render = render\r\n }\r\n _renderCore(options) {\r\n return normalizeTemplateElement(this._render(options))\r\n }\r\n}\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOptionInfo = exports.getOptionValue = exports.allKeysAreEqual = exports.forEachChildNode = exports.isEqual = exports.toComparable = exports.camelize = exports.lowercaseFirst = exports.uppercaseFirst = exports.getTemplatePropName = void 0;\nfunction getTemplatePropName(props, templateName) {\n for (var propName in props) {\n if (props[propName] === templateName) {\n return propName;\n }\n }\n return templateName;\n}\nexports.getTemplatePropName = getTemplatePropName;\nfunction uppercaseFirst(value) {\n return value[0].toUpperCase() + value.substr(1);\n}\nexports.uppercaseFirst = uppercaseFirst;\nfunction lowercaseFirst(value) {\n return value[0].toLowerCase() + value.substr(1);\n}\nexports.lowercaseFirst = lowercaseFirst;\nfunction camelize(value) {\n return lowercaseFirst(value.split(\"-\").map(function (v) { return uppercaseFirst(v); }).join(\"\"));\n}\nexports.camelize = camelize;\nfunction toComparable(value) {\n return value instanceof Date ? value.getTime() : value;\n}\nexports.toComparable = toComparable;\nfunction isEqual(value1, value2) {\n if (toComparable(value1) === toComparable(value2)) {\n return true;\n }\n if (Array.isArray(value1) && Array.isArray(value2)) {\n return value1.length === 0 && value2.length === 0;\n }\n return false;\n}\nexports.isEqual = isEqual;\nfunction forEachChildNode(el, callback) {\n Array.prototype.slice.call(el.childNodes).forEach(callback);\n}\nexports.forEachChildNode = forEachChildNode;\nfunction allKeysAreEqual(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n if (obj1Keys.length !== Object.keys(obj2).length) {\n return false;\n }\n for (var _i = 0, obj1Keys_1 = obj1Keys; _i < obj1Keys_1.length; _i++) {\n var key = obj1Keys_1[_i];\n if (!obj2.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n}\nexports.allKeysAreEqual = allKeysAreEqual;\nfunction getOptionValue(options, optionPath) {\n var value = options;\n optionPath.split(\".\").forEach(function (p) {\n var optionInfo = getOptionInfo(p);\n if (value) {\n value = optionInfo.isCollection ?\n value[optionInfo.name] && value[optionInfo.name][optionInfo.index] :\n value[optionInfo.name];\n }\n });\n return value;\n}\nexports.getOptionValue = getOptionValue;\nfunction getOptionInfo(name) {\n var parts = name.split(\"[\");\n if (parts.length === 1) {\n return {\n isCollection: false,\n name: name,\n fullName: name\n };\n }\n return {\n isCollection: true,\n name: parts[0],\n fullName: name,\n index: Number(parts[1].slice(0, -1))\n };\n}\nexports.getOptionInfo = getOptionInfo;\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TEMPLATE_MULTIPLE_ROOTS_ERROR = void 0;\nexports.TEMPLATE_MULTIPLE_ROOTS_ERROR = \"Template must have a single root node.\";\n","/**\r\n * DevExtreme (esm/data_helper.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n DataSource\r\n} from \"./data/data_source/data_source\";\r\nimport {\r\n extend\r\n} from \"./core/utils/extend\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"./data/data_source/utils\";\r\nvar DATA_SOURCE_OPTIONS_METHOD = \"_dataSourceOptions\";\r\nvar DATA_SOURCE_CHANGED_METHOD = \"_dataSourceChangedHandler\";\r\nvar DATA_SOURCE_LOAD_ERROR_METHOD = \"_dataSourceLoadErrorHandler\";\r\nvar DATA_SOURCE_LOADING_CHANGED_METHOD = \"_dataSourceLoadingChangedHandler\";\r\nvar DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD = \"_dataSourceFromUrlLoadMode\";\r\nvar SPECIFIC_DATA_SOURCE_OPTION = \"_getSpecificDataSourceOption\";\r\nvar NORMALIZE_DATA_SOURCE = \"_normalizeDataSource\";\r\nvar DataHelperMixin = {\r\n postCtor: function() {\r\n this.on(\"disposing\", function() {\r\n this._disposeDataSource()\r\n }.bind(this))\r\n },\r\n _refreshDataSource: function() {\r\n this._initDataSource();\r\n this._loadDataSource()\r\n },\r\n _initDataSource: function() {\r\n var dataSourceOptions = SPECIFIC_DATA_SOURCE_OPTION in this ? this[SPECIFIC_DATA_SOURCE_OPTION]() : this.option(\"dataSource\");\r\n var widgetDataSourceOptions;\r\n var dataSourceType;\r\n this._disposeDataSource();\r\n if (dataSourceOptions) {\r\n if (dataSourceOptions instanceof DataSource) {\r\n this._isSharedDataSource = true;\r\n this._dataSource = dataSourceOptions\r\n } else {\r\n widgetDataSourceOptions = DATA_SOURCE_OPTIONS_METHOD in this ? this[DATA_SOURCE_OPTIONS_METHOD]() : {};\r\n dataSourceType = this._dataSourceType ? this._dataSourceType() : DataSource;\r\n dataSourceOptions = normalizeDataSourceOptions(dataSourceOptions, {\r\n fromUrlLoadMode: DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD in this && this[DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD]()\r\n });\r\n this._dataSource = new dataSourceType(extend(true, {}, widgetDataSourceOptions, dataSourceOptions))\r\n }\r\n if (NORMALIZE_DATA_SOURCE in this) {\r\n this._dataSource = this[NORMALIZE_DATA_SOURCE](this._dataSource)\r\n }\r\n this._addDataSourceHandlers()\r\n }\r\n },\r\n _addDataSourceHandlers: function() {\r\n if (DATA_SOURCE_CHANGED_METHOD in this) {\r\n this._addDataSourceChangeHandler()\r\n }\r\n if (DATA_SOURCE_LOAD_ERROR_METHOD in this) {\r\n this._addDataSourceLoadErrorHandler()\r\n }\r\n if (DATA_SOURCE_LOADING_CHANGED_METHOD in this) {\r\n this._addDataSourceLoadingChangedHandler()\r\n }\r\n this._addReadyWatcher()\r\n },\r\n _addReadyWatcher: function() {\r\n this._dataSource.on(\"loadingChanged\", function(isLoading) {\r\n this._ready && this._ready(!isLoading)\r\n }.bind(this))\r\n },\r\n _addDataSourceChangeHandler: function() {\r\n var dataSource = this._dataSource;\r\n this._proxiedDataSourceChangedHandler = function(e) {\r\n this[DATA_SOURCE_CHANGED_METHOD](dataSource.items(), e)\r\n }.bind(this);\r\n dataSource.on(\"changed\", this._proxiedDataSourceChangedHandler)\r\n },\r\n _addDataSourceLoadErrorHandler: function() {\r\n this._proxiedDataSourceLoadErrorHandler = this[DATA_SOURCE_LOAD_ERROR_METHOD].bind(this);\r\n this._dataSource.on(\"loadError\", this._proxiedDataSourceLoadErrorHandler)\r\n },\r\n _addDataSourceLoadingChangedHandler: function() {\r\n this._proxiedDataSourceLoadingChangedHandler = this[DATA_SOURCE_LOADING_CHANGED_METHOD].bind(this);\r\n this._dataSource.on(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n },\r\n _loadDataSource: function() {\r\n if (this._dataSource) {\r\n var dataSource = this._dataSource;\r\n if (dataSource.isLoaded()) {\r\n this._proxiedDataSourceChangedHandler && this._proxiedDataSourceChangedHandler()\r\n } else {\r\n dataSource.load()\r\n }\r\n }\r\n },\r\n _loadSingle: function(key, value) {\r\n key = \"this\" === key ? this._dataSource.key() || \"this\" : key;\r\n return this._dataSource.loadSingle(key, value)\r\n },\r\n _isLastPage: function() {\r\n return !this._dataSource || this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n },\r\n _isDataSourceLoading: function() {\r\n return this._dataSource && this._dataSource.isLoading()\r\n },\r\n _disposeDataSource: function() {\r\n if (this._dataSource) {\r\n if (this._isSharedDataSource) {\r\n delete this._isSharedDataSource;\r\n this._proxiedDataSourceChangedHandler && this._dataSource.off(\"changed\", this._proxiedDataSourceChangedHandler);\r\n this._proxiedDataSourceLoadErrorHandler && this._dataSource.off(\"loadError\", this._proxiedDataSourceLoadErrorHandler);\r\n this._proxiedDataSourceLoadingChangedHandler && this._dataSource.off(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n } else {\r\n this._dataSource.dispose()\r\n }\r\n delete this._dataSource;\r\n delete this._proxiedDataSourceChangedHandler;\r\n delete this._proxiedDataSourceLoadErrorHandler;\r\n delete this._proxiedDataSourceLoadingChangedHandler\r\n }\r\n },\r\n getDataSource: function() {\r\n return this._dataSource || null\r\n }\r\n};\r\nexport default DataHelperMixin;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/constants.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nexport var TOOLBAR_CLASS = \"dx-toolbar\";\r\n","/**\r\n * DevExtreme (esm/events/index.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport eventsEngine from \"./core/events_engine\";\r\nexport var on = eventsEngine.on;\r\nexport var one = eventsEngine.one;\r\nexport var off = eventsEngine.off;\r\nexport var trigger = eventsEngine.trigger;\r\nexport var triggerHandler = eventsEngine.triggerHandler;\r\nexport var Event = eventsEngine.Event;\r\n","/**\r\n * DevExtreme (esm/events/contextmenu.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent,\r\n isMouseEvent\r\n} from \"./utils/index\";\r\nimport holdEvent from \"./hold\";\r\nvar CONTEXTMENU_NAMESPACE = \"dxContexMenu\";\r\nvar CONTEXTMENU_NAMESPACED_EVENT_NAME = addNamespace(\"contextmenu\", CONTEXTMENU_NAMESPACE);\r\nvar HOLD_NAMESPACED_EVENT_NAME = addNamespace(holdEvent.name, CONTEXTMENU_NAMESPACE);\r\nvar CONTEXTMENU_EVENT_NAME = \"dxcontextmenu\";\r\nvar ContextMenu = Class.inherit({\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, CONTEXTMENU_NAMESPACED_EVENT_NAME, this._contextMenuHandler.bind(this));\r\n if (touch || devices.isSimulator()) {\r\n eventsEngine.on($element, HOLD_NAMESPACED_EVENT_NAME, this._holdHandler.bind(this))\r\n }\r\n },\r\n _holdHandler: function(e) {\r\n if (isMouseEvent(e) && !devices.isSimulator()) {\r\n return\r\n }\r\n this._fireContextMenu(e)\r\n },\r\n _contextMenuHandler: function(e) {\r\n this._fireContextMenu(e)\r\n },\r\n _fireContextMenu: function(e) {\r\n return fireEvent({\r\n type: CONTEXTMENU_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\" + CONTEXTMENU_NAMESPACE)\r\n }\r\n});\r\nregisterEvent(CONTEXTMENU_EVENT_NAME, new ContextMenu);\r\nexport var name = CONTEXTMENU_EVENT_NAME;\r\n","/**\r\n * DevExtreme (esm/events/hold.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n eventData,\r\n eventDelta\r\n} from \"./utils/index\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar abs = Math.abs;\r\nvar HOLD_EVENT_NAME = \"dxhold\";\r\nvar HOLD_TIMEOUT = 750;\r\nvar TOUCH_BOUNDARY = 5;\r\nvar HoldEmitter = Emitter.inherit({\r\n start: function(e) {\r\n this._startEventData = eventData(e);\r\n this._startTimer(e)\r\n },\r\n _startTimer: function(e) {\r\n var holdTimeout = \"timeout\" in this ? this.timeout : HOLD_TIMEOUT;\r\n this._holdTimer = setTimeout(function() {\r\n this._requestAccept(e);\r\n this._fireEvent(HOLD_EVENT_NAME, e, {\r\n target: e.target\r\n });\r\n this._forgetAccept()\r\n }.bind(this), holdTimeout)\r\n },\r\n move: function(e) {\r\n if (this._touchWasMoved(e)) {\r\n this._cancel(e)\r\n }\r\n },\r\n _touchWasMoved: function(e) {\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n return abs(delta.x) > TOUCH_BOUNDARY || abs(delta.y) > TOUCH_BOUNDARY\r\n },\r\n end: function() {\r\n this._stopTimer()\r\n },\r\n _stopTimer: function() {\r\n clearTimeout(this._holdTimer)\r\n },\r\n cancel: function() {\r\n this._stopTimer()\r\n },\r\n dispose: function() {\r\n this._stopTimer()\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: HoldEmitter,\r\n bubble: true,\r\n events: [HOLD_EVENT_NAME]\r\n});\r\nexport default {\r\n name: HOLD_EVENT_NAME\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/view_port.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../renderer\";\r\nimport readyCallbacks from \"./ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport callbacks from \"./callbacks\";\r\nvar changeCallback = callbacks();\r\nvar $originalViewPort = $();\r\nvar value = function() {\r\n var $current;\r\n return function(element) {\r\n if (!arguments.length) {\r\n return $current\r\n }\r\n var $element = $(element);\r\n $originalViewPort = $element;\r\n var isNewViewportFound = !!$element.length;\r\n var prevViewPort = value();\r\n $current = isNewViewportFound ? $element : $(\"body\");\r\n changeCallback.fire(isNewViewportFound ? value() : $(), prevViewPort)\r\n }\r\n}();\r\nready((function() {\r\n value(\".dx-viewport\")\r\n}));\r\nexport {\r\n value,\r\n changeCallback\r\n};\r\nexport function originalViewPort() {\r\n return $originalViewPort\r\n}\r\n","/**\r\n * DevExtreme (esm/core/template_manager.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"./renderer\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isRenderer\r\n} from \"./utils/type\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n FunctionTemplate\r\n} from \"./templates/function_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"./templates/empty_template\";\r\nimport {\r\n findTemplates,\r\n suitableTemplatesByName,\r\n templateKey,\r\n getNormalizedTemplateArgs,\r\n validateTemplateSource,\r\n defaultCreateElement,\r\n acquireTemplate\r\n} from \"./utils/template_manager\";\r\nvar TEXT_NODE = 3;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"template\";\r\nvar TEMPLATE_OPTIONS_NAME = \"dxTemplate\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar DX_POLYMORPH_WIDGET_TEMPLATE = new FunctionTemplate(_ref => {\r\n var {\r\n model: model,\r\n parent: parent\r\n } = _ref;\r\n var widgetName = model.widget;\r\n if (!widgetName) {\r\n return $()\r\n }\r\n var widgetElement = $(\"
\");\r\n var widgetOptions = model.options || {};\r\n if (parent) {\r\n parent._createComponent(widgetElement, widgetName, widgetOptions)\r\n } else {\r\n widgetElement[widgetName](widgetOptions)\r\n }\r\n return widgetElement\r\n});\r\nexport class TemplateManager {\r\n constructor(createElement, anonymousTemplateName) {\r\n this._tempTemplates = [];\r\n this._defaultTemplates = {};\r\n this._anonymousTemplateName = anonymousTemplateName || ANONYMOUS_TEMPLATE_NAME;\r\n this._createElement = createElement || defaultCreateElement;\r\n this._createTemplateIfNeeded = this._createTemplateIfNeeded.bind(this)\r\n }\r\n static createDefaultOptions() {\r\n return {\r\n integrationOptions: {\r\n watchMethod: function(fn, callback) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n if (!options.skipImmediate) {\r\n callback(fn())\r\n }\r\n return noop\r\n },\r\n templates: {\r\n \"dx-polymorph-widget\": DX_POLYMORPH_WIDGET_TEMPLATE\r\n },\r\n useDeferUpdateForTemplates: true\r\n }\r\n }\r\n }\r\n get anonymousTemplateName() {\r\n return this._anonymousTemplateName\r\n }\r\n addDefaultTemplates(templates) {\r\n this._defaultTemplates = extend({}, this._defaultTemplates, templates)\r\n }\r\n dispose() {\r\n this._tempTemplates.forEach(tempTemplate => {\r\n tempTemplate.template.dispose && tempTemplate.template.dispose()\r\n });\r\n this._tempTemplates = []\r\n }\r\n extractTemplates($el) {\r\n var templates = this._extractTemplates($el);\r\n var anonymousTemplateMeta = this._extractAnonymousTemplate($el);\r\n return {\r\n templates: templates,\r\n anonymousTemplateMeta: anonymousTemplateMeta\r\n }\r\n }\r\n _extractTemplates($el) {\r\n var templates = findTemplates($el, TEMPLATE_OPTIONS_NAME);\r\n var suitableTemplates = suitableTemplatesByName(templates);\r\n templates.forEach(_ref2 => {\r\n var {\r\n element: element,\r\n options: {\r\n name: name\r\n }\r\n } = _ref2;\r\n if (element === suitableTemplates[name]) {\r\n $(element).addClass(TEMPLATE_WRAPPER_CLASS).detach()\r\n } else {\r\n $(element).remove()\r\n }\r\n });\r\n return Object.keys(suitableTemplates).map(name => ({\r\n name: name,\r\n template: this._createTemplate(suitableTemplates[name])\r\n }))\r\n }\r\n _extractAnonymousTemplate($el) {\r\n var $anonymousTemplate = $el.contents().detach();\r\n var $notJunkTemplateContent = $anonymousTemplate.filter((_, element) => {\r\n var isTextNode = element.nodeType === TEXT_NODE;\r\n var isEmptyText = $(element).text().trim().length < 1;\r\n return !(isTextNode && isEmptyText)\r\n });\r\n return $notJunkTemplateContent.length > 0 ? {\r\n template: this._createTemplate($anonymousTemplate),\r\n name: this._anonymousTemplateName\r\n } : {}\r\n }\r\n _createTemplateIfNeeded(templateSource) {\r\n var cachedTemplate = this._tempTemplates.filter(tempTemplate => tempTemplate.source === templateKey(templateSource))[0];\r\n if (cachedTemplate) {\r\n return cachedTemplate.template\r\n }\r\n var template = this._createTemplate(templateSource);\r\n this._tempTemplates.push({\r\n template: template,\r\n source: templateKey(templateSource)\r\n });\r\n return template\r\n }\r\n _createTemplate(templateSource) {\r\n return this._createElement(validateTemplateSource(templateSource))\r\n }\r\n getTemplate(templateSource, templates, _ref3, context) {\r\n var {\r\n isAsyncTemplate: isAsyncTemplate,\r\n skipTemplates: skipTemplates\r\n } = _ref3;\r\n if (!isFunction(templateSource)) {\r\n return acquireTemplate(templateSource, this._createTemplateIfNeeded, templates, isAsyncTemplate, skipTemplates, this._defaultTemplates)\r\n }\r\n return new FunctionTemplate(options => {\r\n var templateSourceResult = templateSource.apply(context, getNormalizedTemplateArgs(options));\r\n if (!isDefined(templateSourceResult)) {\r\n return new EmptyTemplate\r\n }\r\n var dispose = false;\r\n var template = acquireTemplate(templateSourceResult, templateSource => {\r\n if (templateSource.nodeType || isRenderer(templateSource) && !$(templateSource).is(\"script\")) {\r\n return new FunctionTemplate(() => templateSource)\r\n }\r\n dispose = true;\r\n return this._createTemplate(templateSource)\r\n }, templates, isAsyncTemplate, skipTemplates, this._defaultTemplates);\r\n var result = template.render(options);\r\n dispose && template.dispose && template.dispose();\r\n return result\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/dom_component.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../core/renderer\";\r\nimport config from \"./config\";\r\nimport errors from \"./errors\";\r\nimport windowResizeCallbacks from \"../core/utils/resize_callbacks\";\r\nimport {\r\n Component\r\n} from \"./component\";\r\nimport {\r\n TemplateManager\r\n} from \"./template_manager\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"./utils/public_component\";\r\nimport {\r\n cleanDataRecursive\r\n} from \"./element_data\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n grep,\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n inArray\r\n} from \"./utils/array\";\r\nimport {\r\n isString,\r\n isDefined,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n resize as resizeEvent,\r\n visibility as visibilityEvents\r\n} from \"../events/short\";\r\nvar {\r\n abstract: abstract\r\n} = Component;\r\nvar DOMComponent = Component.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n width: void 0,\r\n height: void 0,\r\n rtlEnabled: config().rtlEnabled,\r\n elementAttr: {},\r\n disabled: false,\r\n integrationOptions: {}\r\n }, this._useTemplates() ? TemplateManager.createDefaultOptions() : {})\r\n },\r\n ctor(element, options) {\r\n this._customClass = null;\r\n this._createElement(element);\r\n attachInstanceToElement(this._$element, this, this._dispose);\r\n this.callBase(options)\r\n },\r\n _createElement(element) {\r\n this._$element = $(element)\r\n },\r\n _getSynchronizableOptionsForCreateComponent: () => [\"rtlEnabled\", \"disabled\", \"templatesRenderAsynchronously\"],\r\n _checkFunctionValueDeprecation: function(optionNames) {\r\n if (!this.option(\"_ignoreFunctionValueDeprecation\")) {\r\n optionNames.forEach(optionName => {\r\n if (isFunction(this.option(optionName))) {\r\n errors.log(\"W0017\", optionName)\r\n }\r\n })\r\n }\r\n },\r\n _visibilityChanged: abstract,\r\n _dimensionChanged: abstract,\r\n _init() {\r\n this.callBase();\r\n this._checkFunctionValueDeprecation([\"width\", \"height\", \"maxHeight\", \"maxWidth\", \"minHeight\", \"minWidth\", \"popupHeight\", \"popupWidth\"]);\r\n this._attachWindowResizeCallback();\r\n this._initTemplateManager()\r\n },\r\n _setOptionsByDevice(instanceCustomRules) {\r\n this.callBase([].concat(this.constructor._classCustomRules || [], instanceCustomRules || []))\r\n },\r\n _isInitialOptionValue(name) {\r\n var isCustomOption = this.constructor._classCustomRules && Object.prototype.hasOwnProperty.call(this._convertRulesToOptions(this.constructor._classCustomRules), name);\r\n return !isCustomOption && this.callBase(name)\r\n },\r\n _attachWindowResizeCallback() {\r\n if (this._isDimensionChangeSupported()) {\r\n var windowResizeCallBack = this._windowResizeCallBack = this._dimensionChanged.bind(this);\r\n windowResizeCallbacks.add(windowResizeCallBack)\r\n }\r\n },\r\n _isDimensionChangeSupported() {\r\n return this._dimensionChanged !== abstract\r\n },\r\n _renderComponent() {\r\n this._initMarkup();\r\n hasWindow() && this._render()\r\n },\r\n _initMarkup() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.option() || {};\r\n this._renderElementAttributes();\r\n this._toggleRTLDirection(rtlEnabled);\r\n this._renderVisibilityChange();\r\n this._renderDimensions()\r\n },\r\n _render() {\r\n this._attachVisibilityChangeHandlers()\r\n },\r\n _renderElementAttributes() {\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option() || {};\r\n var attributes = extend({}, elementAttr);\r\n var classNames = attributes.class;\r\n delete attributes.class;\r\n this.$element().attr(attributes).removeClass(this._customClass).addClass(classNames);\r\n this._customClass = classNames\r\n },\r\n _renderVisibilityChange() {\r\n if (this._isDimensionChangeSupported()) {\r\n this._attachDimensionChangeHandlers()\r\n }\r\n if (this._isVisibilityChangeSupported()) {\r\n var $element = this.$element();\r\n $element.addClass(\"dx-visibility-change-handler\")\r\n }\r\n },\r\n _renderDimensions() {\r\n var $element = this.$element();\r\n var element = $element.get(0);\r\n var width = this._getOptionValue(\"width\", element);\r\n var height = this._getOptionValue(\"height\", element);\r\n if (this._isCssUpdateRequired(element, height, width)) {\r\n $element.css({\r\n width: null === width ? \"\" : width,\r\n height: null === height ? \"\" : height\r\n })\r\n }\r\n },\r\n _isCssUpdateRequired: (element, height, width) => !!(isDefined(width) || isDefined(height) || element.style.width || element.style.height),\r\n _attachDimensionChangeHandlers() {\r\n var $el = this.$element();\r\n var namespace = \"\".concat(this.NAME, \"VisibilityChange\");\r\n resizeEvent.off($el, {\r\n namespace: namespace\r\n });\r\n resizeEvent.on($el, () => this._dimensionChanged(), {\r\n namespace: namespace\r\n })\r\n },\r\n _attachVisibilityChangeHandlers() {\r\n if (this._isVisibilityChangeSupported()) {\r\n var $el = this.$element();\r\n var namespace = \"\".concat(this.NAME, \"VisibilityChange\");\r\n this._isHidden = !this._isVisible();\r\n visibilityEvents.off($el, {\r\n namespace: namespace\r\n });\r\n visibilityEvents.on($el, () => this._checkVisibilityChanged(\"shown\"), () => this._checkVisibilityChanged(\"hiding\"), {\r\n namespace: namespace\r\n })\r\n }\r\n },\r\n _isVisible() {\r\n var $element = this.$element();\r\n return $element.is(\":visible\")\r\n },\r\n _checkVisibilityChanged(action) {\r\n var isVisible = this._isVisible();\r\n if (isVisible) {\r\n if (\"hiding\" === action && !this._isHidden) {\r\n this._visibilityChanged(false);\r\n this._isHidden = true\r\n } else if (\"shown\" === action && this._isHidden) {\r\n this._isHidden = false;\r\n this._visibilityChanged(true)\r\n }\r\n }\r\n },\r\n _isVisibilityChangeSupported() {\r\n return this._visibilityChanged !== abstract && hasWindow()\r\n },\r\n _clean: noop,\r\n _modelByElement() {\r\n var {\r\n modelByElement: modelByElement\r\n } = this.option();\r\n var $element = this.$element();\r\n return modelByElement ? modelByElement($element) : void 0\r\n },\r\n _invalidate() {\r\n if (this._isUpdateAllowed()) {\r\n throw errors.Error(\"E0007\")\r\n }\r\n this._requireRefresh = true\r\n },\r\n _refresh() {\r\n this._clean();\r\n this._renderComponent()\r\n },\r\n _dispose() {\r\n this._templateManager && this._templateManager.dispose();\r\n this.callBase();\r\n this._clean();\r\n this._detachWindowResizeCallback()\r\n },\r\n _detachWindowResizeCallback() {\r\n if (this._isDimensionChangeSupported()) {\r\n windowResizeCallbacks.remove(this._windowResizeCallBack)\r\n }\r\n },\r\n _toggleRTLDirection(rtl) {\r\n var $element = this.$element();\r\n $element.toggleClass(\"dx-rtl\", rtl)\r\n },\r\n _createComponent(element, component) {\r\n var config = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var synchronizableOptions = grep(this._getSynchronizableOptionsForCreateComponent(), value => !(value in config));\r\n var {\r\n integrationOptions: integrationOptions\r\n } = this.option();\r\n var {\r\n nestedComponentOptions: nestedComponentOptions\r\n } = this.option();\r\n nestedComponentOptions = nestedComponentOptions || noop;\r\n var nestedComponentConfig = extend({\r\n integrationOptions: integrationOptions\r\n }, nestedComponentOptions(this));\r\n synchronizableOptions.forEach(optionName => nestedComponentConfig[optionName] = this.option(optionName));\r\n this._extendConfig(config, nestedComponentConfig);\r\n var instance = void 0;\r\n if (isString(component)) {\r\n var $element = $(element)[component](config);\r\n instance = $element[component](\"instance\")\r\n } else if (element) {\r\n instance = component.getInstance(element);\r\n if (instance) {\r\n instance.option(config)\r\n } else {\r\n instance = new component(element, config)\r\n }\r\n }\r\n if (instance) {\r\n var optionChangedHandler = _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (inArray(name, synchronizableOptions) >= 0) {\r\n instance.option(name, value)\r\n }\r\n };\r\n this.on(\"optionChanged\", optionChangedHandler);\r\n instance.on(\"disposing\", () => this.off(\"optionChanged\", optionChangedHandler))\r\n }\r\n return instance\r\n },\r\n _extendConfig(config, extendConfig) {\r\n each(extendConfig, (key, value) => {\r\n !Object.prototype.hasOwnProperty.call(config, key) && (config[key] = value)\r\n })\r\n },\r\n _defaultActionConfig() {\r\n var $element = this.$element();\r\n var context = this._modelByElement($element);\r\n return extend(this.callBase(), {\r\n context: context\r\n })\r\n },\r\n _defaultActionArgs() {\r\n var $element = this.$element();\r\n var model = this._modelByElement($element);\r\n var element = this.element();\r\n return extend(this.callBase(), {\r\n element: element,\r\n model: model\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this._renderDimensions();\r\n break;\r\n case \"rtlEnabled\":\r\n this._invalidate();\r\n break;\r\n case \"elementAttr\":\r\n this._renderElementAttributes();\r\n break;\r\n case \"disabled\":\r\n case \"integrationOptions\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _removeAttributes(element) {\r\n var attrs = element.attributes;\r\n for (var i = attrs.length - 1; i >= 0; i--) {\r\n var attr = attrs[i];\r\n if (attr) {\r\n var {\r\n name: name\r\n } = attr;\r\n if (!name.indexOf(\"aria-\") || -1 !== name.indexOf(\"dx-\") || \"role\" === name || \"style\" === name || \"tabindex\" === name) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n }\r\n },\r\n _removeClasses(element) {\r\n element.className = element.className.split(\" \").filter(cssClass => 0 !== cssClass.lastIndexOf(\"dx-\", 0)).join(\" \")\r\n },\r\n _updateDOMComponent(renderRequired) {\r\n if (renderRequired) {\r\n this._renderComponent()\r\n } else if (this._requireRefresh) {\r\n this._requireRefresh = false;\r\n this._refresh()\r\n }\r\n },\r\n endUpdate() {\r\n var renderRequired = this._isInitializingRequired();\r\n this.callBase();\r\n this._isUpdateAllowed() && this._updateDOMComponent(renderRequired)\r\n },\r\n $element() {\r\n return this._$element\r\n },\r\n element() {\r\n var $element = this.$element();\r\n return getPublicElement($element)\r\n },\r\n dispose() {\r\n var element = this.$element().get(0);\r\n cleanDataRecursive(element, true);\r\n element.textContent = \"\";\r\n this._removeAttributes(element);\r\n this._removeClasses(element)\r\n },\r\n resetOption(optionName) {\r\n this.callBase(optionName);\r\n if (\"width\" === optionName || \"height\" === optionName) {\r\n var initialOption = this.initialOption(optionName);\r\n !isDefined(initialOption) && this.$element().css(optionName, \"\")\r\n }\r\n },\r\n _getAnonymousTemplateName() {\r\n return\r\n },\r\n _initTemplateManager() {\r\n if (this._templateManager || !this._useTemplates()) {\r\n return\r\n }\r\n var {\r\n integrationOptions: integrationOptions = {}\r\n } = this.option();\r\n var {\r\n createTemplate: createTemplate\r\n } = integrationOptions;\r\n this._templateManager = new TemplateManager(createTemplate, this._getAnonymousTemplateName());\r\n this._initTemplates()\r\n },\r\n _initTemplates() {\r\n var {\r\n templates: templates,\r\n anonymousTemplateMeta: anonymousTemplateMeta\r\n } = this._templateManager.extractTemplates(this.$element());\r\n var anonymousTemplate = this.option(\"integrationOptions.templates.\".concat(anonymousTemplateMeta.name));\r\n templates.forEach(_ref2 => {\r\n var {\r\n name: name,\r\n template: template\r\n } = _ref2;\r\n this._options.silent(\"integrationOptions.templates.\".concat(name), template)\r\n });\r\n if (anonymousTemplateMeta.name && !anonymousTemplate) {\r\n this._options.silent(\"integrationOptions.templates.\".concat(anonymousTemplateMeta.name), anonymousTemplateMeta.template);\r\n this._options.silent(\"_hasAnonymousTemplateContent\", true)\r\n }\r\n },\r\n _getTemplateByOption(optionName) {\r\n return this._getTemplate(this.option(optionName))\r\n },\r\n _getTemplate(templateSource) {\r\n var templates = this.option(\"integrationOptions.templates\");\r\n var isAsyncTemplate = this.option(\"templatesRenderAsynchronously\");\r\n var skipTemplates = this.option(\"integrationOptions.skipTemplates\");\r\n return this._templateManager.getTemplate(templateSource, templates, {\r\n isAsyncTemplate: isAsyncTemplate,\r\n skipTemplates: skipTemplates\r\n }, this)\r\n },\r\n _saveTemplate(name, template) {\r\n this._setOptionWithoutOptionChange(\"integrationOptions.templates.\" + name, this._templateManager._createTemplate(template))\r\n },\r\n _useTemplates: () => true\r\n});\r\nDOMComponent.getInstance = function(element) {\r\n return getInstanceByElement($(element), this)\r\n};\r\nDOMComponent.defaultOptions = function(rule) {\r\n this._classCustomRules = this._classCustomRules || [];\r\n this._classCustomRules.push(rule)\r\n};\r\nexport default DOMComponent;\r\n","/**\r\n * DevExtreme (esm/core/utils/position.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport config from \"../config\";\r\nimport {\r\n isWindow\r\n} from \"../utils/type\";\r\nvar getDefaultAlignment = isRtlEnabled => {\r\n var rtlEnabled = null !== isRtlEnabled && void 0 !== isRtlEnabled ? isRtlEnabled : config().rtlEnabled;\r\n return rtlEnabled ? \"right\" : \"left\"\r\n};\r\nvar getBoundingRect = element => {\r\n if (isWindow(element)) {\r\n return {\r\n width: element.outerWidth,\r\n height: element.outerHeight\r\n }\r\n }\r\n return element.getBoundingClientRect()\r\n};\r\nexport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n};\r\n","/**\r\n * DevExtreme (esm/mobile/hide_callback.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n inArray\r\n} from \"../core/utils/array\";\r\nexport var hideCallback = function() {\r\n var callbacks = [];\r\n return {\r\n add: function(callback) {\r\n var indexOfCallback = inArray(callback, callbacks);\r\n if (-1 === indexOfCallback) {\r\n callbacks.push(callback)\r\n }\r\n },\r\n remove: function(callback) {\r\n var indexOfCallback = inArray(callback, callbacks);\r\n if (-1 !== indexOfCallback) {\r\n callbacks.splice(indexOfCallback, 1)\r\n }\r\n },\r\n fire: function() {\r\n var callback = callbacks.pop();\r\n var result = !!callback;\r\n if (result) {\r\n callback()\r\n }\r\n return result\r\n },\r\n hasCallback: function() {\r\n return callbacks.length > 0\r\n }\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/ui/resizable.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getOuterWidth,\r\n getOuterHeight,\r\n getInnerWidth,\r\n getInnerHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n inArray\r\n} from \"../core/utils/array\";\r\nimport {\r\n pairToObject\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n fitIntoRange\r\n} from \"../core/utils/math\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isWindow\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../events/drag\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nvar RESIZABLE = \"dxResizable\";\r\nvar RESIZABLE_CLASS = \"dx-resizable\";\r\nvar RESIZABLE_RESIZING_CLASS = \"dx-resizable-resizing\";\r\nvar RESIZABLE_HANDLE_CLASS = \"dx-resizable-handle\";\r\nvar RESIZABLE_HANDLE_TOP_CLASS = \"dx-resizable-handle-top\";\r\nvar RESIZABLE_HANDLE_BOTTOM_CLASS = \"dx-resizable-handle-bottom\";\r\nvar RESIZABLE_HANDLE_LEFT_CLASS = \"dx-resizable-handle-left\";\r\nvar RESIZABLE_HANDLE_RIGHT_CLASS = \"dx-resizable-handle-right\";\r\nvar RESIZABLE_HANDLE_CORNER_CLASS = \"dx-resizable-handle-corner\";\r\nvar DRAGSTART_START_EVENT_NAME = addNamespace(dragEventStart, RESIZABLE);\r\nvar DRAGSTART_EVENT_NAME = addNamespace(dragEventMove, RESIZABLE);\r\nvar DRAGSTART_END_EVENT_NAME = addNamespace(dragEventEnd, RESIZABLE);\r\nvar SIDE_BORDER_WIDTH_STYLES = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\nvar Resizable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n handles: \"all\",\r\n step: \"1\",\r\n stepPrecision: \"simple\",\r\n area: void 0,\r\n minWidth: 30,\r\n maxWidth: 1 / 0,\r\n minHeight: 30,\r\n maxHeight: 1 / 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n roundStepValue: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RESIZABLE_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderHandles()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderActions()\r\n },\r\n _renderActions: function() {\r\n this._resizeStartAction = this._createActionByOption(\"onResizeStart\");\r\n this._resizeEndAction = this._createActionByOption(\"onResizeEnd\");\r\n this._resizeAction = this._createActionByOption(\"onResize\")\r\n },\r\n _renderHandles: function() {\r\n this._handles = [];\r\n var handles = this.option(\"handles\");\r\n if (\"none\" === handles) {\r\n return\r\n }\r\n var directions = \"all\" === handles ? [\"top\", \"bottom\", \"left\", \"right\"] : handles.split(\" \");\r\n each(directions, (index, handleName) => {\r\n this._renderHandle(handleName)\r\n });\r\n inArray(\"bottom\", directions) + 1 && inArray(\"right\", directions) + 1 && this._renderHandle(\"corner-bottom-right\");\r\n inArray(\"bottom\", directions) + 1 && inArray(\"left\", directions) + 1 && this._renderHandle(\"corner-bottom-left\");\r\n inArray(\"top\", directions) + 1 && inArray(\"right\", directions) + 1 && this._renderHandle(\"corner-top-right\");\r\n inArray(\"top\", directions) + 1 && inArray(\"left\", directions) + 1 && this._renderHandle(\"corner-top-left\");\r\n this._attachEventHandlers()\r\n },\r\n _renderHandle: function(handleName) {\r\n var $handle = $(\"
\").addClass(RESIZABLE_HANDLE_CLASS).addClass(RESIZABLE_HANDLE_CLASS + \"-\" + handleName).appendTo(this.$element());\r\n this._handles.push($handle)\r\n },\r\n _attachEventHandlers: function() {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var handlers = {};\r\n handlers[DRAGSTART_START_EVENT_NAME] = this._dragStartHandler.bind(this);\r\n handlers[DRAGSTART_EVENT_NAME] = this._dragHandler.bind(this);\r\n handlers[DRAGSTART_END_EVENT_NAME] = this._dragEndHandler.bind(this);\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.on(handleElement, handlers, {\r\n direction: \"both\",\r\n immediate: true\r\n })\r\n })\r\n },\r\n _detachEventHandlers: function() {\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.off(handleElement)\r\n })\r\n },\r\n _toggleEventHandlers: function(shouldAttachEvents) {\r\n shouldAttachEvents ? this._attachEventHandlers() : this._detachEventHandlers()\r\n },\r\n _dragStartHandler: function(e) {\r\n var $element = this.$element();\r\n if ($element.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n this._toggleResizingClass(true);\r\n this._movingSides = this._getMovingSides(e);\r\n this._elementLocation = locate($element);\r\n var elementRect = getBoundingRect($element.get(0));\r\n this._elementSize = {\r\n width: elementRect.width,\r\n height: elementRect.height\r\n };\r\n this._renderDragOffsets(e);\r\n this._resizeStartAction({\r\n event: e,\r\n width: this._elementSize.width,\r\n height: this._elementSize.height,\r\n handles: this._movingSides\r\n });\r\n e.targetElements = null\r\n },\r\n _toggleResizingClass: function(value) {\r\n this.$element().toggleClass(RESIZABLE_RESIZING_CLASS, value)\r\n },\r\n _renderDragOffsets: function(e) {\r\n var area = this._getArea();\r\n if (!area) {\r\n return\r\n }\r\n var $handle = $(e.target).closest(\".\" + RESIZABLE_HANDLE_CLASS);\r\n var handleWidth = getOuterWidth($handle);\r\n var handleHeight = getOuterHeight($handle);\r\n var handleOffset = $handle.offset();\r\n var areaOffset = area.offset;\r\n var scrollOffset = this._getAreaScrollOffset();\r\n e.maxLeftOffset = handleOffset.left - areaOffset.left - scrollOffset.scrollX;\r\n e.maxRightOffset = areaOffset.left + area.width - handleOffset.left - handleWidth + scrollOffset.scrollX;\r\n e.maxTopOffset = handleOffset.top - areaOffset.top - scrollOffset.scrollY;\r\n e.maxBottomOffset = areaOffset.top + area.height - handleOffset.top - handleHeight + scrollOffset.scrollY\r\n },\r\n _getBorderWidth: function($element, direction) {\r\n if (isWindow($element.get(0))) {\r\n return 0\r\n }\r\n var borderWidth = $element.css(SIDE_BORDER_WIDTH_STYLES[direction]);\r\n return parseInt(borderWidth) || 0\r\n },\r\n _dragHandler: function(e) {\r\n var $element = this.$element();\r\n var sides = this._movingSides;\r\n var location = this._elementLocation;\r\n var size = this._elementSize;\r\n var offset = this._getOffset(e);\r\n var width = size.width + offset.x * (sides.left ? -1 : 1);\r\n var height = size.height + offset.y * (sides.top ? -1 : 1);\r\n if (offset.x || \"strict\" === this.option(\"stepPrecision\")) {\r\n this._renderWidth(width)\r\n }\r\n if (offset.y || \"strict\" === this.option(\"stepPrecision\")) {\r\n this._renderHeight(height)\r\n }\r\n var elementRect = getBoundingRect($element.get(0));\r\n var offsetTop = offset.y - ((elementRect.height || height) - height);\r\n var offsetLeft = offset.x - ((elementRect.width || width) - width);\r\n move($element, {\r\n top: location.top + (sides.top ? offsetTop : 0),\r\n left: location.left + (sides.left ? offsetLeft : 0)\r\n });\r\n this._resizeAction({\r\n event: e,\r\n width: this.option(\"width\") || width,\r\n height: this.option(\"height\") || height,\r\n handles: this._movingSides\r\n });\r\n triggerResizeEvent($element)\r\n },\r\n _getOffset: function(e) {\r\n var offset = e.offset;\r\n var steps = pairToObject(this.option(\"step\"), !this.option(\"roundStepValue\"));\r\n var sides = this._getMovingSides(e);\r\n var strictPrecision = \"strict\" === this.option(\"stepPrecision\");\r\n if (!sides.left && !sides.right) {\r\n offset.x = 0\r\n }\r\n if (!sides.top && !sides.bottom) {\r\n offset.y = 0\r\n }\r\n return strictPrecision ? this._getStrictOffset(offset, steps, sides) : this._getSimpleOffset(offset, steps)\r\n },\r\n _getSimpleOffset: function(offset, steps) {\r\n return {\r\n x: offset.x - offset.x % steps.h,\r\n y: offset.y - offset.y % steps.v\r\n }\r\n },\r\n _getStrictOffset: function(offset, steps, sides) {\r\n var location = this._elementLocation;\r\n var size = this._elementSize;\r\n var xPos = sides.left ? location.left : location.left + size.width;\r\n var yPos = sides.top ? location.top : location.top + size.height;\r\n var newXShift = (xPos + offset.x) % steps.h;\r\n var newYShift = (yPos + offset.y) % steps.v;\r\n var sign = Math.sign || (x => {\r\n x = +x;\r\n if (0 === x || isNaN(x)) {\r\n return x\r\n }\r\n return x > 0 ? 1 : -1\r\n });\r\n var separatorOffset = (steps, offset) => (1 + .2 * sign(offset)) % 1 * steps;\r\n var isSmallOffset = (offset, steps) => Math.abs(offset) < .2 * steps;\r\n var newOffsetX = offset.x - newXShift;\r\n var newOffsetY = offset.y - newYShift;\r\n if (newXShift > separatorOffset(steps.h, offset.x)) {\r\n newOffsetX += steps.h\r\n }\r\n if (newYShift > separatorOffset(steps.v, offset.y)) {\r\n newOffsetY += steps.v\r\n }\r\n return {\r\n x: (sides.left || sides.right) && !isSmallOffset(offset.x, steps.h) ? newOffsetX : 0,\r\n y: (sides.top || sides.bottom) && !isSmallOffset(offset.y, steps.v) ? newOffsetY : 0\r\n }\r\n },\r\n _getMovingSides: function(e) {\r\n var $target = $(e.target);\r\n var hasCornerTopLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-left\");\r\n var hasCornerTopRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-right\");\r\n var hasCornerBottomLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-left\");\r\n var hasCornerBottomRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-right\");\r\n return {\r\n top: $target.hasClass(RESIZABLE_HANDLE_TOP_CLASS) || hasCornerTopLeftClass || hasCornerTopRightClass,\r\n left: $target.hasClass(RESIZABLE_HANDLE_LEFT_CLASS) || hasCornerTopLeftClass || hasCornerBottomLeftClass,\r\n bottom: $target.hasClass(RESIZABLE_HANDLE_BOTTOM_CLASS) || hasCornerBottomLeftClass || hasCornerBottomRightClass,\r\n right: $target.hasClass(RESIZABLE_HANDLE_RIGHT_CLASS) || hasCornerTopRightClass || hasCornerBottomRightClass\r\n }\r\n },\r\n _getArea: function() {\r\n var area = this.option(\"area\");\r\n if (isFunction(area)) {\r\n area = area.call(this)\r\n }\r\n if (isPlainObject(area)) {\r\n return this._getAreaFromObject(area)\r\n }\r\n return this._getAreaFromElement(area)\r\n },\r\n _getAreaScrollOffset: function() {\r\n var area = this.option(\"area\");\r\n var isElement = !isFunction(area) && !isPlainObject(area);\r\n var scrollOffset = {\r\n scrollY: 0,\r\n scrollX: 0\r\n };\r\n if (isElement) {\r\n var areaElement = $(area)[0];\r\n if (isWindow(areaElement)) {\r\n scrollOffset.scrollX = areaElement.pageXOffset;\r\n scrollOffset.scrollY = areaElement.pageYOffset\r\n }\r\n }\r\n return scrollOffset\r\n },\r\n _getAreaFromObject: function(area) {\r\n var result = {\r\n width: area.right - area.left,\r\n height: area.bottom - area.top,\r\n offset: {\r\n left: area.left,\r\n top: area.top\r\n }\r\n };\r\n this._correctAreaGeometry(result);\r\n return result\r\n },\r\n _getAreaFromElement: function(area) {\r\n var $area = $(area);\r\n var result;\r\n if ($area.length) {\r\n result = {\r\n width: getInnerWidth($area),\r\n height: getInnerHeight($area),\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, isWindow($area[0]) ? {} : $area.offset())\r\n };\r\n this._correctAreaGeometry(result, $area)\r\n }\r\n return result\r\n },\r\n _correctAreaGeometry: function(result, $area) {\r\n var areaBorderLeft = $area ? this._getBorderWidth($area, \"left\") : 0;\r\n var areaBorderTop = $area ? this._getBorderWidth($area, \"top\") : 0;\r\n result.offset.left += areaBorderLeft + this._getBorderWidth(this.$element(), \"left\");\r\n result.offset.top += areaBorderTop + this._getBorderWidth(this.$element(), \"top\");\r\n result.width -= getOuterWidth(this.$element()) - getInnerWidth(this.$element());\r\n result.height -= getOuterHeight(this.$element()) - getInnerHeight(this.$element())\r\n },\r\n _dragEndHandler: function(e) {\r\n var $element = this.$element();\r\n this._resizeEndAction({\r\n event: e,\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element),\r\n handles: this._movingSides\r\n });\r\n this._toggleResizingClass(false)\r\n },\r\n _renderWidth: function(width) {\r\n this.option(\"width\", fitIntoRange(width, this.option(\"minWidth\"), this.option(\"maxWidth\")))\r\n },\r\n _renderHeight: function(height) {\r\n this.option(\"height\", fitIntoRange(height, this.option(\"minHeight\"), this.option(\"maxHeight\")))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n this._toggleEventHandlers(!args.value);\r\n this.callBase(args);\r\n break;\r\n case \"handles\":\r\n this._invalidate();\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n hasWindow() && this._renderWidth(getOuterWidth(this.$element()));\r\n break;\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n hasWindow() && this._renderHeight(getOuterHeight(this.$element()));\r\n break;\r\n case \"onResize\":\r\n case \"onResizeStart\":\r\n case \"onResizeEnd\":\r\n this._renderActions();\r\n break;\r\n case \"area\":\r\n case \"stepPrecision\":\r\n case \"step\":\r\n case \"roundStepValue\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.$element().find(\".\" + RESIZABLE_HANDLE_CLASS).remove()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(RESIZABLE, Resizable);\r\nexport default Resizable;\r\n","/**\r\n * DevExtreme (esm/ui/overlay/overlay_drag.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getOffset,\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n start as dragStartEvent,\r\n move as dragMoveEvent,\r\n end as dragEndEvent\r\n} from \"../../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nvar KEYBOARD_DRAG_STEP = 5;\r\nclass OverlayDrag {\r\n constructor(config) {\r\n this.init(config)\r\n }\r\n init(_ref) {\r\n var {\r\n dragEnabled: dragEnabled,\r\n handle: handle,\r\n draggableElement: draggableElement,\r\n positionController: positionController\r\n } = _ref;\r\n this._positionController = positionController;\r\n this._draggableElement = draggableElement;\r\n this._handle = handle;\r\n this._dragEnabled = dragEnabled;\r\n this.unsubscribe();\r\n if (!dragEnabled) {\r\n return\r\n }\r\n this.subscribe()\r\n }\r\n moveDown(e) {\r\n this._moveTo(KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveUp(e) {\r\n this._moveTo(-KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveLeft(e) {\r\n this._moveTo(0, -KEYBOARD_DRAG_STEP, e)\r\n }\r\n moveRight(e) {\r\n this._moveTo(0, KEYBOARD_DRAG_STEP, e)\r\n }\r\n subscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.on(this._handle, eventNames.startEventName, e => {\r\n this._dragStartHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.updateEventName, e => {\r\n this._dragUpdateHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.endEventName, e => {\r\n this._dragEndHandler(e)\r\n })\r\n }\r\n unsubscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.off(this._handle, eventNames.startEventName);\r\n eventsEngine.off(this._handle, eventNames.updateEventName);\r\n eventsEngine.off(this._handle, eventNames.endEventName)\r\n }\r\n _getEventNames() {\r\n var startEventName = addNamespace(dragStartEvent, \"overlayDrag\");\r\n var updateEventName = addNamespace(dragMoveEvent, \"overlayDrag\");\r\n var endEventName = addNamespace(dragEndEvent, \"overlayDrag\");\r\n return {\r\n startEventName: startEventName,\r\n updateEventName: updateEventName,\r\n endEventName: endEventName\r\n }\r\n }\r\n _dragStartHandler(e) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n this._prevOffset = {\r\n x: 0,\r\n y: 0\r\n };\r\n e.targetElements = [];\r\n e.maxTopOffset = allowedOffsets.top;\r\n e.maxBottomOffset = allowedOffsets.bottom;\r\n e.maxLeftOffset = allowedOffsets.left;\r\n e.maxRightOffset = allowedOffsets.right\r\n }\r\n _dragUpdateHandler(e) {\r\n var targetOffset = {\r\n top: e.offset.y - this._prevOffset.y,\r\n left: e.offset.x - this._prevOffset.x\r\n };\r\n this._moveByOffset(targetOffset);\r\n this._prevOffset = e.offset\r\n }\r\n _dragEndHandler(event) {\r\n this._positionController.dragHandled();\r\n this._positionController.detectVisualPositionChange(event)\r\n }\r\n _moveTo(top, left, e) {\r\n if (!this._dragEnabled) {\r\n return\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var offset = this._fitOffsetIntoAllowedRange(top, left);\r\n this._moveByOffset(offset);\r\n this._dragEndHandler(e)\r\n }\r\n _fitOffsetIntoAllowedRange(top, left) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n return {\r\n top: fitIntoRange(top, -allowedOffsets.top, allowedOffsets.bottom),\r\n left: fitIntoRange(left, -allowedOffsets.left, allowedOffsets.right)\r\n }\r\n }\r\n _getContainerDimensions() {\r\n var document = domAdapter.getDocument();\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n var containerWidth = getOuterWidth(container);\r\n var containerHeight = getOuterHeight(container);\r\n if (isWindow(container)) {\r\n containerHeight = Math.max(document.body.clientHeight, containerHeight);\r\n containerWidth = Math.max(document.body.clientWidth, containerWidth)\r\n }\r\n return {\r\n width: containerWidth,\r\n height: containerHeight\r\n }\r\n }\r\n _getContainerPosition() {\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n return isWindow(container) ? {\r\n top: 0,\r\n left: 0\r\n } : getOffset(container)\r\n }\r\n _getElementPosition() {\r\n return getOffset(this._draggableElement)\r\n }\r\n _getInnerDelta() {\r\n var containerDimensions = this._getContainerDimensions();\r\n var elementDimensions = this._getElementDimensions();\r\n return {\r\n x: containerDimensions.width - elementDimensions.width,\r\n y: containerDimensions.height - elementDimensions.height\r\n }\r\n }\r\n _getOuterDelta() {\r\n var {\r\n width: width,\r\n height: height\r\n } = this._getElementDimensions();\r\n var outsideDragFactor = this._positionController.outsideDragFactor;\r\n return {\r\n x: width * outsideDragFactor,\r\n y: height * outsideDragFactor\r\n }\r\n }\r\n _getFullDelta() {\r\n var fullDelta = this._getInnerDelta();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n x: fullDelta.x + outerDelta.x,\r\n y: fullDelta.y + outerDelta.y\r\n }\r\n }\r\n _getElementDimensions() {\r\n return {\r\n width: this._draggableElement.offsetWidth,\r\n height: this._draggableElement.offsetHeight\r\n }\r\n }\r\n _getAllowedOffsets() {\r\n var fullDelta = this._getFullDelta();\r\n var isDragAllowed = fullDelta.y >= 0 && fullDelta.x >= 0;\r\n if (!isDragAllowed) {\r\n return {\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0\r\n }\r\n }\r\n var elementPosition = this._getElementPosition();\r\n var containerPosition = this._getContainerPosition();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n top: elementPosition.top - containerPosition.top + outerDelta.y,\r\n bottom: -elementPosition.top + containerPosition.top + fullDelta.y,\r\n left: elementPosition.left - containerPosition.left + outerDelta.x,\r\n right: -elementPosition.left + containerPosition.left + fullDelta.x\r\n }\r\n }\r\n _moveByOffset(offset) {\r\n var currentPosition = locate(this._draggableElement);\r\n var newPosition = {\r\n left: currentPosition.left + offset.left,\r\n top: currentPosition.top + offset.top\r\n };\r\n move(this._draggableElement, newPosition)\r\n }\r\n}\r\nexport default OverlayDrag;\r\n","/**\r\n * DevExtreme (esm/ui/overlay/z_index.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nvar baseZIndex = 1500;\r\nvar zIndexStack = [];\r\nexport var base = ZIndex => {\r\n baseZIndex = ensureDefined(ZIndex, baseZIndex);\r\n return baseZIndex\r\n};\r\nexport var create = function() {\r\n var baseIndex = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : baseZIndex;\r\n var length = zIndexStack.length;\r\n var index = (length ? zIndexStack[length - 1] : baseIndex) + 1;\r\n zIndexStack.push(index);\r\n return index\r\n};\r\nexport var remove = zIndex => {\r\n var position = zIndexStack.indexOf(zIndex);\r\n if (position >= 0) {\r\n zIndexStack.splice(position, 1)\r\n }\r\n};\r\nexport var clearStack = () => {\r\n zIndexStack = []\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/overlay/ui.overlay.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getOuterWidth,\r\n getOuterHeight,\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport fx from \"../../animation/fx\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n contains,\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isPlainObject,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n changeCallback\r\n} from \"../../core/utils/view_port\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport errors from \"../../core/errors\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n move as dragEventMove\r\n} from \"../../events/drag\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n keyboard\r\n} from \"../../events/short\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n triggerHidingEvent,\r\n triggerResizeEvent,\r\n triggerShownEvent\r\n} from \"../../events/visibility_change\";\r\nimport {\r\n hideCallback as hideTopOverlayCallback\r\n} from \"../../mobile/hide_callback\";\r\nimport Resizable from \"../resizable\";\r\nimport OverlayDrag from \"./overlay_drag\";\r\nimport {\r\n tabbable\r\n} from \"../widget/selectors\";\r\nimport swatch from \"../widget/swatch_container\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport * as zIndexPool from \"./z_index\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nimport {\r\n OverlayPositionController,\r\n OVERLAY_POSITION_ALIASES\r\n} from \"./overlay_position_controller\";\r\nvar ready = readyCallbacks.add;\r\nvar window = getWindow();\r\nvar viewPortChanged = changeCallback;\r\nvar OVERLAY_CLASS = \"dx-overlay\";\r\nvar OVERLAY_WRAPPER_CLASS = \"dx-overlay-wrapper\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nvar OVERLAY_SHADER_CLASS = \"dx-overlay-shader\";\r\nvar OVERLAY_MODAL_CLASS = \"dx-overlay-modal\";\r\nvar INNER_OVERLAY_CLASS = \"dx-inner-overlay\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar RTL_DIRECTION_CLASS = \"dx-rtl\";\r\nvar ACTIONS = [\"onShowing\", \"onShown\", \"onHiding\", \"onHidden\", \"onPositioned\", \"onResizeStart\", \"onResize\", \"onResizeEnd\", \"onVisualPositionChanged\"];\r\nvar OVERLAY_STACK = [];\r\nvar PREVENT_SAFARI_SCROLLING_CLASS = \"dx-prevent-safari-scrolling\";\r\nvar TAB_KEY = \"tab\";\r\nready(() => {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), pointerEvents.down, e => {\r\n for (var i = OVERLAY_STACK.length - 1; i >= 0; i--) {\r\n if (!OVERLAY_STACK[i]._proxiedDocumentDownHandler(e)) {\r\n return\r\n }\r\n }\r\n })\r\n});\r\nvar Overlay = Widget.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n escape: function() {\r\n this.hide()\r\n },\r\n upArrow: e => {\r\n this._drag.moveUp(e)\r\n },\r\n downArrow: e => {\r\n this._drag.moveDown(e)\r\n },\r\n leftArrow: e => {\r\n this._drag.moveLeft(e)\r\n },\r\n rightArrow: e => {\r\n this._drag.moveRight(e)\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n activeStateEnabled: false,\r\n visible: false,\r\n deferRendering: true,\r\n shading: true,\r\n shadingColor: \"\",\r\n wrapperAttr: {},\r\n position: extend({}, OVERLAY_POSITION_ALIASES.center),\r\n width: \"80vw\",\r\n minWidth: null,\r\n maxWidth: null,\r\n height: \"80vh\",\r\n minHeight: null,\r\n maxHeight: null,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 300,\r\n from: {\r\n scale: .55\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 300,\r\n to: {\r\n opacity: 0,\r\n scale: .55\r\n },\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n }\r\n }\r\n },\r\n dragOutsideBoundary: false,\r\n closeOnOutsideClick: false,\r\n copyRootClassesToWrapper: false,\r\n _ignoreCopyRootClassesToWrapperDeprecation: false,\r\n onShowing: null,\r\n onShown: null,\r\n onHiding: null,\r\n onHidden: null,\r\n contentTemplate: \"content\",\r\n dragEnabled: false,\r\n dragAndResizeArea: void 0,\r\n outsideDragFactor: 0,\r\n resizeEnabled: false,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n innerOverlay: false,\r\n restorePosition: true,\r\n target: void 0,\r\n container: void 0,\r\n hideTopOverlayHandler: () => {\r\n this.hide()\r\n },\r\n hideOnParentScroll: false,\r\n onPositioned: null,\r\n propagateOutsideClick: false,\r\n ignoreChildEvents: true,\r\n _checkParentVisibility: true,\r\n _fixWrapperPosition: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return !hasWindow()\r\n },\r\n options: {\r\n width: null,\r\n height: null,\r\n animation: null,\r\n _checkParentVisibility: false\r\n }\r\n }])\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n animation: true\r\n })\r\n },\r\n $wrapper: function() {\r\n return this._$wrapper\r\n },\r\n _eventBindingTarget: function() {\r\n return this._$content\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n elementAttr: {\r\n since: \"21.2\",\r\n message: 'Use the \"wrapperAttr\" option instead'\r\n }\r\n })\r\n },\r\n ctor: function(element, options) {\r\n this.callBase(element, options);\r\n if (options && options.copyRootClassesToWrapper && !options._ignoreCopyRootClassesToWrapperDeprecation) {\r\n errors.log(\"W0001\", this.NAME, \"copyRootClassesToWrapper\", \"21.2\", 'Use the \"wrapperAttr\" option instead')\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initActions();\r\n this._initCloseOnOutsideClickHandler();\r\n this._initTabTerminatorHandler();\r\n this._customWrapperClass = null;\r\n this._$wrapper = $(\"
\").addClass(OVERLAY_WRAPPER_CLASS);\r\n this._$content = $(\"
\").addClass(OVERLAY_CONTENT_CLASS);\r\n this._initInnerOverlayClass();\r\n var $element = this.$element();\r\n if (this.option(\"copyRootClassesToWrapper\")) {\r\n this._$wrapper.addClass($element.attr(\"class\"))\r\n }\r\n $element.addClass(OVERLAY_CLASS);\r\n this._$wrapper.attr(\"data-bind\", \"dxControlsDescendantBindings: true\");\r\n this._toggleViewPortSubscription(true);\r\n this._initHideTopOverlayHandler(this.option(\"hideTopOverlayHandler\"));\r\n this._parentsScrollSubscriptionInfo = {\r\n handler: e => {\r\n this._targetParentsScrollHandler(e)\r\n }\r\n };\r\n this._updateResizeCallbackSkipCondition();\r\n this.warnPositionAsFunction()\r\n },\r\n warnPositionAsFunction() {\r\n if (isFunction(this.option(\"position\"))) {\r\n errors.log(\"W0018\")\r\n }\r\n },\r\n _initOptions: function(options) {\r\n this._setAnimationTarget(options.target);\r\n this.callBase(options)\r\n },\r\n _initInnerOverlayClass: function() {\r\n this._$content.toggleClass(INNER_OVERLAY_CLASS, this.option(\"innerOverlay\"))\r\n },\r\n _setAnimationTarget: function(target) {\r\n if (!isDefined(target)) {\r\n return\r\n }\r\n var options = this.option();\r\n [\"animation.show.from.position.of\", \"animation.show.to.position.of\", \"animation.hide.from.position.of\", \"animation.hide.to.position.of\"].forEach(path => {\r\n var pathParts = path.split(\".\");\r\n var option = options;\r\n while (option) {\r\n if (1 === pathParts.length) {\r\n if (isPlainObject(option)) {\r\n option[pathParts.shift()] = target\r\n }\r\n break\r\n } else {\r\n option = option[pathParts.shift()]\r\n }\r\n }\r\n })\r\n },\r\n _initHideTopOverlayHandler: function(handler) {\r\n this._hideTopOverlayHandler = handler\r\n },\r\n _initActions: function() {\r\n this._actions = {};\r\n each(ACTIONS, (_, action) => {\r\n this._actions[action] = this._createActionByOption(action, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }) || noop\r\n })\r\n },\r\n _initCloseOnOutsideClickHandler: function() {\r\n var _this = this;\r\n this._proxiedDocumentDownHandler = function() {\r\n return _this._documentDownHandler(...arguments)\r\n }\r\n },\r\n _areContentDimensionsRendered: function(entry) {\r\n var _entry$contentBoxSize, _this$_renderedDimens3, _this$_renderedDimens4;\r\n var contentBox = null === (_entry$contentBoxSize = entry.contentBoxSize) || void 0 === _entry$contentBoxSize ? void 0 : _entry$contentBoxSize[0];\r\n if (contentBox) {\r\n var _this$_renderedDimens, _this$_renderedDimens2;\r\n return parseInt(contentBox.inlineSize, 10) === (null === (_this$_renderedDimens = this._renderedDimensions) || void 0 === _this$_renderedDimens ? void 0 : _this$_renderedDimens.width) && parseInt(contentBox.blockSize, 10) === (null === (_this$_renderedDimens2 = this._renderedDimensions) || void 0 === _this$_renderedDimens2 ? void 0 : _this$_renderedDimens2.height)\r\n }\r\n var contentRect = entry.contentRect;\r\n return parseInt(contentRect.width, 10) === (null === (_this$_renderedDimens3 = this._renderedDimensions) || void 0 === _this$_renderedDimens3 ? void 0 : _this$_renderedDimens3.width) && parseInt(contentRect.height, 10) === (null === (_this$_renderedDimens4 = this._renderedDimensions) || void 0 === _this$_renderedDimens4 ? void 0 : _this$_renderedDimens4.height)\r\n },\r\n _contentResizeHandler: function(entry) {\r\n if (!this._shouldSkipContentResize(entry)) {\r\n this._renderGeometry({\r\n shouldOnlyReposition: true\r\n })\r\n }\r\n },\r\n _updateResizeCallbackSkipCondition() {\r\n var doesShowAnimationChangeDimensions = this._doesShowAnimationChangeDimensions();\r\n this._shouldSkipContentResize = entry => doesShowAnimationChangeDimensions && this._showAnimationProcessing || this._areContentDimensionsRendered(entry)\r\n },\r\n _doesShowAnimationChangeDimensions: function() {\r\n var animation = this.option(\"animation\");\r\n return [\"to\", \"from\"].some(prop => {\r\n var _animation$show;\r\n var config = null === animation || void 0 === animation ? void 0 : null === (_animation$show = animation.show) || void 0 === _animation$show ? void 0 : _animation$show[prop];\r\n return isObject(config) && (\"width\" in config || \"height\" in config)\r\n })\r\n },\r\n _observeContentResize: function(shouldObserve) {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n var contentElement = this._$content.get(0);\r\n if (shouldObserve) {\r\n resizeObserverSingleton.observe(contentElement, entry => {\r\n this._contentResizeHandler(entry)\r\n })\r\n } else {\r\n resizeObserverSingleton.unobserve(contentElement)\r\n }\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderWrapperAttributes();\r\n this._initPositionController()\r\n },\r\n _documentDownHandler: function(e) {\r\n if (this._showAnimationProcessing) {\r\n this._stopAnimation()\r\n }\r\n var closeOnOutsideClick = this.option(\"closeOnOutsideClick\");\r\n if (isFunction(closeOnOutsideClick)) {\r\n closeOnOutsideClick = closeOnOutsideClick(e)\r\n }\r\n var isAttachedTarget = $(window.document).is(e.target) || contains(window.document, e.target);\r\n var isInnerOverlay = $(e.target).closest(\".\".concat(INNER_OVERLAY_CLASS)).length;\r\n var outsideClick = isAttachedTarget && !isInnerOverlay && !(this._$content.is(e.target) || contains(this._$content.get(0), e.target));\r\n if (outsideClick && closeOnOutsideClick) {\r\n this._outsideClickHandler(e)\r\n }\r\n return this.option(\"propagateOutsideClick\")\r\n },\r\n _outsideClickHandler(e) {\r\n if (this.option(\"shading\")) {\r\n e.preventDefault()\r\n }\r\n this.hide()\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new EmptyTemplate\r\n });\r\n this.callBase()\r\n },\r\n _isTopOverlay: function() {\r\n var overlayStack = this._overlayStack();\r\n for (var i = overlayStack.length - 1; i >= 0; i--) {\r\n var tabbableElements = overlayStack[i]._findTabbableBounds();\r\n if (tabbableElements.first || tabbableElements.last) {\r\n return overlayStack[i] === this\r\n }\r\n }\r\n return false\r\n },\r\n _overlayStack: function() {\r\n return OVERLAY_STACK\r\n },\r\n _zIndexInitValue: function() {\r\n return Overlay.baseZIndex()\r\n },\r\n _toggleViewPortSubscription: function(toggle) {\r\n var _this2 = this;\r\n viewPortChanged.remove(this._viewPortChangeHandle);\r\n if (toggle) {\r\n this._viewPortChangeHandle = function() {\r\n _this2._viewPortChangeHandler(...arguments)\r\n };\r\n viewPortChanged.add(this._viewPortChangeHandle)\r\n }\r\n },\r\n _viewPortChangeHandler: function() {\r\n this._positionController.updateContainer(this.option(\"container\"));\r\n this._refresh()\r\n },\r\n _renderWrapperAttributes() {\r\n var {\r\n wrapperAttr: wrapperAttr\r\n } = this.option();\r\n var attributes = extend({}, wrapperAttr);\r\n var classNames = attributes.class;\r\n delete attributes.class;\r\n this.$wrapper().attr(attributes).removeClass(this._customWrapperClass).addClass(classNames);\r\n this._customWrapperClass = classNames\r\n },\r\n _renderVisibilityAnimate: function(visible) {\r\n this._observeContentResize(visible);\r\n this._stopAnimation();\r\n return visible ? this._show() : this._hide()\r\n },\r\n _getAnimationConfig: function() {\r\n return this._getOptionValue(\"animation\", this)\r\n },\r\n _animateShowing: function() {\r\n var _this$_getAnimationCo, _showAnimation$start, _showAnimation$comple, _this3 = this;\r\n var animation = null !== (_this$_getAnimationCo = this._getAnimationConfig()) && void 0 !== _this$_getAnimationCo ? _this$_getAnimationCo : {};\r\n var showAnimation = this._normalizeAnimation(animation.show, \"to\");\r\n var startShowAnimation = null !== (_showAnimation$start = null === showAnimation || void 0 === showAnimation ? void 0 : showAnimation.start) && void 0 !== _showAnimation$start ? _showAnimation$start : noop;\r\n var completeShowAnimation = null !== (_showAnimation$comple = null === showAnimation || void 0 === showAnimation ? void 0 : showAnimation.complete) && void 0 !== _showAnimation$comple ? _showAnimation$comple : noop;\r\n this._animate(showAnimation, (function() {\r\n if (_this3._isAnimationPaused) {\r\n return\r\n }\r\n if (_this3.option(\"focusStateEnabled\")) {\r\n eventsEngine.trigger(_this3._focusTarget(), \"focus\")\r\n }\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n completeShowAnimation.call(_this3, ...args);\r\n _this3._showAnimationProcessing = false;\r\n _this3._isHidden = false;\r\n _this3._actions.onShown();\r\n _this3._toggleSafariScrolling();\r\n _this3._showingDeferred.resolve()\r\n }), (function() {\r\n if (_this3._isAnimationPaused) {\r\n return\r\n }\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n startShowAnimation.call(_this3, ...args);\r\n _this3._showAnimationProcessing = true\r\n }))\r\n },\r\n _show: function() {\r\n this._showingDeferred = new Deferred;\r\n this._parentHidden = this._isParentHidden();\r\n this._showingDeferred.done(() => {\r\n delete this._parentHidden\r\n });\r\n if (this._parentHidden) {\r\n this._isHidden = true;\r\n return this._showingDeferred.resolve()\r\n }\r\n if (this._currentVisible) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n this._currentVisible = true;\r\n if (this._isHidingActionCanceled) {\r\n delete this._isHidingActionCanceled;\r\n this._showingDeferred.resolve()\r\n } else {\r\n var show = () => {\r\n this._renderVisibility(true);\r\n if (this._isShowingActionCanceled) {\r\n delete this._isShowingActionCanceled;\r\n this._showingDeferred.resolve();\r\n return\r\n }\r\n this._animateShowing()\r\n };\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._stopShowTimer();\r\n this._asyncShowTimeout = setTimeout(show)\r\n } else {\r\n show()\r\n }\r\n }\r\n return this._showingDeferred.promise()\r\n },\r\n _normalizeAnimation: function(animation, prop) {\r\n if (animation) {\r\n animation = extend({\r\n type: \"slide\",\r\n skipElementInitialStyles: true\r\n }, animation);\r\n if (animation[prop] && \"object\" === typeof animation[prop]) {\r\n extend(animation[prop], {\r\n position: this._positionController._position\r\n })\r\n }\r\n }\r\n return animation\r\n },\r\n _animateHiding: function() {\r\n var _this$_getAnimationCo2, _hideAnimation$start, _hideAnimation$comple, _this4 = this;\r\n var animation = null !== (_this$_getAnimationCo2 = this._getAnimationConfig()) && void 0 !== _this$_getAnimationCo2 ? _this$_getAnimationCo2 : {};\r\n var hideAnimation = this._normalizeAnimation(animation.hide, \"from\");\r\n var startHideAnimation = null !== (_hideAnimation$start = null === hideAnimation || void 0 === hideAnimation ? void 0 : hideAnimation.start) && void 0 !== _hideAnimation$start ? _hideAnimation$start : noop;\r\n var completeHideAnimation = null !== (_hideAnimation$comple = null === hideAnimation || void 0 === hideAnimation ? void 0 : hideAnimation.complete) && void 0 !== _hideAnimation$comple ? _hideAnimation$comple : noop;\r\n this._animate(hideAnimation, (function() {\r\n var _this4$_actions;\r\n _this4._$content.css(\"pointerEvents\", \"\");\r\n _this4._renderVisibility(false);\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n completeHideAnimation.call(_this4, ...args);\r\n _this4._hideAnimationProcessing = false;\r\n null === (_this4$_actions = _this4._actions) || void 0 === _this4$_actions ? void 0 : _this4$_actions.onHidden();\r\n _this4._hidingDeferred.resolve()\r\n }), (function() {\r\n _this4._$content.css(\"pointerEvents\", \"none\");\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n startHideAnimation.call(_this4, ...args);\r\n _this4._hideAnimationProcessing = true\r\n }))\r\n },\r\n _hide: function() {\r\n if (!this._currentVisible) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n this._currentVisible = false;\r\n this._hidingDeferred = new Deferred;\r\n var hidingArgs = {\r\n cancel: false\r\n };\r\n if (this._isShowingActionCanceled) {\r\n this._hidingDeferred.resolve()\r\n } else {\r\n this._actions.onHiding(hidingArgs);\r\n this._toggleSafariScrolling();\r\n if (hidingArgs.cancel) {\r\n this._isHidingActionCanceled = true;\r\n this.option(\"visible\", true);\r\n this._hidingDeferred.resolve()\r\n } else {\r\n this._forceFocusLost();\r\n this._toggleShading(false);\r\n this._toggleSubscriptions(false);\r\n this._stopShowTimer();\r\n this._animateHiding()\r\n }\r\n }\r\n return this._hidingDeferred.promise()\r\n },\r\n _forceFocusLost: function() {\r\n var activeElement = domAdapter.getActiveElement();\r\n var shouldResetActiveElement = !!this._$content.find(activeElement).length;\r\n if (shouldResetActiveElement) {\r\n resetActiveElement()\r\n }\r\n },\r\n _animate: function(animation, completeCallback, startCallback) {\r\n if (animation) {\r\n startCallback = startCallback || animation.start || noop;\r\n fx.animate(this._$content, extend({}, animation, {\r\n start: startCallback,\r\n complete: completeCallback\r\n }))\r\n } else {\r\n completeCallback()\r\n }\r\n },\r\n _stopAnimation: function() {\r\n fx.stop(this._$content, true)\r\n },\r\n _renderVisibility: function(visible) {\r\n if (visible && this._isParentHidden()) {\r\n return\r\n }\r\n this._currentVisible = visible;\r\n this._stopAnimation();\r\n if (!visible) {\r\n triggerHidingEvent(this._$content)\r\n }\r\n this._toggleVisibility(visible);\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, !visible);\r\n this._updateZIndexStackPosition(visible);\r\n if (visible) {\r\n this._positionController.openingHandled();\r\n this._renderContent();\r\n var showingArgs = {\r\n cancel: false\r\n };\r\n this._actions.onShowing(showingArgs);\r\n if (showingArgs.cancel) {\r\n this._toggleVisibility(false);\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, true);\r\n this._updateZIndexStackPosition(false);\r\n this._moveFromContainer();\r\n this._isShowingActionCanceled = true;\r\n this.option(\"visible\", false);\r\n return\r\n }\r\n this._moveToContainer();\r\n this._renderGeometry();\r\n triggerShownEvent(this._$content);\r\n triggerResizeEvent(this._$content)\r\n } else {\r\n this._moveFromContainer()\r\n }\r\n this._toggleShading(visible);\r\n this._toggleSubscriptions(visible)\r\n },\r\n _updateZIndexStackPosition: function(pushToStack) {\r\n var overlayStack = this._overlayStack();\r\n var index = inArray(this, overlayStack);\r\n if (pushToStack) {\r\n if (-1 === index) {\r\n this._zIndex = zIndexPool.create(this._zIndexInitValue());\r\n overlayStack.push(this)\r\n }\r\n this._$wrapper.css(\"zIndex\", this._zIndex);\r\n this._$content.css(\"zIndex\", this._zIndex)\r\n } else if (-1 !== index) {\r\n overlayStack.splice(index, 1);\r\n zIndexPool.remove(this._zIndex)\r\n }\r\n },\r\n _toggleShading: function(visible) {\r\n this._$wrapper.toggleClass(OVERLAY_MODAL_CLASS, this.option(\"shading\") && !this.option(\"container\"));\r\n this._$wrapper.toggleClass(OVERLAY_SHADER_CLASS, visible && this.option(\"shading\"));\r\n this._$wrapper.css(\"backgroundColor\", this.option(\"shading\") ? this.option(\"shadingColor\") : \"\");\r\n this._toggleTabTerminator(visible && this.option(\"shading\"))\r\n },\r\n _initTabTerminatorHandler: function() {\r\n var _this5 = this;\r\n this._proxiedTabTerminatorHandler = function() {\r\n _this5._tabKeyHandler(...arguments)\r\n }\r\n },\r\n _toggleTabTerminator: function(enabled) {\r\n var eventName = addNamespace(\"keydown\", this.NAME);\r\n if (enabled) {\r\n eventsEngine.on(domAdapter.getDocument(), eventName, this._proxiedTabTerminatorHandler)\r\n } else {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, this._proxiedTabTerminatorHandler)\r\n }\r\n },\r\n _findTabbableBounds: function() {\r\n var $elements = this._$wrapper.find(\"*\");\r\n var elementsCount = $elements.length - 1;\r\n var result = {\r\n first: null,\r\n last: null\r\n };\r\n for (var i = 0; i <= elementsCount; i++) {\r\n if (!result.first && $elements.eq(i).is(tabbable)) {\r\n result.first = $elements.eq(i)\r\n }\r\n if (!result.last && $elements.eq(elementsCount - i).is(tabbable)) {\r\n result.last = $elements.eq(elementsCount - i)\r\n }\r\n if (result.first && result.last) {\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _tabKeyHandler: function(e) {\r\n if (normalizeKeyName(e) !== TAB_KEY || !this._isTopOverlay()) {\r\n return\r\n }\r\n var tabbableElements = this._findTabbableBounds();\r\n var $firstTabbable = tabbableElements.first;\r\n var $lastTabbable = tabbableElements.last;\r\n var isTabOnLast = !e.shiftKey && e.target === $lastTabbable.get(0);\r\n var isShiftTabOnFirst = e.shiftKey && e.target === $firstTabbable.get(0);\r\n var isEmptyTabList = 0 === tabbableElements.length;\r\n var isOutsideTarget = !contains(this._$wrapper.get(0), e.target);\r\n if (isTabOnLast || isShiftTabOnFirst || isEmptyTabList || isOutsideTarget) {\r\n e.preventDefault();\r\n var $focusElement = e.shiftKey ? $lastTabbable : $firstTabbable;\r\n eventsEngine.trigger($focusElement, \"focusin\");\r\n eventsEngine.trigger($focusElement, \"focus\")\r\n }\r\n },\r\n _toggleSubscriptions: function(enabled) {\r\n if (hasWindow()) {\r\n this._toggleHideTopOverlayCallback(enabled);\r\n this._toggleParentsScrollSubscription(enabled)\r\n }\r\n },\r\n _toggleHideTopOverlayCallback: function(subscribe) {\r\n if (!this._hideTopOverlayHandler) {\r\n return\r\n }\r\n if (subscribe) {\r\n hideTopOverlayCallback.add(this._hideTopOverlayHandler)\r\n } else {\r\n hideTopOverlayCallback.remove(this._hideTopOverlayHandler)\r\n }\r\n },\r\n _toggleParentsScrollSubscription: function(needSubscribe) {\r\n var _this$_parentsScrollS;\r\n var scrollEvent = addNamespace(\"scroll\", this.NAME);\r\n var {\r\n prevTargets: prevTargets,\r\n handler: handler\r\n } = null !== (_this$_parentsScrollS = this._parentsScrollSubscriptionInfo) && void 0 !== _this$_parentsScrollS ? _this$_parentsScrollS : {};\r\n eventsEngine.off(prevTargets, scrollEvent, handler);\r\n var closeOnScroll = this.option(\"hideOnParentScroll\");\r\n if (needSubscribe && closeOnScroll) {\r\n var $parents = this._$wrapper.parents();\r\n if (\"desktop\" === devices.real().deviceType) {\r\n $parents = $parents.add(window)\r\n }\r\n eventsEngine.on($parents, scrollEvent, handler);\r\n this._parentsScrollSubscriptionInfo.prevTargets = $parents\r\n }\r\n },\r\n _targetParentsScrollHandler: function(e) {\r\n var closeHandled = false;\r\n var closeOnScroll = this.option(\"hideOnParentScroll\");\r\n if (isFunction(closeOnScroll)) {\r\n closeHandled = closeOnScroll(e)\r\n }\r\n if (!closeHandled && !this._showAnimationProcessing) {\r\n this.hide()\r\n }\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._appendContentToElement();\r\n this._renderVisibilityAnimate(this.option(\"visible\"))\r\n },\r\n _appendContentToElement: function() {\r\n if (!this._$content.parent().is(this.$element())) {\r\n this._$content.appendTo(this.$element())\r\n }\r\n },\r\n _renderContent: function() {\r\n var shouldDeferRendering = !this._currentVisible && this.option(\"deferRendering\");\r\n var isParentHidden = this.option(\"visible\") && this._isParentHidden();\r\n if (isParentHidden) {\r\n this._isHidden = true;\r\n return\r\n }\r\n if (this._contentAlreadyRendered || shouldDeferRendering) {\r\n return\r\n }\r\n this._contentAlreadyRendered = true;\r\n this._appendContentToElement();\r\n this.callBase()\r\n },\r\n _isParentHidden: function() {\r\n if (!this.option(\"_checkParentVisibility\")) {\r\n return false\r\n }\r\n if (void 0 !== this._parentHidden) {\r\n return this._parentHidden\r\n }\r\n var $parent = this.$element().parent();\r\n if ($parent.is(\":visible\")) {\r\n return false\r\n }\r\n var isHidden = false;\r\n $parent.add($parent.parents()).each((function() {\r\n var $element = $(this);\r\n if (\"none\" === $element.css(\"display\")) {\r\n isHidden = true;\r\n return false\r\n }\r\n }));\r\n return isHidden || !domAdapter.getBody().contains($parent.get(0))\r\n },\r\n _renderContentImpl: function() {\r\n var whenContentRendered = new Deferred;\r\n var contentTemplateOption = this.option(\"contentTemplate\");\r\n var contentTemplate = this._getTemplate(contentTemplateOption);\r\n var transclude = this._templateManager.anonymousTemplateName === contentTemplateOption;\r\n contentTemplate && contentTemplate.render({\r\n container: getPublicElement(this.$content()),\r\n noModel: true,\r\n transclude: transclude,\r\n onRendered: () => {\r\n whenContentRendered.resolve()\r\n }\r\n });\r\n this._renderDrag();\r\n this._renderResize();\r\n this._renderScrollTerminator();\r\n whenContentRendered.done(() => {\r\n if (this.option(\"visible\")) {\r\n this._moveToContainer()\r\n }\r\n });\r\n return whenContentRendered.promise()\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n target: target,\r\n container: container,\r\n dragAndResizeArea: dragAndResizeArea,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n outsideDragFactor: outsideDragFactor,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n restorePosition: restorePosition\r\n } = this.option();\r\n return {\r\n target: target,\r\n container: container,\r\n $root: this.$element(),\r\n $content: this._$content,\r\n $wrapper: this._$wrapper,\r\n onPositioned: this._actions.onPositioned,\r\n onVisualPositionChanged: this._actions.onVisualPositionChanged,\r\n restorePosition: restorePosition,\r\n dragAndResizeArea: dragAndResizeArea,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n outsideDragFactor: outsideDragFactor,\r\n _fixWrapperPosition: _fixWrapperPosition\r\n }\r\n },\r\n _initPositionController() {\r\n this._positionController = new OverlayPositionController(this._getPositionControllerConfig())\r\n },\r\n _renderDrag: function() {\r\n var $dragTarget = this._getDragTarget();\r\n if (!$dragTarget) {\r\n return\r\n }\r\n var config = {\r\n dragEnabled: this.option(\"dragEnabled\"),\r\n handle: $dragTarget.get(0),\r\n draggableElement: this._$content.get(0),\r\n positionController: this._positionController\r\n };\r\n if (this._drag) {\r\n this._drag.init(config)\r\n } else {\r\n this._drag = new OverlayDrag(config)\r\n }\r\n },\r\n _renderResize: function() {\r\n this._resizable = this._createComponent(this._$content, Resizable, {\r\n handles: this.option(\"resizeEnabled\") ? \"all\" : \"none\",\r\n onResizeEnd: e => {\r\n this._resizeEndHandler(e);\r\n this._observeContentResize(true)\r\n },\r\n onResize: e => {\r\n this._actions.onResize(e)\r\n },\r\n onResizeStart: e => {\r\n this._observeContentResize(false);\r\n this._actions.onResizeStart(e)\r\n },\r\n minHeight: 100,\r\n minWidth: 100,\r\n area: this._positionController.$dragResizeContainer\r\n })\r\n },\r\n _resizeEndHandler: function(e) {\r\n var width = this._resizable.option(\"width\");\r\n var height = this._resizable.option(\"height\");\r\n width && this._setOptionWithoutOptionChange(\"width\", width);\r\n height && this._setOptionWithoutOptionChange(\"height\", height);\r\n this._cacheDimensions();\r\n this._positionController.resizeHandled();\r\n this._positionController.detectVisualPositionChange(e.event);\r\n this._actions.onResizeEnd(e)\r\n },\r\n _renderScrollTerminator: function() {\r\n var $scrollTerminator = this._$wrapper;\r\n var terminatorEventName = addNamespace(dragEventMove, this.NAME);\r\n eventsEngine.off($scrollTerminator, terminatorEventName);\r\n eventsEngine.on($scrollTerminator, terminatorEventName, {\r\n validate: function() {\r\n return true\r\n },\r\n getDirection: function() {\r\n return \"both\"\r\n },\r\n _toggleGestureCover: function(toggle) {\r\n if (!toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n }\r\n },\r\n _clearSelection: noop,\r\n isNative: true\r\n }, e => {\r\n var originalEvent = e.originalEvent.originalEvent;\r\n var {\r\n type: type\r\n } = originalEvent || {};\r\n var isWheel = \"wheel\" === type;\r\n var isMouseMove = \"mousemove\" === type;\r\n var isScrollByWheel = isWheel && !isCommandKeyPressed(e);\r\n e._cancelPreventDefault = true;\r\n if (originalEvent && false !== e.cancelable && (!isMouseMove && !isWheel || isScrollByWheel)) {\r\n e.preventDefault()\r\n }\r\n })\r\n },\r\n _getDragTarget: function() {\r\n return this.$content()\r\n },\r\n _moveFromContainer: function() {\r\n this._$content.appendTo(this.$element());\r\n this._detachWrapperToContainer()\r\n },\r\n _detachWrapperToContainer: function() {\r\n this._$wrapper.detach()\r\n },\r\n _moveToContainer: function() {\r\n this._attachWrapperToContainer();\r\n this._$content.appendTo(this._$wrapper)\r\n },\r\n _attachWrapperToContainer: function() {\r\n var $element = this.$element();\r\n var containerDefined = void 0 !== this.option(\"container\");\r\n var renderContainer = containerDefined ? this._positionController.$container : swatch.getSwatchContainer($element);\r\n if (renderContainer && renderContainer[0] === $element.parent()[0]) {\r\n renderContainer = $element\r\n }\r\n this._$wrapper.appendTo(renderContainer)\r\n },\r\n _renderGeometry: function(options) {\r\n var {\r\n visible: visible,\r\n useResizeObserver: useResizeObserver\r\n } = this.option();\r\n if (visible && hasWindow()) {\r\n var isAnimated = this._showAnimationProcessing;\r\n var shouldRepeatAnimation = isAnimated && !(null !== options && void 0 !== options && options.forceStopAnimation) && useResizeObserver;\r\n this._isAnimationPaused = shouldRepeatAnimation || void 0;\r\n this._stopAnimation();\r\n if (null !== options && void 0 !== options && options.shouldOnlyReposition) {\r\n this._positionController.positionContent()\r\n } else {\r\n this._renderGeometryImpl()\r\n }\r\n if (shouldRepeatAnimation) {\r\n this._animateShowing();\r\n this._isAnimationPaused = void 0\r\n }\r\n }\r\n },\r\n _cacheDimensions: function() {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n this._renderedDimensions = {\r\n width: parseInt(getWidth(this._$content), 10),\r\n height: parseInt(getHeight(this._$content), 10)\r\n }\r\n },\r\n _renderGeometryImpl: function() {\r\n this._positionController.updatePosition(this._getOptionValue(\"position\"));\r\n this._renderWrapper();\r\n this._renderDimensions();\r\n this._renderPosition();\r\n this._cacheDimensions()\r\n },\r\n _renderPosition() {\r\n this._positionController.positionContent()\r\n },\r\n _isAllWindowCovered: function() {\r\n return this._positionController.isAllWindowCoveredByWrapper() && this.option(\"shading\")\r\n },\r\n _toggleSafariScrolling: function() {\r\n var visible = this.option(\"visible\");\r\n var $body = $(domAdapter.getBody());\r\n var isIosSafari = \"ios\" === devices.real().platform && browser.safari;\r\n var isAllWindowCovered = this._isAllWindowCovered();\r\n var isScrollingPrevented = $body.hasClass(PREVENT_SAFARI_SCROLLING_CLASS);\r\n var shouldPreventScrolling = !isScrollingPrevented && visible && isAllWindowCovered;\r\n var shouldEnableScrolling = isScrollingPrevented && (!visible || !isAllWindowCovered || this._disposed);\r\n if (isIosSafari) {\r\n if (shouldEnableScrolling) {\r\n $body.removeClass(PREVENT_SAFARI_SCROLLING_CLASS);\r\n window.scrollTo(0, this._cachedBodyScrollTop);\r\n this._cachedBodyScrollTop = void 0\r\n } else if (shouldPreventScrolling) {\r\n this._cachedBodyScrollTop = window.pageYOffset;\r\n $body.addClass(PREVENT_SAFARI_SCROLLING_CLASS)\r\n }\r\n }\r\n },\r\n _renderWrapper: function() {\r\n this._positionController.styleWrapperPosition();\r\n this._renderWrapperDimensions();\r\n this._positionController.positionWrapper()\r\n },\r\n _renderWrapperDimensions: function() {\r\n var wrapperWidth;\r\n var wrapperHeight;\r\n var $container = this._positionController._$wrapperCoveredElement;\r\n if (!$container) {\r\n return\r\n }\r\n var isWindow = this._positionController.isAllWindowCoveredByWrapper();\r\n var documentElement = domAdapter.getDocumentElement();\r\n wrapperWidth = isWindow ? documentElement.clientWidth : getOuterWidth($container), wrapperHeight = isWindow ? window.innerHeight : getOuterHeight($container);\r\n this._$wrapper.css({\r\n width: wrapperWidth,\r\n height: wrapperHeight\r\n })\r\n },\r\n _renderDimensions: function() {\r\n var content = this._$content.get(0);\r\n this._$content.css({\r\n minWidth: this._getOptionValue(\"minWidth\", content),\r\n maxWidth: this._getOptionValue(\"maxWidth\", content),\r\n minHeight: this._getOptionValue(\"minHeight\", content),\r\n maxHeight: this._getOptionValue(\"maxHeight\", content),\r\n width: this._getOptionValue(\"width\", content),\r\n height: this._getOptionValue(\"height\", content)\r\n })\r\n },\r\n _focusTarget: function() {\r\n return this._$content\r\n },\r\n _attachKeyboardEvents: function() {\r\n this._keyboardListenerId = keyboard.on(this._$content, null, opts => this._keyboardHandler(opts))\r\n },\r\n _keyboardHandler: function(options) {\r\n var e = options.originalEvent;\r\n var $target = $(e.target);\r\n if ($target.is(this._$content) || !this.option(\"ignoreChildEvents\")) {\r\n this.callBase(...arguments)\r\n }\r\n },\r\n _isVisible: function() {\r\n return this.option(\"visible\")\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n if (this.option(\"visible\")) {\r\n this._renderVisibilityAnimate(visible)\r\n }\r\n } else {\r\n this._renderVisibilityAnimate(visible)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderGeometry()\r\n },\r\n _clean: function() {\r\n if (!this._contentAlreadyRendered) {\r\n this.$content().empty()\r\n }\r\n this._renderVisibility(false);\r\n this._stopShowTimer();\r\n this._observeContentResize(false);\r\n this._cleanFocusState()\r\n },\r\n _stopShowTimer() {\r\n if (this._asyncShowTimeout) {\r\n clearTimeout(this._asyncShowTimeout)\r\n }\r\n this._asyncShowTimeout = null\r\n },\r\n _dispose: function() {\r\n fx.stop(this._$content, false);\r\n clearTimeout(this._deferShowTimer);\r\n this._toggleViewPortSubscription(false);\r\n this._toggleSubscriptions(false);\r\n this._updateZIndexStackPosition(false);\r\n this._toggleTabTerminator(false);\r\n this._actions = null;\r\n this._parentsScrollSubscriptionInfo = null;\r\n this.callBase();\r\n this._toggleSafariScrolling();\r\n zIndexPool.remove(this._zIndex);\r\n this._$wrapper.remove();\r\n this._$content.remove()\r\n },\r\n _toggleRTLDirection: function(rtl) {\r\n this._$content.toggleClass(RTL_DIRECTION_CLASS, rtl)\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_resizable;\r\n var value = args.value;\r\n if (inArray(args.name, ACTIONS) > -1) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"dragEnabled\":\r\n this._renderDrag();\r\n this._renderGeometry();\r\n break;\r\n case \"resizeEnabled\":\r\n this._renderResize();\r\n this._renderGeometry();\r\n break;\r\n case \"shading\":\r\n this._toggleShading(this.option(\"visible\"));\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"shadingColor\":\r\n this._toggleShading(this.option(\"visible\"));\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this._renderGeometry();\r\n null === (_this$_resizable = this._resizable) || void 0 === _this$_resizable ? void 0 : _this$_resizable.option(args.name, args.value);\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n this._renderGeometry();\r\n break;\r\n case \"position\":\r\n this._positionController.updatePosition(this.option(\"position\"));\r\n this._positionController.restorePositionOnNextRender(true);\r\n this._renderGeometry();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"visible\":\r\n this._renderVisibilityAnimate(value).done(() => {\r\n if (!this._animateDeferred) {\r\n return\r\n }\r\n this._animateDeferred.resolveWith(this)\r\n });\r\n break;\r\n case \"target\":\r\n this._positionController.updateTarget(value);\r\n this._setAnimationTarget(value);\r\n this._invalidate();\r\n break;\r\n case \"container\":\r\n this._positionController.updateContainer(value);\r\n this._invalidate();\r\n this._toggleSafariScrolling();\r\n if (this.option(\"resizeEnabled\")) {\r\n var _this$_resizable2;\r\n null === (_this$_resizable2 = this._resizable) || void 0 === _this$_resizable2 ? void 0 : _this$_resizable2.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"innerOverlay\":\r\n this._initInnerOverlayClass();\r\n break;\r\n case \"deferRendering\":\r\n case \"contentTemplate\":\r\n this._contentAlreadyRendered = false;\r\n this._clean();\r\n this._invalidate();\r\n break;\r\n case \"hideTopOverlayHandler\":\r\n this._toggleHideTopOverlayCallback(false);\r\n this._initHideTopOverlayHandler(args.value);\r\n this._toggleHideTopOverlayCallback(this.option(\"visible\"));\r\n break;\r\n case \"hideOnParentScroll\":\r\n this._toggleParentsScrollSubscription(this.option(\"visible\"));\r\n break;\r\n case \"closeOnOutsideClick\":\r\n case \"propagateOutsideClick\":\r\n break;\r\n case \"animation\":\r\n this._updateResizeCallbackSkipCondition();\r\n break;\r\n case \"rtlEnabled\":\r\n this._contentAlreadyRendered = false;\r\n this.callBase(args);\r\n break;\r\n case \"_fixWrapperPosition\":\r\n this._positionController.fixWrapperPosition = value;\r\n break;\r\n case \"wrapperAttr\":\r\n this._renderWrapperAttributes();\r\n break;\r\n case \"dragAndResizeArea\":\r\n this._positionController.dragAndResizeArea = value;\r\n if (this.option(\"resizeEnabled\")) {\r\n this._resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n this._positionController.positionContent();\r\n break;\r\n case \"dragOutsideBoundary\":\r\n this._positionController.dragOutsideBoundary = value;\r\n if (this.option(\"resizeEnabled\")) {\r\n this._resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"outsideDragFactor\":\r\n this._positionController.outsideDragFactor = value;\r\n break;\r\n case \"restorePosition\":\r\n this._positionController.restorePosition = args.value;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n toggle: function(showing) {\r\n showing = void 0 === showing ? !this.option(\"visible\") : showing;\r\n var result = new Deferred;\r\n if (showing === this.option(\"visible\")) {\r\n return result.resolveWith(this, [showing]).promise()\r\n }\r\n var animateDeferred = new Deferred;\r\n this._animateDeferred = animateDeferred;\r\n this.option(\"visible\", showing);\r\n animateDeferred.promise().done(() => {\r\n delete this._animateDeferred;\r\n result.resolveWith(this, [this.option(\"visible\")])\r\n });\r\n return result.promise()\r\n },\r\n $content: function() {\r\n return this._$content\r\n },\r\n show: function() {\r\n return this.toggle(true)\r\n },\r\n hide: function() {\r\n return this.toggle(false)\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content)\r\n },\r\n repaint: function() {\r\n if (this._contentAlreadyRendered) {\r\n this._positionController.restorePositionOnNextRender(true);\r\n this._renderGeometry({\r\n forceStopAnimation: true\r\n });\r\n triggerResizeEvent(this._$content)\r\n } else {\r\n this.callBase()\r\n }\r\n }\r\n});\r\nOverlay.baseZIndex = zIndex => zIndexPool.base(zIndex);\r\nregisterComponent(\"dxOverlay\", Overlay);\r\nexport default Overlay;\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOption = void 0;\nvar config = {\n useLegacyTemplateEngine: false\n};\nfunction setOptions(options) {\n config = __assign(__assign({}, config), options);\n}\nfunction getOption(optionName) {\n return config[optionName];\n}\nexports.getOption = getOption;\nexports.default = setOptions;\n","/**\r\n * DevExtreme (esm/core/templates/bindable_template.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nimport {\r\n isPrimitive\r\n} from \"../utils/type\";\r\nvar watchChanges = function(rawData, watchMethod, fields, fieldsMap, callback) {\r\n var fieldsDispose;\r\n var globalDispose = ((data, watchMethod, callback) => watchMethod(() => data, callback))(rawData, watchMethod, (function(dataWithRawFields) {\r\n fieldsDispose && fieldsDispose();\r\n if (isPrimitive(dataWithRawFields)) {\r\n callback(dataWithRawFields);\r\n return\r\n }\r\n fieldsDispose = function(data, watchMethod, fields, fieldsMap, callback) {\r\n var resolvedData = {};\r\n var missedFields = fields.slice();\r\n var watchHandlers = fields.map((function(name) {\r\n var fieldGetter = fieldsMap[name];\r\n return watchMethod(fieldGetter ? () => fieldGetter(data) : () => data[name], (function(value) {\r\n resolvedData[name] = value;\r\n if (missedFields.length) {\r\n var index = missedFields.indexOf(name);\r\n if (index >= 0) {\r\n missedFields.splice(index, 1)\r\n }\r\n }\r\n if (!missedFields.length) {\r\n callback(resolvedData)\r\n }\r\n }))\r\n }));\r\n return function() {\r\n watchHandlers.forEach(dispose => dispose())\r\n }\r\n }(dataWithRawFields, watchMethod, fields, fieldsMap, callback)\r\n }));\r\n return function() {\r\n fieldsDispose && fieldsDispose();\r\n globalDispose && globalDispose()\r\n }\r\n};\r\nexport class BindableTemplate extends TemplateBase {\r\n constructor(render, fields, watchMethod, fieldsMap) {\r\n super();\r\n this._render = render;\r\n this._fields = fields;\r\n this._fieldsMap = fieldsMap || {};\r\n this._watchMethod = watchMethod\r\n }\r\n _renderCore(options) {\r\n var $container = $(options.container);\r\n var dispose = watchChanges(options.model, this._watchMethod, this._fields, this._fieldsMap, data => {\r\n $container.empty();\r\n this._render($container, data, options.model)\r\n });\r\n eventsEngine.on($container, removeEvent, dispose);\r\n return $container.contents()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/button.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../../core/renderer\";\r\nexport default class TextEditorButton {\r\n constructor(name, editor, options) {\r\n this.instance = null;\r\n this.$container = null;\r\n this.$placeMarker = null;\r\n this.editor = editor;\r\n this.name = name;\r\n this.options = options || {}\r\n }\r\n _addPlaceMarker($container) {\r\n this.$placeMarker = $(\"
\").appendTo($container)\r\n }\r\n _addToContainer($element) {\r\n var {\r\n $placeMarker: $placeMarker,\r\n $container: $container\r\n } = this;\r\n $placeMarker ? $placeMarker.replaceWith($element) : $element.appendTo($container)\r\n }\r\n _attachEvents() {\r\n throw \"Not implemented\"\r\n }\r\n _create() {\r\n throw \"Not implemented\"\r\n }\r\n _isRendered() {\r\n return !!this.instance\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor,\r\n options: options\r\n } = this;\r\n return options.visible || !editor.option(\"readOnly\")\r\n }\r\n _isDisabled() {\r\n throw \"Not implemented\"\r\n }\r\n _shouldRender() {\r\n return this._isVisible() && !this._isRendered()\r\n }\r\n dispose() {\r\n var {\r\n instance: instance,\r\n $placeMarker: $placeMarker\r\n } = this;\r\n if (instance) {\r\n instance.dispose ? instance.dispose() : instance.remove();\r\n this.instance = null\r\n }\r\n $placeMarker && $placeMarker.remove()\r\n }\r\n render() {\r\n var $container = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.$container;\r\n this.$container = $container;\r\n if (this._isVisible()) {\r\n var {\r\n instance: instance,\r\n $element: $element\r\n } = this._create();\r\n this.instance = instance;\r\n this._attachEvents(instance, $element)\r\n } else {\r\n this._addPlaceMarker($container)\r\n }\r\n }\r\n update() {\r\n if (this._shouldRender()) {\r\n this.render()\r\n }\r\n return !!this.instance\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/events/swipe.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n eventData\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar SWIPE_START_EVENT = \"dxswipestart\";\r\nvar SWIPE_EVENT = \"dxswipe\";\r\nvar SWIPE_END_EVENT = \"dxswipeend\";\r\nvar HorizontalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return getWidth(this.getElement())\r\n },\r\n getBounds: function() {\r\n return [this._maxLeftOffset, this._maxRightOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = eventData(e);\r\n return (endEventData.x - (this._savedEventData && this._savedEventData.x || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = eventData(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.x - this._tickData.x) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar VerticalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return getHeight(this.getElement())\r\n },\r\n getBounds: function() {\r\n return [this._maxTopOffset, this._maxBottomOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = eventData(e);\r\n return (endEventData.y - (this._savedEventData && this._savedEventData.y || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = eventData(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.y - this._tickData.y) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar STRATEGIES = {\r\n horizontal: HorizontalStrategy,\r\n vertical: VerticalStrategy\r\n};\r\nvar SwipeEmitter = GestureEmitter.inherit({\r\n TICK_INTERVAL: 300,\r\n FAST_SWIPE_SPEED_LIMIT: 10,\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"horizontal\";\r\n this.elastic = true\r\n },\r\n _getStrategy: function() {\r\n return STRATEGIES[this.direction]\r\n },\r\n _defaultItemSizeFunc: function() {\r\n return this._getStrategy().defaultItemSizeFunc.call(this)\r\n },\r\n _itemSizeFunc: function() {\r\n return this.itemSizeFunc || this._defaultItemSizeFunc\r\n },\r\n _init: function(e) {\r\n this._tickData = eventData(e)\r\n },\r\n _start: function(e) {\r\n this._savedEventData = eventData(e);\r\n e = this._fireEvent(SWIPE_START_EVENT, e);\r\n if (!e.cancel) {\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset\r\n }\r\n },\r\n _move: function(e) {\r\n var strategy = this._getStrategy();\r\n var moveEventData = eventData(e);\r\n var offset = strategy.calcOffsetRatio.call(this, e);\r\n offset = this._fitOffset(offset, this.elastic);\r\n if (moveEventData.time - this._tickData.time > this.TICK_INTERVAL) {\r\n this._tickData = moveEventData\r\n }\r\n this._fireEvent(SWIPE_EVENT, e, {\r\n offset: offset\r\n });\r\n e.preventDefault()\r\n },\r\n _end: function(e) {\r\n var strategy = this._getStrategy();\r\n var offsetRatio = strategy.calcOffsetRatio.call(this, e);\r\n var isFast = strategy.isFastSwipe.call(this, e);\r\n var startOffset = offsetRatio;\r\n var targetOffset = this._calcTargetOffset(offsetRatio, isFast);\r\n startOffset = this._fitOffset(startOffset, this.elastic);\r\n targetOffset = this._fitOffset(targetOffset, false);\r\n this._fireEvent(SWIPE_END_EVENT, e, {\r\n offset: startOffset,\r\n targetOffset: targetOffset\r\n })\r\n },\r\n _fitOffset: function(offset, elastic) {\r\n var strategy = this._getStrategy();\r\n var bounds = strategy.getBounds.call(this);\r\n if (offset < -bounds[0]) {\r\n return elastic ? (-2 * bounds[0] + offset) / 3 : -bounds[0]\r\n }\r\n if (offset > bounds[1]) {\r\n return elastic ? (2 * bounds[1] + offset) / 3 : bounds[1]\r\n }\r\n return offset\r\n },\r\n _calcTargetOffset: function(offsetRatio, isFast) {\r\n var result;\r\n if (isFast) {\r\n result = Math.ceil(Math.abs(offsetRatio));\r\n if (offsetRatio < 0) {\r\n result = -result\r\n }\r\n } else {\r\n result = Math.round(offsetRatio)\r\n }\r\n return result\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: SwipeEmitter,\r\n events: [SWIPE_START_EVENT, SWIPE_EVENT, SWIPE_END_EVENT]\r\n});\r\nexport {\r\n SWIPE_EVENT as swipe, SWIPE_START_EVENT as start, SWIPE_END_EVENT as end\r\n};\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.discover = exports.mountTemplate = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar errors_1 = require(\"./errors\");\nvar TEMPLATE_PROP = \"template\";\nvar Vue = VueType.default || VueType;\nfunction asConfigurable(component) {\n if (!component.$vnode) {\n return undefined;\n }\n var configurable = component.$vnode.componentOptions;\n if (!configurable.$_config || !configurable.$_config.name) {\n return undefined;\n }\n return configurable;\n}\nfunction hasTemplate(component) {\n return TEMPLATE_PROP in component.$props && (component.$vnode.data && component.$vnode.data.scopedSlots);\n}\nfunction discover(component) {\n var templates = {};\n for (var slotName in component.$scopedSlots) {\n if (slotName === \"default\" && component.$slots.default) {\n continue;\n }\n var slot = component.$scopedSlots[slotName];\n if (!slot) {\n continue;\n }\n templates[slotName] = slot;\n }\n for (var _i = 0, _a = component.$children; _i < _a.length; _i++) {\n var childComponent = _a[_i];\n var configurable = asConfigurable(childComponent);\n if (!configurable) {\n continue;\n }\n var defaultSlot = childComponent.$scopedSlots.default;\n if (!defaultSlot || !hasTemplate(childComponent)) {\n continue;\n }\n var templateName = configurable.$_config.fullPath + \".\" + TEMPLATE_PROP;\n templates[templateName] = defaultSlot;\n }\n return templates;\n}\nexports.discover = discover;\nfunction mountTemplate(getSlot, parent, data, name, placeholder) {\n return new Vue({\n el: placeholder,\n name: name,\n inject: [\"eventBus\"],\n parent: parent,\n created: function () {\n var _this = this;\n this.eventBus.$on(\"updated\", function () {\n _this.$forceUpdate();\n });\n },\n render: function (createElement) {\n var content = getSlot()(data);\n if (!content) {\n return createElement(\"div\");\n }\n if (content.length > 1) {\n throw new Error(errors_1.TEMPLATE_MULTIPLE_ROOTS_ERROR);\n }\n return content[0];\n },\n destroyed: function () {\n // T857821\n this.eventBus.$off(\"updated\");\n }\n });\n}\nexports.mountTemplate = mountTemplate;\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setEmitOptionChangedFunc = exports.bindOptionWatchers = void 0;\nvar config_1 = require(\"./config\");\nvar helpers_1 = require(\"./helpers\");\nvar vue_helper_1 = require(\"./vue-helper\");\nvar Configuration = /** @class */ (function () {\n function Configuration(updateFunc, name, initialValues, expectedChildren, isCollectionItem, collectionItemIndex, ownerConfig) {\n this._updateFunc = updateFunc;\n this._name = name;\n this._initialValues = initialValues ? initialValues : {};\n this._nestedConfigurations = [];\n this._isCollectionItem = !!isCollectionItem;\n this._collectionItemIndex = collectionItemIndex;\n this._expectedChildren = expectedChildren || {};\n this._ownerConfig = ownerConfig;\n this._componentChanges = [];\n this.updateValue = this.updateValue.bind(this);\n }\n Object.defineProperty(Configuration.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"fullName\", {\n get: function () {\n return this._name && this._isCollectionItem\n ? this._name + \"[\" + this._collectionItemIndex + \"]\"\n : this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"componentsCountChanged\", {\n get: function () {\n return this._componentChanges;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.cleanComponentsCountChanged = function () {\n this._componentChanges = [];\n };\n Object.defineProperty(Configuration.prototype, \"fullPath\", {\n get: function () {\n return this._ownerConfig && this._ownerConfig.fullPath\n ? this._ownerConfig.fullPath + \".\" + this.fullName\n : this.fullName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"ownerConfig\", {\n get: function () {\n return this._ownerConfig;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"options\", {\n get: function () {\n return this._options;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"initialValues\", {\n get: function () {\n return this._initialValues;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"expectedChildren\", {\n get: function () {\n return this._expectedChildren;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"nested\", {\n get: function () {\n return this._nestedConfigurations;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"prevNestedOptions\", {\n get: function () {\n return this._prevNestedConfigOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"collectionItemIndex\", {\n get: function () {\n return this._collectionItemIndex;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"isCollectionItem\", {\n get: function () {\n return this._isCollectionItem;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"updateFunc\", {\n get: function () {\n return this._updateFunc;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.init = function (options) {\n this._options = options ? options : [];\n };\n Object.defineProperty(Configuration.prototype, \"emitOptionChanged\", {\n set: function (handler) {\n this._emitOptionChanged = handler;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.setPrevNestedOptions = function (value) {\n this._prevNestedConfigOptions = value;\n };\n Configuration.prototype.onOptionChanged = function (args) {\n if (helpers_1.isEqual(args.value, args.previousValue)) {\n return;\n }\n this._onOptionChanged(args.fullName.split(\".\"), args);\n };\n Configuration.prototype.cleanNested = function () {\n this._nestedConfigurations = [];\n };\n Configuration.prototype.createNested = function (name, initialValues, isCollectionItem, expectedChildren) {\n var expected = this._expectedChildren[name];\n var actualName = name;\n var actualIsCollectionItem = isCollectionItem;\n if (expected) {\n actualIsCollectionItem = expected.isCollectionItem;\n if (expected.optionName) {\n actualName = expected.optionName;\n }\n }\n var collectionItemIndex = -1;\n if (actualIsCollectionItem && actualName) {\n collectionItemIndex = this._nestedConfigurations.filter(function (c) { return c._name && c._name === actualName; }).length;\n }\n var configuration = new Configuration(this._updateFunc, actualName, initialValues, expectedChildren, actualIsCollectionItem, collectionItemIndex, this);\n this._nestedConfigurations.push(configuration);\n return configuration;\n };\n Configuration.prototype.updateValue = function (nestedName, value) {\n var fullName = [this.fullPath, nestedName].filter(function (n) { return n; }).join(\".\");\n this._updateFunc(fullName, value);\n };\n Configuration.prototype.getNestedOptionValues = function () {\n var values = {};\n this._nestedConfigurations.forEach(function (o) {\n if (!o._name) {\n return;\n }\n var nestedValue = __assign(__assign({}, o.initialValues), o.getNestedOptionValues());\n if (!nestedValue) {\n return;\n }\n if (!o._isCollectionItem) {\n values[o._name] = nestedValue;\n }\n else {\n var arr = values[o._name];\n if (!arr || !Array.isArray(arr)) {\n arr = [];\n values[o._name] = arr;\n }\n arr.push(nestedValue);\n }\n });\n return values;\n };\n Configuration.prototype.getOptionsToWatch = function () {\n var blackList = {};\n this._nestedConfigurations.forEach(function (c) { return c._name && (blackList[c._name] = true); });\n return this._options.filter(function (o) { return !blackList[o]; });\n };\n Configuration.prototype._onOptionChanged = function (optionRelPath, args) {\n if (optionRelPath.length === 0) {\n return;\n }\n var optionInfo = helpers_1.getOptionInfo(optionRelPath[0]);\n if (optionInfo.isCollection || optionRelPath.length > 1) {\n var nestedConfig = this._getNestedConfig(optionInfo.fullName);\n if (nestedConfig) {\n nestedConfig._onOptionChanged(optionRelPath.slice(1), args);\n return;\n }\n this._tryEmitOptionChanged(optionInfo.name, args.component.option(this.fullPath ? this.fullPath + \".\" + optionInfo.name : optionInfo.name));\n }\n else {\n this._tryEmitOptionChanged(optionInfo.name, args.value);\n }\n };\n Configuration.prototype._getNestedConfig = function (fullName) {\n for (var _i = 0, _a = this._nestedConfigurations; _i < _a.length; _i++) {\n var nestedConfig = _a[_i];\n if (nestedConfig.fullName === fullName) {\n return nestedConfig;\n }\n }\n return undefined;\n };\n Configuration.prototype._tryEmitOptionChanged = function (name, value) {\n if (this._emitOptionChanged) {\n this._emitOptionChanged(name, value);\n }\n };\n return Configuration;\n}());\nfunction bindOptionWatchers(config, vueInstance, innerChanges) {\n var targets = config && config.getOptionsToWatch();\n if (targets) {\n targets.forEach(function (optionName) {\n vueInstance.$watch(optionName, function (value) {\n if (!innerChanges.hasOwnProperty(optionName) ||\n innerChanges[optionName] !== value) {\n config.updateValue(optionName, value);\n }\n delete innerChanges[optionName];\n }, { deep: config_1.getOption(\"deepWatch\") });\n });\n }\n}\nexports.bindOptionWatchers = bindOptionWatchers;\nfunction hasProp(vueInstance, propName) {\n var props = vueInstance.$options.props;\n return props && props.hasOwnProperty(propName);\n}\nfunction hasVModelValue(options, props, vnode) {\n var _a;\n return options.model\n && props.hasOwnProperty(vue_helper_1.VMODEL_NAME)\n && ((_a = vnode === null || vnode === void 0 ? void 0 : vnode.props) === null || _a === void 0 ? void 0 : _a.hasOwnProperty(vue_helper_1.VMODEL_NAME));\n}\nfunction setEmitOptionChangedFunc(config, vueInstance, innerChanges) {\n config.emitOptionChanged = function (name, value) {\n var _a;\n var props = vueInstance.$props;\n var vnode = (_a = vueInstance === null || vueInstance === void 0 ? void 0 : vueInstance.$) === null || _a === void 0 ? void 0 : _a.vnode;\n if (hasProp(vueInstance, name) && !helpers_1.isEqual(value, props[name]) && vueInstance.$emit) {\n innerChanges[name] = value;\n var eventName = name === \"value\" && hasVModelValue(vueInstance.$options, props, vnode) ?\n \"update:\" + vue_helper_1.VMODEL_NAME :\n \"update:\" + name;\n vueInstance.$emit(eventName, value);\n }\n };\n}\nexports.setEmitOptionChangedFunc = setEmitOptionChangedFunc;\nexports.default = Configuration;\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isVue3 = exports.getVueVersion = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar Vue = VueType.default || VueType;\nfunction getVueVersion() {\n var currentVersion = Vue.version;\n return Number(currentVersion.split(\".\")[0]);\n}\nexports.getVueVersion = getVueVersion;\nfunction isVue3() {\n return getVueVersion() === 3;\n}\nexports.isVue3 = isVue3;\n","/**\r\n * DevExtreme (esm/events/pointer/base.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n addNamespace,\r\n eventSource,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar POINTER_EVENTS_NAMESPACE = \"dxPointerEvents\";\r\nvar BaseStrategy = Class.inherit({\r\n ctor: function(eventName, originalEvents) {\r\n this._eventName = eventName;\r\n this._originalEvents = addNamespace(originalEvents, POINTER_EVENTS_NAMESPACE);\r\n this._handlerCount = 0;\r\n this.noBubble = this._isNoBubble()\r\n },\r\n _isNoBubble: function() {\r\n var eventName = this._eventName;\r\n return \"dxpointerenter\" === eventName || \"dxpointerleave\" === eventName\r\n },\r\n _handler: function(e) {\r\n var delegateTarget = this._getDelegateTarget(e);\r\n return this._fireEvent({\r\n type: this._eventName,\r\n pointerType: e.pointerType || eventSource(e),\r\n originalEvent: e,\r\n delegateTarget: delegateTarget,\r\n timeStamp: browser.mozilla ? (new Date).getTime() : e.timeStamp\r\n })\r\n },\r\n _getDelegateTarget: function(e) {\r\n var delegateTarget;\r\n if (this.noBubble) {\r\n delegateTarget = e.delegateTarget\r\n }\r\n return delegateTarget\r\n },\r\n _fireEvent: function(args) {\r\n return fireEvent(args)\r\n },\r\n _setSelector: function(handleObj) {\r\n this._selector = this.noBubble && handleObj ? handleObj.selector : null\r\n },\r\n _getSelector: function() {\r\n return this._selector\r\n },\r\n setup: function() {\r\n return true\r\n },\r\n add: function(element, handleObj) {\r\n if (this._handlerCount <= 0 || this.noBubble) {\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n this._setSelector(handleObj);\r\n var that = this;\r\n eventsEngine.on(element, this._originalEvents, this._getSelector(), (function(e) {\r\n that._handler(e)\r\n }))\r\n }\r\n if (!this.noBubble) {\r\n this._handlerCount++\r\n }\r\n },\r\n remove: function(handleObj) {\r\n this._setSelector(handleObj);\r\n if (!this.noBubble) {\r\n this._handlerCount--\r\n }\r\n },\r\n teardown: function(element) {\r\n if (this._handlerCount && !this.noBubble) {\r\n return\r\n }\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n if (this._originalEvents !== \".\" + POINTER_EVENTS_NAMESPACE) {\r\n eventsEngine.off(element, this._originalEvents, this._getSelector())\r\n }\r\n },\r\n dispose: function(element) {\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n eventsEngine.off(element, this._originalEvents)\r\n }\r\n});\r\nexport default BaseStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/touch.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport devices from \"../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport BaseStrategy from \"./base\";\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart\",\r\n dxpointermove: \"touchmove\",\r\n dxpointerup: \"touchend\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"\",\r\n dxpointerout: \"\",\r\n dxpointerenter: \"\",\r\n dxpointerleave: \"\"\r\n};\r\nvar normalizeTouchEvent = function(e) {\r\n var pointers = [];\r\n each(e.touches, (function(_, touch) {\r\n pointers.push(extend({\r\n pointerId: touch.identifier\r\n }, touch))\r\n }));\r\n return {\r\n pointers: pointers,\r\n pointerId: e.changedTouches[0].identifier\r\n }\r\n};\r\nvar skipTouchWithSameIdentifier = function(pointerEvent) {\r\n return \"ios\" === devices.real().platform && (\"dxpointerdown\" === pointerEvent || \"dxpointerup\" === pointerEvent)\r\n};\r\nvar TouchStrategy = BaseStrategy.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._pointerId = 0\r\n },\r\n _handler: function(e) {\r\n if (skipTouchWithSameIdentifier(this._eventName)) {\r\n var touch = e.changedTouches[0];\r\n if (this._pointerId === touch.identifier && 0 !== this._pointerId) {\r\n return\r\n }\r\n this._pointerId = touch.identifier\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase(extend(normalizeTouchEvent(args.originalEvent), args))\r\n }\r\n});\r\nTouchStrategy.map = eventMap;\r\nTouchStrategy.normalize = normalizeTouchEvent;\r\nexport default TouchStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/mouse.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport BaseStrategy from \"./base\";\r\nimport Observer from \"./observer\";\r\nvar eventMap = {\r\n dxpointerdown: \"mousedown\",\r\n dxpointermove: \"mousemove\",\r\n dxpointerup: \"mouseup\",\r\n dxpointercancel: \"\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar normalizeMouseEvent = function(e) {\r\n e.pointerId = 1;\r\n return {\r\n pointers: observer.pointers(),\r\n pointerId: 1\r\n }\r\n};\r\nvar observer;\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n observer = new Observer(eventMap, (function() {\r\n return true\r\n }));\r\n activated = true\r\n};\r\nvar MouseStrategy = BaseStrategy.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase(extend(normalizeMouseEvent(args.originalEvent), args))\r\n }\r\n});\r\nMouseStrategy.map = eventMap;\r\nMouseStrategy.normalize = normalizeMouseEvent;\r\nMouseStrategy.activate = activateStrategy;\r\nMouseStrategy.resetObserver = function() {\r\n observer.reset()\r\n};\r\nexport default MouseStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/observer.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar addEventsListener = function(events, handler) {\r\n readyCallbacks.add((function() {\r\n events.split(\" \").forEach((function(event) {\r\n domAdapter.listen(domAdapter.getDocument(), event, handler, true)\r\n }))\r\n }))\r\n};\r\nvar Observer = function(eventMap, pointerEquals, onPointerAdding) {\r\n onPointerAdding = onPointerAdding || function() {};\r\n var pointers = [];\r\n var getPointerIndex = function(e) {\r\n var index = -1;\r\n each(pointers, (function(i, pointer) {\r\n if (!pointerEquals(e, pointer)) {\r\n return true\r\n }\r\n index = i;\r\n return false\r\n }));\r\n return index\r\n };\r\n var removePointer = function(e) {\r\n var index = getPointerIndex(e);\r\n if (index > -1) {\r\n pointers.splice(index, 1)\r\n }\r\n };\r\n addEventsListener(eventMap.dxpointerdown, (function(e) {\r\n if (-1 === getPointerIndex(e)) {\r\n onPointerAdding(e);\r\n pointers.push(e)\r\n }\r\n }));\r\n addEventsListener(eventMap.dxpointermove, (function(e) {\r\n pointers[getPointerIndex(e)] = e\r\n }));\r\n addEventsListener(eventMap.dxpointerup, removePointer);\r\n addEventsListener(eventMap.dxpointercancel, removePointer);\r\n this.pointers = function() {\r\n return pointers\r\n };\r\n this.reset = function() {\r\n pointers = []\r\n }\r\n};\r\nexport default Observer;\r\n","/**\r\n * DevExtreme (esm/events/pointer/mouse_and_touch.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport BaseStrategy from \"./base\";\r\nimport MouseStrategy from \"./mouse\";\r\nimport TouchStrategy from \"./touch\";\r\nimport {\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart mousedown\",\r\n dxpointermove: \"touchmove mousemove\",\r\n dxpointerup: \"touchend mouseup\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n MouseStrategy.activate();\r\n activated = true\r\n};\r\nvar MouseAndTouchStrategy = BaseStrategy.inherit({\r\n EVENT_LOCK_TIMEOUT: 100,\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _handler: function(e) {\r\n var isMouse = isMouseEvent(e);\r\n if (!isMouse) {\r\n this._skipNextEvents = true\r\n }\r\n if (isMouse && this._mouseLocked) {\r\n return\r\n }\r\n if (isMouse && this._skipNextEvents) {\r\n this._skipNextEvents = false;\r\n this._mouseLocked = true;\r\n clearTimeout(this._unlockMouseTimer);\r\n var that = this;\r\n this._unlockMouseTimer = setTimeout((function() {\r\n that._mouseLocked = false\r\n }), this.EVENT_LOCK_TIMEOUT);\r\n return\r\n }\r\n return this.callBase(e)\r\n },\r\n _fireEvent: function(args) {\r\n var normalizer = isMouseEvent(args.originalEvent) ? MouseStrategy.normalize : TouchStrategy.normalize;\r\n return this.callBase(extend(normalizer(args.originalEvent), args))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._skipNextEvents = false;\r\n this._mouseLocked = false;\r\n clearTimeout(this._unlockMouseTimer)\r\n }\r\n});\r\nMouseAndTouchStrategy.map = eventMap;\r\nMouseAndTouchStrategy.resetObserver = MouseStrategy.resetObserver;\r\nexport default MouseAndTouchStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport * as support from \"../core/utils/support\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport TouchStrategy from \"./pointer/touch\";\r\nimport MouseStrategy from \"./pointer/mouse\";\r\nimport MouseAndTouchStrategy from \"./pointer/mouse_and_touch\";\r\nvar getStrategy = (support, device) => {\r\n var {\r\n tablet: tablet,\r\n phone: phone\r\n } = device;\r\n if (support.touch && !(tablet || phone)) {\r\n return MouseAndTouchStrategy\r\n }\r\n if (support.touch) {\r\n return TouchStrategy\r\n }\r\n return MouseStrategy\r\n};\r\nvar EventStrategy = getStrategy(support, devices.real());\r\neach(EventStrategy.map, (pointerEvent, originalEvents) => {\r\n registerEvent(pointerEvent, new EventStrategy(pointerEvent, originalEvents))\r\n});\r\nvar pointer = {\r\n down: \"dxpointerdown\",\r\n up: \"dxpointerup\",\r\n move: \"dxpointermove\",\r\n cancel: \"dxpointercancel\",\r\n enter: \"dxpointerenter\",\r\n leave: \"dxpointerleave\",\r\n over: \"dxpointerover\",\r\n out: \"dxpointerout\"\r\n};\r\nexport default pointer;\r\n","/**\r\n * DevExtreme (esm/core/utils/browser.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n getNavigator\r\n} from \"./window\";\r\nvar navigator = getNavigator();\r\nvar webkitRegExp = /(webkit)[ /]([\\w.]+)/;\r\nvar mozillaRegExp = /(mozilla)(?:.*? rv:([\\w.]+))/;\r\nvar browserFromUA = ua => {\r\n ua = ua.toLowerCase();\r\n var result = {};\r\n var matches = webkitRegExp.exec(ua) || ua.indexOf(\"compatible\") < 0 && mozillaRegExp.exec(ua) || [];\r\n var browserName = matches[1];\r\n var browserVersion = matches[2];\r\n if (\"webkit\" === browserName) {\r\n result.webkit = true;\r\n if (ua.indexOf(\"chrome\") >= 0 || ua.indexOf(\"crios\") >= 0) {\r\n browserName = \"chrome\";\r\n browserVersion = /(?:chrome|crios)\\/(\\d+\\.\\d+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else if (ua.indexOf(\"fxios\") >= 0) {\r\n browserName = \"mozilla\";\r\n browserVersion = /fxios\\/(\\d+\\.\\d+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else if (ua.indexOf(\"safari\") >= 0 && /version|phantomjs/.test(ua)) {\r\n browserName = \"safari\";\r\n browserVersion = /(?:version|phantomjs)\\/([0-9.]+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else {\r\n browserName = \"unknown\";\r\n browserVersion = /applewebkit\\/([0-9.]+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n }\r\n }\r\n if (browserName) {\r\n result[browserName] = true;\r\n result.version = browserVersion\r\n }\r\n return result\r\n};\r\nexport default extend({\r\n _fromUA: browserFromUA\r\n}, browserFromUA(navigator.userAgent));\r\n","/**\r\n * DevExtreme (esm/events/core/keyboard_processor.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar COMPOSITION_START_EVENT = \"compositionstart\";\r\nvar COMPOSITION_END_EVENT = \"compositionend\";\r\nvar KEYDOWN_EVENT = \"keydown\";\r\nvar NAMESPACE = \"KeyboardProcessor\";\r\nvar createKeyDownOptions = e => ({\r\n keyName: normalizeKeyName(e),\r\n key: e.key,\r\n code: e.code,\r\n ctrl: e.ctrlKey,\r\n location: e.location,\r\n metaKey: e.metaKey,\r\n shift: e.shiftKey,\r\n alt: e.altKey,\r\n which: e.which,\r\n originalEvent: e\r\n});\r\nvar KeyboardProcessor = Class.inherit({\r\n _keydown: addNamespace(KEYDOWN_EVENT, NAMESPACE),\r\n _compositionStart: addNamespace(COMPOSITION_START_EVENT, NAMESPACE),\r\n _compositionEnd: addNamespace(COMPOSITION_END_EVENT, NAMESPACE),\r\n ctor: function(options) {\r\n options = options || {};\r\n if (options.element) {\r\n this._element = $(options.element)\r\n }\r\n if (options.focusTarget) {\r\n this._focusTarget = options.focusTarget\r\n }\r\n this._handler = options.handler;\r\n if (this._element) {\r\n this._processFunction = e => {\r\n var isNotFocusTarget = this._focusTarget && this._focusTarget !== e.target && inArray(e.target, $(this._focusTarget)) < 0;\r\n var shouldSkipProcessing = this._isComposingJustFinished && 229 === e.which || this._isComposing || isNotFocusTarget;\r\n this._isComposingJustFinished = false;\r\n if (!shouldSkipProcessing) {\r\n this.process(e)\r\n }\r\n };\r\n this._toggleProcessingWithContext = this.toggleProcessing.bind(this);\r\n eventsEngine.on(this._element, this._keydown, this._processFunction);\r\n eventsEngine.on(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.on(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n },\r\n dispose: function() {\r\n if (this._element) {\r\n eventsEngine.off(this._element, this._keydown, this._processFunction);\r\n eventsEngine.off(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.off(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n this._element = void 0;\r\n this._handler = void 0\r\n },\r\n process: function(e) {\r\n this._handler(createKeyDownOptions(e))\r\n },\r\n toggleProcessing: function(_ref) {\r\n var {\r\n type: type\r\n } = _ref;\r\n this._isComposing = type === COMPOSITION_START_EVENT;\r\n this._isComposingJustFinished = !this._isComposing\r\n }\r\n});\r\nKeyboardProcessor.createKeyDownOptions = createKeyDownOptions;\r\nexport default KeyboardProcessor;\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDxMouseWheelEvent,\r\n hasTouches,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar Emitter = Class.inherit({\r\n ctor: function(element) {\r\n this._$element = $(element);\r\n this._cancelCallback = Callbacks();\r\n this._acceptCallback = Callbacks()\r\n },\r\n getElement: function() {\r\n return this._$element\r\n },\r\n validate: function(e) {\r\n return !isDxMouseWheelEvent(e)\r\n },\r\n validatePointers: function(e) {\r\n return 1 === hasTouches(e)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return true\r\n },\r\n configure: function(data) {\r\n extend(this, data)\r\n },\r\n addCancelCallback: function(callback) {\r\n this._cancelCallback.add(callback)\r\n },\r\n removeCancelCallback: function() {\r\n this._cancelCallback.empty()\r\n },\r\n _cancel: function(e) {\r\n this._cancelCallback.fire(this, e)\r\n },\r\n addAcceptCallback: function(callback) {\r\n this._acceptCallback.add(callback)\r\n },\r\n removeAcceptCallback: function() {\r\n this._acceptCallback.empty()\r\n },\r\n _accept: function(e) {\r\n this._acceptCallback.fire(this, e)\r\n },\r\n _requestAccept: function(e) {\r\n this._acceptRequestEvent = e\r\n },\r\n _forgetAccept: function() {\r\n this._accept(this._acceptRequestEvent);\r\n this._acceptRequestEvent = null\r\n },\r\n start: noop,\r\n move: noop,\r\n end: noop,\r\n cancel: noop,\r\n reset: function() {\r\n if (this._acceptRequestEvent) {\r\n this._accept(this._acceptRequestEvent)\r\n }\r\n },\r\n _fireEvent: function(eventName, e, params) {\r\n var eventData = extend({\r\n type: eventName,\r\n originalEvent: e,\r\n target: this._getEmitterTarget(e),\r\n delegateTarget: this.getElement().get(0)\r\n }, params);\r\n e = fireEvent(eventData);\r\n if (e.cancel) {\r\n this._cancel(e)\r\n }\r\n return e\r\n },\r\n _getEmitterTarget: function(e) {\r\n return (this.delegateSelector ? $(e.target).closest(this.delegateSelector) : this.getElement()).get(0)\r\n },\r\n dispose: noop\r\n});\r\nexport default Emitter;\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplatesManager = void 0;\nvar templates_discovering_1 = require(\"./templates-discovering\");\nvar dom_adapter_1 = __importDefault(require(\"devextreme/core/dom_adapter\"));\nvar events_1 = require(\"devextreme/events\");\nvar constants_1 = require(\"./constants\");\nvar helpers_1 = require(\"./helpers\");\nvar TemplatesManager = /** @class */ (function () {\n function TemplatesManager(component) {\n this._slots = {};\n this._templates = {};\n this._isDirty = false;\n this._component = component;\n this.discover();\n }\n TemplatesManager.prototype.discover = function () {\n var slots = templates_discovering_1.discover(this._component);\n this._slots = __assign(__assign({}, this._slots), slots);\n if (!helpers_1.allKeysAreEqual(this._templates, slots)) {\n this._prepareTemplates();\n }\n };\n Object.defineProperty(TemplatesManager.prototype, \"templates\", {\n get: function () {\n return this._templates;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TemplatesManager.prototype, \"isDirty\", {\n get: function () {\n return this._isDirty;\n },\n enumerable: false,\n configurable: true\n });\n TemplatesManager.prototype.resetDirtyFlag = function () {\n this._isDirty = false;\n };\n TemplatesManager.prototype._prepareTemplates = function () {\n this._templates = {};\n for (var _i = 0, _a = Object.keys(this._slots); _i < _a.length; _i++) {\n var name_1 = _a[_i];\n this._templates[name_1] = this.createDxTemplate(name_1);\n }\n this._isDirty = true;\n };\n TemplatesManager.prototype.createDxTemplate = function (name) {\n var _this = this;\n return {\n render: function (data) {\n var rendered = (function (onRendered, counter) {\n if (counter === void 0) { counter = 0; }\n return function () {\n if (counter === 1 && onRendered) {\n onRendered();\n }\n counter++;\n };\n })(data.onRendered);\n var scopeData = { data: data.model, index: data.index, onRendered: rendered };\n var placeholder = document.createElement(\"div\");\n var container = data.container.get ? data.container.get(0) : data.container;\n container.appendChild(placeholder);\n var mountedTemplate = templates_discovering_1.mountTemplate(function () { return _this._slots[name]; }, _this._component, scopeData, name, placeholder);\n var element = mountedTemplate.$el;\n container.removeChild(placeholder);\n while (placeholder.firstChild) {\n container.appendChild(placeholder.firstChild);\n }\n dom_adapter_1.default.setClass(element, constants_1.DX_TEMPLATE_WRAPPER_CLASS, true);\n if (element.nodeType === Node.TEXT_NODE) {\n var removalListener = document.createElement(container.nodeName === \"TABLE\" ? \"tbody\" : \"span\");\n removalListener.style.display = \"none\";\n container.appendChild(removalListener);\n events_1.one(removalListener, constants_1.DX_REMOVE_EVENT, mountedTemplate.$.appContext.app.unmount.bind(mountedTemplate));\n }\n else {\n events_1.one(element, constants_1.DX_REMOVE_EVENT, mountedTemplate.$.appContext.app.unmount.bind(mountedTemplate));\n }\n rendered();\n return element;\n }\n };\n };\n return TemplatesManager;\n}());\nexports.TemplatesManager = TemplatesManager;\n","/**\r\n * DevExtreme (esm/renovation/common/config_context.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n createContext\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var ConfigContext = createContext(void 0);\r\n","/**\r\n * DevExtreme (esm/core/utils/comparator.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport domAdapter from \"../dom_adapter\";\r\nimport {\r\n toComparable\r\n} from \"./data\";\r\nimport {\r\n isRenderer\r\n} from \"./type\";\r\nvar hasNegation = function(oldValue, newValue) {\r\n return 1 / oldValue === 1 / newValue\r\n};\r\nexport var equals = function(oldValue, newValue) {\r\n oldValue = toComparable(oldValue, true);\r\n newValue = toComparable(newValue, true);\r\n if (oldValue && newValue && isRenderer(oldValue) && isRenderer(newValue)) {\r\n return newValue.is(oldValue)\r\n }\r\n var oldValueIsNaN = oldValue !== oldValue;\r\n var newValueIsNaN = newValue !== newValue;\r\n if (oldValueIsNaN && newValueIsNaN) {\r\n return true\r\n }\r\n if (0 === oldValue && 0 === newValue) {\r\n return hasNegation(oldValue, newValue)\r\n }\r\n if (null === oldValue || \"object\" !== typeof oldValue || domAdapter.isElementNode(oldValue)) {\r\n return oldValue === newValue\r\n }\r\n return false\r\n};\r\n","/**\r\n * DevExtreme (esm/core/options/option_manager.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n compileGetter,\r\n compileSetter,\r\n getPathParts\r\n} from \"../utils/data\";\r\nimport {\r\n noop\r\n} from \"../utils/common\";\r\nimport {\r\n equals\r\n} from \"../utils/comparator\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../utils/type\";\r\nimport {\r\n normalizeOptions\r\n} from \"./utils\";\r\nvar cachedGetters = {};\r\nvar cachedSetters = {};\r\nexport class OptionManager {\r\n constructor(options, optionsByReference) {\r\n this._options = options;\r\n this._optionsByReference = optionsByReference;\r\n this._changingCallback;\r\n this._changedCallback;\r\n this._namePreparedCallbacks\r\n }\r\n _setByReference(options, rulesOptions) {\r\n extend(true, options, rulesOptions);\r\n for (var fieldName in this._optionsByReference) {\r\n if (Object.prototype.hasOwnProperty.call(rulesOptions, fieldName)) {\r\n options[fieldName] = rulesOptions[fieldName]\r\n }\r\n }\r\n }\r\n _setPreparedValue(name, value, merge, silent) {\r\n var previousValue = this.get(this._options, name, false);\r\n if (!equals(previousValue, value)) {\r\n var path = getPathParts(name);\r\n !silent && this._changingCallback(name, previousValue, value);\r\n cachedSetters[name] = cachedSetters[name] || compileSetter(name);\r\n cachedSetters[name](this._options, value, {\r\n functionsAsIs: true,\r\n merge: isDefined(merge) ? merge : !this._optionsByReference[name],\r\n unwrapObservables: path.length > 1 && !!this._optionsByReference[path[0]]\r\n });\r\n !silent && this._changedCallback(name, value, previousValue)\r\n }\r\n }\r\n _prepareRelevantNames(options, name, value, silent) {\r\n if (isPlainObject(value)) {\r\n for (var valueName in value) {\r\n this._prepareRelevantNames(options, \"\".concat(name, \".\").concat(valueName), value[valueName])\r\n }\r\n }\r\n this._namePreparedCallbacks(options, name, value, silent)\r\n }\r\n get() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._options;\r\n var name = arguments.length > 1 ? arguments[1] : void 0;\r\n var unwrapObservables = arguments.length > 2 ? arguments[2] : void 0;\r\n cachedGetters[name] = cachedGetters[name] || compileGetter(name);\r\n return cachedGetters[name](options, {\r\n functionsAsIs: true,\r\n unwrapObservables: unwrapObservables\r\n })\r\n }\r\n set(options, value, merge, silent) {\r\n options = normalizeOptions(options, value);\r\n for (var name in options) {\r\n this._prepareRelevantNames(options, name, options[name], silent)\r\n }\r\n for (var _name in options) {\r\n this._setPreparedValue(_name, options[_name], merge, silent)\r\n }\r\n }\r\n onRelevantNamesPrepared(callBack) {\r\n this._namePreparedCallbacks = callBack\r\n }\r\n onChanging(callBack) {\r\n this._changingCallback = callBack\r\n }\r\n onChanged(callBack) {\r\n this._changedCallback = callBack\r\n }\r\n dispose() {\r\n this._changingCallback = noop;\r\n this._changedCallback = noop\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/options/index.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isFunction,\r\n isObject,\r\n type\r\n} from \"../utils/type\";\r\nimport {\r\n equalByValue,\r\n noop\r\n} from \"../utils/common\";\r\nimport {\r\n OptionManager\r\n} from \"./option_manager\";\r\nimport {\r\n getPathParts\r\n} from \"../utils/data\";\r\nimport {\r\n getFieldName,\r\n getParentName,\r\n convertRulesToOptions,\r\n getNestedOptionValue\r\n} from \"./utils\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nexport class Options {\r\n constructor(options, defaultOptions, optionsByReference, deprecatedOptions) {\r\n this._deprecatedCallback;\r\n this._startChangeCallback;\r\n this._endChangeCallback;\r\n this._default = defaultOptions;\r\n this._deprecated = deprecatedOptions;\r\n this._deprecatedNames = [];\r\n this._initDeprecatedNames();\r\n this._optionManager = new OptionManager(options, optionsByReference);\r\n this._optionManager.onRelevantNamesPrepared((options, name, value, silent) => this._setRelevantNames(options, name, value, silent));\r\n this._cachedOptions = {};\r\n this._rules = []\r\n }\r\n set _initial(value) {\r\n this._initialOptions = value\r\n }\r\n get _initial() {\r\n if (!this._initialOptions) {\r\n var rulesOptions = this._getByRules(this.silent(\"defaultOptionsRules\"));\r\n this._initialOptions = this._default;\r\n this._optionManager._setByReference(this._initialOptions, rulesOptions)\r\n }\r\n return this._initialOptions\r\n }\r\n _initDeprecatedNames() {\r\n for (var optionName in this._deprecated) {\r\n this._deprecatedNames.push(optionName)\r\n }\r\n }\r\n _getByRules(rules) {\r\n rules = Array.isArray(rules) ? this._rules.concat(rules) : this._rules;\r\n return convertRulesToOptions(rules)\r\n }\r\n _notifyDeprecated(option) {\r\n var info = this._deprecated[option];\r\n if (info) {\r\n this._deprecatedCallback(option, info)\r\n }\r\n }\r\n _setRelevantNames(options, name, value, silent) {\r\n if (name) {\r\n var normalizedName = this._normalizeName(name, silent);\r\n if (normalizedName && normalizedName !== name) {\r\n this._setField(options, normalizedName, value);\r\n this._clearField(options, name)\r\n }\r\n }\r\n }\r\n _setField(options, fullName, value) {\r\n var fieldName = \"\";\r\n var fieldObject = null;\r\n do {\r\n fieldName = fieldName ? \".\".concat(fieldName) : \"\";\r\n fieldName = getFieldName(fullName) + fieldName;\r\n fullName = getParentName(fullName);\r\n fieldObject = fullName ? this._optionManager.get(options, fullName, false) : options\r\n } while (!fieldObject);\r\n fieldObject[fieldName] = value\r\n }\r\n _clearField(options, name) {\r\n delete options[name];\r\n var previousFieldName = getParentName(name);\r\n var fieldObject = previousFieldName ? this._optionManager.get(options, previousFieldName, false) : options;\r\n if (fieldObject) {\r\n delete fieldObject[getFieldName(name)]\r\n }\r\n }\r\n _normalizeName(name, silent) {\r\n if (this._deprecatedNames.length && name) {\r\n for (var i = 0; i < this._deprecatedNames.length; i++) {\r\n if (this._deprecatedNames[i] === name) {\r\n var deprecate = this._deprecated[name];\r\n if (deprecate) {\r\n !silent && this._notifyDeprecated(name);\r\n return deprecate.alias || name\r\n }\r\n }\r\n }\r\n }\r\n return name\r\n }\r\n addRules(rules) {\r\n this._rules = rules.concat(this._rules)\r\n }\r\n applyRules(rules) {\r\n var options = this._getByRules(rules);\r\n this.silent(options)\r\n }\r\n dispose() {\r\n this._deprecatedCallback = noop;\r\n this._startChangeCallback = noop;\r\n this._endChangeCallback = noop;\r\n this._optionManager.dispose()\r\n }\r\n onChanging(callBack) {\r\n this._optionManager.onChanging(callBack)\r\n }\r\n onChanged(callBack) {\r\n this._optionManager.onChanged(callBack)\r\n }\r\n onDeprecated(callBack) {\r\n this._deprecatedCallback = callBack\r\n }\r\n onStartChange(callBack) {\r\n this._startChangeCallback = callBack\r\n }\r\n onEndChange(callBack) {\r\n this._endChangeCallback = callBack\r\n }\r\n isInitial(name) {\r\n var value = this.silent(name);\r\n var initialValue = this.initial(name);\r\n var areFunctions = isFunction(value) && isFunction(initialValue);\r\n return areFunctions ? value.toString() === initialValue.toString() : equalByValue(value, initialValue)\r\n }\r\n initial(name) {\r\n return getNestedOptionValue(this._initial, name)\r\n }\r\n option(options, value) {\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n if (isGetter) {\r\n return this._optionManager.get(void 0, this._normalizeName(options))\r\n } else {\r\n this._startChangeCallback();\r\n try {\r\n this._optionManager.set(options, value)\r\n } finally {\r\n this._endChangeCallback()\r\n }\r\n }\r\n }\r\n silent(options, value) {\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n if (isGetter) {\r\n return this._optionManager.get(void 0, options, void 0, true)\r\n } else {\r\n this._optionManager.set(options, value, void 0, true)\r\n }\r\n }\r\n reset(name) {\r\n if (name) {\r\n var fullPath = getPathParts(name);\r\n var value = fullPath.reduce((value, field) => value ? value[field] : this.initial(field), null);\r\n var defaultValue = isObject(value) ? _extends({}, value) : value;\r\n this._optionManager.set(name, defaultValue, false)\r\n }\r\n }\r\n getAliasesByName(name) {\r\n return Object.keys(this._deprecated).filter(aliasName => name === this._deprecated[aliasName].alias)\r\n }\r\n isDeprecated(name) {\r\n return Object.prototype.hasOwnProperty.call(this._deprecated, name)\r\n }\r\n cache(name, options) {\r\n var isGetter = arguments.length < 2;\r\n if (isGetter) {\r\n return this._cachedOptions[name]\r\n } else {\r\n this._cachedOptions[name] = extend(this._cachedOptions[name], options)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/postponed_operations.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n Deferred,\r\n when\r\n} from \"./utils/deferred\";\r\nimport {\r\n isDefined\r\n} from \"./utils/type\";\r\nexport class PostponedOperations {\r\n constructor() {\r\n this._postponedOperations = {}\r\n }\r\n add(key, fn, postponedPromise) {\r\n if (key in this._postponedOperations) {\r\n postponedPromise && this._postponedOperations[key].promises.push(postponedPromise)\r\n } else {\r\n var completePromise = new Deferred;\r\n this._postponedOperations[key] = {\r\n fn: fn,\r\n completePromise: completePromise,\r\n promises: postponedPromise ? [postponedPromise] : []\r\n }\r\n }\r\n return this._postponedOperations[key].completePromise.promise()\r\n }\r\n callPostponedOperations() {\r\n for (var key in this._postponedOperations) {\r\n var operation = this._postponedOperations[key];\r\n if (isDefined(operation)) {\r\n if (operation.promises && operation.promises.length) {\r\n when(...operation.promises).done(operation.fn).then(operation.completePromise.resolve)\r\n } else {\r\n operation.fn().done(operation.completePromise.resolve)\r\n }\r\n }\r\n }\r\n this._postponedOperations = {}\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/component.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport Config from \"./config\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n Options\r\n} from \"./options/index\";\r\nimport {\r\n convertRulesToOptions\r\n} from \"./options/utils\";\r\nimport Class from \"./class\";\r\nimport Action from \"./action\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nimport {\r\n PostponedOperations\r\n} from \"./postponed_operations\";\r\nimport {\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"./utils/type\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getPathParts\r\n} from \"./utils/data\";\r\nvar getEventName = actionName => actionName.charAt(2).toLowerCase() + actionName.substr(3);\r\nvar isInnerOption = optionName => 0 === optionName.indexOf(\"_\", 0);\r\nexport var Component = Class.inherit({\r\n _setDeprecatedOptions() {\r\n this._deprecatedOptions = {}\r\n },\r\n _getDeprecatedOptions() {\r\n return this._deprecatedOptions\r\n },\r\n _getDefaultOptions: () => ({\r\n onInitialized: null,\r\n onOptionChanged: null,\r\n onDisposing: null,\r\n defaultOptionsRules: null\r\n }),\r\n _defaultOptionsRules: () => [],\r\n _setOptionsByDevice(rules) {\r\n this._options.applyRules(rules)\r\n },\r\n _convertRulesToOptions: rules => convertRulesToOptions(rules),\r\n _isInitialOptionValue(name) {\r\n return this._options.isInitial(name)\r\n },\r\n _setOptionsByReference() {\r\n this._optionsByReference = {}\r\n },\r\n _getOptionsByReference() {\r\n return this._optionsByReference\r\n },\r\n ctor() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n var {\r\n _optionChangedCallbacks: _optionChangedCallbacks,\r\n _disposingCallbacks: _disposingCallbacks\r\n } = options;\r\n this.NAME = publicComponentName(this.constructor);\r\n this._eventsStrategy = EventsStrategy.create(this, options.eventsStrategy);\r\n this._updateLockCount = 0;\r\n this._optionChangedCallbacks = _optionChangedCallbacks || Callbacks();\r\n this._disposingCallbacks = _disposingCallbacks || Callbacks();\r\n this.postponedOperations = new PostponedOperations;\r\n this._createOptions(options)\r\n },\r\n _createOptions(options) {\r\n this.beginUpdate();\r\n try {\r\n this._setOptionsByReference();\r\n this._setDeprecatedOptions();\r\n this._options = new Options(this._getDefaultOptions(), this._getDefaultOptions(), this._getOptionsByReference(), this._getDeprecatedOptions());\r\n this._options.onChanging((name, previousValue, value) => this._initialized && this._optionChanging(name, previousValue, value));\r\n this._options.onDeprecated((option, info) => this._logDeprecatedOptionWarning(option, info));\r\n this._options.onChanged((name, value, previousValue) => this._notifyOptionChanged(name, value, previousValue));\r\n this._options.onStartChange(() => this.beginUpdate());\r\n this._options.onEndChange(() => this.endUpdate());\r\n this._options.addRules(this._defaultOptionsRules());\r\n if (options && options.onInitializing) {\r\n options.onInitializing.apply(this, [options])\r\n }\r\n this._setOptionsByDevice(options.defaultOptionsRules);\r\n this._initOptions(options)\r\n } finally {\r\n this.endUpdate()\r\n }\r\n },\r\n _initOptions(options) {\r\n this.option(options)\r\n },\r\n _init() {\r\n this._createOptionChangedAction();\r\n this.on(\"disposing\", args => {\r\n this._disposingCallbacks.fireWith(this, [args])\r\n })\r\n },\r\n _logDeprecatedOptionWarning(option, info) {\r\n var message = info.message || \"Use the '\".concat(info.alias, \"' option instead\");\r\n errors.log(\"W0001\", this.NAME, option, info.since, message)\r\n },\r\n _logDeprecatedComponentWarning(since, alias) {\r\n errors.log(\"W0000\", this.NAME, since, \"Use the '\".concat(alias, \"' widget instead\"))\r\n },\r\n _createOptionChangedAction() {\r\n this._optionChangedAction = this._createActionByOption(\"onOptionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _createDisposingAction() {\r\n this._disposingAction = this._createActionByOption(\"onDisposing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onDisposing\":\r\n case \"onInitialized\":\r\n break;\r\n case \"onOptionChanged\":\r\n this._createOptionChangedAction()\r\n }\r\n },\r\n _dispose() {\r\n this._optionChangedCallbacks.empty();\r\n this._createDisposingAction();\r\n this._disposingAction();\r\n this._eventsStrategy.dispose();\r\n this._options.dispose();\r\n this._disposed = true\r\n },\r\n _lockUpdate() {\r\n this._updateLockCount++\r\n },\r\n _unlockUpdate() {\r\n this._updateLockCount = Math.max(this._updateLockCount - 1, 0)\r\n },\r\n _isUpdateAllowed() {\r\n return 0 === this._updateLockCount\r\n },\r\n _isInitializingRequired() {\r\n return !this._initializing && !this._initialized\r\n },\r\n isInitialized() {\r\n return this._initialized\r\n },\r\n _commitUpdate() {\r\n this.postponedOperations.callPostponedOperations();\r\n this._isInitializingRequired() && this._initializeComponent()\r\n },\r\n _initializeComponent() {\r\n this._initializing = true;\r\n try {\r\n this._init()\r\n } finally {\r\n this._initializing = false;\r\n this._lockUpdate();\r\n this._createActionByOption(\"onInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })();\r\n this._unlockUpdate();\r\n this._initialized = true\r\n }\r\n },\r\n instance() {\r\n return this\r\n },\r\n beginUpdate: function() {\r\n this._lockUpdate()\r\n },\r\n endUpdate: function() {\r\n this._unlockUpdate();\r\n this._isUpdateAllowed() && this._commitUpdate()\r\n },\r\n _optionChanging: noop,\r\n _notifyOptionChanged(option, value, previousValue) {\r\n if (this._initialized) {\r\n var optionNames = [option].concat(this._options.getAliasesByName(option));\r\n for (var i = 0; i < optionNames.length; i++) {\r\n var name = optionNames[i];\r\n var args = {\r\n name: getPathParts(name)[0],\r\n fullName: name,\r\n value: value,\r\n previousValue: previousValue\r\n };\r\n if (!isInnerOption(name)) {\r\n this._optionChangedCallbacks.fireWith(this, [extend(this._defaultActionArgs(), args)]);\r\n this._optionChangedAction(extend({}, args))\r\n }\r\n if (!this._disposed && this._cancelOptionChange !== name) {\r\n this._optionChanged(args)\r\n }\r\n }\r\n }\r\n },\r\n initialOption(name) {\r\n return this._options.initial(name)\r\n },\r\n _defaultActionConfig() {\r\n return {\r\n context: this,\r\n component: this\r\n }\r\n },\r\n _defaultActionArgs() {\r\n return {\r\n component: this\r\n }\r\n },\r\n _createAction(actionSource, config) {\r\n var action;\r\n return e => {\r\n if (!isDefined(e)) {\r\n e = {}\r\n }\r\n if (!isPlainObject(e)) {\r\n e = {\r\n actionValue: e\r\n }\r\n }\r\n action = action || new Action(actionSource, extend(config, this._defaultActionConfig()));\r\n return action.execute.call(action, extend(e, this._defaultActionArgs()))\r\n }\r\n },\r\n _createActionByOption(optionName, config) {\r\n var _this = this;\r\n var action;\r\n var eventName;\r\n var actionFunc;\r\n var result = function() {\r\n if (!eventName) {\r\n config = config || {};\r\n if (\"string\" !== typeof optionName) {\r\n throw errors.Error(\"E0008\")\r\n }\r\n if (0 === optionName.indexOf(\"on\")) {\r\n eventName = getEventName(optionName)\r\n }\r\n actionFunc = _this.option()[optionName]\r\n }\r\n if (!action && !actionFunc && !config.beforeExecute && !config.afterExecute && !_this._eventsStrategy.hasEvent(eventName)) {\r\n return\r\n }\r\n if (!action) {\r\n var beforeExecute = config.beforeExecute;\r\n config.beforeExecute = function() {\r\n for (var _len2 = arguments.length, props = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n props[_key2] = arguments[_key2]\r\n }\r\n beforeExecute && beforeExecute.apply(_this, props);\r\n _this._eventsStrategy.fireEvent(eventName, props[0].args)\r\n };\r\n action = _this._createAction(actionFunc, config)\r\n }\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n if (Config().wrapActionsBeforeExecute) {\r\n var beforeActionExecute = _this.option(\"beforeActionExecute\") || noop;\r\n var wrappedAction = beforeActionExecute(_this, action, config) || action;\r\n return wrappedAction.apply(_this, args)\r\n }\r\n return action.apply(_this, args)\r\n };\r\n if (Config().wrapActionsBeforeExecute) {\r\n return result\r\n }\r\n var onActionCreated = this.option(\"onActionCreated\") || noop;\r\n return onActionCreated(this, result, config) || result\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n },\r\n hasActionSubscription: function(actionName) {\r\n return !!this._options.silent(actionName) || this._eventsStrategy.hasEvent(getEventName(actionName))\r\n },\r\n isOptionDeprecated(name) {\r\n return this._options.isDeprecated(name)\r\n },\r\n _setOptionWithoutOptionChange(name, value) {\r\n this._cancelOptionChange = name;\r\n this.option(name, value);\r\n this._cancelOptionChange = false\r\n },\r\n _getOptionValue(name, context) {\r\n var value = this.option(name);\r\n if (isFunction(value)) {\r\n return value.bind(context)()\r\n }\r\n return value\r\n },\r\n option() {\r\n return this._options.option(...arguments)\r\n },\r\n resetOption(name) {\r\n this.beginUpdate();\r\n this._options.reset(name);\r\n this.endUpdate()\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/data/utils.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n equalByValue\r\n} from \"../core/utils/common\";\r\nvar ready = readyCallbacks.add;\r\nexport var XHR_ERROR_UNLOAD = \"DEVEXTREME_XHR_ERROR_UNLOAD\";\r\nexport var normalizeBinaryCriterion = function(crit) {\r\n return [crit[0], crit.length < 3 ? \"=\" : String(crit[1]).toLowerCase(), crit.length < 2 ? true : crit[crit.length - 1]]\r\n};\r\nexport var normalizeSortingInfo = function(info) {\r\n if (!Array.isArray(info)) {\r\n info = [info]\r\n }\r\n return map(info, (function(i) {\r\n var result = {\r\n selector: isFunction(i) || \"string\" === typeof i ? i : i.getter || i.field || i.selector,\r\n desc: !!(i.desc || \"d\" === String(i.dir).charAt(0).toLowerCase())\r\n };\r\n if (i.compare) {\r\n result.compare = i.compare\r\n }\r\n return result\r\n }))\r\n};\r\nexport var errorMessageFromXhr = function() {\r\n var textStatusMessages = {\r\n timeout: \"Network connection timeout\",\r\n error: \"Unspecified network error\",\r\n parsererror: \"Unexpected server response\"\r\n };\r\n var unloading;\r\n ready((function() {\r\n var window = getWindow();\r\n domAdapter.listen(window, \"beforeunload\", (function() {\r\n unloading = true\r\n }))\r\n }));\r\n return function(xhr, textStatus) {\r\n if (unloading) {\r\n return XHR_ERROR_UNLOAD\r\n }\r\n if (xhr.status < 400) {\r\n return function(textStatus) {\r\n var result = textStatusMessages[textStatus];\r\n if (!result) {\r\n return textStatus\r\n }\r\n return result\r\n }(textStatus)\r\n }\r\n return xhr.statusText\r\n }\r\n}();\r\nexport var aggregators = {\r\n count: {\r\n seed: 0,\r\n step: function(count) {\r\n return 1 + count\r\n }\r\n },\r\n sum: {\r\n seed: 0,\r\n step: function(sum, item) {\r\n return sum + item\r\n }\r\n },\r\n min: {\r\n step: function(min, item) {\r\n return item < min ? item : min\r\n }\r\n },\r\n max: {\r\n step: function(max, item) {\r\n return item > max ? item : max\r\n }\r\n },\r\n avg: {\r\n seed: [0, 0],\r\n step: function(pair, value) {\r\n return [pair[0] + value, pair[1] + 1]\r\n },\r\n finalize: function(pair) {\r\n return pair[1] ? pair[0] / pair[1] : NaN\r\n }\r\n }\r\n};\r\nexport var processRequestResultLock = function() {\r\n var lockCount = 0;\r\n var lockDeferred;\r\n return {\r\n obtain: function() {\r\n if (0 === lockCount) {\r\n lockDeferred = new Deferred\r\n }\r\n lockCount++\r\n },\r\n release: function() {\r\n lockCount--;\r\n if (lockCount < 1) {\r\n lockDeferred.resolve()\r\n }\r\n },\r\n promise: function() {\r\n var deferred = 0 === lockCount ? (new Deferred).resolve() : lockDeferred;\r\n return deferred.promise()\r\n },\r\n reset: function() {\r\n lockCount = 0;\r\n if (lockDeferred) {\r\n lockDeferred.resolve()\r\n }\r\n }\r\n }\r\n}();\r\nexport function isDisjunctiveOperator(condition) {\r\n return /^(or|\\|\\||\\|)$/i.test(condition)\r\n}\r\nexport function isConjunctiveOperator(condition) {\r\n return /^(and|&&|&)$/i.test(condition)\r\n}\r\nexport var keysEqual = function(keyExpr, key1, key2) {\r\n if (Array.isArray(keyExpr)) {\r\n var names = map(key1, (function(v, k) {\r\n return k\r\n }));\r\n var name;\r\n for (var i = 0; i < names.length; i++) {\r\n name = names[i];\r\n if (!equalByValue(key1[name], key2[name], 0, false)) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return equalByValue(key1, key2, 0, false)\r\n};\r\nvar BASE64_CHARS = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\nexport var base64_encode = function(input) {\r\n if (!Array.isArray(input)) {\r\n input = stringToByteArray(String(input))\r\n }\r\n var result = \"\";\r\n\r\n function getBase64Char(index) {\r\n return BASE64_CHARS.charAt(index)\r\n }\r\n for (var i = 0; i < input.length; i += 3) {\r\n var octet1 = input[i];\r\n var octet2 = input[i + 1];\r\n var octet3 = input[i + 2];\r\n result += map([octet1 >> 2, (3 & octet1) << 4 | octet2 >> 4, isNaN(octet2) ? 64 : (15 & octet2) << 2 | octet3 >> 6, isNaN(octet3) ? 64 : 63 & octet3], getBase64Char).join(\"\")\r\n }\r\n return result\r\n};\r\n\r\nfunction stringToByteArray(str) {\r\n var bytes = [];\r\n var code;\r\n var i;\r\n for (i = 0; i < str.length; i++) {\r\n code = str.charCodeAt(i);\r\n if (code < 128) {\r\n bytes.push(code)\r\n } else if (code < 2048) {\r\n bytes.push(192 + (code >> 6), 128 + (63 & code))\r\n } else if (code < 65536) {\r\n bytes.push(224 + (code >> 12), 128 + (code >> 6 & 63), 128 + (63 & code))\r\n } else if (code < 2097152) {\r\n bytes.push(240 + (code >> 18), 128 + (code >> 12 & 63), 128 + (code >> 6 & 63), 128 + (63 & code))\r\n }\r\n }\r\n return bytes\r\n}\r\nexport var isUnaryOperation = function(crit) {\r\n return \"!\" === crit[0] && Array.isArray(crit[1])\r\n};\r\nvar isGroupOperator = function(value) {\r\n return \"and\" === value || \"or\" === value\r\n};\r\nexport var isGroupCriterion = function(crit) {\r\n var first = crit[0];\r\n var second = crit[1];\r\n if (Array.isArray(first)) {\r\n return true\r\n }\r\n if (isFunction(first)) {\r\n if (Array.isArray(second) || isFunction(second) || isGroupOperator(second)) {\r\n return true\r\n }\r\n }\r\n return false\r\n};\r\nexport var trivialPromise = function() {\r\n var d = new Deferred;\r\n return d.resolve.apply(d, arguments).promise()\r\n};\r\nexport var rejectedPromise = function() {\r\n var d = new Deferred;\r\n return d.reject.apply(d, arguments).promise()\r\n};\r\n\r\nfunction throttle(func, timeout) {\r\n var timeoutId;\r\n var lastArgs;\r\n return function() {\r\n lastArgs = arguments;\r\n if (!timeoutId) {\r\n timeoutId = setTimeout(() => {\r\n timeoutId = void 0;\r\n if (lastArgs) {\r\n func.call(this, lastArgs)\r\n }\r\n }, isFunction(timeout) ? timeout() : timeout)\r\n }\r\n return timeoutId\r\n }\r\n}\r\nexport function throttleChanges(func, timeout) {\r\n var cache = [];\r\n var throttled = throttle((function() {\r\n func.call(this, cache);\r\n cache = []\r\n }), timeout);\r\n return function(changes) {\r\n if (Array.isArray(changes)) {\r\n cache.push(...changes)\r\n }\r\n return throttled.call(this, cache)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/load_indicator.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getNavigator\r\n} from \"../core/utils/window\";\r\nvar navigator = getNavigator();\r\nimport {\r\n animation\r\n} from \"../core/utils/support\";\r\nimport {\r\n current,\r\n isMaterial,\r\n isGeneric\r\n} from \"./themes\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Widget from \"./widget/ui.widget\";\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 = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return 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 = current();\r\n return this.callBase().concat([{\r\n device: function() {\r\n var realDevice = devices.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 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 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 = $(\"
\").addClass(LOADINDICATOR_WRAPPER_CLASS);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _renderIndicatorContent: function() {\r\n this._$content = $(\"
\").addClass(LOADINDICATOR_CONTENT_CLASS);\r\n this._$wrapper.append(this._$content)\r\n },\r\n _renderMarkup: function() {\r\n if (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 = $(\"
\").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 = $(\"
\").addClass(LOADINDICATOR_SEGMENT_CLASS).addClass(LOADINDICATOR_SEGMENT_CLASS + i);\r\n if (animatingSegmentInner) {\r\n $segment.append($(\"
\").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 = getWidth(this.$element());\r\n height = getHeight(this.$element());\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\nregisterComponent(\"dxLoadIndicator\", LoadIndicator);\r\nexport default LoadIndicator;\r\n","/**\r\n * DevExtreme (esm/ui/popup/popup_position_controller.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"fullScreen\", \"forceApplyBindings\"];\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n OverlayPositionController\r\n} from \"../overlay/overlay_position_controller\";\r\nvar window = getWindow();\r\nclass PopupPositionController extends OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings\r\n } = _ref, args = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n super(args);\r\n this._props = _extends({}, this._props, {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings\r\n });\r\n this._lastPositionBeforeFullScreen = void 0\r\n }\r\n set fullScreen(fullScreen) {\r\n this._props.fullScreen = fullScreen;\r\n if (fullScreen) {\r\n this._fullScreenEnabled()\r\n } else {\r\n this._fullScreenDisabled()\r\n }\r\n }\r\n positionContent() {\r\n if (this._props.fullScreen) {\r\n move(this._$content, {\r\n top: 0,\r\n left: 0\r\n });\r\n this.detectVisualPositionChange()\r\n } else {\r\n var _this$_props$forceApp, _this$_props;\r\n null === (_this$_props$forceApp = (_this$_props = this._props).forceApplyBindings) || void 0 === _this$_props$forceApp ? void 0 : _this$_props$forceApp.call(_this$_props);\r\n if (!this._shouldRenderContentInitialPosition && this._lastPositionBeforeFullScreen) {\r\n move(this._$content, this._lastPositionBeforeFullScreen);\r\n this._lastPositionBeforeFullScreen = void 0;\r\n this.detectVisualPositionChange()\r\n } else {\r\n super.positionContent()\r\n }\r\n }\r\n }\r\n _getWrapperCoveredElement() {\r\n if (this._props.fullScreen) {\r\n return $(window)\r\n }\r\n return super._getWrapperCoveredElement()\r\n }\r\n _fullScreenEnabled() {\r\n this.restorePositionOnNextRender(false);\r\n this._lastPositionBeforeFullScreen = this._visualPosition\r\n }\r\n _fullScreenDisabled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n}\r\nexport {\r\n PopupPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popup/ui.popup.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getVisibleHeight,\r\n addOffsetToMaxHeight,\r\n addOffsetToMinHeight,\r\n getVerticalOffsets,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Button from \"../button\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n isMaterial,\r\n current as currentTheme\r\n} from \"../themes\";\r\nimport \"../toolbar/ui.toolbar.base\";\r\nimport {\r\n PopupPositionController\r\n} from \"./popup_position_controller\";\r\nvar window = getWindow();\r\nvar POPUP_CLASS = \"dx-popup\";\r\nvar POPUP_WRAPPER_CLASS = \"dx-popup-wrapper\";\r\nvar POPUP_FULL_SCREEN_CLASS = \"dx-popup-fullscreen\";\r\nvar POPUP_FULL_SCREEN_WIDTH_CLASS = \"dx-popup-fullscreen-width\";\r\nvar POPUP_NORMAL_CLASS = \"dx-popup-normal\";\r\nvar POPUP_CONTENT_CLASS = \"dx-popup-content\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar POPUP_DRAGGABLE_CLASS = \"dx-popup-draggable\";\r\nvar POPUP_TITLE_CLASS = \"dx-popup-title\";\r\nvar POPUP_TITLE_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar POPUP_BOTTOM_CLASS = \"dx-popup-bottom\";\r\nvar POPUP_HAS_CLOSE_BUTTON_CLASS = \"dx-has-close-button\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar POPUP_CONTENT_FLEX_HEIGHT_CLASS = \"dx-popup-flex-height\";\r\nvar POPUP_CONTENT_INHERIT_HEIGHT_CLASS = \"dx-popup-inherit-height\";\r\nvar ALLOWED_TOOLBAR_ITEM_ALIASES = [\"cancel\", \"clear\", \"done\"];\r\nvar BUTTON_DEFAULT_TYPE = \"default\";\r\nvar BUTTON_NORMAL_TYPE = \"normal\";\r\nvar BUTTON_TEXT_MODE = \"text\";\r\nvar BUTTON_CONTAINED_MODE = \"contained\";\r\nvar IS_OLD_SAFARI = browser.safari && compareVersions(browser.version, [11]) < 0;\r\nvar HEIGHT_STRATEGIES = {\r\n static: \"\",\r\n inherit: POPUP_CONTENT_INHERIT_HEIGHT_CLASS,\r\n flex: POPUP_CONTENT_FLEX_HEIGHT_CLASS\r\n};\r\nvar getButtonPlace = name => {\r\n var device = devices.current();\r\n var platform = device.platform;\r\n var toolbar = \"bottom\";\r\n var location = \"before\";\r\n if (\"ios\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n toolbar = \"top\";\r\n break;\r\n case \"clear\":\r\n toolbar = \"top\";\r\n location = \"after\";\r\n break;\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n } else if (\"android\" === platform && device.version && parseInt(device.version[0]) > 4) {\r\n switch (name) {\r\n case \"cancel\":\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n }\r\n return {\r\n toolbar: toolbar,\r\n location: location\r\n }\r\n};\r\nvar Popup = Overlay.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n fullScreen: false,\r\n title: \"\",\r\n showTitle: true,\r\n titleTemplate: \"title\",\r\n onTitleRendered: null,\r\n dragEnabled: false,\r\n toolbarItems: [],\r\n showCloseButton: false,\r\n bottomTemplate: \"bottom\",\r\n useDefaultToolbarButtons: false,\r\n useFlatToolbarButtons: false,\r\n autoResizeEnabled: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n animation: this._iosAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n animation: this._androidAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n showCloseButton: true\r\n }\r\n }, {\r\n device: function(_device) {\r\n return \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n dragEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n useDefaultToolbarButtons: true,\r\n useFlatToolbarButtons: true,\r\n showCloseButton: false\r\n }\r\n }])\r\n },\r\n _iosAnimation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n opacity: 1,\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n },\r\n to: {\r\n opacity: 1,\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n }\r\n }\r\n },\r\n _androidAnimation: function() {\r\n return this.option(\"fullScreen\") ? {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: \"30%\",\r\n opacity: 0\r\n },\r\n to: {\r\n top: 0,\r\n opacity: 1\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: 0,\r\n opacity: 1\r\n },\r\n to: {\r\n top: \"30%\",\r\n opacity: 0\r\n }\r\n }\r\n } : {\r\n show: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(POPUP_CLASS);\r\n this.$wrapper().addClass(POPUP_WRAPPER_CLASS);\r\n this._$popupContent = this._$content.wrapInner($(\"
\").addClass(POPUP_CONTENT_CLASS)).children().eq(0)\r\n },\r\n _render: function() {\r\n var isFullscreen = this.option(\"fullScreen\");\r\n this._toggleFullScreenClass(isFullscreen);\r\n this.callBase()\r\n },\r\n _toggleFullScreenClass: function(value) {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_CLASS, value).toggleClass(POPUP_NORMAL_CLASS, !value)\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new EmptyTemplate,\r\n bottom: new EmptyTemplate\r\n })\r\n },\r\n _renderContentImpl: function() {\r\n this._renderTitle();\r\n this.callBase();\r\n this._renderBottom()\r\n },\r\n _renderTitle: function() {\r\n var items = this._getToolbarItems(\"top\");\r\n var titleText = this.option(\"title\");\r\n var showTitle = this.option(\"showTitle\");\r\n if (showTitle && !!titleText) {\r\n items.unshift({\r\n location: devices.current().ios ? \"center\" : \"before\",\r\n text: titleText\r\n })\r\n }\r\n if (showTitle || items.length > 0) {\r\n this._$title && this._$title.remove();\r\n var $title = $(\"
\").addClass(POPUP_TITLE_CLASS).insertBefore(this.$content());\r\n this._$title = this._renderTemplateByType(\"titleTemplate\", items, $title).addClass(POPUP_TITLE_CLASS);\r\n this._renderDrag();\r\n this._executeTitleRenderAction(this._$title);\r\n this._$title.toggleClass(POPUP_HAS_CLOSE_BUTTON_CLASS, this._hasCloseButton())\r\n } else if (this._$title) {\r\n this._$title.detach()\r\n }\r\n },\r\n _renderTemplateByType: function(optionName, data, $container, additionalToolbarOptions) {\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n useDefaultToolbarButtons: useDefaultToolbarButtons,\r\n useFlatToolbarButtons: useFlatToolbarButtons,\r\n disabled: disabled\r\n } = this.option();\r\n var template = this._getTemplateByOption(optionName);\r\n var toolbarTemplate = template instanceof EmptyTemplate;\r\n if (toolbarTemplate) {\r\n var integrationOptions = extend({}, this.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\", \"title\"]\r\n });\r\n var toolbarOptions = extend(additionalToolbarOptions, {\r\n items: data,\r\n rtlEnabled: rtlEnabled,\r\n useDefaultButtons: useDefaultToolbarButtons,\r\n useFlatButtons: useFlatToolbarButtons,\r\n disabled: disabled,\r\n integrationOptions: integrationOptions\r\n });\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: {\r\n widget: \"dxToolbarBase\",\r\n options: toolbarOptions\r\n }\r\n });\r\n var $toolbar = $container.children(\"div\");\r\n $container.replaceWith($toolbar);\r\n return $toolbar\r\n } else {\r\n var $result = $(template.render({\r\n container: getPublicElement($container)\r\n }));\r\n if ($result.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n $container.replaceWith($result);\r\n $container = $result\r\n }\r\n return $container\r\n }\r\n },\r\n _executeTitleRenderAction: function($titleElement) {\r\n this._getTitleRenderAction()({\r\n titleElement: getPublicElement($titleElement)\r\n })\r\n },\r\n _getTitleRenderAction: function() {\r\n return this._titleRenderAction || this._createTitleRenderAction()\r\n },\r\n _createTitleRenderAction: function() {\r\n return this._titleRenderAction = this._createActionByOption(\"onTitleRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _getCloseButton: function() {\r\n return {\r\n toolbar: \"top\",\r\n location: \"after\",\r\n template: this._getCloseButtonRenderer()\r\n }\r\n },\r\n _getCloseButtonRenderer: function() {\r\n return (_, __, container) => {\r\n var $button = $(\"
\").addClass(POPUP_TITLE_CLOSEBUTTON_CLASS);\r\n this._createComponent($button, Button, {\r\n icon: \"close\",\r\n onClick: this._createToolbarItemAction(void 0),\r\n stylingMode: \"text\",\r\n integrationOptions: {}\r\n });\r\n $(container).append($button)\r\n }\r\n },\r\n _getToolbarItems: function(toolbar) {\r\n var toolbarItems = this.option(\"toolbarItems\");\r\n var toolbarsItems = [];\r\n this._toolbarItemClasses = [];\r\n var currentPlatform = devices.current().platform;\r\n var index = 0;\r\n each(toolbarItems, (_, data) => {\r\n var isShortcut = isDefined(data.shortcut);\r\n var item = isShortcut ? getButtonPlace(data.shortcut) : data;\r\n if (isShortcut && \"ios\" === currentPlatform && index < 2) {\r\n item.toolbar = \"top\";\r\n index++\r\n }\r\n item.toolbar = data.toolbar || item.toolbar || \"top\";\r\n if (item && item.toolbar === toolbar) {\r\n if (isShortcut) {\r\n extend(item, {\r\n location: data.location\r\n }, this._getToolbarItemByAlias(data))\r\n }\r\n var isLTROrder = \"generic\" === currentPlatform;\r\n if (\"done\" === data.shortcut && isLTROrder || \"cancel\" === data.shortcut && !isLTROrder) {\r\n toolbarsItems.unshift(item)\r\n } else {\r\n toolbarsItems.push(item)\r\n }\r\n }\r\n });\r\n if (\"top\" === toolbar && this._hasCloseButton()) {\r\n toolbarsItems.push(this._getCloseButton())\r\n }\r\n return toolbarsItems\r\n },\r\n _hasCloseButton() {\r\n return this.option(\"showCloseButton\") && this.option(\"showTitle\")\r\n },\r\n _getLocalizationKey: itemType => \"done\" === itemType.toLowerCase() ? \"OK\" : camelize(itemType, true),\r\n _getToolbarItemByAlias: function(data) {\r\n var that = this;\r\n var itemType = data.shortcut;\r\n if (inArray(itemType, ALLOWED_TOOLBAR_ITEM_ALIASES) < 0) {\r\n return false\r\n }\r\n var itemConfig = extend({\r\n text: messageLocalization.format(this._getLocalizationKey(itemType)),\r\n onClick: this._createToolbarItemAction(data.onClick),\r\n integrationOptions: {},\r\n type: that.option(\"useDefaultToolbarButtons\") ? BUTTON_DEFAULT_TYPE : BUTTON_NORMAL_TYPE,\r\n stylingMode: that.option(\"useFlatToolbarButtons\") ? BUTTON_TEXT_MODE : BUTTON_CONTAINED_MODE\r\n }, data.options || {});\r\n var itemClass = POPUP_CLASS + \"-\" + itemType;\r\n this._toolbarItemClasses.push(itemClass);\r\n return {\r\n template: function(_, __, container) {\r\n var $toolbarItem = $(\"
\").addClass(itemClass).appendTo(container);\r\n that._createComponent($toolbarItem, Button, itemConfig)\r\n }\r\n }\r\n },\r\n _createToolbarItemAction: function(clickAction) {\r\n return this._createAction(clickAction, {\r\n afterExecute: function(e) {\r\n e.component.hide()\r\n }\r\n })\r\n },\r\n _renderBottom: function() {\r\n var items = this._getToolbarItems(\"bottom\");\r\n if (items.length) {\r\n this._$bottom && this._$bottom.remove();\r\n var $bottom = $(\"
\").addClass(POPUP_BOTTOM_CLASS).insertAfter(this.$content());\r\n this._$bottom = this._renderTemplateByType(\"bottomTemplate\", items, $bottom, {\r\n compactMode: true\r\n }).addClass(POPUP_BOTTOM_CLASS);\r\n this._toggleClasses()\r\n } else {\r\n this._$bottom && this._$bottom.detach()\r\n }\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(...arguments);\r\n this.$content().toggleClass(DISABLED_STATE_CLASS, Boolean(value))\r\n },\r\n _toggleClasses: function() {\r\n var aliases = ALLOWED_TOOLBAR_ITEM_ALIASES;\r\n each(aliases, (_, alias) => {\r\n var className = POPUP_CLASS + \"-\" + alias;\r\n if (inArray(className, this._toolbarItemClasses) >= 0) {\r\n this.$wrapper().addClass(className + \"-visible\");\r\n this._$bottom.addClass(className)\r\n } else {\r\n this.$wrapper().removeClass(className + \"-visible\");\r\n this._$bottom.removeClass(className)\r\n }\r\n })\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings\r\n } = this.option();\r\n return extend({}, this.callBase(), {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings\r\n })\r\n },\r\n _initPositionController() {\r\n this._positionController = new PopupPositionController(this._getPositionControllerConfig())\r\n },\r\n _getDragTarget: function() {\r\n return this.topToolbar()\r\n },\r\n _renderGeometryImpl: function() {\r\n this._resetContentHeight();\r\n this.callBase();\r\n this._setContentHeight()\r\n },\r\n _resetContentHeight: function() {\r\n var height = this._getOptionValue(\"height\");\r\n if (\"auto\" === height) {\r\n this.$content().css({\r\n height: \"auto\",\r\n maxHeight: \"none\"\r\n })\r\n }\r\n },\r\n _renderDrag: function() {\r\n this.callBase();\r\n this.$overlayContent().toggleClass(POPUP_DRAGGABLE_CLASS, this.option(\"dragEnabled\"))\r\n },\r\n _renderResize: function() {\r\n this.callBase();\r\n this._resizable.option(\"onResize\", e => {\r\n this._setContentHeight();\r\n this._actions.onResize(e)\r\n })\r\n },\r\n _setContentHeight: function() {\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n var overlayContent = this.$overlayContent().get(0);\r\n var currentHeightStrategyClass = this._chooseHeightStrategy(overlayContent);\r\n this.$content().css(this._getHeightCssStyles(currentHeightStrategyClass, overlayContent));\r\n this._setHeightClasses(this.$overlayContent(), currentHeightStrategyClass)\r\n },\r\n _heightStrategyChangeOffset: function(currentHeightStrategyClass, popupVerticalPaddings) {\r\n return currentHeightStrategyClass === HEIGHT_STRATEGIES.flex ? -popupVerticalPaddings : 0\r\n },\r\n _chooseHeightStrategy: function(overlayContent) {\r\n var isAutoWidth = \"auto\" === overlayContent.style.width || \"\" === overlayContent.style.width;\r\n var currentHeightStrategyClass = HEIGHT_STRATEGIES.static;\r\n if (this._isAutoHeight() && this.option(\"autoResizeEnabled\")) {\r\n if (isAutoWidth || IS_OLD_SAFARI) {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.inherit\r\n } else {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.flex\r\n }\r\n }\r\n return currentHeightStrategyClass\r\n },\r\n _getHeightCssStyles: function(currentHeightStrategyClass, overlayContent) {\r\n var cssStyles = {};\r\n var contentMaxHeight = this._getOptionValue(\"maxHeight\", overlayContent);\r\n var contentMinHeight = this._getOptionValue(\"minHeight\", overlayContent);\r\n var popupHeightParts = this._splitPopupHeight();\r\n var toolbarsAndVerticalOffsetsHeight = popupHeightParts.header + popupHeightParts.footer + popupHeightParts.contentVerticalOffsets + popupHeightParts.popupVerticalOffsets + this._heightStrategyChangeOffset(currentHeightStrategyClass, popupHeightParts.popupVerticalPaddings);\r\n if (currentHeightStrategyClass === HEIGHT_STRATEGIES.static) {\r\n if (!this._isAutoHeight() || contentMaxHeight || contentMinHeight) {\r\n var overlayHeight = this.option(\"fullScreen\") ? Math.min(getBoundingRect(overlayContent).height, getWindow().innerHeight) : getBoundingRect(overlayContent).height;\r\n var contentHeight = overlayHeight - toolbarsAndVerticalOffsetsHeight;\r\n cssStyles = {\r\n height: Math.max(0, contentHeight),\r\n minHeight: \"auto\",\r\n maxHeight: \"auto\"\r\n }\r\n }\r\n } else {\r\n var container = $(this._positionController._$wrapperCoveredElement).get(0);\r\n var maxHeightValue = addOffsetToMaxHeight(contentMaxHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n var minHeightValue = addOffsetToMinHeight(contentMinHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n cssStyles = {\r\n height: \"auto\",\r\n minHeight: minHeightValue,\r\n maxHeight: maxHeightValue\r\n }\r\n }\r\n return cssStyles\r\n },\r\n _setHeightClasses: function($container, currentClass) {\r\n var excessClasses = \"\";\r\n for (var name in HEIGHT_STRATEGIES) {\r\n if (HEIGHT_STRATEGIES[name] !== currentClass) {\r\n excessClasses += \" \" + HEIGHT_STRATEGIES[name]\r\n }\r\n }\r\n $container.removeClass(excessClasses).addClass(currentClass)\r\n },\r\n _isAutoHeight: function() {\r\n return \"auto\" === this.$overlayContent().get(0).style.height\r\n },\r\n _splitPopupHeight: function() {\r\n var topToolbar = this.topToolbar();\r\n var bottomToolbar = this.bottomToolbar();\r\n return {\r\n header: getVisibleHeight(topToolbar && topToolbar.get(0)),\r\n footer: getVisibleHeight(bottomToolbar && bottomToolbar.get(0)),\r\n contentVerticalOffsets: getVerticalOffsets(this.$overlayContent().get(0), true),\r\n popupVerticalOffsets: getVerticalOffsets(this.$content().get(0), true),\r\n popupVerticalPaddings: getVerticalOffsets(this.$content().get(0), false)\r\n }\r\n },\r\n _isAllWindowCovered: function() {\r\n return this.callBase() || this.option(\"fullScreen\")\r\n },\r\n _renderDimensions: function() {\r\n if (this.option(\"fullScreen\")) {\r\n this.$overlayContent().css({\r\n width: \"100%\",\r\n height: \"100%\",\r\n minWidth: \"\",\r\n maxWidth: \"\",\r\n minHeight: \"\",\r\n maxHeight: \"\"\r\n })\r\n } else {\r\n this.callBase()\r\n }\r\n if (hasWindow()) {\r\n this._renderFullscreenWidthClass()\r\n }\r\n },\r\n _renderFullscreenWidthClass: function() {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_WIDTH_CLASS, getOuterWidth(this.$overlayContent()) === getWidth(window))\r\n },\r\n refreshPosition: function() {\r\n this._renderPosition()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n this.callBase(args);\r\n this._renderTitle();\r\n this._renderBottom();\r\n break;\r\n case \"showTitle\":\r\n case \"title\":\r\n case \"titleTemplate\":\r\n this._renderTitle();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"bottomTemplate\":\r\n this._renderBottom();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderAction(args.value);\r\n break;\r\n case \"toolbarItems\":\r\n case \"useDefaultToolbarButtons\":\r\n case \"useFlatToolbarButtons\":\r\n var shouldRenderGeometry = !args.fullName.match(/^toolbarItems((\\[\\d+\\])(\\.(options|visible).*)?)?$/);\r\n this._renderTitle();\r\n this._renderBottom();\r\n if (shouldRenderGeometry) {\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent())\r\n }\r\n break;\r\n case \"dragEnabled\":\r\n this._renderDrag();\r\n break;\r\n case \"autoResizeEnabled\":\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"fullScreen\":\r\n this._positionController.fullScreen = args.value;\r\n this._toggleFullScreenClass(args.value);\r\n this._toggleSafariScrolling();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"showCloseButton\":\r\n this._renderTitle();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n bottomToolbar: function() {\r\n return this._$bottom\r\n },\r\n topToolbar: function() {\r\n return this._$title\r\n },\r\n $content: function() {\r\n return this._$popupContent\r\n },\r\n content: function() {\r\n return getPublicElement(this.$content())\r\n },\r\n $overlayContent: function() {\r\n return this._$content\r\n }\r\n});\r\nregisterComponent(\"dxPopup\", Popup);\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/ui/popup.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport Popup from \"./popup/ui.popup\";\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/renovation/utils/combine_classes.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nexport function combineClasses(classesMap) {\r\n return Object.keys(classesMap).filter(p => classesMap[p]).join(\" \")\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.feedback.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport Class from \"../../core/class\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n contains\r\n} from \"../../core/utils/dom\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport Emitter from \"./emitter\";\r\nimport registerEmitter from \"./emitter_registrator\";\r\nvar ACTIVE_EVENT_NAME = \"dxactive\";\r\nvar INACTIVE_EVENT_NAME = \"dxinactive\";\r\nvar ACTIVE_TIMEOUT = 30;\r\nvar INACTIVE_TIMEOUT = 400;\r\nvar FeedbackEvent = Class.inherit({\r\n ctor: function(timeout, fire) {\r\n this._timeout = timeout;\r\n this._fire = fire\r\n },\r\n start: function() {\r\n var that = this;\r\n this._schedule((function() {\r\n that.force()\r\n }))\r\n },\r\n _schedule: function(fn) {\r\n this.stop();\r\n this._timer = setTimeout(fn, this._timeout)\r\n },\r\n stop: function() {\r\n clearTimeout(this._timer)\r\n },\r\n force: function() {\r\n if (this._fired) {\r\n return\r\n }\r\n this.stop();\r\n this._fire();\r\n this._fired = true\r\n },\r\n fired: function() {\r\n return this._fired\r\n }\r\n});\r\nvar activeFeedback;\r\nvar FeedbackEmitter = Emitter.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._active = new FeedbackEvent(0, noop);\r\n this._inactive = new FeedbackEvent(0, noop)\r\n },\r\n configure: function(data, eventName) {\r\n switch (eventName) {\r\n case ACTIVE_EVENT_NAME:\r\n data.activeTimeout = data.timeout;\r\n break;\r\n case INACTIVE_EVENT_NAME:\r\n data.inactiveTimeout = data.timeout\r\n }\r\n this.callBase(data)\r\n },\r\n start: function(e) {\r\n if (activeFeedback) {\r\n var activeChildExists = contains(this.getElement().get(0), activeFeedback.getElement().get(0));\r\n var childJustActivated = !activeFeedback._active.fired();\r\n if (activeChildExists && childJustActivated) {\r\n this._cancel();\r\n return\r\n }\r\n activeFeedback._inactive.force()\r\n }\r\n activeFeedback = this;\r\n this._initEvents(e);\r\n this._active.start()\r\n },\r\n _initEvents: function(e) {\r\n var that = this;\r\n var eventTarget = this._getEmitterTarget(e);\r\n var mouseEvent = isMouseEvent(e);\r\n var isSimulator = devices.isSimulator();\r\n var deferFeedback = isSimulator || !mouseEvent;\r\n var activeTimeout = ensureDefined(this.activeTimeout, ACTIVE_TIMEOUT);\r\n var inactiveTimeout = ensureDefined(this.inactiveTimeout, INACTIVE_TIMEOUT);\r\n this._active = new FeedbackEvent(deferFeedback ? activeTimeout : 0, (function() {\r\n that._fireEvent(ACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n })\r\n }));\r\n this._inactive = new FeedbackEvent(deferFeedback ? inactiveTimeout : 0, (function() {\r\n that._fireEvent(INACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n });\r\n activeFeedback = null\r\n }))\r\n },\r\n cancel: function(e) {\r\n this.end(e)\r\n },\r\n end: function(e) {\r\n var skipTimers = e.type !== pointerEvents.up;\r\n if (skipTimers) {\r\n this._active.stop()\r\n } else {\r\n this._active.force()\r\n }\r\n this._inactive.start();\r\n if (skipTimers) {\r\n this._inactive.force()\r\n }\r\n },\r\n dispose: function() {\r\n this._active.stop();\r\n this._inactive.stop();\r\n if (activeFeedback === this) {\r\n activeFeedback = null\r\n }\r\n this.callBase()\r\n },\r\n lockInactive: function() {\r\n this._active.force();\r\n this._inactive.stop();\r\n activeFeedback = null;\r\n this._cancel();\r\n return this._inactive.force.bind(this._inactive)\r\n }\r\n});\r\nFeedbackEmitter.lock = function(deferred) {\r\n var lockInactive = activeFeedback ? activeFeedback.lockInactive() : noop;\r\n deferred.done(lockInactive)\r\n};\r\nregisterEmitter({\r\n emitter: FeedbackEmitter,\r\n events: [ACTIVE_EVENT_NAME, INACTIVE_EVENT_NAME]\r\n});\r\nexport var lock = FeedbackEmitter.lock;\r\nexport {\r\n ACTIVE_EVENT_NAME as active, INACTIVE_EVENT_NAME as inactive\r\n};\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pullAllChildren = void 0;\nfunction pullAllChildren(directChildren, allChildren, config) {\n if (!directChildren || directChildren.length === 0) {\n return;\n }\n pullConfigComponents(directChildren, allChildren, config);\n}\nexports.pullAllChildren = pullAllChildren;\nfunction pullConfigComponents(children, nodes, ownerConfig) {\n children.forEach(function (node) {\n nodes.push(node);\n if (!node.componentOptions) {\n return;\n }\n var configComponent = node.componentOptions.Ctor;\n if (!configComponent.$_optionName) {\n return;\n }\n var initialValues = __assign(__assign({}, configComponent.$_predefinedProps), node.componentOptions.propsData);\n var config = ownerConfig.createNested(configComponent.$_optionName, initialValues, configComponent.$_isCollectionItem, configComponent.$_expectedChildren);\n node.componentOptions.$_config = config;\n node.componentOptions.$_innerChanges = {};\n if (node.componentOptions.children) {\n pullConfigComponents(node.componentOptions.children, nodes, config);\n }\n });\n}\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOptionInfo = exports.getOptionValue = exports.allKeysAreEqual = exports.forEachChildNode = exports.isEqual = exports.toComparable = exports.camelize = exports.lowercaseFirst = exports.uppercaseFirst = exports.getTemplatePropName = void 0;\nfunction getTemplatePropName(props, templateName) {\n for (var propName in props) {\n if (props[propName] === templateName) {\n return propName;\n }\n }\n return templateName;\n}\nexports.getTemplatePropName = getTemplatePropName;\nfunction uppercaseFirst(value) {\n return value[0].toUpperCase() + value.substr(1);\n}\nexports.uppercaseFirst = uppercaseFirst;\nfunction lowercaseFirst(value) {\n return value[0].toLowerCase() + value.substr(1);\n}\nexports.lowercaseFirst = lowercaseFirst;\nfunction camelize(value) {\n return lowercaseFirst(value.split(\"-\").map(function (v) { return uppercaseFirst(v); }).join(\"\"));\n}\nexports.camelize = camelize;\nfunction toComparable(value) {\n return value instanceof Date ? value.getTime() : value;\n}\nexports.toComparable = toComparable;\nfunction isEqual(value1, value2) {\n if (toComparable(value1) === toComparable(value2)) {\n return true;\n }\n if (Array.isArray(value1) && Array.isArray(value2)) {\n return value1.length === 0 && value2.length === 0;\n }\n return false;\n}\nexports.isEqual = isEqual;\nfunction forEachChildNode(el, callback) {\n Array.prototype.slice.call(el.childNodes).forEach(callback);\n}\nexports.forEachChildNode = forEachChildNode;\nfunction allKeysAreEqual(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n if (obj1Keys.length !== Object.keys(obj2).length) {\n return false;\n }\n for (var _i = 0, obj1Keys_1 = obj1Keys; _i < obj1Keys_1.length; _i++) {\n var key = obj1Keys_1[_i];\n if (!obj2.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n}\nexports.allKeysAreEqual = allKeysAreEqual;\nfunction getOptionValue(options, optionPath) {\n var value = options;\n optionPath.split(\".\").forEach(function (p) {\n var optionInfo = getOptionInfo(p);\n if (value) {\n value = optionInfo.isCollection ?\n value[optionInfo.name] && value[optionInfo.name][optionInfo.index] :\n value[optionInfo.name];\n }\n });\n return value;\n}\nexports.getOptionValue = getOptionValue;\nfunction getOptionInfo(name) {\n var parts = name.split(\"[\");\n if (parts.length === 1) {\n return {\n isCollection: false,\n name: name,\n fullName: name\n };\n }\n return {\n isCollection: true,\n name: parts[0],\n fullName: name,\n index: Number(parts[1].slice(0, -1))\n };\n}\nexports.getOptionInfo = getOptionInfo;\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DX_REMOVE_EVENT = exports.DX_TEMPLATE_WRAPPER_CLASS = void 0;\nvar DX_TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\nexports.DX_TEMPLATE_WRAPPER_CLASS = DX_TEMPLATE_WRAPPER_CLASS;\nvar DX_REMOVE_EVENT = \"dxremove\";\nexports.DX_REMOVE_EVENT = DX_REMOVE_EVENT;\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n getKeyHash,\r\n noop,\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default Class.inherit({\r\n ctor: function(options) {\r\n this.options = options;\r\n this._setOption(\"disabledItemKeys\", []);\r\n this._clearItemKeys()\r\n },\r\n _clearItemKeys: function() {\r\n this._setOption(\"addedItemKeys\", []);\r\n this._setOption(\"removedItemKeys\", []);\r\n this._setOption(\"removedItems\", []);\r\n this._setOption(\"addedItems\", [])\r\n },\r\n validate: noop,\r\n _setOption: function(name, value) {\r\n this.options[name] = value\r\n },\r\n onSelectionChanged: function() {\r\n var addedItemKeys = this.options.addedItemKeys;\r\n var removedItemKeys = this.options.removedItemKeys;\r\n var addedItems = this.options.addedItems;\r\n var removedItems = this.options.removedItems;\r\n var selectedItems = this.options.selectedItems;\r\n var selectedItemKeys = this.options.selectedItemKeys;\r\n var onSelectionChanged = this.options.onSelectionChanged || noop;\r\n this._clearItemKeys();\r\n onSelectionChanged({\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n addedItemKeys: addedItemKeys,\r\n removedItemKeys: removedItemKeys,\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n equalKeys: function(key1, key2) {\r\n if (this.options.equalByReference) {\r\n if (isObject(key1) && isObject(key2)) {\r\n return key1 === key2\r\n }\r\n }\r\n return equalByValue(key1, key2)\r\n },\r\n getSelectableItems: function(items) {\r\n return items.filter((function(item) {\r\n return !(null !== item && void 0 !== item && item.disabled)\r\n }))\r\n },\r\n _clearSelection: function(keys, preserve, isDeselect, isSelectAll) {\r\n keys = keys || [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this.selectedItemKeys(keys, preserve, isDeselect, isSelectAll)\r\n },\r\n _removeTemplateProperty: function(remoteFilter) {\r\n if (Array.isArray(remoteFilter)) {\r\n return remoteFilter.map(f => this._removeTemplateProperty(f))\r\n }\r\n if (isObject(remoteFilter)) {\r\n delete remoteFilter.template\r\n }\r\n return remoteFilter\r\n },\r\n _loadFilteredData: function(remoteFilter, localFilter, select, isSelectAll) {\r\n var filterLength = encodeURI(JSON.stringify(this._removeTemplateProperty(remoteFilter))).length;\r\n var needLoadAllData = this.options.maxFilterLengthInRequest && filterLength > this.options.maxFilterLengthInRequest;\r\n var deferred = new Deferred;\r\n var loadOptions = {\r\n filter: needLoadAllData ? void 0 : remoteFilter,\r\n select: needLoadAllData ? this.options.dataFields() : select || this.options.dataFields()\r\n };\r\n if (remoteFilter && 0 === remoteFilter.length) {\r\n deferred.resolve([])\r\n } else {\r\n this.options.load(loadOptions).done((function(items) {\r\n var filteredItems = isPlainObject(items) ? items.data : items;\r\n if (localFilter && !isSelectAll) {\r\n filteredItems = filteredItems.filter(localFilter)\r\n } else if (needLoadAllData) {\r\n filteredItems = dataQuery(filteredItems).filter(remoteFilter).toArray()\r\n }\r\n deferred.resolve(filteredItems)\r\n })).fail(deferred.reject.bind(deferred))\r\n }\r\n return deferred\r\n },\r\n updateSelectedItemKeyHash: function(keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var keyHash = getKeyHash(keys[i]);\r\n if (!isObject(keyHash)) {\r\n this.options.keyHashIndices[keyHash] = this.options.keyHashIndices[keyHash] || [];\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n keyIndices.push(i)\r\n }\r\n }\r\n },\r\n _isAnyItemSelected: function(items) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (this.options.isItemSelected(items[i])) {\r\n return\r\n }\r\n }\r\n return false\r\n },\r\n _getFullSelectAllState: function() {\r\n var items = this.options.plainItems();\r\n var dataFilter = this.options.filter();\r\n var selectedItems = this.options.ignoreDisabledItems ? this.options.selectedItems : this.options.selectedItems.filter(item => !(null !== item && void 0 !== item && item.disabled));\r\n if (dataFilter) {\r\n selectedItems = dataQuery(selectedItems).filter(dataFilter).toArray()\r\n }\r\n var selectedItemsLength = selectedItems.length;\r\n var disabledItemsLength = items.length - this.getSelectableItems(items).length;\r\n if (!selectedItemsLength) {\r\n return this._isAnyItemSelected(items)\r\n }\r\n if (selectedItemsLength >= this.options.totalCount() - disabledItemsLength) {\r\n return true\r\n }\r\n return\r\n },\r\n _getVisibleSelectAllState: function() {\r\n var items = this.getSelectableItems(this.options.plainItems());\r\n var hasSelectedItems = false;\r\n var hasUnselectedItems = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var itemData = this.options.getItemData(item);\r\n var key = this.options.keyOf(itemData);\r\n if (this.options.isSelectableItem(item)) {\r\n if (this.isItemKeySelected(key)) {\r\n hasSelectedItems = true\r\n } else {\r\n hasUnselectedItems = true\r\n }\r\n }\r\n }\r\n if (hasSelectedItems) {\r\n return !hasUnselectedItems ? true : void 0\r\n } else {\r\n return false\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.deferred.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport SelectionStrategy from \"./selection.strategy\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default SelectionStrategy.inherit({\r\n getSelectedItems: function() {\r\n return this._loadFilteredData(this.options.selectionFilter)\r\n },\r\n getSelectedItemKeys: function() {\r\n var d = new Deferred;\r\n var that = this;\r\n var key = this.options.key();\r\n var select = isString(key) ? [key] : key;\r\n this._loadFilteredData(this.options.selectionFilter, null, select).done((function(items) {\r\n var keys = items.map((function(item) {\r\n return that.options.keyOf(item)\r\n }));\r\n d.resolve(keys)\r\n })).fail(d.reject);\r\n return d.promise()\r\n },\r\n selectedItemKeys: function(keys, preserve, isDeselect, isSelectAll) {\r\n if (isSelectAll) {\r\n var filter = this.options.filter();\r\n var needResetSelectionFilter = !filter || JSON.stringify(filter) === JSON.stringify(this.options.selectionFilter) && isDeselect;\r\n if (needResetSelectionFilter) {\r\n this._setOption(\"selectionFilter\", isDeselect ? [] : null)\r\n } else {\r\n this._addSelectionFilter(isDeselect, filter, isSelectAll)\r\n }\r\n } else {\r\n if (!preserve) {\r\n this._setOption(\"selectionFilter\", [])\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (isDeselect) {\r\n this.removeSelectedItem(keys[i])\r\n } else {\r\n this.addSelectedItem(keys[i])\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return (new Deferred).resolve()\r\n },\r\n setSelectedItems: function(keys) {\r\n this._setOption(\"selectionFilter\", null);\r\n for (var i = 0; i < keys.length; i++) {\r\n this.addSelectedItem(keys[i])\r\n }\r\n },\r\n isItemDataSelected: function(itemData) {\r\n return this.isItemKeySelected(itemData)\r\n },\r\n isItemKeySelected: function(itemData) {\r\n var selectionFilter = this.options.selectionFilter;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n return !!dataQuery([itemData]).filter(selectionFilter).toArray().length\r\n },\r\n _getKeyExpr: function() {\r\n var keyField = this.options.key();\r\n if (Array.isArray(keyField) && 1 === keyField.length) {\r\n return keyField[0]\r\n }\r\n return keyField\r\n },\r\n _normalizeKey: function(key) {\r\n var keyExpr = this.options.key();\r\n if (Array.isArray(keyExpr) && 1 === keyExpr.length) {\r\n return key[keyExpr[0]]\r\n }\r\n return key\r\n },\r\n _getFilterByKey: function(key) {\r\n var keyField = this._getKeyExpr();\r\n var filter = [keyField, \"=\", this._normalizeKey(key)];\r\n if (Array.isArray(keyField)) {\r\n filter = [];\r\n for (var i = 0; i < keyField.length; i++) {\r\n filter.push([keyField[i], \"=\", key[keyField[i]]]);\r\n if (i !== keyField.length - 1) {\r\n filter.push(\"and\")\r\n }\r\n }\r\n }\r\n return filter\r\n },\r\n addSelectedItem: function(key) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(false, filter)\r\n },\r\n removeSelectedItem: function(key) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(true, filter)\r\n },\r\n validate: function() {\r\n var key = this.options.key;\r\n if (key && void 0 === key()) {\r\n throw errors.Error(\"E1042\", \"Deferred selection\")\r\n }\r\n },\r\n _findSubFilter: function(selectionFilter, filter) {\r\n if (!selectionFilter) {\r\n return -1\r\n }\r\n var filterString = JSON.stringify(filter);\r\n for (var index = 0; index < selectionFilter.length; index++) {\r\n var subFilter = selectionFilter[index];\r\n if (subFilter && JSON.stringify(subFilter) === filterString) {\r\n return index\r\n }\r\n }\r\n return -1\r\n },\r\n _isLastSubFilter: function(selectionFilter, filter) {\r\n if (selectionFilter && filter) {\r\n return this._findSubFilter(selectionFilter, filter) === selectionFilter.length - 1 || 0 === this._findSubFilter([selectionFilter], filter)\r\n }\r\n return false\r\n },\r\n _addFilterOperator: function(selectionFilter, filterOperator) {\r\n if (selectionFilter.length > 1 && isString(selectionFilter[1]) && selectionFilter[1] !== filterOperator) {\r\n selectionFilter = [selectionFilter]\r\n }\r\n if (selectionFilter.length) {\r\n selectionFilter.push(filterOperator)\r\n }\r\n return selectionFilter\r\n },\r\n _denormalizeFilter: function(filter) {\r\n if (filter && isString(filter[0])) {\r\n filter = [filter]\r\n }\r\n return filter\r\n },\r\n _addSelectionFilter: function(isDeselect, filter, isSelectAll) {\r\n var currentFilter = isDeselect ? [\"!\", filter] : filter;\r\n var currentOperation = isDeselect ? \"and\" : \"or\";\r\n var needAddFilter = true;\r\n var selectionFilter = this.options.selectionFilter || [];\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if (selectionFilter && selectionFilter.length) {\r\n this._removeSameFilter(selectionFilter, filter, isDeselect, isSelectAll);\r\n var filterIndex = this._removeSameFilter(selectionFilter, filter, !isDeselect);\r\n var isKeyOperatorsAfterRemoved = this._isKeyFilter(filter) && this._hasKeyFiltersOnlyStartingFromIndex(selectionFilter, filterIndex);\r\n needAddFilter = filter.length && !isKeyOperatorsAfterRemoved;\r\n if (needAddFilter) {\r\n selectionFilter = this._addFilterOperator(selectionFilter, currentOperation)\r\n }\r\n }\r\n if (needAddFilter) {\r\n selectionFilter.push(currentFilter)\r\n }\r\n selectionFilter = this._normalizeFilter(selectionFilter);\r\n this._setOption(\"selectionFilter\", !isDeselect && !selectionFilter.length ? null : selectionFilter)\r\n },\r\n _normalizeFilter: function(filter) {\r\n if (filter && 1 === filter.length) {\r\n filter = filter[0]\r\n }\r\n return filter\r\n },\r\n _removeFilterByIndex: function(filter, filterIndex, isSelectAll) {\r\n var operation = filter[1];\r\n if (filterIndex > 0) {\r\n filter.splice(filterIndex - 1, 2)\r\n } else {\r\n filter.splice(filterIndex, 2)\r\n }\r\n if (isSelectAll && \"and\" === operation) {\r\n filter.splice(0, filter.length)\r\n }\r\n },\r\n _isSimpleKeyFilter: function(filter, key) {\r\n return 3 === filter.length && filter[0] === key && \"=\" === filter[1]\r\n },\r\n _isKeyFilter: function(filter) {\r\n if (2 === filter.length && \"!\" === filter[0]) {\r\n return this._isKeyFilter(filter[1])\r\n }\r\n var keyField = this._getKeyExpr();\r\n if (Array.isArray(keyField)) {\r\n if (filter.length !== 2 * keyField.length - 1) {\r\n return false\r\n }\r\n for (var i = 0; i < keyField.length; i++) {\r\n if (i > 0 && \"and\" !== filter[2 * i - 1]) {\r\n return false\r\n }\r\n if (!this._isSimpleKeyFilter(filter[2 * i], keyField[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return this._isSimpleKeyFilter(filter, keyField)\r\n },\r\n _hasKeyFiltersOnlyStartingFromIndex: function(selectionFilter, filterIndex) {\r\n if (filterIndex >= 0) {\r\n for (var i = filterIndex; i < selectionFilter.length; i++) {\r\n if (\"string\" !== typeof selectionFilter[i] && !this._isKeyFilter(selectionFilter[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n },\r\n _removeSameFilter: function(selectionFilter, filter, inverted, isSelectAll) {\r\n filter = inverted ? [\"!\", filter] : filter;\r\n if (JSON.stringify(filter) === JSON.stringify(selectionFilter)) {\r\n selectionFilter.splice(0, selectionFilter.length);\r\n return 0\r\n }\r\n var filterIndex = this._findSubFilter(selectionFilter, filter);\r\n if (filterIndex >= 0) {\r\n this._removeFilterByIndex(selectionFilter, filterIndex, isSelectAll);\r\n return filterIndex\r\n } else {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i]) && selectionFilter[i].length > 2) {\r\n var _filterIndex = this._removeSameFilter(selectionFilter[i], filter, false, isSelectAll);\r\n if (_filterIndex >= 0) {\r\n if (!selectionFilter[i].length) {\r\n this._removeFilterByIndex(selectionFilter, i, isSelectAll)\r\n } else if (1 === selectionFilter[i].length) {\r\n selectionFilter[i] = selectionFilter[i][0]\r\n }\r\n return _filterIndex\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n },\r\n getSelectAllState: function() {\r\n var filter = this.options.filter();\r\n var selectionFilter = this.options.selectionFilter;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (!filter || !filter.length) {\r\n return\r\n }\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if (this._isLastSubFilter(selectionFilter, filter)) {\r\n return true\r\n }\r\n if (this._isLastSubFilter(selectionFilter, [\"!\", filter])) {\r\n return false\r\n }\r\n return\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.standard.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getKeyHash\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n removeDuplicates,\r\n uniqueValues\r\n} from \"../../core/utils/array\";\r\nimport {\r\n isKeysEqual\r\n} from \"../../core/utils/array_compare\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n SelectionFilterCreator\r\n} from \"../../core/utils/selection_filter\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport SelectionStrategy from \"./selection.strategy\";\r\nexport default SelectionStrategy.inherit({\r\n ctor: function(options) {\r\n this.callBase(options);\r\n this._initSelectedItemKeyHash()\r\n },\r\n _initSelectedItemKeyHash: function() {\r\n this._setOption(\"keyHashIndices\", this.options.equalByReference ? null : {})\r\n },\r\n getSelectedItemKeys: function() {\r\n return this.options.selectedItemKeys.slice(0)\r\n },\r\n getSelectedItems: function() {\r\n return this.options.selectedItems.slice(0)\r\n },\r\n _preserveSelectionUpdate: function(items, isDeselect) {\r\n var keyOf = this.options.keyOf;\r\n var keyIndicesToRemoveMap;\r\n var keyIndex;\r\n var i;\r\n if (!keyOf) {\r\n return\r\n }\r\n var isBatchDeselect = isDeselect && items.length > 1 && !this.options.equalByReference;\r\n if (isBatchDeselect) {\r\n keyIndicesToRemoveMap = {}\r\n }\r\n for (i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n if (isDeselect) {\r\n keyIndex = this.removeSelectedItem(key, keyIndicesToRemoveMap, null === item || void 0 === item ? void 0 : item.disabled);\r\n if (keyIndicesToRemoveMap && keyIndex >= 0) {\r\n keyIndicesToRemoveMap[keyIndex] = true\r\n }\r\n } else {\r\n this.addSelectedItem(key, item)\r\n }\r\n }\r\n if (isBatchDeselect) {\r\n this._batchRemoveSelectedItems(keyIndicesToRemoveMap)\r\n }\r\n },\r\n _batchRemoveSelectedItems: function(keyIndicesToRemoveMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys.slice(0);\r\n var selectedItems = this.options.selectedItems.slice(0);\r\n this.options.selectedItemKeys.length = 0;\r\n this.options.selectedItems.length = 0;\r\n for (var i = 0; i < selectedItemKeys.length; i++) {\r\n if (!keyIndicesToRemoveMap[i]) {\r\n this.options.selectedItemKeys.push(selectedItemKeys[i]);\r\n this.options.selectedItems.push(selectedItems[i])\r\n }\r\n }\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n },\r\n _loadSelectedItemsCore: function(keys, isDeselect, isSelectAll) {\r\n var deferred = new Deferred;\r\n var key = this.options.key();\r\n if (!keys.length && !isSelectAll) {\r\n deferred.resolve([]);\r\n return deferred\r\n }\r\n var filter = this.options.filter();\r\n if (isSelectAll && isDeselect && !filter) {\r\n deferred.resolve(this.getSelectedItems());\r\n return deferred\r\n }\r\n var selectionFilterCreator = new SelectionFilterCreator(keys, isSelectAll);\r\n var combinedFilter = selectionFilterCreator.getCombinedFilter(key, filter);\r\n var deselectedItems = [];\r\n if (isDeselect) {\r\n var selectedItems = this.options.selectedItems;\r\n deselectedItems = combinedFilter && keys.length !== selectedItems.length ? dataQuery(selectedItems).filter(combinedFilter).toArray() : selectedItems.slice(0)\r\n }\r\n var filteredItems = deselectedItems.length ? deselectedItems : this.options.plainItems(true).filter(this.options.isSelectableItem).map(this.options.getItemData);\r\n var localFilter = selectionFilterCreator.getLocalFilter(this.options.keyOf, this.equalKeys.bind(this), this.options.equalByReference, key);\r\n filteredItems = filteredItems.filter(localFilter);\r\n if (deselectedItems.length || !isSelectAll && filteredItems.length === keys.length) {\r\n deferred.resolve(filteredItems)\r\n } else {\r\n deferred = this._loadFilteredData(combinedFilter, localFilter, null, isSelectAll)\r\n }\r\n return deferred\r\n },\r\n _replaceSelectionUpdate: function(items) {\r\n var internalKeys = [];\r\n var keyOf = this.options.keyOf;\r\n if (!keyOf) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n internalKeys.push(key)\r\n }\r\n this.setSelectedItems(internalKeys, items)\r\n },\r\n _warnOnIncorrectKeys: function(keys) {\r\n var allowNullValue = this.options.allowNullValue;\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if ((!allowNullValue || null !== key) && !this.isItemKeySelected(key)) {\r\n errors.log(\"W1002\", key)\r\n }\r\n }\r\n },\r\n _isMultiSelectEnabled: function() {\r\n var mode = this.options.mode;\r\n return \"all\" === mode || \"multiple\" === mode\r\n },\r\n _requestInProgress: function() {\r\n var _this$_lastLoadDeferr;\r\n return \"pending\" === (null === (_this$_lastLoadDeferr = this._lastLoadDeferred) || void 0 === _this$_lastLoadDeferr ? void 0 : _this$_lastLoadDeferr.state())\r\n },\r\n _concatRequestsItems: function(keys, isDeselect, oldRequestItems, updatedKeys) {\r\n var selectedItems;\r\n var deselectedItems = isDeselect ? keys : [];\r\n if (updatedKeys) {\r\n selectedItems = updatedKeys\r\n } else {\r\n selectedItems = removeDuplicates(keys, this.options.selectedItemKeys)\r\n }\r\n return {\r\n addedItems: oldRequestItems.added.concat(selectedItems),\r\n removedItems: oldRequestItems.removed.concat(deselectedItems),\r\n keys: keys\r\n }\r\n },\r\n _collectLastRequestData: function(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var isDeselectAll = isDeselect && isSelectAll;\r\n var oldRequestItems = {\r\n added: [],\r\n removed: []\r\n };\r\n var multiSelectEnabled = this._isMultiSelectEnabled();\r\n var lastRequestData = multiSelectEnabled ? this._lastRequestData : {};\r\n if (multiSelectEnabled) {\r\n if (this._shouldMergeWithLastRequest) {\r\n if (isDeselectAll) {\r\n this._lastLoadDeferred.reject();\r\n lastRequestData = {}\r\n } else if (!isKeysEqual(keys, this.options.selectedItemKeys)) {\r\n oldRequestItems.added = lastRequestData.addedItems;\r\n oldRequestItems.removed = lastRequestData.removedItems;\r\n if (!isDeselect) {\r\n this._lastLoadDeferred.reject()\r\n }\r\n }\r\n }\r\n lastRequestData = this._concatRequestsItems(keys, isDeselect, oldRequestItems, this._shouldMergeWithLastRequest ? void 0 : updatedKeys)\r\n }\r\n return lastRequestData\r\n },\r\n _updateKeysByLastRequestData: function(keys, isDeselect, isSelectAll) {\r\n var currentKeys = keys;\r\n if (this._isMultiSelectEnabled() && this._shouldMergeWithLastRequest && !isDeselect && !isSelectAll) {\r\n var _this$_lastRequestDat, _this$_lastRequestDat2;\r\n currentKeys = removeDuplicates(keys.concat(null === (_this$_lastRequestDat = this._lastRequestData) || void 0 === _this$_lastRequestDat ? void 0 : _this$_lastRequestDat.addedItems), null === (_this$_lastRequestDat2 = this._lastRequestData) || void 0 === _this$_lastRequestDat2 ? void 0 : _this$_lastRequestDat2.removedItems);\r\n currentKeys = uniqueValues(currentKeys)\r\n }\r\n return currentKeys\r\n },\r\n _loadSelectedItems: function(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n this._shouldMergeWithLastRequest = this._requestInProgress();\r\n this._lastRequestData = this._collectLastRequestData(keys, isDeselect, isSelectAll, updatedKeys);\r\n when(that._lastLoadDeferred).always((function() {\r\n var currentKeys = that._updateKeysByLastRequestData(keys, isDeselect, isSelectAll);\r\n that._shouldMergeWithLastRequest = false;\r\n that._loadSelectedItemsCore(currentKeys, isDeselect, isSelectAll).done(deferred.resolve).fail(deferred.reject)\r\n }));\r\n that._lastLoadDeferred = deferred;\r\n return deferred\r\n },\r\n selectedItemKeys: function(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var that = this;\r\n var deferred = that._loadSelectedItems(keys, isDeselect, isSelectAll, updatedKeys);\r\n deferred.done((function(items) {\r\n if (preserve) {\r\n that._preserveSelectionUpdate(items, isDeselect)\r\n } else {\r\n that._replaceSelectionUpdate(items)\r\n }\r\n that.onSelectionChanged()\r\n }));\r\n return deferred\r\n },\r\n addSelectedItem: function(key, itemData) {\r\n if (isDefined(itemData) && !this.options.ignoreDisabledItems && itemData.disabled) {\r\n if (-1 === this.options.disabledItemKeys.indexOf(key)) {\r\n this.options.disabledItemKeys.push(key)\r\n }\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n if (-1 === this._indexOfSelectedItemKey(keyHash)) {\r\n if (!isObject(keyHash) && this.options.keyHashIndices) {\r\n this.options.keyHashIndices[keyHash] = [this.options.selectedItemKeys.length]\r\n }\r\n this.options.selectedItemKeys.push(key);\r\n this.options.addedItemKeys.push(key);\r\n this.options.addedItems.push(itemData);\r\n this.options.selectedItems.push(itemData)\r\n }\r\n },\r\n _getSelectedIndexByKey: function(key, ignoreIndicesMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys;\r\n for (var index = 0; index < selectedItemKeys.length; index++) {\r\n if ((!ignoreIndicesMap || !ignoreIndicesMap[index]) && this.equalKeys(selectedItemKeys[index], key)) {\r\n return index\r\n }\r\n }\r\n return -1\r\n },\r\n _getSelectedIndexByHash: function(key, ignoreIndicesMap) {\r\n var indices = this.options.keyHashIndices[key];\r\n if (indices && indices.length > 1 && ignoreIndicesMap) {\r\n indices = indices.filter((function(index) {\r\n return !ignoreIndicesMap[index]\r\n }))\r\n }\r\n return indices && indices[0] >= 0 ? indices[0] : -1\r\n },\r\n _indexOfSelectedItemKey: function(key, ignoreIndicesMap) {\r\n var selectedIndex;\r\n if (this.options.equalByReference) {\r\n selectedIndex = this.options.selectedItemKeys.indexOf(key)\r\n } else if (isObject(key)) {\r\n selectedIndex = this._getSelectedIndexByKey(key, ignoreIndicesMap)\r\n } else {\r\n selectedIndex = this._getSelectedIndexByHash(key, ignoreIndicesMap)\r\n }\r\n return selectedIndex\r\n },\r\n _shiftSelectedKeyIndices: function(keyIndex) {\r\n for (var currentKeyIndex = keyIndex; currentKeyIndex < this.options.selectedItemKeys.length; currentKeyIndex++) {\r\n var currentKey = this.options.selectedItemKeys[currentKeyIndex];\r\n var currentKeyHash = getKeyHash(currentKey);\r\n var currentKeyIndices = this.options.keyHashIndices[currentKeyHash];\r\n if (!currentKeyIndices) {\r\n continue\r\n }\r\n for (var i = 0; i < currentKeyIndices.length; i++) {\r\n if (currentKeyIndices[i] > keyIndex) {\r\n currentKeyIndices[i]--\r\n }\r\n }\r\n }\r\n },\r\n removeSelectedItem: function(key, keyIndicesToRemoveMap, isDisabled) {\r\n if (!this.options.ignoreDisabledItems && isDisabled) {\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n var isBatchDeselect = !!keyIndicesToRemoveMap;\r\n var keyIndex = this._indexOfSelectedItemKey(keyHash, keyIndicesToRemoveMap);\r\n if (keyIndex < 0) {\r\n return keyIndex\r\n }\r\n this.options.removedItemKeys.push(key);\r\n this.options.removedItems.push(this.options.selectedItems[keyIndex]);\r\n if (isBatchDeselect) {\r\n return keyIndex\r\n }\r\n this.options.selectedItemKeys.splice(keyIndex, 1);\r\n this.options.selectedItems.splice(keyIndex, 1);\r\n if (isObject(keyHash) || !this.options.keyHashIndices) {\r\n return keyIndex\r\n }\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n if (!keyIndices) {\r\n return keyIndex\r\n }\r\n keyIndices.shift();\r\n if (!keyIndices.length) {\r\n delete this.options.keyHashIndices[keyHash]\r\n }\r\n this._shiftSelectedKeyIndices(keyIndex);\r\n return keyIndex\r\n },\r\n _updateAddedItemKeys: function(keys, items) {\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!this.isItemKeySelected(keys[i])) {\r\n this.options.addedItemKeys.push(keys[i]);\r\n this.options.addedItems.push(items[i])\r\n }\r\n }\r\n },\r\n _updateRemovedItemKeys: function(keys, oldSelectedKeys, oldSelectedItems) {\r\n for (var i = 0; i < oldSelectedKeys.length; i++) {\r\n if (!this.isItemKeySelected(oldSelectedKeys[i])) {\r\n this.options.removedItemKeys.push(oldSelectedKeys[i]);\r\n this.options.removedItems.push(oldSelectedItems[i])\r\n }\r\n }\r\n },\r\n _isItemSelectionInProgress: function(key, checkPending) {\r\n var shouldCheckPending = checkPending && this._lastRequestData && this._requestInProgress();\r\n if (shouldCheckPending) {\r\n var _this$_lastRequestDat3;\r\n var addedItems = null !== (_this$_lastRequestDat3 = this._lastRequestData.addedItems) && void 0 !== _this$_lastRequestDat3 ? _this$_lastRequestDat3 : [];\r\n return addedItems.includes(key)\r\n } else {\r\n return false\r\n }\r\n },\r\n _getKeyHash: function(key) {\r\n return this.options.equalByReference ? key : getKeyHash(key)\r\n },\r\n setSelectedItems: function(keys, items) {\r\n this._updateAddedItemKeys(keys, items);\r\n var oldSelectedKeys = this.options.selectedItemKeys;\r\n var oldSelectedItems = this.options.selectedItems;\r\n if (!this.options.equalByReference) {\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(keys)\r\n }\r\n this._setOption(\"selectedItemKeys\", keys);\r\n this._setOption(\"selectedItems\", items);\r\n this._updateRemovedItemKeys(keys, oldSelectedKeys, oldSelectedItems)\r\n },\r\n isItemDataSelected: function(itemData) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var key = this.options.keyOf(itemData);\r\n return this.isItemKeySelected(key, options)\r\n },\r\n isItemKeySelected: function(key) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var result = this._isItemSelectionInProgress(key, options.checkPending);\r\n if (!result) {\r\n var keyHash = this._getKeyHash(key);\r\n var index = this._indexOfSelectedItemKey(keyHash);\r\n result = -1 !== index\r\n }\r\n return result\r\n },\r\n getSelectAllState: function(visibleOnly) {\r\n if (visibleOnly) {\r\n return this._getVisibleSelectAllState()\r\n } else {\r\n return this._getFullSelectAllState()\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport Class from \"../../core/class\";\r\nimport deferredStrategy from \"./selection.strategy.deferred\";\r\nimport standardStrategy from \"./selection.strategy.standard\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default Class.inherit({\r\n ctor: function(options) {\r\n this.options = extend(this._getDefaultOptions(), options, {\r\n selectedItemKeys: options.selectedKeys || []\r\n });\r\n this._selectionStrategy = this.options.deferred ? new deferredStrategy(this.options) : new standardStrategy(this.options);\r\n this._focusedItemIndex = -1;\r\n if (!this.options.equalByReference) {\r\n this._selectionStrategy.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n }\r\n },\r\n _getDefaultOptions: function() {\r\n return {\r\n allowNullValue: false,\r\n deferred: false,\r\n equalByReference: false,\r\n mode: \"multiple\",\r\n selectedItems: [],\r\n selectionFilter: [],\r\n maxFilterLengthInRequest: 0,\r\n onSelectionChanged: noop,\r\n key: noop,\r\n keyOf: function(item) {\r\n return item\r\n },\r\n load: function() {\r\n return (new Deferred).resolve([])\r\n },\r\n totalCount: function() {\r\n return -1\r\n },\r\n isSelectableItem: function() {\r\n return true\r\n },\r\n isItemSelected: function() {\r\n return false\r\n },\r\n getItemData: function(item) {\r\n return item\r\n },\r\n dataFields: noop,\r\n filter: noop\r\n }\r\n },\r\n validate: function() {\r\n this._selectionStrategy.validate()\r\n },\r\n getSelectedItemKeys: function() {\r\n return this._selectionStrategy.getSelectedItemKeys()\r\n },\r\n getSelectedItems: function() {\r\n return this._selectionStrategy.getSelectedItems()\r\n },\r\n selectionFilter: function(value) {\r\n if (void 0 === value) {\r\n return this.options.selectionFilter\r\n }\r\n var filterIsChanged = this.options.selectionFilter !== value && JSON.stringify(this.options.selectionFilter) !== JSON.stringify(value);\r\n this.options.selectionFilter = value;\r\n filterIsChanged && this.onSelectionChanged()\r\n },\r\n setSelection: function(keys, updatedKeys) {\r\n return this.selectedItemKeys(keys, false, false, false, updatedKeys)\r\n },\r\n select: function(keys) {\r\n return this.selectedItemKeys(keys, true)\r\n },\r\n deselect: function(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n },\r\n selectedItemKeys: function(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var _keys;\r\n keys = null !== (_keys = keys) && void 0 !== _keys ? _keys : [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this._selectionStrategy.selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys)\r\n },\r\n clearSelection: function() {\r\n return this.selectedItemKeys([])\r\n },\r\n _addSelectedItem: function(itemData, key) {\r\n this._selectionStrategy.addSelectedItem(key, itemData)\r\n },\r\n _removeSelectedItem: function(key) {\r\n this._selectionStrategy.removeSelectedItem(key)\r\n },\r\n _setSelectedItems: function(keys, items) {\r\n this._selectionStrategy.setSelectedItems(keys, items)\r\n },\r\n onSelectionChanged: function() {\r\n this._selectionStrategy.onSelectionChanged()\r\n },\r\n changeItemSelection: function(itemIndex, keys) {\r\n var isSelectedItemsChanged;\r\n var items = this.options.plainItems();\r\n var item = items[itemIndex];\r\n if (!this.isSelectable() || !this.isDataItem(item)) {\r\n return false\r\n }\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n keys = keys || {};\r\n if (keys.shift && \"multiple\" === this.options.mode && this._focusedItemIndex >= 0) {\r\n isSelectedItemsChanged = this.changeItemSelectionWhenShiftKeyPressed(itemIndex, items)\r\n } else if (keys.control) {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n var isSelected = this._selectionStrategy.isItemDataSelected(itemData);\r\n if (\"single\" === this.options.mode) {\r\n this.clearSelectedItems()\r\n }\r\n if (isSelected) {\r\n this._removeSelectedItem(itemKey)\r\n } else {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n isSelectedItemsChanged = true\r\n } else {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n var isKeysEqual = this._selectionStrategy.equalKeys(this.options.selectedItemKeys[0], itemKey);\r\n if (1 !== this.options.selectedItemKeys.length || !isKeysEqual) {\r\n this._setSelectedItems([itemKey], [itemData]);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n if (isSelectedItemsChanged) {\r\n this._focusedItemIndex = itemIndex;\r\n this.onSelectionChanged();\r\n return true\r\n }\r\n },\r\n isDataItem: function(item) {\r\n return this.options.isSelectableItem(item)\r\n },\r\n isSelectable: function() {\r\n return \"single\" === this.options.mode || \"multiple\" === this.options.mode\r\n },\r\n isItemDataSelected: function(data) {\r\n return this._selectionStrategy.isItemDataSelected(data, {\r\n checkPending: true\r\n })\r\n },\r\n isItemSelected: function(arg, options) {\r\n return this._selectionStrategy.isItemKeySelected(arg, options)\r\n },\r\n _resetItemSelectionWhenShiftKeyPressed: function() {\r\n delete this._shiftFocusedItemIndex\r\n },\r\n _resetFocusedItemIndex: function() {\r\n this._focusedItemIndex = -1\r\n },\r\n changeItemSelectionWhenShiftKeyPressed: function(itemIndex, items) {\r\n var isSelectedItemsChanged = false;\r\n var itemIndexStep;\r\n var index;\r\n var keyOf = this.options.keyOf;\r\n var focusedItem = items[this._focusedItemIndex];\r\n var focusedData = this.options.getItemData(focusedItem);\r\n var focusedKey = keyOf(focusedData);\r\n var isFocusedItemSelected = focusedItem && this.isItemDataSelected(focusedData);\r\n if (!isDefined(this._shiftFocusedItemIndex)) {\r\n this._shiftFocusedItemIndex = this._focusedItemIndex\r\n }\r\n var data;\r\n var itemKey;\r\n if (this._shiftFocusedItemIndex !== this._focusedItemIndex) {\r\n itemIndexStep = this._focusedItemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n for (index = this._focusedItemIndex; index !== this._shiftFocusedItemIndex; index += itemIndexStep) {\r\n if (this.isDataItem(items[index])) {\r\n itemKey = keyOf(this.options.getItemData(items[index]));\r\n this._removeSelectedItem(itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if (itemIndex !== this._shiftFocusedItemIndex) {\r\n itemIndexStep = itemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n for (index = itemIndex; index !== this._shiftFocusedItemIndex; index += itemIndexStep) {\r\n if (this.isDataItem(items[index])) {\r\n data = this.options.getItemData(items[index]);\r\n itemKey = keyOf(data);\r\n this._addSelectedItem(data, itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if (this.isDataItem(focusedItem) && !isFocusedItemSelected) {\r\n this._addSelectedItem(focusedData, focusedKey);\r\n isSelectedItemsChanged = true\r\n }\r\n return isSelectedItemsChanged\r\n },\r\n clearSelectedItems: function() {\r\n this._setSelectedItems([], [])\r\n },\r\n selectAll: function(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(false)\r\n } else {\r\n return this.selectedItemKeys([], true, false, true)\r\n }\r\n },\r\n deselectAll: function(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(true)\r\n } else {\r\n return this.selectedItemKeys([], true, true, true)\r\n }\r\n },\r\n _onePageSelectAll: function(isDeselect) {\r\n var items = this._selectionStrategy.getSelectableItems(this.options.plainItems());\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (this.isDataItem(item)) {\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n var isSelected = this.isItemSelected(itemKey);\r\n if (!isSelected && !isDeselect) {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n if (isSelected && isDeselect) {\r\n this._removeSelectedItem(itemKey)\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return (new Deferred).resolve()\r\n },\r\n getSelectAllState: function(visibleOnly) {\r\n return this._selectionStrategy.getSelectAllState(visibleOnly)\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/templates/child_default_template.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nexport class ChildDefaultTemplate extends TemplateBase {\r\n constructor(name) {\r\n super();\r\n this.name = name\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/element.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nvar strategy = function(element) {\r\n return element && element.get(0)\r\n};\r\nexport function getPublicElement(element) {\r\n return strategy(element)\r\n}\r\nexport function setPublicElementWrapper(newStrategy) {\r\n strategy = newStrategy\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/widget/utils.ink_ripple.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nvar INKRIPPLE_CLASS = \"dx-inkripple\";\r\nvar INKRIPPLE_WAVE_CLASS = \"dx-inkripple-wave\";\r\nvar INKRIPPLE_SHOWING_CLASS = \"dx-inkripple-showing\";\r\nvar INKRIPPLE_HIDING_CLASS = \"dx-inkripple-hiding\";\r\nvar DEFAULT_WAVE_SIZE_COEFFICIENT = 2;\r\nvar MAX_WAVE_SIZE = 4e3;\r\nvar ANIMATION_DURATION = 300;\r\nvar HOLD_ANIMATION_DURATION = 1e3;\r\nvar DEFAULT_WAVE_INDEX = 0;\r\nexport var initConfig = function() {\r\n var config = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n var {\r\n useHoldAnimation: useHoldAnimation,\r\n waveSizeCoefficient: waveSizeCoefficient,\r\n isCentered: isCentered,\r\n wavesNumber: wavesNumber\r\n } = config;\r\n return {\r\n waveSizeCoefficient: waveSizeCoefficient || DEFAULT_WAVE_SIZE_COEFFICIENT,\r\n isCentered: isCentered || false,\r\n wavesNumber: wavesNumber || 1,\r\n durations: getDurations(null !== useHoldAnimation && void 0 !== useHoldAnimation ? useHoldAnimation : true)\r\n }\r\n};\r\nexport var render = function(args) {\r\n var config = initConfig(args);\r\n return {\r\n showWave: showWave.bind(this, config),\r\n hideWave: hideWave.bind(this, config)\r\n }\r\n};\r\nvar getInkRipple = function(element) {\r\n var result = element.children(\".\" + INKRIPPLE_CLASS);\r\n if (0 === result.length) {\r\n result = $(\"
\").addClass(INKRIPPLE_CLASS).appendTo(element)\r\n }\r\n return result\r\n};\r\nvar getWaves = function(element, wavesNumber) {\r\n var inkRipple = getInkRipple($(element));\r\n var result = inkRipple.children(\".\" + INKRIPPLE_WAVE_CLASS).toArray();\r\n for (var i = result.length; i < wavesNumber; i++) {\r\n var $currentWave = $(\"
\").appendTo(inkRipple).addClass(INKRIPPLE_WAVE_CLASS);\r\n result.push($currentWave[0])\r\n }\r\n return $(result)\r\n};\r\nvar getWaveStyleConfig = function(args, config) {\r\n var element = $(config.element);\r\n var elementWidth = getOuterWidth(element);\r\n var elementHeight = getOuterHeight(element);\r\n var elementDiagonal = parseInt(Math.sqrt(elementWidth * elementWidth + elementHeight * elementHeight));\r\n var waveSize = Math.min(MAX_WAVE_SIZE, parseInt(elementDiagonal * args.waveSizeCoefficient));\r\n var left;\r\n var top;\r\n if (args.isCentered) {\r\n left = (elementWidth - waveSize) / 2;\r\n top = (elementHeight - waveSize) / 2\r\n } else {\r\n var event = config.event;\r\n var position = element.offset();\r\n var x = event.pageX - position.left;\r\n var y = event.pageY - position.top;\r\n left = x - waveSize / 2;\r\n top = y - waveSize / 2\r\n }\r\n return {\r\n left: left,\r\n top: top,\r\n height: waveSize,\r\n width: waveSize\r\n }\r\n};\r\nexport function showWave(args, config) {\r\n var $wave = getWaves(config.element, args.wavesNumber).eq(config.wave || DEFAULT_WAVE_INDEX);\r\n args.hidingTimeout && clearTimeout(args.hidingTimeout);\r\n hideSelectedWave($wave);\r\n $wave.css(getWaveStyleConfig(args, config));\r\n args.showingTimeout = setTimeout(showingWaveHandler.bind(this, args, $wave), 0)\r\n}\r\n\r\nfunction showingWaveHandler(args, $wave) {\r\n var durationCss = args.durations.showingScale + \"ms\";\r\n $wave.addClass(INKRIPPLE_SHOWING_CLASS).css(\"transitionDuration\", durationCss)\r\n}\r\n\r\nfunction getDurations(useHoldAnimation) {\r\n return {\r\n showingScale: useHoldAnimation ? HOLD_ANIMATION_DURATION : ANIMATION_DURATION,\r\n hidingScale: ANIMATION_DURATION,\r\n hidingOpacity: ANIMATION_DURATION\r\n }\r\n}\r\n\r\nfunction hideSelectedWave($wave) {\r\n $wave.removeClass(INKRIPPLE_HIDING_CLASS).css(\"transitionDuration\", \"\")\r\n}\r\nexport function hideWave(args, config) {\r\n args.showingTimeout && clearTimeout(args.showingTimeout);\r\n var $wave = getWaves(config.element, config.wavesNumber).eq(config.wave || DEFAULT_WAVE_INDEX);\r\n var durations = args.durations;\r\n var durationCss = durations.hidingScale + \"ms, \" + durations.hidingOpacity + \"ms\";\r\n $wave.addClass(INKRIPPLE_HIDING_CLASS).removeClass(INKRIPPLE_SHOWING_CLASS).css(\"transitionDuration\", durationCss);\r\n var animationDuration = Math.max(durations.hidingScale, durations.hidingOpacity);\r\n args.hidingTimeout = setTimeout(hideSelectedWave.bind(this, $wave), animationDuration)\r\n}\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseComponent = exports.DxComponent = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar events_1 = require(\"devextreme/events\");\nvar children_processing_1 = require(\"./children-processing\");\nvar configuration_1 = __importStar(require(\"./configuration\"));\nvar configuration_component_1 = require(\"./configuration-component\");\nvar constants_1 = require(\"./constants\");\nvar helpers_1 = require(\"./helpers\");\nvar templates_manager_1 = require(\"./templates-manager\");\nvar Vue = VueType.default || VueType;\nvar BaseComponent = function () { return Vue.extend({\n inheritAttrs: false,\n data: function () {\n return {\n eventBus: new Vue()\n };\n },\n provide: function () {\n return {\n eventBus: this.eventBus\n };\n },\n render: function (createElement) {\n var children = [];\n if (this.$_config.cleanNested) {\n this.$_config.cleanNested();\n }\n children_processing_1.pullAllChildren(this.$slots.default, children, this.$_config);\n this.$_processChildren(children);\n return createElement(\"div\", {\n attrs: { id: this.$attrs.id }\n }, children);\n },\n beforeUpdate: function () {\n this.$_config.setPrevNestedOptions(this.$_config.getNestedOptionValues());\n },\n updated: function () {\n var _a, _b;\n this.$children.forEach(function (child) { return configuration_component_1.initOptionChangedFunc(configuration_component_1.getConfig(child), child, configuration_component_1.getInnerChanges(child)); });\n this.$_templatesManager.discover();\n this.$_instance.beginUpdate();\n if (this.$_templatesManager.isDirty) {\n this.$_instance.option(\"integrationOptions.templates\", this.$_templatesManager.templates);\n var props = (_b = (_a = this.$vnode) === null || _a === void 0 ? void 0 : _a.componentOptions) === null || _b === void 0 ? void 0 : _b.propsData;\n for (var _i = 0, _c = Object.keys(this.$_templatesManager.templates); _i < _c.length; _i++) {\n var name_1 = _c[_i];\n this.$_instance.option(helpers_1.getTemplatePropName(props, name_1), name_1);\n }\n this.$_templatesManager.resetDirtyFlag();\n }\n for (var _d = 0, _e = Object.keys(this.$_pendingOptions); _d < _e.length; _d++) {\n var name_2 = _e[_d];\n this.$_instance.option(name_2, this.$_pendingOptions[name_2]);\n }\n this.$_pendingOptions = {};\n this.$_applyConfigurationChanges();\n this.$_instance.endUpdate();\n this.eventBus.$emit(\"updated\");\n },\n beforeDestroy: function () {\n var instance = this.$_instance;\n if (instance) {\n events_1.triggerHandler(this.$el, constants_1.DX_REMOVE_EVENT);\n instance.dispose();\n }\n },\n created: function () {\n var _this = this;\n this.$_config = new configuration_1.default(function (n, v) { return _this.$_pendingOptions[n] = v; }, null, this.$options.propsData && __assign({}, this.$options.propsData), this.$_expectedChildren);\n this.$_innerChanges = {};\n this.$_config.init(this.$props && Object.keys(this.$props));\n },\n methods: {\n $_applyConfigurationChanges: function () {\n var _this = this;\n this.$_config.componentsCountChanged.forEach(function (_a) {\n var optionPath = _a.optionPath, isCollection = _a.isCollection, removed = _a.removed;\n var options = _this.$_config.getNestedOptionValues();\n if (!isCollection && removed) {\n _this.$_instance.resetOption(optionPath);\n }\n else {\n _this.$_instance.option(optionPath, helpers_1.getOptionValue(options, optionPath));\n }\n });\n this.$_config.cleanComponentsCountChanged();\n },\n $_createWidget: function (element) {\n var thisComponent = this;\n thisComponent.$_pendingOptions = {};\n thisComponent.$_templatesManager = new templates_manager_1.TemplatesManager(this);\n var config = this.$_config;\n var options = __assign(__assign(__assign(__assign({}, this.$options.propsData), config.initialValues), config.getNestedOptionValues()), this.$_getIntegrationOptions());\n var instance = new this.$_WidgetClass(element, options);\n thisComponent.$_instance = instance;\n instance.on(\"optionChanged\", function (args) { return config.onOptionChanged(args); });\n configuration_1.setEmitOptionChangedFunc(config, this, this.$_innerChanges);\n configuration_1.bindOptionWatchers(config, this, this.$_innerChanges);\n this.$_createEmitters(instance);\n },\n $_getIntegrationOptions: function () {\n var _a, _b;\n var result = __assign({ integrationOptions: {\n watchMethod: this.$_getWatchMethod(),\n } }, this.$_getExtraIntegrationOptions());\n if (this.$_templatesManager.isDirty) {\n var templates = this.$_templatesManager.templates;\n result.integrationOptions.templates = templates;\n var props = (_b = (_a = this.$vnode) === null || _a === void 0 ? void 0 : _a.componentOptions) === null || _b === void 0 ? void 0 : _b.propsData;\n for (var _i = 0, _c = Object.keys(templates); _i < _c.length; _i++) {\n var name_3 = _c[_i];\n result[helpers_1.getTemplatePropName(props, name_3)] = name_3;\n }\n this.$_templatesManager.resetDirtyFlag();\n }\n return result;\n },\n $_getWatchMethod: function () {\n var _this = this;\n return function (valueGetter, valueChangeCallback, options) {\n options = options || {};\n if (!options.skipImmediate) {\n valueChangeCallback(valueGetter());\n }\n return _this.$watch(function () {\n return valueGetter();\n }, function (newValue, oldValue) {\n if (helpers_1.toComparable(oldValue) !== helpers_1.toComparable(newValue) || options.deep) {\n valueChangeCallback(newValue);\n }\n }, {\n deep: options.deep\n });\n };\n },\n $_getExtraIntegrationOptions: function () {\n return {};\n },\n $_processChildren: function (_children) {\n return;\n },\n $_createEmitters: function (instance) {\n var _this = this;\n Object.keys(this.$listeners).forEach(function (listenerName) {\n var eventName = helpers_1.camelize(listenerName);\n instance.on(eventName, function (e) {\n _this.$emit(listenerName, e);\n });\n });\n }\n }\n}); };\nexports.BaseComponent = BaseComponent;\nfunction cleanWidgetNode(node) {\n var removedNodes = [];\n helpers_1.forEachChildNode(node, function (childNode) {\n var parent = childNode.parentNode;\n var isExtension = childNode.hasAttribute && childNode.hasAttribute(\"isExtension\");\n if ((childNode.nodeName === \"#comment\" || isExtension) && parent) {\n removedNodes.push(childNode);\n parent.removeChild(childNode);\n }\n });\n return removedNodes;\n}\nfunction restoreNodes(el, nodes) {\n nodes.forEach(function (node) {\n el.appendChild(node);\n });\n}\nvar DxComponent = function () { return BaseComponent().extend({\n methods: {\n $_getExtraIntegrationOptions: function () {\n return {\n onInitializing: function () {\n this.beginUpdate();\n }\n };\n },\n $_processChildren: function (children) {\n children.forEach(function (childNode) {\n if (!childNode.componentOptions) {\n return;\n }\n childNode.componentOptions.$_hasOwner = true;\n });\n },\n },\n mounted: function () {\n var _this = this;\n var nodes = cleanWidgetNode(this.$el);\n this.$_createWidget(this.$el);\n this.$_instance.endUpdate();\n restoreNodes(this.$el, nodes);\n if (this.$slots && this.$slots.default) {\n this.$slots.default.forEach(function (child) {\n var childExtension = child.componentInstance;\n if (childExtension && childExtension.$_isExtension) {\n childExtension.attachTo(_this.$el);\n }\n });\n }\n }\n}); };\nexports.DxComponent = DxComponent;\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.discover = exports.mountTemplate = void 0;\nvar vue_helper_1 = require(\"./vue-helper\");\nvar vue_1 = require(\"vue\");\nvar TEMPLATE_PROP = \"template\";\nfunction asConfigurable(component) {\n var componentOptions = component;\n if (!componentOptions) {\n return;\n }\n if (!componentOptions.$_config || !componentOptions.$_config.name) {\n return undefined;\n }\n return componentOptions;\n}\nfunction hasTemplate(component) {\n return TEMPLATE_PROP in component.type.props && vue_helper_1.configurationTemplate(component);\n}\nfunction discover(component) {\n var templates = {};\n var namedTeplates = vue_helper_1.declaredTemplates(component);\n for (var slotName in namedTeplates) {\n if (slotName === \"default\" && component.$slots.default) {\n continue;\n }\n var slot = namedTeplates[slotName];\n if (!slot) {\n continue;\n }\n templates[slotName] = slot;\n }\n var componentChildren = vue_helper_1.getChildren(component);\n for (var _i = 0, componentChildren_1 = componentChildren; _i < componentChildren_1.length; _i++) {\n var childComponent = componentChildren_1[_i];\n var configurable = asConfigurable(childComponent);\n if (!configurable) {\n continue;\n }\n var defaultSlot = vue_helper_1.configurationDefaultTemplate(childComponent);\n if (!defaultSlot || !hasTemplate(childComponent)) {\n continue;\n }\n var templateName = configurable.$_config.fullPath + \".\" + TEMPLATE_PROP;\n templates[templateName] = defaultSlot;\n }\n return templates;\n}\nexports.discover = discover;\nfunction clearConfiguration(content) {\n var newContent = [];\n content.forEach(function (item) {\n var configurable = vue_helper_1.getConfigurationOptions(item);\n if (!configurable || !configurable.$_optionName) {\n newContent.push(item);\n }\n });\n return newContent;\n}\nfunction mountTemplate(getSlot, parent, data, name, placeholder) {\n return vue_helper_1.mount({\n name: name,\n inject: [\"eventBus\"],\n created: function () {\n this.eventBus.add(this.$_updatedHandler);\n },\n mounted: function () {\n data.onRendered();\n },\n unmounted: function () {\n this.eventBus.remove(this.$_updatedHandler);\n },\n methods: {\n $_updatedHandler: function () {\n this.$forceUpdate();\n }\n },\n render: function () {\n var content = clearConfiguration(getSlot()(data));\n if (!content) {\n return vue_1.h(\"div\");\n }\n return content.length > 1 ? content : content[0];\n }\n }, parent, placeholder);\n}\nexports.mountTemplate = mountTemplate;\n","/**\r\n * DevExtreme (esm/ui/widget/ui.errors.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport errorUtils from \"../../core/utils/error\";\r\nimport errors from \"../../core/errors\";\r\nexport default errorUtils(errors.ERROR_MESSAGES, {\r\n E1001: \"Module '{0}'. Controller '{1}' is already registered\",\r\n E1002: \"Module '{0}'. Controller '{1}' does not inherit from DevExpress.ui.dxDataGrid.Controller\",\r\n E1003: \"Module '{0}'. View '{1}' is already registered\",\r\n E1004: \"Module '{0}'. View '{1}' does not inherit from DevExpress.ui.dxDataGrid.View\",\r\n E1005: \"Public method '{0}' is already registered\",\r\n E1006: \"Public method '{0}.{1}' does not exist\",\r\n E1007: \"State storing cannot be provided due to the restrictions of the browser\",\r\n E1010: \"The template does not contain the TextBox widget\",\r\n E1011: 'Items cannot be deleted from the List. Implement the \"remove\" function in the data store',\r\n E1012: \"Editing type '{0}' with the name '{1}' is unsupported\",\r\n E1016: \"Unexpected type of data source is provided for a lookup column\",\r\n E1018: \"The 'collapseAll' method cannot be called if you use a remote data source\",\r\n E1019: \"Search mode '{0}' is unavailable\",\r\n E1020: \"The type cannot be changed after initialization\",\r\n E1021: \"{0} '{1}' you are trying to remove does not exist\",\r\n E1022: 'The \"markers\" option is given an invalid value. Assign an array instead',\r\n E1023: 'The \"routes\" option is given an invalid value. Assign an array instead',\r\n E1025: \"This layout is too complex to render\",\r\n E1026: 'The \"calculateCustomSummary\" function is missing from a field whose \"summaryType\" option is set to \"custom\"',\r\n E1031: \"Unknown subscription in the Scheduler widget: '{0}'\",\r\n E1032: \"Unknown start date in an appointment: '{0}'\",\r\n E1033: \"Unknown step in the date navigator: '{0}'\",\r\n E1034: \"The browser does not implement an API for saving files\",\r\n E1035: \"The editor cannot be created because of an internal error: {0}\",\r\n E1037: \"Invalid structure of grouped data\",\r\n E1038: \"The browser does not support local storages for local web pages\",\r\n E1039: \"A cell's position cannot be calculated\",\r\n E1040: \"The '{0}' key value is not unique within the data array\",\r\n E1041: \"The '{0}' script is referenced after the DevExtreme scripts or not referenced at all\",\r\n E1042: \"{0} requires the key field to be specified\",\r\n E1043: \"Changes cannot be processed due to the incorrectly set key\",\r\n E1044: \"The key field specified by the keyExpr option does not match the key field specified in the data store\",\r\n E1045: \"Editing requires the key field to be specified in the data store\",\r\n E1046: \"The '{0}' key field is not found in data objects\",\r\n E1047: 'The \"{0}\" field is not found in the fields array',\r\n E1048: 'The \"{0}\" operation is not found in the filterOperations array',\r\n E1049: \"Column '{0}': filtering is allowed but the 'dataField' or 'name' option is not specified\",\r\n E1050: \"The validationRules option does not apply to third-party editors defined in the editCellTemplate\",\r\n E1051: 'HtmlEditor\\'s valueType is \"{0}\", but the {0} converter was not imported.',\r\n E1052: '{0} should have the \"dataSource\" option specified',\r\n E1053: 'The \"buttons\" option accepts an array that contains only objects or string values',\r\n E1054: \"All text editor buttons must have names\",\r\n E1055: 'One or several text editor buttons have invalid or non-unique \"name\" values',\r\n E1056: 'The {0} widget does not support buttons of the \"{1}\" type',\r\n E1058: 'The \"startDayHour\" must be earlier than the \"endDayHour\"',\r\n E1059: \"The following column names are not unique: {0}\",\r\n E1060: \"All editable columns must have names\",\r\n W1001: 'The \"key\" option cannot be modified after initialization',\r\n W1002: \"An item with the key '{0}' does not exist\",\r\n W1003: \"A group with the key '{0}' in which you are trying to select items does not exist\",\r\n W1004: \"The item '{0}' you are trying to select in the group '{1}' does not exist\",\r\n W1005: \"Due to column data types being unspecified, data has been loaded twice in order to apply initial filter settings. To resolve this issue, specify data types for all grid columns.\",\r\n W1006: \"The map service returned the following error: '{0}'\",\r\n W1007: \"No item with key {0} was found in the data source, but this key was used as the parent key for item {1}\",\r\n W1008: \"Cannot scroll to the '{0}' date because it does not exist on the current view\",\r\n W1009: \"Searching works only if data is specified using the dataSource option\",\r\n W1010: \"The capability to select all items works with source data of plain structure only\",\r\n W1011: 'The \"keyExpr\" option is not applied when dataSource is not an array',\r\n W1012: \"The '{0}' key field is not found in data objects\",\r\n W1013: 'The \"message\" field in the dialog component was renamed to \"messageHtml\". Change your code correspondingly. In addition, if you used HTML code in the message, make sure that it is secure',\r\n W1014: \"The Floating Action Button exceeds the recommended speed dial action count. If you need to display more speed dial actions, increase the maxSpeedDialActionCount option value in the global config.\",\r\n W1015: 'The \"cellDuration\" should divide the range from the \"startDayHour\" to the \"endDayHour\" into even intervals',\r\n W1016: \"The '{0}' field in the HTML Editor toolbar item configuration was renamed to '{1}'. Please make a corresponding change in your code.\",\r\n W1017: \"The 'key' property is not specified for a lookup data source. Please specify it to prevent requests for the entire dataset when users filter data.\",\r\n W1018: \"Infinite scrolling may not work properly with multiple selection. To use these features together, set 'selection.deferred' to true or set 'selection.selectAllMode' to 'page'.\",\r\n W1019: \"Filter query string exceeds maximum length limit of {0} characters.\",\r\n W1020: \"hideEvent is ignored when the shading property is true\"\r\n});\r\n","/**\r\n * DevExtreme (esm/data/array_store.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n rejectedPromise,\r\n trivialPromise\r\n} from \"./utils\";\r\nimport Query from \"./query\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport Store from \"./abstract_store\";\r\nimport {\r\n indexByKey,\r\n insert,\r\n applyBatch,\r\n update,\r\n remove\r\n} from \"./array_utils\";\r\nvar ArrayStore = Store.inherit({\r\n ctor: function(options) {\r\n if (Array.isArray(options)) {\r\n options = {\r\n data: options\r\n }\r\n } else {\r\n options = options || {}\r\n }\r\n this.callBase(options);\r\n var initialArray = options.data;\r\n if (initialArray && !Array.isArray(initialArray)) {\r\n throw errors.Error(\"E4006\")\r\n }\r\n this._array = initialArray || []\r\n },\r\n createQuery: function() {\r\n return Query(this._array, {\r\n errorHandler: this._errorHandler\r\n })\r\n },\r\n _byKeyImpl: function(key) {\r\n var index = indexByKey(this, this._array, key);\r\n if (-1 === index) {\r\n return rejectedPromise(errors.Error(\"E4009\"))\r\n }\r\n return trivialPromise(this._array[index])\r\n },\r\n _insertImpl: function(values) {\r\n return insert(this, this._array, values)\r\n },\r\n _pushImpl: function(changes) {\r\n applyBatch({\r\n keyInfo: this,\r\n data: this._array,\r\n changes: changes\r\n })\r\n },\r\n _updateImpl: function(key, values) {\r\n return update(this, this._array, key, values)\r\n },\r\n _removeImpl: function(key) {\r\n return remove(this, this._array, key)\r\n },\r\n clear: function() {\r\n this._eventsStrategy.fireEvent(\"modifying\");\r\n this._array = [];\r\n this._eventsStrategy.fireEvent(\"modified\")\r\n }\r\n}, \"array\");\r\nexport default ArrayStore;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.async.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport CollectionWidgetEdit from \"./ui.collection_widget.edit\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar AsyncCollectionWidget = CollectionWidgetEdit.inherit({\r\n _initMarkup() {\r\n this._deferredItems = [];\r\n this.callBase()\r\n },\r\n _renderItemContent(args) {\r\n var renderContentDeferred = new Deferred;\r\n var itemDeferred = new Deferred;\r\n this._deferredItems[args.index] = itemDeferred;\r\n var $itemContent = this.callBase.call(this, args);\r\n itemDeferred.done(() => {\r\n renderContentDeferred.resolve($itemContent)\r\n });\r\n return renderContentDeferred.promise()\r\n },\r\n _createItemByTemplate(itemTemplate, renderArgs) {\r\n return itemTemplate.render({\r\n model: renderArgs.itemData,\r\n container: renderArgs.container,\r\n index: renderArgs.index,\r\n onRendered: () => {\r\n this._deferredItems[renderArgs.index].resolve()\r\n }\r\n })\r\n },\r\n _postProcessRenderItems: noop,\r\n _renderItemsAsync() {\r\n var d = new Deferred;\r\n when.apply(this, this._deferredItems).done(() => {\r\n this._postProcessRenderItems();\r\n d.resolve()\r\n });\r\n return d.promise()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._deferredItems = []\r\n }\r\n});\r\nexport default AsyncCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.base.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getWidth,\r\n getOuterWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isMaterial,\r\n waitWebFont\r\n} from \"../themes\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport AsyncCollectionWidget from \"../collection/ui.collection_widget.async\";\r\nimport Promise from \"../../core/polyfills/promise\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport errors from \"../../core/errors\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n TOOLBAR_CLASS\r\n} from \"./constants\";\r\nvar TOOLBAR_BEFORE_CLASS = \"dx-toolbar-before\";\r\nvar TOOLBAR_CENTER_CLASS = \"dx-toolbar-center\";\r\nvar TOOLBAR_AFTER_CLASS = \"dx-toolbar-after\";\r\nvar TOOLBAR_MINI_CLASS = \"dx-toolbar-mini\";\r\nvar TOOLBAR_ITEM_CLASS = \"dx-toolbar-item\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar TOOLBAR_BUTTON_CLASS = \"dx-toolbar-button\";\r\nvar TOOLBAR_ITEMS_CONTAINER_CLASS = \"dx-toolbar-items-container\";\r\nvar TOOLBAR_GROUP_CLASS = \"dx-toolbar-group\";\r\nvar TOOLBAR_COMPACT_CLASS = \"dx-toolbar-compact\";\r\nvar TOOLBAR_LABEL_SELECTOR = \".\" + TOOLBAR_LABEL_CLASS;\r\nvar TOOLBAR_MULTILINE_CLASS = \"dx-toolbar-multiline\";\r\nvar TEXT_BUTTON_MODE = \"text\";\r\nvar DEFAULT_BUTTON_TYPE = \"default\";\r\nvar TOOLBAR_ITEM_DATA_KEY = \"dxToolbarItemDataKey\";\r\nvar ToolbarBase = AsyncCollectionWidget.inherit({\r\n compactMode: false,\r\n ctor: function(element, options) {\r\n this._userOptions = options || {};\r\n this.callBase(element, options);\r\n if (\"height\" in this._userOptions) {\r\n errors.log(\"W0001\", this.NAME, \"height\", \"20.1\", \"Functionality associated with this option is not intended for the Toolbar widget.\")\r\n }\r\n },\r\n _getSynchronizableOptionsForCreateComponent: function() {\r\n return this.callBase().filter(item => \"disabled\" !== item)\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n var template = new BindableTemplate(function($container, data, rawModel) {\r\n if (isPlainObject(data)) {\r\n if (data.text) {\r\n $container.text(data.text).wrapInner(\"
\")\r\n }\r\n if (data.html) {\r\n $container.html(data.html)\r\n }\r\n if (\"dxDropDownButton\" === data.widget) {\r\n if (this.option(\"useFlatButtons\")) {\r\n data.options = data.options || {};\r\n data.options.stylingMode = data.options.stylingMode || TEXT_BUTTON_MODE\r\n }\r\n }\r\n if (\"dxButton\" === data.widget) {\r\n if (this.option(\"useFlatButtons\")) {\r\n data.options = data.options || {};\r\n data.options.stylingMode = data.options.stylingMode || TEXT_BUTTON_MODE\r\n }\r\n if (this.option(\"useDefaultButtons\")) {\r\n data.options = data.options || {};\r\n data.options.type = data.options.type || DEFAULT_BUTTON_TYPE\r\n }\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: rawModel,\r\n parent: this\r\n })\r\n }.bind(this), [\"text\", \"html\", \"widget\", \"options\"], this.option(\"integrationOptions.watchMethod\"));\r\n this._templateManager.addDefaultTemplates({\r\n item: template,\r\n menuItem: template\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n renderAs: \"topToolbar\",\r\n grouped: false,\r\n useFlatButtons: false,\r\n useDefaultButtons: false,\r\n multiline: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n useFlatButtons: true\r\n }\r\n }])\r\n },\r\n _itemContainer: function() {\r\n return this._$toolbarItemsContainer.find([\".\" + TOOLBAR_BEFORE_CLASS, \".\" + TOOLBAR_CENTER_CLASS, \".\" + TOOLBAR_AFTER_CLASS].join(\",\"))\r\n },\r\n _itemClass: function() {\r\n return TOOLBAR_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return TOOLBAR_ITEM_DATA_KEY\r\n },\r\n _buttonClass: function() {\r\n return TOOLBAR_BUTTON_CLASS\r\n },\r\n _dimensionChanged: function() {\r\n this._arrangeItems();\r\n this._applyCompactMode()\r\n },\r\n _initMarkup: function() {\r\n this._renderToolbar();\r\n this._renderSections();\r\n this.callBase();\r\n this.setAria(\"role\", \"toolbar\")\r\n },\r\n _waitParentAnimationFinished: function() {\r\n var $element = this.$element();\r\n return new Promise(resolve => {\r\n var runCheck = () => {\r\n clearTimeout(this._waitParentAnimationTimeout);\r\n this._waitParentAnimationTimeout = setTimeout(() => (() => {\r\n var readyToResolve = true;\r\n $element.parents().each((_, parent) => {\r\n if (fx.isAnimating($(parent))) {\r\n readyToResolve = false;\r\n return false\r\n }\r\n });\r\n if (readyToResolve) {\r\n resolve()\r\n }\r\n return readyToResolve\r\n })() || runCheck(), 15)\r\n };\r\n runCheck()\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderItemsAsync();\r\n if (isMaterial()) {\r\n Promise.all([this._waitParentAnimationFinished(), this._checkWebFontForLabelsLoaded()]).then(this._dimensionChanged.bind(this))\r\n }\r\n },\r\n _postProcessRenderItems: function() {\r\n this._arrangeItems()\r\n },\r\n _renderToolbar: function() {\r\n this.$element().addClass(TOOLBAR_CLASS).toggleClass(TOOLBAR_MULTILINE_CLASS, this.option(\"multiline\"));\r\n this._$toolbarItemsContainer = $(\"
\").addClass(TOOLBAR_ITEMS_CONTAINER_CLASS).appendTo(this.$element())\r\n },\r\n _renderSections: function() {\r\n var $container = this._$toolbarItemsContainer;\r\n var that = this;\r\n each([\"before\", \"center\", \"after\"], (function() {\r\n var sectionClass = \"dx-toolbar-\" + this;\r\n var $section = $container.find(\".\" + sectionClass);\r\n if (!$section.length) {\r\n that[\"_$\" + this + \"Section\"] = $section = $(\"
\").addClass(sectionClass).appendTo($container)\r\n }\r\n }))\r\n },\r\n _checkWebFontForLabelsLoaded: function() {\r\n var $labels = this.$element().find(TOOLBAR_LABEL_SELECTOR);\r\n var promises = [];\r\n $labels.each((_, label) => {\r\n var text = $(label).text();\r\n var fontWeight = $(label).css(\"fontWeight\");\r\n promises.push(waitWebFont(text, fontWeight))\r\n });\r\n return Promise.all(promises)\r\n },\r\n _arrangeItems: function(elementWidth) {\r\n elementWidth = elementWidth || getWidth(this.$element());\r\n this._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n var beforeRect = getBoundingRect(this._$beforeSection.get(0));\r\n var afterRect = getBoundingRect(this._$afterSection.get(0));\r\n this._alignCenterSection(beforeRect, afterRect, elementWidth);\r\n var $label = this._$toolbarItemsContainer.find(TOOLBAR_LABEL_SELECTOR).eq(0);\r\n var $section = $label.parent();\r\n if (!$label.length) {\r\n return\r\n }\r\n var labelOffset = beforeRect.width ? beforeRect.width : $label.position().left;\r\n var widthBeforeSection = $section.hasClass(TOOLBAR_BEFORE_CLASS) ? 0 : labelOffset;\r\n var widthAfterSection = $section.hasClass(TOOLBAR_AFTER_CLASS) ? 0 : afterRect.width;\r\n var elemsAtSectionWidth = 0;\r\n $section.children().not(TOOLBAR_LABEL_SELECTOR).each((function() {\r\n elemsAtSectionWidth += getOuterWidth(this)\r\n }));\r\n var freeSpace = elementWidth - elemsAtSectionWidth;\r\n var sectionMaxWidth = Math.max(freeSpace - widthBeforeSection - widthAfterSection, 0);\r\n if ($section.hasClass(TOOLBAR_BEFORE_CLASS)) {\r\n this._alignSection(this._$beforeSection, sectionMaxWidth)\r\n } else {\r\n var labelPaddings = getOuterWidth($label) - getWidth($label);\r\n $label.css(\"maxWidth\", sectionMaxWidth - labelPaddings)\r\n }\r\n },\r\n _alignCenterSection: function(beforeRect, afterRect, elementWidth) {\r\n this._alignSection(this._$centerSection, elementWidth - beforeRect.width - afterRect.width);\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var leftRect = isRTL ? afterRect : beforeRect;\r\n var rightRect = isRTL ? beforeRect : afterRect;\r\n var centerRect = getBoundingRect(this._$centerSection.get(0));\r\n if (leftRect.right > centerRect.left || centerRect.right > rightRect.left) {\r\n this._$centerSection.css({\r\n marginLeft: leftRect.width,\r\n marginRight: rightRect.width,\r\n float: leftRect.width > rightRect.width ? \"none\" : \"right\"\r\n })\r\n }\r\n },\r\n _alignSection: function($section, maxWidth) {\r\n var $labels = $section.find(TOOLBAR_LABEL_SELECTOR);\r\n var labels = $labels.toArray();\r\n maxWidth -= this._getCurrentLabelsPaddings(labels);\r\n var currentWidth = this._getCurrentLabelsWidth(labels);\r\n var difference = Math.abs(currentWidth - maxWidth);\r\n if (maxWidth < currentWidth) {\r\n labels = labels.reverse();\r\n this._alignSectionLabels(labels, difference, false)\r\n } else {\r\n this._alignSectionLabels(labels, difference, true)\r\n }\r\n },\r\n _alignSectionLabels: function(labels, difference, expanding) {\r\n var getRealLabelWidth = function(label) {\r\n return getBoundingRect(label).width\r\n };\r\n for (var i = 0; i < labels.length; i++) {\r\n var $label = $(labels[i]);\r\n var currentLabelWidth = Math.ceil(getRealLabelWidth(labels[i]));\r\n var labelMaxWidth = void 0;\r\n if (expanding) {\r\n $label.css(\"maxWidth\", \"inherit\")\r\n }\r\n var possibleLabelWidth = Math.ceil(expanding ? getRealLabelWidth(labels[i]) : currentLabelWidth);\r\n if (possibleLabelWidth < difference) {\r\n labelMaxWidth = expanding ? possibleLabelWidth : 0;\r\n difference -= possibleLabelWidth\r\n } else {\r\n labelMaxWidth = expanding ? currentLabelWidth + difference : currentLabelWidth - difference;\r\n $label.css(\"maxWidth\", labelMaxWidth);\r\n break\r\n }\r\n $label.css(\"maxWidth\", labelMaxWidth)\r\n }\r\n },\r\n _applyCompactMode: function() {\r\n var $element = this.$element();\r\n $element.removeClass(TOOLBAR_COMPACT_CLASS);\r\n if (this.option(\"compactMode\") && this._getSummaryItemsWidth(this.itemElements(), true) > getWidth($element)) {\r\n $element.addClass(TOOLBAR_COMPACT_CLASS)\r\n }\r\n },\r\n _getCurrentLabelsWidth: function(labels) {\r\n var width = 0;\r\n labels.forEach((function(label, index) {\r\n width += getOuterWidth(label)\r\n }));\r\n return width\r\n },\r\n _getCurrentLabelsPaddings: function(labels) {\r\n var padding = 0;\r\n labels.forEach((function(label, index) {\r\n padding += getOuterWidth(label) - getWidth(label)\r\n }));\r\n return padding\r\n },\r\n _renderItem: function(index, item, itemContainer, $after) {\r\n var location = item.location || \"center\";\r\n var container = itemContainer || this[\"_$\" + location + \"Section\"];\r\n var itemHasText = !!(item.text || item.html);\r\n var itemElement = this.callBase(index, item, container, $after);\r\n itemElement.toggleClass(this._buttonClass(), !itemHasText).toggleClass(TOOLBAR_LABEL_CLASS, itemHasText).addClass(item.cssClass);\r\n return itemElement\r\n },\r\n _renderGroupedItems: function() {\r\n var that = this;\r\n each(this.option(\"items\"), (function(groupIndex, group) {\r\n var groupItems = group.items;\r\n var $container = $(\"
\").addClass(TOOLBAR_GROUP_CLASS);\r\n var location = group.location || \"center\";\r\n if (!groupItems || !groupItems.length) {\r\n return\r\n }\r\n each(groupItems, (function(itemIndex, item) {\r\n that._renderItem(itemIndex, item, $container, null)\r\n }));\r\n that._$toolbarItemsContainer.find(\".dx-toolbar-\" + location).append($container)\r\n }))\r\n },\r\n _renderItems: function(items) {\r\n var grouped = this.option(\"grouped\") && items.length && items[0].items;\r\n grouped ? this._renderGroupedItems() : this.callBase(items)\r\n },\r\n _getToolbarItems: function() {\r\n return this.option(\"items\") || []\r\n },\r\n _renderContentImpl: function() {\r\n var items = this._getToolbarItems();\r\n this.$element().toggleClass(TOOLBAR_MINI_CLASS, 0 === items.length);\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n this._applyCompactMode()\r\n },\r\n _renderEmptyMessage: noop,\r\n _clean: function() {\r\n this._$toolbarItemsContainer.children().empty();\r\n this.$element().empty()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._arrangeItems()\r\n }\r\n },\r\n _isVisible: function() {\r\n return getWidth(this.$element()) > 0 && getHeight(this.$element()) > 0\r\n },\r\n _getIndexByItem: function(item) {\r\n return inArray(item, this._getToolbarItems())\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n this.callBase.apply(this, [item, property, value]);\r\n this._arrangeItems()\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"width\":\r\n this.callBase.apply(this, arguments);\r\n this._dimensionChanged();\r\n break;\r\n case \"multiline\":\r\n this.$element().toggleClass(TOOLBAR_MULTILINE_CLASS, args.value);\r\n break;\r\n case \"renderAs\":\r\n case \"useFlatButtons\":\r\n case \"useDefaultButtons\":\r\n this._invalidate();\r\n break;\r\n case \"compactMode\":\r\n this._applyCompactMode();\r\n break;\r\n case \"grouped\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._waitParentAnimationTimeout)\r\n }\r\n});\r\nregisterComponent(\"dxToolbarBase\", ToolbarBase);\r\nexport default ToolbarBase;\r\n","/**\r\n * DevExtreme (esm/ui/collection/item.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"../../core/utils/public_component\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar forcibleWatcher = function(watchMethod, fn, callback) {\r\n var filteredCallback = function(value) {\r\n if (oldValue !== value) {\r\n callback(value, oldValue);\r\n oldValue = value\r\n }\r\n };\r\n var oldValue;\r\n return {\r\n dispose: watchMethod(fn, filteredCallback),\r\n force: function() {\r\n filteredCallback(fn())\r\n }\r\n }\r\n};\r\nvar CollectionItem = Class.inherit({\r\n ctor: function($element, options, rawData) {\r\n this._$element = $element;\r\n this._options = options;\r\n this._rawData = rawData;\r\n attachInstanceToElement($element, this, this._dispose);\r\n this._render()\r\n },\r\n _render: function() {\r\n var $placeholder = $(\"
\").addClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n this._$element.append($placeholder);\r\n this._watchers = [];\r\n this._renderWatchers()\r\n },\r\n _renderWatchers: function() {\r\n this._startWatcher(\"disabled\", this._renderDisabled.bind(this));\r\n this._startWatcher(\"visible\", this._renderVisible.bind(this))\r\n },\r\n _startWatcher: function(field, render) {\r\n var rawData = this._rawData;\r\n var exprGetter = this._options.fieldGetter(field);\r\n var watcher = forcibleWatcher(this._options.watchMethod(), (function() {\r\n return exprGetter(rawData)\r\n }), function(value, oldValue) {\r\n this._dirty = true;\r\n render(value, oldValue)\r\n }.bind(this));\r\n this._watchers.push(watcher)\r\n },\r\n setDataField: function() {\r\n this._dirty = false;\r\n each(this._watchers, (function(_, watcher) {\r\n watcher.force()\r\n }));\r\n if (this._dirty) {\r\n return true\r\n }\r\n },\r\n _renderDisabled: function(value, oldValue) {\r\n this._$element.toggleClass(DISABLED_STATE_CLASS, !!value);\r\n this._updateOwnerFocus(value)\r\n },\r\n _updateOwnerFocus: function(isDisabled) {\r\n var ownerComponent = this._options.owner;\r\n if (ownerComponent && isDisabled) {\r\n ownerComponent._resetItemFocus(this._$element)\r\n }\r\n },\r\n _renderVisible: function(value, oldValue) {\r\n this._$element.toggleClass(INVISIBLE_STATE_CLASS, void 0 !== value && !value)\r\n },\r\n _dispose: function() {\r\n each(this._watchers, (function(_, watcher) {\r\n watcher.dispose()\r\n }))\r\n }\r\n});\r\nCollectionItem.getInstance = function($element) {\r\n return getInstanceByElement($element, this)\r\n};\r\nexport default CollectionItem;\r\n","/**\r\n * DevExtreme (esm/events/visibility_change.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nvar triggerVisibilityChangeEvent = function(eventName) {\r\n return function(element) {\r\n var $element = $(element || \"body\");\r\n var changeHandlers = $element.filter(\".dx-visibility-change-handler\").add($element.find(\".dx-visibility-change-handler\"));\r\n for (var i = 0; i < changeHandlers.length; i++) {\r\n eventsEngine.triggerHandler(changeHandlers[i], eventName)\r\n }\r\n }\r\n};\r\nexport var triggerShownEvent = triggerVisibilityChangeEvent(\"dxshown\");\r\nexport var triggerHidingEvent = triggerVisibilityChangeEvent(\"dxhiding\");\r\nexport var triggerResizeEvent = triggerVisibilityChangeEvent(\"dxresize\");\r\n","/**\r\n * DevExtreme (esm/data/array_utils.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n isPlainObject,\r\n isEmptyObject,\r\n isDefined,\r\n isObject\r\n} from \"../core/utils/type\";\r\nimport config from \"../core/config\";\r\nimport Guid from \"../core/guid\";\r\nimport {\r\n extend,\r\n extendFromObject\r\n} from \"../core/utils/extend\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../core/utils/object\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport {\r\n keysEqual,\r\n rejectedPromise,\r\n trivialPromise\r\n} from \"./utils\";\r\n\r\nfunction hasKey(target, keyOrKeys) {\r\n var key;\r\n var keys = \"string\" === typeof keyOrKeys ? keyOrKeys.split() : keyOrKeys.slice();\r\n while (keys.length) {\r\n key = keys.shift();\r\n if (key in target) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction findItems(keyInfo, items, key, groupCount) {\r\n var childItems;\r\n var result;\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n childItems = items[i].items || items[i].collapsedItems || [];\r\n result = findItems(keyInfo, childItems || [], key, groupCount - 1);\r\n if (result) {\r\n return result\r\n }\r\n }\r\n } else if (indexByKey(keyInfo, items, key) >= 0) {\r\n return items\r\n }\r\n}\r\n\r\nfunction getItems(keyInfo, items, key, groupCount) {\r\n if (groupCount) {\r\n return findItems(keyInfo, items, key, groupCount) || []\r\n }\r\n return items\r\n}\r\n\r\nfunction generateDataByKeyMap(keyInfo, array) {\r\n if (keyInfo.key() && (!array._dataByKeyMap || array._dataByKeyMapLength !== array.length)) {\r\n var dataByKeyMap = {};\r\n var arrayLength = array.length;\r\n for (var i = 0; i < arrayLength; i++) {\r\n dataByKeyMap[JSON.stringify(keyInfo.keyOf(array[i]))] = array[i]\r\n }\r\n array._dataByKeyMap = dataByKeyMap;\r\n array._dataByKeyMapLength = arrayLength\r\n }\r\n}\r\n\r\nfunction getCacheValue(array, key) {\r\n if (array._dataByKeyMap) {\r\n return array._dataByKeyMap[JSON.stringify(key)]\r\n }\r\n}\r\n\r\nfunction getHasKeyCacheValue(array, key) {\r\n if (array._dataByKeyMap) {\r\n return array._dataByKeyMap[JSON.stringify(key)]\r\n }\r\n return true\r\n}\r\n\r\nfunction setDataByKeyMapValue(array, key, data) {\r\n if (array._dataByKeyMap) {\r\n array._dataByKeyMap[JSON.stringify(key)] = data;\r\n array._dataByKeyMapLength += data ? 1 : -1\r\n }\r\n}\r\n\r\nfunction cloneInstance(instance) {\r\n var result = instance ? Object.create(Object.getPrototypeOf(instance)) : {};\r\n var instanceWithoutPrototype = extendFromObject({}, instance);\r\n for (var name in instanceWithoutPrototype) {\r\n var prop = instanceWithoutPrototype[name];\r\n if (isObject(prop) && !isPlainObject(prop) && prop !== instance) {\r\n instanceWithoutPrototype[name] = cloneInstance(prop)\r\n }\r\n }\r\n deepExtendArraySafe(result, instanceWithoutPrototype, true, true);\r\n return result\r\n}\r\n\r\nfunction createObjectWithChanges(target, changes) {\r\n var result = cloneInstance(target);\r\n return deepExtendArraySafe(result, changes, true, true)\r\n}\r\n\r\nfunction applyBatch(_ref) {\r\n var {\r\n keyInfo: keyInfo,\r\n data: data,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: useInsertIndex,\r\n immutable: immutable,\r\n disableCache: disableCache,\r\n logError: logError\r\n } = _ref;\r\n var resultItems = true === immutable ? [...data] : data;\r\n changes.forEach(item => {\r\n var items = \"insert\" === item.type ? resultItems : getItems(keyInfo, resultItems, item.key, groupCount);\r\n !disableCache && generateDataByKeyMap(keyInfo, items);\r\n switch (item.type) {\r\n case \"update\":\r\n update(keyInfo, items, item.key, item.data, true, immutable, logError);\r\n break;\r\n case \"insert\":\r\n insert(keyInfo, items, item.data, useInsertIndex && isDefined(item.index) ? item.index : -1, true, logError);\r\n break;\r\n case \"remove\":\r\n remove(keyInfo, items, item.key, true, logError)\r\n }\r\n });\r\n return resultItems\r\n}\r\n\r\nfunction getErrorResult(isBatch, logError, errorCode) {\r\n return !isBatch ? rejectedPromise(errors.Error(errorCode)) : logError && errors.log(errorCode)\r\n}\r\n\r\nfunction applyChanges(data, changes) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var {\r\n keyExpr: keyExpr = \"id\",\r\n immutable: immutable = true\r\n } = options;\r\n var keyGetter = compileGetter(keyExpr);\r\n var keyInfo = {\r\n key: () => keyExpr,\r\n keyOf: obj => keyGetter(obj)\r\n };\r\n return applyBatch({\r\n keyInfo: keyInfo,\r\n data: data,\r\n changes: changes,\r\n immutable: immutable,\r\n disableCache: true,\r\n logError: true\r\n })\r\n}\r\n\r\nfunction update(keyInfo, array, key, data, isBatch, immutable, logError) {\r\n var target;\r\n var keyExpr = keyInfo.key();\r\n if (keyExpr) {\r\n if (hasKey(data, keyExpr) && !keysEqual(keyExpr, key, keyInfo.keyOf(data))) {\r\n return getErrorResult(isBatch, logError, \"E4017\")\r\n }\r\n target = getCacheValue(array, key);\r\n if (!target) {\r\n var index = indexByKey(keyInfo, array, key);\r\n if (index < 0) {\r\n return getErrorResult(isBatch, logError, \"E4009\")\r\n }\r\n target = array[index];\r\n if (true === immutable && isDefined(target)) {\r\n var newTarget = createObjectWithChanges(target, data);\r\n array[index] = newTarget;\r\n return !isBatch && trivialPromise(newTarget, key)\r\n }\r\n }\r\n } else {\r\n target = key\r\n }\r\n deepExtendArraySafe(target, data, true);\r\n if (!isBatch) {\r\n if (config().useLegacyStoreResult) {\r\n return trivialPromise(key, data)\r\n } else {\r\n return trivialPromise(target, key)\r\n }\r\n }\r\n}\r\n\r\nfunction insert(keyInfo, array, data, index, isBatch, logError) {\r\n var keyValue;\r\n var keyExpr = keyInfo.key();\r\n var obj = isPlainObject(data) ? extend({}, data) : data;\r\n if (keyExpr) {\r\n keyValue = keyInfo.keyOf(obj);\r\n if (void 0 === keyValue || \"object\" === typeof keyValue && isEmptyObject(keyValue)) {\r\n if (Array.isArray(keyExpr)) {\r\n throw errors.Error(\"E4007\")\r\n }\r\n keyValue = obj[keyExpr] = String(new Guid)\r\n } else if (void 0 !== array[indexByKey(keyInfo, array, keyValue)]) {\r\n return getErrorResult(isBatch, logError, \"E4008\")\r\n }\r\n } else {\r\n keyValue = obj\r\n }\r\n if (index >= 0) {\r\n array.splice(index, 0, obj)\r\n } else {\r\n array.push(obj)\r\n }\r\n setDataByKeyMapValue(array, keyValue, obj);\r\n if (!isBatch) {\r\n return trivialPromise(config().useLegacyStoreResult ? data : obj, keyValue)\r\n }\r\n}\r\n\r\nfunction remove(keyInfo, array, key, isBatch, logError) {\r\n var index = indexByKey(keyInfo, array, key);\r\n if (index > -1) {\r\n array.splice(index, 1);\r\n setDataByKeyMapValue(array, key, null)\r\n }\r\n if (!isBatch) {\r\n return trivialPromise(key)\r\n } else if (index < 0) {\r\n return getErrorResult(isBatch, logError, \"E4009\")\r\n }\r\n}\r\n\r\nfunction indexByKey(keyInfo, array, key) {\r\n var keyExpr = keyInfo.key();\r\n if (!getHasKeyCacheValue(array, key)) {\r\n return -1\r\n }\r\n for (var i = 0, arrayLength = array.length; i < arrayLength; i++) {\r\n if (keysEqual(keyExpr, keyInfo.keyOf(array[i]), key)) {\r\n return i\r\n }\r\n }\r\n return -1\r\n}\r\nexport {\r\n applyBatch,\r\n createObjectWithChanges,\r\n update,\r\n insert,\r\n remove,\r\n indexByKey,\r\n applyChanges\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/position.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getOuterWidth,\r\n getOuterHeight,\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n splitPair,\r\n pairToObject\r\n} from \"../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n isWindow,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport browser from \"../core/utils/browser\";\r\nimport {\r\n resetPosition,\r\n move\r\n} from \"./translator\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nvar horzRe = /left|right/;\r\nvar vertRe = /top|bottom/;\r\nvar collisionRe = /fit|flip|none/;\r\nvar scaleRe = /scale\\(.+?\\)/;\r\nvar IS_SAFARI = browser.safari;\r\nvar normalizeAlign = function(raw) {\r\n var result = {\r\n h: \"center\",\r\n v: \"center\"\r\n };\r\n var pair = splitPair(raw);\r\n if (pair) {\r\n each(pair, (function() {\r\n var w = String(this).toLowerCase();\r\n if (horzRe.test(w)) {\r\n result.h = w\r\n } else if (vertRe.test(w)) {\r\n result.v = w\r\n }\r\n }))\r\n }\r\n return result\r\n};\r\nvar normalizeOffset = function(raw) {\r\n return pairToObject(raw)\r\n};\r\nvar normalizeCollision = function(raw) {\r\n var pair = splitPair(raw);\r\n var h = String(pair && pair[0]).toLowerCase();\r\n var v = String(pair && pair[1]).toLowerCase();\r\n if (!collisionRe.test(h)) {\r\n h = \"none\"\r\n }\r\n if (!collisionRe.test(v)) {\r\n v = h\r\n }\r\n return {\r\n h: h,\r\n v: v\r\n }\r\n};\r\nvar getAlignFactor = function(align) {\r\n switch (align) {\r\n case \"center\":\r\n return .5;\r\n case \"right\":\r\n case \"bottom\":\r\n return 1;\r\n default:\r\n return 0\r\n }\r\n};\r\nvar inverseAlign = function(align) {\r\n switch (align) {\r\n case \"left\":\r\n return \"right\";\r\n case \"right\":\r\n return \"left\";\r\n case \"top\":\r\n return \"bottom\";\r\n case \"bottom\":\r\n return \"top\";\r\n default:\r\n return align\r\n }\r\n};\r\nvar calculateOversize = function(data, bounds) {\r\n var oversize = 0;\r\n if (data.myLocation < bounds.min) {\r\n oversize += bounds.min - data.myLocation\r\n }\r\n if (data.myLocation > bounds.max) {\r\n oversize += data.myLocation - bounds.max\r\n }\r\n return oversize\r\n};\r\nvar collisionSide = function(direction, data, bounds) {\r\n if (data.myLocation < bounds.min) {\r\n return \"h\" === direction ? \"left\" : \"top\"\r\n }\r\n if (data.myLocation > bounds.max) {\r\n return \"h\" === direction ? \"right\" : \"bottom\"\r\n }\r\n return \"none\"\r\n};\r\nvar initMyLocation = function(data) {\r\n data.myLocation = data.atLocation + getAlignFactor(data.atAlign) * data.atSize - getAlignFactor(data.myAlign) * data.mySize + data.offset\r\n};\r\nvar collisionResolvers = {\r\n fit: function(data, bounds) {\r\n var result = false;\r\n if (data.myLocation > bounds.max) {\r\n data.myLocation = bounds.max;\r\n result = true\r\n }\r\n if (data.myLocation < bounds.min) {\r\n data.myLocation = bounds.min;\r\n result = true\r\n }\r\n data.fit = result\r\n },\r\n flip: function(data, bounds) {\r\n data.flip = false;\r\n if (\"center\" === data.myAlign && \"center\" === data.atAlign) {\r\n return\r\n }\r\n if (data.myLocation < bounds.min || data.myLocation > bounds.max) {\r\n var inverseData = extend({}, data, {\r\n myAlign: inverseAlign(data.myAlign),\r\n atAlign: inverseAlign(data.atAlign),\r\n offset: -data.offset\r\n });\r\n initMyLocation(inverseData);\r\n inverseData.oversize = calculateOversize(inverseData, bounds);\r\n if (inverseData.myLocation >= bounds.min && inverseData.myLocation <= bounds.max || data.oversize > inverseData.oversize) {\r\n data.myLocation = inverseData.myLocation;\r\n data.oversize = inverseData.oversize;\r\n data.flip = true\r\n }\r\n }\r\n },\r\n flipfit: function(data, bounds) {\r\n this.flip(data, bounds);\r\n this.fit(data, bounds)\r\n },\r\n none: function(data) {\r\n data.oversize = 0\r\n }\r\n};\r\nvar scrollbarWidth;\r\nvar calculateScrollbarWidth = function() {\r\n var $scrollDiv = $(\"
\").css({\r\n width: 100,\r\n height: 100,\r\n overflow: \"scroll\",\r\n position: \"absolute\",\r\n top: -9999\r\n }).appendTo($(\"body\"));\r\n var result = $scrollDiv.get(0).offsetWidth - $scrollDiv.get(0).clientWidth;\r\n $scrollDiv.remove();\r\n scrollbarWidth = result\r\n};\r\nvar defaultPositionResult = {\r\n h: {\r\n location: 0,\r\n flip: false,\r\n fit: false,\r\n oversize: 0\r\n },\r\n v: {\r\n location: 0,\r\n flip: false,\r\n fit: false,\r\n oversize: 0\r\n }\r\n};\r\nvar calculatePosition = function(what, options) {\r\n var $what = $(what);\r\n var currentOffset = $what.offset();\r\n var result = extend(true, {}, defaultPositionResult, {\r\n h: {\r\n location: currentOffset.left\r\n },\r\n v: {\r\n location: currentOffset.top\r\n }\r\n });\r\n if (!options) {\r\n return result\r\n }\r\n var my = normalizeAlign(options.my);\r\n var at = normalizeAlign(options.at);\r\n var of = $(options.of).length && options.of || window;\r\n var offset = normalizeOffset(options.offset);\r\n var collision = normalizeCollision(options.collision);\r\n var boundary = options.boundary;\r\n var boundaryOffset = normalizeOffset(options.boundaryOffset);\r\n var h = {\r\n mySize: getOuterWidth($what),\r\n myAlign: my.h,\r\n atAlign: at.h,\r\n offset: offset.h,\r\n collision: collision.h,\r\n boundaryOffset: boundaryOffset.h\r\n };\r\n var v = {\r\n mySize: getOuterHeight($what),\r\n myAlign: my.v,\r\n atAlign: at.v,\r\n offset: offset.v,\r\n collision: collision.v,\r\n boundaryOffset: boundaryOffset.v\r\n };\r\n if ( of .preventDefault) {\r\n h.atLocation = of .pageX;\r\n v.atLocation = of .pageY;\r\n h.atSize = 0;\r\n v.atSize = 0\r\n } else {\r\n of = $( of );\r\n if (isWindow( of [0])) {\r\n h.atLocation = of .scrollLeft();\r\n v.atLocation = of .scrollTop();\r\n if (\"phone\" === devices.real().deviceType && of [0].visualViewport) {\r\n h.atLocation = Math.max(h.atLocation, of [0].visualViewport.offsetLeft);\r\n v.atLocation = Math.max(v.atLocation, of [0].visualViewport.offsetTop);\r\n h.atSize = of [0].visualViewport.width;\r\n v.atSize = of [0].visualViewport.height\r\n } else {\r\n h.atSize = of [0].innerWidth > of [0].outerWidth ? of [0].innerWidth : getWidth( of );\r\n v.atSize = of [0].innerHeight > of [0].outerHeight || IS_SAFARI ? of [0].innerHeight : getHeight( of )\r\n }\r\n } else if (9 === of [0].nodeType) {\r\n h.atLocation = 0;\r\n v.atLocation = 0;\r\n h.atSize = getWidth( of );\r\n v.atSize = getHeight( of )\r\n } else {\r\n var ofRect = getBoundingRect( of .get(0));\r\n var o = getOffsetWithoutScale( of );\r\n h.atLocation = o.left;\r\n v.atLocation = o.top;\r\n h.atSize = Math.max(ofRect.width, getOuterWidth( of ));\r\n v.atSize = Math.max(ofRect.height, getOuterHeight( of ))\r\n }\r\n }\r\n initMyLocation(h);\r\n initMyLocation(v);\r\n var bounds = function() {\r\n var win = $(window);\r\n var windowWidth = getWidth(win);\r\n var windowHeight = getHeight(win);\r\n var left = win.scrollLeft();\r\n var top = win.scrollTop();\r\n var documentElement = domAdapter.getDocumentElement();\r\n var hZoomLevel = touch ? documentElement.clientWidth / windowWidth : 1;\r\n var vZoomLevel = touch ? documentElement.clientHeight / windowHeight : 1;\r\n if (void 0 === scrollbarWidth) {\r\n calculateScrollbarWidth()\r\n }\r\n var boundaryWidth = windowWidth;\r\n var boundaryHeight = windowHeight;\r\n if (boundary) {\r\n var $boundary = $(boundary);\r\n var boundaryPosition = $boundary.offset();\r\n left = boundaryPosition.left;\r\n top = boundaryPosition.top;\r\n boundaryWidth = getWidth($boundary);\r\n boundaryHeight = getHeight($boundary)\r\n }\r\n return {\r\n h: {\r\n min: left + h.boundaryOffset,\r\n max: left + boundaryWidth / hZoomLevel - h.mySize - h.boundaryOffset\r\n },\r\n v: {\r\n min: top + v.boundaryOffset,\r\n max: top + boundaryHeight / vZoomLevel - v.mySize - v.boundaryOffset\r\n }\r\n }\r\n }();\r\n h.oversize = calculateOversize(h, bounds.h);\r\n v.oversize = calculateOversize(v, bounds.v);\r\n h.collisionSide = collisionSide(\"h\", h, bounds.h);\r\n v.collisionSide = collisionSide(\"v\", v, bounds.v);\r\n if (collisionResolvers[h.collision]) {\r\n collisionResolvers[h.collision](h, bounds.h)\r\n }\r\n if (collisionResolvers[v.collision]) {\r\n collisionResolvers[v.collision](v, bounds.v)\r\n }\r\n var preciser = function(number) {\r\n return options.precise ? number : Math.round(number)\r\n };\r\n extend(true, result, {\r\n h: {\r\n location: preciser(h.myLocation),\r\n oversize: preciser(h.oversize),\r\n fit: h.fit,\r\n flip: h.flip,\r\n collisionSide: h.collisionSide\r\n },\r\n v: {\r\n location: preciser(v.myLocation),\r\n oversize: preciser(v.oversize),\r\n fit: v.fit,\r\n flip: v.flip,\r\n collisionSide: v.collisionSide\r\n },\r\n precise: options.precise\r\n });\r\n return result\r\n};\r\nvar setScaleProperty = function(element, scale, transformProp, styleAttr, isEmpty) {\r\n var stylePropIsValid = isDefined(element.style) && !domAdapter.isNode(element.style);\r\n if (stylePropIsValid) {\r\n element.style.transform = isEmpty ? transformProp.replace(scale, \"\") : transformProp\r\n } else {\r\n element.setAttribute(\"style\", isEmpty ? styleAttr.replace(scale, \"\") : styleAttr)\r\n }\r\n};\r\nvar getOffsetWithoutScale = function getOffsetWithoutScale($startElement) {\r\n var _currentElement$getAt, _currentElement$style, _style$match;\r\n var $currentElement = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : $startElement;\r\n var currentElement = $currentElement.get(0);\r\n if (!currentElement) {\r\n return $startElement.offset()\r\n }\r\n var style = (null === (_currentElement$getAt = currentElement.getAttribute) || void 0 === _currentElement$getAt ? void 0 : _currentElement$getAt.call(currentElement, \"style\")) || \"\";\r\n var transform = null === (_currentElement$style = currentElement.style) || void 0 === _currentElement$style ? void 0 : _currentElement$style.transform;\r\n var scale = null === (_style$match = style.match(scaleRe)) || void 0 === _style$match ? void 0 : _style$match[0];\r\n var offset;\r\n if (scale) {\r\n setScaleProperty(currentElement, scale, transform, style, true);\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent());\r\n setScaleProperty(currentElement, scale, transform, style, false)\r\n } else {\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent())\r\n }\r\n return offset\r\n};\r\nvar position = function(what, options) {\r\n var $what = $(what);\r\n if (!options) {\r\n return $what.offset()\r\n }\r\n resetPosition($what, true);\r\n var offset = getOffsetWithoutScale($what);\r\n var targetPosition = options.h && options.v ? options : calculatePosition($what, options);\r\n var preciser = function(number) {\r\n return options.precise ? number : Math.round(number)\r\n };\r\n move($what, {\r\n left: targetPosition.h.location - preciser(offset.left),\r\n top: targetPosition.v.location - preciser(offset.top)\r\n });\r\n return targetPosition\r\n};\r\nvar offset = function(element) {\r\n element = $(element).get(0);\r\n if (isWindow(element)) {\r\n return null\r\n } else if (element && \"pageY\" in element && \"pageX\" in element) {\r\n return {\r\n top: element.pageY,\r\n left: element.pageX\r\n }\r\n }\r\n return $(element).offset()\r\n};\r\nif (!position.inverseAlign) {\r\n position.inverseAlign = inverseAlign\r\n}\r\nif (!position.normalizeAlign) {\r\n position.normalizeAlign = normalizeAlign\r\n}\r\nexport default {\r\n calculateScrollbarWidth: calculateScrollbarWidth,\r\n calculate: calculatePosition,\r\n setup: position,\r\n offset: offset\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/public_component.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport WeakMap from \"../polyfills/weak_map\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nvar COMPONENT_NAMES_DATA_KEY = \"dxComponents\";\r\nvar ANONYMOUS_COMPONENT_DATA_KEY = \"dxPrivateComponent\";\r\nvar componentNames = new WeakMap;\r\nvar nextAnonymousComponent = 0;\r\nvar getName = function(componentClass, newName) {\r\n if (isDefined(newName)) {\r\n componentNames.set(componentClass, newName);\r\n return\r\n }\r\n if (!componentNames.has(componentClass)) {\r\n var generatedName = ANONYMOUS_COMPONENT_DATA_KEY + nextAnonymousComponent++;\r\n componentNames.set(componentClass, generatedName);\r\n return generatedName\r\n }\r\n return componentNames.get(componentClass)\r\n};\r\nexport function attachInstanceToElement($element, componentInstance, disposeFn) {\r\n var data = elementData($element.get(0));\r\n var name = getName(componentInstance.constructor);\r\n data[name] = componentInstance;\r\n if (disposeFn) {\r\n eventsEngine.one($element, removeEvent, (function() {\r\n disposeFn.call(componentInstance)\r\n }))\r\n }\r\n if (!data[COMPONENT_NAMES_DATA_KEY]) {\r\n data[COMPONENT_NAMES_DATA_KEY] = []\r\n }\r\n data[COMPONENT_NAMES_DATA_KEY].push(name)\r\n}\r\nexport function getInstanceByElement($element, componentClass) {\r\n var name = getName(componentClass);\r\n return elementData($element.get(0), name)\r\n}\r\nexport {\r\n getName as name\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/overlay/overlay_position_controller.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isEvent,\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n resetPosition,\r\n move,\r\n locate\r\n} from \"../../animation/translator\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n originalViewPort,\r\n value as viewPort\r\n} from \"../../core/utils/view_port\";\r\nvar window = getWindow();\r\nvar OVERLAY_POSITION_ALIASES = {\r\n top: {\r\n my: \"top center\",\r\n at: \"top center\"\r\n },\r\n bottom: {\r\n my: \"bottom center\",\r\n at: \"bottom center\"\r\n },\r\n right: {\r\n my: \"right center\",\r\n at: \"right center\"\r\n },\r\n left: {\r\n my: \"left center\",\r\n at: \"left center\"\r\n },\r\n center: {\r\n my: \"center\",\r\n at: \"center\"\r\n },\r\n \"right bottom\": {\r\n my: \"right bottom\",\r\n at: \"right bottom\"\r\n },\r\n \"right top\": {\r\n my: \"right top\",\r\n at: \"right top\"\r\n },\r\n \"left bottom\": {\r\n my: \"left bottom\",\r\n at: \"left bottom\"\r\n },\r\n \"left top\": {\r\n my: \"left top\",\r\n at: \"left top\"\r\n }\r\n};\r\nvar OVERLAY_DEFAULT_BOUNDARY_OFFSET = {\r\n h: 0,\r\n v: 0\r\n};\r\nclass OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n position: position,\r\n target: target,\r\n container: container,\r\n $root: $root,\r\n $content: $content,\r\n $wrapper: $wrapper,\r\n onPositioned: onPositioned,\r\n onVisualPositionChanged: onVisualPositionChanged,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor,\r\n restorePosition: restorePosition,\r\n _fixWrapperPosition: _fixWrapperPosition\r\n } = _ref;\r\n this._props = {\r\n position: position,\r\n target: target,\r\n container: container,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor,\r\n restorePosition: restorePosition,\r\n onPositioned: onPositioned,\r\n onVisualPositionChanged: onVisualPositionChanged,\r\n _fixWrapperPosition: _fixWrapperPosition\r\n };\r\n this._$root = $root;\r\n this._$content = $content;\r\n this._$wrapper = $wrapper;\r\n this._$markupContainer = void 0;\r\n this._$wrapperCoveredElement = void 0;\r\n this._shouldRenderContentInitialPosition = true;\r\n this._visualPosition = void 0;\r\n this._initialPosition = void 0;\r\n this._previousVisualPosition = void 0;\r\n this._$dragResizeContainer = void 0;\r\n this._outsideDragFactor = void 0;\r\n this.updateContainer(container);\r\n this.updatePosition(position, target);\r\n this._updateDragResizeContainer();\r\n this._updateOutsideDragFactor()\r\n }\r\n get $container() {\r\n return this._$markupContainer\r\n }\r\n get $dragResizeContainer() {\r\n return this._$dragResizeContainer\r\n }\r\n get outsideDragFactor() {\r\n return this._outsideDragFactor\r\n }\r\n set fixWrapperPosition(fixWrapperPosition) {\r\n this._props._fixWrapperPosition = fixWrapperPosition;\r\n this.styleWrapperPosition()\r\n }\r\n set dragAndResizeArea(dragAndResizeArea) {\r\n this._props.dragAndResizeArea = dragAndResizeArea;\r\n this._updateDragResizeContainer()\r\n }\r\n set dragOutsideBoundary(dragOutsideBoundary) {\r\n this._props.dragOutsideBoundary = dragOutsideBoundary;\r\n this._updateDragResizeContainer();\r\n this._updateOutsideDragFactor()\r\n }\r\n set outsideDragFactor(outsideDragFactor) {\r\n this._props.outsideDragFactor = outsideDragFactor;\r\n this._updateOutsideDragFactor()\r\n }\r\n set restorePosition(restorePosition) {\r\n this._props.restorePosition = restorePosition\r\n }\r\n restorePositionOnNextRender(value) {\r\n this._shouldRenderContentInitialPosition = value || !this._visualPosition\r\n }\r\n openingHandled() {\r\n var shouldRestorePosition = this._props.restorePosition;\r\n this.restorePositionOnNextRender(shouldRestorePosition)\r\n }\r\n dragHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n resizeHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n updateTarget(target) {\r\n this._props.target = target;\r\n this.updatePosition(this._props.position, target)\r\n }\r\n updatePosition(positionProp) {\r\n var targetProp = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this._props.target;\r\n this._props.position = positionProp;\r\n this._position = this._normalizePosition(positionProp, targetProp);\r\n this._updateWrapperCoveredElement()\r\n }\r\n updateContainer(containerProp) {\r\n this._props.container = containerProp;\r\n var container = null !== containerProp && void 0 !== containerProp ? containerProp : viewPort();\r\n var $container = this._$root.closest(container);\r\n if (!$container.length) {\r\n $container = $(container).first()\r\n }\r\n this._$markupContainer = $container.length ? $container : this._$root.parent();\r\n this._updateWrapperCoveredElement();\r\n this._updateDragResizeContainer()\r\n }\r\n detectVisualPositionChange(event) {\r\n this._updateVisualPositionValue();\r\n this._raisePositionedEvents(event)\r\n }\r\n positionContent() {\r\n if (this._shouldRenderContentInitialPosition) {\r\n this._renderContentInitialPosition()\r\n } else {\r\n move(this._$content, this._visualPosition);\r\n this.detectVisualPositionChange()\r\n }\r\n }\r\n positionWrapper() {\r\n if (this._$wrapperCoveredElement) {\r\n positionUtils.setup(this._$wrapper, {\r\n my: \"top left\",\r\n at: \"top left\",\r\n of: this._$wrapperCoveredElement\r\n })\r\n }\r\n }\r\n isAllWindowCoveredByWrapper() {\r\n return !this._$wrapperCoveredElement || isWindow(this._$wrapperCoveredElement.get(0))\r\n }\r\n styleWrapperPosition() {\r\n var useFixed = this.isAllWindowCoveredByWrapper() || this._props._fixWrapperPosition;\r\n var positionStyle = useFixed ? \"fixed\" : \"absolute\";\r\n this._$wrapper.css(\"position\", positionStyle)\r\n }\r\n _updateVisualPositionValue() {\r\n this._previousVisualPosition = this._visualPosition;\r\n this._visualPosition = locate(this._$content)\r\n }\r\n _renderContentInitialPosition() {\r\n this._renderBoundaryOffset();\r\n resetPosition(this._$content);\r\n var wrapperOverflow = this._$wrapper.css(\"overflow\");\r\n this._$wrapper.css(\"overflow\", \"hidden\");\r\n var resultPosition = positionUtils.setup(this._$content, this._position);\r\n this._$wrapper.css(\"overflow\", wrapperOverflow);\r\n this._initialPosition = resultPosition;\r\n this.detectVisualPositionChange()\r\n }\r\n _raisePositionedEvents(event) {\r\n var previousPosition = this._previousVisualPosition;\r\n var newPosition = this._visualPosition;\r\n var isVisualPositionChanged = (null === previousPosition || void 0 === previousPosition ? void 0 : previousPosition.top) !== newPosition.top || (null === previousPosition || void 0 === previousPosition ? void 0 : previousPosition.left) !== newPosition.left;\r\n if (isVisualPositionChanged) {\r\n this._props.onVisualPositionChanged({\r\n previousPosition: previousPosition,\r\n position: newPosition,\r\n event: event\r\n })\r\n }\r\n this._props.onPositioned({\r\n position: this._initialPosition\r\n })\r\n }\r\n _updateOutsideDragFactor() {\r\n this._outsideDragFactor = this._getOutsideDragFactor()\r\n }\r\n _getOutsideDragFactor() {\r\n if (this._props.dragOutsideBoundary) {\r\n return 1\r\n }\r\n return this._props.outsideDragFactor\r\n }\r\n _updateDragResizeContainer() {\r\n this._$dragResizeContainer = this._getDragResizeContainer()\r\n }\r\n _getDragResizeContainer() {\r\n if (this._props.dragOutsideBoundary) {\r\n return $(window)\r\n }\r\n if (this._props.dragAndResizeArea) {\r\n return $(this._props.dragAndResizeArea)\r\n }\r\n var isContainerDefined = originalViewPort().get(0) || this._props.container;\r\n return isContainerDefined ? this._$markupContainer : $(window)\r\n }\r\n _updateWrapperCoveredElement() {\r\n this._$wrapperCoveredElement = this._getWrapperCoveredElement()\r\n }\r\n _renderBoundaryOffset() {\r\n var _this$_position;\r\n var boundaryOffset = null !== (_this$_position = this._position) && void 0 !== _this$_position ? _this$_position : {\r\n boundaryOffset: OVERLAY_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n this._$content.css(\"margin\", \"\".concat(boundaryOffset.v, \"px \").concat(boundaryOffset.h, \"px\"))\r\n }\r\n _getWrapperCoveredElement() {\r\n var containerProp = this._props.container;\r\n if (containerProp) {\r\n return $(containerProp)\r\n }\r\n if (this._position) {\r\n return $(isEvent(this._position.of) ? window : this._position.of || window)\r\n }\r\n }\r\n _normalizePosition(positionProp, targetProp) {\r\n var defaultPositionConfig = {\r\n of: targetProp,\r\n boundaryOffset: OVERLAY_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n if (isDefined(positionProp)) {\r\n return extend(true, {}, defaultPositionConfig, this._positionToObject(positionProp))\r\n } else {\r\n return defaultPositionConfig\r\n }\r\n }\r\n _positionToObject(position) {\r\n if (isString(position)) {\r\n return extend({}, OVERLAY_POSITION_ALIASES[position])\r\n }\r\n return position\r\n }\r\n}\r\nexport {\r\n OVERLAY_POSITION_ALIASES,\r\n OverlayPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/events/core/wheel.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar EVENT_NAME = \"dxmousewheel\";\r\nvar EVENT_NAMESPACE = \"dxWheel\";\r\nvar NATIVE_EVENT_NAME = \"wheel\";\r\nvar PIXEL_MODE = 0;\r\nvar DELTA_MUTLIPLIER = 30;\r\nvar wheel = {\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, addNamespace(NATIVE_EVENT_NAME, EVENT_NAMESPACE), wheel._wheelHandler.bind(wheel))\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\".concat(EVENT_NAMESPACE))\r\n },\r\n _wheelHandler: function(e) {\r\n var {\r\n deltaMode: deltaMode,\r\n deltaY: deltaY,\r\n deltaX: deltaX,\r\n deltaZ: deltaZ\r\n } = e.originalEvent;\r\n fireEvent({\r\n type: EVENT_NAME,\r\n originalEvent: e,\r\n delta: this._normalizeDelta(deltaY, deltaMode),\r\n deltaX: deltaX,\r\n deltaY: deltaY,\r\n deltaZ: deltaZ,\r\n deltaMode: deltaMode,\r\n pointerType: \"mouse\"\r\n });\r\n e.stopPropagation()\r\n },\r\n _normalizeDelta(delta) {\r\n var deltaMode = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : PIXEL_MODE;\r\n if (deltaMode === PIXEL_MODE) {\r\n return -delta\r\n } else {\r\n return -DELTA_MUTLIPLIER * delta\r\n }\r\n }\r\n};\r\nregisterEvent(EVENT_NAME, wheel);\r\nexport {\r\n EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/translator.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../core/renderer\";\r\nimport {\r\n data as elementData,\r\n removeData\r\n} from \"../core/element_data\";\r\nimport {\r\n type\r\n} from \"../core/utils/type\";\r\nvar TRANSLATOR_DATA_KEY = \"dxTranslator\";\r\nvar TRANSFORM_MATRIX_REGEX = /matrix(3d)?\\((.+?)\\)/;\r\nvar TRANSLATE_REGEX = /translate(?:3d)?\\((.+?)\\)/;\r\nexport var locate = function($element) {\r\n $element = $($element);\r\n var translate = getTranslate($element);\r\n return {\r\n left: translate.x,\r\n top: translate.y\r\n }\r\n};\r\n\r\nfunction isPercentValue(value) {\r\n return \"string\" === type(value) && \"%\" === value[value.length - 1]\r\n}\r\n\r\nfunction cacheTranslate($element, translate) {\r\n if ($element.length) {\r\n elementData($element.get(0), TRANSLATOR_DATA_KEY, translate)\r\n }\r\n}\r\nexport var clearCache = function($element) {\r\n if ($element.length) {\r\n removeData($element.get(0), TRANSLATOR_DATA_KEY)\r\n }\r\n};\r\nexport var getTranslateCss = function(translate) {\r\n translate.x = translate.x || 0;\r\n translate.y = translate.y || 0;\r\n var xValueString = isPercentValue(translate.x) ? translate.x : translate.x + \"px\";\r\n var yValueString = isPercentValue(translate.y) ? translate.y : translate.y + \"px\";\r\n return \"translate(\" + xValueString + \", \" + yValueString + \")\"\r\n};\r\nexport var getTranslate = function($element) {\r\n var result = $element.length ? elementData($element.get(0), TRANSLATOR_DATA_KEY) : null;\r\n if (!result) {\r\n var transformValue = $element.css(\"transform\") || getTranslateCss({\r\n x: 0,\r\n y: 0\r\n });\r\n var matrix = transformValue.match(TRANSFORM_MATRIX_REGEX);\r\n var is3D = matrix && matrix[1];\r\n if (matrix) {\r\n matrix = matrix[2].split(\",\");\r\n if (\"3d\" === is3D) {\r\n matrix = matrix.slice(12, 15)\r\n } else {\r\n matrix.push(0);\r\n matrix = matrix.slice(4, 7)\r\n }\r\n } else {\r\n matrix = [0, 0, 0]\r\n }\r\n result = {\r\n x: parseFloat(matrix[0]),\r\n y: parseFloat(matrix[1]),\r\n z: parseFloat(matrix[2])\r\n };\r\n cacheTranslate($element, result)\r\n }\r\n return result\r\n};\r\nexport var move = function($element, position) {\r\n $element = $($element);\r\n var left = position.left;\r\n var top = position.top;\r\n var translate;\r\n if (void 0 === left) {\r\n translate = getTranslate($element);\r\n translate.y = top || 0\r\n } else if (void 0 === top) {\r\n translate = getTranslate($element);\r\n translate.x = left || 0\r\n } else {\r\n translate = {\r\n x: left || 0,\r\n y: top || 0,\r\n z: 0\r\n };\r\n cacheTranslate($element, translate)\r\n }\r\n $element.css({\r\n transform: getTranslateCss(translate)\r\n });\r\n if (isPercentValue(left) || isPercentValue(top)) {\r\n clearCache($element)\r\n }\r\n};\r\nexport var resetPosition = function($element, finishTransition) {\r\n $element = $($element);\r\n var originalTransition;\r\n var stylesConfig = {\r\n left: 0,\r\n top: 0,\r\n transform: \"none\"\r\n };\r\n if (finishTransition) {\r\n originalTransition = $element.css(\"transition\");\r\n stylesConfig.transition = \"none\"\r\n }\r\n $element.css(stylesConfig);\r\n clearCache($element);\r\n if (finishTransition) {\r\n $element.get(0).offsetHeight;\r\n $element.css(\"transition\", originalTransition)\r\n }\r\n};\r\nexport var parseTranslate = function(translateString) {\r\n var result = translateString.match(TRANSLATE_REGEX);\r\n if (!result || !result[1]) {\r\n return\r\n }\r\n result = result[1].split(\",\");\r\n result = {\r\n x: parseFloat(result[0]),\r\n y: parseFloat(result[1]),\r\n z: parseFloat(result[2])\r\n };\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/data/query_adapters.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nexport default {};\r\n","/**\r\n * DevExtreme (esm/data/remote_query.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport queryAdapters from \"./query_adapters\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport arrayQueryImpl from \"./array_query\";\r\nvar remoteQueryImpl = function remoteQueryImpl(url, queryOptions, tasks) {\r\n tasks = tasks || [];\r\n queryOptions = queryOptions || {};\r\n var createTask = function(name, args) {\r\n return {\r\n name: name,\r\n args: args\r\n }\r\n };\r\n var exec = function(executorTask) {\r\n var d = new Deferred;\r\n var _adapterFactory;\r\n var _adapter;\r\n var _taskQueue;\r\n var _currentTask;\r\n var _mergedSortArgs;\r\n var rejectWithNotify = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleError(error);\r\n d.reject(error)\r\n };\r\n\r\n function mergeSortTask(task) {\r\n switch (task.name) {\r\n case \"sortBy\":\r\n _mergedSortArgs = [task.args];\r\n return true;\r\n case \"thenBy\":\r\n if (!_mergedSortArgs) {\r\n throw errors.Error(\"E4004\")\r\n }\r\n _mergedSortArgs.push(task.args);\r\n return true\r\n }\r\n return false\r\n }\r\n try {\r\n _adapterFactory = queryOptions.adapter;\r\n if (!isFunction(_adapterFactory)) {\r\n _adapterFactory = queryAdapters[_adapterFactory]\r\n }\r\n _adapter = _adapterFactory(queryOptions);\r\n _taskQueue = [].concat(tasks).concat(executorTask);\r\n var optimize = _adapter.optimize;\r\n if (optimize) {\r\n optimize(_taskQueue)\r\n }\r\n while (_taskQueue.length) {\r\n _currentTask = _taskQueue[0];\r\n if (!mergeSortTask(_currentTask)) {\r\n if (_mergedSortArgs) {\r\n _taskQueue.unshift(createTask(\"multiSort\", [_mergedSortArgs]));\r\n _mergedSortArgs = null;\r\n continue\r\n }\r\n if (\"enumerate\" !== String(_currentTask.name)) {\r\n if (!_adapter[_currentTask.name] || false === _adapter[_currentTask.name].apply(_adapter, _currentTask.args)) {\r\n break\r\n }\r\n }\r\n }\r\n _taskQueue.shift()\r\n }! function() {\r\n var head = _taskQueue[0];\r\n var unmergedTasks = [];\r\n if (head && \"multiSort\" === head.name) {\r\n _taskQueue.shift();\r\n each(head.args[0], (function() {\r\n unmergedTasks.push(createTask(unmergedTasks.length ? \"thenBy\" : \"sortBy\", this))\r\n }))\r\n }\r\n _taskQueue = unmergedTasks.concat(_taskQueue)\r\n }();\r\n _adapter.exec(url).done((function(result, extra) {\r\n if (!_taskQueue.length) {\r\n d.resolve(result, extra)\r\n } else {\r\n var clientChain = arrayQueryImpl(result, {\r\n errorHandler: queryOptions.errorHandler\r\n });\r\n each(_taskQueue, (function() {\r\n clientChain = clientChain[this.name].apply(clientChain, this.args)\r\n }));\r\n clientChain.done(d.resolve).fail(d.reject)\r\n }\r\n })).fail(rejectWithNotify)\r\n } catch (x) {\r\n rejectWithNotify(x)\r\n }\r\n return d.promise()\r\n };\r\n var query = {};\r\n each([\"sortBy\", \"thenBy\", \"filter\", \"slice\", \"select\", \"groupBy\"], (function() {\r\n var name = String(this);\r\n query[name] = function() {\r\n return remoteQueryImpl(url, queryOptions, tasks.concat(createTask(name, arguments)))\r\n }\r\n }));\r\n each([\"count\", \"min\", \"max\", \"sum\", \"avg\", \"aggregate\", \"enumerate\"], (function() {\r\n var name = String(this);\r\n query[name] = function() {\r\n return exec.call(this, createTask(name, arguments))\r\n }\r\n }));\r\n return query\r\n};\r\nexport default remoteQueryImpl;\r\n","/**\r\n * DevExtreme (esm/data/query_implementation.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport arrayQueryImpl from \"./array_query\";\r\nimport remoteQueryImpl from \"./remote_query\";\r\nexport var queryImpl = {\r\n array: arrayQueryImpl,\r\n remote: remoteQueryImpl\r\n};\r\n","/**\r\n * DevExtreme (esm/data/query.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n queryImpl\r\n} from \"./query_implementation\";\r\nvar query = function() {\r\n var impl = Array.isArray(arguments[0]) ? \"array\" : \"remote\";\r\n return queryImpl[impl].apply(this, arguments)\r\n};\r\nexport default query;\r\n","/**\r\n * DevExtreme (esm/core/utils/storage.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nvar getSessionStorage = function() {\r\n var sessionStorage;\r\n try {\r\n sessionStorage = window.sessionStorage\r\n } catch (e) {}\r\n return sessionStorage\r\n};\r\nexport {\r\n getSessionStorage as sessionStorage\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/support.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n inArray\r\n} from \"./array\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport callOnce from \"./call_once\";\r\nimport {\r\n getNavigator,\r\n hasProperty\r\n} from \"./window\";\r\nimport devices from \"../devices\";\r\nimport {\r\n stylePropPrefix,\r\n styleProp\r\n} from \"./style\";\r\nvar {\r\n maxTouchPoints: maxTouchPoints\r\n} = getNavigator();\r\nvar transitionEndEventNames = {\r\n webkitTransition: \"webkitTransitionEnd\",\r\n MozTransition: \"transitionend\",\r\n OTransition: \"oTransitionEnd\",\r\n transition: \"transitionend\"\r\n};\r\nvar supportProp = function(prop) {\r\n return !!styleProp(prop)\r\n};\r\nvar isNativeScrollingSupported = function() {\r\n var {\r\n platform: platform,\r\n version: version,\r\n mac: isMac\r\n } = devices.real();\r\n var isObsoleteAndroid = version && version[0] < 4 && \"android\" === platform;\r\n var isNativeScrollDevice = !isObsoleteAndroid && inArray(platform, [\"ios\", \"android\"]) > -1 || isMac;\r\n return isNativeScrollDevice\r\n};\r\nvar inputType = function(type) {\r\n if (\"text\" === type) {\r\n return true\r\n }\r\n var input = domAdapter.createElement(\"input\");\r\n try {\r\n input.setAttribute(\"type\", type);\r\n input.value = \"wrongValue\";\r\n return !input.value\r\n } catch (e) {\r\n return false\r\n }\r\n};\r\nvar detectTouchEvents = function(hasWindowProperty, maxTouchPoints) {\r\n return (hasWindowProperty(\"ontouchstart\") || !!maxTouchPoints) && !hasWindowProperty(\"callPhantom\")\r\n};\r\nvar detectPointerEvent = function(hasWindowProperty) {\r\n return hasWindowProperty(\"PointerEvent\")\r\n};\r\nvar touchEvents = detectTouchEvents(hasProperty, maxTouchPoints);\r\nvar pointerEvents = detectPointerEvent(hasProperty);\r\nvar touchPointersPresent = !!maxTouchPoints;\r\nexport {\r\n touchEvents,\r\n pointerEvents,\r\n styleProp,\r\n stylePropPrefix,\r\n supportProp,\r\n inputType\r\n};\r\nexport var touch = touchEvents || pointerEvents && touchPointersPresent;\r\nexport var transition = callOnce((function() {\r\n return supportProp(\"transition\")\r\n}));\r\nexport var transitionEndEventName = callOnce((function() {\r\n return transitionEndEventNames[styleProp(\"transition\")]\r\n}));\r\nexport var animation = callOnce((function() {\r\n return supportProp(\"animation\")\r\n}));\r\nexport var nativeScrolling = isNativeScrollingSupported();\r\n","/**\r\n * DevExtreme (esm/core/events_strategy.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport Callbacks from \"./utils/callbacks\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"./utils/type\";\r\nexport class EventsStrategy {\r\n constructor(owner) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n this._events = {};\r\n this._owner = owner;\r\n this._options = options\r\n }\r\n static create(owner, strategy) {\r\n if (strategy) {\r\n return isFunction(strategy) ? strategy(owner) : strategy\r\n } else {\r\n return new EventsStrategy(owner)\r\n }\r\n }\r\n hasEvent(eventName) {\r\n var callbacks = this._events[eventName];\r\n return callbacks ? callbacks.has() : false\r\n }\r\n fireEvent(eventName, eventArgs) {\r\n var callbacks = this._events[eventName];\r\n if (callbacks) {\r\n callbacks.fireWith(this._owner, eventArgs)\r\n }\r\n return this._owner\r\n }\r\n on(eventName, eventHandler) {\r\n if (isPlainObject(eventName)) {\r\n each(eventName, (e, h) => {\r\n this.on(e, h)\r\n })\r\n } else {\r\n var callbacks = this._events[eventName];\r\n if (!callbacks) {\r\n callbacks = Callbacks({\r\n syncStrategy: this._options.syncStrategy\r\n });\r\n this._events[eventName] = callbacks\r\n }\r\n var addFn = callbacks.originalAdd || callbacks.add;\r\n addFn.call(callbacks, eventHandler)\r\n }\r\n }\r\n off(eventName, eventHandler) {\r\n var callbacks = this._events[eventName];\r\n if (callbacks) {\r\n if (isFunction(eventHandler)) {\r\n callbacks.remove(eventHandler)\r\n } else {\r\n callbacks.empty()\r\n }\r\n }\r\n }\r\n dispose() {\r\n each(this._events, (eventName, event) => {\r\n event.empty()\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/data/custom_store.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../core/renderer\";\r\nimport {\r\n keysEqual,\r\n XHR_ERROR_UNLOAD,\r\n errorMessageFromXhr as errorMessageFromXhrUtility\r\n} from \"./utils\";\r\nimport {\r\n applyBatch\r\n} from \"./array_utils\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport config from \"../core/config\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport Store from \"./abstract_store\";\r\nimport arrayQuery from \"./array_query\";\r\nimport storeHelper from \"./store_helper\";\r\nimport {\r\n Deferred,\r\n when,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nvar TOTAL_COUNT = \"totalCount\";\r\nvar LOAD = \"load\";\r\nvar BY_KEY = \"byKey\";\r\nvar INSERT = \"insert\";\r\nvar UPDATE = \"update\";\r\nvar REMOVE = \"remove\";\r\n\r\nfunction isPromise(obj) {\r\n return obj && isFunction(obj.then)\r\n}\r\n\r\nfunction trivialPromise(value) {\r\n return (new Deferred).resolve(value).promise()\r\n}\r\n\r\nfunction ensureRequiredFuncOption(name, obj) {\r\n if (!isFunction(obj)) {\r\n throw errors.Error(\"E4011\", name)\r\n }\r\n}\r\n\r\nfunction throwInvalidUserFuncResult(name) {\r\n throw errors.Error(\"E4012\", name)\r\n}\r\n\r\nfunction createUserFuncFailureHandler(pendingDeferred) {\r\n function errorMessageFromXhr(promiseArguments) {\r\n var xhr = promiseArguments[0];\r\n var textStatus = promiseArguments[1];\r\n if (!xhr || !xhr.getResponseHeader) {\r\n return null\r\n }\r\n return errorMessageFromXhrUtility(xhr, textStatus)\r\n }\r\n return function(arg) {\r\n var error;\r\n if (arg instanceof Error) {\r\n error = arg\r\n } else {\r\n error = new Error(errorMessageFromXhr(arguments) || arg && String(arg) || \"Unknown error\")\r\n }\r\n if (error.message !== XHR_ERROR_UNLOAD) {\r\n pendingDeferred.reject(error)\r\n }\r\n }\r\n}\r\n\r\nfunction invokeUserLoad(store, options) {\r\n var userFunc = store._loadFunc;\r\n var userResult;\r\n ensureRequiredFuncOption(LOAD, userFunc);\r\n userResult = userFunc.apply(store, [options]);\r\n if (Array.isArray(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n } else if (null === userResult || void 0 === userResult) {\r\n userResult = trivialPromise([])\r\n } else if (!isPromise(userResult)) {\r\n throwInvalidUserFuncResult(LOAD)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction invokeUserTotalCountFunc(store, options) {\r\n var userFunc = store._totalCountFunc;\r\n var userResult;\r\n if (!isFunction(userFunc)) {\r\n throw errors.Error(\"E4021\")\r\n }\r\n userResult = userFunc.apply(store, [options]);\r\n if (!isPromise(userResult)) {\r\n userResult = Number(userResult);\r\n if (!isFinite(userResult)) {\r\n throwInvalidUserFuncResult(TOTAL_COUNT)\r\n }\r\n userResult = trivialPromise(userResult)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction invokeUserByKeyFunc(store, key, extraOptions) {\r\n var userFunc = store._byKeyFunc;\r\n var userResult;\r\n ensureRequiredFuncOption(BY_KEY, userFunc);\r\n userResult = userFunc.apply(store, [key, extraOptions]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction runRawLoad(pendingDeferred, store, userFuncOptions, continuation) {\r\n if (store.__rawData) {\r\n continuation(store.__rawData)\r\n } else {\r\n var loadPromise = store.__rawDataPromise || invokeUserLoad(store, userFuncOptions);\r\n if (store._cacheRawData) {\r\n store.__rawDataPromise = loadPromise\r\n }\r\n loadPromise.always((function() {\r\n delete store.__rawDataPromise\r\n })).done((function(rawData) {\r\n if (store._cacheRawData) {\r\n store.__rawData = rawData\r\n }\r\n continuation(rawData)\r\n })).fail(createUserFuncFailureHandler(pendingDeferred))\r\n }\r\n}\r\n\r\nfunction runRawLoadWithQuery(pendingDeferred, store, options, countOnly) {\r\n options = options || {};\r\n var userFuncOptions = {};\r\n if (\"userData\" in options) {\r\n userFuncOptions.userData = options.userData\r\n }\r\n runRawLoad(pendingDeferred, store, userFuncOptions, (function(rawData) {\r\n var rawDataQuery = arrayQuery(rawData, {\r\n errorHandler: store._errorHandler\r\n });\r\n var itemsQuery;\r\n var totalCountQuery;\r\n var waitList = [];\r\n var items;\r\n var totalCount;\r\n if (!countOnly) {\r\n itemsQuery = storeHelper.queryByOptions(rawDataQuery, options);\r\n if (itemsQuery === rawDataQuery) {\r\n items = rawData.slice(0)\r\n } else {\r\n waitList.push(itemsQuery.enumerate().done((function(asyncResult) {\r\n items = asyncResult\r\n })))\r\n }\r\n }\r\n if (options.requireTotalCount || countOnly) {\r\n totalCountQuery = storeHelper.queryByOptions(rawDataQuery, options, true);\r\n if (totalCountQuery === rawDataQuery) {\r\n totalCount = rawData.length\r\n } else {\r\n waitList.push(totalCountQuery.count().done((function(asyncResult) {\r\n totalCount = asyncResult\r\n })))\r\n }\r\n }\r\n when.apply($, waitList).done((function() {\r\n if (countOnly) {\r\n pendingDeferred.resolve(totalCount)\r\n } else if (options.requireTotalCount) {\r\n pendingDeferred.resolve(items, {\r\n totalCount: totalCount\r\n })\r\n } else {\r\n pendingDeferred.resolve(items)\r\n }\r\n })).fail((function(x) {\r\n pendingDeferred.reject(x)\r\n }))\r\n }))\r\n}\r\n\r\nfunction runRawLoadWithKey(pendingDeferred, store, key) {\r\n runRawLoad(pendingDeferred, store, {}, (function(rawData) {\r\n var keyExpr = store.key();\r\n var item;\r\n for (var i = 0, len = rawData.length; i < len; i++) {\r\n item = rawData[i];\r\n if (keysEqual(keyExpr, store.keyOf(rawData[i]), key)) {\r\n pendingDeferred.resolve(item);\r\n return\r\n }\r\n }\r\n pendingDeferred.reject(errors.Error(\"E4009\"))\r\n }))\r\n}\r\nvar CustomStore = Store.inherit({\r\n ctor: function(options) {\r\n options = options || {};\r\n this.callBase(options);\r\n this._useDefaultSearch = !!options.useDefaultSearch || \"raw\" === options.loadMode;\r\n this._loadMode = options.loadMode;\r\n this._cacheRawData = false !== options.cacheRawData;\r\n this._loadFunc = options[LOAD];\r\n this._totalCountFunc = options[TOTAL_COUNT];\r\n this._byKeyFunc = options[BY_KEY];\r\n this._insertFunc = options[INSERT];\r\n this._updateFunc = options[UPDATE];\r\n this._removeFunc = options[REMOVE]\r\n },\r\n createQuery: function() {\r\n throw errors.Error(\"E4010\")\r\n },\r\n clearRawDataCache: function() {\r\n delete this.__rawData\r\n },\r\n _totalCountImpl: function(options) {\r\n var d = new Deferred;\r\n if (\"raw\" === this._loadMode && !this._totalCountFunc) {\r\n runRawLoadWithQuery(d, this, options, true)\r\n } else {\r\n invokeUserTotalCountFunc(this, options).done((function(count) {\r\n d.resolve(Number(count))\r\n })).fail(createUserFuncFailureHandler(d));\r\n d = this._addFailHandlers(d)\r\n }\r\n return d.promise()\r\n },\r\n _pushImpl: function(changes) {\r\n if (this.__rawData) {\r\n applyBatch({\r\n keyInfo: this,\r\n data: this.__rawData,\r\n changes: changes\r\n })\r\n }\r\n },\r\n _loadImpl: function(options) {\r\n var d = new Deferred;\r\n if (\"raw\" === this._loadMode) {\r\n runRawLoadWithQuery(d, this, options, false)\r\n } else {\r\n invokeUserLoad(this, options).done((function(data, extra) {\r\n d.resolve(data, extra)\r\n })).fail(createUserFuncFailureHandler(d));\r\n d = this._addFailHandlers(d)\r\n }\r\n return d.promise()\r\n },\r\n _byKeyImpl: function(key, extraOptions) {\r\n var d = new Deferred;\r\n if (this._byKeyViaLoad()) {\r\n this._requireKey();\r\n runRawLoadWithKey(d, this, key)\r\n } else {\r\n invokeUserByKeyFunc(this, key, extraOptions).done((function(obj) {\r\n d.resolve(obj)\r\n })).fail(createUserFuncFailureHandler(d))\r\n }\r\n return d.promise()\r\n },\r\n _byKeyViaLoad: function() {\r\n return \"raw\" === this._loadMode && !this._byKeyFunc\r\n },\r\n _insertImpl: function(values) {\r\n var that = this;\r\n var userFunc = that._insertFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(INSERT, userFunc);\r\n userResult = userFunc.apply(that, [values]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n fromPromise(userResult).done((function(serverResponse) {\r\n if (config().useLegacyStoreResult) {\r\n d.resolve(values, serverResponse)\r\n } else {\r\n d.resolve(serverResponse || values, that.keyOf(serverResponse))\r\n }\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n },\r\n _updateImpl: function(key, values) {\r\n var userFunc = this._updateFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(UPDATE, userFunc);\r\n userResult = userFunc.apply(this, [key, values]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n fromPromise(userResult).done((function(serverResponse) {\r\n if (config().useLegacyStoreResult) {\r\n d.resolve(key, values)\r\n } else {\r\n d.resolve(serverResponse || values, key)\r\n }\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n },\r\n _removeImpl: function(key) {\r\n var userFunc = this._removeFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(REMOVE, userFunc);\r\n userResult = userFunc.apply(this, [key]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise()\r\n }\r\n fromPromise(userResult).done((function() {\r\n d.resolve(key)\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n }\r\n});\r\nexport default CustomStore;\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxExtensionComponent = void 0;\nvar component_1 = require(\"./component\");\nvar DxExtensionComponent = function () { return component_1.BaseComponent().extend({\n created: function () {\n this.$_isExtension = true;\n },\n mounted: function () {\n this.$el.setAttribute(\"isExtension\", \"true\");\n if (this.$vnode && this.$vnode.componentOptions.$_hasOwner) {\n return;\n }\n this.attachTo(this.$el);\n },\n methods: {\n attachTo: function (element) {\n this.$_createWidget(element);\n }\n }\n}); };\nexports.DxExtensionComponent = DxExtensionComponent;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","/**\r\n * DevExtreme (esm/core/options/utils.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport devices from \"../devices\";\r\nimport {\r\n isEmptyObject,\r\n isFunction\r\n} from \"../utils/type\";\r\nimport {\r\n findBestMatches\r\n} from \"../utils/common\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport {\r\n compileGetter\r\n} from \"../utils/data\";\r\nvar cachedGetters = {};\r\nexport var convertRulesToOptions = rules => {\r\n var currentDevice = devices.current();\r\n return rules.reduce((options, _ref) => {\r\n var {\r\n device: device,\r\n options: ruleOptions\r\n } = _ref;\r\n var deviceFilter = device || {};\r\n var match = isFunction(deviceFilter) ? deviceFilter(currentDevice) : deviceMatch(currentDevice, deviceFilter);\r\n if (match) {\r\n extend(true, options, ruleOptions)\r\n }\r\n return options\r\n }, {})\r\n};\r\nexport var normalizeOptions = (options, value) => \"string\" !== typeof options ? options : {\r\n [options]: value\r\n};\r\nexport var deviceMatch = (device, filter) => isEmptyObject(filter) || findBestMatches(device, [filter]).length > 0;\r\nexport var getFieldName = fullName => fullName.substr(fullName.lastIndexOf(\".\") + 1);\r\nexport var getParentName = fullName => fullName.substr(0, fullName.lastIndexOf(\".\"));\r\nexport var getNestedOptionValue = function(optionsObject, name) {\r\n cachedGetters[name] = cachedGetters[name] || compileGetter(name);\r\n return cachedGetters[name](optionsObject, {\r\n functionsAsIs: true\r\n })\r\n};\r\nexport var createDefaultOptionRules = function() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n return options\r\n};\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createExtensionComponent = exports.createConfigurationComponent = exports.createComponent = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar Vue = VueType.default || VueType;\nvar component_1 = require(\"./component\");\nvar configuration_component_1 = require(\"./configuration-component\");\nvar extension_component_1 = require(\"./extension-component\");\nfunction createComponent(config) {\n config.extends = component_1.DxComponent();\n return Vue.extend(config);\n}\nexports.createComponent = createComponent;\nfunction createConfigurationComponent(config) {\n config.extends = configuration_component_1.DxConfiguration();\n return Vue.extend(config);\n}\nexports.createConfigurationComponent = createConfigurationComponent;\nfunction createExtensionComponent(config) {\n config.extends = extension_component_1.DxExtensionComponent();\n return Vue.extend(config);\n}\nexports.createExtensionComponent = createExtensionComponent;\n","var isArray = Array.isArray;\nfunction isStringOrNumber(o) {\n var type = typeof o;\n return type === 'string' || type === 'number';\n}\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nfunction isFunction(o) {\n return typeof o === 'function';\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isNumber(o) {\n return typeof o === 'number';\n}\nfunction isNull(o) {\n return o === null;\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\nfunction combineFrom(first, second) {\n var out = {};\n if (first) {\n for (var key in first) {\n out[key] = first[key];\n }\n }\n if (second) {\n for (var key$1 in second) {\n out[key$1] = second[key$1];\n }\n }\n return out;\n}\n\n/**\n * Links given data to event as first parameter\n * @param {*} data data to be linked, it will be available in function as first parameter\n * @param {Function} event Function to be called when event occurs\n * @returns {{data: *, event: Function}}\n */\nfunction linkEvent(data, event) {\n if (isFunction(event)) {\n return { data: data, event: event };\n }\n return null; // Return null when event is invalid, to avoid creating unnecessary event handlers\n}\n// object.event should always be function, otherwise its badly created object.\nfunction isLinkEventObject(o) {\n return !isNull(o) && typeof o === 'object';\n}\n\n// We need EMPTY_OBJ defined in one place.\n// Its used for comparison so we cant inline it into shared\nvar EMPTY_OBJ = {};\nvar Fragment = '$F';\nfunction normalizeEventName(name) {\n return name.substr(2).toLowerCase();\n}\nfunction appendChild(parentDOM, dom) {\n parentDOM.appendChild(dom);\n}\nfunction insertOrAppend(parentDOM, newNode, nextNode) {\n if (isNull(nextNode)) {\n appendChild(parentDOM, newNode);\n }\n else {\n parentDOM.insertBefore(newNode, nextNode);\n }\n}\nfunction documentCreateElement(tag, isSVG) {\n if (isSVG) {\n return document.createElementNS('http://www.w3.org/2000/svg', tag);\n }\n return document.createElement(tag);\n}\nfunction replaceChild(parentDOM, newDom, lastDom) {\n parentDOM.replaceChild(newDom, lastDom);\n}\nfunction removeChild(parentDOM, childNode) {\n parentDOM.removeChild(childNode);\n}\nfunction callAll(arrayFn) {\n for (var i = 0; i < arrayFn.length; i++) {\n arrayFn[i]();\n }\n}\nfunction findChildVNode(vNode, startEdge, flags) {\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n return children.$LI;\n }\n if (flags & 8192 /* Fragment */) {\n return vNode.childFlags === 2 /* HasVNodeChildren */ ? children : children[startEdge ? 0 : children.length - 1];\n }\n return children;\n}\nfunction findDOMfromVNode(vNode, startEdge) {\n var flags;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n return vNode.dom;\n }\n vNode = findChildVNode(vNode, startEdge, flags);\n }\n return null;\n}\nfunction removeVNodeDOM(vNode, parentDOM) {\n do {\n var flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n removeChild(parentDOM, vNode.dom);\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n vNode = children;\n }\n else {\n for (var i = 0, len = children.length; i < len; ++i) {\n removeVNodeDOM(children[i], parentDOM);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction moveVNodeDOM(vNode, parentDOM, nextNode) {\n do {\n var flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n insertOrAppend(parentDOM, vNode.dom, nextNode);\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n vNode = children;\n }\n else {\n for (var i = 0, len = children.length; i < len; ++i) {\n moveVNodeDOM(children[i], parentDOM, nextNode);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction createDerivedState(instance, nextProps, state) {\n if (instance.constructor.getDerivedStateFromProps) {\n return combineFrom(state, instance.constructor.getDerivedStateFromProps(nextProps, state));\n }\n return state;\n}\nvar renderCheck = {\n v: false\n};\nvar options = {\n componentComparator: null,\n createVNode: null,\n renderComplete: null\n};\nfunction setTextContent(dom, children) {\n dom.textContent = children;\n}\n// Calling this function assumes, nextValue is linkEvent\nfunction isLastValueSameLinkEvent(lastValue, nextValue) {\n return (isLinkEventObject(lastValue) &&\n lastValue.event === nextValue.event &&\n lastValue.data === nextValue.data);\n}\nfunction mergeUnsetProperties(to, from) {\n for (var propName in from) {\n if (isUndefined(to[propName])) {\n to[propName] = from[propName];\n }\n }\n return to;\n}\nfunction safeCall1(method, arg1) {\n return !!isFunction(method) && (method(arg1), true);\n}\n\nvar keyPrefix = '$';\nfunction V(childFlags, children, className, flags, key, props, ref, type) {\n this.childFlags = childFlags;\n this.children = children;\n this.className = className;\n this.dom = null;\n this.flags = flags;\n this.key = key === void 0 ? null : key;\n this.props = props === void 0 ? null : props;\n this.ref = ref === void 0 ? null : ref;\n this.type = type;\n}\nfunction createVNode(flags, type, className, children, childFlags, props, key, ref) {\n var childFlag = childFlags === void 0 ? 1 /* HasInvalidChildren */ : childFlags;\n var vNode = new V(childFlag, children, className, flags, key, props, ref, type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n if (childFlag === 0 /* UnknownChildren */) {\n normalizeChildren(vNode, vNode.children);\n }\n return vNode;\n}\nfunction mergeDefaultHooks(flags, type, ref) {\n if (flags & 4 /* ComponentClass */) {\n return ref;\n }\n var defaultHooks = (flags & 32768 /* ForwardRef */ ? type.render : type).defaultHooks;\n if (isNullOrUndef(defaultHooks)) {\n return ref;\n }\n if (isNullOrUndef(ref)) {\n return defaultHooks;\n }\n return mergeUnsetProperties(ref, defaultHooks);\n}\nfunction mergeDefaultProps(flags, type, props) {\n // set default props\n var defaultProps = (flags & 32768 /* ForwardRef */ ? type.render : type).defaultProps;\n if (isNullOrUndef(defaultProps)) {\n return props;\n }\n if (isNullOrUndef(props)) {\n return combineFrom(defaultProps, null);\n }\n return mergeUnsetProperties(props, defaultProps);\n}\nfunction resolveComponentFlags(flags, type) {\n if (flags & 12 /* ComponentKnown */) {\n return flags;\n }\n if (type.prototype && type.prototype.render) {\n return 4 /* ComponentClass */;\n }\n if (type.render) {\n return 32776 /* ForwardRefComponent */;\n }\n return 8 /* ComponentFunction */;\n}\nfunction createComponentVNode(flags, type, props, key, ref) {\n flags = resolveComponentFlags(flags, type);\n var vNode = new V(1 /* HasInvalidChildren */, null, null, flags, key, mergeDefaultProps(flags, type, props), mergeDefaultHooks(flags, type, ref), type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n return vNode;\n}\nfunction createTextVNode(text, key) {\n return new V(1 /* HasInvalidChildren */, isNullOrUndef(text) || text === true || text === false ? '' : text, null, 16 /* Text */, key, null, null, null);\n}\nfunction createFragment(children, childFlags, key) {\n var fragment = createVNode(8192 /* Fragment */, 8192 /* Fragment */, null, children, childFlags, null, key, null);\n switch (fragment.childFlags) {\n case 1 /* HasInvalidChildren */:\n fragment.children = createVoidVNode();\n fragment.childFlags = 2 /* HasVNodeChildren */;\n break;\n case 16 /* HasTextChildren */:\n fragment.children = [createTextVNode(children)];\n fragment.childFlags = 4 /* HasNonKeyedChildren */;\n break;\n }\n return fragment;\n}\nfunction normalizeProps(vNode) {\n var props = vNode.props;\n if (props) {\n var flags = vNode.flags;\n if (flags & 481 /* Element */) {\n if (props.children !== void 0 && isNullOrUndef(vNode.children)) {\n normalizeChildren(vNode, props.children);\n }\n if (props.className !== void 0) {\n if (isNullOrUndef(vNode.className)) {\n vNode.className = props.className || null;\n }\n props.className = undefined;\n }\n }\n if (props.key !== void 0) {\n vNode.key = props.key;\n props.key = undefined;\n }\n if (props.ref !== void 0) {\n if (flags & 8 /* ComponentFunction */) {\n vNode.ref = combineFrom(vNode.ref, props.ref);\n }\n else {\n vNode.ref = props.ref;\n }\n props.ref = undefined;\n }\n }\n return vNode;\n}\n/*\n * Fragment is different than normal vNode,\n * because when it needs to be cloned we need to clone its children too\n * But not normalize, because otherwise those possibly get KEY and re-mount\n */\nfunction cloneFragment(vNodeToClone) {\n var oldChildren = vNodeToClone.children;\n var childFlags = vNodeToClone.childFlags;\n return createFragment(childFlags === 2 /* HasVNodeChildren */ ? directClone(oldChildren) : oldChildren.map(directClone), childFlags, vNodeToClone.key);\n}\nfunction directClone(vNodeToClone) {\n var flags = vNodeToClone.flags & -16385 /* ClearInUse */;\n var props = vNodeToClone.props;\n if (flags & 14 /* Component */) {\n if (!isNull(props)) {\n var propsToClone = props;\n props = {};\n for (var key in propsToClone) {\n props[key] = propsToClone[key];\n }\n }\n }\n if ((flags & 8192 /* Fragment */) === 0) {\n return new V(vNodeToClone.childFlags, vNodeToClone.children, vNodeToClone.className, flags, vNodeToClone.key, props, vNodeToClone.ref, vNodeToClone.type);\n }\n return cloneFragment(vNodeToClone);\n}\nfunction createVoidVNode() {\n return createTextVNode('', null);\n}\nfunction createPortal(children, container) {\n var normalizedRoot = normalizeRoot(children);\n return createVNode(1024 /* Portal */, 1024 /* Portal */, null, normalizedRoot, 0 /* UnknownChildren */, null, normalizedRoot.key, container);\n}\nfunction _normalizeVNodes(nodes, result, index, currentKey) {\n for (var len = nodes.length; index < len; index++) {\n var n = nodes[index];\n if (!isInvalid(n)) {\n var newKey = currentKey + keyPrefix + index;\n if (isArray(n)) {\n _normalizeVNodes(n, result, 0, newKey);\n }\n else {\n if (isStringOrNumber(n)) {\n n = createTextVNode(n, newKey);\n }\n else {\n var oldKey = n.key;\n var isPrefixedKey = isString(oldKey) && oldKey[0] === keyPrefix;\n if (n.flags & 81920 /* InUseOrNormalized */ || isPrefixedKey) {\n n = directClone(n);\n }\n n.flags |= 65536 /* Normalized */;\n if (!isPrefixedKey) {\n if (isNull(oldKey)) {\n n.key = newKey;\n }\n else {\n n.key = currentKey + oldKey;\n }\n }\n else if (oldKey.substring(0, currentKey.length) !== currentKey) {\n n.key = currentKey + oldKey;\n }\n }\n result.push(n);\n }\n }\n }\n}\nfunction getFlagsForElementVnode(type) {\n switch (type) {\n case 'svg':\n return 32 /* SvgElement */;\n case 'input':\n return 64 /* InputElement */;\n case 'select':\n return 256 /* SelectElement */;\n case 'textarea':\n return 128 /* TextareaElement */;\n case Fragment:\n return 8192 /* Fragment */;\n default:\n return 1 /* HtmlElement */;\n }\n}\nfunction normalizeChildren(vNode, children) {\n var newChildren;\n var newChildFlags = 1 /* HasInvalidChildren */;\n // Don't change children to match strict equal (===) true in patching\n if (isInvalid(children)) {\n newChildren = children;\n }\n else if (isStringOrNumber(children)) {\n newChildFlags = 16 /* HasTextChildren */;\n newChildren = children;\n }\n else if (isArray(children)) {\n var len = children.length;\n for (var i = 0; i < len; ++i) {\n var n = children[i];\n if (isInvalid(n) || isArray(n)) {\n newChildren = newChildren || children.slice(0, i);\n _normalizeVNodes(children, newChildren, i, '');\n break;\n }\n else if (isStringOrNumber(n)) {\n newChildren = newChildren || children.slice(0, i);\n newChildren.push(createTextVNode(n, keyPrefix + i));\n }\n else {\n var key = n.key;\n var needsCloning = (n.flags & 81920 /* InUseOrNormalized */) > 0;\n var isNullKey = isNull(key);\n var isPrefixed = isString(key) && key[0] === keyPrefix;\n if (needsCloning || isNullKey || isPrefixed) {\n newChildren = newChildren || children.slice(0, i);\n if (needsCloning || isPrefixed) {\n n = directClone(n);\n }\n if (isNullKey || isPrefixed) {\n n.key = keyPrefix + i;\n }\n newChildren.push(n);\n }\n else if (newChildren) {\n newChildren.push(n);\n }\n n.flags |= 65536 /* Normalized */;\n }\n }\n newChildren = newChildren || children;\n if (newChildren.length === 0) {\n newChildFlags = 1 /* HasInvalidChildren */;\n }\n else {\n newChildFlags = 8 /* HasKeyedChildren */;\n }\n }\n else {\n newChildren = children;\n newChildren.flags |= 65536 /* Normalized */;\n if (children.flags & 81920 /* InUseOrNormalized */) {\n newChildren = directClone(children);\n }\n newChildFlags = 2 /* HasVNodeChildren */;\n }\n vNode.children = newChildren;\n vNode.childFlags = newChildFlags;\n return vNode;\n}\nfunction normalizeRoot(input) {\n if (isInvalid(input) || isStringOrNumber(input)) {\n return createTextVNode(input, null);\n }\n if (isArray(input)) {\n return createFragment(input, 0 /* UnknownChildren */, null);\n }\n return input.flags & 16384 /* InUse */ ? directClone(input) : input;\n}\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\nvar xmlNS = 'http://www.w3.org/XML/1998/namespace';\nvar namespaces = {\n 'xlink:actuate': xlinkNS,\n 'xlink:arcrole': xlinkNS,\n 'xlink:href': xlinkNS,\n 'xlink:role': xlinkNS,\n 'xlink:show': xlinkNS,\n 'xlink:title': xlinkNS,\n 'xlink:type': xlinkNS,\n 'xml:base': xmlNS,\n 'xml:lang': xmlNS,\n 'xml:space': xmlNS\n};\n\nfunction getDelegatedEventObject(v) {\n return {\n onClick: v,\n onDblClick: v,\n onFocusIn: v,\n onFocusOut: v,\n onKeyDown: v,\n onKeyPress: v,\n onKeyUp: v,\n onMouseDown: v,\n onMouseMove: v,\n onMouseUp: v,\n onTouchEnd: v,\n onTouchMove: v,\n onTouchStart: v\n };\n}\nvar attachedEventCounts = getDelegatedEventObject(0);\nvar attachedEvents = getDelegatedEventObject(null);\nvar syntheticEvents = getDelegatedEventObject(true);\nfunction updateOrAddSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (!eventsObject) {\n eventsObject = dom.$EV = getDelegatedEventObject(null);\n }\n if (!eventsObject[name]) {\n if (++attachedEventCounts[name] === 1) {\n attachedEvents[name] = attachEventToDocument(name);\n }\n }\n return eventsObject;\n}\nfunction unmountSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (eventsObject && eventsObject[name]) {\n if (--attachedEventCounts[name] === 0) {\n document.removeEventListener(normalizeEventName(name), attachedEvents[name]);\n attachedEvents[name] = null;\n }\n eventsObject[name] = null;\n }\n}\nfunction handleSyntheticEvent(name, lastEvent, nextEvent, dom) {\n if (isFunction(nextEvent)) {\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n }\n else if (isLinkEventObject(nextEvent)) {\n if (isLastValueSameLinkEvent(lastEvent, nextEvent)) {\n return;\n }\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n }\n else {\n unmountSyntheticEvent(name, dom);\n }\n}\n// When browsers fully support event.composedPath we could loop it through instead of using parentNode property\nfunction getTargetNode(event) {\n return isFunction(event.composedPath) ? event.composedPath()[0] : event.target;\n}\nfunction dispatchEvents(event, isClick, name, eventData) {\n var dom = getTargetNode(event);\n do {\n // Html Nodes can be nested fe: span inside button in that scenario browser does not handle disabled attribute on parent,\n // because the event listener is on document.body\n // Don't process clicks on disabled elements\n if (isClick && dom.disabled) {\n return;\n }\n var eventsObject = dom.$EV;\n if (eventsObject) {\n var currentEvent = eventsObject[name];\n if (currentEvent) {\n // linkEvent object\n eventData.dom = dom;\n currentEvent.event ? currentEvent.event(currentEvent.data, event) : currentEvent(event);\n if (event.cancelBubble) {\n return;\n }\n }\n }\n dom = dom.parentNode;\n } while (!isNull(dom));\n}\nfunction stopPropagation() {\n this.cancelBubble = true;\n if (!this.immediatePropagationStopped) {\n this.stopImmediatePropagation();\n }\n}\nfunction isDefaultPrevented() {\n return this.defaultPrevented;\n}\nfunction isPropagationStopped() {\n return this.cancelBubble;\n}\nfunction extendEventProperties(event) {\n // Event data needs to be object to save reference to currentTarget getter\n var eventData = {\n dom: document\n };\n event.isDefaultPrevented = isDefaultPrevented;\n event.isPropagationStopped = isPropagationStopped;\n event.stopPropagation = stopPropagation;\n Object.defineProperty(event, 'currentTarget', {\n configurable: true,\n get: function get() {\n return eventData.dom;\n }\n });\n return eventData;\n}\nfunction rootClickEvent(name) {\n return function (event) {\n if (event.button !== 0) {\n // Firefox incorrectly triggers click event for mid/right mouse buttons.\n // This bug has been active for 17 years.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=184051\n event.stopPropagation();\n return;\n }\n dispatchEvents(event, true, name, extendEventProperties(event));\n };\n}\nfunction rootEvent(name) {\n return function (event) {\n dispatchEvents(event, false, name, extendEventProperties(event));\n };\n}\nfunction attachEventToDocument(name) {\n var attachedEvent = name === 'onClick' || name === 'onDblClick' ? rootClickEvent(name) : rootEvent(name);\n document.addEventListener(normalizeEventName(name), attachedEvent);\n return attachedEvent;\n}\n\nfunction isSameInnerHTML(dom, innerHTML) {\n var tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\n\nfunction triggerEventListener(props, methodName, e) {\n if (props[methodName]) {\n var listener = props[methodName];\n if (listener.event) {\n listener.event(listener.data, e);\n }\n else {\n listener(e);\n }\n }\n else {\n var nativeListenerName = methodName.toLowerCase();\n if (props[nativeListenerName]) {\n props[nativeListenerName](e);\n }\n }\n}\nfunction createWrappedFunction(methodName, applyValue) {\n var fnMethod = function (e) {\n var vNode = this.$V;\n // If vNode is gone by the time event fires, no-op\n if (!vNode) {\n return;\n }\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n if (isString(methodName)) {\n triggerEventListener(props, methodName, e);\n }\n else {\n for (var i = 0; i < methodName.length; ++i) {\n triggerEventListener(props, methodName[i], e);\n }\n }\n if (isFunction(applyValue)) {\n var newVNode = this.$V;\n var newProps = newVNode.props || EMPTY_OBJ;\n applyValue(newProps, dom, false, newVNode);\n }\n };\n Object.defineProperty(fnMethod, 'wrapped', {\n configurable: false,\n enumerable: false,\n value: true,\n writable: false\n });\n return fnMethod;\n}\n\nfunction attachEvent(dom, eventName, handler) {\n var previousKey = \"$\" + eventName;\n var previousArgs = dom[previousKey];\n if (previousArgs) {\n if (previousArgs[1].wrapped) {\n return;\n }\n dom.removeEventListener(previousArgs[0], previousArgs[1]);\n dom[previousKey] = null;\n }\n if (isFunction(handler)) {\n dom.addEventListener(eventName, handler);\n dom[previousKey] = [eventName, handler];\n }\n}\n\nfunction isCheckedType(type) {\n return type === 'checkbox' || type === 'radio';\n}\nvar onTextInputChange = createWrappedFunction('onInput', applyValueInput);\nvar wrappedOnChange = createWrappedFunction(['onClick', 'onChange'], applyValueInput);\n/* tslint:disable-next-line:no-empty */\nfunction emptywrapper(event) {\n event.stopPropagation();\n}\nemptywrapper.wrapped = true;\nfunction inputEvents(dom, nextPropsOrEmpty) {\n if (isCheckedType(nextPropsOrEmpty.type)) {\n attachEvent(dom, 'change', wrappedOnChange);\n attachEvent(dom, 'click', emptywrapper);\n }\n else {\n attachEvent(dom, 'input', onTextInputChange);\n }\n}\nfunction applyValueInput(nextPropsOrEmpty, dom) {\n var type = nextPropsOrEmpty.type;\n var value = nextPropsOrEmpty.value;\n var checked = nextPropsOrEmpty.checked;\n var multiple = nextPropsOrEmpty.multiple;\n var defaultValue = nextPropsOrEmpty.defaultValue;\n var hasValue = !isNullOrUndef(value);\n if (type && type !== dom.type) {\n dom.setAttribute('type', type);\n }\n if (!isNullOrUndef(multiple) && multiple !== dom.multiple) {\n dom.multiple = multiple;\n }\n if (!isNullOrUndef(defaultValue) && !hasValue) {\n dom.defaultValue = defaultValue + '';\n }\n if (isCheckedType(type)) {\n if (hasValue) {\n dom.value = value;\n }\n if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n else {\n if (hasValue && dom.value !== value) {\n dom.defaultValue = value;\n dom.value = value;\n }\n else if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n}\n\nfunction updateChildOptions(vNode, value) {\n if (vNode.type === 'option') {\n updateChildOption(vNode, value);\n }\n else {\n var children = vNode.children;\n var flags = vNode.flags;\n if (flags & 4 /* ComponentClass */) {\n updateChildOptions(children.$LI, value);\n }\n else if (flags & 8 /* ComponentFunction */) {\n updateChildOptions(children, value);\n }\n else if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n updateChildOptions(children, value);\n }\n else if (vNode.childFlags & 12 /* MultipleChildren */) {\n for (var i = 0, len = children.length; i < len; ++i) {\n updateChildOptions(children[i], value);\n }\n }\n }\n}\nfunction updateChildOption(vNode, value) {\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n // we do this as multiple may have changed\n dom.value = props.value;\n if (props.value === value || (isArray(value) && value.indexOf(props.value) !== -1)) {\n dom.selected = true;\n }\n else if (!isNullOrUndef(value) || !isNullOrUndef(props.selected)) {\n dom.selected = props.selected || false;\n }\n}\nvar onSelectChange = createWrappedFunction('onChange', applyValueSelect);\nfunction selectEvents(dom) {\n attachEvent(dom, 'change', onSelectChange);\n}\nfunction applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode) {\n var multiplePropInBoolean = Boolean(nextPropsOrEmpty.multiple);\n if (!isNullOrUndef(nextPropsOrEmpty.multiple) && multiplePropInBoolean !== dom.multiple) {\n dom.multiple = multiplePropInBoolean;\n }\n var index = nextPropsOrEmpty.selectedIndex;\n if (index === -1) {\n dom.selectedIndex = -1;\n }\n var childFlags = vNode.childFlags;\n if (childFlags !== 1 /* HasInvalidChildren */) {\n var value = nextPropsOrEmpty.value;\n if (isNumber(index) && index > -1 && dom.options[index]) {\n value = dom.options[index].value;\n }\n if (mounting && isNullOrUndef(value)) {\n value = nextPropsOrEmpty.defaultValue;\n }\n updateChildOptions(vNode, value);\n }\n}\n\nvar onTextareaInputChange = createWrappedFunction('onInput', applyValueTextArea);\nvar wrappedOnChange$1 = createWrappedFunction('onChange');\nfunction textAreaEvents(dom, nextPropsOrEmpty) {\n attachEvent(dom, 'input', onTextareaInputChange);\n if (nextPropsOrEmpty.onChange) {\n attachEvent(dom, 'change', wrappedOnChange$1);\n }\n}\nfunction applyValueTextArea(nextPropsOrEmpty, dom, mounting) {\n var value = nextPropsOrEmpty.value;\n var domValue = dom.value;\n if (isNullOrUndef(value)) {\n if (mounting) {\n var defaultValue = nextPropsOrEmpty.defaultValue;\n if (!isNullOrUndef(defaultValue) && defaultValue !== domValue) {\n dom.defaultValue = defaultValue;\n dom.value = defaultValue;\n }\n }\n }\n else if (domValue !== value) {\n /* There is value so keep it controlled */\n dom.defaultValue = value;\n dom.value = value;\n }\n}\n\nfunction processElement(flags, vNode, dom, nextPropsOrEmpty, mounting, isControlled) {\n if (flags & 64 /* InputElement */) {\n applyValueInput(nextPropsOrEmpty, dom);\n }\n else if (flags & 256 /* SelectElement */) {\n applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode);\n }\n else if (flags & 128 /* TextareaElement */) {\n applyValueTextArea(nextPropsOrEmpty, dom, mounting);\n }\n if (isControlled) {\n dom.$V = vNode;\n }\n}\nfunction addFormElementEventHandlers(flags, dom, nextPropsOrEmpty) {\n if (flags & 64 /* InputElement */) {\n inputEvents(dom, nextPropsOrEmpty);\n }\n else if (flags & 256 /* SelectElement */) {\n selectEvents(dom);\n }\n else if (flags & 128 /* TextareaElement */) {\n textAreaEvents(dom, nextPropsOrEmpty);\n }\n}\nfunction isControlledFormElement(nextPropsOrEmpty) {\n return nextPropsOrEmpty.type && isCheckedType(nextPropsOrEmpty.type) ? !isNullOrUndef(nextPropsOrEmpty.checked) : !isNullOrUndef(nextPropsOrEmpty.value);\n}\n\nfunction createRef() {\n return {\n current: null\n };\n}\nfunction forwardRef(render) {\n // @ts-ignore\n return {\n render: render\n };\n}\nfunction unmountRef(ref) {\n if (ref) {\n if (!safeCall1(ref, null) && ref.current) {\n ref.current = null;\n }\n }\n}\nfunction mountRef(ref, value, lifecycle) {\n if (ref && (isFunction(ref) || ref.current !== void 0)) {\n lifecycle.push(function () {\n if (!safeCall1(ref, value) && ref.current !== void 0) {\n ref.current = value;\n }\n });\n }\n}\n\nfunction remove(vNode, parentDOM) {\n unmount(vNode);\n removeVNodeDOM(vNode, parentDOM);\n}\nfunction unmount(vNode) {\n var flags = vNode.flags;\n var children = vNode.children;\n var ref;\n if (flags & 481 /* Element */) {\n ref = vNode.ref;\n var props = vNode.props;\n unmountRef(ref);\n var childFlags = vNode.childFlags;\n if (!isNull(props)) {\n var keys = Object.keys(props);\n for (var i = 0, len = keys.length; i < len; i++) {\n var key = keys[i];\n if (syntheticEvents[key]) {\n unmountSyntheticEvent(key, vNode.dom);\n }\n }\n }\n if (childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(children);\n }\n else if (childFlags === 2 /* HasVNodeChildren */) {\n unmount(children);\n }\n }\n else if (children) {\n if (flags & 4 /* ComponentClass */) {\n if (isFunction(children.componentWillUnmount)) {\n children.componentWillUnmount();\n }\n unmountRef(vNode.ref);\n children.$UN = true;\n unmount(children.$LI);\n }\n else if (flags & 8 /* ComponentFunction */) {\n ref = vNode.ref;\n if (!isNullOrUndef(ref) && isFunction(ref.onComponentWillUnmount)) {\n ref.onComponentWillUnmount(findDOMfromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n }\n unmount(children);\n }\n else if (flags & 1024 /* Portal */) {\n remove(children, vNode.ref);\n }\n else if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(children);\n }\n }\n }\n}\nfunction unmountAllChildren(children) {\n for (var i = 0, len = children.length; i < len; ++i) {\n unmount(children[i]);\n }\n}\nfunction clearDOM(dom) {\n // Optimization for clearing dom\n dom.textContent = '';\n}\nfunction removeAllChildren(dom, vNode, children) {\n unmountAllChildren(children);\n if (vNode.flags & 8192 /* Fragment */) {\n removeVNodeDOM(vNode, dom);\n }\n else {\n clearDOM(dom);\n }\n}\n\nfunction wrapLinkEvent(nextValue) {\n // This variable makes sure there is no \"this\" context in callback\n var ev = nextValue.event;\n return function (e) {\n ev(nextValue.data, e);\n };\n}\nfunction patchEvent(name, lastValue, nextValue, dom) {\n if (isLinkEventObject(nextValue)) {\n if (isLastValueSameLinkEvent(lastValue, nextValue)) {\n return;\n }\n nextValue = wrapLinkEvent(nextValue);\n }\n attachEvent(dom, normalizeEventName(name), nextValue);\n}\n// We are assuming here that we come from patchProp routine\n// -nextAttrValue cannot be null or undefined\nfunction patchStyle(lastAttrValue, nextAttrValue, dom) {\n if (isNullOrUndef(nextAttrValue)) {\n dom.removeAttribute('style');\n return;\n }\n var domStyle = dom.style;\n var style;\n var value;\n if (isString(nextAttrValue)) {\n domStyle.cssText = nextAttrValue;\n return;\n }\n if (!isNullOrUndef(lastAttrValue) && !isString(lastAttrValue)) {\n for (style in nextAttrValue) {\n // do not add a hasOwnProperty check here, it affects performance\n value = nextAttrValue[style];\n if (value !== lastAttrValue[style]) {\n domStyle.setProperty(style, value);\n }\n }\n for (style in lastAttrValue) {\n if (isNullOrUndef(nextAttrValue[style])) {\n domStyle.removeProperty(style);\n }\n }\n }\n else {\n for (style in nextAttrValue) {\n value = nextAttrValue[style];\n domStyle.setProperty(style, value);\n }\n }\n}\nfunction patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom) {\n var lastHtml = (lastValue && lastValue.__html) || '';\n var nextHtml = (nextValue && nextValue.__html) || '';\n if (lastHtml !== nextHtml) {\n if (!isNullOrUndef(nextHtml) && !isSameInnerHTML(dom, nextHtml)) {\n if (!isNull(lastVNode)) {\n if (lastVNode.childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(lastVNode.children);\n }\n else if (lastVNode.childFlags === 2 /* HasVNodeChildren */) {\n unmount(lastVNode.children);\n }\n lastVNode.children = null;\n lastVNode.childFlags = 1 /* HasInvalidChildren */;\n }\n dom.innerHTML = nextHtml;\n }\n }\n}\nfunction patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode) {\n switch (prop) {\n case 'children':\n case 'childrenType':\n case 'className':\n case 'defaultValue':\n case 'key':\n case 'multiple':\n case 'ref':\n case 'selectedIndex':\n break;\n case 'autoFocus':\n dom.autofocus = !!nextValue;\n break;\n case 'allowfullscreen':\n case 'autoplay':\n case 'capture':\n case 'checked':\n case 'controls':\n case 'default':\n case 'disabled':\n case 'hidden':\n case 'indeterminate':\n case 'loop':\n case 'muted':\n case 'novalidate':\n case 'open':\n case 'readOnly':\n case 'required':\n case 'reversed':\n case 'scoped':\n case 'seamless':\n case 'selected':\n dom[prop] = !!nextValue;\n break;\n case 'defaultChecked':\n case 'value':\n case 'volume':\n if (hasControlledValue && prop === 'value') {\n break;\n }\n var value = isNullOrUndef(nextValue) ? '' : nextValue;\n if (dom[prop] !== value) {\n dom[prop] = value;\n }\n break;\n case 'style':\n patchStyle(lastValue, nextValue, dom);\n break;\n case 'dangerouslySetInnerHTML':\n patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom);\n break;\n default:\n if (syntheticEvents[prop]) {\n handleSyntheticEvent(prop, lastValue, nextValue, dom);\n }\n else if (prop.charCodeAt(0) === 111 && prop.charCodeAt(1) === 110) {\n patchEvent(prop, lastValue, nextValue, dom);\n }\n else if (isNullOrUndef(nextValue)) {\n dom.removeAttribute(prop);\n }\n else if (isSVG && namespaces[prop]) {\n // We optimize for isSVG being false\n // If we end up in this path we can read property again\n dom.setAttributeNS(namespaces[prop], prop, nextValue);\n }\n else {\n dom.setAttribute(prop, nextValue);\n }\n break;\n }\n}\nfunction mountProps(vNode, flags, props, dom, isSVG) {\n var hasControlledValue = false;\n var isFormElement = (flags & 448 /* FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(props);\n if (hasControlledValue) {\n addFormElementEventHandlers(flags, dom, props);\n }\n }\n for (var prop in props) {\n // do not add a hasOwnProperty check here, it affects performance\n patchProp(prop, null, props[prop], dom, isSVG, hasControlledValue, null);\n }\n if (isFormElement) {\n processElement(flags, vNode, dom, props, true, hasControlledValue);\n }\n}\n\nfunction renderNewInput(instance, props, context) {\n var nextInput = normalizeRoot(instance.render(props, instance.state, context));\n var childContext = context;\n if (isFunction(instance.getChildContext)) {\n childContext = combineFrom(context, instance.getChildContext());\n }\n instance.$CX = childContext;\n return nextInput;\n}\nfunction createClassComponentInstance(vNode, Component, props, context, isSVG, lifecycle) {\n var instance = new Component(props, context);\n var usesNewAPI = (instance.$N = Boolean(Component.getDerivedStateFromProps || instance.getSnapshotBeforeUpdate));\n instance.$SVG = isSVG;\n instance.$L = lifecycle;\n vNode.children = instance;\n instance.$BS = false;\n instance.context = context;\n if (instance.props === EMPTY_OBJ) {\n instance.props = props;\n }\n if (!usesNewAPI) {\n if (isFunction(instance.componentWillMount)) {\n instance.$BR = true;\n instance.componentWillMount();\n var pending = instance.$PS;\n if (!isNull(pending)) {\n var state = instance.state;\n if (isNull(state)) {\n instance.state = pending;\n }\n else {\n for (var key in pending) {\n state[key] = pending[key];\n }\n }\n instance.$PS = null;\n }\n instance.$BR = false;\n }\n }\n else {\n instance.state = createDerivedState(instance, props, instance.state);\n }\n instance.$LI = renderNewInput(instance, props, context);\n return instance;\n}\nfunction renderFunctionalComponent(vNode, context) {\n var props = vNode.props || EMPTY_OBJ;\n return vNode.flags & 32768 /* ForwardRef */ ? vNode.type.render(props, vNode.ref, context) : vNode.type(props, context);\n}\n\nfunction mount(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var flags = (vNode.flags |= 16384 /* InUse */);\n if (flags & 481 /* Element */) {\n mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (flags & 4 /* ComponentClass */) {\n mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (flags & 8 /* ComponentFunction */) {\n mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n mountFunctionalComponentCallbacks(vNode, lifecycle);\n }\n else if (flags & 512 /* Void */ || flags & 16 /* Text */) {\n mountText(vNode, parentDOM, nextNode);\n }\n else if (flags & 8192 /* Fragment */) {\n mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle);\n }\n else if (flags & 1024 /* Portal */) {\n mountPortal(vNode, context, parentDOM, nextNode, lifecycle);\n }\n else ;\n}\nfunction mountPortal(vNode, context, parentDOM, nextNode, lifecycle) {\n mount(vNode.children, vNode.ref, context, false, null, lifecycle);\n var placeHolderVNode = createVoidVNode();\n mountText(placeHolderVNode, parentDOM, nextNode);\n vNode.dom = placeHolderVNode.dom;\n}\nfunction mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle) {\n var children = vNode.children;\n var childFlags = vNode.childFlags;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (childFlags & 12 /* MultipleChildren */ && children.length === 0) {\n childFlags = vNode.childFlags = 2 /* HasVNodeChildren */;\n children = vNode.children = createVoidVNode();\n }\n if (childFlags === 2 /* HasVNodeChildren */) {\n mount(children, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else {\n mountArrayChildren(children, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n}\nfunction mountText(vNode, parentDOM, nextNode) {\n var dom = (vNode.dom = document.createTextNode(vNode.children));\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n}\nfunction mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var flags = vNode.flags;\n var props = vNode.props;\n var className = vNode.className;\n var childFlags = vNode.childFlags;\n var dom = (vNode.dom = documentCreateElement(vNode.type, (isSVG = isSVG || (flags & 32 /* SvgElement */) > 0)));\n var children = vNode.children;\n if (!isNullOrUndef(className) && className !== '') {\n if (isSVG) {\n dom.setAttribute('class', className);\n }\n else {\n dom.className = className;\n }\n }\n if (childFlags === 16 /* HasTextChildren */) {\n setTextContent(dom, children);\n }\n else if (childFlags !== 1 /* HasInvalidChildren */) {\n var childrenIsSVG = isSVG && vNode.type !== 'foreignObject';\n if (childFlags === 2 /* HasVNodeChildren */) {\n if (children.flags & 16384 /* InUse */) {\n vNode.children = children = directClone(children);\n }\n mount(children, dom, context, childrenIsSVG, null, lifecycle);\n }\n else if (childFlags === 8 /* HasKeyedChildren */ || childFlags === 4 /* HasNonKeyedChildren */) {\n mountArrayChildren(children, dom, context, childrenIsSVG, null, lifecycle);\n }\n }\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n if (!isNull(props)) {\n mountProps(vNode, flags, props, dom, isSVG);\n }\n mountRef(vNode.ref, dom, lifecycle);\n}\nfunction mountArrayChildren(children, dom, context, isSVG, nextNode, lifecycle) {\n for (var i = 0; i < children.length; ++i) {\n var child = children[i];\n if (child.flags & 16384 /* InUse */) {\n children[i] = child = directClone(child);\n }\n mount(child, dom, context, isSVG, nextNode, lifecycle);\n }\n}\nfunction mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var instance = createClassComponentInstance(vNode, vNode.type, vNode.props || EMPTY_OBJ, context, isSVG, lifecycle);\n mount(instance.$LI, parentDOM, instance.$CX, isSVG, nextNode, lifecycle);\n mountClassComponentCallbacks(vNode.ref, instance, lifecycle);\n}\nfunction mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n mount((vNode.children = normalizeRoot(renderFunctionalComponent(vNode, context))), parentDOM, context, isSVG, nextNode, lifecycle);\n}\nfunction createClassMountCallback(instance) {\n return function () {\n instance.componentDidMount();\n };\n}\nfunction mountClassComponentCallbacks(ref, instance, lifecycle) {\n mountRef(ref, instance, lifecycle);\n if (isFunction(instance.componentDidMount)) {\n lifecycle.push(createClassMountCallback(instance));\n }\n}\nfunction createOnMountCallback(ref, vNode) {\n return function () {\n ref.onComponentDidMount(findDOMfromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n };\n}\nfunction mountFunctionalComponentCallbacks(vNode, lifecycle) {\n var ref = vNode.ref;\n if (!isNullOrUndef(ref)) {\n safeCall1(ref.onComponentWillMount, vNode.props || EMPTY_OBJ);\n if (isFunction(ref.onComponentDidMount)) {\n lifecycle.push(createOnMountCallback(ref, vNode));\n }\n }\n}\n\nfunction replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle) {\n unmount(lastVNode);\n if ((nextVNode.flags & lastVNode.flags & 2033 /* DOMRef */) !== 0) {\n mount(nextVNode, null, context, isSVG, null, lifecycle);\n // Single DOM operation, when we have dom references available\n replaceChild(parentDOM, nextVNode.dom, lastVNode.dom);\n }\n else {\n mount(nextVNode, parentDOM, context, isSVG, findDOMfromVNode(lastVNode, true), lifecycle);\n removeVNodeDOM(lastVNode, parentDOM);\n }\n}\nfunction patch(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var nextFlags = (nextVNode.flags |= 16384 /* InUse */);\n if (lastVNode.flags !== nextFlags || lastVNode.type !== nextVNode.type || lastVNode.key !== nextVNode.key || nextFlags & 2048 /* ReCreate */) {\n if (lastVNode.flags & 16384 /* InUse */) {\n replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle);\n }\n else {\n // Last vNode is not in use, it has crashed at application level. Just mount nextVNode and ignore last one\n mount(nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (nextFlags & 481 /* Element */) {\n patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle);\n }\n else if (nextFlags & 4 /* ComponentClass */) {\n patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (nextFlags & 8 /* ComponentFunction */) {\n patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (nextFlags & 16 /* Text */) {\n patchText(lastVNode, nextVNode);\n }\n else if (nextFlags & 512 /* Void */) {\n nextVNode.dom = lastVNode.dom;\n }\n else if (nextFlags & 8192 /* Fragment */) {\n patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle);\n }\n else {\n patchPortal(lastVNode, nextVNode, context, lifecycle);\n }\n}\nfunction patchSingleTextChild(lastChildren, nextChildren, parentDOM) {\n if (lastChildren !== nextChildren) {\n if (lastChildren !== '') {\n parentDOM.firstChild.nodeValue = nextChildren;\n }\n else {\n setTextContent(parentDOM, nextChildren);\n }\n }\n}\nfunction patchContentEditableChildren(dom, nextChildren) {\n if (dom.textContent !== nextChildren) {\n dom.textContent = nextChildren;\n }\n}\nfunction patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle) {\n var lastChildren = lastVNode.children;\n var nextChildren = nextVNode.children;\n var lastChildFlags = lastVNode.childFlags;\n var nextChildFlags = nextVNode.childFlags;\n var nextNode = null;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (nextChildFlags & 12 /* MultipleChildren */ && nextChildren.length === 0) {\n nextChildFlags = nextVNode.childFlags = 2 /* HasVNodeChildren */;\n nextChildren = nextVNode.children = createVoidVNode();\n }\n var nextIsSingle = (nextChildFlags & 2 /* HasVNodeChildren */) !== 0;\n if (lastChildFlags & 12 /* MultipleChildren */) {\n var lastLen = lastChildren.length;\n // We need to know Fragment's edge node when\n if (\n // It uses keyed algorithm\n (lastChildFlags & 8 /* HasKeyedChildren */ && nextChildFlags & 8 /* HasKeyedChildren */) ||\n // It transforms from many to single\n nextIsSingle ||\n // It will append more nodes\n (!nextIsSingle && nextChildren.length > lastLen)) {\n // When fragment has multiple children there is always at least one vNode\n nextNode = findDOMfromVNode(lastChildren[lastLen - 1], false).nextSibling;\n }\n }\n patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lastVNode, lifecycle);\n}\nfunction patchPortal(lastVNode, nextVNode, context, lifecycle) {\n var lastContainer = lastVNode.ref;\n var nextContainer = nextVNode.ref;\n var nextChildren = nextVNode.children;\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, lastContainer, context, false, null, lastVNode, lifecycle);\n nextVNode.dom = lastVNode.dom;\n if (lastContainer !== nextContainer && !isInvalid(nextChildren)) {\n var node = nextChildren.dom;\n removeChild(lastContainer, node);\n appendChild(nextContainer, node);\n }\n}\nfunction patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle) {\n var dom = (nextVNode.dom = lastVNode.dom);\n var lastProps = lastVNode.props;\n var nextProps = nextVNode.props;\n var isFormElement = false;\n var hasControlledValue = false;\n var nextPropsOrEmpty;\n isSVG = isSVG || (nextFlags & 32 /* SvgElement */) > 0;\n // inlined patchProps -- starts --\n if (lastProps !== nextProps) {\n var lastPropsOrEmpty = lastProps || EMPTY_OBJ;\n nextPropsOrEmpty = nextProps || EMPTY_OBJ;\n if (nextPropsOrEmpty !== EMPTY_OBJ) {\n isFormElement = (nextFlags & 448 /* FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(nextPropsOrEmpty);\n }\n for (var prop in nextPropsOrEmpty) {\n var lastValue = lastPropsOrEmpty[prop];\n var nextValue = nextPropsOrEmpty[prop];\n if (lastValue !== nextValue) {\n patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode);\n }\n }\n }\n if (lastPropsOrEmpty !== EMPTY_OBJ) {\n for (var prop$1 in lastPropsOrEmpty) {\n if (isNullOrUndef(nextPropsOrEmpty[prop$1]) && !isNullOrUndef(lastPropsOrEmpty[prop$1])) {\n patchProp(prop$1, lastPropsOrEmpty[prop$1], null, dom, isSVG, hasControlledValue, lastVNode);\n }\n }\n }\n }\n var nextChildren = nextVNode.children;\n var nextClassName = nextVNode.className;\n // inlined patchProps -- ends --\n if (lastVNode.className !== nextClassName) {\n if (isNullOrUndef(nextClassName)) {\n dom.removeAttribute('class');\n }\n else if (isSVG) {\n dom.setAttribute('class', nextClassName);\n }\n else {\n dom.className = nextClassName;\n }\n }\n if (nextFlags & 4096 /* ContentEditable */) {\n patchContentEditableChildren(dom, nextChildren);\n }\n else {\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, dom, context, isSVG && nextVNode.type !== 'foreignObject', null, lastVNode, lifecycle);\n }\n if (isFormElement) {\n processElement(nextFlags, nextVNode, dom, nextPropsOrEmpty, false, hasControlledValue);\n }\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, dom, lifecycle);\n }\n}\nfunction replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle) {\n unmount(lastChildren);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, findDOMfromVNode(lastChildren, true), lifecycle);\n removeVNodeDOM(lastChildren, parentDOM);\n}\nfunction patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, parentVNode, lifecycle) {\n switch (lastChildFlags) {\n case 2 /* HasVNodeChildren */:\n switch (nextChildFlags) {\n case 2 /* HasVNodeChildren */:\n patch(lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n remove(lastChildren, parentDOM);\n break;\n case 16 /* HasTextChildren */:\n unmount(lastChildren);\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle);\n break;\n }\n break;\n case 1 /* HasInvalidChildren */:\n switch (nextChildFlags) {\n case 2 /* HasVNodeChildren */:\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n break;\n case 16 /* HasTextChildren */:\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n }\n break;\n case 16 /* HasTextChildren */:\n switch (nextChildFlags) {\n case 16 /* HasTextChildren */:\n patchSingleTextChild(lastChildren, nextChildren, parentDOM);\n break;\n case 2 /* HasVNodeChildren */:\n clearDOM(parentDOM);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n clearDOM(parentDOM);\n break;\n default:\n clearDOM(parentDOM);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n }\n break;\n default:\n switch (nextChildFlags) {\n case 16 /* HasTextChildren */:\n unmountAllChildren(lastChildren);\n setTextContent(parentDOM, nextChildren);\n break;\n case 2 /* HasVNodeChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n break;\n default:\n var lastLength = lastChildren.length | 0;\n var nextLength = nextChildren.length | 0;\n // Fast path's for both algorithms\n if (lastLength === 0) {\n if (nextLength > 0) {\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (nextLength === 0) {\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n }\n else if (nextChildFlags === 8 /* HasKeyedChildren */ && lastChildFlags === 8 /* HasKeyedChildren */) {\n patchKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, parentVNode, lifecycle);\n }\n else {\n patchNonKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, lifecycle);\n }\n break;\n }\n break;\n }\n}\nfunction createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle) {\n lifecycle.push(function () {\n instance.componentDidUpdate(lastProps, lastState, snapshot);\n });\n}\nfunction updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, force, nextNode, lifecycle) {\n var lastState = instance.state;\n var lastProps = instance.props;\n var usesNewAPI = Boolean(instance.$N);\n var hasSCU = isFunction(instance.shouldComponentUpdate);\n if (usesNewAPI) {\n nextState = createDerivedState(instance, nextProps, nextState !== lastState ? combineFrom(lastState, nextState) : nextState);\n }\n if (force || !hasSCU || (hasSCU && instance.shouldComponentUpdate(nextProps, nextState, context))) {\n if (!usesNewAPI && isFunction(instance.componentWillUpdate)) {\n instance.componentWillUpdate(nextProps, nextState, context);\n }\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n var snapshot = null;\n var nextInput = renderNewInput(instance, nextProps, context);\n if (usesNewAPI && isFunction(instance.getSnapshotBeforeUpdate)) {\n snapshot = instance.getSnapshotBeforeUpdate(lastProps, lastState);\n }\n patch(instance.$LI, nextInput, parentDOM, instance.$CX, isSVG, nextNode, lifecycle);\n // Dont update Last input, until patch has been succesfully executed\n instance.$LI = nextInput;\n if (isFunction(instance.componentDidUpdate)) {\n createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle);\n }\n }\n else {\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n }\n}\nfunction patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var instance = (nextVNode.children = lastVNode.children);\n // If Component has crashed, ignore it to stay functional\n if (isNull(instance)) {\n return;\n }\n instance.$L = lifecycle;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n var nextState = instance.state;\n if (!instance.$N) {\n if (isFunction(instance.componentWillReceiveProps)) {\n instance.$BR = true;\n instance.componentWillReceiveProps(nextProps, context);\n // If instance component was removed during its own update do nothing.\n if (instance.$UN) {\n return;\n }\n instance.$BR = false;\n }\n if (!isNull(instance.$PS)) {\n nextState = combineFrom(nextState, instance.$PS);\n instance.$PS = null;\n }\n }\n updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, false, nextNode, lifecycle);\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, instance, lifecycle);\n }\n}\nfunction patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var shouldUpdate = true;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastProps = lastVNode.props;\n var nextHooksDefined = !isNullOrUndef(nextRef);\n var lastInput = lastVNode.children;\n if (nextHooksDefined && isFunction(nextRef.onComponentShouldUpdate)) {\n shouldUpdate = nextRef.onComponentShouldUpdate(lastProps, nextProps);\n }\n if (shouldUpdate !== false) {\n if (nextHooksDefined && isFunction(nextRef.onComponentWillUpdate)) {\n nextRef.onComponentWillUpdate(lastProps, nextProps);\n }\n var nextInput = normalizeRoot(renderFunctionalComponent(nextVNode, context));\n patch(lastInput, nextInput, parentDOM, context, isSVG, nextNode, lifecycle);\n nextVNode.children = nextInput;\n if (nextHooksDefined && isFunction(nextRef.onComponentDidUpdate)) {\n nextRef.onComponentDidUpdate(lastProps, nextProps);\n }\n }\n else {\n nextVNode.children = lastInput;\n }\n}\nfunction patchText(lastVNode, nextVNode) {\n var nextText = nextVNode.children;\n var dom = (nextVNode.dom = lastVNode.dom);\n if (nextText !== lastVNode.children) {\n dom.nodeValue = nextText;\n }\n}\nfunction patchNonKeyedChildren(lastChildren, nextChildren, dom, context, isSVG, lastChildrenLength, nextChildrenLength, nextNode, lifecycle) {\n var commonLength = lastChildrenLength > nextChildrenLength ? nextChildrenLength : lastChildrenLength;\n var i = 0;\n var nextChild;\n var lastChild;\n for (; i < commonLength; ++i) {\n nextChild = nextChildren[i];\n lastChild = lastChildren[i];\n if (nextChild.flags & 16384 /* InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n patch(lastChild, nextChild, dom, context, isSVG, nextNode, lifecycle);\n lastChildren[i] = nextChild;\n }\n if (lastChildrenLength < nextChildrenLength) {\n for (i = commonLength; i < nextChildrenLength; ++i) {\n nextChild = nextChildren[i];\n if (nextChild.flags & 16384 /* InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n mount(nextChild, dom, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (lastChildrenLength > nextChildrenLength) {\n for (i = commonLength; i < lastChildrenLength; ++i) {\n remove(lastChildren[i], dom);\n }\n }\n}\nfunction patchKeyedChildren(a, b, dom, context, isSVG, aLength, bLength, outerEdge, parentVNode, lifecycle) {\n var aEnd = aLength - 1;\n var bEnd = bLength - 1;\n var j = 0;\n var aNode = a[j];\n var bNode = b[j];\n var nextPos;\n var nextNode;\n // Step 1\n // tslint:disable-next-line\n outer: {\n // Sync nodes with the same key at the beginning.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n a[j] = bNode;\n ++j;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[j];\n bNode = b[j];\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n // Sync nodes with the same key at the end.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* InUse */) {\n b[bEnd] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n a[aEnd] = bNode;\n aEnd--;\n bEnd--;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n }\n }\n if (j > aEnd) {\n if (j <= bEnd) {\n nextPos = bEnd + 1;\n nextNode = nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge;\n while (j <= bEnd) {\n bNode = b[j];\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n ++j;\n mount(bNode, dom, context, isSVG, nextNode, lifecycle);\n }\n }\n }\n else if (j > bEnd) {\n while (j <= aEnd) {\n remove(a[j++], dom);\n }\n }\n else {\n patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle);\n }\n}\nfunction patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle) {\n var aNode;\n var bNode;\n var nextPos;\n var i = 0;\n var aStart = j;\n var bStart = j;\n var aLeft = aEnd - j + 1;\n var bLeft = bEnd - j + 1;\n var sources = new Int32Array(bLeft + 1);\n // Keep track if its possible to remove whole DOM using textContent = '';\n var canRemoveWholeContent = aLeft === aLength;\n var moved = false;\n var pos = 0;\n var patched = 0;\n // When sizes are small, just loop them through\n if (bLength < 4 || (aLeft | bLeft) < 32) {\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n for (j = bStart; j <= bEnd; j++) {\n bNode = b[j];\n if (aNode.key === bNode.key) {\n sources[j - bStart] = i + 1;\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (aStart < i) {\n remove(a[aStart++], dom);\n }\n }\n if (pos > j) {\n moved = true;\n }\n else {\n pos = j;\n }\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n ++patched;\n break;\n }\n }\n if (!canRemoveWholeContent && j > bEnd) {\n remove(aNode, dom);\n }\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n }\n else {\n var keyIndex = {};\n // Map keys by their index\n for (i = bStart; i <= bEnd; ++i) {\n keyIndex[b[i].key] = i;\n }\n // Try to patch same keys\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n j = keyIndex[aNode.key];\n if (j !== void 0) {\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (i > aStart) {\n remove(a[aStart++], dom);\n }\n }\n sources[j - bStart] = i + 1;\n if (pos > j) {\n moved = true;\n }\n else {\n pos = j;\n }\n bNode = b[j];\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n ++patched;\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n }\n // fast-path: if nothing patched remove all old and add all new\n if (canRemoveWholeContent) {\n removeAllChildren(dom, parentVNode, a);\n mountArrayChildren(b, dom, context, isSVG, outerEdge, lifecycle);\n }\n else if (moved) {\n var seq = lis_algorithm(sources);\n j = seq.length - 1;\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge, lifecycle);\n }\n else if (j < 0 || i !== seq[j]) {\n pos = i + bStart;\n bNode = b[pos];\n nextPos = pos + 1;\n moveVNodeDOM(bNode, dom, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge);\n }\n else {\n j--;\n }\n }\n }\n else if (patched !== bLeft) {\n // when patched count doesn't match b length we need to insert those new ones\n // loop backwards so we can use insertBefore\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge, lifecycle);\n }\n }\n }\n}\nvar result;\nvar p;\nvar maxLen = 0;\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction lis_algorithm(arr) {\n var arrI = 0;\n var i = 0;\n var j = 0;\n var k = 0;\n var u = 0;\n var v = 0;\n var c = 0;\n var len = arr.length;\n if (len > maxLen) {\n maxLen = len;\n result = new Int32Array(len);\n p = new Int32Array(len);\n }\n for (; i < len; ++i) {\n arrI = arr[i];\n if (arrI !== 0) {\n j = result[k];\n if (arr[j] < arrI) {\n p[i] = j;\n result[++k] = i;\n continue;\n }\n u = 0;\n v = k;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = k + 1;\n var seq = new Int32Array(u);\n v = result[u - 1];\n while (u-- > 0) {\n seq[u] = v;\n v = p[v];\n result[u] = 0;\n }\n return seq;\n}\n\nvar hasDocumentAvailable = typeof document !== 'undefined';\nif (hasDocumentAvailable) {\n /*\n * Defining $EV and $V properties on Node.prototype\n * fixes v8 \"wrong map\" de-optimization\n */\n if (window.Node) {\n Node.prototype.$EV = null;\n Node.prototype.$V = null;\n }\n}\nfunction __render(input, parentDOM, callback, context) {\n var lifecycle = [];\n var rootInput = parentDOM.$V;\n renderCheck.v = true;\n if (isNullOrUndef(rootInput)) {\n if (!isNullOrUndef(input)) {\n if (input.flags & 16384 /* InUse */) {\n input = directClone(input);\n }\n mount(input, parentDOM, context, false, null, lifecycle);\n parentDOM.$V = input;\n rootInput = input;\n }\n }\n else {\n if (isNullOrUndef(input)) {\n remove(rootInput, parentDOM);\n parentDOM.$V = null;\n }\n else {\n if (input.flags & 16384 /* InUse */) {\n input = directClone(input);\n }\n patch(rootInput, input, parentDOM, context, false, null, lifecycle);\n rootInput = parentDOM.$V = input;\n }\n }\n callAll(lifecycle);\n renderCheck.v = false;\n if (isFunction(callback)) {\n callback();\n }\n if (isFunction(options.renderComplete)) {\n options.renderComplete(rootInput, parentDOM);\n }\n}\nfunction render(input, parentDOM, callback, context) {\n if ( callback === void 0 ) callback = null;\n if ( context === void 0 ) context = EMPTY_OBJ;\n\n __render(input, parentDOM, callback, context);\n}\nfunction createRenderer(parentDOM) {\n return function renderer(lastInput, nextInput, callback, context) {\n if (!parentDOM) {\n parentDOM = lastInput;\n }\n render(nextInput, parentDOM, callback, context);\n };\n}\n\nvar QUEUE = [];\nvar nextTick = typeof Promise !== 'undefined'\n ? Promise.resolve().then.bind(Promise.resolve())\n : function (a) {\n window.setTimeout(a, 0);\n };\nvar microTaskPending = false;\nfunction queueStateChanges(component, newState, callback, force) {\n var pending = component.$PS;\n if (isFunction(newState)) {\n newState = newState(pending ? combineFrom(component.state, pending) : component.state, component.props, component.context);\n }\n if (isNullOrUndef(pending)) {\n component.$PS = newState;\n }\n else {\n for (var stateKey in newState) {\n pending[stateKey] = newState[stateKey];\n }\n }\n if (!component.$BR) {\n if (!renderCheck.v) {\n if (QUEUE.length === 0) {\n applyState(component, force);\n if (isFunction(callback)) {\n callback.call(component);\n }\n return;\n }\n }\n if (QUEUE.indexOf(component) === -1) {\n QUEUE.push(component);\n }\n if (force) {\n component.$F = true;\n }\n if (!microTaskPending) {\n microTaskPending = true;\n nextTick(rerender);\n }\n if (isFunction(callback)) {\n var QU = component.$QU;\n if (!QU) {\n QU = component.$QU = [];\n }\n QU.push(callback);\n }\n }\n else if (isFunction(callback)) {\n component.$L.push(callback.bind(component));\n }\n}\nfunction callSetStateCallbacks(component) {\n var queue = component.$QU;\n for (var i = 0; i < queue.length; ++i) {\n queue[i].call(component);\n }\n component.$QU = null;\n}\nfunction rerender() {\n var component;\n microTaskPending = false;\n while ((component = QUEUE.shift())) {\n if (!component.$UN) {\n var force = component.$F;\n component.$F = false;\n applyState(component, force);\n if (component.$QU) {\n callSetStateCallbacks(component);\n }\n }\n }\n}\nfunction applyState(component, force) {\n if (force || !component.$BR) {\n var pendingState = component.$PS;\n component.$PS = null;\n var lifecycle = [];\n renderCheck.v = true;\n updateClassComponent(component, combineFrom(component.state, pendingState), component.props, findDOMfromVNode(component.$LI, true).parentNode, component.context, component.$SVG, force, null, lifecycle);\n callAll(lifecycle);\n renderCheck.v = false;\n }\n else {\n component.state = component.$PS;\n component.$PS = null;\n }\n}\nvar Component = function Component(props, context) {\n // Public\n this.state = null;\n // Internal properties\n this.$BR = false; // BLOCK RENDER\n this.$BS = true; // BLOCK STATE\n this.$PS = null; // PENDING STATE (PARTIAL or FULL)\n this.$LI = null; // LAST INPUT\n this.$UN = false; // UNMOUNTED\n this.$CX = null; // CHILDCONTEXT\n this.$QU = null; // QUEUE\n this.$N = false; // Uses new lifecycle API Flag\n this.$L = null; // Current lifecycle of this component\n this.$SVG = false; // Flag to keep track if component is inside SVG tree\n this.$F = false; // Force update flag\n this.props = props || EMPTY_OBJ;\n this.context = context || EMPTY_OBJ; // context should not be mutable\n};\nComponent.prototype.forceUpdate = function forceUpdate (callback) {\n if (this.$UN) {\n return;\n }\n // Do not allow double render during force update\n queueStateChanges(this, {}, callback, true);\n};\nComponent.prototype.setState = function setState (newState, callback) {\n if (this.$UN) {\n return;\n }\n if (!this.$BS) {\n queueStateChanges(this, newState, callback, false);\n }\n};\nComponent.prototype.render = function render (_nextProps, _nextState, _nextContext) {\n return null;\n};\n\nvar version = \"7.4.11\";\n\nexport { Component, EMPTY_OBJ, Fragment, createClassComponentInstance as _CI, normalizeRoot as _HI, mount as _M, mountClassComponentCallbacks as _MCCC, mountElement as _ME, mountFunctionalComponentCallbacks as _MFCC, mountProps as _MP, mountRef as _MR, renderFunctionalComponent as _RFC, __render, createComponentVNode, createFragment, createPortal, createRef, createRenderer, createTextVNode, createVNode, directClone, findDOMfromVNode, forwardRef, getFlagsForElementVnode, linkEvent, normalizeProps, options, render, rerender, version };\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initBaseComponent = exports.initDxComponent = void 0;\nvar vue_1 = require(\"vue\");\nvar callbacks_1 = __importDefault(require(\"devextreme/core/utils/callbacks\"));\nvar events_1 = require(\"devextreme/events\");\nvar vue_helper_1 = require(\"./vue-helper\");\nvar children_processing_1 = require(\"./children-processing\");\nvar configuration_1 = __importStar(require(\"./configuration\"));\nvar configuration_component_1 = require(\"./configuration-component\");\nvar constants_1 = require(\"./constants\");\nvar helpers_1 = require(\"./helpers\");\nvar templates_manager_1 = require(\"./templates-manager\");\nvar includeAttrs = [\"id\", \"class\", \"style\"];\nfunction getAttrs(attrs) {\n var attributes = {};\n includeAttrs.forEach(function (attr) {\n var attrValue = attrs[attr];\n if (attrValue) {\n attributes[attr] = attrValue;\n }\n });\n return attributes;\n}\nfunction initBaseComponent() {\n return vue_1.defineComponent({\n inheritAttrs: false,\n data: function () {\n return {\n eventBus: callbacks_1.default()\n };\n },\n provide: function () {\n return {\n eventBus: this.eventBus\n };\n },\n render: function () {\n var thisComponent = this;\n var children = [];\n if (thisComponent.$_config.cleanNested) {\n thisComponent.$_config.cleanNested();\n }\n children_processing_1.pullAllChildren(vue_helper_1.defaultSlots(this), children, thisComponent.$_config);\n this.$_processChildren(children);\n return vue_1.h(\"div\", __assign({}, getAttrs(this.$attrs)), children);\n },\n beforeUpdate: function () {\n var thisComponent = this;\n thisComponent.$_config.setPrevNestedOptions(thisComponent.$_config.getNestedOptionValues());\n },\n updated: function () {\n var thisComponent = this;\n var nodes = cleanWidgetNode(this.$el);\n vue_helper_1.getChildren(thisComponent).forEach(function (child) {\n configuration_component_1.initOptionChangedFunc(child.$_config, child.type.props || {}, vue_helper_1.getComponentInstance(child), child.$_innerChanges);\n });\n thisComponent.$_templatesManager.discover();\n thisComponent.$_instance.beginUpdate();\n if (thisComponent.$_templatesManager.isDirty) {\n thisComponent.$_instance.option(\"integrationOptions.templates\", thisComponent.$_templatesManager.templates);\n var props = thisComponent.$.vnode.props;\n for (var _i = 0, _a = Object.keys(thisComponent.$_templatesManager.templates); _i < _a.length; _i++) {\n var name_1 = _a[_i];\n thisComponent.$_instance.option(helpers_1.getTemplatePropName(props, name_1), name_1);\n }\n thisComponent.$_templatesManager.resetDirtyFlag();\n }\n for (var _b = 0, _c = Object.keys(thisComponent.$_pendingOptions); _b < _c.length; _b++) {\n var name_2 = _c[_b];\n thisComponent.$_instance.option(name_2, thisComponent.$_pendingOptions[name_2]);\n }\n thisComponent.$_pendingOptions = {};\n this.$_applyConfigurationChanges();\n thisComponent.$_instance.endUpdate();\n restoreNodes(this.$el, nodes);\n this.eventBus.fire();\n },\n beforeUnmount: function () {\n var thisComponent = this;\n var instance = thisComponent.$_instance;\n if (instance) {\n events_1.triggerHandler(this.$el, constants_1.DX_REMOVE_EVENT);\n instance.dispose();\n }\n },\n created: function () {\n var thisComponent = this;\n var props = vue_helper_1.getComponentProps(this);\n thisComponent.$_config = new configuration_1.default(function (n, v) {\n if (Array.isArray(v)) {\n thisComponent.$_instance.option(n, v);\n }\n else {\n thisComponent.$_pendingOptions[n === vue_helper_1.VMODEL_NAME ? \"value\" : n] = v;\n }\n }, null, props && __assign({}, props), thisComponent.$_expectedChildren);\n thisComponent.$_innerChanges = {};\n thisComponent.$_config.init(this.$props && Object.keys(this.$props));\n },\n methods: {\n $_applyConfigurationChanges: function () {\n var thisComponent = this;\n thisComponent.$_config.componentsCountChanged.forEach(function (_a) {\n var optionPath = _a.optionPath, isCollection = _a.isCollection, removed = _a.removed;\n var options = thisComponent.$_config.getNestedOptionValues();\n if (!isCollection && removed) {\n thisComponent.$_instance.resetOption(optionPath);\n }\n else {\n thisComponent.$_instance.option(optionPath, helpers_1.getOptionValue(options, optionPath));\n }\n });\n thisComponent.$_config.cleanComponentsCountChanged();\n },\n $_createWidget: function (element) {\n var thisComponent = this;\n thisComponent.$_pendingOptions = {};\n thisComponent.$_templatesManager = new templates_manager_1.TemplatesManager(this);\n var config = thisComponent.$_config;\n if (config.initialValues.hasOwnProperty(vue_helper_1.VMODEL_NAME)) {\n config.initialValues.value = vue_helper_1.getVModelValue(config.initialValues);\n }\n var options = __assign(__assign(__assign(__assign({ templatesRenderAsynchronously: thisComponent.$_hasAsyncTemplate }, vue_helper_1.getComponentProps(thisComponent)), config.initialValues), config.getNestedOptionValues()), this.$_getIntegrationOptions());\n var instance = new thisComponent.$_WidgetClass(element, options);\n thisComponent.$_instance = instance;\n instance.on(\"optionChanged\", function (args) { return config.onOptionChanged(args); });\n configuration_1.setEmitOptionChangedFunc(config, thisComponent, thisComponent.$_innerChanges);\n configuration_1.bindOptionWatchers(config, thisComponent, thisComponent.$_innerChanges);\n this.$_createEmitters(instance);\n },\n $_getIntegrationOptions: function () {\n var thisComponent = this;\n var result = __assign({ integrationOptions: {\n watchMethod: this.$_getWatchMethod(),\n } }, this.$_getExtraIntegrationOptions());\n if (thisComponent.$_templatesManager.isDirty) {\n var templates = thisComponent.$_templatesManager.templates;\n result.integrationOptions.templates = templates;\n var props = thisComponent.$.vnode.props;\n for (var _i = 0, _a = Object.keys(templates); _i < _a.length; _i++) {\n var name_3 = _a[_i];\n result[helpers_1.getTemplatePropName(props, name_3)] = name_3;\n }\n thisComponent.$_templatesManager.resetDirtyFlag();\n }\n return result;\n },\n $_getWatchMethod: function () {\n var _this = this;\n return function (valueGetter, valueChangeCallback, options) {\n options = options || {};\n if (!options.skipImmediate) {\n valueChangeCallback(valueGetter());\n }\n return _this.$watch(function () {\n return valueGetter();\n }, function (newValue, oldValue) {\n if (helpers_1.toComparable(oldValue) !== helpers_1.toComparable(newValue) || options.deep) {\n valueChangeCallback(newValue);\n }\n }, {\n deep: options.deep\n });\n };\n },\n $_getExtraIntegrationOptions: function () {\n return {};\n },\n $_processChildren: function (_children) {\n return;\n },\n $_createEmitters: function (instance) {\n var _this = this;\n if (this.$attrs) {\n Object.keys(this.$attrs).forEach(function (listenerName) {\n var eventName = helpers_1.camelize(listenerName);\n instance.on(eventName, function (e) {\n _this.$emit(listenerName, e);\n });\n });\n }\n }\n }\n });\n}\nexports.initBaseComponent = initBaseComponent;\nfunction cleanWidgetNode(node) {\n var removedNodes = [];\n helpers_1.forEachChildNode(node, function (childNode) {\n var parent = childNode.parentNode;\n var isExtension = childNode.hasAttribute && childNode.hasAttribute(\"isExtension\");\n if ((childNode.nodeName === \"#comment\" || isExtension) && parent) {\n removedNodes.push(childNode);\n parent.removeChild(childNode);\n }\n });\n return removedNodes;\n}\nfunction restoreNodes(el, nodes) {\n nodes.forEach(function (node) {\n el.appendChild(node);\n });\n}\nfunction initDxComponent() {\n return vue_1.defineComponent({\n extends: initBaseComponent(),\n methods: {\n $_getExtraIntegrationOptions: function () {\n return {\n onInitializing: function () {\n this.beginUpdate();\n }\n };\n },\n $_processChildren: function (children) {\n children.forEach(function (childNode) {\n if (!childNode || typeof childNode !== \"object\") {\n return;\n }\n childNode.$_hasOwner = true;\n });\n },\n },\n mounted: function () {\n var _this = this;\n var nodes = cleanWidgetNode(this.$el);\n var thisComponent = this;\n this.$_createWidget(this.$el);\n thisComponent.$_instance.endUpdate();\n restoreNodes(this.$el, nodes);\n if (this.$slots && this.$slots.default) {\n vue_helper_1.getChildren(thisComponent).forEach(function (child) {\n var childExtenton = child;\n if (childExtenton && childExtenton.$_isExtension) {\n childExtenton.$_attachTo(_this.$el);\n }\n });\n }\n }\n });\n}\nexports.initDxComponent = initDxComponent;\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInnerChanges = exports.getConfig = exports.initOptionChangedFunc = exports.DxConfiguration = void 0;\nvar VueType = __importStar(require(\"vue\"));\nvar Vue = VueType.default || VueType;\nvar configuration_1 = require(\"./configuration\");\nfunction getConfig(vueInstance) {\n if (!vueInstance.$vnode) {\n return;\n }\n var componentOptions = vueInstance.$vnode.componentOptions;\n return componentOptions && componentOptions.$_config;\n}\nexports.getConfig = getConfig;\nfunction getInnerChanges(vueInstance) {\n if (!vueInstance.$vnode) {\n return;\n }\n var componentOptions = vueInstance.$vnode.componentOptions;\n return componentOptions && componentOptions.$_innerChanges;\n}\nexports.getInnerChanges = getInnerChanges;\nfunction initOptionChangedFunc(config, vueInstance, innerChanges) {\n if (!config) {\n return;\n }\n config.init(Object.keys(vueInstance.$props));\n configuration_1.setEmitOptionChangedFunc(config, vueInstance, innerChanges);\n}\nexports.initOptionChangedFunc = initOptionChangedFunc;\nfunction getComponentInfo(_a, removed) {\n var name = _a.name, isCollectionItem = _a.isCollectionItem, ownerConfig = _a.ownerConfig;\n var parentPath = ownerConfig && ownerConfig.fullPath;\n var optionPath = name && parentPath ? parentPath + \".\" + name : name || \"\";\n return {\n optionPath: optionPath,\n isCollection: isCollectionItem,\n removed: removed\n };\n}\nvar DxConfiguration = function () { return Vue.extend({\n beforeMount: function () {\n var config = getConfig(this);\n var innerChanges = getInnerChanges(this);\n initOptionChangedFunc(config, this, innerChanges);\n configuration_1.bindOptionWatchers(config, this, innerChanges);\n },\n mounted: function () {\n if (this.$parent.$_instance) {\n this.$parent.$_config.componentsCountChanged\n .push(getComponentInfo(getConfig(this)));\n }\n },\n beforeDestroy: function () {\n this.$parent.$_config.componentsCountChanged\n .push(getComponentInfo(getConfig(this), true));\n },\n render: function (createElement) {\n return createElement();\n }\n}); };\nexports.DxConfiguration = DxConfiguration;\n","/**\r\n * DevExtreme (esm/events/remove.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../core/renderer\";\r\nimport {\r\n beforeCleanData\r\n} from \"../core/element_data\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nexport var removeEvent = \"dxremove\";\r\nvar eventPropName = \"dxRemoveEvent\";\r\nbeforeCleanData((function(elements) {\r\n elements = [].slice.call(elements);\r\n for (var i = 0; i < elements.length; i++) {\r\n var $element = $(elements[i]);\r\n if ($element.prop(eventPropName)) {\r\n $element[0][eventPropName] = null;\r\n eventsEngine.triggerHandler($element, removeEvent)\r\n }\r\n }\r\n}));\r\nregisterEvent(removeEvent, {\r\n noBubble: true,\r\n setup: function(element) {\r\n $(element).prop(eventPropName, true)\r\n }\r\n});\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DX_REMOVE_EVENT = exports.DX_TEMPLATE_WRAPPER_CLASS = void 0;\nvar DX_TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\nexports.DX_TEMPLATE_WRAPPER_CLASS = DX_TEMPLATE_WRAPPER_CLASS;\nvar DX_REMOVE_EVENT = \"dxremove\";\nexports.DX_REMOVE_EVENT = DX_REMOVE_EVENT;\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getConfigurationOptions = exports.setVModel = exports.getVModelValue = exports.getNodeTypeOfComponent = exports.getNodeOptions = exports.saveComponentInstance = exports.usedConfigurationProps = exports.getComponentProps = exports.mount = exports.defaultSlots = exports.declaredTemplates = exports.configurationTemplate = exports.configurationDefaultTemplate = exports.configurationChildren = exports.getNormalizedProps = exports.getComponentInstance = exports.getComponentInfo = exports.getChildren = exports.VMODEL_NAME = void 0;\nvar vue_1 = require(\"vue\");\nvar helpers_1 = require(\"./helpers\");\nvar children_processing_1 = require(\"./children-processing\");\nexports.VMODEL_NAME = \"modelValue\";\nfunction getChildren(component) {\n if (!hasChildren(component) || !component.$_config) {\n return [];\n }\n var children = component.$.subTree && component.$.subTree.children;\n if (!Array.isArray(children)) {\n return [];\n }\n return children.filter(function (child) {\n if (!children_processing_1.isFragment(child)) {\n return child;\n }\n return;\n });\n}\nexports.getChildren = getChildren;\nfunction getComponentInfo(component) {\n return getConfigurationOptions(component);\n}\nexports.getComponentInfo = getComponentInfo;\nfunction getComponentInstance(component) {\n return component.type && component.type.$_componentInstance;\n}\nexports.getComponentInstance = getComponentInstance;\nfunction getNormalizedProps(props) {\n var result = {};\n for (var propName in props) {\n if (props.hasOwnProperty(propName)) {\n result[helpers_1.camelize(propName)] = props[propName];\n }\n }\n return result;\n}\nexports.getNormalizedProps = getNormalizedProps;\nfunction configurationChildren(component) {\n if (!component.children || !component.children.default) {\n return [];\n }\n return findConfigurationComponents(component.children.default());\n}\nexports.configurationChildren = configurationChildren;\nfunction configurationDefaultTemplate(node) {\n if (!node.children || node.children === \"object\" || !node.children.default) {\n return;\n }\n return hasInlineTemplate(node.children.default()) ? node.children.default : undefined;\n}\nexports.configurationDefaultTemplate = configurationDefaultTemplate;\nfunction configurationTemplate(node) {\n return configurationDefaultTemplate(node);\n}\nexports.configurationTemplate = configurationTemplate;\nfunction declaredTemplates(component) {\n return component.$slots;\n}\nexports.declaredTemplates = declaredTemplates;\nfunction defaultSlots(component) {\n var templates = declaredTemplates(component);\n if (!templates.default) {\n return [];\n }\n return templates.default();\n}\nexports.defaultSlots = defaultSlots;\nfunction mount(options, parent, el) {\n var template = vue_1.createApp(options);\n template.provide(\"eventBus\", parent.eventBus);\n setAppContext(template, parent);\n return template.mount(el);\n}\nexports.mount = mount;\nfunction getComponentProps(component) {\n var props = component.$.vnode.props || {};\n return getNormalizedProps(props);\n}\nexports.getComponentProps = getComponentProps;\nfunction usedConfigurationProps(node) {\n return node.props;\n}\nexports.usedConfigurationProps = usedConfigurationProps;\nfunction saveComponentInstance(component) {\n var nodeOptions = getNodeTypeOfComponent(component);\n if (nodeOptions) {\n nodeOptions.$_componentInstance = component;\n }\n}\nexports.saveComponentInstance = saveComponentInstance;\nfunction getNodeOptions(component) {\n if (component.$) {\n return component.$.vnode;\n }\n return component;\n}\nexports.getNodeOptions = getNodeOptions;\nfunction getNodeTypeOfComponent(component) {\n return component.$.vnode.type;\n}\nexports.getNodeTypeOfComponent = getNodeTypeOfComponent;\nfunction getVModelValue(options) {\n return options[exports.VMODEL_NAME];\n}\nexports.getVModelValue = getVModelValue;\nfunction setVModel(config) {\n var _a;\n var eventName = \"update:\" + exports.VMODEL_NAME;\n config.model.prop = exports.VMODEL_NAME;\n config.model.event = eventName;\n config.props.modelValue = {};\n config.emits = __assign(__assign({}, config.emits), (_a = {}, _a[\"\" + eventName] = null, _a));\n}\nexports.setVModel = setVModel;\nfunction setCustomPluginsData(appContext, parentAppContext) {\n for (var prop in parentAppContext) {\n if (!appContext.hasOwnProperty(prop) && parentAppContext.hasOwnProperty(prop)) {\n appContext[prop] = parentAppContext[prop];\n }\n }\n}\nfunction setAppContext(template, parent) {\n template._context.components = Object.assign(parent.$.appContext.components, template._context.components);\n Object.setPrototypeOf(template._context.provides, Object.getPrototypeOf(parent.$.provides));\n Object.assign(template._context.provides, parent.$.appContext.provides);\n template._context.config = parent.$.appContext.config;\n template._context.directives = parent.$.appContext.directives;\n template._context.mixins = parent.$.appContext.mixins;\n setCustomPluginsData(template._context.app, parent.$.appContext.app);\n}\nfunction findConfigurationComponents(children) {\n return children.filter(function (child) {\n if (children_processing_1.isFragment(child)) {\n return findConfigurationComponents(child.children || []);\n }\n var childType = child.type;\n if (childType && typeof childType === \"object\" && childType.$_optionName) {\n delete child.$_config;\n delete child.$_innerChanges;\n return child;\n }\n return;\n });\n}\nfunction hasInlineTemplate(children) {\n var hasTemplate = false;\n children.forEach(function (child) {\n if (!isConfiguration(child) && !children_processing_1.isFragment(child) && !isComment(child.type)) {\n hasTemplate = true;\n }\n });\n return hasTemplate;\n}\nfunction isComment(nodeType) {\n var type = typeof nodeType === \"symbol\" ? nodeType.toString() : nodeType;\n return type === \"Symbol(Comment)\";\n}\nfunction isConfiguration(child) {\n return child.type && typeof child.type === \"object\" && child.type.$_optionName;\n}\nfunction getConfigurationOptions(node) {\n return node.type;\n}\nexports.getConfigurationOptions = getConfigurationOptions;\nfunction hasChildren(component) {\n return component.$.vnode && component.$.vnode.children && component.$.vnode.children.default;\n}\n","/**\r\n * DevExtreme (esm/ui/widget/swatch_container.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport {\r\n value\r\n} from \"../../core/utils/view_port\";\r\nvar SWATCH_CONTAINER_CLASS_PREFIX = \"dx-swatch-\";\r\nvar getSwatchContainer = element => {\r\n var $element = $(element);\r\n var swatchContainer = $element.closest('[class^=\"'.concat(SWATCH_CONTAINER_CLASS_PREFIX, '\"], [class*=\" ').concat(SWATCH_CONTAINER_CLASS_PREFIX, '\"]'));\r\n var viewport = value();\r\n if (!swatchContainer.length) {\r\n return viewport\r\n }\r\n var swatchClassRegex = new RegExp(\"(\\\\s|^)(\".concat(SWATCH_CONTAINER_CLASS_PREFIX, \".*?)(\\\\s|$)\"));\r\n var swatchClass = swatchContainer[0].className.match(swatchClassRegex)[2];\r\n var viewportSwatchContainer = viewport.children(\".\" + swatchClass);\r\n if (!viewportSwatchContainer.length) {\r\n viewportSwatchContainer = $(\"
\").addClass(swatchClass).appendTo(viewport)\r\n }\r\n return viewportSwatchContainer\r\n};\r\nexport default {\r\n getSwatchContainer: getSwatchContainer\r\n};\r\n","/**\r\n * DevExtreme (esm/events/utils/event_nodes_disposing.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport eventsEngine from \"../core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../remove\";\r\n\r\nfunction nodesByEvent(event) {\r\n return event && [event.target, event.delegateTarget, event.relatedTarget, event.currentTarget].filter(node => !!node)\r\n}\r\nexport var subscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.one(nodesByEvent(event), removeEvent, callback)\r\n};\r\nexport var unsubscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.off(nodesByEvent(event), removeEvent, callback)\r\n};\r\n","/**\r\n * DevExtreme (esm/events/click.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n resetActiveElement,\r\n contains,\r\n closestCommonParent\r\n} from \"../core/utils/dom\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../animation/frame\";\r\nimport {\r\n addNamespace,\r\n fireEvent,\r\n eventDelta,\r\n eventData\r\n} from \"./utils/index\";\r\nimport {\r\n subscribeNodesDisposing,\r\n unsubscribeNodesDisposing\r\n} from \"./utils/event_nodes_disposing\";\r\nimport pointerEvents from \"./pointer\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../core/utils/version\";\r\nvar CLICK_EVENT_NAME = \"dxclick\";\r\nvar TOUCH_BOUNDARY = 10;\r\nvar abs = Math.abs;\r\nvar isInput = function(element) {\r\n return $(element).is(\"input, textarea, select, button ,:focus, :focus *\")\r\n};\r\nvar misc = {\r\n requestAnimationFrame: requestAnimationFrame,\r\n cancelAnimationFrame: cancelAnimationFrame\r\n};\r\nvar ClickEmitter = Emitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this._makeElementClickable($(element))\r\n },\r\n _makeElementClickable: function($element) {\r\n if (!$element.attr(\"onclick\")) {\r\n $element.attr(\"onclick\", \"void(0)\")\r\n }\r\n },\r\n start: function(e) {\r\n this._blurPrevented = e.isDefaultPrevented();\r\n this._startTarget = e.target;\r\n this._startEventData = eventData(e)\r\n },\r\n end: function(e) {\r\n if (this._eventOutOfElement(e, this.getElement().get(0)) || e.type === pointerEvents.cancel) {\r\n this._cancel(e);\r\n return\r\n }\r\n if (!isInput(e.target) && !this._blurPrevented) {\r\n resetActiveElement()\r\n }\r\n this._accept(e);\r\n this._clickAnimationFrame = misc.requestAnimationFrame(function() {\r\n this._fireClickEvent(e)\r\n }.bind(this))\r\n },\r\n _eventOutOfElement: function(e, element) {\r\n var target = e.target;\r\n var targetChanged = !contains(element, target) && element !== target;\r\n var gestureDelta = eventDelta(eventData(e), this._startEventData);\r\n var boundsExceeded = abs(gestureDelta.x) > TOUCH_BOUNDARY || abs(gestureDelta.y) > TOUCH_BOUNDARY;\r\n return targetChanged || boundsExceeded\r\n },\r\n _fireClickEvent: function(e) {\r\n this._fireEvent(CLICK_EVENT_NAME, e, {\r\n target: closestCommonParent(this._startTarget, e.target)\r\n })\r\n },\r\n dispose: function() {\r\n misc.cancelAnimationFrame(this._clickAnimationFrame)\r\n }\r\n});\r\nvar realDevice = devices.real();\r\nvar useNativeClick = realDevice.generic || realDevice.ios && compareVersions(realDevice.version, [9, 3]) >= 0 || realDevice.android && compareVersions(realDevice.version, [5]) >= 0;\r\n! function() {\r\n var isNativeClickEvent = function(target) {\r\n return useNativeClick || $(target).closest(\".dx-native-click\").length\r\n };\r\n var prevented = null;\r\n var lastFiredEvent = null;\r\n\r\n function onNodeRemove() {\r\n lastFiredEvent = null\r\n }\r\n var clickHandler = function(e) {\r\n var originalEvent = e.originalEvent;\r\n var eventAlreadyFired = lastFiredEvent === originalEvent || originalEvent && originalEvent.DXCLICK_FIRED;\r\n var leftButton = !e.which || 1 === e.which;\r\n if (leftButton && !prevented && isNativeClickEvent(e.target) && !eventAlreadyFired) {\r\n if (originalEvent) {\r\n originalEvent.DXCLICK_FIRED = true\r\n }\r\n unsubscribeNodesDisposing(lastFiredEvent, onNodeRemove);\r\n lastFiredEvent = originalEvent;\r\n subscribeNodesDisposing(lastFiredEvent, onNodeRemove);\r\n fireEvent({\r\n type: CLICK_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n }\r\n };\r\n ClickEmitter = ClickEmitter.inherit({\r\n _makeElementClickable: function($element) {\r\n if (!isNativeClickEvent($element)) {\r\n this.callBase($element)\r\n }\r\n eventsEngine.on($element, \"click\", clickHandler)\r\n },\r\n configure: function(data) {\r\n this.callBase(data);\r\n if (data.useNative) {\r\n this.getElement().addClass(\"dx-native-click\")\r\n }\r\n },\r\n start: function(e) {\r\n prevented = null;\r\n if (!isNativeClickEvent(e.target)) {\r\n this.callBase(e)\r\n }\r\n },\r\n end: function(e) {\r\n if (!isNativeClickEvent(e.target)) {\r\n this.callBase(e)\r\n }\r\n },\r\n cancel: function() {\r\n prevented = true\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n eventsEngine.off(this.getElement(), \"click\", clickHandler)\r\n }\r\n })\r\n}();\r\n! function() {\r\n var desktopDevice = devices.real().generic;\r\n if (!desktopDevice) {\r\n var startTarget = null;\r\n var blurPrevented = false;\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, \"NATIVE_CLICK_FIXER\"), (function(e) {\r\n startTarget = e.target;\r\n blurPrevented = e.isDefaultPrevented()\r\n }));\r\n eventsEngine.subscribeGlobal(document, addNamespace(\"click\", \"NATIVE_CLICK_FIXER\"), (function(e) {\r\n var $target = $(e.target);\r\n if (!blurPrevented && startTarget && !$target.is(startTarget) && !$(startTarget).is(\"label\") && isInput($target)) {\r\n resetActiveElement()\r\n }\r\n startTarget = null;\r\n blurPrevented = false\r\n }))\r\n }\r\n}();\r\nregisterEmitter({\r\n emitter: ClickEmitter,\r\n bubble: true,\r\n events: [CLICK_EVENT_NAME]\r\n});\r\nexport {\r\n CLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/data/store_helper.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport arrayQuery from \"./array_query\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"./utils\";\r\n\r\nfunction multiLevelGroup(query, groupInfo) {\r\n query = query.groupBy(groupInfo[0].selector);\r\n if (groupInfo.length > 1) {\r\n query = query.select((function(g) {\r\n return extend({}, g, {\r\n items: multiLevelGroup(arrayQuery(g.items), groupInfo.slice(1)).toArray()\r\n })\r\n }))\r\n }\r\n return query\r\n}\r\n\r\nfunction arrangeSortingInfo(groupInfo, sortInfo) {\r\n var filteredGroup = [];\r\n each(groupInfo, (function(_, group) {\r\n var collision = grep(sortInfo, (function(sort) {\r\n return group.selector === sort.selector\r\n }));\r\n if (collision.length < 1) {\r\n filteredGroup.push(group)\r\n }\r\n }));\r\n return filteredGroup.concat(sortInfo)\r\n}\r\n\r\nfunction queryByOptions(query, options, isCountQuery) {\r\n options = options || {};\r\n var filter = options.filter;\r\n if (filter) {\r\n query = query.filter(filter)\r\n }\r\n if (isCountQuery) {\r\n return query\r\n }\r\n var sort = options.sort;\r\n var select = options.select;\r\n var group = options.group;\r\n var skip = options.skip;\r\n var take = options.take;\r\n if (group) {\r\n group = normalizeSortingInfo(group);\r\n group.keepInitialKeyOrder = !!options.group.keepInitialKeyOrder\r\n }\r\n if (sort || group) {\r\n sort = normalizeSortingInfo(sort || []);\r\n if (group && !group.keepInitialKeyOrder) {\r\n sort = arrangeSortingInfo(group, sort)\r\n }\r\n each(sort, (function(index) {\r\n query = query[index ? \"thenBy\" : \"sortBy\"](this.selector, this.desc, this.compare)\r\n }))\r\n }\r\n if (select) {\r\n query = query.select(select)\r\n }\r\n if (group) {\r\n query = multiLevelGroup(query, group)\r\n }\r\n if (take || skip) {\r\n query = query.slice(skip || 0, take)\r\n }\r\n return query\r\n}\r\nexport default {\r\n multiLevelGroup: multiLevelGroup,\r\n arrangeSortingInfo: arrangeSortingInfo,\r\n queryByOptions: queryByOptions\r\n};\r\n","/**\r\n * DevExtreme (esm/core/resize_observer.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"./utils/window\";\r\nvar window = getWindow();\r\nvar ResizeObserverMock = {\r\n observe: noop,\r\n unobserve: noop,\r\n disconnect: noop\r\n};\r\nclass ResizeObserverSingleton {\r\n constructor() {\r\n if (!hasWindow() || !window.ResizeObserver) {\r\n return ResizeObserverMock\r\n }\r\n this._callbacksMap = new Map;\r\n this._observer = new window.ResizeObserver(entries => {\r\n entries.forEach(entry => {\r\n var _this$_callbacksMap$g;\r\n null === (_this$_callbacksMap$g = this._callbacksMap.get(entry.target)) || void 0 === _this$_callbacksMap$g ? void 0 : _this$_callbacksMap$g(entry)\r\n })\r\n })\r\n }\r\n observe(element, callback) {\r\n this._callbacksMap.set(element, callback);\r\n this._observer.observe(element)\r\n }\r\n unobserve(element) {\r\n this._callbacksMap.delete(element);\r\n this._observer.unobserve(element)\r\n }\r\n disconnect() {\r\n this._callbacksMap.clear();\r\n this._observer.disconnect()\r\n }\r\n}\r\nvar resizeObserverSingleton = new ResizeObserverSingleton;\r\nexport default resizeObserverSingleton;\r\n","/*!\n * devextreme-vue\n * Version: 21.2.5\n * Build date: Mon Jan 17 2022\n *\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInnerChanges = exports.getConfig = exports.initOptionChangedFunc = exports.initDxConfiguration = void 0;\nvar vue_1 = require(\"vue\");\nvar vue_helper_1 = require(\"./vue-helper\");\nvar configuration_1 = require(\"./configuration\");\nfunction getConfig(vueInstance) {\n var componentOptions = vue_helper_1.getNodeOptions(vueInstance);\n if (!componentOptions) {\n return;\n }\n return componentOptions.$_config || vueInstance.$_config;\n}\nexports.getConfig = getConfig;\nfunction getInnerChanges(vueInstance) {\n var componentOptions = vue_helper_1.getNodeOptions(vueInstance);\n if (!componentOptions) {\n return;\n }\n return componentOptions.$_innerChanges || vueInstance.$_innerChanges;\n}\nexports.getInnerChanges = getInnerChanges;\nfunction initOptionChangedFunc(config, props, vueInstance, innerChanges) {\n if (!config) {\n return;\n }\n config.init(Object.keys(props));\n if (vueInstance) {\n configuration_1.setEmitOptionChangedFunc(config, vueInstance, innerChanges);\n }\n}\nexports.initOptionChangedFunc = initOptionChangedFunc;\nfunction getComponentInfo(_a, removed) {\n var name = _a.name, isCollectionItem = _a.isCollectionItem, ownerConfig = _a.ownerConfig;\n var parentPath = ownerConfig && ownerConfig.fullPath;\n var optionPath = name && parentPath ? parentPath + \".\" + name : name || \"\";\n return {\n optionPath: optionPath,\n isCollection: isCollectionItem,\n removed: removed\n };\n}\nfunction initDxConfiguration() {\n return vue_1.defineComponent({\n updated: function () {\n vue_helper_1.saveComponentInstance(this);\n },\n beforeMount: function () {\n var thisComponent = this;\n var config = getConfig(thisComponent);\n var innerChanges = getInnerChanges(thisComponent);\n initOptionChangedFunc(config, vue_helper_1.getNodeTypeOfComponent(thisComponent).props, thisComponent, innerChanges);\n configuration_1.bindOptionWatchers(config, this, innerChanges);\n },\n mounted: function () {\n if (this.$parent.$_instance) {\n this.$parent.$_config.componentsCountChanged\n .push(getComponentInfo(getConfig(this)));\n }\n },\n beforeUnmount: function () {\n var config = getConfig(this);\n if (config) {\n this.$parent.$_config.componentsCountChanged\n .push(getComponentInfo(config, true));\n }\n },\n render: function () {\n return null;\n }\n });\n}\nexports.initDxConfiguration = initDxConfiguration;\n","/**\r\n * DevExtreme (esm/core/utils/array_compare.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport {\r\n isObject\r\n} from \"./type\";\r\nvar getKeyWrapper = function(item, getKey) {\r\n var key = getKey(item);\r\n if (isObject(key)) {\r\n try {\r\n return JSON.stringify(key)\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nvar getSameNewByOld = function(oldItem, newItems, newIndexByKey, getKey) {\r\n var key = getKeyWrapper(oldItem, getKey);\r\n return newItems[newIndexByKey[key]]\r\n};\r\nexport var isKeysEqual = function(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nexport var findChanges = function(oldItems, newItems, getKey, isItemEquals) {\r\n var oldIndexByKey = {};\r\n var newIndexByKey = {};\r\n var addedCount = 0;\r\n var removeCount = 0;\r\n var result = [];\r\n oldItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n oldIndexByKey[key] = index\r\n }));\r\n newItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n newIndexByKey[key] = index\r\n }));\r\n var itemCount = Math.max(oldItems.length, newItems.length);\r\n for (var index = 0; index < itemCount + addedCount; index++) {\r\n var newItem = newItems[index];\r\n var oldNextIndex = index - addedCount + removeCount;\r\n var nextOldItem = oldItems[oldNextIndex];\r\n var isRemoved = !newItem || nextOldItem && !getSameNewByOld(nextOldItem, newItems, newIndexByKey, getKey);\r\n if (isRemoved) {\r\n if (nextOldItem) {\r\n result.push({\r\n type: \"remove\",\r\n key: getKey(nextOldItem),\r\n index: index,\r\n oldItem: nextOldItem\r\n });\r\n removeCount++;\r\n index--\r\n }\r\n } else {\r\n var key = getKeyWrapper(newItem, getKey);\r\n var oldIndex = oldIndexByKey[key];\r\n var oldItem = oldItems[oldIndex];\r\n if (!oldItem) {\r\n addedCount++;\r\n result.push({\r\n type: \"insert\",\r\n data: newItem,\r\n index: index\r\n })\r\n } else if (oldIndex === oldNextIndex) {\r\n if (!isItemEquals(oldItem, newItem)) {\r\n result.push({\r\n type: \"update\",\r\n data: newItem,\r\n key: getKey(newItem),\r\n index: index,\r\n oldItem: oldItem\r\n })\r\n }\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.widget.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport $ from \"../../core/renderer\";\r\nimport Action from \"../../core/action\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n active,\r\n focus,\r\n hover,\r\n keyboard\r\n} from \"../../events/short\";\r\nimport {\r\n deferRender,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focusable as focusableSelector\r\n} from \"./selectors\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport \"../../events/click\";\r\nimport \"../../events/core/emitter.feedback\";\r\nimport \"../../events/hover\";\r\n\r\nfunction setAttribute(name, value, target) {\r\n name = \"role\" === name || \"id\" === name ? name : \"aria-\".concat(name);\r\n value = isDefined(value) ? value.toString() : null;\r\n target.attr(name, value)\r\n}\r\nvar Widget = DOMComponent.inherit({\r\n _feedbackHideTimeout: 400,\r\n _feedbackShowTimeout: 30,\r\n _supportedKeys: () => ({}),\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoveredElement: null,\r\n isActive: false,\r\n disabled: false,\r\n visible: true,\r\n hint: void 0,\r\n activeStateEnabled: false,\r\n onContentReady: null,\r\n hoverStateEnabled: false,\r\n focusStateEnabled: false,\r\n tabIndex: 0,\r\n accessKey: void 0,\r\n onFocusIn: null,\r\n onFocusOut: null,\r\n onKeyboardHandled: null,\r\n ignoreParentReadOnly: false,\r\n useResizeObserver: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var device = devices.real();\r\n var platform = device.platform;\r\n var version = device.version;\r\n return \"ios\" === platform && compareVersions(version, \"13.3\") <= 0 || \"android\" === platform && compareVersions(version, \"4.4.4\") <= 0\r\n },\r\n options: {\r\n useResizeObserver: false\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initContentReadyAction()\r\n },\r\n _innerWidgetOptionChanged: function(innerWidget, args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n innerWidget && innerWidget.option(options);\r\n this._options.cache(args.name, options)\r\n },\r\n _bindInnerWidgetOptions(innerWidget, optionsContainer) {\r\n var syncOptions = () => this._options.silent(optionsContainer, extend({}, innerWidget.option()));\r\n syncOptions();\r\n innerWidget.on(\"optionChanged\", syncOptions)\r\n },\r\n _getAriaTarget() {\r\n return this._focusTarget()\r\n },\r\n _initContentReadyAction() {\r\n this._contentReadyAction = this._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initMarkup() {\r\n var {\r\n disabled: disabled,\r\n visible: visible\r\n } = this.option();\r\n this.$element().addClass(\"dx-widget\");\r\n this._toggleDisabledState(disabled);\r\n this._toggleVisibility(visible);\r\n this._renderHint();\r\n this._isFocusable() && this._renderFocusTarget();\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._renderContent();\r\n this._renderFocusState();\r\n this._attachFeedbackEvents();\r\n this._attachHoverEvents();\r\n this._toggleIndependentState()\r\n },\r\n _renderHint() {\r\n var {\r\n hint: hint\r\n } = this.option();\r\n this.$element().attr(\"title\", hint || null)\r\n },\r\n _renderContent() {\r\n deferRender(() => !this._disposed ? this._renderContentImpl() : void 0).done(() => !this._disposed ? this._fireContentReadyAction() : void 0)\r\n },\r\n _renderContentImpl: noop,\r\n _fireContentReadyAction: deferRenderer((function() {\r\n return this._contentReadyAction()\r\n })),\r\n _dispose() {\r\n this._contentReadyAction = null;\r\n this._detachKeyboardEvents();\r\n this.callBase()\r\n },\r\n _resetActiveState() {\r\n this._toggleActiveState(this._eventBindingTarget(), false)\r\n },\r\n _clean() {\r\n this._cleanFocusState();\r\n this._resetActiveState();\r\n this.callBase();\r\n this.$element().empty()\r\n },\r\n _toggleVisibility(visible) {\r\n this.$element().toggleClass(\"dx-state-invisible\", !visible);\r\n this.setAria(\"hidden\", !visible || void 0)\r\n },\r\n _renderFocusState() {\r\n this._attachKeyboardEvents();\r\n if (this._isFocusable()) {\r\n this._renderFocusTarget();\r\n this._attachFocusEvents();\r\n this._renderAccessKey()\r\n }\r\n },\r\n _renderAccessKey() {\r\n var $el = this._focusTarget();\r\n var {\r\n accessKey: accessKey\r\n } = this.option();\r\n $el.attr(\"accesskey\", accessKey)\r\n },\r\n _isFocusable() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n disabled: disabled\r\n } = this.option();\r\n return focusStateEnabled && !disabled\r\n },\r\n _eventBindingTarget() {\r\n return this.$element()\r\n },\r\n _focusTarget() {\r\n return this._getActiveElement()\r\n },\r\n _getActiveElement() {\r\n var activeElement = this._eventBindingTarget();\r\n if (this._activeStateUnit) {\r\n return activeElement.find(this._activeStateUnit).not(\".dx-state-disabled\")\r\n }\r\n return activeElement\r\n },\r\n _renderFocusTarget() {\r\n var {\r\n tabIndex: tabIndex\r\n } = this.option();\r\n this._focusTarget().attr(\"tabIndex\", tabIndex)\r\n },\r\n _keyboardEventBindingTarget() {\r\n return this._eventBindingTarget()\r\n },\r\n _refreshFocusEvent() {\r\n this._detachFocusEvents();\r\n this._attachFocusEvents()\r\n },\r\n _focusEventTarget() {\r\n return this._focusTarget()\r\n },\r\n _focusInHandler(event) {\r\n if (!event.isDefaultPrevented()) {\r\n this._createActionByOption(\"onFocusIn\", {\r\n beforeExecute: () => this._updateFocusState(event, true),\r\n excludeValidators: [\"readOnly\"]\r\n })({\r\n event: event\r\n })\r\n }\r\n },\r\n _focusOutHandler(event) {\r\n if (!event.isDefaultPrevented()) {\r\n this._createActionByOption(\"onFocusOut\", {\r\n beforeExecute: () => this._updateFocusState(event, false),\r\n excludeValidators: [\"readOnly\", \"disabled\"]\r\n })({\r\n event: event\r\n })\r\n }\r\n },\r\n _updateFocusState(_ref, isFocused) {\r\n var {\r\n target: target\r\n } = _ref;\r\n if (-1 !== inArray(target, this._focusTarget())) {\r\n this._toggleFocusClass(isFocused, $(target))\r\n }\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n var $focusTarget = $element && $element.length ? $element : this._focusTarget();\r\n $focusTarget.toggleClass(\"dx-state-focused\", isFocused)\r\n },\r\n _hasFocusClass(element) {\r\n var $focusTarget = $(element || this._focusTarget());\r\n return $focusTarget.hasClass(\"dx-state-focused\")\r\n },\r\n _isFocused() {\r\n return this._hasFocusClass()\r\n },\r\n _getKeyboardListeners: () => [],\r\n _attachKeyboardEvents() {\r\n this._detachKeyboardEvents();\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n onKeyboardHandled: onKeyboardHandled\r\n } = this.option();\r\n var hasChildListeners = this._getKeyboardListeners().length;\r\n var hasKeyboardEventHandler = !!onKeyboardHandled;\r\n var shouldAttach = focusStateEnabled || hasChildListeners || hasKeyboardEventHandler;\r\n if (shouldAttach) {\r\n this._keyboardListenerId = keyboard.on(this._keyboardEventBindingTarget(), this._focusTarget(), opts => this._keyboardHandler(opts))\r\n }\r\n },\r\n _keyboardHandler(options, onlyChildProcessing) {\r\n if (!onlyChildProcessing) {\r\n var {\r\n originalEvent: originalEvent,\r\n keyName: keyName,\r\n which: which\r\n } = options;\r\n var keys = this._supportedKeys(originalEvent);\r\n var func = keys[keyName] || keys[which];\r\n if (void 0 !== func) {\r\n var handler = func.bind(this);\r\n var result = handler(originalEvent, options);\r\n if (!result) {\r\n return false\r\n }\r\n }\r\n }\r\n var keyboardListeners = this._getKeyboardListeners();\r\n var {\r\n onKeyboardHandled: onKeyboardHandled\r\n } = this.option();\r\n keyboardListeners.forEach(listener => listener && listener._keyboardHandler(options));\r\n onKeyboardHandled && onKeyboardHandled(options);\r\n return true\r\n },\r\n _refreshFocusState() {\r\n this._cleanFocusState();\r\n this._renderFocusState()\r\n },\r\n _cleanFocusState() {\r\n var $element = this._focusTarget();\r\n $element.removeAttr(\"tabIndex\");\r\n this._toggleFocusClass(false);\r\n this._detachFocusEvents();\r\n this._detachKeyboardEvents()\r\n },\r\n _detachKeyboardEvents() {\r\n keyboard.off(this._keyboardListenerId);\r\n this._keyboardListenerId = null\r\n },\r\n _attachHoverEvents() {\r\n var {\r\n hoverStateEnabled: hoverStateEnabled\r\n } = this.option();\r\n var selector = this._activeStateUnit;\r\n var $el = this._eventBindingTarget();\r\n hover.off($el, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n });\r\n if (hoverStateEnabled) {\r\n hover.on($el, new Action(_ref2 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref2;\r\n this._hoverStartHandler(event);\r\n this.option(\"hoveredElement\", $(element))\r\n }, {\r\n excludeValidators: [\"readOnly\"]\r\n }), event => {\r\n this.option(\"hoveredElement\", null);\r\n this._hoverEndHandler(event)\r\n }, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n },\r\n _attachFeedbackEvents() {\r\n var {\r\n activeStateEnabled: activeStateEnabled\r\n } = this.option();\r\n var selector = this._activeStateUnit;\r\n var $el = this._eventBindingTarget();\r\n active.off($el, {\r\n namespace: \"UIFeedback\",\r\n selector: selector\r\n });\r\n if (activeStateEnabled) {\r\n active.on($el, new Action(_ref3 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref3;\r\n return this._toggleActiveState($(element), true, event)\r\n }), new Action(_ref4 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref4;\r\n return this._toggleActiveState($(element), false, event)\r\n }, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }), {\r\n showTimeout: this._feedbackShowTimeout,\r\n hideTimeout: this._feedbackHideTimeout,\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n },\r\n _detachFocusEvents() {\r\n var $el = this._focusEventTarget();\r\n focus.off($el, {\r\n namespace: \"\".concat(this.NAME, \"Focus\")\r\n })\r\n },\r\n _attachFocusEvents() {\r\n var $el = this._focusEventTarget();\r\n focus.on($el, e => this._focusInHandler(e), e => this._focusOutHandler(e), {\r\n namespace: \"\".concat(this.NAME, \"Focus\"),\r\n isFocusable: (index, el) => $(el).is(focusableSelector)\r\n })\r\n },\r\n _hoverStartHandler: noop,\r\n _hoverEndHandler: noop,\r\n _toggleActiveState($element, value) {\r\n this.option(\"isActive\", value);\r\n $element.toggleClass(\"dx-state-active\", value)\r\n },\r\n _updatedHover() {\r\n var hoveredElement = this._options.silent(\"hoveredElement\");\r\n this._hover(hoveredElement, hoveredElement)\r\n },\r\n _findHoverTarget($el) {\r\n return $el && $el.closest(this._activeStateUnit || this._eventBindingTarget())\r\n },\r\n _hover($el, $previous) {\r\n var {\r\n hoverStateEnabled: hoverStateEnabled,\r\n disabled: disabled,\r\n isActive: isActive\r\n } = this.option();\r\n $previous = this._findHoverTarget($previous);\r\n $previous && $previous.toggleClass(\"dx-state-hover\", false);\r\n if ($el && hoverStateEnabled && !disabled && !isActive) {\r\n var newHoveredElement = this._findHoverTarget($el);\r\n newHoveredElement && newHoveredElement.toggleClass(\"dx-state-hover\", true)\r\n }\r\n },\r\n _toggleDisabledState(value) {\r\n this.$element().toggleClass(\"dx-state-disabled\", Boolean(value));\r\n this.setAria(\"disabled\", value || void 0)\r\n },\r\n _toggleIndependentState() {\r\n this.$element().toggleClass(\"dx-state-independent\", this.option(\"ignoreParentReadOnly\"))\r\n },\r\n _setWidgetOption(widgetName, args) {\r\n if (!this[widgetName]) {\r\n return\r\n }\r\n if (isPlainObject(args[0])) {\r\n each(args[0], (option, value) => this._setWidgetOption(widgetName, [option, value]));\r\n return\r\n }\r\n var optionName = args[0];\r\n var value = args[1];\r\n if (1 === args.length) {\r\n value = this.option(optionName)\r\n }\r\n var widgetOptionMap = this[\"\".concat(widgetName, \"OptionMap\")];\r\n this[widgetName].option(widgetOptionMap ? widgetOptionMap(optionName) : optionName, value)\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"disabled\":\r\n this._toggleDisabledState(value);\r\n this._updatedHover();\r\n this._refreshFocusState();\r\n break;\r\n case \"hint\":\r\n this._renderHint();\r\n break;\r\n case \"ignoreParentReadOnly\":\r\n this._toggleIndependentState();\r\n break;\r\n case \"activeStateEnabled\":\r\n this._attachFeedbackEvents();\r\n break;\r\n case \"hoverStateEnabled\":\r\n this._attachHoverEvents();\r\n this._updatedHover();\r\n break;\r\n case \"tabIndex\":\r\n case \"focusStateEnabled\":\r\n this._refreshFocusState();\r\n break;\r\n case \"onFocusIn\":\r\n case \"onFocusOut\":\r\n case \"useResizeObserver\":\r\n break;\r\n case \"accessKey\":\r\n this._renderAccessKey();\r\n break;\r\n case \"hoveredElement\":\r\n this._hover(value, previousValue);\r\n break;\r\n case \"isActive\":\r\n this._updatedHover();\r\n break;\r\n case \"visible\":\r\n this._toggleVisibility(value);\r\n if (this._isVisibilityChangeSupported()) {\r\n this._checkVisibilityChanged(value ? \"shown\" : \"hiding\")\r\n }\r\n break;\r\n case \"onKeyboardHandled\":\r\n this._attachKeyboardEvents();\r\n break;\r\n case \"onContentReady\":\r\n this._initContentReadyAction();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _isVisible() {\r\n var {\r\n visible: visible\r\n } = this.option();\r\n return this.callBase() && visible\r\n },\r\n beginUpdate() {\r\n this._ready(false);\r\n this.callBase()\r\n },\r\n endUpdate() {\r\n this.callBase();\r\n if (this._initialized) {\r\n this._ready(true)\r\n }\r\n },\r\n _ready(value) {\r\n if (0 === arguments.length) {\r\n return this._isReady\r\n }\r\n this._isReady = value\r\n },\r\n setAria() {\r\n if (!isPlainObject(arguments.length <= 0 ? void 0 : arguments[0])) {\r\n setAttribute(arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 1 ? void 0 : arguments[1], (arguments.length <= 2 ? void 0 : arguments[2]) || this._getAriaTarget())\r\n } else {\r\n var target = (arguments.length <= 1 ? void 0 : arguments[1]) || this._getAriaTarget();\r\n each(arguments.length <= 0 ? void 0 : arguments[0], (name, value) => setAttribute(name, value, target))\r\n }\r\n },\r\n isReady() {\r\n return this._ready()\r\n },\r\n repaint() {\r\n this._refresh()\r\n },\r\n focus() {\r\n focus.trigger(this._focusTarget())\r\n },\r\n registerKeyHandler(key, handler) {\r\n var currentKeys = this._supportedKeys();\r\n this._supportedKeys = () => extend(currentKeys, {\r\n [key]: handler\r\n })\r\n }\r\n});\r\nWidget.getOptionsFromContainer = _ref5 => {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = _ref5;\r\n var options = {};\r\n if (name === fullName) {\r\n options = value\r\n } else {\r\n var option = fullName.split(\".\").pop();\r\n options[option] = value\r\n }\r\n return options\r\n};\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/events/hover.js)\r\n * Version: 21.2.5\r\n * Build date: Mon Jan 17 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\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n removeData,\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport Class from \"../core/class\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n isTouchEvent,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport pointerEvents from \"./pointer\";\r\nvar HOVERSTART_NAMESPACE = \"dxHoverStart\";\r\nvar HOVERSTART = \"dxhoverstart\";\r\nvar POINTERENTER_NAMESPACED_EVENT_NAME = addNamespace(pointerEvents.enter, HOVERSTART_NAMESPACE);\r\nvar HOVEREND_NAMESPACE = \"dxHoverEnd\";\r\nvar HOVEREND = \"dxhoverend\";\r\nvar POINTERLEAVE_NAMESPACED_EVENT_NAME = addNamespace(pointerEvents.leave, HOVEREND_NAMESPACE);\r\nvar Hover = Class.inherit({\r\n noBubble: true,\r\n ctor: function() {\r\n this._handlerArrayKeyPath = this._eventNamespace + \"_HandlerStore\"\r\n },\r\n setup: function(element) {\r\n elementData(element, this._handlerArrayKeyPath, {})\r\n },\r\n add: function(element, handleObj) {\r\n var that = this;\r\n var handler = function(e) {\r\n that._handler(e)\r\n };\r\n eventsEngine.on(element, this._originalEventName, handleObj.selector, handler);\r\n elementData(element, this._handlerArrayKeyPath)[handleObj.guid] = handler\r\n },\r\n _handler: function(e) {\r\n if (isTouchEvent(e) || devices.isSimulator()) {\r\n return\r\n }\r\n fireEvent({\r\n type: this._eventName,\r\n originalEvent: e,\r\n delegateTarget: e.delegateTarget\r\n })\r\n },\r\n remove: function(element, handleObj) {\r\n var handler = elementData(element, this._handlerArrayKeyPath)[handleObj.guid];\r\n eventsEngine.off(element, this._originalEventName, handleObj.selector, handler)\r\n },\r\n teardown: function(element) {\r\n removeData(element, this._handlerArrayKeyPath)\r\n }\r\n});\r\nvar HoverStart = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVERSTART_NAMESPACE;\r\n this._eventName = HOVERSTART;\r\n this._originalEventName = POINTERENTER_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n },\r\n _handler: function(e) {\r\n var pointers = e.pointers || [];\r\n if (!pointers.length) {\r\n this.callBase(e)\r\n }\r\n }\r\n});\r\nvar HoverEnd = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVEREND_NAMESPACE;\r\n this._eventName = HOVEREND;\r\n this._originalEventName = POINTERLEAVE_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n }\r\n});\r\nregisterEvent(HOVERSTART, new HoverStart);\r\nregisterEvent(HOVEREND, new HoverEnd);\r\nexport {\r\n HOVERSTART as start, HOVEREND as end\r\n};\r\n"],"sourceRoot":""}