{"version":3,"sources":["webpack:///./node_modules/devextreme/ui/track_bar.js","webpack:///./node_modules/devextreme/ui/tree_list.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.data_source_adapter.js","webpack:///./node_modules/devextreme/ui/validation_message.js","webpack:///./node_modules/devextreme/ui/validation/default_adapter.js","webpack:///./node_modules/devextreme/ui/tree_view/ui.tree_view.base.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.base.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.column_headers.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.columns_controller.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.data_controller.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.sorting.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.rows.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.context_menu.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.error_handling.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.grid_view.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.header_panel.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.state_storing.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.column_chooser.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.master_detail.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.editing.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.editor_factory.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.validating.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.virtual_scrolling.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.filter_row.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.header_filter.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.filter_sync.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.filter_builder.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.filter_panel.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.pager.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.columns_resizing_reordering.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.column_fixing.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.adaptivity.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.selection.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.search.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.keyboard_navigation.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.virtual_columns.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.focus.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.row_dragging.js","webpack:///./node_modules/devextreme/ui/validation_engine.js","webpack:///./node_modules/devextreme/ui/tree_view.js","webpack:///./node_modules/devextreme/ui/validator.js","webpack:///./node_modules/devextreme/ui/validation_summary.js","webpack:///./node_modules/devextreme/ui/tree_list/ui.tree_list.core.js","webpack:///./node_modules/devextreme/ui/validation_group.js","webpack:///./node_modules/devextreme/ui/tree_view/ui.tree_view.search.js"],"names":["exports","default","_renderer","_interopRequireDefault","_editor","_component_registrator","_extend","_window","_fx","obj","__esModule","TrackBar","inherit","_getDefaultOptions","extend","this","callBase","min","max","value","_initMarkup","$element","addClass","_renderWrapper","_renderContainer","_renderRange","_renderValue","_setRangeStyles","_render","_rangeStylesConfig","_$wrapper","appendTo","_$bar","_$range","val","option","_currentRatio","ratio","_needPreventAnimation","width","setAria","valuemin","valuemax","valuenow","options","stop","hasWindow","animate","type","duration","to","css","_optionChanged","args","name","_dispose","_default","module","_uiTree_list","_ui","_common","_type","_iterator","_data","_uiGrid_core","_array_utils","_array_store","_query","_uiGrid_core2","_deferred","queryByOptions","isFullBranchFilterMode","that","DataSourceAdapterTreeList","_createKeyGetter","keyExpr","getKeyExpr","compileGetter","_createKeySetter","isFunction","compileSetter","_createParentIdGetter","createParentIdSetter","parentIdExpr","_createItemsGetter","_createHasItemsGetter","hasItemsExpr","_createHasItemsSetter","_updateIndexByKeyObject","items","_indexByKey","each","index","item","key","_calculateHasItems","node","hasItems","parentIds","storeLoadOptions","isFullBranch","_hasItemsGetter","filter","data","_isChildrenLoaded","remoteOperations","filtering","loadOptions","children","length","hasChildren","_createVisibleItemsByNodes","nodes","result","i","visible","push","isRowExpanded","concat","_convertItemToNode","rootValue","nodeByKey","_keyGetter","parentId","_parentIdGetter","parentNode","isDefined","parent","_createNodesByItems","visibleItems","visibleByKey","_nodeByKey","rootNode","level","_convertDataToPlainStructure","_itemsGetter","isConverted","createObjectWithChanges","_keySetter","_parentIdSetter","childItems","itemsExpr","_createIdFilter","field","keys","parentIdFilters","combineFilters","_customizeRemoteOperations","operationTypes","apply","arguments","paging","expandVisibleNodes","sorting","_lastLoadOptions","isCustomLoading","_isReload","reload","cachedStoreData","collapseVisibleNodes","_getParentIdsToLoad","parentIdsToLoad","getNodeByKey","_handleDataLoading","expandedRowKeys","cachedPagingData","mergeStoreLoadData","_generateInfoToLoad","needChildren","keyMap","resultKeyMap","resultKeys","needToLoad","_loadParentsOrChildren","needLocalFiltering","_this","_that$_generateInfoTo","d","Deferred","isRemoteFiltering","maxFilterLengthInRequest","concatLoadedData","loadedData","_cachedStoreData","resolve","cachedNodes","map","id","reduce","encodeURI","JSON","stringify","itemData","store","fullData","_dataSource","loadFromStore","done","toArray","fail","reject","_loadParents","_loadChildrenIfNeed","when","_updateHasItemsMap","_getKeyInfo","keyOf","_applyBatch","changes","_this2","baseChanges","forEach","change","_applyInsert","_applyRemove","_setHasItems","hasItemsSetter","_hasItemsSetter","parentKeyOf","indexOf","Math","splice","getChildNodeKeys","_handleDataLoaded","sort","_fillNodes","needToExpand","foreachNodes","_processTreeStructure","_rootNode","Error","_isNodesInitializing","executeAction","root","_totalItemsCount","_handleDataLoadedCore","filterMode","needLoadParents","call","_handlePush","reshapeOnPush","_reshapeOnPush","isNeedReshape","init","dataSource","dataStructure","createAction","equalByValue","getRootNode","totalItemsCount","cache","isExpandedByKey","getIndexByKey","_changeRowExpandCore","slice","indexExpandedNodeKey","changeRowExpand","load","getNodeLeafKeys","childNode","parentKey","childrenKeys","loadDescendants","childrenOnly","Array","isArray","_createStoreLoadOptions","childKeys","child","getChildKeys","promise","forEachNode","callback","extender","create","component","_overlay","_string","_position","ValidationMessage","integrationOptions","templatesRenderAsynchronously","shading","height","closeOnOutsideClick","closeOnTargetScroll","animation","propagateOutsideClick","_checkParentVisibility","rtlEnabled","contentTemplate","_renderInnerHtml","maxWidth","mode","validationErrors","positionRequest","describedElement","boundary","offset","h","v","_init","updateMaxWidth","_updatePosition","_wrapper","_toggleModeClass","_updateContentId","contentId","attr","$content","element","validationErrorMessage","err","encodeHtml","message","html","toggleClass","_target$outerWidth","target","targetWidth","outerWidth","_this$option","positionSide","getDefaultAlignment","verticalPositions","my","at","collision","ctor","editor","validator","validationRequestsCallbacks","handler","validationRequest","add","on","remove","getValue","getCurrentValidationError","bypass","applyValidationResults","params","brokenRules","validationStatus","status","reset","focus","_dom_adapter","_events_engine","_message","_click","_element","_check_box","_index","_pointer","_double_click","_ui2","_load_indicator","_ui3","NODE_CLASS","NODE_CONTAINER_CLASS","NODE_LOAD_INDICATOR_CLASS","OPENED_NODE_CONTAINER_CLASS","IS_LEAF","ITEM_CLASS","ITEM_WITH_CHECKBOX_CLASS","ITEM_WITHOUT_CHECKBOX_CLASS","ITEM_DATA_KEY","TOGGLE_ITEM_VISIBILITY_CLASS","LOAD_INDICATOR_CLASS","LOAD_INDICATOR_WRAPPER_CLASS","TOGGLE_ITEM_VISIBILITY_OPENED_CLASS","SELECT_ALL_ITEM_CLASS","_supportedKeys","e","click","$itemElement","currentTarget","_itemClickHandler","_getEventNameByOption","addNamespace","_expandEventHandler","select","preventDefault","$focusedElement","checkboxInstance","_getCheckBoxInstance","currentState","_updateItemSelection","find","get","toggleExpandedNestedItems","state","$rootElement","rootItem","_getItemData","_toggleExpandedNestedItems","enter","_showCheckboxes","space","asterisk","bind","minus","len","_dataAdapter","getNodeByItem","_toggleExpandedState","_getNodeElement","_encodeString","internalFields","$nodeByKey","$node","querySelector","_activeStateUnit","_widgetClass","defaultOptions","animationEnabled","deferRendering","expandAllEnabled","selectNodesRecursive","expandNodesRecursive","showCheckBoxesMode","selectAllText","format","onItemSelectionChanged","onItemExpanded","onItemCollapsed","scrollDirection","virtualModeEnabled","focusStateEnabled","selectionMode","expandEvent","selectByClick","createChildren","onSelectAllValueChanged","useDeferUpdateForTemplates","_initSelectedItems","noop","_syncSelectionOptions","asyncNoop","_fireSelectionChanged","selectionChangePromise","_selectionChangePromise","_createActionByOption","excludeValidators","_createSelectAllValueChangedAction","_selectAllValueChangedAction","_fireSelectAllValueChanged","_checkBoxModeChange","previousValue","selectAllExists","_$selectAllItem","_renderSelectAllItem","repaint","_removeSelection","getFullData","_","_hasChildren","toggleSelection","dxCheckBox","_scrollableContainer","_initDataAdapter","_filter","_initAccessors","_initExpandEvent","setOption","_initDataSource","_useCustomChildrenLoader","_loadChildrenByCustomLoader","newItems","_isVirtualMode","_initVirtualMode","custom","internal","_isDataStructurePlain","invocationResult","then","fromPromise","_combineFilter","_dataSourceLoadErrorHandler","_renderEmptyMessage","_initStoreChangeHandlers","_dataSourceChangedHandler","_initialized","_removeTreeViewLoadIndicator","_treeViewLoadIndicator","_createTreeViewLoadIndicator","_createComponent","_dataSourceLoadingChangedHandler","isLoading","resultFilter","isLoaded","$wrapper","itemsContainer","append","newItem","addItem","isFiltered","_updateLevel","removedKey","_markChildrenItemsToRemove","_removeItems","removeItem","_this3","_this4","counter","$container","_getContainerByParentKey","_renderItems","getChildrenNodes","_getOldContainer","_renderNodeContainer","_isRootLevel","_renderScrollableContainer","_getAccessors","accessors","_getDataAdapterOptions","multipleSelection","_isSingleSelection","recursiveSelection","_isRecursiveSelection","recursiveExpansion","selectionRequired","dataType","getRootNodes","_renderContentImpl","$nodeContainer","_selectAllEnabled","_fireContentReadyAction","getDataSource","skipContentReadyAction","update","direction","useKeyboard","$parent","_expandedGetter","_createDOMElement","prependTo","role","label","_displayGetter","expanded","_getLevel","hasClass","parseInt","_renderItem","_renderedItemsCount","nodeIndex","nodeData","showCheckBox","_renderCheckBox","selected","_toggleSelectedClass","_renderChildren","_setAriaSelected","_this5","_renderToggleItemVisibilityIcon","_loadSublevel","childNodes","_renderSublevel","_getActualNode","_addLeafClass","cachedNode","_this6","deferred","childrenNodes","_getChildNodes","_loadNestedItems","getNodesByItems","$nestedNodeContainer","childNodesByChildrenKeys","firstChild","_updateParentsState","_normalizeIconState","_executeItemRenderAction","itemIndex","itemElement","_getNode","_getItemRenderAction","getPublicNode","expandedEventName","$itemsContainer","_itemContainer","itemSelector","_itemSelector","off","event","identifier","isPrimitive","isElementNode","_getNodeByElement","closest","_decodeString","disabled","_createLoadIndicator","toggleExpansion","_updateExpandedItemsUI","$icon","not","hide","_renderToggleItemVisibilityIconClick","_this7","eventName","NAME","isHiddenNode","is","nodeContainerExists","completionCallback","_animateNodeContainer","_loadNestedItemsWithUpdate","_this8","actualNodeData","_this9","publicNode","_areNodesExists","_appendItems","keyOfRootItem","nodeHeight","from","maxHeight","complete","_fireExpandedStateUpdatedEvent","isExpanded","optionName","_itemDXEventHandler","_itemEventHandler","hasNewItems","$loadIndicator","getInstance","show","removeClass","_emptyMessageContainer","content","_renderContent","_contentAlreadyRendered","first","isAllSelected","text","onValueChanged","_onSelectAllCheckboxValueChanged","before","_toggleSelectAll","toggleSelectAll","_updateItemsUI","$checkbox","_changeCheckboxValue","_disabledGetter","_toggleNodeDisabledState","$item","eq","toggleNodeDisabledState","_itemOptionChanged","property","_isLastSelectedBranch","selectedNodesKeys","deep","keyIndex","_isLastRequired","isSingleMode","getSelectedNodeKeys","dxEvent","_this10","selectedKeys","_fireItemSelectionChanged","needFireSelectAllChanged","initiator","_findItemElementByItem","_this11","getData","nodeSelection","selectAllCheckbox","_setOptionWithoutOptionChange","$parentNode","parents","parentValue","_itemEventHandlerImpl","action","actionArgs","_extendActionArgs","_itemContextMenuHandler","_createEventHandler","_itemHoldHandler","_itemClass","_itemDataKey","_attachClickEvent","clickSelector","pointerDownSelector","pointerDownEvent","down","$itemContainer","_itemPointerDownHandler","isDefaultPrevented","_updateSelectionToFirstItem","$items","startIndex","_updateSelectionToLastItem","_focusInHandler","_this12","_updateFocusState","clearTimeout","_setFocusedItemTimeout","setTimeout","_setFocusedItem","$activeItem","_getActiveItem","getPublicElement","$target","_findNonDisabledNodes","$nodes","_moveFocus","location","FOCUS_UP","FOCUS_DOWN","FOCUS_FIRST","FOCUS_LAST","FOCUS_LEFT","FOCUS_RIGHT","_nodeElements","$prevItem","_prevItem","prevItemElement","_getNodeItemElement","scrollToElement","shiftKey","$nextItem","_nextItem","nextItemElement","$firstItem","$lastItem","last","_expandFocusedContainer","_collapseFocusedContainer","$focusedNode","_getClosestNonDisabledNode","nodeElement","collapsedNode","isString","decodeURI","updateDimensions","_this13","resolveWith","selectItem","unselectItem","expandItem","collapseItem","getNodes","getTreeNodes","getSelectedNodes","_this14","getSelectedNodesKeys","log","selectAll","unselectAll","expandAll","dataAdapter","collapseAll","getExpandedNodesKeys","scrollToItem","keyOrItemOrElement","_this15","nodeKeysToExpand","scrollCallback","_expandNodes","reverse","always","scrollToElementTopLeft","keysToExpand","_this16","resultCallback","callbacksByNodes","_themes","callModuleItemsMethod","registerModulesOrder","TreeList","modules","_defaultOptionsRules","device","isMaterial","showRowLines","showColumnLines","headerFilter","editing","useIcons","processModules","_clean","handled","_dimensionChanged","_visibilityChanged","getView","render","deferRender","isReady","getController","beginUpdate","endUpdate","_controllers","_views","registerModule","ColumnsController","controllers","columns","_getFirstItems","dataSourceAdapter","getFirstDataColumnIndex","visibleColumns","getVisibleColumns","visibleColumnsLength","firstDataColumnIndex","command","DataController","_uiTree_list2","_getDataSourceAdapter","_getNodeLevel","_generateDataItem","rowType","_loadOnOptionChange","_isItemEquals","item1","item2","publicMethods","cancel","expandRow","collapseRow","optionChanged","_columnsController","_items","_refreshDataSource","expandNodesOnFiltering","autoExpandAll","onNodesInitialized","enabled","RowsView","views","rowsView","_renderIconContainer","$iconContainer","watch","row","empty","_renderIcons","hasIcon","$iconElement","_renderCellCommandContent","container","model","_processTemplate","template","renderingTemplate","column","createCellContent","_updateCell","$cell","_rowClick","dataController","_dataController","$targetElement","isExpandIcon","rowIndex","_createRow","$rowElement","GridView","gridView","_getWidgetAriaLabel","_getTableRoleName","extenders","resizing","_toggleBestFitMode","isBestFit","_rowsView","getTableElement","addWidgetPrefix","origApplyState","stateStoring","applyState","Object","prototype","hasOwnProperty","getUserState","_processItems","_processDataItem","EditingController","_generateNewItem","_needInsertItem","changeType","_isEditColumnVisible","editingOptions","allowAdding","_isDefaultButtonVisible","button","_getVisibleEditRowIndex","removed","isNewRow","_getEditingButtons","buttons","unshift","_getButtonConfig","_beforeSaveEditData","addRowByRowIndex","getVisibleRows","addRow","_initNewRow","parentIdSetter","_allowEditAction","_needToCloseEditableCell","isEditing","getButtonLocalizationNames","names","originalRowClick","originalRowDblClick","_rowDblClick","validateClick","originalClickHandler","needToCallOriginalClickHandler","RowsViewExtender","editingController","_editingController","isEditRow","texts","addRowToNode","refresh","headerPanel","EditingControllerExtender","processItems","processDataItem","editorFactory","oldDefaultOptions","originalDataControllerExtender","originalDataSourceAdapterExtender","virtualScrollController","_virtualScrollController","viewportItemIndex","getViewportItemIndex","setViewportItemIndex","scrolling","originalHandleDataChanged","_handleDataChanged","nodeExists","array","currentKey","selection","recursive","selectionController","isRecursiveSelection","updateSelectionState","selectedItemKeys","_selectionStateByKey","_getSelectionConfig","_arguments","config","plainItems","all","getCachedStoreData","isItemSelected","isRowSelected","isSelectableItem","getItemData","renderSelectCheckBoxContainer","_renderSelectCheckBox","isSelected","_attachCheckBoxClickEvent","_updateSelectColumn","_getSelectAllNodeKeys","isSelectAll","visibleKeys","selectedVisibleKeys","some","focusedItemIndex","selectRows","deselectAll","deselectRows","preserve","isDeselect","selectedRowKeys","normalizedArgs","_normalizeSelectionArgs","_isSelectionNormalizing","selectedRowsData","changeItemSelection","keyboardKeys","shift","getKeyByRowIndex","_updateParentSelectionState","_updateChildrenSelectionState","_updateSelectionStateCore","_getSelectedParentKeys","useCash","selectedParentNode","_getSelectedChildKeys","keysToIgnore","ignoreKeyIndex","_normalizeParentKeys","parentNodeKeys","_normalizeChildrenKeys","_normalizeSelectedRowKeysCore","isSelect","currentSelectedRowKeys","currentDeselectedRowKeys","_updateSelectedItems","_isModeLeavesOnly","_removeDuplicatedKeys","processedKeys","_getAllChildKeys","_getAllSelectedRowKeys","parentKeys","_getParentSelectedRowKeys","_getLeafSelectedRowKeys","isRecursive","removedItemKeys","getSelectedRowKeys","getSelectedRowsData","columnHeadersView","renderSelectAll","_renderSelectAllCheckBox","_isSortableElement","keyboardNavigation","_leftRightKeysHandler","eventArgs","getVisibleRowIndex","ctrl","directionCode","_getDirectionCodeByKey","keyName","_isFocusedRowInside","focusedRowKey","getRowIndexByKey","focusedRow","getParentKey","parentData","expandAscendants","getPageIndexByKey","getCombinedFilter","getSortDataSourceParameters","pageIndex","floor","pageSize","_class","_array","_events_strategy","_errors","_number","_promise","_inheritsLoose","subClass","superClass","constructor","_setPrototypeOf","o","p","setPrototypeOf","__proto__","STATUS","BaseRuleValidator","_proto","defaultMessage","getFormatter","defaultFormattedMessage","_isValueEmpty","rulesValidators","required","validate","rule","valueArray","every","itemValue","_validate","RequiredRuleValidator","_BaseRuleValidator","String","trim","NumericRuleValidator","_BaseRuleValidator2","ignoreEmptyValue","useCultureSettings","isNaN","parse","isNumeric","RangeRuleValidator","_BaseRuleValidator3","validNumber","numeric","validValue","number","parseFloat","valueOf","isDate","StringLengthRuleValidator","_BaseRuleValidator4","_value","range","CustomRuleValidator","_BaseRuleValidator5","dataGetter","extraParams","validationCallback","AsyncRuleValidator","_CustomRuleValidator","_proto7","reevaluate","callbackResult","isPromise","_getWrappedPromise","res","isValid","isObject","CompareRuleValidator","_BaseRuleValidator6","comparisonTarget","otherValue","comparisonType","PatternRuleValidator","_BaseRuleValidator7","pattern","RegExp","test","EmailRuleValidator","_BaseRuleValidator8","stringLength","async","compare","email","GroupConfig","group","validators","_pendingValidators","_onValidatorStatusChanged","_resetValidationInfo","_eventsStrategy","EventsStrategy","_unsubscribeFromAllChangeEvents","validatorResult","_addPendingValidator","_subscribeToChangeEvents","_raiseValidatedEvent","_updateValidationInfo","_validationInfo","_unsubscribeFromChangeEvents","grep","_removePendingValidator","inArray","_orderBrokenRules","orderedRules","foundRules","_updateBrokenRules","rules","_resolveIfComplete","fireEvent","_synchronizeValidationInfo","removeRegisteredValidator","registerValidator","eventHandler","ValidationEngine","groups","getGroupConfig","findGroup","$dxGroup","dxValidationGroup","initGroups","addGroup","removeGroup","_setDefaultMessage","info","_addBrokenRule","brokenRule","validationRules","pendingRules","asyncRuleItems","ruleValidationResult","ruleValidator","_validateAsyncRules","_ref","asyncResults","validateResult","asyncResult","ruleResult","_getPatchedRuleResult","_updateRuleConfig","values","_getAsyncRulesResult","_ref2","isBoolean","_ref3","registerValidatorInGroup","groupConfig","_shouldRemoveGroup","validatorsInGroup","isDefaultGroup","isValidationGroupInstance","initValidationOptions","initedOptions","prop","synchronizeValidationOptions","_ref4","newStatus","validationError","validateGroup","resetGroup","_element_data","_callbacks","_dom_component","_validation_engine","_default_adapter","_guid","Validator","_initOptions","_initGroupRegistration","focused","_initAdapter","skipValidation","_findGroup","_groupWasInit","_validationGroup","_setOptionsByReference","_optionsByReference","validationGroup","dxStandardEditor","adapter","callbacks","_toggleRTLDirection","isRtl","_this$option$editor$o","_this$option$editor","_resetValidationRules","_getValidationRules","_validationRules","_modelByElement","currentError","currentResult","editorSpecific","toString","_applyValidationResult","_updateValidationResult","validatedAction","_useTemplates","_uiCollection_widget","ValidationSummary","noDataText","_unsubscribeGroup","groupSubscription","_groupValidationHandler","_getOrderedItems","orderedItems","foundItems","_validationSummary","_itemValidationHandler","itemsChanged","_loop","foundRule","VALIDATION_SUMMARY_CLASS","_postprocessRenderItem","callBack","ignoreHasChildren","_validation_summary","_validator","ValidationGroup","_DOMComponent","validatorContainer","summaryContainer","_uiTree_view","TreeViewSearch","_addWidgetPrefix","className","_updateSearch","_repaintContainer","_updateDataAdapter","searchValue","searchMode","searchExpr","_searchEditor","editorOptions","_getSearchEditorOptions","rootNodes","isSearchMode","_addWidgetClass","_removeSearchBox"],"mappings":"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","file":"vendors~674e2897.665365650f093de94fb7.bundle.js","sourcesContent":["/**\r\n * DevExtreme (ui/track_bar.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 _editor = _interopRequireDefault(require(\"./editor/editor\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _window = require(\"../core/utils/window\");\r\nvar _fx = _interopRequireDefault(require(\"../animation/fx\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TRACKBAR_CLASS = \"dx-trackbar\";\r\nvar TRACKBAR_CONTAINER_CLASS = \"dx-trackbar-container\";\r\nvar TRACKBAR_RANGE_CLASS = \"dx-trackbar-range\";\r\nvar TRACKBAR_WRAPPER_CLASS = \"dx-trackbar-wrapper\";\r\nvar TrackBar = _editor.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n min: 0,\r\n max: 100,\r\n value: 0\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TRACKBAR_CLASS);\r\n this._renderWrapper();\r\n this._renderContainer();\r\n this._renderRange();\r\n this._renderValue();\r\n this._setRangeStyles();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._setRangeStyles(this._rangeStylesConfig())\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = (0, _renderer.default)(\"
\").addClass(TRACKBAR_WRAPPER_CLASS).appendTo(this.$element())\r\n },\r\n _renderContainer: function() {\r\n this._$bar = (0, _renderer.default)(\"
\").addClass(TRACKBAR_CONTAINER_CLASS).appendTo(this._$wrapper)\r\n },\r\n _renderRange: function() {\r\n this._$range = (0, _renderer.default)(\"
\").addClass(TRACKBAR_RANGE_CLASS).appendTo(this._$bar)\r\n },\r\n _renderValue: function() {\r\n var val = this.option(\"value\");\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (min > max) {\r\n return\r\n }\r\n if (val < min) {\r\n this.option(\"value\", min);\r\n this._currentRatio = 0;\r\n return\r\n }\r\n if (val > max) {\r\n this.option(\"value\", max);\r\n this._currentRatio = 1;\r\n return\r\n }\r\n var ratio = min === max ? 0 : (val - min) / (max - min);\r\n !this._needPreventAnimation && this._setRangeStyles({\r\n width: 100 * ratio + \"%\"\r\n });\r\n this.setAria({\r\n valuemin: this.option(\"min\"),\r\n valuemax: max,\r\n valuenow: val\r\n });\r\n this._currentRatio = ratio\r\n },\r\n _rangeStylesConfig: function() {\r\n return {\r\n width: 100 * this._currentRatio + \"%\"\r\n }\r\n },\r\n _setRangeStyles: function(options) {\r\n _fx.default.stop(this._$range);\r\n if (!options) {\r\n this._$range.css({\r\n width: 0\r\n });\r\n return\r\n }\r\n if (this._needPreventAnimation || !(0, _window.hasWindow)()) {\r\n return\r\n }\r\n _fx.default.animate(this._$range, {\r\n type: \"custom\",\r\n duration: 100,\r\n to: options\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._renderValue();\r\n this.callBase(args);\r\n break;\r\n case \"max\":\r\n case \"min\":\r\n this._renderValue();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dispose: function() {\r\n _fx.default.stop(this._$range);\r\n this.callBase()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxTrackBar\", TrackBar);\r\nvar _default = TrackBar;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/tree_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 _ui = _interopRequireDefault(require(\"./tree_list/ui.tree_list\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _ui.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.data_source_adapter.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 _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.utils\"));\r\nvar _array_utils = require(\"../../data/array_utils\");\r\nvar _array_store = _interopRequireDefault(require(\"../../data/array_store\"));\r\nvar _query = _interopRequireDefault(require(\"../../data/query\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"../grid_core/ui.grid_core.data_source_adapter\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _store_helper = _interopRequireDefault(require(\"../../data/store_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar queryByOptions = _store_helper.default.queryByOptions;\r\nvar DEFAULT_KEY_EXPRESSION = \"id\";\r\nvar isFullBranchFilterMode = function(that) {\r\n return \"fullBranch\" === that.option(\"filterMode\")\r\n};\r\nvar DataSourceAdapterTreeList = _uiGrid_core2.default.inherit(function() {\r\n var getChildKeys = function(that, keys) {\r\n var childKeys = [];\r\n keys.forEach(function(key) {\r\n var node = that.getNodeByKey(key);\r\n node && node.children.forEach(function(child) {\r\n childKeys.push(child.key)\r\n })\r\n });\r\n return childKeys\r\n };\r\n return {\r\n _createKeyGetter: function() {\r\n var keyExpr = this.getKeyExpr();\r\n return (0, _data.compileGetter)(keyExpr)\r\n },\r\n _createKeySetter: function() {\r\n var keyExpr = this.getKeyExpr();\r\n if ((0, _type.isFunction)(keyExpr)) {\r\n return keyExpr\r\n }\r\n return (0, _data.compileSetter)(keyExpr)\r\n },\r\n _createParentIdGetter: function() {\r\n return (0, _data.compileGetter)(this.option(\"parentIdExpr\"))\r\n },\r\n createParentIdSetter: function() {\r\n var parentIdExpr = this.option(\"parentIdExpr\");\r\n if ((0, _type.isFunction)(parentIdExpr)) {\r\n return parentIdExpr\r\n }\r\n return (0, _data.compileSetter)(parentIdExpr)\r\n },\r\n _createItemsGetter: function() {\r\n return (0, _data.compileGetter)(this.option(\"itemsExpr\"))\r\n },\r\n _createHasItemsGetter: function() {\r\n var hasItemsExpr = this.option(\"hasItemsExpr\");\r\n return hasItemsExpr && (0, _data.compileGetter)(hasItemsExpr)\r\n },\r\n _createHasItemsSetter: function() {\r\n var hasItemsExpr = this.option(\"hasItemsExpr\");\r\n if ((0, _type.isFunction)(hasItemsExpr)) {\r\n return hasItemsExpr\r\n }\r\n return hasItemsExpr && (0, _data.compileSetter)(hasItemsExpr)\r\n },\r\n _updateIndexByKeyObject: function(items) {\r\n var that = this;\r\n that._indexByKey = {};\r\n (0, _iterator.each)(items, function(index, item) {\r\n that._indexByKey[item.key] = index\r\n })\r\n },\r\n _calculateHasItems: function(node, options) {\r\n var that = this;\r\n var parentIds = options.storeLoadOptions.parentIds;\r\n var hasItems;\r\n var isFullBranch = isFullBranchFilterMode(that);\r\n if (that._hasItemsGetter && (parentIds || !options.storeLoadOptions.filter || isFullBranch)) {\r\n hasItems = that._hasItemsGetter(node.data)\r\n }\r\n if (void 0 === hasItems) {\r\n if (!that._isChildrenLoaded[node.key] && options.remoteOperations.filtering && (parentIds || isFullBranch)) {\r\n hasItems = true\r\n } else {\r\n if (options.loadOptions.filter && !options.remoteOperations.filtering && isFullBranch) {\r\n hasItems = node.children.length\r\n } else {\r\n hasItems = node.hasChildren\r\n }\r\n }\r\n }\r\n return !!hasItems\r\n },\r\n _createVisibleItemsByNodes: function(nodes, options) {\r\n var that = this;\r\n var result = [];\r\n for (var i = 0; i < nodes.length; i++) {\r\n if (nodes[i].visible) {\r\n result.push(nodes[i])\r\n }\r\n if ((that.isRowExpanded(nodes[i].key, options) || !nodes[i].visible) && nodes[i].hasChildren && nodes[i].children.length) {\r\n result = result.concat(that._createVisibleItemsByNodes(nodes[i].children, options))\r\n }\r\n }\r\n return result\r\n },\r\n _convertItemToNode: function(item, rootValue, nodeByKey) {\r\n var key = this._keyGetter(item);\r\n var parentId = this._parentIdGetter(item);\r\n parentId = (0, _type.isDefined)(parentId) ? parentId : rootValue;\r\n var parentNode = nodeByKey[parentId] = nodeByKey[parentId] || {\r\n key: parentId,\r\n children: []\r\n };\r\n var node = nodeByKey[key] = nodeByKey[key] || {\r\n key: key,\r\n children: []\r\n };\r\n node.data = item;\r\n node.parent = parentNode;\r\n return node\r\n },\r\n _createNodesByItems: function(items, visibleItems) {\r\n var that = this;\r\n var rootValue = that.option(\"rootValue\");\r\n var visibleByKey = {};\r\n var nodeByKey = that._nodeByKey = {};\r\n var i;\r\n if (visibleItems) {\r\n for (i = 0; i < visibleItems.length; i++) {\r\n visibleByKey[this._keyGetter(visibleItems[i])] = true\r\n }\r\n }\r\n for (i = 0; i < items.length; i++) {\r\n var node = that._convertItemToNode(items[i], rootValue, nodeByKey);\r\n if (void 0 === node.key) {\r\n return\r\n }\r\n node.visible = !visibleItems || !!visibleByKey[node.key];\r\n if (node.parent) {\r\n node.parent.children.push(node)\r\n }\r\n }\r\n var rootNode = nodeByKey[rootValue] || {\r\n key: rootValue,\r\n children: []\r\n };\r\n rootNode.level = -1;\r\n return rootNode\r\n },\r\n _convertDataToPlainStructure: function(data, parentId, result) {\r\n var key;\r\n if (this._itemsGetter && !data.isConverted) {\r\n result = result || [];\r\n for (var i = 0; i < data.length; i++) {\r\n var item = (0, _array_utils.createObjectWithChanges)(data[i]);\r\n key = this._keyGetter(item);\r\n if (void 0 === key) {\r\n key = result.length + 1;\r\n this._keySetter(item, key)\r\n }\r\n this._parentIdSetter(item, void 0 === parentId ? this.option(\"rootValue\") : parentId);\r\n result.push(item);\r\n var childItems = this._itemsGetter(item);\r\n if (childItems && childItems.length) {\r\n this._convertDataToPlainStructure(childItems, key, result);\r\n var itemsExpr = this.option(\"itemsExpr\");\r\n if (!(0, _type.isFunction)(itemsExpr)) {\r\n delete item[itemsExpr]\r\n }\r\n }\r\n }\r\n result.isConverted = true;\r\n return result\r\n }\r\n return data\r\n },\r\n _createIdFilter: function(field, keys) {\r\n var parentIdFilters = [];\r\n for (var i = 0; i < keys.length; i++) {\r\n parentIdFilters.push([field, \"=\", keys[i]])\r\n }\r\n return _uiGrid_core.default.combineFilters(parentIdFilters, \"or\")\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n this.callBase.apply(this, arguments);\r\n options.remoteOperations.paging = false;\r\n var expandVisibleNodes = false;\r\n if (this.option(\"autoExpandAll\")) {\r\n options.remoteOperations.sorting = false;\r\n options.remoteOperations.filtering = false;\r\n if ((!this._lastLoadOptions || operationTypes.filtering && !options.storeLoadOptions.filter) && !options.isCustomLoading) {\r\n expandVisibleNodes = true\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n this._isReload = this._isReload || operationTypes.reload;\r\n if (!options.cachedStoreData) {\r\n this._isChildrenLoaded = {};\r\n if (this._isReload) {\r\n this._nodeByKey = {}\r\n }\r\n }\r\n if (this.option(\"expandNodesOnFiltering\") && (operationTypes.filtering || this._isReload && options.storeLoadOptions.filter)) {\r\n if (options.storeLoadOptions.filter) {\r\n expandVisibleNodes = true\r\n } else {\r\n options.collapseVisibleNodes = true\r\n }\r\n }\r\n }\r\n options.expandVisibleNodes = expandVisibleNodes\r\n },\r\n _getParentIdsToLoad: function(parentIds) {\r\n var parentIdsToLoad = [];\r\n for (var i = 0; i < parentIds.length; i++) {\r\n var node = this.getNodeByKey(parentIds[i]);\r\n if (!node || node.hasChildren && !node.children.length) {\r\n parentIdsToLoad.push(parentIds[i])\r\n }\r\n }\r\n return parentIdsToLoad\r\n },\r\n _handleDataLoading: function(options) {\r\n var rootValue = this.option(\"rootValue\");\r\n var parentIdExpr = this.option(\"parentIdExpr\");\r\n var parentIds = options.storeLoadOptions.parentIds;\r\n if (parentIds) {\r\n options.isCustomLoading = false\r\n }\r\n this.callBase.apply(this, arguments);\r\n if (options.remoteOperations.filtering && !options.isCustomLoading) {\r\n if (isFullBranchFilterMode(this) && options.cachedStoreData || !options.storeLoadOptions.filter) {\r\n var expandedRowKeys = options.collapseVisibleNodes ? [] : this.option(\"expandedRowKeys\");\r\n parentIds = [rootValue].concat(expandedRowKeys).concat(parentIds || []);\r\n var parentIdsToLoad = options.data ? this._getParentIdsToLoad(parentIds) : parentIds;\r\n if (parentIdsToLoad.length) {\r\n options.cachedPagingData = void 0;\r\n options.data = void 0;\r\n options.mergeStoreLoadData = true\r\n }\r\n options.storeLoadOptions.parentIds = parentIdsToLoad;\r\n options.storeLoadOptions.filter = this._createIdFilter(parentIdExpr, parentIdsToLoad)\r\n }\r\n }\r\n },\r\n _generateInfoToLoad: function(data, needChildren) {\r\n var that = this;\r\n var key;\r\n var keyMap = {};\r\n var resultKeyMap = {};\r\n var resultKeys = [];\r\n var rootValue = that.option(\"rootValue\");\r\n var i;\r\n for (i = 0; i < data.length; i++) {\r\n key = needChildren ? that._parentIdGetter(data[i]) : that._keyGetter(data[i]);\r\n keyMap[key] = true\r\n }\r\n for (i = 0; i < data.length; i++) {\r\n key = needChildren ? that._keyGetter(data[i]) : that._parentIdGetter(data[i]);\r\n var needToLoad = needChildren ? that.isRowExpanded(key) : key !== rootValue;\r\n if (!keyMap[key] && !resultKeyMap[key] && needToLoad) {\r\n resultKeyMap[key] = true;\r\n resultKeys.push(key)\r\n }\r\n }\r\n return {\r\n keyMap: resultKeyMap,\r\n keys: resultKeys\r\n }\r\n },\r\n _loadParentsOrChildren: function(data, options, needChildren) {\r\n var _this = this;\r\n var that = this;\r\n var filter;\r\n var needLocalFiltering;\r\n var _that$_generateInfoTo = that._generateInfoToLoad(data, needChildren),\r\n keys = _that$_generateInfoTo.keys,\r\n keyMap = _that$_generateInfoTo.keyMap;\r\n var d = new _deferred.Deferred;\r\n var isRemoteFiltering = options.remoteOperations.filtering;\r\n var maxFilterLengthInRequest = that.option(\"maxFilterLengthInRequest\");\r\n var loadOptions = isRemoteFiltering ? options.storeLoadOptions : options.loadOptions;\r\n\r\n function concatLoadedData(loadedData) {\r\n if (isRemoteFiltering) {\r\n that._cachedStoreData = that._cachedStoreData.concat(loadedData)\r\n }\r\n return data.concat(loadedData)\r\n }\r\n if (!keys.length) {\r\n return d.resolve(data)\r\n }\r\n var cachedNodes = keys.map(function(id) {\r\n return _this.getNodeByKey(id)\r\n }).filter(function(node) {\r\n return node && node.data\r\n });\r\n if (cachedNodes.length === keys.length) {\r\n if (needChildren) {\r\n cachedNodes = cachedNodes.reduce(function(result, node) {\r\n return result.concat(node.children)\r\n }, [])\r\n }\r\n if (cachedNodes.length) {\r\n return that._loadParentsOrChildren(concatLoadedData(cachedNodes.map(function(node) {\r\n return node.data\r\n })), options, needChildren)\r\n }\r\n }\r\n var keyExpr = needChildren ? that.option(\"parentIdExpr\") : that.getKeyExpr();\r\n filter = that._createIdFilter(keyExpr, keys);\r\n var filterLength = encodeURI(JSON.stringify(filter)).length;\r\n if (filterLength > maxFilterLengthInRequest) {\r\n filter = function(itemData) {\r\n return keyMap[that._keyGetter(itemData)]\r\n };\r\n needLocalFiltering = isRemoteFiltering\r\n }\r\n loadOptions = (0, _extend.extend)({}, loadOptions, {\r\n filter: !needLocalFiltering ? filter : null\r\n });\r\n var store = options.fullData ? new _array_store.default(options.fullData) : that._dataSource.store();\r\n that.loadFromStore(loadOptions, store).done(function(loadedData) {\r\n if (loadedData.length) {\r\n if (needLocalFiltering) {\r\n loadedData = (0, _query.default)(loadedData).filter(filter).toArray()\r\n }\r\n that._loadParentsOrChildren(concatLoadedData(loadedData), options, needChildren).done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve(data)\r\n }\r\n }).fail(d.reject);\r\n return d\r\n },\r\n _loadParents: function(data, options) {\r\n return this._loadParentsOrChildren(data, options)\r\n },\r\n _loadChildrenIfNeed: function(data, options) {\r\n if (isFullBranchFilterMode(this)) {\r\n return this._loadParentsOrChildren(data, options, true)\r\n }\r\n return (0, _deferred.when)(data)\r\n },\r\n _updateHasItemsMap: function(options) {\r\n var parentIds = options.storeLoadOptions.parentIds;\r\n if (parentIds) {\r\n for (var i = 0; i < parentIds.length; i++) {\r\n this._isChildrenLoaded[parentIds[i]] = true\r\n }\r\n }\r\n },\r\n _getKeyInfo: function() {\r\n return {\r\n key: function() {\r\n return \"key\"\r\n },\r\n keyOf: function(data) {\r\n return data.key\r\n }\r\n }\r\n },\r\n _applyBatch: function(changes) {\r\n var _this2 = this;\r\n var baseChanges = [];\r\n changes.forEach(function(change) {\r\n if (\"insert\" === change.type) {\r\n baseChanges = baseChanges.concat(_this2._applyInsert(change))\r\n } else {\r\n if (\"remove\" === change.type) {\r\n baseChanges = baseChanges.concat(_this2._applyRemove(change))\r\n } else {\r\n if (\"update\" === change.type) {\r\n baseChanges.push({\r\n type: change.type,\r\n key: change.key,\r\n data: {\r\n data: change.data\r\n }\r\n })\r\n }\r\n }\r\n }\r\n });\r\n this.callBase(baseChanges)\r\n },\r\n _setHasItems: function(node, value) {\r\n var hasItemsSetter = this._hasItemsSetter;\r\n node.hasChildren = value;\r\n if (hasItemsSetter && node.data) {\r\n hasItemsSetter(node.data, value)\r\n }\r\n },\r\n _applyInsert: function(change) {\r\n var that = this;\r\n var baseChanges = [];\r\n var parentId = that.parentKeyOf(change.data);\r\n var parentNode = that.getNodeByKey(parentId);\r\n if (parentNode) {\r\n var rootValue = that.option(\"rootValue\");\r\n var node = that._convertItemToNode(change.data, rootValue, that._nodeByKey);\r\n node.hasChildren = false;\r\n node.level = parentNode.level + 1;\r\n node.visible = true;\r\n parentNode.children.push(node);\r\n that._isChildrenLoaded[node.key] = true;\r\n that._setHasItems(parentNode, true);\r\n if ((!parentNode.parent || that.isRowExpanded(parentNode.key)) && void 0 !== change.index) {\r\n var index = that.items().indexOf(parentNode) + 1;\r\n index += change.index >= 0 ? Math.min(change.index, parentNode.children.length) : parentNode.children.length;\r\n baseChanges.push({\r\n type: change.type,\r\n data: node,\r\n index: index\r\n })\r\n }\r\n }\r\n return baseChanges\r\n },\r\n _applyRemove: function(change) {\r\n var baseChanges = [];\r\n var node = this.getNodeByKey(change.key);\r\n var parentNode = node && node.parent;\r\n if (parentNode) {\r\n var index = parentNode.children.indexOf(node);\r\n if (index >= 0) {\r\n parentNode.children.splice(index, 1);\r\n if (!parentNode.children.length) {\r\n this._setHasItems(parentNode, false)\r\n }\r\n baseChanges.push(change);\r\n baseChanges = baseChanges.concat(this.getChildNodeKeys(change.key).map(function(key) {\r\n return {\r\n type: change.type,\r\n key: key\r\n }\r\n }))\r\n }\r\n }\r\n return baseChanges\r\n },\r\n _handleDataLoaded: function(options) {\r\n var data = options.data = this._convertDataToPlainStructure(options.data);\r\n if (!options.remoteOperations.filtering && options.loadOptions.filter) {\r\n options.fullData = queryByOptions((0, _query.default)(options.data), {\r\n sort: options.loadOptions && options.loadOptions.sort\r\n }).toArray()\r\n }\r\n this._updateHasItemsMap(options);\r\n this.callBase(options);\r\n if (data.isConverted && this._cachedStoreData) {\r\n this._cachedStoreData.isConverted = true\r\n }\r\n },\r\n _fillNodes: function(nodes, options, expandedRowKeys, level) {\r\n var isFullBranch = isFullBranchFilterMode(this);\r\n level = level || 0;\r\n for (var i = 0; i < nodes.length; i++) {\r\n var node = nodes[i];\r\n var needToExpand = false;\r\n this._fillNodes(nodes[i].children, options, expandedRowKeys, level + 1);\r\n node.level = level;\r\n node.hasChildren = this._calculateHasItems(node, options);\r\n if (node.visible && node.hasChildren) {\r\n if (isFullBranch) {\r\n if (node.children.filter(function(node) {\r\n return node.visible\r\n }).length) {\r\n needToExpand = true\r\n } else {\r\n if (node.children.length) {\r\n _uiTree_list.default.foreachNodes(node.children, function(node) {\r\n node.visible = true\r\n })\r\n }\r\n }\r\n } else {\r\n needToExpand = true\r\n }\r\n if (options.expandVisibleNodes && needToExpand) {\r\n expandedRowKeys.push(node.key)\r\n }\r\n }\r\n if (node.visible || node.hasChildren) {\r\n node.parent.hasChildren = true\r\n }\r\n }\r\n },\r\n _processTreeStructure: function(options, visibleItems) {\r\n var data = options.data;\r\n var parentIds = options.storeLoadOptions.parentIds;\r\n var expandedRowKeys = [];\r\n if (parentIds && parentIds.length || this._isReload) {\r\n if (options.fullData && options.fullData.length > options.data.length) {\r\n data = options.fullData;\r\n visibleItems = visibleItems || options.data\r\n }\r\n this._rootNode = this._createNodesByItems(data, visibleItems);\r\n if (!this._rootNode) {\r\n options.data = (new _deferred.Deferred).reject(_ui.default.Error(\"E1046\", this.getKeyExpr()));\r\n return\r\n }\r\n this._fillNodes(this._rootNode.children, options, expandedRowKeys);\r\n this._isNodesInitializing = true;\r\n if (options.collapseVisibleNodes || expandedRowKeys.length) {\r\n this.option(\"expandedRowKeys\", expandedRowKeys)\r\n }\r\n this._isReload = false;\r\n this.executeAction(\"onNodesInitialized\", {\r\n root: this._rootNode\r\n });\r\n this._isNodesInitializing = false\r\n }\r\n data = this._createVisibleItemsByNodes(this._rootNode.children, options);\r\n options.data = data;\r\n this._totalItemsCount = data.length\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n var that = this;\r\n var data = options.data;\r\n var callBase = that.callBase;\r\n var filter = options.storeLoadOptions.filter || options.loadOptions.filter;\r\n var filterMode = that.option(\"filterMode\");\r\n var visibleItems;\r\n var parentIds = options.storeLoadOptions.parentIds;\r\n var needLoadParents = filter && (!parentIds || !parentIds.length) && \"standard\" !== filterMode;\r\n if (!options.isCustomLoading) {\r\n if (needLoadParents) {\r\n var d = options.data = new _deferred.Deferred;\r\n if (\"matchOnly\" === filterMode) {\r\n visibleItems = data\r\n }\r\n return that._loadParents(data, options).done(function(data) {\r\n that._loadChildrenIfNeed(data, options).done(function(data) {\r\n options.data = data;\r\n that._processTreeStructure(options, visibleItems);\r\n callBase.call(that, options);\r\n d.resolve(options.data)\r\n })\r\n }).fail(d.reject)\r\n } else {\r\n that._processTreeStructure(options)\r\n }\r\n }\r\n that.callBase(options)\r\n },\r\n _handlePush: function(changes) {\r\n var reshapeOnPush = this._dataSource._reshapeOnPush;\r\n var isNeedReshape = reshapeOnPush && !!changes.length;\r\n if (isNeedReshape) {\r\n this._isReload = true\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n init: function(dataSource, remoteOperations) {\r\n this.callBase.apply(this, arguments);\r\n var dataStructure = this.option(\"dataStructure\");\r\n this._keyGetter = this._createKeyGetter();\r\n this._parentIdGetter = this._createParentIdGetter();\r\n this._hasItemsGetter = this._createHasItemsGetter();\r\n this._hasItemsSetter = this._createHasItemsSetter();\r\n if (\"tree\" === dataStructure) {\r\n this._itemsGetter = this._createItemsGetter();\r\n this._keySetter = this._createKeySetter();\r\n this._parentIdSetter = this.createParentIdSetter()\r\n }\r\n this._nodeByKey = {};\r\n this._isChildrenLoaded = {};\r\n this._totalItemsCount = 0;\r\n this.createAction(\"onNodesInitialized\")\r\n },\r\n getKeyExpr: function() {\r\n var store = this.store();\r\n var key = store && store.key();\r\n var keyExpr = this.option(\"keyExpr\");\r\n if ((0, _type.isDefined)(key) && (0, _type.isDefined)(keyExpr)) {\r\n if (!(0, _common.equalByValue)(key, keyExpr)) {\r\n throw _ui.default.Error(\"E1044\")\r\n }\r\n }\r\n return key || keyExpr || DEFAULT_KEY_EXPRESSION\r\n },\r\n keyOf: function(data) {\r\n return this._keyGetter && this._keyGetter(data)\r\n },\r\n parentKeyOf: function(data) {\r\n return this._parentIdGetter && this._parentIdGetter(data)\r\n },\r\n getRootNode: function() {\r\n return this._rootNode\r\n },\r\n totalItemsCount: function() {\r\n return this._totalItemsCount\r\n },\r\n isRowExpanded: function(key, cache) {\r\n if (cache) {\r\n var isExpandedByKey = cache.isExpandedByKey;\r\n if (!isExpandedByKey) {\r\n isExpandedByKey = cache.isExpandedByKey = {};\r\n this.option(\"expandedRowKeys\").forEach(function(key) {\r\n isExpandedByKey[key] = true\r\n })\r\n }\r\n return !!isExpandedByKey[key]\r\n }\r\n var indexExpandedNodeKey = _uiGrid_core.default.getIndexByKey(key, this.option(\"expandedRowKeys\"), null);\r\n return indexExpandedNodeKey >= 0\r\n },\r\n _changeRowExpandCore: function(key) {\r\n var expandedRowKeys = this.option(\"expandedRowKeys\").slice();\r\n var indexExpandedNodeKey = _uiGrid_core.default.getIndexByKey(key, expandedRowKeys, null);\r\n if (indexExpandedNodeKey < 0) {\r\n expandedRowKeys.push(key)\r\n } else {\r\n expandedRowKeys.splice(indexExpandedNodeKey, 1)\r\n }\r\n this.option(\"expandedRowKeys\", expandedRowKeys)\r\n },\r\n changeRowExpand: function(key) {\r\n this._changeRowExpandCore(key);\r\n return this._isNodesInitializing ? (new _deferred.Deferred).resolve() : this.load()\r\n },\r\n getNodeByKey: function(key) {\r\n if (this._nodeByKey) {\r\n return this._nodeByKey[key]\r\n }\r\n },\r\n getNodeLeafKeys: function() {\r\n var that = this;\r\n var result = [];\r\n var keys = that._rootNode ? [that._rootNode.key] : [];\r\n keys.forEach(function(key) {\r\n var node = that.getNodeByKey(key);\r\n node && _uiTree_list.default.foreachNodes([node], function(childNode) {\r\n !childNode.children.length && result.push(childNode.key)\r\n })\r\n });\r\n return result\r\n },\r\n getChildNodeKeys: function(parentKey) {\r\n var node = this.getNodeByKey(parentKey);\r\n var childrenKeys = [];\r\n node && _uiTree_list.default.foreachNodes(node.children, function(childNode) {\r\n childrenKeys.push(childNode.key)\r\n });\r\n return childrenKeys\r\n },\r\n loadDescendants: function(keys, childrenOnly) {\r\n var that = this;\r\n var d = new _deferred.Deferred;\r\n var remoteOperations = that.remoteOperations();\r\n if ((0, _type.isDefined)(keys)) {\r\n keys = Array.isArray(keys) ? keys : [keys]\r\n } else {\r\n keys = that.getNodeLeafKeys()\r\n }\r\n if (!remoteOperations.filtering || !keys.length) {\r\n return d.resolve()\r\n }\r\n var loadOptions = that._dataSource._createStoreLoadOptions();\r\n loadOptions.parentIds = keys;\r\n that.load(loadOptions).done(function() {\r\n if (!childrenOnly) {\r\n var childKeys = getChildKeys(that, keys);\r\n if (childKeys.length) {\r\n that.loadDescendants(childKeys, childrenOnly).done(d.resolve).fail(d.reject);\r\n return\r\n }\r\n }\r\n d.resolve()\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n forEachNode: function() {\r\n var nodes = [];\r\n var callback;\r\n if (1 === arguments.length) {\r\n callback = arguments[0];\r\n var rootNode = this.getRootNode();\r\n nodes = rootNode && rootNode.children || []\r\n } else {\r\n if (2 === arguments.length) {\r\n callback = arguments[1];\r\n nodes = arguments[0];\r\n nodes = Array.isArray(nodes) ? nodes : [nodes]\r\n }\r\n }\r\n _uiTree_list.default.foreachNodes(nodes, callback)\r\n }\r\n }\r\n}());\r\nvar _default = {\r\n extend: function(extender) {\r\n DataSourceAdapterTreeList = DataSourceAdapterTreeList.inherit(extender)\r\n },\r\n create: function(component) {\r\n return new DataSourceAdapterTreeList(component)\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/validation_message.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 _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _overlay = _interopRequireDefault(require(\"./overlay\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _string = require(\"../core/utils/string\");\r\nvar _position = require(\"../core/utils/position\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar INVALID_MESSAGE = \"dx-invalid-message\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar INVALID_MESSAGE_ALWAYS = \"dx-invalid-message-always\";\r\nvar INVALID_MESSAGE_CONTENT = \"dx-invalid-message-content\";\r\nvar VALIDATION_MESSAGE_MIN_WIDTH = 100;\r\nvar ValidationMessage = _overlay.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n integrationOptions: {},\r\n templatesRenderAsynchronously: false,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n closeOnOutsideClick: false,\r\n closeOnTargetScroll: false,\r\n animation: null,\r\n visible: true,\r\n propagateOutsideClick: true,\r\n _checkParentVisibility: false,\r\n rtlEnabled: false,\r\n contentTemplate: this._renderInnerHtml,\r\n maxWidth: \"100%\",\r\n mode: \"auto\",\r\n validationErrors: void 0,\r\n positionRequest: void 0,\r\n describedElement: void 0,\r\n boundary: void 0,\r\n offset: {\r\n h: 0,\r\n v: 0\r\n }\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.updateMaxWidth();\r\n this._updatePosition()\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(INVALID_MESSAGE);\r\n this._wrapper().addClass(INVALID_MESSAGE);\r\n this._toggleModeClass();\r\n this._updateContentId()\r\n },\r\n _updateContentId: function() {\r\n var describedElement = this.option(\"describedElement\") || this.option(\"container\");\r\n var contentId = (0, _renderer.default)(describedElement).attr(\"aria-describedby\");\r\n this.$content().addClass(INVALID_MESSAGE_CONTENT).attr(\"id\", contentId)\r\n },\r\n _renderInnerHtml: function(element) {\r\n var $element = element && (0, _renderer.default)(element);\r\n var validationErrors = this.option(\"validationErrors\") || [];\r\n var validationErrorMessage = \"\";\r\n validationErrors.forEach(function(err) {\r\n var separator = validationErrorMessage ? \"
\" : \"\";\r\n validationErrorMessage += separator + (0, _string.encodeHtml)((null === err || void 0 === err ? void 0 : err.message) || \"\")\r\n });\r\n null === $element || void 0 === $element ? void 0 : $element.html(validationErrorMessage)\r\n },\r\n _toggleModeClass: function() {\r\n var mode = this.option(\"mode\");\r\n this._wrapper().toggleClass(INVALID_MESSAGE_AUTO, \"auto\" === mode).toggleClass(INVALID_MESSAGE_ALWAYS, \"always\" === mode)\r\n },\r\n updateMaxWidth: function() {\r\n var _target$outerWidth;\r\n var target = this.option(\"target\");\r\n var targetWidth = (null === target || void 0 === target ? void 0 : null === (_target$outerWidth = target.outerWidth) || void 0 === _target$outerWidth ? void 0 : _target$outerWidth.call(target)) || (0, _renderer.default)(target).outerWidth();\r\n var maxWidth = \"100%\";\r\n if (targetWidth) {\r\n maxWidth = Math.max(targetWidth, VALIDATION_MESSAGE_MIN_WIDTH)\r\n }\r\n this.option({\r\n maxWidth: maxWidth\r\n })\r\n },\r\n _updatePosition: function() {\r\n var _this$option = this.option(),\r\n positionRequest = _this$option.positionRequest,\r\n rtlEnabled = _this$option.rtlEnabled,\r\n offset = _this$option.offset,\r\n boundary = _this$option.boundary;\r\n var positionSide = (0, _position.getDefaultAlignment)(rtlEnabled);\r\n var verticalPositions = \"below\" === positionRequest ? [\" top\", \" bottom\"] : [\" bottom\", \" top\"];\r\n if (rtlEnabled) {\r\n offset.h = -offset.h\r\n }\r\n if (\"below\" !== positionRequest) {\r\n offset.v = -offset.v\r\n }\r\n this.option(\"position\", {\r\n offset: offset,\r\n boundary: boundary,\r\n my: positionSide + verticalPositions[0],\r\n at: positionSide + verticalPositions[1],\r\n collision: \"none flip\"\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name,\r\n value = args.value;\r\n switch (name) {\r\n case \"target\":\r\n this.updateMaxWidth();\r\n this.callBase(args);\r\n break;\r\n case \"boundary\":\r\n this.option(\"position.boundary\", value);\r\n break;\r\n case \"mode\":\r\n this._toggleModeClass(value);\r\n break;\r\n case \"rtlEnabled\":\r\n case \"offset\":\r\n case \"positionRequest\":\r\n this._updatePosition();\r\n break;\r\n case \"validationErrors\":\r\n this._renderInnerHtml(this.$content());\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxValidationMessage\", ValidationMessage);\r\nvar _default = ValidationMessage;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/validation/default_adapter.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 _class = _interopRequireDefault(require(\"../../core/class\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DefaultAdapter = _class.default.inherit({\r\n ctor: function(editor, validator) {\r\n var _this = this;\r\n this.editor = editor;\r\n this.validator = validator;\r\n this.validationRequestsCallbacks = [];\r\n var handler = function(args) {\r\n _this.validationRequestsCallbacks.forEach(function(item) {\r\n return item(args)\r\n })\r\n };\r\n editor.validationRequest.add(handler);\r\n editor.on(\"disposing\", function() {\r\n editor.validationRequest.remove(handler)\r\n })\r\n },\r\n getValue: function() {\r\n return this.editor.option(\"value\")\r\n },\r\n getCurrentValidationError: function() {\r\n return this.editor.option(\"validationError\")\r\n },\r\n bypass: function() {\r\n return this.editor.option(\"disabled\")\r\n },\r\n applyValidationResults: function(params) {\r\n this.editor.option({\r\n validationErrors: params.brokenRules,\r\n validationStatus: params.status\r\n })\r\n },\r\n reset: function() {\r\n this.editor.reset()\r\n },\r\n focus: function() {\r\n this.editor.focus()\r\n }\r\n});\r\nvar _default = DefaultAdapter;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/tree_view/ui.tree_view.base.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _element = require(\"../../core/element\");\r\nvar _check_box = _interopRequireDefault(require(\"../check_box\"));\r\nvar _ui = _interopRequireDefault(require(\"../hierarchical_collection/ui.hierarchical_collection_widget\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _double_click = require(\"../../events/double_click\");\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _ui2 = _interopRequireDefault(require(\"../scroll_view/ui.scrollable\"));\r\nvar _load_indicator = _interopRequireDefault(require(\"../load_indicator\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _ui3 = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CLASS = \"\".concat(WIDGET_CLASS, \"-node\");\r\nvar NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container\");\r\nvar NODE_LOAD_INDICATOR_CLASS = \"\".concat(NODE_CLASS, \"-loadindicator\");\r\nvar OPENED_NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container-opened\");\r\nvar IS_LEAF = \"\".concat(NODE_CLASS, \"-is-leaf\");\r\nvar ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-item\");\r\nvar ITEM_WITH_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-with-checkbox\");\r\nvar ITEM_WITHOUT_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-without-checkbox\");\r\nvar ITEM_DATA_KEY = \"\".concat(ITEM_CLASS, \"-data\");\r\nvar TOGGLE_ITEM_VISIBILITY_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility\");\r\nvar LOAD_INDICATOR_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator\");\r\nvar LOAD_INDICATOR_WRAPPER_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator-wrapper\");\r\nvar TOGGLE_ITEM_VISIBILITY_OPENED_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility-opened\");\r\nvar SELECT_ALL_ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-select-all-item\");\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar SELECTED_ITEM_CLASS = \"dx-state-selected\";\r\nvar EXPAND_EVENT_NAMESPACE = \"dxTreeView_expand\";\r\nvar DATA_ITEM_ID = \"data-item-id\";\r\nvar TreeViewBase = _ui.default.inherit({\r\n _supportedKeys: function(e) {\r\n var _this = this;\r\n var click = function(e) {\r\n var $itemElement = (0, _renderer.default)(_this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n e.target = $itemElement;\r\n e.currentTarget = $itemElement;\r\n _this._itemClickHandler(e, $itemElement.children(\".\" + ITEM_CLASS));\r\n var expandEventName = _this._getEventNameByOption(_this.option(\"expandEvent\"));\r\n var expandByClick = expandEventName === (0, _index.addNamespace)(_click.name, EXPAND_EVENT_NAMESPACE);\r\n if (expandByClick) {\r\n _this._expandEventHandler(e)\r\n }\r\n };\r\n var select = function(e) {\r\n e.preventDefault();\r\n var $focusedElement = (0, _renderer.default)(_this.option(\"focusedElement\"));\r\n var checkboxInstance = _this._getCheckBoxInstance($focusedElement);\r\n if (!checkboxInstance.option(\"disabled\")) {\r\n var currentState = checkboxInstance.option(\"value\");\r\n _this._updateItemSelection(!currentState, $focusedElement.find(\".\" + ITEM_CLASS).get(0), true)\r\n }\r\n };\r\n var toggleExpandedNestedItems = function(state, e) {\r\n if (!this.option(\"expandAllEnabled\")) {\r\n return\r\n }\r\n e.preventDefault();\r\n var $rootElement = (0, _renderer.default)(this.option(\"focusedElement\"));\r\n if (!$rootElement.length) {\r\n return\r\n }\r\n var rootItem = this._getItemData($rootElement.find(\".\".concat(ITEM_CLASS)));\r\n this._toggleExpandedNestedItems([rootItem], state)\r\n };\r\n return (0, _extend.extend)(this.callBase(), {\r\n enter: this._showCheckboxes() ? select : click,\r\n space: this._showCheckboxes() ? select : click,\r\n asterisk: toggleExpandedNestedItems.bind(this, true),\r\n minus: toggleExpandedNestedItems.bind(this, false)\r\n })\r\n },\r\n _toggleExpandedNestedItems: function(items, state) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n var item = items[i];\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n this._toggleExpandedState(node, state);\r\n this._toggleExpandedNestedItems(item.items, state)\r\n }\r\n },\r\n _getNodeElement: function(node, cache) {\r\n var key = this._encodeString(node.internalFields.key);\r\n if (cache) {\r\n if (!cache.$nodeByKey) {\r\n cache.$nodeByKey = {};\r\n this.$element().find(\".\".concat(NODE_CLASS)).each(function() {\r\n var $node = (0, _renderer.default)(this);\r\n var key = $node.attr(DATA_ITEM_ID);\r\n cache.$nodeByKey[key] = $node\r\n })\r\n }\r\n return cache.$nodeByKey[key] || (0, _renderer.default)()\r\n }\r\n var element = this.$element().get(0).querySelector(\"[\".concat(DATA_ITEM_ID, '=\"').concat(key, '\"]'));\r\n return (0, _renderer.default)(element)\r\n },\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _widgetClass: function() {\r\n return WIDGET_CLASS\r\n },\r\n _getDefaultOptions: function() {\r\n var defaultOptions = (0, _extend.extend)(this.callBase(), {\r\n animationEnabled: true,\r\n dataStructure: \"tree\",\r\n deferRendering: true,\r\n expandAllEnabled: false,\r\n hasItemsExpr: \"hasItems\",\r\n selectNodesRecursive: true,\r\n expandNodesRecursive: true,\r\n showCheckBoxesMode: \"none\",\r\n selectAllText: _message.default.format(\"dxList-selectAll\"),\r\n onItemSelectionChanged: null,\r\n onItemExpanded: null,\r\n onItemCollapsed: null,\r\n scrollDirection: \"vertical\",\r\n virtualModeEnabled: false,\r\n rootValue: 0,\r\n focusStateEnabled: false,\r\n selectionMode: \"multiple\",\r\n expandEvent: \"dblclick\",\r\n selectByClick: false,\r\n createChildren: null,\r\n onSelectAllValueChanged: null\r\n });\r\n return (0, _extend.extend)(true, defaultOptions, {\r\n integrationOptions: {\r\n useDeferUpdateForTemplates: false\r\n }\r\n })\r\n },\r\n _initSelectedItems: _common.noop,\r\n _syncSelectionOptions: _common.asyncNoop,\r\n _fireSelectionChanged: function() {\r\n var selectionChangePromise = this._selectionChangePromise;\r\n (0, _deferred.when)(selectionChangePromise).done(function() {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })()\r\n }.bind(this))\r\n },\r\n _createSelectAllValueChangedAction: function() {\r\n this._selectAllValueChangedAction = this._createActionByOption(\"onSelectAllValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _fireSelectAllValueChanged: function(value) {\r\n this._selectAllValueChangedAction({\r\n value: value\r\n })\r\n },\r\n _checkBoxModeChange: function(value, previousValue) {\r\n if (\"none\" === previousValue || \"none\" === value) {\r\n this.repaint();\r\n return\r\n }\r\n var selectAllExists = this._$selectAllItem && this._$selectAllItem.length;\r\n switch (value) {\r\n case \"selectAll\":\r\n if (!selectAllExists) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem()\r\n }\r\n break;\r\n case \"normal\":\r\n if (selectAllExists) {\r\n this._$selectAllItem.remove();\r\n delete this._$selectAllItem\r\n }\r\n }\r\n },\r\n _removeSelection: function() {\r\n var that = this;\r\n (0, _iterator.each)(this._dataAdapter.getFullData(), function(_, node) {\r\n if (!that._hasChildren(node)) {\r\n return\r\n }\r\n that._dataAdapter.toggleSelection(node.internalFields.key, false, true)\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name,\r\n value = args.value,\r\n previousValue = args.previousValue;\r\n switch (name) {\r\n case \"selectAllText\":\r\n if (this._$selectAllItem) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"text\", value)\r\n }\r\n break;\r\n case \"showCheckBoxesMode\":\r\n this._checkBoxModeChange(value, previousValue);\r\n break;\r\n case \"scrollDirection\":\r\n this._scrollableContainer.option(\"direction\", value);\r\n break;\r\n case \"items\":\r\n delete this._$selectAllItem;\r\n this.callBase(args);\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initDataAdapter();\r\n this._filter = {};\r\n break;\r\n case \"hasItemsExpr\":\r\n this._initAccessors();\r\n this.repaint();\r\n break;\r\n case \"expandEvent\":\r\n this._initExpandEvent();\r\n break;\r\n case \"deferRendering\":\r\n case \"dataStructure\":\r\n case \"rootValue\":\r\n case \"createChildren\":\r\n case \"expandNodesRecursive\":\r\n case \"onItemSelectionChanged\":\r\n case \"onItemExpanded\":\r\n case \"onItemCollapsed\":\r\n case \"expandAllEnabled\":\r\n case \"animationEnabled\":\r\n case \"virtualModeEnabled\":\r\n case \"selectByClick\":\r\n break;\r\n case \"selectionMode\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n this._createSelectAllValueChangedAction();\r\n break;\r\n case \"selectNodesRecursive\":\r\n this._dataAdapter.setOption(\"recursiveSelection\", args.value);\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _initDataSource: function() {\r\n if (this._useCustomChildrenLoader()) {\r\n this._loadChildrenByCustomLoader(null).done(function(newItems) {\r\n if (newItems && newItems.length) {\r\n this.option(\"items\", newItems)\r\n }\r\n }.bind(this))\r\n } else {\r\n this.callBase();\r\n this._isVirtualMode() && this._initVirtualMode()\r\n }\r\n },\r\n _initVirtualMode: function() {\r\n var filter = this._filter;\r\n if (!filter.custom) {\r\n filter.custom = this._dataSource.filter()\r\n }\r\n if (!filter.internal) {\r\n filter.internal = [this.option(\"parentIdExpr\"), this.option(\"rootValue\")]\r\n }\r\n },\r\n _useCustomChildrenLoader: function() {\r\n return (0, _type.isFunction)(this.option(\"createChildren\")) && this._isDataStructurePlain()\r\n },\r\n _loadChildrenByCustomLoader: function(parentNode) {\r\n var invocationResult = this.option(\"createChildren\").call(this, parentNode);\r\n if (Array.isArray(invocationResult)) {\r\n return (new _deferred.Deferred).resolve(invocationResult).promise()\r\n }\r\n if (invocationResult && (0, _type.isFunction)(invocationResult.then)) {\r\n return (0, _deferred.fromPromise)(invocationResult)\r\n }\r\n return (new _deferred.Deferred).resolve([]).promise()\r\n },\r\n _combineFilter: function() {\r\n if (!this._filter.custom || !this._filter.custom.length) {\r\n return this._filter.internal\r\n }\r\n return [this._filter.custom, this._filter.internal]\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._renderEmptyMessage()\r\n },\r\n _init: function() {\r\n this._filter = {};\r\n this.callBase();\r\n this._initStoreChangeHandlers()\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && this._isVirtualMode() && items.length) {\r\n return\r\n }\r\n this.option(\"items\", newItems)\r\n },\r\n _removeTreeViewLoadIndicator: function() {\r\n if (!this._treeViewLoadIndicator) {\r\n return\r\n }\r\n this._treeViewLoadIndicator.remove();\r\n this._treeViewLoadIndicator = null\r\n },\r\n _createTreeViewLoadIndicator: function() {\r\n this._treeViewLoadIndicator = (0, _renderer.default)(\"
\").addClass(LOAD_INDICATOR_CLASS);\r\n this._createComponent(this._treeViewLoadIndicator, _load_indicator.default, {});\r\n return this._treeViewLoadIndicator\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n var resultFilter;\r\n if (this._isVirtualMode()) {\r\n resultFilter = this._combineFilter();\r\n this._dataSource.filter(resultFilter)\r\n }\r\n if (isLoading && !this._dataSource.isLoaded()) {\r\n this.option(\"items\", []);\r\n var $wrapper = (0, _renderer.default)(\"
\").addClass(LOAD_INDICATOR_WRAPPER_CLASS);\r\n this._createTreeViewLoadIndicator().appendTo($wrapper);\r\n this.itemsContainer().append($wrapper);\r\n if (this._isVirtualMode() && this._dataSource.filter() !== resultFilter) {\r\n this._dataSource.filter([])\r\n }\r\n } else {\r\n this._removeTreeViewLoadIndicator()\r\n }\r\n },\r\n _initStoreChangeHandlers: function() {\r\n var _this2 = this;\r\n if (\"plain\" !== this.option(\"dataStructure\")) {\r\n return\r\n }\r\n this._dataSource && this._dataSource.store().on(\"inserted\", function(newItem) {\r\n _this2.option().items = _this2.option(\"items\").concat(newItem);\r\n _this2._dataAdapter.addItem(newItem);\r\n if (!_this2._dataAdapter.isFiltered(newItem)) {\r\n return\r\n }\r\n _this2._updateLevel(_this2._parentIdGetter(newItem))\r\n }).on(\"removed\", function(removedKey) {\r\n var node = _this2._dataAdapter.getNodeByKey(removedKey);\r\n if ((0, _type.isDefined)(node)) {\r\n _this2.option(\"items\")[_this2._dataAdapter.getIndexByKey(node.internalFields.key)] = 0;\r\n _this2._markChildrenItemsToRemove(node);\r\n _this2._removeItems();\r\n _this2._dataAdapter.removeItem(removedKey);\r\n _this2._updateLevel(_this2._parentIdGetter(node))\r\n }\r\n })\r\n },\r\n _markChildrenItemsToRemove: function(node) {\r\n var _this3 = this;\r\n var keys = node.internalFields.childrenKeys;\r\n (0, _iterator.each)(keys, function(_, key) {\r\n _this3.option(\"items\")[_this3._dataAdapter.getIndexByKey(key)] = 0;\r\n _this3._markChildrenItemsToRemove(_this3._dataAdapter.getNodeByKey(key))\r\n })\r\n },\r\n _removeItems: function() {\r\n var _this4 = this;\r\n var items = (0, _extend.extend)(true, [], this.option(\"items\"));\r\n var counter = 0;\r\n (0, _iterator.each)(items, function(index, item) {\r\n if (!item) {\r\n _this4.option(\"items\").splice(index - counter, 1);\r\n counter++\r\n }\r\n })\r\n },\r\n _updateLevel: function(parentId) {\r\n var $container = this._getContainerByParentKey(parentId);\r\n this._renderItems($container, this._dataAdapter.getChildrenNodes(parentId))\r\n },\r\n _getOldContainer: function($itemElement) {\r\n if ($itemElement.length) {\r\n return $itemElement.children(\".\".concat(NODE_CONTAINER_CLASS))\r\n }\r\n if (this._scrollableContainer) {\r\n return this._scrollableContainer.$content().children()\r\n }\r\n return (0, _renderer.default)()\r\n },\r\n _getContainerByParentKey: function(parentId) {\r\n var node = this._dataAdapter.getNodeByKey(parentId);\r\n var $itemElement = node ? this._getNodeElement(node) : [];\r\n this._getOldContainer($itemElement).remove();\r\n var $container = this._renderNodeContainer($itemElement);\r\n if (this._isRootLevel(parentId)) {\r\n if (!this._scrollableContainer) {\r\n this._renderScrollableContainer()\r\n }\r\n this._scrollableContainer.$content().append($container)\r\n }\r\n return $container\r\n },\r\n _isRootLevel: function(parentId) {\r\n return parentId === this.option(\"rootValue\")\r\n },\r\n _getAccessors: function() {\r\n var accessors = this.callBase();\r\n accessors.push(\"hasItems\");\r\n return accessors\r\n },\r\n _getDataAdapterOptions: function() {\r\n return {\r\n rootValue: this.option(\"rootValue\"),\r\n multipleSelection: !this._isSingleSelection(),\r\n recursiveSelection: this._isRecursiveSelection(),\r\n recursiveExpansion: this.option(\"expandNodesRecursive\"),\r\n selectionRequired: this.option(\"selectionRequired\"),\r\n dataType: this.option(\"dataStructure\"),\r\n sort: this._dataSource && this._dataSource.sort()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._renderScrollableContainer();\r\n this._renderEmptyMessage(this._dataAdapter.getRootNodes());\r\n this.callBase();\r\n this.setAria(\"role\", \"tree\")\r\n },\r\n _renderContentImpl: function() {\r\n var $nodeContainer = this._renderNodeContainer();\r\n this._scrollableContainer.$content().append($nodeContainer);\r\n if (!this.option(\"items\") || !this.option(\"items\").length) {\r\n return\r\n }\r\n this._renderItems($nodeContainer, this._dataAdapter.getRootNodes());\r\n this._initExpandEvent();\r\n if (this._selectAllEnabled()) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem($nodeContainer)\r\n }\r\n },\r\n _isVirtualMode: function() {\r\n return this.option(\"virtualModeEnabled\") && this._isDataStructurePlain() && !!this.option(\"dataSource\")\r\n },\r\n _isDataStructurePlain: function() {\r\n return \"plain\" === this.option(\"dataStructure\")\r\n },\r\n _fireContentReadyAction: function() {\r\n var dataSource = this.getDataSource();\r\n var skipContentReadyAction = dataSource && !dataSource.isLoaded();\r\n if (this._scrollableContainer && (0, _window.hasWindow)()) {\r\n this._scrollableContainer.update()\r\n }\r\n if (!skipContentReadyAction) {\r\n this.callBase()\r\n }\r\n if (this._scrollableContainer && (0, _window.hasWindow)()) {\r\n this._scrollableContainer.update()\r\n }\r\n },\r\n _renderScrollableContainer: function() {\r\n this._scrollableContainer = this._createComponent((0, _renderer.default)(\"
\").appendTo(this.$element()), _ui2.default, {\r\n direction: this.option(\"scrollDirection\"),\r\n useKeyboard: false\r\n })\r\n },\r\n _renderNodeContainer: function($parent) {\r\n var $container = (0, _renderer.default)(\"
    \").addClass(NODE_CONTAINER_CLASS);\r\n this.setAria(\"role\", \"group\", $container);\r\n if ($parent && $parent.length) {\r\n var itemData = this._getItemData($parent.children(\".\" + ITEM_CLASS));\r\n if (this._expandedGetter(itemData)) {\r\n $container.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n $container.appendTo($parent)\r\n }\r\n return $container\r\n },\r\n _createDOMElement: function($nodeContainer, node) {\r\n var $node = (0, _renderer.default)(\"
  • \").addClass(NODE_CLASS).attr(DATA_ITEM_ID, this._encodeString(node.internalFields.key)).prependTo($nodeContainer);\r\n this.setAria({\r\n role: \"treeitem\",\r\n label: this._displayGetter(node.internalFields.item) || \"\",\r\n expanded: node.internalFields.expanded || false,\r\n level: this._getLevel($nodeContainer)\r\n }, $node);\r\n return $node\r\n },\r\n _getLevel: function($nodeContainer) {\r\n var parent = $nodeContainer.parent();\r\n return parent.hasClass(\"dx-scrollable-content\") ? 1 : parseInt(parent.attr(\"aria-level\")) + 1\r\n },\r\n _showCheckboxes: function() {\r\n return \"none\" !== this.option(\"showCheckBoxesMode\")\r\n },\r\n _selectAllEnabled: function() {\r\n return \"selectAll\" === this.option(\"showCheckBoxesMode\") && !this._isSingleSelection()\r\n },\r\n _renderItems: function($nodeContainer, nodes) {\r\n var length = nodes.length - 1;\r\n for (var i = length; i >= 0; i--) {\r\n this._renderItem(i, nodes[i], $nodeContainer)\r\n }\r\n this._renderedItemsCount += nodes.length\r\n },\r\n _renderItem: function(nodeIndex, node, $nodeContainer) {\r\n var $node = this._createDOMElement($nodeContainer, node);\r\n var nodeData = node.internalFields;\r\n var showCheckBox = this._showCheckboxes();\r\n $node.addClass(showCheckBox ? ITEM_WITH_CHECKBOX_CLASS : ITEM_WITHOUT_CHECKBOX_CLASS);\r\n $node.toggleClass(INVISIBLE_STATE_CLASS, false === nodeData.item.visible);\r\n showCheckBox && this._renderCheckBox($node, node);\r\n this.setAria(\"selected\", nodeData.selected, $node);\r\n this._toggleSelectedClass($node, nodeData.selected);\r\n this.callBase(this._renderedItemsCount + nodeIndex, nodeData.item, $node);\r\n if (false !== nodeData.item.visible) {\r\n this._renderChildren($node, node)\r\n }\r\n },\r\n _setAriaSelected: function() {},\r\n _renderChildren: function($node, node) {\r\n var _this5 = this;\r\n if (!this._hasChildren(node)) {\r\n this._addLeafClass($node);\r\n return\r\n }\r\n this._renderToggleItemVisibilityIcon($node, node);\r\n if (this.option(\"deferRendering\") && !node.internalFields.expanded) {\r\n return\r\n }\r\n this._loadSublevel(node).done(function(childNodes) {\r\n _this5._renderSublevel($node, _this5._getActualNode(node), childNodes)\r\n })\r\n },\r\n _getActualNode: function(cachedNode) {\r\n return this._dataAdapter.getNodeByKey(cachedNode.internalFields.key)\r\n },\r\n _hasChildren: function(node) {\r\n if (this._isVirtualMode() || this._useCustomChildrenLoader()) {\r\n return false !== this._hasItemsGetter(node.internalFields.item)\r\n }\r\n return this.callBase(node)\r\n },\r\n _loadSublevel: function(node) {\r\n var _this6 = this;\r\n var deferred = new _deferred.Deferred;\r\n var childrenNodes = this._getChildNodes(node);\r\n if (childrenNodes.length) {\r\n deferred.resolve(childrenNodes)\r\n } else {\r\n this._loadNestedItems(node).done(function(items) {\r\n deferred.resolve(_this6._dataAdapter.getNodesByItems(items))\r\n })\r\n }\r\n return deferred.promise()\r\n },\r\n _renderSublevel: function($node, node, childNodes) {\r\n var $nestedNodeContainer = this._renderNodeContainer($node, node);\r\n var childNodesByChildrenKeys = childNodes.filter(function(childNode) {\r\n return node.internalFields.childrenKeys.indexOf(childNode.internalFields.key) !== -1\r\n });\r\n this._renderItems($nestedNodeContainer, childNodesByChildrenKeys);\r\n if (childNodesByChildrenKeys.length && !node.internalFields.selected) {\r\n var firstChild = childNodesByChildrenKeys[0];\r\n this._updateParentsState(firstChild, this._getNodeElement(firstChild))\r\n }\r\n this._normalizeIconState($node, childNodesByChildrenKeys.length);\r\n if (node.internalFields.expanded) {\r\n $nestedNodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n },\r\n _executeItemRenderAction: function(itemIndex, itemData, itemElement) {\r\n var node = this._getNode(itemElement);\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: itemIndex,\r\n itemData: itemData,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _addLeafClass: function($node) {\r\n $node.addClass(IS_LEAF)\r\n },\r\n _expandEventHandler: function(e) {\r\n var $nodeElement = (0, _renderer.default)(e.currentTarget.parentNode);\r\n if (!$nodeElement.hasClass(IS_LEAF)) {\r\n this._toggleExpandedState(e.currentTarget, void 0, e)\r\n }\r\n },\r\n _initExpandEvent: function() {\r\n var expandedEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var $itemsContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n _events_engine.default.off($itemsContainer, \".\" + EXPAND_EVENT_NAMESPACE, itemSelector);\r\n _events_engine.default.on($itemsContainer, expandedEventName, itemSelector, this._expandEventHandler.bind(this))\r\n },\r\n _getEventNameByOption: function(name) {\r\n var event = \"click\" === name ? _click.name : _double_click.name;\r\n return (0, _index.addNamespace)(event, EXPAND_EVENT_NAMESPACE)\r\n },\r\n _getNode: function(identifier) {\r\n if (!(0, _type.isDefined)(identifier)) {\r\n return null\r\n }\r\n if (identifier.internalFields) {\r\n return identifier\r\n }\r\n if ((0, _type.isPrimitive)(identifier)) {\r\n return this._dataAdapter.getNodeByKey(identifier)\r\n }\r\n var itemElement = (0, _renderer.default)(identifier).get(0);\r\n if (!itemElement) {\r\n return null\r\n }\r\n if (_dom_adapter.default.isElementNode(itemElement)) {\r\n return this._getNodeByElement(itemElement)\r\n }\r\n return this._dataAdapter.getNodeByItem(itemElement)\r\n },\r\n _getNodeByElement: function(itemElement) {\r\n var $node = (0, _renderer.default)(itemElement).closest(\".\" + NODE_CLASS);\r\n var key = this._decodeString($node.attr(DATA_ITEM_ID));\r\n return this._dataAdapter.getNodeByKey(key)\r\n },\r\n _toggleExpandedState: function(itemElement, state, e) {\r\n var node = this._getNode(itemElement);\r\n if (!node) {\r\n return (new _deferred.Deferred).reject().promise()\r\n }\r\n if (node.internalFields.disabled) {\r\n return (new _deferred.Deferred).reject().promise()\r\n }\r\n var currentState = node.internalFields.expanded;\r\n if (currentState === state) {\r\n return (new _deferred.Deferred).resolve().promise()\r\n }\r\n if (this._hasChildren(node)) {\r\n var $node = this._getNodeElement(node);\r\n if ($node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS, \":not(.\").concat(INVISIBLE_STATE_CLASS, \")\")).length) {\r\n return (new _deferred.Deferred).reject().promise()\r\n }\r\n this._createLoadIndicator($node)\r\n }\r\n if (!(0, _type.isDefined)(state)) {\r\n state = !currentState\r\n }\r\n this._dataAdapter.toggleExpansion(node.internalFields.key, state);\r\n return this._updateExpandedItemsUI(node, state, e)\r\n },\r\n _createLoadIndicator: function($node) {\r\n var $icon = $node.children(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n if ($icon.hasClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS) || $nodeContainer.not(\":empty\").length) {\r\n return\r\n }\r\n this._createComponent((0, _renderer.default)(\"
    \").addClass(NODE_LOAD_INDICATOR_CLASS), _load_indicator.default, {}).$element().appendTo($node);\r\n $icon.hide()\r\n },\r\n _renderToggleItemVisibilityIcon: function($node, node) {\r\n var $icon = (0, _renderer.default)(\"
    \").addClass(TOGGLE_ITEM_VISIBILITY_CLASS).appendTo($node);\r\n if (node.internalFields.expanded) {\r\n $icon.addClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS);\r\n $node.parent().addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n if (node.internalFields.disabled) {\r\n $icon.addClass(DISABLED_STATE_CLASS)\r\n }\r\n this._renderToggleItemVisibilityIconClick($icon, node)\r\n },\r\n _renderToggleItemVisibilityIconClick: function($icon, node) {\r\n var _this7 = this;\r\n var eventName = (0, _index.addNamespace)(_click.name, this.NAME);\r\n _events_engine.default.off($icon, eventName);\r\n _events_engine.default.on($icon, eventName, function(e) {\r\n _this7._toggleExpandedState(node.internalFields.key, void 0, e)\r\n })\r\n },\r\n _updateExpandedItemsUI: function(node, state, e) {\r\n var $node = this._getNodeElement(node);\r\n var isHiddenNode = !$node.length || state && $node.is(\":hidden\");\r\n if (this.option(\"expandNodesRecursive\") && isHiddenNode) {\r\n var parentNode = this._getNode(node.internalFields.parentKey);\r\n if (parentNode) {\r\n this._updateExpandedItemsUI(parentNode, state, e)\r\n }\r\n }\r\n var $icon = $node.children(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n $icon.toggleClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS, state);\r\n var nodeContainerExists = $nodeContainer.length > 0;\r\n var completionCallback = new _deferred.Deferred;\r\n if (!state || nodeContainerExists && !$nodeContainer.is(\":empty\")) {\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n if (0 === node.internalFields.childrenKeys.length && (this._isVirtualMode() || this._useCustomChildrenLoader())) {\r\n this._loadNestedItemsWithUpdate(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n this._renderSublevel($node, node, this._getChildNodes(node));\r\n this._fireContentReadyAction();\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n },\r\n _loadNestedItemsWithUpdate: function(node, state, e, completionCallback) {\r\n var _this8 = this;\r\n var $node = this._getNodeElement(node);\r\n this._loadNestedItems(node).done(function(items) {\r\n var actualNodeData = _this8._getActualNode(node);\r\n _this8._renderSublevel($node, actualNodeData, _this8._dataAdapter.getNodesByItems(items));\r\n if (!items || !items.length) {\r\n return\r\n }\r\n _this8._fireContentReadyAction();\r\n _this8._animateNodeContainer(actualNodeData, state, e, completionCallback)\r\n })\r\n },\r\n _loadNestedItems: function(node) {\r\n var _this9 = this;\r\n if (this._useCustomChildrenLoader()) {\r\n var publicNode = this._dataAdapter.getPublicNode(node);\r\n return this._loadChildrenByCustomLoader(publicNode).done(function(newItems) {\r\n if (!_this9._areNodesExists(newItems)) {\r\n _this9._appendItems(newItems)\r\n }\r\n })\r\n }\r\n if (!this._isVirtualMode()) {\r\n return (new _deferred.Deferred).resolve([]).promise()\r\n }\r\n this._filter.internal = [this.option(\"parentIdExpr\"), node.internalFields.key];\r\n this._dataSource.filter(this._combineFilter());\r\n return this._dataSource.load().done(function(newItems) {\r\n if (!_this9._areNodesExists(newItems)) {\r\n _this9._appendItems(newItems)\r\n }\r\n })\r\n },\r\n _areNodesExists: function(newItems, items) {\r\n var keyOfRootItem = this.keyOf(newItems[0]);\r\n var fullData = this._dataAdapter.getFullData();\r\n return !!this._dataAdapter.getNodeByKey(keyOfRootItem, fullData)\r\n },\r\n _appendItems: function(newItems) {\r\n this.option().items = this.option(\"items\").concat(newItems);\r\n this._initDataAdapter()\r\n },\r\n _animateNodeContainer: function(node, state, e, completionCallback) {\r\n var $node = this._getNodeElement(node);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n if (node && completionCallback && 0 === $nodeContainer.length) {\r\n completionCallback.resolve()\r\n }\r\n $nodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS);\r\n var nodeHeight = $nodeContainer.height();\r\n _fx.default.stop($nodeContainer, true);\r\n _fx.default.animate($nodeContainer, {\r\n type: \"custom\",\r\n duration: this.option(\"animationEnabled\") ? 400 : 0,\r\n from: {\r\n maxHeight: state ? 0 : nodeHeight\r\n },\r\n to: {\r\n maxHeight: state ? nodeHeight : 0\r\n },\r\n complete: function() {\r\n $nodeContainer.css(\"maxHeight\", \"none\");\r\n $nodeContainer.toggleClass(OPENED_NODE_CONTAINER_CLASS, state);\r\n this.setAria(\"expanded\", state, $node);\r\n this._scrollableContainer.update();\r\n this._fireExpandedStateUpdatedEvent(state, node, e);\r\n if (completionCallback) {\r\n completionCallback.resolve()\r\n }\r\n }.bind(this)\r\n })\r\n },\r\n _fireExpandedStateUpdatedEvent: function(isExpanded, node, e) {\r\n if (!this._hasChildren(node)) {\r\n return\r\n }\r\n var optionName = isExpanded ? \"onItemExpanded\" : \"onItemCollapsed\";\r\n if ((0, _type.isDefined)(e)) {\r\n this._itemDXEventHandler(e, optionName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n } else {\r\n var target = this._getNodeElement(node);\r\n this._itemEventHandler(target, optionName, {\r\n event: e,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n }\r\n },\r\n _normalizeIconState: function($node, hasNewItems) {\r\n var $loadIndicator = $node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS));\r\n $loadIndicator.length && _load_indicator.default.getInstance($loadIndicator).option(\"visible\", false);\r\n if (hasNewItems) {\r\n var $icon = $node.find(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS);\r\n $icon.show();\r\n return\r\n }\r\n $node.find(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS).removeClass(TOGGLE_ITEM_VISIBILITY_CLASS);\r\n $node.addClass(IS_LEAF)\r\n },\r\n _emptyMessageContainer: function() {\r\n return this._scrollableContainer ? this._scrollableContainer.content() : this.callBase()\r\n },\r\n _renderContent: function() {\r\n var items = this.option(\"items\");\r\n if (items && items.length) {\r\n this._contentAlreadyRendered = true\r\n }\r\n this.callBase()\r\n },\r\n _renderSelectAllItem: function($container) {\r\n $container = $container || this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first();\r\n this._$selectAllItem = (0, _renderer.default)(\"
    \").addClass(SELECT_ALL_ITEM_CLASS);\r\n var value = this._dataAdapter.isAllSelected();\r\n this._createComponent(this._$selectAllItem, _check_box.default, {\r\n value: value,\r\n text: this.option(\"selectAllText\"),\r\n onValueChanged: this._onSelectAllCheckboxValueChanged.bind(this)\r\n });\r\n this._toggleSelectedClass(this._$selectAllItem, value);\r\n $container.before(this._$selectAllItem)\r\n },\r\n _onSelectAllCheckboxValueChanged: function(args) {\r\n this._toggleSelectAll(args);\r\n this._fireSelectAllValueChanged(args.value)\r\n },\r\n _toggleSelectAll: function(args) {\r\n this._dataAdapter.toggleSelectAll(args.value);\r\n this._updateItemsUI();\r\n this._fireSelectionChanged()\r\n },\r\n _renderCheckBox: function($node, node) {\r\n var $checkbox = (0, _renderer.default)(\"
    \").appendTo($node);\r\n this._createComponent($checkbox, _check_box.default, {\r\n value: node.internalFields.selected,\r\n onValueChanged: this._changeCheckboxValue.bind(this),\r\n focusStateEnabled: false,\r\n disabled: this._disabledGetter(node)\r\n })\r\n },\r\n _toggleSelectedClass: function($node, value) {\r\n $node.toggleClass(SELECTED_ITEM_CLASS, !!value)\r\n },\r\n _toggleNodeDisabledState: function(node, state) {\r\n var $node = this._getNodeElement(node);\r\n var $item = $node.find(\".\" + ITEM_CLASS).eq(0);\r\n this._dataAdapter.toggleNodeDisabledState(node.internalFields.key, state);\r\n $item.toggleClass(DISABLED_STATE_CLASS, !!state);\r\n if (this._showCheckboxes()) {\r\n var checkbox = this._getCheckBoxInstance($node);\r\n checkbox.option(\"disabled\", !!state)\r\n }\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n if (property === this.option(\"disabledExpr\")) {\r\n this._toggleNodeDisabledState(node, value)\r\n }\r\n },\r\n _changeCheckboxValue: function(e) {\r\n var $node = (0, _renderer.default)(e.element).parent(\".\" + NODE_CLASS);\r\n var $item = $node.children(\".\" + ITEM_CLASS);\r\n var item = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n var value = e.value;\r\n if (node && node.internalFields.selected === value) {\r\n return\r\n }\r\n this._updateItemSelection(value, item, e.event)\r\n },\r\n _isSingleSelection: function() {\r\n return \"single\" === this.option(\"selectionMode\")\r\n },\r\n _isRecursiveSelection: function() {\r\n return this.option(\"selectNodesRecursive\") && \"single\" !== this.option(\"selectionMode\")\r\n },\r\n _isLastSelectedBranch: function(publicNode, selectedNodesKeys, deep) {\r\n var keyIndex = selectedNodesKeys.indexOf(publicNode.key);\r\n if (keyIndex >= 0) {\r\n selectedNodesKeys.splice(keyIndex, 1)\r\n }\r\n if (deep) {\r\n (0, _iterator.each)(publicNode.children, function(_, childNode) {\r\n this._isLastSelectedBranch(childNode, selectedNodesKeys, true)\r\n }.bind(this))\r\n }\r\n if (publicNode.parent) {\r\n this._isLastSelectedBranch(publicNode.parent, selectedNodesKeys)\r\n }\r\n return 0 === selectedNodesKeys.length\r\n },\r\n _isLastRequired: function(node) {\r\n var selectionRequired = this.option(\"selectionRequired\");\r\n var isSingleMode = this._isSingleSelection();\r\n var selectedNodesKeys = this.getSelectedNodeKeys();\r\n if (!selectionRequired) {\r\n return\r\n }\r\n if (isSingleMode) {\r\n return 1 === selectedNodesKeys.length\r\n } else {\r\n return this._isLastSelectedBranch(node.internalFields.publicNode, selectedNodesKeys.slice(), true)\r\n }\r\n },\r\n _updateItemSelection: function(value, itemElement, dxEvent) {\r\n var _this10 = this;\r\n var node = this._getNode(itemElement);\r\n if (!node || false === node.visible) {\r\n return false\r\n }\r\n if (node.internalFields.selected === value) {\r\n return true\r\n }\r\n if (!value && this._isLastRequired(node)) {\r\n if (this._showCheckboxes()) {\r\n var $node = this._getNodeElement(node);\r\n this._getCheckBoxInstance($node).option(\"value\", true)\r\n }\r\n return false\r\n }\r\n if (value && this._isSingleSelection()) {\r\n var selectedKeys = this.getSelectedNodeKeys();\r\n (0, _iterator.each)(selectedKeys, function(index, key) {\r\n _this10._dataAdapter.toggleSelection(key, false);\r\n _this10._updateItemsUI();\r\n _this10._fireItemSelectionChanged(_this10._getNode(key))\r\n })\r\n }\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value);\r\n var isAllSelected = this._dataAdapter.isAllSelected();\r\n var needFireSelectAllChanged = this._selectAllEnabled() && this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\") !== isAllSelected;\r\n this._updateItemsUI();\r\n this._fireItemSelectionChanged(node, dxEvent);\r\n this._fireSelectionChanged();\r\n if (needFireSelectAllChanged) {\r\n this._fireSelectAllValueChanged(isAllSelected)\r\n }\r\n return true\r\n },\r\n _fireItemSelectionChanged: function(node, dxEvent) {\r\n var initiator = dxEvent || this._findItemElementByItem(node.internalFields.item);\r\n var handler = dxEvent ? this._itemDXEventHandler : this._itemEventHandler;\r\n handler.call(this, initiator, \"onItemSelectionChanged\", {\r\n node: this._dataAdapter.getPublicNode(node),\r\n itemData: node.internalFields.item\r\n })\r\n },\r\n _getCheckBoxInstance: function($node) {\r\n return $node.children(\".dx-checkbox\").dxCheckBox(\"instance\")\r\n },\r\n _updateItemsUI: function() {\r\n var _this11 = this;\r\n var cache = {};\r\n (0, _iterator.each)(this._dataAdapter.getData(), function(_, node) {\r\n var $node = _this11._getNodeElement(node, cache);\r\n var nodeSelection = node.internalFields.selected;\r\n if (!$node.length) {\r\n return\r\n }\r\n _this11._toggleSelectedClass($node, nodeSelection);\r\n _this11.setAria(\"selected\", nodeSelection, $node);\r\n if (_this11._showCheckboxes()) {\r\n _this11._getCheckBoxInstance($node).option(\"value\", nodeSelection)\r\n }\r\n });\r\n if (this._selectAllEnabled()) {\r\n var selectAllCheckbox = this._$selectAllItem.dxCheckBox(\"instance\");\r\n selectAllCheckbox._setOptionWithoutOptionChange(\"onValueChanged\", void 0);\r\n selectAllCheckbox.option(\"value\", this._dataAdapter.isAllSelected());\r\n selectAllCheckbox._setOptionWithoutOptionChange(\"onValueChanged\", this._onSelectAllCheckboxValueChanged.bind(this))\r\n }\r\n },\r\n _updateParentsState: function(node, $node) {\r\n if (!$node) {\r\n return\r\n }\r\n var parentNode = this._dataAdapter.getNodeByKey(node.internalFields.parentKey);\r\n var $parentNode = (0, _renderer.default)($node.parents(\".\" + NODE_CLASS)[0]);\r\n if (this._showCheckboxes()) {\r\n var parentValue = parentNode.internalFields.selected;\r\n this._getCheckBoxInstance($parentNode).option(\"value\", parentValue);\r\n this._toggleSelectedClass($parentNode, parentValue)\r\n }\r\n if (parentNode.internalFields.parentKey !== this.option(\"rootValue\")) {\r\n this._updateParentsState(parentNode, $parentNode)\r\n }\r\n },\r\n _itemEventHandlerImpl: function(initiator, action, actionArgs) {\r\n var $itemElement = (0, _renderer.default)(initiator).closest(\".\" + NODE_CLASS).children(\".\" + ITEM_CLASS);\r\n return action((0, _extend.extend)(this._extendActionArgs($itemElement), actionArgs))\r\n },\r\n _itemContextMenuHandler: function(e) {\r\n this._createEventHandler(\"onItemContextMenu\", e)\r\n },\r\n _itemHoldHandler: function(e) {\r\n this._createEventHandler(\"onItemHold\", e)\r\n },\r\n _createEventHandler: function(eventName, e) {\r\n var node = this._getNodeByElement(e.currentTarget);\r\n this._itemDXEventHandler(e, eventName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _attachClickEvent: function() {\r\n var clickSelector = \".\" + this._itemClass();\r\n var pointerDownSelector = \".\" + NODE_CLASS + \", .\" + SELECT_ALL_ITEM_CLASS;\r\n var eventName = (0, _index.addNamespace)(_click.name, this.NAME);\r\n var pointerDownEvent = (0, _index.addNamespace)(_pointer.default.down, this.NAME);\r\n var $itemContainer = this._itemContainer();\r\n var that = this;\r\n _events_engine.default.off($itemContainer, eventName, clickSelector);\r\n _events_engine.default.off($itemContainer, pointerDownEvent, pointerDownSelector);\r\n _events_engine.default.on($itemContainer, eventName, clickSelector, function(e) {\r\n that._itemClickHandler(e, (0, _renderer.default)(this))\r\n });\r\n _events_engine.default.on($itemContainer, pointerDownEvent, pointerDownSelector, function(e) {\r\n that._itemPointerDownHandler(e)\r\n })\r\n },\r\n _itemClickHandler: function(e, $item) {\r\n var itemData = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n this._itemDXEventHandler(e, \"onItemClick\", {\r\n node: this._dataAdapter.getPublicNode(node)\r\n });\r\n if (this.option(\"selectByClick\") && !e.isDefaultPrevented()) {\r\n this._updateItemSelection(!node.internalFields.selected, itemData, e)\r\n }\r\n },\r\n _updateSelectionToFirstItem: function($items, startIndex) {\r\n var itemIndex = startIndex;\r\n while (itemIndex >= 0) {\r\n var $item = (0, _renderer.default)($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\" + ITEM_CLASS).get(0));\r\n itemIndex--\r\n }\r\n },\r\n _updateSelectionToLastItem: function($items, startIndex) {\r\n var length = $items.length;\r\n var itemIndex = startIndex;\r\n while (itemIndex < length) {\r\n var $item = (0, _renderer.default)($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\" + ITEM_CLASS).get(0));\r\n itemIndex++\r\n }\r\n },\r\n _focusInHandler: function(e) {\r\n var _this12 = this;\r\n this._updateFocusState(e, true);\r\n if (this.option(\"focusedElement\")) {\r\n clearTimeout(this._setFocusedItemTimeout);\r\n this._setFocusedItemTimeout = setTimeout(function() {\r\n _this12._setFocusedItem((0, _renderer.default)(_this12.option(\"focusedElement\")))\r\n });\r\n return\r\n }\r\n var $activeItem = this._getActiveItem();\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($activeItem.closest(\".\" + NODE_CLASS)))\r\n },\r\n _setFocusedItem: function($target) {\r\n if (!$target || !$target.length) {\r\n return\r\n }\r\n if (!$target.children().hasClass(DISABLED_STATE_CLASS)) {\r\n this.callBase($target)\r\n }\r\n },\r\n _itemPointerDownHandler: function(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n var $target = (0, _renderer.default)(e.target).closest(\".\" + NODE_CLASS + \", .\" + SELECT_ALL_ITEM_CLASS);\r\n if (!$target.length) {\r\n return\r\n }\r\n var itemElement = $target.hasClass(DISABLED_STATE_CLASS) ? null : $target;\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)(itemElement))\r\n },\r\n _findNonDisabledNodes: function($nodes) {\r\n return $nodes.not(function() {\r\n return (0, _renderer.default)(this).children(\".\" + ITEM_CLASS).hasClass(DISABLED_STATE_CLASS)\r\n })\r\n },\r\n _moveFocus: function(location, e) {\r\n var FOCUS_UP = \"up\";\r\n var FOCUS_DOWN = \"down\";\r\n var FOCUS_FIRST = \"first\";\r\n var FOCUS_LAST = \"last\";\r\n var FOCUS_LEFT = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n var FOCUS_RIGHT = this.option(\"rtlEnabled\") ? \"left\" : \"right\";\r\n this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).each(function() {\r\n _fx.default.stop(this, true)\r\n });\r\n var $items = this._findNonDisabledNodes(this._nodeElements());\r\n if (!$items || !$items.length) {\r\n return\r\n }\r\n switch (location) {\r\n case FOCUS_UP:\r\n var $prevItem = this._prevItem($items);\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($prevItem));\r\n var prevItemElement = this._getNodeItemElement($prevItem);\r\n this._scrollableContainer.scrollToElement(prevItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, prevItemElement)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n var $nextItem = this._nextItem($items);\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($nextItem));\r\n var nextItemElement = this._getNodeItemElement($nextItem);\r\n this._scrollableContainer.scrollToElement(nextItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, nextItemElement)\r\n }\r\n break;\r\n case FOCUS_FIRST:\r\n var $firstItem = $items.first();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToFirstItem($items, $items.index(this._prevItem($items)))\r\n }\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($firstItem));\r\n this._scrollableContainer.scrollToElement(this._getNodeItemElement($firstItem));\r\n break;\r\n case FOCUS_LAST:\r\n var $lastItem = $items.last();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToLastItem($items, $items.index(this._nextItem($items)))\r\n }\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($lastItem));\r\n this._scrollableContainer.scrollToElement(this._getNodeItemElement($lastItem));\r\n break;\r\n case FOCUS_RIGHT:\r\n this._expandFocusedContainer();\r\n break;\r\n case FOCUS_LEFT:\r\n this._collapseFocusedContainer();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n },\r\n _getNodeItemElement: function($node) {\r\n return $node.find(\".\" + ITEM_CLASS).get(0)\r\n },\r\n _nodeElements: function() {\r\n return this.$element().find(\".\" + NODE_CLASS).not(\":hidden\")\r\n },\r\n _expandFocusedContainer: function() {\r\n var $focusedNode = (0, _renderer.default)(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length || $focusedNode.hasClass(IS_LEAF)) {\r\n return\r\n }\r\n var $node = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if ($node.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var $nextItem = this._nextItem(this._findNonDisabledNodes(this._nodeElements()));\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($nextItem));\r\n this._scrollableContainer.scrollToElement(this._getNodeItemElement($nextItem));\r\n return\r\n }\r\n var node = this._getNodeByElement($focusedNode.children(\".\" + ITEM_CLASS));\r\n this._toggleExpandedState(node, true)\r\n },\r\n _getClosestNonDisabledNode: function($node) {\r\n do {\r\n $node = $node.parent().closest(\".\" + NODE_CLASS)\r\n } while ($node.children(\".dx-treeview-item.dx-state-disabled\").length);\r\n return $node\r\n },\r\n _collapseFocusedContainer: function() {\r\n var $focusedNode = (0, _renderer.default)(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length) {\r\n return\r\n }\r\n var nodeElement = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if (!$focusedNode.hasClass(IS_LEAF) && nodeElement.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var node = this._getNodeByElement($focusedNode.children(\".\" + ITEM_CLASS));\r\n this._toggleExpandedState(node, false)\r\n } else {\r\n var collapsedNode = this._getClosestNonDisabledNode($focusedNode);\r\n collapsedNode.length && this.option(\"focusedElement\", (0, _element.getPublicElement)(collapsedNode));\r\n this._scrollableContainer.scrollToElement(this._getNodeItemElement(collapsedNode))\r\n }\r\n },\r\n _encodeString: function(value) {\r\n return (0, _type.isString)(value) ? encodeURI(value) : value\r\n },\r\n _decodeString: function(value) {\r\n return (0, _type.isString)(value) ? decodeURI(value) : value\r\n },\r\n updateDimensions: function() {\r\n var _this13 = this;\r\n var deferred = new _deferred.Deferred;\r\n if (this._scrollableContainer) {\r\n this._scrollableContainer.update().done(function() {\r\n deferred.resolveWith(_this13)\r\n })\r\n } else {\r\n deferred.resolveWith(this)\r\n }\r\n return deferred.promise()\r\n },\r\n selectItem: function(itemElement) {\r\n return this._updateItemSelection(true, itemElement)\r\n },\r\n unselectItem: function(itemElement) {\r\n return this._updateItemSelection(false, itemElement)\r\n },\r\n expandItem: function(itemElement) {\r\n return this._toggleExpandedState(itemElement, true)\r\n },\r\n collapseItem: function(itemElement) {\r\n return this._toggleExpandedState(itemElement, false)\r\n },\r\n getNodes: function() {\r\n return this._dataAdapter.getTreeNodes()\r\n },\r\n getSelectedNodes: function() {\r\n var _this14 = this;\r\n return this.getSelectedNodeKeys().map(function(key) {\r\n var node = _this14._dataAdapter.getNodeByKey(key);\r\n return _this14._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n getSelectedNodesKeys: function() {\r\n _ui3.default.log(\"W0002\", \"dxTreeView\", \"getSelectedNodesKeys\", \"20.1\", \"Use the 'getSelectedNodeKeys' method instead\");\r\n return this.getSelectedNodeKeys()\r\n },\r\n getSelectedNodeKeys: function() {\r\n return this._dataAdapter.getSelectedNodesKeys()\r\n },\r\n selectAll: function() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", true)\r\n } else {\r\n this._toggleSelectAll({\r\n value: true\r\n })\r\n }\r\n },\r\n unselectAll: function() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", false)\r\n } else {\r\n this._toggleSelectAll({\r\n value: false\r\n })\r\n }\r\n },\r\n expandAll: function() {\r\n var dataAdapter = this._dataAdapter;\r\n (0, _iterator.each)(dataAdapter.getData(), function(_, node) {\r\n return dataAdapter.toggleExpansion(node.internalFields.key, true)\r\n });\r\n this.repaint()\r\n },\r\n collapseAll: function() {\r\n (0, _iterator.each)(this._dataAdapter.getExpandedNodesKeys(), function(_, key) {\r\n this._toggleExpandedState(key, false)\r\n }.bind(this))\r\n },\r\n scrollToItem: function(keyOrItemOrElement) {\r\n var _this15 = this;\r\n var node = this._getNode(keyOrItemOrElement);\r\n if (!node) {\r\n return (new _deferred.Deferred).reject().promise()\r\n }\r\n var nodeKeysToExpand = [];\r\n var parentNode = node.internalFields.publicNode.parent;\r\n while (null != parentNode) {\r\n if (!parentNode.expanded) {\r\n nodeKeysToExpand.push(parentNode.key)\r\n }\r\n parentNode = parentNode.parent\r\n }\r\n var scrollCallback = new _deferred.Deferred;\r\n this._expandNodes(nodeKeysToExpand.reverse()).always(function() {\r\n var $element = _this15._getNodeElement(node);\r\n if ($element && $element.length) {\r\n _this15._scrollableContainer.scrollToElementTopLeft($element);\r\n scrollCallback.resolve()\r\n } else {\r\n scrollCallback.reject()\r\n }\r\n });\r\n return scrollCallback.promise()\r\n },\r\n _expandNodes: function(keysToExpand) {\r\n var _this16 = this;\r\n if (!keysToExpand || 0 === keysToExpand.length) {\r\n return (new _deferred.Deferred).resolve().promise()\r\n }\r\n var resultCallback = new _deferred.Deferred;\r\n var callbacksByNodes = keysToExpand.map(function(key) {\r\n return _this16.expandItem(key)\r\n });\r\n _deferred.when.apply(_renderer.default, callbacksByNodes).done(function() {\r\n return resultCallback.resolve()\r\n }).fail(function() {\r\n return resultCallback.reject()\r\n });\r\n return resultCallback.promise()\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._setFocusedItemTimeout)\r\n }\r\n});\r\nvar _default = TreeViewBase;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_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 _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.base\"));\r\nrequire(\"./ui.tree_list.state_storing\");\r\nrequire(\"./ui.tree_list.column_chooser\");\r\nrequire(\"./ui.tree_list.master_detail\");\r\nrequire(\"./ui.tree_list.editing\");\r\nrequire(\"./ui.tree_list.validating\");\r\nrequire(\"./ui.tree_list.virtual_scrolling\");\r\nrequire(\"./ui.tree_list.filter_row\");\r\nrequire(\"./ui.tree_list.header_filter\");\r\nrequire(\"./ui.tree_list.filter_sync\");\r\nrequire(\"./ui.tree_list.filter_builder\");\r\nrequire(\"./ui.tree_list.filter_panel\");\r\nrequire(\"./ui.tree_list.pager\");\r\nrequire(\"./ui.tree_list.columns_resizing_reordering\");\r\nrequire(\"./ui.tree_list.column_fixing\");\r\nrequire(\"./ui.tree_list.adaptivity\");\r\nrequire(\"./ui.tree_list.selection\");\r\nrequire(\"./ui.tree_list.search\");\r\nrequire(\"./ui.tree_list.keyboard_navigation\");\r\nrequire(\"./ui.tree_list.virtual_columns\");\r\nrequire(\"./ui.tree_list.focus\");\r\nrequire(\"./ui.tree_list.row_dragging\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _uiTree_list.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.base.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\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 _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _themes = require(\"../themes\");\r\nrequire(\"./ui.tree_list.column_headers\");\r\nrequire(\"./ui.tree_list.columns_controller\");\r\nrequire(\"./ui.tree_list.data_controller\");\r\nrequire(\"./ui.tree_list.sorting\");\r\nrequire(\"./ui.tree_list.rows\");\r\nrequire(\"./ui.tree_list.context_menu\");\r\nrequire(\"./ui.tree_list.error_handling\");\r\nrequire(\"./ui.tree_list.grid_view\");\r\nrequire(\"./ui.tree_list.header_panel\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar callModuleItemsMethod = _uiTree_list.default.callModuleItemsMethod;\r\nvar DATAGRID_ROW_SELECTOR = \".dx-row\";\r\nvar TREELIST_CLASS = \"dx-treelist\";\r\n_uiTree_list.default.registerModulesOrder([\"stateStoring\", \"columns\", \"selection\", \"editorFactory\", \"columnChooser\", \"editing\", \"grouping\", \"masterDetail\", \"validating\", \"adaptivity\", \"data\", \"virtualScrolling\", \"columnHeaders\", \"filterRow\", \"headerPanel\", \"headerFilter\", \"sorting\", \"search\", \"rows\", \"pager\", \"columnsResizingReordering\", \"contextMenu\", \"keyboardNavigation\", \"errorHandling\", \"summary\", \"columnFixing\", \"export\", \"gridView\"]);\r\nvar TreeList = _ui.default.inherit({\r\n _activeStateUnit: DATAGRID_ROW_SELECTOR,\r\n _getDefaultOptions: function() {\r\n var that = this;\r\n var result = that.callBase();\r\n (0, _iterator.each)(_uiTree_list.default.modules, function() {\r\n if ((0, _type.isFunction)(this.defaultOptions)) {\r\n (0, _extend.extend)(true, result, this.defaultOptions())\r\n }\r\n });\r\n return result\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return (0, _themes.isMaterial)()\r\n },\r\n options: {\r\n showRowLines: true,\r\n showColumnLines: false,\r\n headerFilter: {\r\n height: 315\r\n },\r\n editing: {\r\n useIcons: true\r\n }\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n var that = this;\r\n that.callBase();\r\n _uiTree_list.default.processModules(that, _uiTree_list.default);\r\n callModuleItemsMethod(that, \"init\")\r\n },\r\n _clean: _common.noop,\r\n _optionChanged: function(args) {\r\n var that = this;\r\n callModuleItemsMethod(that, \"optionChanged\", [args]);\r\n if (!args.handled) {\r\n that.callBase(args)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this.updateDimensions(true)\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this.updateDimensions()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this.callBase.apply(this, arguments);\r\n this.$element().addClass(TREELIST_CLASS);\r\n this.getView(\"gridView\").render(this.$element())\r\n },\r\n _renderContentImpl: function() {\r\n this.getView(\"gridView\").update()\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n (0, _common.deferRender)(function() {\r\n that._renderContentImpl()\r\n })\r\n },\r\n _dispose: function() {\r\n var that = this;\r\n that.callBase();\r\n callModuleItemsMethod(that, \"dispose\")\r\n },\r\n isReady: function() {\r\n return this.getController(\"data\").isReady()\r\n },\r\n beginUpdate: function() {\r\n var that = this;\r\n that.callBase();\r\n callModuleItemsMethod(that, \"beginUpdate\")\r\n },\r\n endUpdate: function() {\r\n var that = this;\r\n callModuleItemsMethod(that, \"endUpdate\");\r\n that.callBase()\r\n },\r\n getController: function(name) {\r\n return this._controllers[name]\r\n },\r\n getView: function(name) {\r\n return this._views[name]\r\n },\r\n focus: function(element) {\r\n this.callBase();\r\n if ((0, _type.isDefined)(element)) {\r\n this.getController(\"keyboardNavigation\").focus(element)\r\n }\r\n }\r\n});\r\nTreeList.registerModule = _uiTree_list.default.registerModule.bind(_uiTree_list.default);\r\n(0, _component_registrator.default)(\"dxTreeList\", TreeList);\r\nvar _default = TreeList;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.column_headers.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.column_headers\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"columnHeaders\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.columns_controller.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.ColumnsController = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.columns_controller\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ColumnsController = _uiGrid_core.default.controllers.columns.inherit(function() {\r\n return {\r\n _getFirstItems: function(dataSourceAdapter) {\r\n return this.callBase(dataSourceAdapter).map(function(node) {\r\n return node.data\r\n })\r\n },\r\n getFirstDataColumnIndex: function() {\r\n var visibleColumns = this.getVisibleColumns();\r\n var visibleColumnsLength = visibleColumns.length;\r\n var firstDataColumnIndex = 0;\r\n for (var i = 0; i <= visibleColumnsLength - 1; i++) {\r\n if (!(0, _type.isDefined)(visibleColumns[i].command)) {\r\n firstDataColumnIndex = visibleColumns[i].index;\r\n break\r\n }\r\n }\r\n return firstDataColumnIndex\r\n }\r\n }\r\n}());\r\nexports.ColumnsController = ColumnsController;\r\n_uiTree_list.default.registerModule(\"columns\", {\r\n defaultOptions: _uiGrid_core.default.defaultOptions,\r\n controllers: {\r\n columns: ColumnsController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.data_controller.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.DataController = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _uiTree_list2 = _interopRequireDefault(require(\"./ui.tree_list.data_source_adapter\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.data_controller\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DataController = _uiGrid_core.default.controllers.data.inherit(function() {\r\n return {\r\n _getDataSourceAdapter: function() {\r\n return _uiTree_list2.default\r\n },\r\n _getNodeLevel: function(node) {\r\n var level = -1;\r\n while (node.parent) {\r\n if (node.visible) {\r\n level++\r\n }\r\n node = node.parent\r\n }\r\n return level\r\n },\r\n _generateDataItem: function(node, options) {\r\n return {\r\n rowType: \"data\",\r\n node: node,\r\n key: node.key,\r\n data: node.data,\r\n isExpanded: this.isRowExpanded(node.key, options),\r\n level: this._getNodeLevel(node)\r\n }\r\n },\r\n _loadOnOptionChange: function() {\r\n this._dataSource.load()\r\n },\r\n _isItemEquals: function(item1, item2) {\r\n if (!this.callBase.apply(this, arguments)) {\r\n return false\r\n }\r\n if (item1.node && item2.node && item1.node.hasChildren !== item2.node.hasChildren) {\r\n return false\r\n }\r\n if (item1.level !== item2.level) {\r\n return false\r\n }\r\n return true\r\n },\r\n init: function() {\r\n this.createAction(\"onRowExpanding\");\r\n this.createAction(\"onRowExpanded\");\r\n this.createAction(\"onRowCollapsing\");\r\n this.createAction(\"onRowCollapsed\");\r\n this.callBase.apply(this, arguments)\r\n },\r\n keyOf: function(data) {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n return dataSource.keyOf(data)\r\n }\r\n },\r\n key: function() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n return dataSource.getKeyExpr()\r\n }\r\n },\r\n publicMethods: function() {\r\n return this.callBase().concat([\"expandRow\", \"collapseRow\", \"isRowExpanded\", \"getRootNode\", \"getNodeByKey\", \"loadDescendants\", \"forEachNode\"])\r\n },\r\n changeRowExpand: function(key) {\r\n if (this._dataSource) {\r\n var that = this;\r\n var args = {\r\n key: key\r\n };\r\n var isExpanded = this.isRowExpanded(key);\r\n that.executeAction(isExpanded ? \"onRowCollapsing\" : \"onRowExpanding\", args);\r\n if (!args.cancel) {\r\n return that._dataSource.changeRowExpand(key).done(function() {\r\n that.executeAction(isExpanded ? \"onRowCollapsed\" : \"onRowExpanded\", args)\r\n })\r\n }\r\n }\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n isRowExpanded: function(key, cache) {\r\n return this._dataSource && this._dataSource.isRowExpanded(key, cache)\r\n },\r\n expandRow: function(key) {\r\n if (!this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n collapseRow: function(key) {\r\n if (this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n getRootNode: function() {\r\n return this._dataSource && this._dataSource.getRootNode()\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"rootValue\":\r\n case \"parentIdExpr\":\r\n case \"itemsExpr\":\r\n case \"filterMode\":\r\n case \"expandNodesOnFiltering\":\r\n case \"autoExpandAll\":\r\n case \"hasItemsExpr\":\r\n case \"dataStructure\":\r\n this._columnsController.reset();\r\n this._items = [];\r\n this._refreshDataSource();\r\n args.handled = true;\r\n break;\r\n case \"expandedRowKeys\":\r\n case \"onNodesInitialized\":\r\n if (this._dataSource && !this._dataSource._isNodesInitializing && !(0, _common.equalByValue)(args.value, args.previousValue)) {\r\n this._loadOnOptionChange()\r\n }\r\n args.handled = true;\r\n break;\r\n case \"maxFilterLengthInRequest\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getNodeByKey: function(key) {\r\n if (!this._dataSource) {\r\n return\r\n }\r\n return this._dataSource.getNodeByKey(key)\r\n },\r\n getChildNodeKeys: function(parentKey) {\r\n if (!this._dataSource) {\r\n return\r\n }\r\n return this._dataSource.getChildNodeKeys(parentKey)\r\n },\r\n loadDescendants: function(keys, childrenOnly) {\r\n if (!this._dataSource) {\r\n return\r\n }\r\n return this._dataSource.loadDescendants(keys, childrenOnly)\r\n },\r\n forEachNode: function() {\r\n this._dataSource.forEachNode.apply(this, arguments)\r\n }\r\n }\r\n}());\r\nexports.DataController = DataController;\r\n_uiTree_list.default.registerModule(\"data\", {\r\n defaultOptions: function() {\r\n return (0, _extend.extend)({}, _uiGrid_core.default.defaultOptions(), {\r\n itemsExpr: \"items\",\r\n parentIdExpr: \"parentId\",\r\n rootValue: 0,\r\n dataStructure: \"plain\",\r\n expandedRowKeys: [],\r\n filterMode: \"withAncestors\",\r\n expandNodesOnFiltering: true,\r\n autoExpandAll: false,\r\n onNodesInitialized: null,\r\n maxFilterLengthInRequest: 1500,\r\n paging: {\r\n enabled: false\r\n }\r\n })\r\n },\r\n controllers: {\r\n data: DataController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.sorting.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.sorting\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"sorting\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.rows.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.RowsView = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.rows\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TREELIST_TEXT_CONTENT = \"dx-treelist-text-content\";\r\nvar TREELIST_EXPAND_ICON_CONTAINER_CLASS = \"dx-treelist-icon-container\";\r\nvar TREELIST_CELL_EXPANDABLE_CLASS = \"dx-treelist-cell-expandable\";\r\nvar TREELIST_EMPTY_SPACE = \"dx-treelist-empty-space\";\r\nvar TREELIST_EXPANDED_CLASS = \"dx-treelist-expanded\";\r\nvar TREELIST_COLLAPSED_CLASS = \"dx-treelist-collapsed\";\r\nvar RowsView = _uiGrid_core.default.views.rowsView.inherit(function() {\r\n var createCellContent = function($container) {\r\n return (0, _renderer.default)(\"
    \").addClass(TREELIST_TEXT_CONTENT).appendTo($container)\r\n };\r\n var createIcon = function(hasIcon, isExpanded) {\r\n var $iconElement = (0, _renderer.default)(\"
    \").addClass(TREELIST_EMPTY_SPACE);\r\n if (hasIcon) {\r\n $iconElement.toggleClass(TREELIST_EXPANDED_CLASS, isExpanded).toggleClass(TREELIST_COLLAPSED_CLASS, !isExpanded).append((0, _renderer.default)(\"\"))\r\n }\r\n return $iconElement\r\n };\r\n return {\r\n _renderIconContainer: function($container, options) {\r\n var _this = this;\r\n var $iconContainer = (0, _renderer.default)(\"
    \").addClass(TREELIST_EXPAND_ICON_CONTAINER_CLASS).appendTo($container);\r\n options.watch && options.watch(function() {\r\n return [options.row.level, options.row.isExpanded, options.row.node.hasChildren]\r\n }, function() {\r\n $iconContainer.empty();\r\n _this._renderIcons($iconContainer, options)\r\n });\r\n $container.addClass(TREELIST_CELL_EXPANDABLE_CLASS);\r\n return this._renderIcons($iconContainer, options)\r\n },\r\n _renderIcons: function($iconContainer, options) {\r\n var row = options.row;\r\n var level = row.level;\r\n for (var i = 0; i <= level; i++) {\r\n $iconContainer.append(createIcon(i === level && row.node.hasChildren, row.isExpanded))\r\n }\r\n return $iconContainer\r\n },\r\n _renderCellCommandContent: function(container, model) {\r\n this._renderIconContainer(container, model);\r\n return true\r\n },\r\n _processTemplate: function(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var renderingTemplate = this.callBase(template);\r\n var firstDataColumnIndex = that._columnsController.getFirstDataColumnIndex();\r\n if (renderingTemplate && options.column.index === firstDataColumnIndex) {\r\n resultTemplate = {\r\n render: function(options) {\r\n var $container = options.container;\r\n if (that._renderCellCommandContent($container, options.model)) {\r\n options.container = createCellContent($container)\r\n }\r\n renderingTemplate.render(options)\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n _updateCell: function($cell, options) {\r\n $cell = $cell.hasClass(TREELIST_TEXT_CONTENT) ? $cell.parent() : $cell;\r\n this.callBase($cell, options)\r\n },\r\n _rowClick: function(e) {\r\n var dataController = this._dataController;\r\n var $targetElement = (0, _renderer.default)(e.event.target);\r\n var isExpandIcon = this.isExpandIcon($targetElement);\r\n var item = dataController && dataController.items()[e.rowIndex];\r\n if (isExpandIcon && item) {\r\n dataController.changeRowExpand(item.key)\r\n }\r\n this.callBase(e)\r\n },\r\n _createRow: function(row) {\r\n var node = row && row.node;\r\n var $rowElement = this.callBase.apply(this, arguments);\r\n if (node) {\r\n this.setAria(\"level\", row.level, $rowElement);\r\n if (node.hasChildren) {\r\n this.setAria(\"expanded\", row.isExpanded, $rowElement)\r\n }\r\n }\r\n return $rowElement\r\n },\r\n isExpandIcon: function($targetElement) {\r\n return !!$targetElement.closest(\".\" + TREELIST_EXPANDED_CLASS + \", .\" + TREELIST_COLLAPSED_CLASS).length\r\n }\r\n }\r\n}());\r\nexports.RowsView = RowsView;\r\n_uiTree_list.default.registerModule(\"rows\", {\r\n defaultOptions: _uiGrid_core.default.defaultOptions,\r\n views: {\r\n rowsView: RowsView\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.context_menu.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.context_menu\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"contextMenu\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.error_handling.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.error_handling\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"errorHandling\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.grid_view.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.grid_view\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar GridView = _uiGrid_core.default.views.gridView.inherit(function() {\r\n return {\r\n _getWidgetAriaLabel: function() {\r\n return \"dxTreeList-ariaTreeList\"\r\n },\r\n _getTableRoleName: function() {\r\n return \"treegrid\"\r\n }\r\n }\r\n}());\r\n_uiTree_list.default.registerModule(\"gridView\", {\r\n defaultOptions: _uiGrid_core.default.defaultOptions,\r\n controllers: _uiGrid_core.default.controllers,\r\n views: {\r\n gridView: GridView\r\n },\r\n extenders: {\r\n controllers: {\r\n resizing: {\r\n _toggleBestFitMode: function(isBestFit) {\r\n this.callBase(isBestFit);\r\n if (!this.option(\"legacyRendering\")) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n $rowsTable.find(\".dx-treelist-cell-expandable\").toggleClass(this.addWidgetPrefix(\"best-fit\"), isBestFit)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.header_panel.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.header_panel\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"headerPanel\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.state_storing.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.state_storing\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar origApplyState = _uiGrid_core.default.extenders.controllers.stateStoring.applyState;\r\n_uiTree_list.default.registerModule(\"stateStoring\", (0, _extend.extend)(true, {}, _uiGrid_core.default, {\r\n extenders: {\r\n controllers: {\r\n stateStoring: {\r\n applyState: function(state) {\r\n origApplyState.apply(this, arguments);\r\n if (Object.prototype.hasOwnProperty.call(state, \"expandedRowKeys\")) {\r\n this.option(\"expandedRowKeys\", state.expandedRowKeys && state.expandedRowKeys.slice())\r\n }\r\n }\r\n },\r\n data: {\r\n getUserState: function() {\r\n var state = this.callBase.apply(this, arguments);\r\n if (!this.option(\"autoExpandAll\")) {\r\n state.expandedRowKeys = this.option(\"expandedRowKeys\")\r\n }\r\n return state\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.column_chooser.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.column_chooser\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"columnChooser\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.master_detail.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.master_detail\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"masterDetail\", (0, _extend.extend)(true, {}, _uiGrid_core.default, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n isRowExpanded: function() {\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _processItems: function() {\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _processDataItem: function() {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.editing.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\nrequire(\"./ui.tree_list.editor_factory\");\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _uiTree_list2 = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.utils\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"../grid_core/ui.grid_core.editing\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TREELIST_EXPAND_ICON_CONTAINER_CLASS = \"dx-treelist-icon-container\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar DATA_EDIT_DATA_INSERT_TYPE = \"insert\";\r\nvar EditingController = _uiGrid_core2.default.controllers.editing.inherit(function() {\r\n return {\r\n _generateNewItem: function(key) {\r\n var item = this.callBase(key);\r\n item.data = {\r\n key: key\r\n };\r\n item.children = [];\r\n item.level = 0;\r\n item.parentKey = this.option(\"rootValue\");\r\n return item\r\n },\r\n _needInsertItem: function(change, changeType, items, item) {\r\n var parentKey = change.key.parentKey;\r\n if (void 0 !== parentKey && parentKey !== this.option(\"rootValue\")) {\r\n var rowIndex = _uiGrid_core.default.getIndexByKey(parentKey, items);\r\n if (rowIndex >= 0 && this._dataController.isRowExpanded(parentKey)) {\r\n items.splice(rowIndex + 1, 0, item)\r\n }\r\n return false\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isEditColumnVisible: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n var editingOptions = this.option(\"editing\");\r\n return result || editingOptions && editingOptions.allowAdding\r\n },\r\n _isDefaultButtonVisible: function(button, options) {\r\n var result = this.callBase.apply(this, arguments);\r\n var row = options.row;\r\n if (\"add\" === button.name) {\r\n return this.allowAdding(options) && row.rowIndex !== this._getVisibleEditRowIndex() && !(row.removed || row.isNewRow)\r\n }\r\n return result\r\n },\r\n _getEditingButtons: function(options) {\r\n var buttons = this.callBase.apply(this, arguments);\r\n if (!options.column.buttons) {\r\n buttons.unshift(this._getButtonConfig(\"add\", options))\r\n }\r\n return buttons\r\n },\r\n _beforeSaveEditData: function(change) {\r\n var dataController = this._dataController;\r\n var result = this.callBase.apply(this, arguments);\r\n if (change && change.type !== DATA_EDIT_DATA_INSERT_TYPE) {\r\n var store = null === dataController || void 0 === dataController ? void 0 : dataController.store();\r\n var key = null === store || void 0 === store ? void 0 : store.key();\r\n if (!(0, _type.isDefined)(key)) {\r\n throw _ui.default.Error(\"E1045\")\r\n }\r\n }\r\n return result\r\n },\r\n addRowByRowIndex: function(rowIndex) {\r\n var dataController = this.getController(\"data\");\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n return this.addRow(row ? row.key : void 0)\r\n },\r\n addRow: function(key) {\r\n var that = this;\r\n var callBase = that.callBase;\r\n var dataController = that.getController(\"data\");\r\n if (void 0 !== key && !dataController.isRowExpanded(key)) {\r\n var deferred = new _deferred.Deferred;\r\n dataController.expandRow(key).done(function() {\r\n setTimeout(function() {\r\n callBase.call(that, key).done(deferred.resolve).fail(deferred.reject)\r\n })\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n if (void 0 === key) {\r\n key = that.option(\"rootValue\")\r\n }\r\n return callBase.call(that, key)\r\n },\r\n _initNewRow: function(options, parentKey) {\r\n var dataController = this.getController(\"data\");\r\n var dataSourceAdapter = dataController.dataSource();\r\n var parentIdSetter = dataSourceAdapter.createParentIdSetter();\r\n parentIdSetter(options.data, parentKey);\r\n return this.callBase.apply(this, arguments)\r\n },\r\n allowAdding: function(options) {\r\n return this._allowEditAction(\"allowAdding\", options)\r\n },\r\n _needToCloseEditableCell: function($targetElement) {\r\n return this.callBase.apply(this, arguments) || $targetElement.closest(\".\" + TREELIST_EXPAND_ICON_CONTAINER_CLASS).length && this.isEditing()\r\n },\r\n getButtonLocalizationNames: function() {\r\n var names = this.callBase.apply(this);\r\n names.add = \"dxTreeList-editingAddRowToNode\";\r\n return names\r\n }\r\n }\r\n}());\r\nvar originalRowClick = _uiGrid_core2.default.extenders.views.rowsView._rowClick;\r\nvar originalRowDblClick = _uiGrid_core2.default.extenders.views.rowsView._rowDblClick;\r\nvar validateClick = function(e) {\r\n var $targetElement = (0, _renderer.default)(e.event.target);\r\n var originalClickHandler = \"dxdblclick\" === e.event.type ? originalRowDblClick : originalRowClick;\r\n if ($targetElement.closest(\".\" + SELECT_CHECKBOX_CLASS).length) {\r\n return false\r\n }\r\n return !needToCallOriginalClickHandler.call(this, e, originalClickHandler)\r\n};\r\n\r\nfunction needToCallOriginalClickHandler(e, originalClickHandler) {\r\n var $targetElement = (0, _renderer.default)(e.event.target);\r\n if (!$targetElement.closest(\".\" + TREELIST_EXPAND_ICON_CONTAINER_CLASS).length) {\r\n originalClickHandler.call(this, e);\r\n return true\r\n }\r\n return false\r\n}\r\nvar RowsViewExtender = (0, _extend.extend)({}, _uiGrid_core2.default.extenders.views.rowsView, {\r\n _renderCellCommandContent: function($container, options) {\r\n var editingController = this._editingController;\r\n var isEditRow = options.row && editingController.isEditRow(options.row.rowIndex);\r\n var isEditing = options.isEditing || isEditRow;\r\n if (!isEditing) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return false\r\n },\r\n _rowClick: function(e) {\r\n if (validateClick.call(this, e)) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _rowDblClick: function(e) {\r\n if (validateClick.call(this, e)) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n});\r\n_uiTree_list2.default.registerModule(\"editing\", {\r\n defaultOptions: function() {\r\n return (0, _extend.extend)(true, _uiGrid_core2.default.defaultOptions(), {\r\n editing: {\r\n texts: {\r\n addRowToNode: _message.default.format(\"dxTreeList-editingAddRowToNode\")\r\n }\r\n }\r\n })\r\n },\r\n controllers: {\r\n editing: EditingController\r\n },\r\n extenders: {\r\n controllers: (0, _extend.extend)(true, {}, _uiGrid_core2.default.extenders.controllers, {\r\n data: {\r\n changeRowExpand: function() {\r\n this._editingController.refresh();\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }),\r\n views: {\r\n rowsView: RowsViewExtender,\r\n headerPanel: _uiGrid_core2.default.extenders.views.headerPanel\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.editor_factory.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.editor_factory\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"editorFactory\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.validating.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.validating\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar EditingControllerExtender = (0, _extend.extend)({}, _uiGrid_core.default.extenders.controllers.editing);\r\ndelete EditingControllerExtender.processItems;\r\ndelete EditingControllerExtender.processDataItem;\r\n_uiTree_list.default.registerModule(\"validating\", {\r\n defaultOptions: _uiGrid_core.default.defaultOptions,\r\n controllers: _uiGrid_core.default.controllers,\r\n extenders: {\r\n controllers: {\r\n editing: EditingControllerExtender,\r\n editorFactory: _uiGrid_core.default.extenders.controllers.editorFactory\r\n },\r\n views: _uiGrid_core.default.extenders.views\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.virtual_scrolling.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiTree_list2 = _interopRequireDefault(require(\"./ui.tree_list.data_source_adapter\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.virtual_scrolling\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar oldDefaultOptions = _uiGrid_core.default.defaultOptions;\r\nvar originalDataControllerExtender = _uiGrid_core.default.extenders.controllers.data;\r\nvar originalDataSourceAdapterExtender = _uiGrid_core.default.extenders.dataSourceAdapter;\r\n_uiGrid_core.default.extenders.controllers.data = (0, _extend.extend)({}, originalDataControllerExtender, {\r\n _loadOnOptionChange: function() {\r\n var virtualScrollController = this._dataSource && this._dataSource._virtualScrollController;\r\n virtualScrollController && virtualScrollController.reset();\r\n this.callBase()\r\n }\r\n});\r\n_uiGrid_core.default.extenders.dataSourceAdapter = (0, _extend.extend)({}, originalDataSourceAdapterExtender, {\r\n changeRowExpand: function() {\r\n var _this = this;\r\n return this.callBase.apply(this, arguments).done(function() {\r\n var viewportItemIndex = _this.getViewportItemIndex();\r\n viewportItemIndex >= 0 && _this.setViewportItemIndex(viewportItemIndex)\r\n })\r\n }\r\n});\r\n_uiTree_list.default.registerModule(\"virtualScrolling\", (0, _extend.extend)({}, _uiGrid_core.default, {\r\n defaultOptions: function() {\r\n return (0, _extend.extend)(true, oldDefaultOptions(), {\r\n scrolling: {\r\n mode: \"virtual\"\r\n }\r\n })\r\n }\r\n}));\r\n_uiTree_list2.default.extend(_uiGrid_core.default.extenders.dataSourceAdapter);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.filter_row.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.filter_row\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"filterRow\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.header_filter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.header_filter\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"headerFilter\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.filter_sync.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.filter_sync\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"filterSync\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.filter_builder.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.filter_builder\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"filterBuilder\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.filter_panel.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.filter_panel\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"filterPanel\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.pager.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.pager\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"pager\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.columns_resizing_reordering.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.columns_resizing_reordering\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"columnsResizingReordering\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.column_fixing.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.column_fixing\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"columnFixing\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.adaptivity.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.adaptivity\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"adaptivity\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.selection.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.selection\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _type = require(\"../../core/utils/type\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TREELIST_SELECT_ALL_CLASS = \"dx-treelist-select-all\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar originalRowClick = _uiGrid_core.default.extenders.views.rowsView._rowClick;\r\nvar originalHandleDataChanged = _uiGrid_core.default.extenders.controllers.data._handleDataChanged;\r\nvar nodeExists = function(array, currentKey) {\r\n return !!array.filter(function(key) {\r\n return key === currentKey\r\n }).length\r\n};\r\n_uiTree_list.default.registerModule(\"selection\", (0, _extend.extend)(true, {}, _uiGrid_core.default, {\r\n defaultOptions: function() {\r\n return (0, _extend.extend)(true, _uiGrid_core.default.defaultOptions(), {\r\n selection: {\r\n showCheckBoxesMode: \"always\",\r\n recursive: false\r\n }\r\n })\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n _handleDataChanged: function(e) {\r\n var selectionController = this.getController(\"selection\");\r\n var isRecursiveSelection = selectionController.isRecursiveSelection();\r\n if (isRecursiveSelection && (!e || \"updateSelectionState\" !== e.changeType)) {\r\n selectionController.updateSelectionState({\r\n selectedItemKeys: this.option(\"selectedRowKeys\")\r\n })\r\n }\r\n originalHandleDataChanged.apply(this, arguments)\r\n },\r\n loadDescendants: function() {\r\n var that = this;\r\n var d = that.callBase.apply(that, arguments);\r\n var selectionController = that.getController(\"selection\");\r\n var isRecursiveSelection = selectionController.isRecursiveSelection();\r\n if (isRecursiveSelection) {\r\n d.done(function() {\r\n selectionController.updateSelectionState({\r\n selectedItemKeys: that.option(\"selectedRowKeys\")\r\n })\r\n })\r\n }\r\n return d\r\n }\r\n },\r\n selection: {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._selectionStateByKey = {}\r\n },\r\n _getSelectionConfig: function() {\r\n var _arguments = arguments,\r\n _this = this;\r\n var config = this.callBase.apply(this, arguments);\r\n var plainItems = config.plainItems;\r\n config.plainItems = function(all) {\r\n if (all) {\r\n return _this._dataController.getCachedStoreData() || []\r\n }\r\n return plainItems.apply(_this, _arguments).map(function(item) {\r\n return item.data\r\n })\r\n };\r\n config.isItemSelected = function(item) {\r\n var key = _this._dataController.keyOf(item);\r\n return _this.isRowSelected(key)\r\n };\r\n config.isSelectableItem = function() {\r\n return true\r\n };\r\n config.getItemData = function(item) {\r\n return item\r\n };\r\n return config\r\n },\r\n renderSelectCheckBoxContainer: function($container, model) {\r\n var that = this;\r\n var rowsView = that.component.getView(\"rowsView\");\r\n $container.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n var $checkbox = rowsView._renderSelectCheckBox($container, {\r\n value: model.row.isSelected,\r\n row: model.row,\r\n column: model.column\r\n });\r\n rowsView._attachCheckBoxClickEvent($checkbox)\r\n },\r\n _updateSelectColumn: _common.noop,\r\n _getSelectAllNodeKeys: function() {\r\n var component = this.component;\r\n var root = component.getRootNode();\r\n var cache = {};\r\n var keys = [];\r\n var isRecursiveSelection = this.isRecursiveSelection();\r\n root && _uiTree_list.default.foreachNodes(root.children, function(node) {\r\n if (void 0 !== node.key && (node.visible || isRecursiveSelection)) {\r\n keys.push(node.key)\r\n }\r\n if (!node.visible) {\r\n return true\r\n }\r\n return isRecursiveSelection ? false : component.isRowExpanded(node.key, cache)\r\n });\r\n return keys\r\n },\r\n isSelectAll: function() {\r\n var component = this.component;\r\n var visibleKeys = this._getSelectAllNodeKeys();\r\n var selectedVisibleKeys = visibleKeys.filter(function(key) {\r\n return component.isRowSelected(key)\r\n });\r\n if (!selectedVisibleKeys.length) {\r\n var hasIndeterminateState = visibleKeys.some(function(key) {\r\n return void 0 === component.isRowSelected(key)\r\n });\r\n return hasIndeterminateState ? void 0 : false\r\n } else {\r\n if (selectedVisibleKeys.length === visibleKeys.length) {\r\n return true\r\n }\r\n }\r\n },\r\n selectAll: function() {\r\n var _this2 = this;\r\n var visibleKeys = this._getSelectAllNodeKeys().filter(function(key) {\r\n return !_this2.isRowSelected(key)\r\n });\r\n this.focusedItemIndex(-1);\r\n return this.selectRows(visibleKeys, true)\r\n },\r\n deselectAll: function() {\r\n var visibleKeys = this._getSelectAllNodeKeys();\r\n this.focusedItemIndex(-1);\r\n return this.deselectRows(visibleKeys)\r\n },\r\n selectedItemKeys: function(value, preserve, isDeselect, isSelectAll) {\r\n var that = this;\r\n var selectedRowKeys = that.option(\"selectedRowKeys\");\r\n var isRecursiveSelection = this.isRecursiveSelection();\r\n var normalizedArgs = isRecursiveSelection && that._normalizeSelectionArgs({\r\n keys: (0, _type.isDefined)(value) ? value : []\r\n }, !isDeselect);\r\n if (normalizedArgs && !(0, _common.equalByValue)(normalizedArgs.selectedRowKeys, selectedRowKeys)) {\r\n that._isSelectionNormalizing = true;\r\n return this.callBase(normalizedArgs.selectedRowKeys, false, false, false).always(function() {\r\n that._isSelectionNormalizing = false\r\n }).done(function(items) {\r\n normalizedArgs.selectedRowsData = items;\r\n that._fireSelectionChanged(normalizedArgs)\r\n })\r\n }\r\n return this.callBase(value, preserve, isDeselect, isSelectAll)\r\n },\r\n changeItemSelection: function(itemIndex, keyboardKeys) {\r\n var isRecursiveSelection = this.isRecursiveSelection();\r\n if (isRecursiveSelection && !keyboardKeys.shift) {\r\n var key = this._dataController.getKeyByRowIndex(itemIndex);\r\n return this.selectedItemKeys(key, true, this.isRowSelected(key))\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateParentSelectionState: function(node, isSelected) {\r\n var that = this;\r\n var state = isSelected;\r\n var parentNode = node.parent;\r\n if (parentNode) {\r\n if (parentNode.children.length > 1) {\r\n if (false === isSelected) {\r\n var hasSelectedState = parentNode.children.some(function(childNode, index, children) {\r\n return that._selectionStateByKey[childNode.key]\r\n });\r\n state = hasSelectedState ? void 0 : false\r\n } else {\r\n if (true === isSelected) {\r\n var hasNonSelectedState = parentNode.children.some(function(childNode) {\r\n return !that._selectionStateByKey[childNode.key]\r\n });\r\n state = hasNonSelectedState ? void 0 : true\r\n }\r\n }\r\n }\r\n this._selectionStateByKey[parentNode.key] = state;\r\n if (parentNode.parent && parentNode.parent.level >= 0) {\r\n this._updateParentSelectionState(parentNode, state)\r\n }\r\n }\r\n },\r\n _updateChildrenSelectionState: function(node, isSelected) {\r\n var that = this;\r\n var children = node.children;\r\n children && children.forEach(function(childNode) {\r\n that._selectionStateByKey[childNode.key] = isSelected;\r\n if (childNode.children.length > 0) {\r\n that._updateChildrenSelectionState(childNode, isSelected)\r\n }\r\n })\r\n },\r\n _updateSelectionStateCore: function(keys, isSelected) {\r\n var dataController = this._dataController;\r\n for (var i = 0; i < keys.length; i++) {\r\n this._selectionStateByKey[keys[i]] = isSelected;\r\n var node = dataController.getNodeByKey(keys[i]);\r\n if (node) {\r\n this._updateParentSelectionState(node, isSelected);\r\n this._updateChildrenSelectionState(node, isSelected)\r\n }\r\n }\r\n },\r\n _getSelectedParentKeys: function(key, selectedItemKeys, useCash) {\r\n var selectedParentNode;\r\n var node = this._dataController.getNodeByKey(key);\r\n var parentNode = node && node.parent;\r\n var result = [];\r\n while (parentNode && parentNode.level >= 0) {\r\n result.unshift(parentNode.key);\r\n var isSelected = useCash ? !nodeExists(selectedItemKeys, parentNode.key) && this.isRowSelected(parentNode.key) : selectedItemKeys.indexOf(parentNode.key) >= 0;\r\n if (isSelected) {\r\n selectedParentNode = parentNode;\r\n result = this._getSelectedParentKeys(selectedParentNode.key, selectedItemKeys, useCash).concat(result);\r\n break\r\n } else {\r\n if (useCash) {\r\n break\r\n }\r\n }\r\n parentNode = parentNode.parent\r\n }\r\n return selectedParentNode && result || []\r\n },\r\n _getSelectedChildKeys: function(key, keysToIgnore) {\r\n var _this3 = this;\r\n var childKeys = [];\r\n var node = this._dataController.getNodeByKey(key);\r\n node && _uiTree_list.default.foreachNodes(node.children, function(childNode) {\r\n var ignoreKeyIndex = keysToIgnore.indexOf(childNode.key);\r\n if (ignoreKeyIndex < 0) {\r\n childKeys.push(childNode.key)\r\n }\r\n return ignoreKeyIndex > 0 || ignoreKeyIndex < 0 && void 0 === _this3._selectionStateByKey[childNode.key]\r\n });\r\n return childKeys\r\n },\r\n _normalizeParentKeys: function(key, args) {\r\n var that = this;\r\n var keysToIgnore = [key];\r\n var parentNodeKeys = that._getSelectedParentKeys(key, args.selectedRowKeys);\r\n if (parentNodeKeys.length) {\r\n keysToIgnore = keysToIgnore.concat(parentNodeKeys);\r\n keysToIgnore.forEach(function(key) {\r\n var index = args.selectedRowKeys.indexOf(key);\r\n if (index >= 0) {\r\n args.selectedRowKeys.splice(index, 1)\r\n }\r\n });\r\n var childKeys = that._getSelectedChildKeys(parentNodeKeys[0], keysToIgnore);\r\n args.selectedRowKeys = args.selectedRowKeys.concat(childKeys)\r\n }\r\n },\r\n _normalizeChildrenKeys: function(key, args) {\r\n var _this4 = this;\r\n var node = this._dataController.getNodeByKey(key);\r\n node && node.children.forEach(function(childNode) {\r\n var index = args.selectedRowKeys.indexOf(childNode.key);\r\n if (index >= 0) {\r\n args.selectedRowKeys.splice(index, 1)\r\n }\r\n _this4._normalizeChildrenKeys(childNode.key, args)\r\n })\r\n },\r\n _normalizeSelectedRowKeysCore: function(keys, args, isSelect) {\r\n var that = this;\r\n keys.forEach(function(key) {\r\n if (that.isRowSelected(key) === isSelect) {\r\n return\r\n }\r\n that._normalizeChildrenKeys(key, args);\r\n var index = args.selectedRowKeys.indexOf(key);\r\n if (isSelect) {\r\n if (index < 0) {\r\n args.selectedRowKeys.push(key)\r\n }\r\n args.currentSelectedRowKeys.push(key)\r\n } else {\r\n if (index >= 0) {\r\n args.selectedRowKeys.splice(index, 1)\r\n }\r\n args.currentDeselectedRowKeys.push(key);\r\n that._normalizeParentKeys(key, args)\r\n }\r\n })\r\n },\r\n _normalizeSelectionArgs: function(args, isSelect) {\r\n var result;\r\n var keys = Array.isArray(args.keys) ? args.keys : [args.keys];\r\n var selectedRowKeys = this.option(\"selectedRowKeys\") || [];\r\n if (keys.length) {\r\n result = {\r\n currentSelectedRowKeys: [],\r\n currentDeselectedRowKeys: [],\r\n selectedRowKeys: selectedRowKeys.slice(0)\r\n };\r\n this._normalizeSelectedRowKeysCore(keys, result, isSelect)\r\n }\r\n return result\r\n },\r\n _updateSelectedItems: function(args) {\r\n this.updateSelectionState(args);\r\n this.callBase(args)\r\n },\r\n _fireSelectionChanged: function() {\r\n if (!this._isSelectionNormalizing) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _isModeLeavesOnly: function(mode) {\r\n return \"leavesOnly\" === mode\r\n },\r\n _removeDuplicatedKeys: function(keys) {\r\n var result = [];\r\n var processedKeys = {};\r\n keys.forEach(function(key) {\r\n if (!processedKeys[key]) {\r\n processedKeys[key] = true;\r\n result.push(key)\r\n }\r\n });\r\n return result\r\n },\r\n _getAllChildKeys: function(key) {\r\n var childKeys = [];\r\n var node = this._dataController.getNodeByKey(key);\r\n node && _uiTree_list.default.foreachNodes(node.children, function(childNode) {\r\n childKeys.push(childNode.key)\r\n }, true);\r\n return childKeys\r\n },\r\n _getAllSelectedRowKeys: function(keys) {\r\n var _this5 = this;\r\n var result = [];\r\n keys.forEach(function(key) {\r\n var parentKeys = _this5._getSelectedParentKeys(key, [], true);\r\n var childKeys = _this5._getAllChildKeys(key);\r\n result.push.apply(result, parentKeys.concat([key], childKeys))\r\n });\r\n result = this._removeDuplicatedKeys(result);\r\n return result\r\n },\r\n _getParentSelectedRowKeys: function(keys) {\r\n var that = this;\r\n var result = [];\r\n keys.forEach(function(key) {\r\n var parentKeys = that._getSelectedParentKeys(key, keys);\r\n !parentKeys.length && result.push(key)\r\n });\r\n return result\r\n },\r\n _getLeafSelectedRowKeys: function(keys) {\r\n var that = this;\r\n var result = [];\r\n var dataController = that._dataController;\r\n keys.forEach(function(key) {\r\n var node = dataController.getNodeByKey(key);\r\n node && !node.hasChildren && result.push(key)\r\n });\r\n return result\r\n },\r\n isRecursiveSelection: function() {\r\n var selectionMode = this.option(\"selection.mode\");\r\n var isRecursive = this.option(\"selection.recursive\");\r\n return \"multiple\" === selectionMode && isRecursive\r\n },\r\n updateSelectionState: function(options) {\r\n var removedItemKeys = options.removedItemKeys || [];\r\n var selectedItemKeys = options.selectedItemKeys || [];\r\n this._updateSelectionStateCore(removedItemKeys, false);\r\n this._updateSelectionStateCore(selectedItemKeys, true)\r\n },\r\n isRowSelected: function(key) {\r\n var result = this.callBase.apply(this, arguments);\r\n var isRecursiveSelection = this.isRecursiveSelection();\r\n if (!result && isRecursiveSelection) {\r\n if (key in this._selectionStateByKey) {\r\n return this._selectionStateByKey[key]\r\n }\r\n return false\r\n }\r\n return result\r\n },\r\n getSelectedRowKeys: function(mode) {\r\n var that = this;\r\n if (!that._dataController) {\r\n return []\r\n }\r\n var selectedRowKeys = that.callBase.apply(that, arguments);\r\n if (mode) {\r\n if (this.isRecursiveSelection()) {\r\n selectedRowKeys = this._getAllSelectedRowKeys(selectedRowKeys)\r\n }\r\n if (\"all\" !== mode) {\r\n if (\"excludeRecursive\" === mode) {\r\n selectedRowKeys = that._getParentSelectedRowKeys(selectedRowKeys)\r\n } else {\r\n if (that._isModeLeavesOnly(mode)) {\r\n selectedRowKeys = that._getLeafSelectedRowKeys(selectedRowKeys)\r\n }\r\n }\r\n }\r\n }\r\n return selectedRowKeys\r\n },\r\n getSelectedRowsData: function(mode) {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var selectedKeys = this.getSelectedRowKeys(mode) || [];\r\n var selectedRowsData = [];\r\n selectedKeys.forEach(function(key) {\r\n var node = dataController.getNodeByKey(key);\r\n node && selectedRowsData.push(node.data)\r\n });\r\n return selectedRowsData\r\n },\r\n refresh: function() {\r\n this._selectionStateByKey = {};\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: {\r\n _processTemplate: function(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var renderingTemplate = this.callBase(template, options);\r\n var firstDataColumnIndex = that._columnsController.getFirstDataColumnIndex();\r\n if (renderingTemplate && \"header\" === options.rowType && options.column.index === firstDataColumnIndex) {\r\n resultTemplate = {\r\n render: function(options) {\r\n if (\"multiple\" === that.option(\"selection.mode\")) {\r\n that.renderSelectAll(options.container, options.model)\r\n }\r\n renderingTemplate.render(options)\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n renderSelectAll: function($cell, options) {\r\n $cell.addClass(TREELIST_SELECT_ALL_CLASS);\r\n this._renderSelectAllCheckBox($cell)\r\n },\r\n _isSortableElement: function($target) {\r\n return this.callBase($target) && !$target.closest(\".\" + SELECT_CHECKBOX_CLASS).length\r\n }\r\n },\r\n rowsView: {\r\n _renderIcons: function($iconContainer, options) {\r\n this.callBase.apply(this, arguments);\r\n if (\"multiple\" === this.option(\"selection.mode\")) {\r\n this.getController(\"selection\").renderSelectCheckBoxContainer($iconContainer, options)\r\n }\r\n return $iconContainer\r\n },\r\n _rowClick: function(e) {\r\n var $targetElement = (0, _renderer.default)(e.event.target);\r\n if (this.isExpandIcon($targetElement)) {\r\n this.callBase.apply(this, arguments)\r\n } else {\r\n originalRowClick.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.search.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.search\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"search\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.keyboard_navigation.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.keyboard_navigation\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"keyboardNavigation\", (0, _extend.extend)(true, {}, _uiGrid_core.default, {\r\n extenders: {\r\n controllers: {\r\n keyboardNavigation: {\r\n _leftRightKeysHandler: function(eventArgs, isEditing) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var dataController = this._dataController;\r\n if (eventArgs.ctrl) {\r\n var directionCode = this._getDirectionCodeByKey(eventArgs.keyName);\r\n var key = dataController.getKeyByRowIndex(rowIndex);\r\n if (\"nextInRow\" === directionCode) {\r\n dataController.expandRow(key)\r\n } else {\r\n dataController.collapseRow(key)\r\n }\r\n } else {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.virtual_columns.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.virtual_columns\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"virtualColumns\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.focus.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.focus\"));\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 findIndex(items, callback) {\r\n var result = -1;\r\n items.forEach(function(node, index) {\r\n if (callback(node)) {\r\n result = index\r\n }\r\n });\r\n return result\r\n}\r\n_uiTree_list.default.registerModule(\"focus\", (0, _extend.extend)(true, {}, _uiGrid_core.default, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n changeRowExpand: function(key) {\r\n if (this.option(\"focusedRowEnabled\") && this.isRowExpanded(key)) {\r\n if (this._isFocusedRowInside(key)) {\r\n this.option(\"focusedRowKey\", key)\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isFocusedRowInside: function(parentKey) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var rowIndex = this.getRowIndexByKey(focusedRowKey);\r\n var focusedRow = rowIndex >= 0 && this.getVisibleRows()[rowIndex];\r\n var parent = focusedRow && focusedRow.node.parent;\r\n while (parent) {\r\n if (parent.key === parentKey) {\r\n return true\r\n }\r\n parent = parent.parent\r\n }\r\n return false\r\n },\r\n getParentKey: function(key) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var node = that.getNodeByKey(key);\r\n var d = new _deferred.Deferred;\r\n if (node) {\r\n d.resolve(node.parent ? node.parent.key : void 0)\r\n } else {\r\n dataSource.load({\r\n filter: [dataSource.getKeyExpr(), \"=\", key]\r\n }).done(function(items) {\r\n var parentData = items[0];\r\n if (parentData) {\r\n d.resolve(dataSource.parentKeyOf(parentData))\r\n } else {\r\n d.reject()\r\n }\r\n }).fail(d.reject)\r\n }\r\n return d.promise()\r\n },\r\n expandAscendants: function(key) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new _deferred.Deferred;\r\n that.getParentKey(key).done(function(parentKey) {\r\n if (dataSource && void 0 !== parentKey && parentKey !== that.option(\"rootValue\")) {\r\n dataSource._isNodesInitializing = true;\r\n that.expandRow(parentKey);\r\n dataSource._isNodesInitializing = false;\r\n that.expandAscendants(parentKey).done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve()\r\n }\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n getPageIndexByKey: function(key) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new _deferred.Deferred;\r\n that.expandAscendants(key).done(function() {\r\n dataSource.load({\r\n filter: that.getCombinedFilter(),\r\n sort: that.getController(\"columns\").getSortDataSourceParameters(!dataSource.remoteOperations().sorting),\r\n parentIds: []\r\n }).done(function(nodes) {\r\n var offset = findIndex(nodes, function(node) {\r\n return that.keyOf(node.data) === key\r\n });\r\n var pageIndex = that.pageIndex();\r\n if (offset >= 0) {\r\n pageIndex = Math.floor(offset / that.pageSize())\r\n }\r\n d.resolve(pageIndex)\r\n }).fail(d.reject)\r\n }).fail(d.reject);\r\n return d.promise()\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.row_dragging.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiTree_list = _interopRequireDefault(require(\"./ui.tree_list.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.row_dragging\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiTree_list.default.registerModule(\"rowDragging\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/validation_engine.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 _class = _interopRequireDefault(require(\"../core/class\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _array = require(\"../core/utils/array\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _events_strategy = require(\"../core/events_strategy\");\r\nvar _errors = _interopRequireDefault(require(\"../core/errors\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _number = _interopRequireDefault(require(\"../localization/number\"));\r\nvar _message = _interopRequireDefault(require(\"../localization/message\"));\r\nvar _promise = _interopRequireDefault(require(\"../core/polyfills/promise\"));\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 _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 STATUS = {\r\n valid: \"valid\",\r\n invalid: \"invalid\",\r\n pending: \"pending\"\r\n};\r\nvar BaseRuleValidator = function() {\r\n function BaseRuleValidator() {\r\n this.NAME = \"base\"\r\n }\r\n var _proto = BaseRuleValidator.prototype;\r\n _proto.defaultMessage = function(value) {\r\n return _message.default.getFormatter(\"validation-\".concat(this.NAME))(value)\r\n };\r\n _proto.defaultFormattedMessage = function(value) {\r\n return _message.default.getFormatter(\"validation-\".concat(this.NAME, \"-formatted\"))(value)\r\n };\r\n _proto._isValueEmpty = function(value) {\r\n return !rulesValidators.required.validate(value, {})\r\n };\r\n _proto.validate = function(value, rule) {\r\n var _this = this;\r\n var valueArray = Array.isArray(value) ? value : [value];\r\n var result = true;\r\n if (valueArray.length) {\r\n valueArray.every(function(itemValue) {\r\n result = _this._validate(itemValue, rule);\r\n return result\r\n })\r\n } else {\r\n result = this._validate(null, rule)\r\n }\r\n return result\r\n };\r\n return BaseRuleValidator\r\n}();\r\nvar RequiredRuleValidator = function(_BaseRuleValidator) {\r\n _inheritsLoose(RequiredRuleValidator, _BaseRuleValidator);\r\n\r\n function RequiredRuleValidator() {\r\n var _this2;\r\n _this2 = _BaseRuleValidator.call(this) || this;\r\n _this2.NAME = \"required\";\r\n return _this2\r\n }\r\n var _proto2 = RequiredRuleValidator.prototype;\r\n _proto2._validate = function(value, rule) {\r\n if (!(0, _type.isDefined)(value)) {\r\n return false\r\n }\r\n if (false === value) {\r\n return false\r\n }\r\n value = String(value);\r\n if (rule.trim || !(0, _type.isDefined)(rule.trim)) {\r\n value = value.trim()\r\n }\r\n return \"\" !== value\r\n };\r\n return RequiredRuleValidator\r\n}(BaseRuleValidator);\r\nvar NumericRuleValidator = function(_BaseRuleValidator2) {\r\n _inheritsLoose(NumericRuleValidator, _BaseRuleValidator2);\r\n\r\n function NumericRuleValidator() {\r\n var _this3;\r\n _this3 = _BaseRuleValidator2.call(this) || this;\r\n _this3.NAME = \"numeric\";\r\n return _this3\r\n }\r\n var _proto3 = NumericRuleValidator.prototype;\r\n _proto3._validate = function(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n if (rule.useCultureSettings && (0, _type.isString)(value)) {\r\n return !isNaN(_number.default.parse(value))\r\n } else {\r\n return (0, _type.isNumeric)(value)\r\n }\r\n };\r\n return NumericRuleValidator\r\n}(BaseRuleValidator);\r\nvar RangeRuleValidator = function(_BaseRuleValidator3) {\r\n _inheritsLoose(RangeRuleValidator, _BaseRuleValidator3);\r\n\r\n function RangeRuleValidator() {\r\n var _this4;\r\n _this4 = _BaseRuleValidator3.call(this) || this;\r\n _this4.NAME = \"range\";\r\n return _this4\r\n }\r\n var _proto4 = RangeRuleValidator.prototype;\r\n _proto4._validate = function(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validNumber = rulesValidators.numeric.validate(value, rule);\r\n var validValue = (0, _type.isDefined)(value) && \"\" !== value;\r\n var number = validNumber ? parseFloat(value) : validValue && value.valueOf();\r\n var min = rule.min;\r\n var max = rule.max;\r\n if (!(validNumber || (0, _type.isDate)(value)) && !validValue) {\r\n return false\r\n }\r\n if ((0, _type.isDefined)(min)) {\r\n if ((0, _type.isDefined)(max)) {\r\n return number >= min && number <= max\r\n }\r\n return number >= min\r\n } else {\r\n if ((0, _type.isDefined)(max)) {\r\n return number <= max\r\n } else {\r\n throw _errors.default.Error(\"E0101\")\r\n }\r\n }\r\n };\r\n return RangeRuleValidator\r\n}(BaseRuleValidator);\r\nvar StringLengthRuleValidator = function(_BaseRuleValidator4) {\r\n _inheritsLoose(StringLengthRuleValidator, _BaseRuleValidator4);\r\n\r\n function StringLengthRuleValidator() {\r\n var _this5;\r\n _this5 = _BaseRuleValidator4.call(this) || this;\r\n _this5.NAME = \"stringLength\";\r\n return _this5\r\n }\r\n var _proto5 = StringLengthRuleValidator.prototype;\r\n _proto5._validate = function(value, rule) {\r\n var _value;\r\n value = String(null !== (_value = value) && void 0 !== _value ? _value : \"\");\r\n if (rule.trim || !(0, _type.isDefined)(rule.trim)) {\r\n value = value.trim()\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.range.validate(value.length, (0, _extend.extend)({}, rule))\r\n };\r\n return StringLengthRuleValidator\r\n}(BaseRuleValidator);\r\nvar CustomRuleValidator = function(_BaseRuleValidator5) {\r\n _inheritsLoose(CustomRuleValidator, _BaseRuleValidator5);\r\n\r\n function CustomRuleValidator() {\r\n var _this6;\r\n _this6 = _BaseRuleValidator5.call(this) || this;\r\n _this6.NAME = \"custom\";\r\n return _this6\r\n }\r\n var _proto6 = CustomRuleValidator.prototype;\r\n _proto6.validate = function(value, rule) {\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validator = rule.validator;\r\n var dataGetter = validator && (0, _type.isFunction)(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = (0, _type.isFunction)(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n (0, _extend.extend)(params, extraParams)\r\n }\r\n return rule.validationCallback(params)\r\n };\r\n return CustomRuleValidator\r\n}(BaseRuleValidator);\r\nvar AsyncRuleValidator = function(_CustomRuleValidator) {\r\n _inheritsLoose(AsyncRuleValidator, _CustomRuleValidator);\r\n\r\n function AsyncRuleValidator() {\r\n var _this7;\r\n _this7 = _CustomRuleValidator.call(this) || this;\r\n _this7.NAME = \"async\";\r\n return _this7\r\n }\r\n var _proto7 = AsyncRuleValidator.prototype;\r\n _proto7.validate = function(value, rule) {\r\n if (!(0, _type.isDefined)(rule.reevaluate)) {\r\n (0, _extend.extend)(rule, {\r\n reevaluate: true\r\n })\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validator = rule.validator;\r\n var dataGetter = validator && (0, _type.isFunction)(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = (0, _type.isFunction)(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n (0, _extend.extend)(params, extraParams)\r\n }\r\n var callbackResult = rule.validationCallback(params);\r\n if (!(0, _type.isPromise)(callbackResult)) {\r\n throw _errors.default.Error(\"E0103\")\r\n }\r\n return this._getWrappedPromise((0, _deferred.fromPromise)(callbackResult).promise())\r\n };\r\n _proto7._getWrappedPromise = function(promise) {\r\n var deferred = new _deferred.Deferred;\r\n promise.then(function(res) {\r\n deferred.resolve(res)\r\n }, function(err) {\r\n var res = {\r\n isValid: false\r\n };\r\n if ((0, _type.isDefined)(err)) {\r\n if ((0, _type.isString)(err)) {\r\n res.message = err\r\n } else {\r\n if ((0, _type.isObject)(err) && (0, _type.isDefined)(err.message) && (0, _type.isString)(err.message)) {\r\n res.message = err.message\r\n }\r\n }\r\n }\r\n deferred.resolve(res)\r\n });\r\n return deferred.promise()\r\n };\r\n return AsyncRuleValidator\r\n}(CustomRuleValidator);\r\nvar CompareRuleValidator = function(_BaseRuleValidator6) {\r\n _inheritsLoose(CompareRuleValidator, _BaseRuleValidator6);\r\n\r\n function CompareRuleValidator() {\r\n var _this8;\r\n _this8 = _BaseRuleValidator6.call(this) || this;\r\n _this8.NAME = \"compare\";\r\n return _this8\r\n }\r\n var _proto8 = CompareRuleValidator.prototype;\r\n _proto8._validate = function(value, rule) {\r\n if (!rule.comparisonTarget) {\r\n throw _errors.default.Error(\"E0102\")\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }(0, _extend.extend)(rule, {\r\n reevaluate: true\r\n });\r\n var otherValue = rule.comparisonTarget();\r\n var type = rule.comparisonType || \"==\";\r\n switch (type) {\r\n case \"==\":\r\n return value == otherValue;\r\n case \"!=\":\r\n return value != otherValue;\r\n case \"===\":\r\n return value === otherValue;\r\n case \"!==\":\r\n return value !== otherValue;\r\n case \">\":\r\n return value > otherValue;\r\n case \">=\":\r\n return value >= otherValue;\r\n case \"<\":\r\n return value < otherValue;\r\n case \"<=\":\r\n return value <= otherValue\r\n }\r\n };\r\n return CompareRuleValidator\r\n}(BaseRuleValidator);\r\nvar PatternRuleValidator = function(_BaseRuleValidator7) {\r\n _inheritsLoose(PatternRuleValidator, _BaseRuleValidator7);\r\n\r\n function PatternRuleValidator() {\r\n var _this9;\r\n _this9 = _BaseRuleValidator7.call(this) || this;\r\n _this9.NAME = \"pattern\";\r\n return _this9\r\n }\r\n var _proto9 = PatternRuleValidator.prototype;\r\n _proto9._validate = function(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var pattern = rule.pattern;\r\n if ((0, _type.isString)(pattern)) {\r\n pattern = new RegExp(pattern)\r\n }\r\n return pattern.test(value)\r\n };\r\n return PatternRuleValidator\r\n}(BaseRuleValidator);\r\nvar EmailRuleValidator = function(_BaseRuleValidator8) {\r\n _inheritsLoose(EmailRuleValidator, _BaseRuleValidator8);\r\n\r\n function EmailRuleValidator() {\r\n var _this10;\r\n _this10 = _BaseRuleValidator8.call(this) || this;\r\n _this10.NAME = \"email\";\r\n return _this10\r\n }\r\n var _proto10 = EmailRuleValidator.prototype;\r\n _proto10._validate = function(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.pattern.validate(value, (0, _extend.extend)({}, rule, {\r\n pattern: /^[\\d\\w._-]+@[\\d\\w._-]+\\.[\\w]+$/i\r\n }))\r\n };\r\n return EmailRuleValidator\r\n}(BaseRuleValidator);\r\nvar rulesValidators = {\r\n required: new RequiredRuleValidator,\r\n numeric: new NumericRuleValidator,\r\n range: new RangeRuleValidator,\r\n stringLength: new StringLengthRuleValidator,\r\n custom: new CustomRuleValidator,\r\n async: new AsyncRuleValidator,\r\n compare: new CompareRuleValidator,\r\n pattern: new PatternRuleValidator,\r\n email: new EmailRuleValidator\r\n};\r\nvar GroupConfig = _class.default.inherit({\r\n ctor: function(group) {\r\n this.group = group;\r\n this.validators = [];\r\n this._pendingValidators = [];\r\n this._onValidatorStatusChanged = this._onValidatorStatusChanged.bind(this);\r\n this._resetValidationInfo();\r\n this._eventsStrategy = new _events_strategy.EventsStrategy(this)\r\n },\r\n validate: function() {\r\n var _this11 = this;\r\n var result = {\r\n isValid: true,\r\n brokenRules: [],\r\n validators: [],\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n this._unsubscribeFromAllChangeEvents();\r\n this._pendingValidators = [];\r\n this._resetValidationInfo();\r\n (0, _iterator.each)(this.validators, function(_, validator) {\r\n var validatorResult = validator.validate();\r\n result.isValid = result.isValid && validatorResult.isValid;\r\n if (validatorResult.brokenRules) {\r\n result.brokenRules = result.brokenRules.concat(validatorResult.brokenRules)\r\n }\r\n result.validators.push(validator);\r\n if (validatorResult.status === STATUS.pending) {\r\n _this11._addPendingValidator(validator)\r\n }\r\n _this11._subscribeToChangeEvents(validator)\r\n });\r\n if (this._pendingValidators.length) {\r\n result.status = STATUS.pending\r\n } else {\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n this._unsubscribeFromAllChangeEvents();\r\n this._raiseValidatedEvent(result)\r\n }\r\n this._updateValidationInfo(result);\r\n return (0, _extend.extend)({}, this._validationInfo.result)\r\n },\r\n _subscribeToChangeEvents: function(validator) {\r\n validator.on(\"validating\", this._onValidatorStatusChanged);\r\n validator.on(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromChangeEvents: function(validator) {\r\n validator.off(\"validating\", this._onValidatorStatusChanged);\r\n validator.off(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromAllChangeEvents: function() {\r\n var _this12 = this;\r\n (0, _iterator.each)(this.validators, function(_, validator) {\r\n _this12._unsubscribeFromChangeEvents(validator)\r\n })\r\n },\r\n _updateValidationInfo: function(result) {\r\n this._validationInfo.result = result;\r\n if (result.status !== STATUS.pending) {\r\n return\r\n }\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new _deferred.Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n },\r\n _addPendingValidator: function(validator) {\r\n var foundValidator = (0, _common.grep)(this._pendingValidators, function(val) {\r\n return val === validator\r\n })[0];\r\n if (!foundValidator) {\r\n this._pendingValidators.push(validator)\r\n }\r\n },\r\n _removePendingValidator: function(validator) {\r\n var index = (0, _array.inArray)(validator, this._pendingValidators);\r\n if (index >= 0) {\r\n this._pendingValidators.splice(index, 1)\r\n }\r\n },\r\n _orderBrokenRules: function(brokenRules) {\r\n var orderedRules = [];\r\n (0, _iterator.each)(this.validators, function(_, validator) {\r\n var foundRules = (0, _common.grep)(brokenRules, function(rule) {\r\n return rule.validator === validator\r\n });\r\n if (foundRules.length) {\r\n orderedRules = orderedRules.concat(foundRules)\r\n }\r\n });\r\n return orderedRules\r\n },\r\n _updateBrokenRules: function(result) {\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n var brokenRules = this._validationInfo.result.brokenRules;\r\n var rules = (0, _common.grep)(brokenRules, function(rule) {\r\n return rule.validator !== result.validator\r\n });\r\n if (result.brokenRules) {\r\n brokenRules = rules.concat(result.brokenRules)\r\n }\r\n this._validationInfo.result.brokenRules = this._orderBrokenRules(brokenRules)\r\n },\r\n _onValidatorStatusChanged: function(result) {\r\n if (result.status === STATUS.pending) {\r\n this._addPendingValidator(result.validator);\r\n return\r\n }\r\n this._resolveIfComplete(result)\r\n },\r\n _resolveIfComplete: function(result) {\r\n this._removePendingValidator(result.validator);\r\n this._updateBrokenRules(result);\r\n if (!this._pendingValidators.length) {\r\n this._unsubscribeFromAllChangeEvents();\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n this._validationInfo.result.status = 0 === this._validationInfo.result.brokenRules.length ? STATUS.valid : STATUS.invalid;\r\n this._validationInfo.result.isValid = this._validationInfo.result.status === STATUS.valid;\r\n var res = (0, _extend.extend)({}, this._validationInfo.result, {\r\n complete: null\r\n });\r\n var deferred = this._validationInfo.deferred;\r\n this._resetValidationInfo();\r\n this._raiseValidatedEvent(res);\r\n deferred && setTimeout(function() {\r\n deferred.resolve(res)\r\n })\r\n }\r\n },\r\n _raiseValidatedEvent: function(result) {\r\n this._eventsStrategy.fireEvent(\"validated\", [result])\r\n },\r\n _resetValidationInfo: function() {\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null\r\n }\r\n },\r\n _synchronizeValidationInfo: function() {\r\n if (this._validationInfo.result) {\r\n this._validationInfo.result.validators = this.validators\r\n }\r\n },\r\n removeRegisteredValidator: function(validator) {\r\n var index = (0, _array.inArray)(validator, this.validators);\r\n if (index > -1) {\r\n this.validators.splice(index, 1);\r\n this._synchronizeValidationInfo();\r\n this._resolveIfComplete({\r\n validator: validator\r\n })\r\n }\r\n },\r\n registerValidator: function(validator) {\r\n if ((0, _array.inArray)(validator, this.validators) < 0) {\r\n this.validators.push(validator);\r\n this._synchronizeValidationInfo()\r\n }\r\n },\r\n reset: function() {\r\n (0, _iterator.each)(this.validators, function(_, validator) {\r\n validator.reset()\r\n });\r\n this._pendingValidators = [];\r\n this._resetValidationInfo()\r\n },\r\n on: function(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off: function(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nvar ValidationEngine = {\r\n groups: [],\r\n getGroupConfig: function(group) {\r\n var result = (0, _common.grep)(this.groups, function(config) {\r\n return config.group === group\r\n });\r\n if (result.length) {\r\n return result[0]\r\n }\r\n },\r\n findGroup: function($element, model) {\r\n var $dxGroup = $element.parents(\".dx-validationgroup\").first();\r\n if ($dxGroup.length) {\r\n return $dxGroup.dxValidationGroup(\"instance\")\r\n }\r\n return model\r\n },\r\n initGroups: function() {\r\n this.groups = [];\r\n this.addGroup()\r\n },\r\n addGroup: function(group) {\r\n var config = this.getGroupConfig(group);\r\n if (!config) {\r\n config = new GroupConfig(group);\r\n this.groups.push(config)\r\n }\r\n return config\r\n },\r\n removeGroup: function(group) {\r\n var config = this.getGroupConfig(group);\r\n var index = (0, _array.inArray)(config, this.groups);\r\n if (index > -1) {\r\n this.groups.splice(index, 1)\r\n }\r\n return config\r\n },\r\n _setDefaultMessage: function(info) {\r\n var rule = info.rule,\r\n validator = info.validator,\r\n name = info.name;\r\n if (!(0, _type.isDefined)(rule.message)) {\r\n if (validator.defaultFormattedMessage && (0, _type.isDefined)(name)) {\r\n rule.message = validator.defaultFormattedMessage(name)\r\n } else {\r\n rule.message = validator.defaultMessage()\r\n }\r\n }\r\n },\r\n _addBrokenRule: function(info) {\r\n var result = info.result,\r\n rule = info.rule;\r\n if (!result.brokenRule) {\r\n result.brokenRule = rule\r\n }\r\n if (!result.brokenRules) {\r\n result.brokenRules = []\r\n }\r\n result.brokenRules.push(rule)\r\n },\r\n validate: function(value, rules, name) {\r\n var _this13 = this;\r\n var result = {\r\n name: name,\r\n value: value,\r\n brokenRule: null,\r\n brokenRules: null,\r\n isValid: true,\r\n validationRules: rules,\r\n pendingRules: null,\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n var asyncRuleItems = [];\r\n (0, _iterator.each)(rules || [], function(_, rule) {\r\n var ruleValidator = rulesValidators[rule.type];\r\n var ruleValidationResult;\r\n if (ruleValidator) {\r\n if ((0, _type.isDefined)(rule.isValid) && rule.value === value && !rule.reevaluate) {\r\n if (!rule.isValid) {\r\n result.isValid = false;\r\n _this13._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n });\r\n return false\r\n }\r\n return true\r\n }\r\n rule.value = value;\r\n if (\"async\" === rule.type) {\r\n asyncRuleItems.push({\r\n rule: rule,\r\n ruleValidator: ruleValidator\r\n });\r\n return true\r\n }\r\n ruleValidationResult = ruleValidator.validate(value, rule);\r\n rule.isValid = ruleValidationResult;\r\n if (!ruleValidationResult) {\r\n result.isValid = false;\r\n _this13._setDefaultMessage({\r\n rule: rule,\r\n validator: ruleValidator,\r\n name: name\r\n });\r\n _this13._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n if (!rule.isValid) {\r\n return false\r\n }\r\n } else {\r\n throw _errors.default.Error(\"E0100\")\r\n }\r\n });\r\n if (result.isValid && !result.brokenRules && asyncRuleItems.length) {\r\n result = this._validateAsyncRules({\r\n value: value,\r\n items: asyncRuleItems,\r\n result: result,\r\n name: name\r\n })\r\n }\r\n result.status = result.pendingRules ? STATUS.pending : result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n _validateAsyncRules: function(_ref) {\r\n var _this14 = this;\r\n var result = _ref.result,\r\n value = _ref.value,\r\n items = _ref.items,\r\n name = _ref.name;\r\n var asyncResults = [];\r\n (0, _iterator.each)(items, function(_, item) {\r\n var validateResult = item.ruleValidator.validate(value, item.rule);\r\n if (!(0, _type.isPromise)(validateResult)) {\r\n _this14._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: _this14._getPatchedRuleResult(validateResult),\r\n validator: item.ruleValidator,\r\n name: name\r\n })\r\n } else {\r\n if (!result.pendingRules) {\r\n result.pendingRules = []\r\n }\r\n result.pendingRules.push(item.rule);\r\n var asyncResult = validateResult.then(function(res) {\r\n var ruleResult = _this14._getPatchedRuleResult(res);\r\n _this14._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: ruleResult,\r\n validator: item.ruleValidator,\r\n name: name\r\n });\r\n return ruleResult\r\n });\r\n asyncResults.push(asyncResult)\r\n }\r\n });\r\n if (asyncResults.length) {\r\n result.complete = _promise.default.all(asyncResults).then(function(values) {\r\n return _this14._getAsyncRulesResult({\r\n result: result,\r\n values: values\r\n })\r\n })\r\n }\r\n return result\r\n },\r\n _updateRuleConfig: function(_ref2) {\r\n var rule = _ref2.rule,\r\n ruleResult = _ref2.ruleResult,\r\n validator = _ref2.validator,\r\n name = _ref2.name;\r\n rule.isValid = ruleResult.isValid;\r\n if (!ruleResult.isValid) {\r\n if ((0, _type.isDefined)(ruleResult.message) && (0, _type.isString)(ruleResult.message) && ruleResult.message.length) {\r\n rule.message = ruleResult.message\r\n } else {\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n })\r\n }\r\n }\r\n },\r\n _getPatchedRuleResult: function(ruleResult) {\r\n var result;\r\n var isValid = true;\r\n if ((0, _type.isObject)(ruleResult)) {\r\n result = (0, _extend.extend)({}, ruleResult);\r\n if (!(0, _type.isDefined)(result.isValid)) {\r\n result.isValid = isValid\r\n }\r\n } else {\r\n result = {\r\n isValid: (0, _type.isBoolean)(ruleResult) ? ruleResult : isValid\r\n }\r\n }\r\n return result\r\n },\r\n _getAsyncRulesResult: function(_ref3) {\r\n var _this15 = this;\r\n var values = _ref3.values,\r\n result = _ref3.result;\r\n (0, _iterator.each)(values, function(index, val) {\r\n if (false === val.isValid) {\r\n result.isValid = val.isValid;\r\n var rule = result.pendingRules[index];\r\n _this15._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n });\r\n result.pendingRules = null;\r\n result.complete = null;\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n registerValidatorInGroup: function(group, validator) {\r\n var groupConfig = ValidationEngine.addGroup(group);\r\n groupConfig.registerValidator.call(groupConfig, validator)\r\n },\r\n _shouldRemoveGroup: function(group, validatorsInGroup) {\r\n var isDefaultGroup = void 0 === group;\r\n var isValidationGroupInstance = group && \"dxValidationGroup\" === group.NAME;\r\n return !isDefaultGroup && !isValidationGroupInstance && !validatorsInGroup.length\r\n },\r\n removeRegisteredValidator: function(group, validator) {\r\n var config = ValidationEngine.getGroupConfig(group);\r\n if (config) {\r\n config.removeRegisteredValidator.call(config, validator);\r\n var validatorsInGroup = config.validators;\r\n if (this._shouldRemoveGroup(group, validatorsInGroup)) {\r\n this.removeGroup(group)\r\n }\r\n }\r\n },\r\n initValidationOptions: function(options) {\r\n var _this16 = this;\r\n var initedOptions = {};\r\n if (options) {\r\n var syncOptions = [\"isValid\", \"validationStatus\", \"validationError\", \"validationErrors\"];\r\n syncOptions.forEach(function(prop) {\r\n if (prop in options) {\r\n (0, _extend.extend)(initedOptions, _this16.synchronizeValidationOptions({\r\n name: prop,\r\n value: options[prop]\r\n }, options))\r\n }\r\n })\r\n }\r\n return initedOptions\r\n },\r\n synchronizeValidationOptions: function(_ref4, options) {\r\n var name = _ref4.name,\r\n value = _ref4.value;\r\n switch (name) {\r\n case \"validationStatus\":\r\n var isValid = value === STATUS.valid || value === STATUS.pending;\r\n return options.isValid !== isValid ? {\r\n isValid: isValid\r\n } : {};\r\n case \"isValid\":\r\n var validationStatus = options.validationStatus;\r\n var newStatus = validationStatus;\r\n if (value && validationStatus === STATUS.invalid) {\r\n newStatus = STATUS.valid\r\n } else {\r\n if (!value && validationStatus !== STATUS.invalid) {\r\n newStatus = STATUS.invalid\r\n }\r\n }\r\n return newStatus !== validationStatus ? {\r\n validationStatus: newStatus\r\n } : {};\r\n case \"validationErrors\":\r\n var validationError = !value || !value.length ? null : value[0];\r\n return options.validationError !== validationError ? {\r\n validationError: validationError\r\n } : {};\r\n case \"validationError\":\r\n var validationErrors = options.validationErrors;\r\n if (!value && validationErrors) {\r\n return {\r\n validationErrors: null\r\n }\r\n } else {\r\n if (value && !validationErrors) {\r\n return {\r\n validationErrors: [value]\r\n }\r\n } else {\r\n if (value && validationErrors && value !== validationErrors[0]) {\r\n validationErrors[0] = value;\r\n return {\r\n validationErrors: validationErrors.slice()\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return {}\r\n },\r\n validateGroup: function(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw _errors.default.Error(\"E0110\")\r\n }\r\n return groupConfig.validate()\r\n },\r\n resetGroup: function(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw _errors.default.Error(\"E0110\")\r\n }\r\n return groupConfig.reset()\r\n }\r\n};\r\nValidationEngine.initGroups();\r\nvar _default = ValidationEngine;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/tree_view.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _uiTree_view = _interopRequireDefault(require(\"./tree_view/ui.tree_view.search\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _uiTree_view.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/validator.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 _element_data = require(\"../core/element_data\");\r\nvar _callbacks = _interopRequireDefault(require(\"../core/utils/callbacks\"));\r\nvar _ui = _interopRequireDefault(require(\"./widget/ui.errors\"));\r\nvar _dom_component = _interopRequireDefault(require(\"../core/dom_component\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _validation_engine = _interopRequireDefault(require(\"./validation_engine\"));\r\nvar _default_adapter = _interopRequireDefault(require(\"./validation/default_adapter\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _guid = _interopRequireDefault(require(\"../core/guid\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar VALIDATION_STATUS_PENDING = \"pending\";\r\nvar Validator = _dom_component.default.inherit({\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(_validation_engine.default.initValidationOptions(options))\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n validationRules: []\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initGroupRegistration();\r\n this.focused = (0, _callbacks.default)();\r\n this._initAdapter();\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null,\r\n skipValidation: false\r\n }\r\n },\r\n _initGroupRegistration: function() {\r\n var group = this._findGroup();\r\n if (!this._groupWasInit) {\r\n this.on(\"disposing\", function(args) {\r\n _validation_engine.default.removeRegisteredValidator(args.component._validationGroup, args.component)\r\n })\r\n }\r\n if (!this._groupWasInit || this._validationGroup !== group) {\r\n _validation_engine.default.removeRegisteredValidator(this._validationGroup, this);\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n _validation_engine.default.registerValidatorInGroup(group, this)\r\n }\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _initAdapter: function() {\r\n var _this = this;\r\n var element = this.$element()[0];\r\n var dxStandardEditor = (0, _element_data.data)(element, \"dx-validation-target\");\r\n var adapter = this.option(\"adapter\");\r\n if (!adapter) {\r\n if (dxStandardEditor) {\r\n adapter = new _default_adapter.default(dxStandardEditor, this);\r\n adapter.validationRequestsCallbacks.push(function(args) {\r\n if (_this._validationInfo.skipValidation) {\r\n return\r\n }\r\n _this.validate(args)\r\n });\r\n this.option(\"adapter\", adapter);\r\n return\r\n }\r\n throw _ui.default.Error(\"E0120\")\r\n }\r\n var callbacks = adapter.validationRequestsCallbacks;\r\n if (callbacks) {\r\n callbacks.push(function(args) {\r\n _this.validate(args)\r\n })\r\n }\r\n },\r\n _toggleRTLDirection: function(isRtl) {\r\n var _this$option$editor$o, _this$option, _this$option$editor;\r\n var rtlEnabled = null !== (_this$option$editor$o = null === (_this$option = this.option(\"adapter\")) || void 0 === _this$option ? void 0 : null === (_this$option$editor = _this$option.editor) || void 0 === _this$option$editor ? void 0 : _this$option$editor.option(\"rtlEnabled\")) && void 0 !== _this$option$editor$o ? _this$option$editor$o : isRtl;\r\n this.callBase(rtlEnabled)\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(VALIDATOR_CLASS);\r\n this.callBase()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._initGroupRegistration()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n return;\r\n case \"validationRules\":\r\n this._resetValidationRules();\r\n void 0 !== this.option(\"isValid\") && this.validate();\r\n return;\r\n case \"adapter\":\r\n this._initAdapter();\r\n break;\r\n case \"isValid\":\r\n case \"validationStatus\":\r\n this.option(_validation_engine.default.synchronizeValidationOptions(args, this.option()));\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getValidationRules: function() {\r\n var _this2 = this;\r\n if (!this._validationRules) {\r\n this._validationRules = (0, _iterator.map)(this.option(\"validationRules\"), function(rule, index) {\r\n return (0, _extend.extend)({}, rule, {\r\n validator: _this2,\r\n index: index\r\n })\r\n })\r\n }\r\n return this._validationRules\r\n },\r\n _findGroup: function() {\r\n var $element = this.$element();\r\n return this.option(\"validationGroup\") || _validation_engine.default.findGroup($element, this._modelByElement($element))\r\n },\r\n _resetValidationRules: function() {\r\n delete this._validationRules\r\n },\r\n validate: function(args) {\r\n var _this3 = this;\r\n var adapter = this.option(\"adapter\");\r\n var name = this.option(\"name\");\r\n var bypass = adapter.bypass && adapter.bypass();\r\n var value = args && void 0 !== args.value ? args.value : adapter.getValue();\r\n var currentError = adapter.getCurrentValidationError && adapter.getCurrentValidationError();\r\n var rules = this._getValidationRules();\r\n var currentResult = this._validationInfo && this._validationInfo.result;\r\n if (currentResult && currentResult.status === VALIDATION_STATUS_PENDING && currentResult.value === value) {\r\n return (0, _extend.extend)({}, currentResult)\r\n }\r\n var result;\r\n if (bypass) {\r\n result = {\r\n isValid: true,\r\n status: VALIDATION_STATUS_VALID\r\n }\r\n } else {\r\n if (currentError && currentError.editorSpecific) {\r\n currentError.validator = this;\r\n result = {\r\n isValid: false,\r\n status: VALIDATION_STATUS_INVALID,\r\n brokenRule: currentError,\r\n brokenRules: [currentError]\r\n }\r\n } else {\r\n result = _validation_engine.default.validate(value, rules, name)\r\n }\r\n }\r\n result.id = (new _guid.default).toString();\r\n this._applyValidationResult(result, adapter);\r\n result.complete && result.complete.then(function(res) {\r\n if (res.id === _this3._validationInfo.result.id) {\r\n _this3._applyValidationResult(res, adapter)\r\n }\r\n });\r\n return (0, _extend.extend)({}, this._validationInfo.result)\r\n },\r\n reset: function() {\r\n var adapter = this.option(\"adapter\");\r\n var result = {\r\n id: null,\r\n isValid: true,\r\n brokenRule: null,\r\n brokenRules: null,\r\n pendingRules: null,\r\n status: VALIDATION_STATUS_VALID,\r\n complete: null\r\n };\r\n this._validationInfo.skipValidation = true;\r\n adapter.reset();\r\n this._validationInfo.skipValidation = false;\r\n this._resetValidationRules();\r\n this._applyValidationResult(result, adapter)\r\n },\r\n _updateValidationResult: function(result) {\r\n if (!this._validationInfo.result || this._validationInfo.result.id !== result.id) {\r\n var complete = this._validationInfo.deferred && this._validationInfo.result.complete;\r\n this._validationInfo.result = (0, _extend.extend)({}, result, {\r\n complete: complete\r\n })\r\n } else {\r\n for (var prop in result) {\r\n if (\"id\" !== prop && \"complete\" !== prop) {\r\n this._validationInfo.result[prop] = result[prop]\r\n }\r\n }\r\n }\r\n },\r\n _applyValidationResult: function(result, adapter) {\r\n var validatedAction = this._createActionByOption(\"onValidated\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n result.validator = this;\r\n this._updateValidationResult(result);\r\n adapter.applyValidationResults && adapter.applyValidationResults(this._validationInfo.result);\r\n this.option({\r\n validationStatus: this._validationInfo.result.status\r\n });\r\n if (this._validationInfo.result.status === VALIDATION_STATUS_PENDING) {\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new _deferred.Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n this._eventsStrategy.fireEvent(\"validating\", [this._validationInfo.result]);\r\n return\r\n }\r\n if (this._validationInfo.result.status !== VALIDATION_STATUS_PENDING) {\r\n validatedAction(result);\r\n if (this._validationInfo.deferred) {\r\n this._validationInfo.deferred.resolve(result);\r\n this._validationInfo.deferred = null\r\n }\r\n }\r\n },\r\n focus: function() {\r\n var adapter = this.option(\"adapter\");\r\n adapter && adapter.focus && adapter.focus()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxValidator\", Validator);\r\nvar _default = Validator;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/validation_summary.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 _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _validation_engine = _interopRequireDefault(require(\"./validation_engine\"));\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"./collection/ui.collection_widget.edit\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar VALIDATION_SUMMARY_CLASS = \"dx-validationsummary\";\r\nvar ITEM_CLASS = VALIDATION_SUMMARY_CLASS + \"-item\";\r\nvar ITEM_DATA_KEY = VALIDATION_SUMMARY_CLASS + \"-item-data\";\r\nvar ValidationSummary = _uiCollection_widget.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n focusStateEnabled: false,\r\n noDataText: null\r\n })\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initGroupRegistration()\r\n },\r\n _initGroupRegistration: function() {\r\n var $element = this.$element();\r\n var group = this.option(\"validationGroup\") || _validation_engine.default.findGroup($element, this._modelByElement($element));\r\n var groupConfig = _validation_engine.default.addGroup(group);\r\n this._unsubscribeGroup();\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n this.groupSubscription = this._groupValidationHandler.bind(this);\r\n groupConfig.on(\"validated\", this.groupSubscription)\r\n },\r\n _unsubscribeGroup: function() {\r\n var groupConfig = _validation_engine.default.getGroupConfig(this._validationGroup);\r\n groupConfig && groupConfig.off(\"validated\", this.groupSubscription)\r\n },\r\n _getOrderedItems: function(validators, items) {\r\n var orderedItems = [];\r\n (0, _iterator.each)(validators, function(_, validator) {\r\n var foundItems = (0, _common.grep)(items, function(item) {\r\n if (item.validator === validator) {\r\n return true\r\n }\r\n });\r\n if (foundItems.length) {\r\n orderedItems = orderedItems.concat(foundItems)\r\n }\r\n });\r\n return orderedItems\r\n },\r\n _groupValidationHandler: function(params) {\r\n var _this = this;\r\n var items = this._getOrderedItems(params.validators, (0, _iterator.map)(params.brokenRules, function(rule) {\r\n return {\r\n text: rule.message,\r\n validator: rule.validator,\r\n index: rule.index\r\n }\r\n }));\r\n this.validators = params.validators;\r\n (0, _iterator.each)(this.validators, function(_, validator) {\r\n if (validator._validationSummary !== _this) {\r\n var handler = _this._itemValidationHandler.bind(_this);\r\n var disposingHandler = function() {\r\n validator.off(\"validated\", handler);\r\n validator._validationSummary = null;\r\n handler = null\r\n };\r\n validator.on(\"validated\", handler);\r\n validator.on(\"disposing\", disposingHandler);\r\n validator._validationSummary = _this\r\n }\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _itemValidationHandler: function(_ref) {\r\n var isValid = _ref.isValid,\r\n validator = _ref.validator,\r\n brokenRules = _ref.brokenRules;\r\n var items = this.option(\"items\");\r\n var itemsChanged = false;\r\n var itemIndex = 0;\r\n var _loop = function() {\r\n var item = items[itemIndex];\r\n if (item.validator === validator) {\r\n var foundRule = (0, _common.grep)(brokenRules || [], function(rule) {\r\n return rule.index === item.index\r\n })[0];\r\n if (isValid || !foundRule) {\r\n items.splice(itemIndex, 1);\r\n itemsChanged = true;\r\n return \"continue\"\r\n }\r\n if (foundRule.message !== item.text) {\r\n item.text = foundRule.message;\r\n itemsChanged = true\r\n }\r\n }\r\n itemIndex++\r\n };\r\n while (itemIndex < items.length) {\r\n var _ret = _loop();\r\n if (\"continue\" === _ret) {\r\n continue\r\n }\r\n }(0, _iterator.each)(brokenRules, function(_, rule) {\r\n var foundItem = (0, _common.grep)(items, function(item) {\r\n return item.validator === validator && item.index === rule.index\r\n })[0];\r\n if (!foundItem) {\r\n items.push({\r\n text: rule.message,\r\n validator: validator,\r\n index: rule.index\r\n });\r\n itemsChanged = true\r\n }\r\n });\r\n if (itemsChanged) {\r\n items = this._getOrderedItems(this.validators, items);\r\n this.option(\"items\", items)\r\n }\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(VALIDATION_SUMMARY_CLASS);\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _postprocessRenderItem: function(params) {\r\n _events_engine.default.on(params.itemElement, \"click\", function() {\r\n params.itemData.validator && params.itemData.validator.focus && params.itemData.validator.focus()\r\n })\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n this._unsubscribeGroup()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxValidationSummary\", ValidationSummary);\r\nvar _default = ValidationSummary;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/tree_list/ui.tree_list.core.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 _extend = require(\"../../core/utils/extend\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.modules\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = (0, _extend.extend)({}, _uiGrid_core.default, {\r\n modules: [],\r\n foreachNodes: function(nodes, callBack, ignoreHasChildren) {\r\n for (var i = 0; i < nodes.length; i++) {\r\n if (false !== callBack(nodes[i]) && (ignoreHasChildren || nodes[i].hasChildren) && nodes[i].children.length) {\r\n this.foreachNodes(nodes[i].children, callBack, ignoreHasChildren)\r\n }\r\n }\r\n }\r\n});\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/validation_group.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 _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _dom_component = _interopRequireDefault(require(\"../core/dom_component\"));\r\nvar _validation_summary = _interopRequireDefault(require(\"./validation_summary\"));\r\nvar _validation_engine = _interopRequireDefault(require(\"./validation_engine\"));\r\nvar _validator = _interopRequireDefault(require(\"./validator\"));\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 VALIDATION_ENGINE_CLASS = \"dx-validationgroup\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_SUMMARY_CLASS = \"dx-validationsummary\";\r\nvar ValidationGroup = function(_DOMComponent) {\r\n _inheritsLoose(ValidationGroup, _DOMComponent);\r\n\r\n function ValidationGroup() {\r\n return _DOMComponent.apply(this, arguments) || this\r\n }\r\n var _proto = ValidationGroup.prototype;\r\n _proto._getDefaultOptions = function() {\r\n return _DOMComponent.prototype._getDefaultOptions.call(this)\r\n };\r\n _proto._init = function() {\r\n _DOMComponent.prototype._init.call(this);\r\n _validation_engine.default.addGroup(this)\r\n };\r\n _proto._initMarkup = function() {\r\n var $element = this.$element();\r\n $element.addClass(VALIDATION_ENGINE_CLASS);\r\n $element.find(\".\".concat(VALIDATOR_CLASS)).each(function(_, validatorContainer) {\r\n _validator.default.getInstance((0, _renderer.default)(validatorContainer))._initGroupRegistration()\r\n });\r\n $element.find(\".\".concat(VALIDATION_SUMMARY_CLASS)).each(function(_, summaryContainer) {\r\n _validation_summary.default.getInstance((0, _renderer.default)(summaryContainer))._initGroupRegistration()\r\n });\r\n _DOMComponent.prototype._initMarkup.call(this)\r\n };\r\n _proto.validate = function() {\r\n return _validation_engine.default.validateGroup(this)\r\n };\r\n _proto.reset = function() {\r\n return _validation_engine.default.resetGroup(this)\r\n };\r\n _proto._dispose = function() {\r\n _validation_engine.default.removeGroup(this);\r\n this.$element().removeClass(VALIDATION_ENGINE_CLASS);\r\n _DOMComponent.prototype._dispose.call(this)\r\n };\r\n _proto._useTemplates = function() {\r\n return false\r\n };\r\n return ValidationGroup\r\n}(_dom_component.default);\r\n(0, _component_registrator.default)(\"dxValidationGroup\", ValidationGroup);\r\nvar _default = ValidationGroup;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/tree_view/ui.tree_view.search.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.search_box_mixin\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiTree_view = _interopRequireDefault(require(\"./ui.tree_view.base\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CONTAINER_CLASS = \"\".concat(WIDGET_CLASS, \"-node-container\");\r\nvar TreeViewSearch = _uiTree_view.default.inherit(_ui.default).inherit({\r\n _addWidgetPrefix: function(className) {\r\n return \"\".concat(WIDGET_CLASS, \"-\").concat(className)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"searchValue\":\r\n if (this._showCheckboxes() && this._isRecursiveSelection()) {\r\n this._removeSelection()\r\n }\r\n this._initDataAdapter();\r\n this._updateSearch();\r\n this._repaintContainer();\r\n break;\r\n case \"searchExpr\":\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"searchMode\":\r\n this.option(\"expandNodesRecursive\") ? this._updateDataAdapter() : this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _updateDataAdapter: function() {\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", false);\r\n this._initDataAdapter();\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", true)\r\n },\r\n _getDataAdapterOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n searchValue: this.option(\"searchValue\"),\r\n searchMode: this.option(\"searchMode\") || \"contains\",\r\n searchExpr: this.option(\"searchExpr\")\r\n })\r\n },\r\n _updateSearch: function() {\r\n if (this._searchEditor) {\r\n var editorOptions = this._getSearchEditorOptions();\r\n this._searchEditor.option(editorOptions)\r\n }\r\n },\r\n _repaintContainer: function() {\r\n var $container = this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first();\r\n var rootNodes;\r\n if ($container.length) {\r\n $container.empty();\r\n rootNodes = this._dataAdapter.getRootNodes();\r\n this._renderEmptyMessage(rootNodes);\r\n this._renderItems($container, rootNodes);\r\n this._fireContentReadyAction()\r\n }\r\n },\r\n _itemContainer: function(isSearchMode) {\r\n if (this._scrollableContainer && isSearchMode) {\r\n return (0, _renderer.default)(this._scrollableContainer.content())\r\n }\r\n return this.callBase()\r\n },\r\n _addWidgetClass: function() {\r\n this.$element().addClass(this._widgetClass())\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._removeSearchBox()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxTreeView\", TreeViewSearch);\r\nvar _default = TreeViewSearch;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n"],"sourceRoot":""}