{"version":3,"sources":["webpack:///./node_modules/devextreme/ui/select_box.js","webpack:///./node_modules/devextreme/ui/editor/ui.data_expression.js","webpack:///./node_modules/devextreme/ui/drop_down_editor/ui.drop_down_button.js","webpack:///./node_modules/devextreme/ui/drop_down_editor/ui.drop_down_list.js","webpack:///./node_modules/devextreme/ui/drop_down_editor/ui.drop_down_editor.js","webpack:///./node_modules/devextreme/ui/drop_down_editor/utils.js"],"names":["exports","default","_renderer","_interopRequireDefault","_common","_type","_extend","_array","_iterator","_deferred","_element","_errors","_dom_adapter","_utils","_message","_component_registrator","_ui","_index","obj","__esModule","DISABLED_STATE_SELECTOR","SELECTBOX_CLASS","SELECTBOX_POPUP_CLASS","SELECTBOX_CONTAINER_CLASS","SELECTBOX_POPUP_WRAPPER_CLASS","SelectBox","inherit","_supportedKeys","that","this","parent","callBase","clearSelectBox","e","isEditable","_isEditable","_valueSubstituted","_preventFiltering","option","preventDefault","reset","_savedTextRemoveEvent","_preventSubstitution","searchIfNeeded","_searchHandler","extend","tab","_resetCaretPosition","apply","arguments","_cancelSearchIfNeed","upArrow","_setNextValue","downArrow","leftArrow","rightArrow","home","end","escape","result","_cancelEditing","enter","isOpened","inputText","_input","val","trim","isCustomText","_list","isDefined","_saveValueChangeEvent","selectedItem","value","close","_toggleOpenState","_valueChangeEventHandler","space","isSearchEnabled","acceptCustomValue","backspace","del","_getDefaultOptions","placeholder","format","fieldTemplate","valueChangeEvent","onCustomItemCreating","customItem","text","showSelectionControls","allowClearing","tooltipEnabled","openOnFieldClick","showDropDownButton","displayCustomValue","useInkRipple","useHiddenSubmitElement","_init","_initCustomItemCreatingAction","_initMarkup","$element","addClass","_renderTooltip","_renderInkRipple","_$container","_inkRipple","render","_toggleActiveState","config","element","_inputWrapper","event","showWave","hideWave","_createPopup","_popup","overlayContent","attr","_popupWrapperClass","_focusListElement","_updateField","_renderOpenedState","_scrollToSelectedItem","_focusSelectedElement","searchValue","_searchValue","$listItems","_itemElements","index","inArray","focusedElement","_isCustomItemSelected","eq","_renderFocusedElement","not","_preventInputValueRender","getPublicElement","scrollToItem","_listContentReadyHandler","isPaginate","_dataSource","paginate","_needPopupRepaint","_renderValue","_renderInputValue","_setSubmitValue","Deferred","resolve","always","_renderInputValueAsync","bind","_renderInputValueImpl","_refreshSelected","_renderField","_setNextItem","step","item","_calcNextItem","_valueGetter","_setValue","dataSourceIsLoaded","isLoaded","load","done","selectedIndex","_getSelectedIndex","hasPages","pageSize","isLastPage","isLastItem","_items","length","normalizeKeyName","isLoading","_loadNextPage","_setSelectedItem","isUnknownItem","_isCustomValueAllowed","_setListOption","_displayValue","_listConfig","pageLoadMode","onSelectionChanged","_getSelectionChangeHandler","onFocusedItemChanged","_listFocusedItemChangeHandler","selectionByClick","list","component","focusedItem","_getItemData","_getTemplateByOption","_displayGetter","_renderDisplayText","_selectionChangeHandler","noop","each","addedItems","_","addedItem","_getActualSearchValue","isVisible","_shouldClearFilter","_restoreInputText","_wasSearch","showDataImmediately","_searchTimer","_filterDataSource","_renderDimensions","_dimensionChanged","_isValueEqualInputText","initialSelectedItem","displayValue","String","_popupHidingHandler","_popupHiddenHandler","_shouldCancelSearch","_searchCanceled","saveEditingValue","_loadItemDeferred","_clearFilter","_clearTextValue","newSelectedItem","ensureDefined","_focusOutHandler","_preventNestedFocusEvent","isOverlayTarget","_isOverlayNestedTarget","relatedTarget","_clearSearchTimer","target","get","_this$option","searchEnabled","shouldCancelSearch","_this$_popup","isPopupVisible","_hideAnimationProcessing","_shouldCancelSearchValue","closest","concat","_shouldOpenPopup","_needPassDataSourceToList","_isFocused","activeElement","getActiveElement","_renderValueChangeEvent","_fieldRenderData","$listFocused","_isSelectedValue","_isValueEquals","_shouldCloseOnItemClick","_listItemClickHandler","previousValue","_getCurrentValue","itemElement","_completeSelection","itemData","_loadItem","cache","deferred","fail","reject","promise","_loadInputValue","callback","selectedItemText","toString","_isValueChanging","_customItemAddedHandler","_customItemCreatingAction","_createActionByOption","_createCustomItem","params","actionResult","log","Error","isPromise","fromPromise","_setCustomItem","_disposed","_clearValueHandler","_wasSearchValue","_dataSourceFiltered","_renderInputSubstitution","input","isAllSelected","selectionStart","selectionEnd","inputHasSelection","_shouldSubstitutionBeRendered","_getPlainItems","$input","valueLength","inputElement","_caret","start","_dispose","_optionChanged","args","name","_invalidate","_clean","_default","module","_variable_wrapper","_data","_data_helper","_data_source","_array_store","_typeof","Symbol","iterator","constructor","prototype","DataExpressionMixin","_dataExpressionDefaultOptions","items","dataSource","itemTemplate","valueExpr","displayExpr","_initDataExpressions","_compileValueGetter","_compileDisplayGetter","_initDynamicTemplates","_initDataSource","_itemsToDataSource","DataSource","store","compileGetter","_displayGetterExpr","_valueGetterExpr","_loadValue","_unwrappedValue","_loadSingle","_value","_getItemKey","unwrap","key","Array","isArray","i","n","value1","value2","dataSourceKey","_compareValues","_compareByCompositeKey","_compareByKey","isObject","unwrapObservable","valueKey1","valueKey2","toComparable","_setCollectionWidgetItemTemplate","_setCollectionWidgetOption","_getCollectionKeyExpr","isValueExprField","isString","isFunction","_dataExpressionOptionChanged","_events_engine","_button","_button2","_inheritsLoose","subClass","superClass","Object","create","_setPrototypeOf","o","p","setPrototypeOf","__proto__","DROP_DOWN_EDITOR_BUTTON_CLASS","DROP_DOWN_EDITOR_BUTTON_VISIBLE","BUTTON_MESSAGE","DropDownButton","_TextEditorButton","editor","options","_this","call","currentTemplate","_proto","_attachEvents","instance","_openHandler","on","is","_create","_getOptions","_addToContainer","_createComponent","elementAttr","_legacyRender","visible","_isVisible","isReadOnly","focusStateEnabled","hoverStateEnabled","activeStateEnabled","disabled","_addTemplate","$editor","toggleClass","removeClass","_isSameTemplate","template","update","shouldUpdate","_window","_guid","_ui2","_devices","_query","_ui3","_child_default_template","_grouped_data_converter_mixin","window","getWindow","LIST_ITEM_SELECTOR","LIST_ITEM_DATA_KEY","DROPDOWNLIST_POPUP_WRAPPER_CLASS","SKIP_GESTURE_EVENT_CLASS","SEARCH_EVENT","SEARCH_MODES","DropDownList","_allowSelectItemByTab","$focusedItem","_setSelectedElement","searchMode","searchTimeout","minSearchLength","searchExpr","noDataText","onItemClick","showDataBeforeSearch","grouped","groupTemplate","popupPosition","my","at","offset","h","v","collision","wrapItemText","_defaultOptionsRules","device","platform","buttonsLocation","_setOptionsByReference","_optionsByReference","_initActions","_setListDataSource","_validateSearchMode","_clearSelectedItem","_initItems","_setListFocusedElementOptionChange","_updateParentActiveDescendant","_updateActiveDescendant","_initContentReadyAction","_initSelectionChangedAction","_initItemClickAction","_contentReadyAction","excludeValidators","_selectionChangedAction","_itemClickAction","_initTemplates","_templateManager","addDefaultTemplates","ChildDefaultTemplate","_saveFocusOnWidget","initialOption","_focusInput","_fitIntoRange","availableItems","filter","toArray","nextIndex","_updateCustomBoundaryContainer","_wrapper","$popupContent","$content","off","shown","hidden","customContainer","$container","isWindow","$containerWithParents","slice","parents","unshift","getComputedStyle","overflowY","_$customBoundaryContainer","_getItemFromPlain","plainItems","itemByValue","forEach","grep","push","_this$_list","opened","listFocusedItemId","getFocusedItemId","isElementOnDom","activedescendant","setAria","_listItemElements","$itemElement","itemValue","data","isItemSelected","selectItem","unselectItem","_popupShownHandler","_setFocusPolicy","normalizedSearchMode","toLowerCase","_processDataSourceChanging","_$list","find","_popupConfig","templatesRenderAsynchronously","autoResizeEnabled","maxHeight","_getMaxHeight","_renderPopupContent","_renderList","_getKeyboardListeners","canListHaveFocus","_canListHaveFocus","_setAriaTargetForList","_getAriaTarget","_listId","$list","appendTo","_refreshList","role","_renderPreventBlur","$target","eventName","addNamespace","controls","owns","_popupContentId","_setDefaultAria","haspopup","autocomplete","_shouldRefreshDataSource","dataSourceProvided","_isDesktopDevice","real","deviceType","selectionMode","_templates","templateProvider","onContentReady","indicateLoading","keyExpr","_listItemClickAction","_getDataSource","_revertPageOnEmptyLoad","tabIndex","_dataSourceOptions","_getGroupedOption","_dataSourceFromUrlLoadMode","dxList","optionName","_setWidgetOption","_isMinSearchLengthExceeded","_needClearFilter","_canKeepDataSource","_this$_dataSource","isMinSearchLengthExceeded","_isLastMinSearchLengthExceeded","_getSearchEvent","NAME","_getSetFocusPolicyEvent","_renderEvents","_shouldRenderSearchEvent","_refreshEvents","setTimeout","_searchDataSource","searchOperation","_refreshPopupVisibility","_hasItemsToShow","shouldOpenPopup","_dataSourceChangedHandler","newItems","pageIndex","resultItems","resultAmount","clearTimeout","_popupShowingHandler","_updatePopupDimensions","currentPageIndex","needRepaint","_pageIndex","repaint","updateDimensions","$customBoundaryContainer","offsetTop","top","windowHeight","outerHeight","containerHeight","Math","min","max","submitValue","_shouldUseDisplayValue","_getSubmitElement","include","_selectors","_position","_position2","_text_box","_click","_function_template","DROP_DOWN_EDITOR_CLASS","DROP_DOWN_EDITOR_INPUT_WRAPPER","DROP_DOWN_EDITOR_BUTTON_ICON","DROP_DOWN_EDITOR_OVERLAY","DROP_DOWN_EDITOR_OVERLAY_FLIPPED","DROP_DOWN_EDITOR_ACTIVE","DROP_DOWN_EDITOR_FIELD_CLICKABLE","DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER","isIOs","current","DropDownEditor","$focusableElement","shiftKey","_getLastPopupElement","_getFirstPopupElement","trigger","isCommandKeyPressed","stopPropagation","altKey","_validatedOpening","_getDefaultButtons","Ctor","onOpened","onClosed","applyValueMode","deferRendering","dropDownButtonTemplate","buttons","dropDownOptions","showTitle","_getDefaultPopupPosition","onPopupInitialized","applyButtonText","cancelButtonText","_useTemplates","isRtlEnabled","position","getDefaultAlignment","_device","isGeneric","_initVisibilityActions","_initPopupInitializedAction","_updatePopupPosition","_options","_this$_getDefaultPopu","currentPosition","_openAction","_closeAction","_popupInitializedAction","_renderSubmitElement","_render","_renderOpenHandler","_attachFocusOutHandler","_renderContentImpl","_renderInput","_wrapInput","wrapInner","children","_readOnlyPropValue","_cleanFocusState","_detachFocusEvents","_getFieldTemplate","_renderMask","_renderTemplatedField","_renderPlaceholder","hasFieldTemplate","isFocused","focused","_detachKeyboardEvents","_refreshButtonsContainer","_detachWrapperContent","empty","$templateWrapper","model","container","onRendered","_integrateInput","_attachWrapperContent","_this$_$submitElement","_this$_$beforeButtons","_this$_$afterButtonsC","_$submitElement","detach","beforeButtonsContainerParent","_$beforeButtonsContainer","parentNode","afterButtonsContainerParent","_$afterButtonsContainer","removeChild","_this$_$submitElement2","prepend","append","_$buttonsContainer","_refreshValueChangeEvent","_renderFocusState","_refreshEmptinessEvent","_toggleEmptinessEventHandler","_renderEmptinessEvent","dropDownButton","FunctionTemplate","$icon","$inputWrapper","_getInputClickHandler","_openOnFieldClickAction","_createAction","_this2","_detachFocusOutEvents","newTarget","popupWrapper","content","_$popup","isNewTargetOutside","_this3","_executeOpenAction","_keyboardEventBindingTarget","ignoreEditable","caretPosition","_setPopupOption","expanded","_renderPopup","popupConfig","showing","hiding","contentReady","_contentReadyHandler","_setPopupContentId","_bindInnerWidgetOptions","_this4","onInitialized","_popupInitializedHandler","of","width","getElementWidth","height","shading","closeOnTargetScroll","closeOnOutsideClick","_closeOutsideDropDownHandler","animation","show","type","duration","from","to","hide","showCloseButton","dragEnabled","toolbarItems","_getPopupToolbarItems","onPositioned","_popupPositionedHandler","fullScreen","contentTemplate","_this5","popup","_this6","popupWidth","getSizeValue","flip","_this$_validationMess","_validationMessage","_getValidationMessagePositionRequest","_this$_validationMess2","positionRequest","_animationPosition$se","setup","myTop","_animationPosition$se2","popupTop","_ref","getButton","$dropDownButton","isInputClicked","isDropDownButtonClicked","isOutsideClick","remove","_popupToolbarItemsConfig","_popupElementTabHandler","currentTarget","_popupElementEscHandler","_popupButtonInitializedHandler","registerKeyHandler","buttonsConfig","shortcut","onClick","_applyButtonHandler","_cancelButtonHandler","_applyButtonsLocation","resultConfig","splitPair","toolbar","location","focus","_popupOptionChanged","getOptionsFromContainer","optionsKeys","keys","indexOf","_setDeprecatedOptions","_deprecatedOptions","showPopupTitle","since","alias","_updateButtons","hasWindow","open","field","outerWidth","size"],"mappings":"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","file":"js/chunk-6cd1b21e.7daed939.js","sourcesContent":["/**\r\n * DevExtreme (ui/select_box.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _array = require(\"../core/utils/array\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _element = require(\"../core/element\");\r\nvar _errors = _interopRequireDefault(require(\"../core/errors\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../core/dom_adapter\"));\r\nvar _utils = require(\"./widget/utils.ink_ripple\");\r\nvar _message = _interopRequireDefault(require(\"../localization/message\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _ui = _interopRequireDefault(require(\"./drop_down_editor/ui.drop_down_list\"));\r\nvar _index = require(\"../events/utils/index\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DISABLED_STATE_SELECTOR = \".dx-state-disabled\";\r\nvar SELECTBOX_CLASS = \"dx-selectbox\";\r\nvar SELECTBOX_POPUP_CLASS = \"dx-selectbox-popup\";\r\nvar SELECTBOX_CONTAINER_CLASS = \"dx-selectbox-container\";\r\nvar SELECTBOX_POPUP_WRAPPER_CLASS = \"dx-selectbox-popup-wrapper\";\r\nvar SelectBox = _ui.default.inherit({\r\n _supportedKeys: function() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var clearSelectBox = function(e) {\r\n var isEditable = this._isEditable();\r\n if (!isEditable) {\r\n if (this.option(\"showClearButton\")) {\r\n e.preventDefault();\r\n this.reset()\r\n }\r\n } else {\r\n if (this._valueSubstituted()) {\r\n this._preventFiltering = true\r\n }\r\n }\r\n this._savedTextRemoveEvent = e;\r\n this._preventSubstitution = true\r\n };\r\n var searchIfNeeded = function() {\r\n if (that.option(\"searchEnabled\") && that._valueSubstituted()) {\r\n that._searchHandler()\r\n }\r\n };\r\n return (0, _extend.extend)({}, parent, {\r\n tab: function() {\r\n if (this.option(\"opened\") && \"instantly\" === this.option(\"applyValueMode\")) {\r\n this._resetCaretPosition(true)\r\n }\r\n parent.tab && parent.tab.apply(this, arguments);\r\n this._cancelSearchIfNeed()\r\n },\r\n upArrow: function(e) {\r\n if (parent.upArrow && parent.upArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n },\r\n downArrow: function(e) {\r\n if (parent.downArrow && parent.downArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n },\r\n leftArrow: function() {\r\n searchIfNeeded();\r\n parent.leftArrow && parent.leftArrow.apply(this, arguments)\r\n },\r\n rightArrow: function() {\r\n searchIfNeeded();\r\n parent.rightArrow && parent.rightArrow.apply(this, arguments)\r\n },\r\n home: function() {\r\n searchIfNeeded();\r\n parent.home && parent.home.apply(this, arguments)\r\n },\r\n end: function() {\r\n searchIfNeeded();\r\n parent.end && parent.end.apply(this, arguments)\r\n },\r\n escape: function() {\r\n var result = parent.escape && parent.escape.apply(this, arguments);\r\n this._cancelEditing();\r\n return null !== result && void 0 !== result ? result : true\r\n },\r\n enter: function(e) {\r\n var isOpened = this.option(\"opened\");\r\n var inputText = this._input().val().trim();\r\n var isCustomText = inputText && this._list && !this._list.option(\"focusedElement\");\r\n if (!inputText && (0, _type.isDefined)(this.option(\"value\")) && this.option(\"allowClearing\")) {\r\n this._saveValueChangeEvent(e);\r\n this.option({\r\n selectedItem: null,\r\n value: null\r\n });\r\n this.close()\r\n } else {\r\n if (this.option(\"acceptCustomValue\")) {\r\n e.preventDefault();\r\n if (isCustomText) {\r\n if (isOpened) {\r\n this._toggleOpenState()\r\n }\r\n this._valueChangeEventHandler(e)\r\n }\r\n return isOpened\r\n }\r\n if (parent.enter && parent.enter.apply(this, arguments)) {\r\n return isOpened\r\n }\r\n }\r\n },\r\n space: function(e) {\r\n var isOpened = this.option(\"opened\");\r\n var isSearchEnabled = this.option(\"searchEnabled\");\r\n var acceptCustomValue = this.option(\"acceptCustomValue\");\r\n if (!isOpened || isSearchEnabled || acceptCustomValue) {\r\n return\r\n }\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e);\r\n return true\r\n },\r\n backspace: clearSelectBox,\r\n del: clearSelectBox\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n placeholder: _message.default.format(\"Select\"),\r\n fieldTemplate: null,\r\n valueChangeEvent: \"change\",\r\n acceptCustomValue: false,\r\n onCustomItemCreating: function(e) {\r\n if (!(0, _type.isDefined)(e.customItem)) {\r\n e.customItem = e.text\r\n }\r\n },\r\n showSelectionControls: false,\r\n allowClearing: true,\r\n tooltipEnabled: false,\r\n openOnFieldClick: true,\r\n showDropDownButton: true,\r\n displayCustomValue: false,\r\n useInkRipple: false,\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initCustomItemCreatingAction()\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(SELECTBOX_CLASS);\r\n this._renderTooltip();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.callBase();\r\n this._$container.addClass(SELECTBOX_CONTAINER_CLASS)\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = (0, _utils.render)()\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._inkRipple || this._isEditable()) {\r\n return\r\n }\r\n var config = {\r\n element: this._inputWrapper(),\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _createPopup: function() {\r\n this.callBase();\r\n this._popup.$element().addClass(SELECTBOX_POPUP_CLASS);\r\n this._popup.overlayContent().attr(\"tabindex\", -1)\r\n },\r\n _popupWrapperClass: function() {\r\n return this.callBase() + \" \" + SELECTBOX_POPUP_WRAPPER_CLASS\r\n },\r\n _cancelEditing: function() {\r\n if (!this.option(\"searchEnabled\") && this._list) {\r\n this._focusListElement(null);\r\n this._updateField(this.option(\"selectedItem\"))\r\n }\r\n },\r\n _renderOpenedState: function() {\r\n this.callBase();\r\n if (this.option(\"opened\")) {\r\n this._scrollToSelectedItem();\r\n this._focusSelectedElement()\r\n }\r\n },\r\n _focusSelectedElement: function() {\r\n var searchValue = this._searchValue();\r\n if (!searchValue) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var $listItems = this._list._itemElements();\r\n var index = (0, _array.inArray)(this.option(\"selectedItem\"), this.option(\"items\"));\r\n var focusedElement = index >= 0 && !this._isCustomItemSelected() ? $listItems.eq(index) : null;\r\n this._focusListElement(focusedElement)\r\n },\r\n _renderFocusedElement: function() {\r\n if (!this._list) {\r\n return\r\n }\r\n var searchValue = this._searchValue();\r\n if (!searchValue || this.option(\"acceptCustomValue\")) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var $listItems = this._list._itemElements();\r\n var focusedElement = $listItems.not(DISABLED_STATE_SELECTOR).eq(0);\r\n this._focusListElement(focusedElement)\r\n },\r\n _focusListElement: function(element) {\r\n this._preventInputValueRender = true;\r\n this._list.option(\"focusedElement\", (0, _element.getPublicElement)(element));\r\n delete this._preventInputValueRender\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._list && this._list.scrollToItem(this._list.option(\"selectedItem\"))\r\n },\r\n _listContentReadyHandler: function() {\r\n this.callBase();\r\n var isPaginate = this._dataSource && this._dataSource.paginate();\r\n if (isPaginate && this._needPopupRepaint()) {\r\n return\r\n }\r\n this._scrollToSelectedItem()\r\n },\r\n _renderValue: function() {\r\n this._renderInputValue();\r\n this._setSubmitValue();\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n _renderInputValue: function() {\r\n return this.callBase().always(function() {\r\n this._renderInputValueAsync()\r\n }.bind(this))\r\n },\r\n _renderInputValueAsync: function() {\r\n this._renderTooltip();\r\n this._renderInputValueImpl().always(function() {\r\n this._refreshSelected()\r\n }.bind(this))\r\n },\r\n _renderInputValueImpl: function() {\r\n this._renderField();\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n _setNextItem: function(step) {\r\n var item = this._calcNextItem(step);\r\n var value = this._valueGetter(item);\r\n this._setValue(value)\r\n },\r\n _setNextValue: function(e) {\r\n var dataSourceIsLoaded = this._dataSource.isLoaded() ? (new _deferred.Deferred).resolve() : this._dataSource.load();\r\n dataSourceIsLoaded.done(function() {\r\n var selectedIndex = this._getSelectedIndex();\r\n var hasPages = this._dataSource.pageSize();\r\n var isLastPage = this._dataSource.isLastPage();\r\n var isLastItem = selectedIndex === this._items().length - 1;\r\n this._saveValueChangeEvent(e);\r\n var step = \"downArrow\" === (0, _index.normalizeKeyName)(e) ? 1 : -1;\r\n if (hasPages && !isLastPage && isLastItem && step > 0) {\r\n if (!this._popup) {\r\n this._createPopup()\r\n }\r\n if (!this._dataSource.isLoading()) {\r\n this._list._loadNextPage().done(this._setNextItem.bind(this, step))\r\n }\r\n } else {\r\n this._setNextItem(step)\r\n }\r\n }.bind(this))\r\n },\r\n _setSelectedItem: function(item) {\r\n var isUnknownItem = !this._isCustomValueAllowed() && void 0 === item;\r\n this.callBase(isUnknownItem ? null : item);\r\n if (!isUnknownItem && (!this._isEditable() || this._isCustomItemSelected())) {\r\n this._setListOption(\"selectedItem\", this.option(\"selectedItem\"))\r\n }\r\n },\r\n _isCustomValueAllowed: function() {\r\n return this.option(\"acceptCustomValue\") || this.callBase()\r\n },\r\n _displayValue: function(item) {\r\n item = !(0, _type.isDefined)(item) && this._isCustomValueAllowed() ? this.option(\"value\") : item;\r\n return this.callBase(item)\r\n },\r\n _listConfig: function() {\r\n var result = (0, _extend.extend)(this.callBase(), {\r\n pageLoadMode: \"scrollBottom\",\r\n onSelectionChanged: this._getSelectionChangeHandler(),\r\n selectedItem: this.option(\"selectedItem\"),\r\n onFocusedItemChanged: this._listFocusedItemChangeHandler.bind(this)\r\n });\r\n if (this.option(\"showSelectionControls\")) {\r\n (0, _extend.extend)(result, {\r\n showSelectionControls: true,\r\n selectionByClick: true\r\n })\r\n }\r\n return result\r\n },\r\n _listFocusedItemChangeHandler: function(e) {\r\n if (this._preventInputValueRender) {\r\n return\r\n }\r\n var list = e.component;\r\n var focusedElement = (0, _renderer.default)(list.option(\"focusedElement\"));\r\n var focusedItem = list._getItemData(focusedElement);\r\n this._updateField(focusedItem)\r\n },\r\n _updateField: function(item) {\r\n var fieldTemplate = this._getTemplateByOption(\"fieldTemplate\");\r\n if (!(fieldTemplate && this.option(\"fieldTemplate\"))) {\r\n var text = this._displayGetter(item);\r\n this.option(\"text\", text);\r\n this._renderDisplayText(text);\r\n return\r\n }\r\n this._renderField()\r\n },\r\n _getSelectionChangeHandler: function() {\r\n return this.option(\"showSelectionControls\") ? this._selectionChangeHandler.bind(this) : _common.noop\r\n },\r\n _selectionChangeHandler: function(e) {\r\n (0, _iterator.each)(e.addedItems || [], function(_, addedItem) {\r\n this._setValue(this._valueGetter(addedItem))\r\n }.bind(this))\r\n },\r\n _getActualSearchValue: function() {\r\n return this._dataSource.searchValue()\r\n },\r\n _toggleOpenState: function(isVisible) {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n if (!isVisible && !this._shouldClearFilter()) {\r\n this._restoreInputText(true)\r\n }\r\n if (this._wasSearch() && isVisible) {\r\n this._wasSearch(false);\r\n var showDataImmediately = this.option(\"showDataBeforeSearch\") || 0 === this.option(\"minSearchLength\");\r\n if (showDataImmediately && this._dataSource) {\r\n if (this._searchTimer) {\r\n return\r\n }\r\n var searchValue = this._getActualSearchValue();\r\n searchValue && this._wasSearch(true);\r\n this._filterDataSource(searchValue || null)\r\n } else {\r\n this._setListOption(\"items\", [])\r\n }\r\n }\r\n if (isVisible) {\r\n this._scrollToSelectedItem()\r\n }\r\n this.callBase(isVisible)\r\n },\r\n _renderTooltip: function() {\r\n if (this.option(\"tooltipEnabled\")) {\r\n this.$element().attr(\"title\", this.option(\"displayValue\"))\r\n }\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this._dimensionChanged()\r\n },\r\n _isValueEqualInputText: function() {\r\n var initialSelectedItem = this.option(\"selectedItem\");\r\n if (null === initialSelectedItem) {\r\n return false\r\n }\r\n var value = this._displayGetter(initialSelectedItem);\r\n var displayValue = value ? String(value) : \"\";\r\n var inputText = this._searchValue();\r\n return displayValue === inputText\r\n },\r\n _popupHidingHandler: function() {\r\n if (this._isValueEqualInputText()) {\r\n this._cancelEditing()\r\n }\r\n this.callBase()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n if (this._shouldCancelSearch()) {\r\n this._wasSearch(false);\r\n this._searchCanceled();\r\n this._shouldCancelSearch(false)\r\n }\r\n },\r\n _restoreInputText: function(saveEditingValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._loadItemDeferred && this._loadItemDeferred.always(function() {\r\n var initialSelectedItem = this.option(\"selectedItem\");\r\n if (this.option(\"acceptCustomValue\")) {\r\n if (!saveEditingValue) {\r\n this._updateField(initialSelectedItem);\r\n this._clearFilter()\r\n }\r\n return\r\n }\r\n if (this.option(\"searchEnabled\")) {\r\n if (!this._searchValue() && this.option(\"allowClearing\")) {\r\n this._clearTextValue();\r\n return\r\n }\r\n }\r\n if (this._isValueEqualInputText()) {\r\n return\r\n }\r\n this._renderInputValue().always(function(selectedItem) {\r\n var newSelectedItem = (0, _common.ensureDefined)(selectedItem, initialSelectedItem);\r\n this._setSelectedItem(newSelectedItem);\r\n this._updateField(newSelectedItem);\r\n this._clearFilter()\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n _focusOutHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n var isOverlayTarget = this._isOverlayNestedTarget(e.relatedTarget);\r\n if (!isOverlayTarget) {\r\n this._restoreInputText();\r\n this._clearSearchTimer()\r\n }\r\n this._cancelSearchIfNeed(e)\r\n }\r\n e.target = this._input().get(0);\r\n this.callBase(e)\r\n },\r\n _cancelSearchIfNeed: function(e) {\r\n var _this$option = this.option(),\r\n searchEnabled = _this$option.searchEnabled;\r\n var isOverlayTarget = this._isOverlayNestedTarget(null === e || void 0 === e ? void 0 : e.relatedTarget);\r\n var shouldCancelSearch = this._wasSearch() && searchEnabled && !isOverlayTarget;\r\n if (shouldCancelSearch) {\r\n var _this$_popup;\r\n var isPopupVisible = null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup._hideAnimationProcessing;\r\n if (isPopupVisible) {\r\n this._shouldCancelSearch(true)\r\n } else {\r\n this._wasSearch(false);\r\n this._searchCanceled()\r\n }\r\n }\r\n },\r\n _shouldCancelSearch: function(value) {\r\n if (!arguments.length) {\r\n return this._shouldCancelSearchValue\r\n }\r\n this._shouldCancelSearchValue = value\r\n },\r\n _isOverlayNestedTarget: function(target) {\r\n return !!(0, _renderer.default)(target).closest(\".\".concat(SELECTBOX_POPUP_WRAPPER_CLASS)).length\r\n },\r\n _clearTextValue: function() {\r\n if (this.option(\"selectedItem\")) {\r\n if (this._savedTextRemoveEvent) {\r\n this._saveValueChangeEvent(this._savedTextRemoveEvent)\r\n }\r\n this.option(\"value\", null)\r\n }\r\n delete this._savedTextRemoveEvent\r\n },\r\n _shouldOpenPopup: function() {\r\n return this._needPassDataSourceToList() && this._wasSearch()\r\n },\r\n _isFocused: function() {\r\n var activeElement = _dom_adapter.default.getActiveElement();\r\n return this.callBase() && (0, _renderer.default)(activeElement).closest(this._input()).length > 0\r\n },\r\n _renderValueChangeEvent: function() {\r\n if (this._isEditable()) {\r\n this.callBase()\r\n }\r\n },\r\n _fieldRenderData: function() {\r\n var $listFocused = this._list && this.option(\"opened\") && (0, _renderer.default)(this._list.option(\"focusedElement\"));\r\n if ($listFocused && $listFocused.length) {\r\n return this._list._getItemData($listFocused)\r\n }\r\n return this.option(\"selectedItem\")\r\n },\r\n _isSelectedValue: function(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _shouldCloseOnItemClick: function() {\r\n return !(this.option(\"showSelectionControls\") && \"single\" !== this.option(\"selectionMode\"))\r\n },\r\n _listItemClickHandler: function(e) {\r\n var previousValue = this._getCurrentValue();\r\n this._focusListElement((0, _renderer.default)(e.itemElement));\r\n this._saveValueChangeEvent(e.event);\r\n this._completeSelection(this._valueGetter(e.itemData));\r\n if (this._shouldCloseOnItemClick()) {\r\n this.option(\"opened\", false)\r\n }\r\n if (this.option(\"searchEnabled\") && previousValue === this._valueGetter(e.itemData)) {\r\n this._updateField(e.itemData)\r\n }\r\n if (this._shouldClearFilter()) {\r\n this._cancelSearchIfNeed()\r\n }\r\n },\r\n _shouldClearFilter: function() {\r\n return this._wasSearch()\r\n },\r\n _completeSelection: function(value) {\r\n this._setValue(value)\r\n },\r\n _loadItem: function(value, cache) {\r\n var that = this;\r\n var deferred = new _deferred.Deferred;\r\n this.callBase(value, cache).done(function(item) {\r\n deferred.resolve(item)\r\n }.bind(this)).fail(function() {\r\n var selectedItem = that.option(\"selectedItem\");\r\n if (that.option(\"acceptCustomValue\") && value === that._valueGetter(selectedItem)) {\r\n deferred.resolve(selectedItem)\r\n } else {\r\n deferred.reject()\r\n }\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n _loadInputValue: function(value, callback) {\r\n this._loadItemDeferred = this._loadItem(value).always(callback);\r\n return this._loadItemDeferred\r\n },\r\n _isCustomItemSelected: function() {\r\n var selectedItem = this.option(\"selectedItem\");\r\n var searchValue = this._searchValue();\r\n var selectedItemText = this._displayGetter(selectedItem);\r\n return !selectedItemText || searchValue !== selectedItemText.toString()\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (this.option(\"acceptCustomValue\") && this._isCustomItemSelected() && !this._isValueChanging) {\r\n this._isValueChanging = true;\r\n this._customItemAddedHandler(e);\r\n this._isValueChanging = false\r\n }\r\n },\r\n _initCustomItemCreatingAction: function() {\r\n this._customItemCreatingAction = this._createActionByOption(\"onCustomItemCreating\")\r\n },\r\n _createCustomItem: function(text) {\r\n var params = {\r\n text: text\r\n };\r\n var actionResult = this._customItemCreatingAction(params);\r\n var item = (0, _common.ensureDefined)(actionResult, params.customItem);\r\n if ((0, _type.isDefined)(actionResult)) {\r\n _errors.default.log(\"W0015\", \"onCustomItemCreating\", \"customItem\")\r\n }\r\n return item\r\n },\r\n _customItemAddedHandler: function(e) {\r\n var searchValue = this._searchValue();\r\n var item = this._createCustomItem(searchValue);\r\n this._saveValueChangeEvent(e);\r\n if (void 0 === item) {\r\n this._renderValue();\r\n throw _errors.default.Error(\"E0121\")\r\n }\r\n if ((0, _type.isPromise)(item)) {\r\n (0, _deferred.fromPromise)(item).done(this._setCustomItem.bind(this)).fail(this._setCustomItem.bind(this, null))\r\n } else {\r\n this._setCustomItem(item)\r\n }\r\n },\r\n _setCustomItem: function(item) {\r\n if (this._disposed) {\r\n return\r\n }\r\n item = item || null;\r\n this.option(\"selectedItem\", item);\r\n this._cancelSearchIfNeed();\r\n this._setValue(this._valueGetter(item));\r\n this._renderDisplayText(this._displayGetter(item))\r\n },\r\n _clearValueHandler: function(e) {\r\n this.callBase(e);\r\n return false\r\n },\r\n _wasSearch: function(value) {\r\n if (!arguments.length) {\r\n return this._wasSearchValue\r\n }\r\n this._wasSearchValue = value\r\n },\r\n _searchHandler: function(e) {\r\n if (this._preventFiltering) {\r\n delete this._preventFiltering;\r\n return\r\n }\r\n if (this._needPassDataSourceToList()) {\r\n this._wasSearch(true)\r\n }\r\n this.callBase(e)\r\n },\r\n _dataSourceFiltered: function(searchValue) {\r\n this.callBase();\r\n if (null !== searchValue) {\r\n this._renderInputSubstitution();\r\n this._renderFocusedElement()\r\n }\r\n },\r\n _valueSubstituted: function() {\r\n var input = this._input().get(0);\r\n var isAllSelected = 0 === input.selectionStart && input.selectionEnd === this._searchValue().length;\r\n var inputHasSelection = input.selectionStart !== input.selectionEnd;\r\n return this._wasSearch() && inputHasSelection && !isAllSelected\r\n },\r\n _shouldSubstitutionBeRendered: function() {\r\n return !this._preventSubstitution && this.option(\"searchEnabled\") && !this.option(\"acceptCustomValue\") && \"startswith\" === this.option(\"searchMode\")\r\n },\r\n _renderInputSubstitution: function() {\r\n if (!this._shouldSubstitutionBeRendered()) {\r\n delete this._preventSubstitution;\r\n return\r\n }\r\n var item = this._list && this._getPlainItems(this._list.option(\"items\"))[0];\r\n if (!item) {\r\n return\r\n }\r\n var $input = this._input();\r\n var valueLength = $input.val().length;\r\n if (0 === valueLength) {\r\n return\r\n }\r\n var inputElement = $input.get(0);\r\n var displayValue = this._displayGetter(item).toString();\r\n inputElement.value = displayValue;\r\n this._caret({\r\n start: valueLength,\r\n end: displayValue.length\r\n })\r\n },\r\n _dispose: function() {\r\n this._renderInputValueAsync = _common.noop;\r\n delete this._loadItemDeferred;\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onCustomItemCreating\":\r\n this._initCustomItemCreatingAction();\r\n break;\r\n case \"tooltipEnabled\":\r\n this._renderTooltip();\r\n break;\r\n case \"displayCustomValue\":\r\n case \"acceptCustomValue\":\r\n case \"showSelectionControls\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"allowClearing\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n delete this._inkRipple;\r\n this.callBase()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxSelectBox\", SelectBox);\r\nvar _default = SelectBox;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/editor/ui.data_expression.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _variable_wrapper = _interopRequireDefault(require(\"../../core/utils/variable_wrapper\"));\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _data_helper = _interopRequireDefault(require(\"../../data_helper\"));\r\nvar _data_source = require(\"../../data/data_source/data_source\");\r\nvar _array_store = _interopRequireDefault(require(\"../../data/array_store\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nvar DataExpressionMixin = (0, _extend.extend)({}, _data_helper.default, {\r\n _dataExpressionDefaultOptions: function() {\r\n return {\r\n items: [],\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n value: null,\r\n valueExpr: \"this\",\r\n displayExpr: void 0\r\n }\r\n },\r\n _initDataExpressions: function() {\r\n this._compileValueGetter();\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._initDataSource();\r\n this._itemsToDataSource()\r\n },\r\n _itemsToDataSource: function() {\r\n if (!this.option(\"dataSource\")) {\r\n this._dataSource = new _data_source.DataSource({\r\n store: new _array_store.default(this.option(\"items\")),\r\n pageSize: 0\r\n })\r\n }\r\n },\r\n _compileDisplayGetter: function() {\r\n this._displayGetter = (0, _data.compileGetter)(this._displayGetterExpr())\r\n },\r\n _displayGetterExpr: function() {\r\n return this.option(\"displayExpr\")\r\n },\r\n _compileValueGetter: function() {\r\n this._valueGetter = (0, _data.compileGetter)(this._valueGetterExpr())\r\n },\r\n _valueGetterExpr: function() {\r\n return this.option(\"valueExpr\") || \"this\"\r\n },\r\n _loadValue: function(value) {\r\n var deferred = new _deferred.Deferred;\r\n value = this._unwrappedValue(value);\r\n if (!(0, _type.isDefined)(value)) {\r\n return deferred.reject().promise()\r\n }\r\n this._loadSingle(this._valueGetterExpr(), value).done(function(item) {\r\n this._isValueEquals(this._valueGetter(item), value) ? deferred.resolve(item) : deferred.reject()\r\n }.bind(this)).fail(function() {\r\n deferred.reject()\r\n });\r\n return deferred.promise()\r\n },\r\n _getCurrentValue: function() {\r\n return this.option(\"value\")\r\n },\r\n _unwrappedValue: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this._getCurrentValue();\r\n if (value && this._dataSource && \"this\" === this._valueGetterExpr()) {\r\n value = this._getItemKey(value)\r\n }\r\n return _variable_wrapper.default.unwrap(value)\r\n },\r\n _getItemKey: function(value) {\r\n var key = this._dataSource.key();\r\n if (Array.isArray(key)) {\r\n var result = {};\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n result[key[i]] = value[key[i]]\r\n }\r\n return result\r\n }\r\n if (key && \"object\" === _typeof(value)) {\r\n value = value[key]\r\n }\r\n return value\r\n },\r\n _isValueEquals: function(value1, value2) {\r\n var dataSourceKey = this._dataSource && this._dataSource.key();\r\n var result = this._compareValues(value1, value2);\r\n if (!result && dataSourceKey && (0, _type.isDefined)(value1) && (0, _type.isDefined)(value2)) {\r\n if (Array.isArray(dataSourceKey)) {\r\n result = this._compareByCompositeKey(value1, value2, dataSourceKey)\r\n } else {\r\n result = this._compareByKey(value1, value2, dataSourceKey)\r\n }\r\n }\r\n return result\r\n },\r\n _compareByCompositeKey: function(value1, value2, key) {\r\n var isObject = _type.isObject;\r\n if (!isObject(value1) || !isObject(value2)) {\r\n return false\r\n }\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n if (value1[key[i]] !== value2[key[i]]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _compareByKey: function(value1, value2, key) {\r\n var unwrapObservable = _variable_wrapper.default.unwrap;\r\n var valueKey1 = (0, _common.ensureDefined)(unwrapObservable(value1[key]), value1);\r\n var valueKey2 = (0, _common.ensureDefined)(unwrapObservable(value2[key]), value2);\r\n return this._compareValues(valueKey1, valueKey2)\r\n },\r\n _compareValues: function(value1, value2) {\r\n return (0, _data.toComparable)(value1, true) === (0, _data.toComparable)(value2, true)\r\n },\r\n _initDynamicTemplates: _common.noop,\r\n _setCollectionWidgetItemTemplate: function() {\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"itemTemplate\", this.option(\"itemTemplate\"))\r\n },\r\n _getCollectionKeyExpr: function() {\r\n var valueExpr = this.option(\"valueExpr\");\r\n var isValueExprField = (0, _type.isString)(valueExpr) && \"this\" !== valueExpr || (0, _type.isFunction)(valueExpr);\r\n return isValueExprField ? valueExpr : null\r\n },\r\n _dataExpressionOptionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n this._itemsToDataSource();\r\n this._setCollectionWidgetOption(\"items\");\r\n break;\r\n case \"dataSource\":\r\n this._initDataSource();\r\n break;\r\n case \"itemTemplate\":\r\n this._setCollectionWidgetItemTemplate();\r\n break;\r\n case \"valueExpr\":\r\n this._compileValueGetter();\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"displayExpr\")\r\n }\r\n }\r\n});\r\nvar _default = DataExpressionMixin;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/drop_down_editor/ui.drop_down_button.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _button = _interopRequireDefault(require(\"../text_box/texteditor_button_collection/button\"));\r\nvar _button2 = _interopRequireDefault(require(\"../button\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar DROP_DOWN_EDITOR_BUTTON_CLASS = \"dx-dropdowneditor-button\";\r\nvar DROP_DOWN_EDITOR_BUTTON_VISIBLE = \"dx-dropdowneditor-button-visible\";\r\nvar BUTTON_MESSAGE = \"dxDropDownEditor-selectLabel\";\r\nvar DropDownButton = function(_TextEditorButton) {\r\n _inheritsLoose(DropDownButton, _TextEditorButton);\r\n\r\n function DropDownButton(name, editor, options) {\r\n var _this;\r\n _this = _TextEditorButton.call(this, name, editor, options) || this;\r\n _this.currentTemplate = null;\r\n return _this\r\n }\r\n var _proto = DropDownButton.prototype;\r\n _proto._attachEvents = function(instance) {\r\n var editor = this.editor;\r\n instance.option(\"onClick\", function(e) {\r\n !editor.option(\"openOnFieldClick\") && editor._openHandler(e)\r\n });\r\n _events_engine.default.on(instance.$element(), \"mousedown\", function(e) {\r\n if (editor.$element().is(\".dx-state-focused\")) {\r\n e.preventDefault()\r\n }\r\n })\r\n };\r\n _proto._create = function() {\r\n var editor = this.editor;\r\n var $element = (0, _renderer.default)(\"
\");\r\n var options = this._getOptions();\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, _button2.default, (0, _extend.extend)({}, options, {\r\n elementAttr: {\r\n \"aria-label\": _message.default.format(BUTTON_MESSAGE)\r\n }\r\n }));\r\n this._legacyRender(editor.$element(), $element, options.visible);\r\n return {\r\n $element: $element,\r\n instance: instance\r\n }\r\n };\r\n _proto._getOptions = function() {\r\n var editor = this.editor;\r\n var visible = this._isVisible();\r\n var isReadOnly = editor.option(\"readOnly\");\r\n var options = {\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n activeStateEnabled: false,\r\n useInkRipple: false,\r\n disabled: isReadOnly,\r\n visible: visible\r\n };\r\n this._addTemplate(options);\r\n return options\r\n };\r\n _proto._isVisible = function() {\r\n var editor = this.editor;\r\n return _TextEditorButton.prototype._isVisible.call(this) && editor.option(\"showDropDownButton\")\r\n };\r\n _proto._legacyRender = function($editor, $element, isVisible) {\r\n $editor.toggleClass(DROP_DOWN_EDITOR_BUTTON_VISIBLE, isVisible);\r\n if ($element) {\r\n $element.removeClass(\"dx-button\").addClass(DROP_DOWN_EDITOR_BUTTON_CLASS)\r\n }\r\n };\r\n _proto._isSameTemplate = function() {\r\n return this.editor.option(\"dropDownButtonTemplate\") === this.currentTemplate\r\n };\r\n _proto._addTemplate = function(options) {\r\n if (!this._isSameTemplate()) {\r\n options.template = this.editor._getTemplateByOption(\"dropDownButtonTemplate\");\r\n this.currentTemplate = this.editor.option(\"dropDownButtonTemplate\")\r\n }\r\n };\r\n _proto.update = function() {\r\n var shouldUpdate = _TextEditorButton.prototype.update.call(this);\r\n if (shouldUpdate) {\r\n var editor = this.editor,\r\n instance = this.instance;\r\n var $editor = editor.$element();\r\n var options = this._getOptions();\r\n null === instance || void 0 === instance ? void 0 : instance.option(options);\r\n this._legacyRender($editor, null === instance || void 0 === instance ? void 0 : instance.$element(), options.visible)\r\n }\r\n };\r\n return DropDownButton\r\n}(_button.default);\r\nexports.default = DropDownButton;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/drop_down_editor/ui.drop_down_list.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _guid = _interopRequireDefault(require(\"../../core/guid\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _ui = _interopRequireDefault(require(\"./ui.drop_down_editor\"));\r\nvar _list = _interopRequireDefault(require(\"../list\"));\r\nvar _ui2 = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _query = _interopRequireDefault(require(\"../../data/query\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _ui3 = _interopRequireDefault(require(\"../editor/ui.data_expression\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _child_default_template = require(\"../../core/templates/child_default_template\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _grouped_data_converter_mixin = _interopRequireDefault(require(\"../shared/grouped_data_converter_mixin\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar LIST_ITEM_SELECTOR = \".dx-list-item\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar DROPDOWNLIST_POPUP_WRAPPER_CLASS = \"dx-dropdownlist-popup-wrapper\";\r\nvar SKIP_GESTURE_EVENT_CLASS = \"dx-skip-gesture-event\";\r\nvar SEARCH_EVENT = \"input\";\r\nvar SEARCH_MODES = [\"startswith\", \"contains\", \"endwith\", \"notcontains\"];\r\nvar DropDownList = _ui.default.inherit({\r\n _supportedKeys: function() {\r\n var parent = this.callBase();\r\n return (0, _extend.extend)({}, parent, {\r\n tab: function(e) {\r\n if (this._allowSelectItemByTab()) {\r\n this._saveValueChangeEvent(e);\r\n var $focusedItem = (0, _renderer.default)(this._list.option(\"focusedElement\"));\r\n $focusedItem.length && this._setSelectedElement($focusedItem)\r\n }\r\n parent.tab.apply(this, arguments)\r\n },\r\n space: _common.noop,\r\n home: _common.noop,\r\n end: _common.noop\r\n })\r\n },\r\n _allowSelectItemByTab: function() {\r\n return this.option(\"opened\") && \"instantly\" === this.option(\"applyValueMode\")\r\n },\r\n _setSelectedElement: function($element) {\r\n var value = this._valueGetter(this._list._getItemData($element));\r\n this._setValue(value)\r\n },\r\n _setValue: function(value) {\r\n this.option(\"value\", value)\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), (0, _extend.extend)(_ui3.default._dataExpressionDefaultOptions(), {\r\n displayValue: void 0,\r\n searchEnabled: false,\r\n searchMode: \"contains\",\r\n searchTimeout: 500,\r\n minSearchLength: 0,\r\n searchExpr: null,\r\n valueChangeEvent: \"input change keyup\",\r\n selectedItem: null,\r\n noDataText: _message.default.format(\"dxCollectionWidget-noDataText\"),\r\n onSelectionChanged: null,\r\n onItemClick: _common.noop,\r\n showDataBeforeSearch: false,\r\n grouped: false,\r\n groupTemplate: \"group\",\r\n popupPosition: {\r\n my: \"left top\",\r\n at: \"left bottom\",\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n collision: \"flip\"\r\n },\r\n wrapItemText: false\r\n }))\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: -1\r\n }\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom center\"\r\n }\r\n }])\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._optionsByReference, {\r\n value: true,\r\n selectedItem: true,\r\n displayValue: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initDataExpressions();\r\n this._initActions();\r\n this._setListDataSource();\r\n this._validateSearchMode();\r\n this._clearSelectedItem();\r\n this._initItems()\r\n },\r\n _setListFocusedElementOptionChange: function() {\r\n this._list._updateParentActiveDescendant = this._updateActiveDescendant.bind(this)\r\n },\r\n _initItems: function() {\r\n var items = this.option().items;\r\n if (items && !items.length && this._dataSource) {\r\n this.option().items = this._dataSource.items()\r\n }\r\n },\r\n _initActions: function() {\r\n this._initContentReadyAction();\r\n this._initSelectionChangedAction();\r\n this._initItemClickAction()\r\n },\r\n _initContentReadyAction: function() {\r\n this._contentReadyAction = this._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initSelectionChangedAction: function() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new _child_default_template.ChildDefaultTemplate(\"item\")\r\n })\r\n },\r\n _isEditable: function() {\r\n return this.callBase() || this.option(\"searchEnabled\")\r\n },\r\n _saveFocusOnWidget: function(e) {\r\n if (this._list && this._list.initialOption(\"focusStateEnabled\")) {\r\n this._focusInput()\r\n }\r\n },\r\n _fitIntoRange: function(value, start, end) {\r\n if (value > end) {\r\n return start\r\n }\r\n if (value < start) {\r\n return end\r\n }\r\n return value\r\n },\r\n _items: function() {\r\n var items = this._getPlainItems(!this._list && this._dataSource.items());\r\n var availableItems = new _query.default(items).filter(\"disabled\", \"<>\", true).toArray();\r\n return availableItems\r\n },\r\n _calcNextItem: function(step) {\r\n var items = this._items();\r\n var nextIndex = this._fitIntoRange(this._getSelectedIndex() + step, 0, items.length - 1);\r\n return items[nextIndex]\r\n },\r\n _getSelectedIndex: function() {\r\n var items = this._items();\r\n var selectedItem = this.option(\"selectedItem\");\r\n var result = -1;\r\n (0, _iterator.each)(items, function(index, item) {\r\n if (this._isValueEquals(item, selectedItem)) {\r\n result = index;\r\n return false\r\n }\r\n }.bind(this));\r\n return result\r\n },\r\n _createPopup: function() {\r\n this.callBase();\r\n this._updateCustomBoundaryContainer();\r\n this._popup._wrapper().addClass(this._popupWrapperClass());\r\n var $popupContent = this._popup.$content();\r\n _events_engine.default.off($popupContent, \"mouseup\");\r\n _events_engine.default.on($popupContent, \"mouseup\", this._saveFocusOnWidget.bind(this));\r\n var that = this;\r\n this._popup.on({\r\n shown: function() {\r\n that.$element().addClass(SKIP_GESTURE_EVENT_CLASS)\r\n },\r\n hidden: function() {\r\n that.$element().removeClass(SKIP_GESTURE_EVENT_CLASS)\r\n }\r\n })\r\n },\r\n _updateCustomBoundaryContainer: function() {\r\n var customContainer = this.option(\"dropDownOptions.container\");\r\n var $container = customContainer && (0, _renderer.default)(customContainer);\r\n if ($container && $container.length && !(0, _type.isWindow)($container.get(0))) {\r\n var $containerWithParents = [].slice.call($container.parents());\r\n $containerWithParents.unshift($container.get(0));\r\n (0, _iterator.each)($containerWithParents, function(i, parent) {\r\n if (parent === (0, _renderer.default)(\"body\").get(0)) {\r\n return false\r\n } else {\r\n if (\"hidden\" === window.getComputedStyle(parent).overflowY) {\r\n this._$customBoundaryContainer = (0, _renderer.default)(parent);\r\n return false\r\n }\r\n }\r\n }.bind(this))\r\n }\r\n },\r\n _popupWrapperClass: function() {\r\n return DROPDOWNLIST_POPUP_WRAPPER_CLASS\r\n },\r\n _renderInputValue: function() {\r\n var value = this._getCurrentValue();\r\n return this._loadInputValue(value, this._setSelectedItem.bind(this)).always(this.callBase.bind(this, value))\r\n },\r\n _loadInputValue: function(value, callback) {\r\n return this._loadItem(value).always(callback)\r\n },\r\n _getItemFromPlain: function(value, cache) {\r\n var plainItems;\r\n var selectedItem;\r\n if (cache && \"object\" !== _typeof(value)) {\r\n if (!cache.itemByValue) {\r\n cache.itemByValue = {};\r\n plainItems = this._getPlainItems();\r\n plainItems.forEach(function(item) {\r\n cache.itemByValue[this._valueGetter(item)] = item\r\n }, this)\r\n }\r\n selectedItem = cache.itemByValue[value]\r\n }\r\n if (!selectedItem) {\r\n plainItems = this._getPlainItems();\r\n selectedItem = (0, _common.grep)(plainItems, function(item) {\r\n return this._isValueEquals(this._valueGetter(item), value)\r\n }.bind(this))[0]\r\n }\r\n return selectedItem\r\n },\r\n _loadItem: function(value, cache) {\r\n var selectedItem = this._getItemFromPlain(value, cache);\r\n return void 0 !== selectedItem ? (new _deferred.Deferred).resolve(selectedItem).promise() : this._loadValue(value)\r\n },\r\n _getPlainItems: function(items) {\r\n var plainItems = [];\r\n items = items || this.option(\"items\") || this._dataSource.items() || [];\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n return plainItems\r\n },\r\n _updateActiveDescendant: function() {\r\n var _this$_list;\r\n var opened = this.option(\"opened\");\r\n var listFocusedItemId = null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list.getFocusedItemId();\r\n var isElementOnDom = (0, _renderer.default)(\"#\".concat(listFocusedItemId)).length > 0;\r\n var activedescendant = opened && isElementOnDom && listFocusedItemId;\r\n this.setAria({\r\n activedescendant: activedescendant || null\r\n })\r\n },\r\n _setSelectedItem: function(item) {\r\n var displayValue = this._displayValue(item);\r\n this.option(\"selectedItem\", (0, _common.ensureDefined)(item, null));\r\n this.option(\"displayValue\", displayValue)\r\n },\r\n _displayValue: function(item) {\r\n return this._displayGetter(item)\r\n },\r\n _refreshSelected: function() {\r\n var cache = {};\r\n this._listItemElements().each(function(_, itemElement) {\r\n var $itemElement = (0, _renderer.default)(itemElement);\r\n var itemValue = this._valueGetter($itemElement.data(LIST_ITEM_DATA_KEY));\r\n var isItemSelected = this._isSelectedValue(itemValue, cache);\r\n if (isItemSelected) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n }.bind(this))\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n this._setFocusPolicy()\r\n },\r\n _setFocusPolicy: function() {\r\n if (!this.option(\"focusStateEnabled\") || !this._list) {\r\n return\r\n }\r\n this._list.option(\"focusedElement\", null)\r\n },\r\n _isSelectedValue: function(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _validateSearchMode: function() {\r\n var searchMode = this.option(\"searchMode\");\r\n var normalizedSearchMode = searchMode.toLowerCase();\r\n if ((0, _array.inArray)(normalizedSearchMode, SEARCH_MODES) < 0) {\r\n throw _ui2.default.Error(\"E1019\", searchMode)\r\n }\r\n },\r\n _clearSelectedItem: function() {\r\n this.option(\"selectedItem\", null)\r\n },\r\n _processDataSourceChanging: function() {\r\n this._setListDataSource();\r\n this._renderInputValue().fail(function() {\r\n if (this._isCustomValueAllowed()) {\r\n return\r\n }\r\n this._clearSelectedItem()\r\n }.bind(this))\r\n },\r\n _isCustomValueAllowed: function() {\r\n return this.option(\"displayCustomValue\")\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this._clearFilter();\r\n this._clearSelectedItem();\r\n this._preventFiltering = true\r\n },\r\n _listItemElements: function() {\r\n return this._$list ? this._$list.find(LIST_ITEM_SELECTOR) : (0, _renderer.default)()\r\n },\r\n _popupConfig: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n templatesRenderAsynchronously: false,\r\n autoResizeEnabled: false,\r\n maxHeight: this._getMaxHeight.bind(this)\r\n })\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._renderList()\r\n },\r\n _getKeyboardListeners: function() {\r\n var canListHaveFocus = this._canListHaveFocus();\r\n return this.callBase().concat([!canListHaveFocus && this._list])\r\n },\r\n _setAriaTargetForList: function() {\r\n this._list._getAriaTarget = this._getAriaTarget.bind(this)\r\n },\r\n _renderList: function() {\r\n this._listId = \"dx-\" + (new _guid.default)._value;\r\n var $list = this._$list = (0, _renderer.default)(\"
\").attr(\"id\", this._listId).appendTo(this._popup.$content());\r\n this._list = this._createComponent($list, _list.default, this._listConfig());\r\n this._refreshList();\r\n this._setAriaTargetForList();\r\n this._list.option(\"_listAttributes\", {\r\n role: \"combobox\"\r\n });\r\n this._renderPreventBlur(this._$list);\r\n this._setListFocusedElementOptionChange()\r\n },\r\n _renderPreventBlur: function($target) {\r\n var eventName = (0, _index.addNamespace)(\"mousedown\", \"dxDropDownList\");\r\n _events_engine.default.off($target, eventName);\r\n _events_engine.default.on($target, eventName, function(e) {\r\n e.preventDefault()\r\n }.bind(this))\r\n },\r\n _renderOpenedState: function() {\r\n this.callBase();\r\n this._list && this._updateActiveDescendant();\r\n this.setAria({\r\n controls: this._list && this._listId,\r\n owns: this._popup && this._popupContentId\r\n })\r\n },\r\n _setDefaultAria: function() {\r\n this.setAria({\r\n haspopup: \"listbox\",\r\n autocomplete: \"list\"\r\n })\r\n },\r\n _refreshList: function() {\r\n if (this._list && this._shouldRefreshDataSource()) {\r\n this._setListDataSource()\r\n }\r\n },\r\n _shouldRefreshDataSource: function() {\r\n var dataSourceProvided = !!this._list.option(\"dataSource\");\r\n return dataSourceProvided !== this._needPassDataSourceToList()\r\n },\r\n _isDesktopDevice: function() {\r\n return \"desktop\" === _devices.default.real().deviceType\r\n },\r\n _listConfig: function() {\r\n var options = {\r\n selectionMode: \"single\",\r\n _templates: this.option(\"_templates\"),\r\n templateProvider: this.option(\"templateProvider\"),\r\n noDataText: this.option(\"noDataText\"),\r\n grouped: this.option(\"grouped\"),\r\n wrapItemText: this.option(\"wrapItemText\"),\r\n onContentReady: this._listContentReadyHandler.bind(this),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n indicateLoading: false,\r\n keyExpr: this._getCollectionKeyExpr(),\r\n displayExpr: this._displayGetterExpr(),\r\n groupTemplate: this.option(\"groupTemplate\"),\r\n onItemClick: this._listItemClickAction.bind(this),\r\n dataSource: this._getDataSource(),\r\n _revertPageOnEmptyLoad: true,\r\n hoverStateEnabled: this._isDesktopDevice() ? this.option(\"hoverStateEnabled\") : false,\r\n focusStateEnabled: this._isDesktopDevice() ? this.option(\"focusStateEnabled\") : false\r\n };\r\n if (!this._canListHaveFocus()) {\r\n options.tabIndex = null\r\n }\r\n return options\r\n },\r\n _canListHaveFocus: function() {\r\n return false\r\n },\r\n _getDataSource: function() {\r\n return this._needPassDataSourceToList() ? this._dataSource : null\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"grouped\")\r\n },\r\n _dataSourceFromUrlLoadMode: function() {\r\n return \"raw\"\r\n },\r\n _listContentReadyHandler: function() {\r\n this._list = this._list || this._$list.dxList(\"instance\");\r\n if (!this.option(\"deferRendering\")) {\r\n this._refreshSelected()\r\n }\r\n this._dimensionChanged();\r\n this._contentReadyAction()\r\n },\r\n _setListOption: function(optionName, value) {\r\n this._setWidgetOption(\"_list\", arguments)\r\n },\r\n _listItemClickAction: function(e) {\r\n this._listItemClickHandler(e);\r\n this._itemClickAction(e)\r\n },\r\n _listItemClickHandler: _common.noop,\r\n _setListDataSource: function() {\r\n if (!this._list) {\r\n return\r\n }\r\n this._setListOption(\"dataSource\", this._getDataSource());\r\n if (!this._needPassDataSourceToList()) {\r\n this._setListOption(\"items\", [])\r\n }\r\n },\r\n _needPassDataSourceToList: function() {\r\n return this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded()\r\n },\r\n _isMinSearchLengthExceeded: function() {\r\n return this._searchValue().toString().length >= this.option(\"minSearchLength\")\r\n },\r\n _needClearFilter: function() {\r\n return this._canKeepDataSource() ? false : this._needPassDataSourceToList()\r\n },\r\n _canKeepDataSource: function() {\r\n var _this$_dataSource;\r\n var isMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n return (null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : _this$_dataSource.isLoaded()) && this.option(\"showDataBeforeSearch\") && this.option(\"minSearchLength\") && !isMinSearchLengthExceeded && !this._isLastMinSearchLengthExceeded\r\n },\r\n _searchValue: function() {\r\n return this._input().val() || \"\"\r\n },\r\n _getSearchEvent: function() {\r\n return (0, _index.addNamespace)(SEARCH_EVENT, this.NAME + \"Search\")\r\n },\r\n _getSetFocusPolicyEvent: function() {\r\n return (0, _index.addNamespace)(\"input\", this.NAME + \"FocusPolicy\")\r\n },\r\n _renderEvents: function() {\r\n this.callBase();\r\n _events_engine.default.on(this._input(), this._getSetFocusPolicyEvent(), this._setFocusPolicy.bind(this));\r\n if (this._shouldRenderSearchEvent()) {\r\n _events_engine.default.on(this._input(), this._getSearchEvent(), this._searchHandler.bind(this))\r\n }\r\n },\r\n _shouldRenderSearchEvent: function() {\r\n return this.option(\"searchEnabled\")\r\n },\r\n _refreshEvents: function() {\r\n _events_engine.default.off(this._input(), this._getSearchEvent());\r\n _events_engine.default.off(this._input(), this._getSetFocusPolicyEvent());\r\n this.callBase()\r\n },\r\n _searchHandler: function() {\r\n if (!this._isMinSearchLengthExceeded()) {\r\n this._searchCanceled();\r\n return\r\n }\r\n var searchTimeout = this.option(\"searchTimeout\");\r\n if (searchTimeout) {\r\n this._clearSearchTimer();\r\n this._searchTimer = setTimeout(this._searchDataSource.bind(this), searchTimeout)\r\n } else {\r\n this._searchDataSource()\r\n }\r\n },\r\n _searchCanceled: function() {\r\n this._clearSearchTimer();\r\n if (this._needClearFilter()) {\r\n this._filterDataSource(null)\r\n }\r\n this._refreshList()\r\n },\r\n _searchDataSource: function() {\r\n this._filterDataSource(this._searchValue())\r\n },\r\n _filterDataSource: function(searchValue) {\r\n this._clearSearchTimer();\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n dataSource.searchExpr(this.option(\"searchExpr\") || this._displayGetterExpr());\r\n dataSource.searchOperation(this.option(\"searchMode\"));\r\n dataSource.searchValue(searchValue);\r\n dataSource.load().done(this._dataSourceFiltered.bind(this, searchValue))\r\n }\r\n },\r\n _clearFilter: function() {\r\n var dataSource = this._dataSource;\r\n dataSource && dataSource.searchValue() && dataSource.searchValue(null)\r\n },\r\n _dataSourceFiltered: function() {\r\n this._isLastMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n this._refreshList();\r\n this._refreshPopupVisibility()\r\n },\r\n _shouldOpenPopup: function() {\r\n return this._hasItemsToShow()\r\n },\r\n _refreshPopupVisibility: function() {\r\n if (this.option(\"readOnly\") || !this._searchValue()) {\r\n return\r\n }\r\n var shouldOpenPopup = this._shouldOpenPopup();\r\n if (shouldOpenPopup && !this._isFocused()) {\r\n return\r\n }\r\n this.option(\"opened\", shouldOpenPopup);\r\n if (shouldOpenPopup) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n if (0 === this._dataSource.pageIndex()) {\r\n this.option().items = newItems\r\n } else {\r\n this.option().items = this.option().items.concat(newItems)\r\n }\r\n },\r\n _hasItemsToShow: function() {\r\n var resultItems = this._dataSource && this._dataSource.items() || [];\r\n var resultAmount = resultItems.length;\r\n var isMinSearchLengthExceeded = this._needPassDataSourceToList();\r\n return !!(isMinSearchLengthExceeded && resultAmount)\r\n },\r\n _clearSearchTimer: function() {\r\n clearTimeout(this._searchTimer);\r\n delete this._searchTimer\r\n },\r\n _popupShowingHandler: function() {\r\n this._dimensionChanged()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase(arguments);\r\n this._popup && this._updatePopupDimensions()\r\n },\r\n _needPopupRepaint: function() {\r\n if (!this._dataSource) {\r\n return false\r\n }\r\n var currentPageIndex = this._dataSource.pageIndex();\r\n var needRepaint = (0, _type.isDefined)(this._pageIndex) && currentPageIndex <= this._pageIndex;\r\n this._pageIndex = currentPageIndex;\r\n return needRepaint\r\n },\r\n _updatePopupDimensions: function() {\r\n if (this._needPopupRepaint()) {\r\n this._popup.repaint()\r\n }\r\n this._list && this._list.updateDimensions()\r\n },\r\n _getMaxHeight: function() {\r\n var $element = this.$element();\r\n var $customBoundaryContainer = this._$customBoundaryContainer;\r\n var offsetTop = $element.offset().top - ($customBoundaryContainer ? $customBoundaryContainer.offset().top : 0);\r\n var windowHeight = (0, _renderer.default)(window).outerHeight();\r\n var containerHeight = $customBoundaryContainer ? Math.min($customBoundaryContainer.outerHeight(), windowHeight) : windowHeight;\r\n var maxHeight = Math.max(offsetTop, containerHeight - offsetTop - $element.outerHeight());\r\n return Math.min(.5 * containerHeight, maxHeight)\r\n },\r\n _clean: function() {\r\n if (this._list) {\r\n delete this._list\r\n }\r\n delete this._isLastMinSearchLengthExceeded;\r\n this.callBase()\r\n },\r\n _dispose: function() {\r\n this._clearSearchTimer();\r\n this.callBase()\r\n },\r\n _setCollectionWidgetOption: function() {\r\n this._setListOption.apply(this, arguments)\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.option(\"value\");\r\n var submitValue = this._shouldUseDisplayValue(value) ? this._displayGetter(value) : value;\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _shouldUseDisplayValue: function(value) {\r\n return \"this\" === this.option(\"valueExpr\") && (0, _type.isObject)(value)\r\n },\r\n _optionChanged: function(args) {\r\n this._dataExpressionOptionChanged(args);\r\n switch (args.name) {\r\n case \"hoverStateEnabled\":\r\n case \"focusStateEnabled\":\r\n this._isDesktopDevice() && this._setListOption(args.name, args.value);\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n if (!this.option(\"dataSource\")) {\r\n this._processDataSourceChanging()\r\n }\r\n break;\r\n case \"dataSource\":\r\n this._processDataSourceChanging();\r\n break;\r\n case \"valueExpr\":\r\n this._renderValue();\r\n this._setListOption(\"keyExpr\", this._getCollectionKeyExpr());\r\n break;\r\n case \"displayExpr\":\r\n this._renderValue();\r\n this._setListOption(\"displayExpr\", this._displayGetterExpr());\r\n break;\r\n case \"searchMode\":\r\n this._validateSearchMode();\r\n break;\r\n case \"minSearchLength\":\r\n this._refreshList();\r\n break;\r\n case \"searchEnabled\":\r\n case \"showDataBeforeSearch\":\r\n case \"searchExpr\":\r\n this._invalidate();\r\n break;\r\n case \"onContentReady\":\r\n this._initContentReadyAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._initSelectionChangedAction();\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"grouped\":\r\n case \"groupTemplate\":\r\n case \"wrapItemText\":\r\n case \"noDataText\":\r\n this._setListOption(args.name);\r\n break;\r\n case \"displayValue\":\r\n this.option(\"text\", args.value);\r\n break;\r\n case \"itemTemplate\":\r\n case \"searchTimeout\":\r\n break;\r\n case \"selectedItem\":\r\n if (args.previousValue !== args.value) {\r\n this._selectionChangedAction({\r\n selectedItem: args.value\r\n })\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(_ui3.default, _grouped_data_converter_mixin.default);\r\n(0, _component_registrator.default)(\"dxDropDownList\", DropDownList);\r\nvar _default = DropDownList;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/drop_down_editor/ui.drop_down_editor.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _guid = _interopRequireDefault(require(\"../../core/guid\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _selectors = require(\"../widget/selectors\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _element = require(\"../../core/element\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _position = _interopRequireDefault(require(\"../../animation/position\"));\r\nvar _position2 = require(\"../../core/utils/position\");\r\nvar _ui2 = _interopRequireDefault(require(\"./ui.drop_down_button\"));\r\nvar _ui3 = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _text_box = _interopRequireDefault(require(\"../text_box\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _function_template = require(\"../../core/templates/function_template\");\r\nvar _popup = _interopRequireDefault(require(\"../popup\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _utils = require(\"./utils\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DROP_DOWN_EDITOR_CLASS = \"dx-dropdowneditor\";\r\nvar DROP_DOWN_EDITOR_INPUT_WRAPPER = \"dx-dropdowneditor-input-wrapper\";\r\nvar DROP_DOWN_EDITOR_BUTTON_ICON = \"dx-dropdowneditor-icon\";\r\nvar DROP_DOWN_EDITOR_OVERLAY = \"dx-dropdowneditor-overlay\";\r\nvar DROP_DOWN_EDITOR_OVERLAY_FLIPPED = \"dx-dropdowneditor-overlay-flipped\";\r\nvar DROP_DOWN_EDITOR_ACTIVE = \"dx-dropdowneditor-active\";\r\nvar DROP_DOWN_EDITOR_FIELD_CLICKABLE = \"dx-dropdowneditor-field-clickable\";\r\nvar DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER = \"dx-dropdowneditor-field-template-wrapper\";\r\nvar isIOs = \"ios\" === _devices.default.current().platform;\r\nvar DropDownEditor = _text_box.default.inherit({\r\n _supportedKeys: function() {\r\n return (0, _extend.extend)({}, this.callBase(), {\r\n tab: function(e) {\r\n if (!this.option(\"opened\")) {\r\n return\r\n }\r\n if (\"instantly\" === this.option(\"applyValueMode\")) {\r\n this.close();\r\n return\r\n }\r\n var $focusableElement = e.shiftKey ? this._getLastPopupElement() : this._getFirstPopupElement();\r\n $focusableElement && _events_engine.default.trigger($focusableElement, \"focus\");\r\n e.preventDefault()\r\n },\r\n escape: function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault()\r\n }\r\n this.close();\r\n return true\r\n },\r\n upArrow: function(e) {\r\n if (!(0, _index.isCommandKeyPressed)(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.altKey) {\r\n this.close();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n downArrow: function(e) {\r\n if (!(0, _index.isCommandKeyPressed)(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.altKey) {\r\n this._validatedOpening();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n enter: function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e)\r\n }\r\n return true\r\n }\r\n })\r\n },\r\n _getDefaultButtons: function() {\r\n return this.callBase().concat([{\r\n name: \"dropDown\",\r\n Ctor: _ui2.default\r\n }])\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n value: null,\r\n onOpened: null,\r\n onClosed: null,\r\n opened: false,\r\n acceptCustomValue: true,\r\n applyValueMode: \"instantly\",\r\n deferRendering: true,\r\n activeStateEnabled: true,\r\n dropDownButtonTemplate: \"dropDownButton\",\r\n fieldTemplate: null,\r\n openOnFieldClick: false,\r\n showDropDownButton: true,\r\n buttons: void 0,\r\n dropDownOptions: {\r\n showTitle: false\r\n },\r\n popupPosition: this._getDefaultPopupPosition(),\r\n onPopupInitialized: null,\r\n applyButtonText: _message.default.format(\"OK\"),\r\n cancelButtonText: _message.default.format(\"Cancel\"),\r\n buttonsLocation: \"default\",\r\n useHiddenSubmitElement: false\r\n })\r\n },\r\n _useTemplates: function() {\r\n return true\r\n },\r\n _getDefaultPopupPosition: function(isRtlEnabled) {\r\n var position = (0, _position2.getDefaultAlignment)(isRtlEnabled);\r\n return {\r\n offset: {\r\n h: 0,\r\n v: -1\r\n },\r\n my: position + \" top\",\r\n at: position + \" bottom\",\r\n collision: \"flip flip\"\r\n }\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n var isGeneric = \"generic\" === _device.platform;\r\n return isGeneric\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: 0\r\n }\r\n }\r\n }\r\n }])\r\n },\r\n _inputWrapper: function() {\r\n return this.$element().find(\".\" + DROP_DOWN_EDITOR_INPUT_WRAPPER)\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initVisibilityActions();\r\n this._initPopupInitializedAction();\r\n this._updatePopupPosition(this.option(\"rtlEnabled\"));\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"))\r\n },\r\n _updatePopupPosition: function(isRtlEnabled) {\r\n var _this$_getDefaultPopu = this._getDefaultPopupPosition(isRtlEnabled),\r\n my = _this$_getDefaultPopu.my,\r\n at = _this$_getDefaultPopu.at;\r\n var currentPosition = this.option(\"popupPosition\");\r\n this.option(\"popupPosition\", (0, _extend.extend)({}, currentPosition, {\r\n my: my,\r\n at: at\r\n }))\r\n },\r\n _initVisibilityActions: function() {\r\n this._openAction = this._createActionByOption(\"onOpened\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._closeAction = this._createActionByOption(\"onClosed\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initPopupInitializedAction: function() {\r\n this._popupInitializedAction = this._createActionByOption(\"onPopupInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_EDITOR_CLASS);\r\n this.setAria(\"role\", \"combobox\")\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderOpenHandler();\r\n this._attachFocusOutHandler();\r\n this._renderOpenedState()\r\n },\r\n _renderContentImpl: function() {\r\n if (!this.option(\"deferRendering\")) {\r\n this._createPopup()\r\n }\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._wrapInput();\r\n this._setDefaultAria()\r\n },\r\n _wrapInput: function() {\r\n this._$container = this.$element().wrapInner((0, _renderer.default)(\"
\").addClass(DROP_DOWN_EDITOR_INPUT_WRAPPER)).children().eq(0)\r\n },\r\n _setDefaultAria: function() {\r\n this.setAria({\r\n haspopup: \"true\",\r\n autocomplete: \"list\"\r\n })\r\n },\r\n _readOnlyPropValue: function() {\r\n return !this._isEditable() || this.callBase()\r\n },\r\n _cleanFocusState: function() {\r\n this.callBase();\r\n if (this.option(\"fieldTemplate\")) {\r\n this._detachFocusEvents()\r\n }\r\n },\r\n _getFieldTemplate: function() {\r\n return this.option(\"fieldTemplate\") && this._getTemplateByOption(\"fieldTemplate\")\r\n },\r\n _renderMask: function() {\r\n if (this.option(\"fieldTemplate\")) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _renderField: function() {\r\n var fieldTemplate = this._getFieldTemplate();\r\n fieldTemplate && this._renderTemplatedField(fieldTemplate, this._fieldRenderData())\r\n },\r\n _renderPlaceholder: function() {\r\n var hasFieldTemplate = !!this._getFieldTemplate();\r\n if (!hasFieldTemplate) {\r\n this.callBase()\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._setSubmitValue()\r\n }\r\n var promise = this.callBase();\r\n promise.always(this._renderField.bind(this))\r\n },\r\n _renderTemplatedField: function(fieldTemplate, data) {\r\n var _this = this;\r\n var isFocused = (0, _selectors.focused)(this._input());\r\n var $container = this._$container;\r\n this._detachKeyboardEvents();\r\n this._refreshButtonsContainer();\r\n this._detachWrapperContent();\r\n this._detachFocusEvents();\r\n $container.empty();\r\n var $templateWrapper = (0, _renderer.default)(\"
\").addClass(DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER).appendTo($container);\r\n fieldTemplate.render({\r\n model: data,\r\n container: (0, _element.getPublicElement)($templateWrapper),\r\n onRendered: function() {\r\n var $input = _this._input();\r\n if (!$input.length) {\r\n throw _ui.default.Error(\"E1010\")\r\n }\r\n _this._integrateInput();\r\n isFocused && _events_engine.default.trigger($input, \"focus\")\r\n }\r\n });\r\n this._attachWrapperContent($container)\r\n },\r\n _detachWrapperContent: function() {\r\n var _this$_$submitElement, _this$_$beforeButtons, _this$_$afterButtonsC;\r\n var useHiddenSubmitElement = this.option(\"useHiddenSubmitElement\");\r\n useHiddenSubmitElement && (null === (_this$_$submitElement = this._$submitElement) || void 0 === _this$_$submitElement ? void 0 : _this$_$submitElement.detach());\r\n var beforeButtonsContainerParent = null === (_this$_$beforeButtons = this._$beforeButtonsContainer) || void 0 === _this$_$beforeButtons ? void 0 : _this$_$beforeButtons[0].parentNode;\r\n var afterButtonsContainerParent = null === (_this$_$afterButtonsC = this._$afterButtonsContainer) || void 0 === _this$_$afterButtonsC ? void 0 : _this$_$afterButtonsC[0].parentNode;\r\n null === beforeButtonsContainerParent || void 0 === beforeButtonsContainerParent ? void 0 : beforeButtonsContainerParent.removeChild(this._$beforeButtonsContainer[0]);\r\n null === afterButtonsContainerParent || void 0 === afterButtonsContainerParent ? void 0 : afterButtonsContainerParent.removeChild(this._$afterButtonsContainer[0])\r\n },\r\n _attachWrapperContent: function($container) {\r\n var _this$_$submitElement2;\r\n var useHiddenSubmitElement = this.option(\"useHiddenSubmitElement\");\r\n $container.prepend(this._$beforeButtonsContainer);\r\n useHiddenSubmitElement && (null === (_this$_$submitElement2 = this._$submitElement) || void 0 === _this$_$submitElement2 ? void 0 : _this$_$submitElement2.appendTo($container));\r\n $container.append(this._$afterButtonsContainer)\r\n },\r\n _refreshButtonsContainer: function() {\r\n this._$buttonsContainer = this.$element().children().eq(0)\r\n },\r\n _integrateInput: function() {\r\n this._refreshEvents();\r\n this._refreshValueChangeEvent();\r\n this._renderFocusState();\r\n this._refreshEmptinessEvent()\r\n },\r\n _refreshEmptinessEvent: function() {\r\n _events_engine.default.off(this._input(), \"input blur\", this._toggleEmptinessEventHandler);\r\n this._renderEmptinessEvent()\r\n },\r\n _fieldRenderData: function() {\r\n return this.option(\"value\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n dropDownButton: new _function_template.FunctionTemplate(function(options) {\r\n var $icon = (0, _renderer.default)(\"
\").addClass(DROP_DOWN_EDITOR_BUTTON_ICON);\r\n (0, _renderer.default)(options.container).append($icon)\r\n })\r\n });\r\n this.callBase()\r\n },\r\n _renderOpenHandler: function() {\r\n var $inputWrapper = this._inputWrapper();\r\n var eventName = (0, _index.addNamespace)(_click.name, this.NAME);\r\n var openOnFieldClick = this.option(\"openOnFieldClick\");\r\n _events_engine.default.off($inputWrapper, eventName);\r\n _events_engine.default.on($inputWrapper, eventName, this._getInputClickHandler(openOnFieldClick));\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_FIELD_CLICKABLE, openOnFieldClick);\r\n if (openOnFieldClick) {\r\n this._openOnFieldClickAction = this._createAction(this._openHandler.bind(this))\r\n }\r\n },\r\n _attachFocusOutHandler: function() {\r\n var _this2 = this;\r\n if (isIOs) {\r\n this._detachFocusOutEvents();\r\n _events_engine.default.on(this._inputWrapper(), (0, _index.addNamespace)(\"focusout\", this.NAME), function(event) {\r\n var newTarget = event.relatedTarget;\r\n var popupWrapper = _this2.content ? (0, _renderer.default)(_this2.content()).closest(\".\" + DROP_DOWN_EDITOR_OVERLAY) : _this2._$popup;\r\n if (newTarget && _this2.option(\"opened\")) {\r\n var isNewTargetOutside = 0 === (0, _renderer.default)(newTarget).closest(\".\" + DROP_DOWN_EDITOR_OVERLAY, popupWrapper).length;\r\n if (isNewTargetOutside) {\r\n _this2.close()\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _detachFocusOutEvents: function() {\r\n isIOs && _events_engine.default.off(this._inputWrapper(), (0, _index.addNamespace)(\"focusout\", this.NAME))\r\n },\r\n _getInputClickHandler: function(openOnFieldClick) {\r\n var _this3 = this;\r\n return openOnFieldClick ? function(e) {\r\n _this3._executeOpenAction(e)\r\n } : function(e) {\r\n _this3._focusInput()\r\n }\r\n },\r\n _openHandler: function() {\r\n this._toggleOpenState()\r\n },\r\n _executeOpenAction: function(e) {\r\n this._openOnFieldClickAction({\r\n event: e\r\n })\r\n },\r\n _keyboardEventBindingTarget: function() {\r\n return this._input()\r\n },\r\n _focusInput: function() {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (this.option(\"focusStateEnabled\") && !(0, _selectors.focused)(this._input())) {\r\n this._resetCaretPosition();\r\n _events_engine.default.trigger(this._input(), \"focus\")\r\n }\r\n return true\r\n },\r\n _resetCaretPosition: function() {\r\n var ignoreEditable = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n var inputElement = this._input().get(0);\r\n if (inputElement) {\r\n var value = inputElement.value;\r\n var caretPosition = (0, _type.isDefined)(value) && (ignoreEditable || this._isEditable()) ? value.length : 0;\r\n this._caret({\r\n start: caretPosition,\r\n end: caretPosition\r\n }, true)\r\n }\r\n },\r\n _isEditable: function() {\r\n return this.option(\"acceptCustomValue\")\r\n },\r\n _toggleOpenState: function(isVisible) {\r\n if (!this._focusInput()) {\r\n return\r\n }\r\n if (!this.option(\"readOnly\")) {\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n this.option(\"opened\", isVisible)\r\n }\r\n },\r\n _renderOpenedState: function() {\r\n var opened = this.option(\"opened\");\r\n if (opened) {\r\n this._createPopup()\r\n }\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_ACTIVE, opened);\r\n this._setPopupOption(\"visible\", opened);\r\n this.setAria({\r\n expanded: opened\r\n });\r\n this.setAria(\"owns\", (opened || void 0) && this._popupContentId, this.$element())\r\n },\r\n _createPopup: function() {\r\n if (this._$popup) {\r\n return\r\n }\r\n this._$popup = (0, _renderer.default)(\"
\").addClass(DROP_DOWN_EDITOR_OVERLAY).addClass(this.option(\"customOverlayCssClass\")).appendTo(this.$element());\r\n this._renderPopup();\r\n this._renderPopupContent()\r\n },\r\n _renderPopupContent: _common.noop,\r\n _renderPopup: function() {\r\n var popupConfig = (0, _extend.extend)(this._popupConfig(), this._options.cache(\"dropDownOptions\"));\r\n this._popup = this._createComponent(this._$popup, _popup.default, popupConfig);\r\n this._popup.on({\r\n showing: this._popupShowingHandler.bind(this),\r\n shown: this._popupShownHandler.bind(this),\r\n hiding: this._popupHidingHandler.bind(this),\r\n hidden: this._popupHiddenHandler.bind(this),\r\n contentReady: this._contentReadyHandler.bind(this)\r\n });\r\n this._contentReadyHandler();\r\n this._setPopupContentId(this._popup.$content());\r\n this._bindInnerWidgetOptions(this._popup, \"dropDownOptions\")\r\n },\r\n _setPopupContentId: function($popupContent) {\r\n this._popupContentId = \"dx-\" + new _guid.default;\r\n this.setAria(\"id\", this._popupContentId, $popupContent)\r\n },\r\n _contentReadyHandler: _common.noop,\r\n _popupConfig: function() {\r\n var _this4 = this;\r\n return {\r\n onInitialized: this._popupInitializedHandler(),\r\n position: (0, _extend.extend)(this.option(\"popupPosition\"), {\r\n of: this.$element()\r\n }),\r\n showTitle: this.option(\"dropDownOptions.showTitle\"),\r\n width: function() {\r\n return (0, _utils.getElementWidth)(_this4.$element())\r\n },\r\n height: \"auto\",\r\n shading: false,\r\n closeOnTargetScroll: true,\r\n closeOnOutsideClick: this._closeOutsideDropDownHandler.bind(this),\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 0,\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 deferRendering: false,\r\n focusStateEnabled: false,\r\n showCloseButton: false,\r\n dragEnabled: false,\r\n toolbarItems: this._getPopupToolbarItems(),\r\n onPositioned: this._popupPositionedHandler.bind(this),\r\n fullScreen: false,\r\n contentTemplate: null\r\n }\r\n },\r\n _popupInitializedHandler: function() {\r\n var _this5 = this;\r\n if (!this.option(\"onPopupInitialized\")) {\r\n return null\r\n }\r\n return function(e) {\r\n _this5._popupInitializedAction({\r\n popup: e.component\r\n })\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n var _this6 = this;\r\n var popupWidth = (0, _utils.getSizeValue)(this.option(\"dropDownOptions.width\"));\r\n if (void 0 === popupWidth) {\r\n this._setPopupOption(\"width\", function() {\r\n return (0, _utils.getElementWidth)(_this6.$element())\r\n })\r\n }\r\n },\r\n _popupPositionedHandler: function(e) {\r\n e.position && this._popup.overlayContent().toggleClass(DROP_DOWN_EDITOR_OVERLAY_FLIPPED, e.position.v.flip)\r\n },\r\n _popupShowingHandler: _common.noop,\r\n _popupHidingHandler: function() {\r\n this.option(\"opened\", false)\r\n },\r\n _popupShownHandler: function() {\r\n var _this$_validationMess;\r\n this._openAction();\r\n null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.option(\"positionRequest\", this._getValidationMessagePositionRequest())\r\n },\r\n _popupHiddenHandler: function() {\r\n var _this$_validationMess2;\r\n this._closeAction();\r\n null === (_this$_validationMess2 = this._validationMessage) || void 0 === _this$_validationMess2 ? void 0 : _this$_validationMess2.option(\"positionRequest\", this._getValidationMessagePositionRequest())\r\n },\r\n _getValidationMessagePositionRequest: function() {\r\n var positionRequest = \"below\";\r\n if (this._popup && this._popup.option(\"visible\")) {\r\n var _animationPosition$se = _position.default.setup(this.$element()),\r\n myTop = _animationPosition$se.top;\r\n var _animationPosition$se2 = _position.default.setup(this._popup.$content()),\r\n popupTop = _animationPosition$se2.top;\r\n positionRequest = myTop + this.option(\"popupPosition\").offset.v > popupTop ? \"below\" : \"above\"\r\n }\r\n return positionRequest\r\n },\r\n _closeOutsideDropDownHandler: function(_ref) {\r\n var target = _ref.target;\r\n var $target = (0, _renderer.default)(target);\r\n var dropDownButton = this.getButton(\"dropDown\");\r\n var $dropDownButton = dropDownButton && dropDownButton.$element();\r\n var isInputClicked = !!$target.closest(this.$element()).length;\r\n var isDropDownButtonClicked = !!$target.closest($dropDownButton).length;\r\n var isOutsideClick = !isInputClicked && !isDropDownButtonClicked;\r\n return isOutsideClick\r\n },\r\n _clean: function() {\r\n delete this._openOnFieldClickAction;\r\n if (this._$popup) {\r\n this._$popup.remove();\r\n delete this._$popup;\r\n delete this._popup\r\n }\r\n this.callBase()\r\n },\r\n _setPopupOption: function(optionName, value) {\r\n this._setWidgetOption(\"_popup\", arguments)\r\n },\r\n _validatedOpening: function() {\r\n if (!this.option(\"readOnly\")) {\r\n this._toggleOpenState(true)\r\n }\r\n },\r\n _getPopupToolbarItems: function() {\r\n return \"useButtons\" === this.option(\"applyValueMode\") ? this._popupToolbarItemsConfig() : []\r\n },\r\n _getFirstPopupElement: function() {\r\n return this._popup._wrapper().find(\".dx-popup-done.dx-button\")\r\n },\r\n _getLastPopupElement: function() {\r\n return this._popup._wrapper().find(\".dx-popup-cancel.dx-button\")\r\n },\r\n _popupElementTabHandler: function(e) {\r\n var $element = (0, _renderer.default)(e.currentTarget);\r\n if (e.shiftKey && $element.is(this._getFirstPopupElement()) || !e.shiftKey && $element.is(this._getLastPopupElement())) {\r\n _events_engine.default.trigger(this._input(), \"focus\");\r\n e.preventDefault()\r\n }\r\n },\r\n _popupElementEscHandler: function() {\r\n _events_engine.default.trigger(this._input(), \"focus\");\r\n this.close()\r\n },\r\n _popupButtonInitializedHandler: function(e) {\r\n e.component.registerKeyHandler(\"tab\", this._popupElementTabHandler.bind(this));\r\n e.component.registerKeyHandler(\"escape\", this._popupElementEscHandler.bind(this))\r\n },\r\n _popupToolbarItemsConfig: function() {\r\n var buttonsConfig = [{\r\n shortcut: \"done\",\r\n options: {\r\n onClick: this._applyButtonHandler.bind(this),\r\n text: this.option(\"applyButtonText\"),\r\n onInitialized: this._popupButtonInitializedHandler.bind(this)\r\n }\r\n }, {\r\n shortcut: \"cancel\",\r\n options: {\r\n onClick: this._cancelButtonHandler.bind(this),\r\n text: this.option(\"cancelButtonText\"),\r\n onInitialized: this._popupButtonInitializedHandler.bind(this)\r\n }\r\n }];\r\n return this._applyButtonsLocation(buttonsConfig)\r\n },\r\n _applyButtonsLocation: function(buttonsConfig) {\r\n var buttonsLocation = this.option(\"buttonsLocation\");\r\n var resultConfig = buttonsConfig;\r\n if (\"default\" !== buttonsLocation) {\r\n var position = (0, _common.splitPair)(buttonsLocation);\r\n (0, _iterator.each)(resultConfig, function(_, element) {\r\n (0, _extend.extend)(element, {\r\n toolbar: position[0],\r\n location: position[1]\r\n })\r\n })\r\n }\r\n return resultConfig\r\n },\r\n _applyButtonHandler: function() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _cancelButtonHandler: function() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _popupOptionChanged: function(args) {\r\n var options = _ui3.default.getOptionsFromContainer(args);\r\n this._setPopupOption(options);\r\n var optionsKeys = Object.keys(options);\r\n if (optionsKeys.indexOf(\"width\") !== -1 || optionsKeys.indexOf(\"height\") !== -1) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _renderSubmitElement: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._$submitElement = (0, _renderer.default)(\"\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n }\r\n },\r\n _setSubmitValue: function() {\r\n this._getSubmitElement().val(this.option(\"value\"))\r\n },\r\n _getSubmitElement: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n return this._$submitElement\r\n } else {\r\n return this.callBase()\r\n }\r\n },\r\n _dispose: function() {\r\n this._detachFocusOutEvents();\r\n this.callBase()\r\n },\r\n _setDeprecatedOptions: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._deprecatedOptions, {\r\n showPopupTitle: {\r\n since: \"20.1\",\r\n alias: \"dropDownOptions.showTitle\"\r\n }\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_popup;\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.repaint();\r\n break;\r\n case \"opened\":\r\n this._renderOpenedState();\r\n break;\r\n case \"onOpened\":\r\n case \"onClosed\":\r\n this._initVisibilityActions();\r\n break;\r\n case \"onPopupInitialized\":\r\n this._initPopupInitializedAction();\r\n break;\r\n case \"fieldTemplate\":\r\n if ((0, _type.isDefined)(args.value)) {\r\n this._renderField()\r\n } else {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"acceptCustomValue\":\r\n case \"openOnFieldClick\":\r\n this._invalidate();\r\n break;\r\n case \"dropDownButtonTemplate\":\r\n case \"showDropDownButton\":\r\n this._updateButtons([\"dropDown\"]);\r\n break;\r\n case \"dropDownOptions\":\r\n this._popupOptionChanged(args);\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"));\r\n break;\r\n case \"popupPosition\":\r\n break;\r\n case \"deferRendering\":\r\n if ((0, _window.hasWindow)()) {\r\n this._createPopup()\r\n }\r\n break;\r\n case \"applyValueMode\":\r\n case \"applyButtonText\":\r\n case \"cancelButtonText\":\r\n case \"buttonsLocation\":\r\n this._setPopupOption(\"toolbarItems\", this._getPopupToolbarItems());\r\n break;\r\n case \"showPopupTitle\":\r\n this._setPopupOption(\"showTitle\", args.value);\r\n break;\r\n case \"useHiddenSubmitElement\":\r\n if (this._$submitElement) {\r\n this._$submitElement.remove();\r\n this._$submitElement = void 0\r\n }\r\n this._renderSubmitElement();\r\n break;\r\n case \"rtlEnabled\":\r\n this._updatePopupPosition(args.value);\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n open: function() {\r\n this.option(\"opened\", true)\r\n },\r\n close: function() {\r\n this.option(\"opened\", false)\r\n },\r\n field: function() {\r\n return (0, _element.getPublicElement)(this._input())\r\n },\r\n content: function() {\r\n return this._popup ? this._popup.content() : null\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxDropDownEditor\", DropDownEditor);\r\nvar _default = DropDownEditor;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/drop_down_editor/utils.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getSizeValue = exports.getElementWidth = void 0;\r\nvar _window = require(\"../../core/utils/window\");\r\nvar getElementWidth = function($element) {\r\n if ((0, _window.hasWindow)()) {\r\n return $element.outerWidth()\r\n }\r\n};\r\nexports.getElementWidth = getElementWidth;\r\nvar getSizeValue = function(size) {\r\n if (null === size) {\r\n size = void 0\r\n }\r\n if (\"function\" === typeof size) {\r\n size = size()\r\n }\r\n return size\r\n};\r\nexports.getSizeValue = getSizeValue;\r\n"],"sourceRoot":""}