{"version":3,"sources":["webpack:///./node_modules/devextreme/ui/shared/filtering.js","webpack:///./node_modules/devextreme-vue/select-box.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.core.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.row_dragging.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.pager.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.summary.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.data_controller.js","webpack:///./node_modules/devextreme/ui/context_menu/ui.context_menu.js","webpack:///./node_modules/devextreme-vue/validator.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.rows.js","webpack:///./node_modules/devextreme/format_helper.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.grouping.core.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.context_menu.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.js","webpack:///./node_modules/devextreme/exporter/excel/excel.file.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.editor_factory.js","webpack:///./node_modules/devextreme/core/utils/svg.js","webpack:///./node_modules/devextreme/exporter/excel/excel.font_helper.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.modules.js","webpack:///./node_modules/devextreme/ui/data_grid.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.columns_view.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.sorting_mixin.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.focus.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.virtual_columns.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.keyboard_navigation.js","webpack:///./node_modules/devextreme/ui/text_box/utils.scroll.js","webpack:///./node_modules/devextreme/exporter.js","webpack:///./node_modules/devextreme/ui/tree_view/ui.tree_view.search.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.column_headers.js","webpack:///./node_modules/devextreme/ui/filter_builder/filter_builder.js","webpack:///./node_modules/devextreme-vue/tree-view.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.search.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.virtual_scrolling_core.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.data_source_adapter.js","webpack:///./src/shared/dtos/template-version.ts","webpack:///./src/shared/dtos/template.ts","webpack:///./src/shared/dtos/field.ts","webpack:///./src/shared/dtos/values.ts","webpack:///./src/store/modules/templates.module.ts","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.header_filter.js","webpack:///./node_modules/devextreme/exporter/svg_creator.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.data_source_adapter.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.focus.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.columns_controller.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.master_detail.js","webpack:///./node_modules/devextreme-vue/drop-down-box.js","webpack:///./node_modules/devextreme/exporter/excel/excel.tag_helper.js","webpack:///./node_modules/devextreme/ui/toolbar/ui.toolbar.strategy.action_sheet.js","webpack:///./node_modules/devextreme/exporter/excel_creator.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.context_menu.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.master_detail.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.column_chooser.js","webpack:///./node_modules/devextreme/ui/overlay/utils.js","webpack:///./src/views/plantilla-version/explorar/explorarVersion.html","webpack:///./src/views/plantilla-version/explorar/explorarVersion.ts","webpack:///./src/views/plantilla-version/explorar/explorarVersion.ts?2a82","webpack:///./src/views/plantilla-version/explorar/explorarVersion.vue","webpack:///./node_modules/devextreme/exporter/excel/excel.number_format_helper.js","webpack:///./node_modules/devextreme/ui/tree_view/ui.tree_view.base.js","webpack:///./node_modules/devextreme/ui/toolbar/ui.toolbar.menu.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.accessibility.js","webpack:///./node_modules/devextreme/ui/hierarchical_collection/ui.hierarchical_collection_widget.js","webpack:///./src/shared/permissions.ts","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.columns_resizing_reordering.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.grouping.expanded.js","webpack:///./node_modules/devextreme/ui/filter_builder/ui.filter_operations_dictionary.js","webpack:///./node_modules/devextreme-vue/button.js","webpack:///./node_modules/devextreme/ui/context_menu/ui.menu_base.edit.strategy.js","webpack:///./node_modules/devextreme/exporter/pdf_creator.js","webpack:///./node_modules/devextreme/ui/shared/accessibility.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.error_handling.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.state_storing_core.js","webpack:///./node_modules/devextreme/ui/toolbar/ui.toolbar.strategy.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.editing.js","webpack:///./node_modules/devextreme/ui/menu/ui.submenu.js","webpack:///./node_modules/devextreme-vue/validation-summary.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.grid_view.js","webpack:///./node_modules/devextreme/ui/drop_down_box.js","webpack:///./node_modules/devextreme/ui/filter_builder.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.export_mixin.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.state_storing.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.utils.js","webpack:///./node_modules/devextreme/ui/menu/ui.menu.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.row_dragging.js","webpack:///./node_modules/devextreme-vue/number-box.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.search.js","webpack:///./node_modules/devextreme/exporter/excel/excel.cell_alignment_helper.js","webpack:///./node_modules/devextreme/ui/toolbar/ui.toolbar.strategy.drop_down_menu.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.columns_controller.js","webpack:///./node_modules/devextreme/ui/text_area.js","webpack:///./node_modules/devextreme/ui/context_menu/ui.menu_base.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.header_filter_core.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.editing.js","webpack:///./node_modules/devextreme/exporter/excel/excel.fill_helper.js","webpack:///./node_modules/devextreme/ui/shared/ui.editor_factory_mixin.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.validating.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.virtual_columns_core.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.state_storing.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.column_headers.js","webpack:///./node_modules/devextreme/ui/hierarchical_collection/ui.data_converter.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.column_state_mixin.js","webpack:///./node_modules/devextreme/ui/hierarchical_collection/ui.data_adapter.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.grid_view.js","webpack:///./node_modules/devextreme/ui/toolbar.js","webpack:///./node_modules/devextreme/localization/language_codes.js","webpack:///./node_modules/devextreme/ui/menu.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.virtual_scrolling.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.sorting.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.header_panel.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.filter_row.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.keyboard_navigation.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.adaptivity.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.editor_factory.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.error_handling.js","webpack:///./node_modules/devextreme-vue/text-area.js","webpack:///./node_modules/devextreme/ui/filter_builder/utils.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.filter_panel.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.selection.js","webpack:///./node_modules/devextreme/exporter/excel/excel.color_helper.js","webpack:///./node_modules/devextreme/exporter/excel/excel.pattern_fill_helper.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.columns_resizing_reordering.js","webpack:///./node_modules/devextreme/color.js","webpack:///./node_modules/jszip/dist/jszip.min.js","webpack:///./node_modules/devextreme/exporter/file_saver.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.header_filter.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.grouping.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.data_controller.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.sorting.js","webpack:///./node_modules/devextreme/ui/context_menu.js","webpack:///./node_modules/devextreme-vue/data-grid.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.column_chooser.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.virtual_scrolling.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.filter_builder.js","webpack:///./node_modules/devextreme/exporter/image_creator.js","webpack:///./node_modules/devextreme/ui/tree_view.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.filter_sync.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.virtual_columns.js","webpack:///./node_modules/devextreme/exporter/excel_format_converter.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.filter_sync.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.grouping.collapsed.js","webpack:///./node_modules/devextreme/ui/pager.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.rows.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.header_panel.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.selection.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.filter_panel.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.export.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.base.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.filter_custom_operations.js","webpack:///./node_modules/devextreme/exporter/excel/excel.cell_format_helper.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.adaptivity.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.column_fixing.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.pager.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.validating.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.filter_row.js","webpack:///./node_modules/devextreme/ui/filter_builder/between.js","webpack:///./node_modules/devextreme-vue/check-box.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.utils.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.filter_builder.js","webpack:///./node_modules/devextreme/ui/data_grid/aggregate_calculator.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.column_fixing.js"],"names":["exports","default","_type","_array","_iterator","DEFAULT_DATE_INTERVAL","DEFAULT_DATETIME_INTERVAL","isDateType","dataType","getGroupInterval","column","index","result","dateIntervals","groupInterval","headerFilter","interval","inArray","slice","push","isDefined","Array","isArray","_default","getFilterSelector","target","selector","dataField","displayField","calculateDisplayValue","isZeroTime","date","getHours","getMinutes","getSeconds","getMilliseconds","getDateValues","dateValue","isDate","getFullYear","getMonth","getDate","map","split","value","Number","getFilterExpressionByRange","filterValue","endFilterValue","startFilterExpression","endFilterExpression","this","Date","getTime","setDate","getFilterExpressionForDate","selectedFilterOperation","dateStart","dateEnd","dateInterval","values","length","getFilterExpressionForNumber","startFilterValue","condition","defaultCalculateFilterExpression","isSearchByDisplayValue","lookup","filter","apply","arguments","module","Object","defineProperty","DxToolbarItem","DxShow","DxPosition","DxOptions","DxOffset","DxMy","DxItem","DxHide","DxDropDownOptions","DxCollision","DxButton","DxBoundaryOffset","DxAt","DxAnimation","DxSelectBox","select_box_1","index_1","index_2","createComponent","props","acceptCustomValue","Boolean","accessKey","String","activeStateEnabled","buttons","dataSource","deferRendering","disabled","displayExpr","Function","displayValue","dropDownButtonTemplate","dropDownOptions","elementAttr","fieldTemplate","focusStateEnabled","grouped","groupTemplate","height","hint","hoverStateEnabled","inputAttr","isValid","items","itemTemplate","maxLength","minSearchLength","name","noDataText","onChange","onClosed","onContentReady","onCopy","onCustomItemCreating","onCut","onDisposing","onEnterKey","onFocusIn","onFocusOut","onInitialized","onInput","onItemClick","onKeyDown","onKeyUp","onOpened","onOptionChanged","onPaste","onSelectionChanged","onValueChanged","opened","openOnFieldClick","placeholder","readOnly","rtlEnabled","searchEnabled","searchExpr","searchMode","searchTimeout","selectedItem","showClearButton","showDataBeforeSearch","showDropDownButton","showSelectionControls","spellcheck","stylingMode","tabIndex","text","validationError","validationErrors","validationMessageMode","validationStatus","valueChangeEvent","valueExpr","visible","width","wrapItemText","emits","model","prop","event","computed","instance","$_instance","beforeCreate","$_WidgetClass","$_expectedChildren","button","isCollectionItem","optionName","item","createConfigurationComponent","hide","show","$_optionName","x","y","location","options","$_isCollectionItem","animation","bindingOptions","closeOnOutsideClick","container","contentTemplate","dragEnabled","fullScreen","maxHeight","maxWidth","minHeight","minWidth","onHidden","onHiding","onResize","onResizeEnd","onResizeStart","onShowing","onShown","onTitleRendered","position","resizeEnabled","shading","shadingColor","showCloseButton","showTitle","title","titleTemplate","toolbarItems","toolbarItem","complete","delay","direction","duration","easing","from","staggerDelay","start","to","type","html","template","icon","onClick","useSubmitBehavior","validationGroup","at","boundary","boundaryOffset","collision","my","of","offset","toolbar","widget","_uiGrid_core","_interopRequireDefault","_uiGrid_core2","obj","__esModule","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","i","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","configurable","writable","modules","_renderer","_extend","_sortable","_browser","COMMAND_HANDLE_CLASS","CELL_FOCUS_DISABLED_CLASS","HANDLE_ICON_CLASS","ROWS_VIEW","SORTABLE_WITHOUT_HANDLE_CLASS","RowDraggingExtender","init","callBase","_updateHandleColumn","_allowReordering","rowDragging","option","allowReordering","allowDropInsideItem","group","columnsController","_columnsController","isHandleColumnVisible","showDragIcons","addCommandColumn","command","visibleIndex","alignment","cssClass","cellTemplate","_getHandleTemplate","columnOption","_renderContent","_this","$content","isFixedTableRendering","_isFixedTableRendering","sortableName","sortableFixedName","currentSortableName","anotherSortableName","togglePointerEventsStyle","toggle","_this$sortableFixedNa","$element","css","_createComponent","extend","component","dragTemplate","_getDraggableRowTemplate","handle","concat","dropFeedbackMode","onDragStart","e","_rowDragging$onDragSt","row","getVisibleRows","fromIndex","itemData","data","isDataRow","rowType","cancel","call","onDragEnter","onDragLeave","onDragEnd","_rowDragging$onDragEn","msie","hasFixedSortable","toggleClass","_resizeCore","_dataController","getRowIndexOffset","_sortableFixed","sortable","update","_getDraggableGridOptions","gridOptions","columns","getColumns","$rowElement","getRowElement","rowIndex","id","parentId","showBorders","showColumnHeaders","scrolling","useNative","showScrollbar","pager","loadingTimeout","columnFixing","columnAutoWidth","showColumnLines","visibleWidth","fixed","fixedPosition","onRowPrepared","rowsView","getView","rowElement","replaceWith","eq","clone","_this2","$rootElement","$dataGridContainer","NAME","find","children","addWidgetPrefix","_this3","addClass","setEmptyText","optionChanged","args","_invalidate","handled","defaultOptions","extenders","views","_pager","_window","PAGER_CLASS","MAX_PAGES_COUNT","getPageIndex","dataController","parseInt","pageIndex","PagerView","View","inherit","that","getController","_isVisible","changed","add","repaintChangesOnly","_getPager","pageSize","pageCount","totalCount","hasKnownLastPage","render","changeType","element","_renderCore","pagerOptions","keyboardController","maxPagesCount","showPageSizes","showPageSizeSelector","showInfo","displayMode","pagesNavigatorVisible","showNavigationButtons","pageSizes","getPageSizes","pageIndexChanged","setTimeout","pageSizeChanged","executeAction","useLegacyKeyboardNavigation","useKeyboard","infoText","allowedPageSizes","_pageSizes","Math","floor","isVisible","pagerVisible","mode","isLoaded","getHeight","getElementHeight","isPager","isPaging","isDataSource","isScrolling","skipProcessingPagingChange","fullName","hasWindow","resize","pagerView","FooterView","renderSummaryCell","_common","_data","_ui","_uiData_grid","_message","_uiData_grid2","_aggregate_calculator","_query","_store_helper","_utils","DATAGRID_TOTAL_FOOTER_CLASS","DATAGRID_SUMMARY_ITEM_CLASS","DATAGRID_TEXT_CONTENT_CLASS","DATAGRID_GROUP_FOOTER_CLASS","DATAGRID_GROUP_TEXT_CONTENT_CLASS","DATAGRID_NOWRAP_CLASS","DATAGRID_GROUP_FOOTER_ROW_TYPE","cell","$cell","summaryItems","$summaryItems","summaryItem","getSummaryText","summaryTexts","append","getSummaryCellOptions","totalItem","summaryCells","columnIndex","getGroupAggregates","summary","aggregates","recalculateWhileEditing","ColumnsView","_getRows","footerItems","_getCellOptions","_renderCellContent","change","columnIndices","empty","_updateContent","_renderTable","$newTable","$row","getTableElement","$newRow","_updateCells","_rowClick","_columnOptionChanged","optionNames","changeTypes","grouping","_handleDataChanged","totalColumnIndices","SummaryDataSourceAdapterExtender","forEachGroup","groups","groupCount","callback","path","pop","_totalAggregates","_summaryGetter","noop","summaryGetter","isFunction","_summary","totalAggregates","isLastLevelGroupItemsPagingLocal","sortByGroupsInfo","sortByGroups","sortLastLevelGroupItems","paths","groupedItems","multiLevelGroup","toArray","itemsPath","toString","SummaryDataSourceAdapterClientExtender","applyAddedData","insertedData","groupLevel","applyRemovedData","removedData","updatedData","updatedItems","get","set","indexOf","calculateAggregates","calculator","editingController","getInsertedData","getRemovedData","groupAggregates","calculate","sortGroupsBySummaryCore","query","sorts","each","sortBy","desc","thenBy","enumerate","done","sortedItems","sortGroupsBySummary","_customizeRemoteOperations","remoteOperations","isCustomLoading","storeLoadOptions","isLoadingAll","groupSummary","paging","totalSummary","cachedExtra","cachedPagesData","extra","_handleDataLoadedCore","normalizeSortingInfo","loadOptions","isPlainObject","registerModule","groupItems","totalItems","calculateCustomSummary","skipEmptyValues","texts","sum","getFormatter","sumOtherColumn","min","minOtherColumn","max","maxOtherColumn","avg","avgOtherColumn","count","sortByGroupSummaryInfo","footerView","controllers","_isDataColumn","groupIndex","showWhenGrouped","_isGroupFooterVisible","groupItem","showInColumn","showInGroupFooter","_processGroupItems","isGroupFooterVisible","collectContinuationItems","isContinuationOnNextPage","_processGroupItem","summaryGroupItems","groupColumnIndex","afterGroupColumnIndex","visibleColumns","prevColumn","_calculateSummaryCells","alignByColumn","calculateTargetColumnIndex","summaryCellsByColumns","summaryIndex","valueFormat","aggregate","summaryType","getFormatByDataType","isString","deserializeValue","columnCaption","caption","isEmptyObject","_getSummaryCells","summaryTotalItems","getVisibleColumns","_updateItemsCore","_dataSource","_footerItems","oldSummaryCells","summaryCell","JSON","stringify","_prepareUnsavedDataSelector","getUpdatedData","_prepareAggregateSelector","aggregator","_getAggregates","commonSkipEmptyValues","calculateCellValue","bind","compileGetter","log","summaryProcess","seed","totalValue","step","finalize","_addSortInfo","groupColumn","sortOrder","_findSummaryItem","summaryItemIndex","getFullName","_getSummarySortByGroups","groupSummaryItems","groupColumns","getGroupColumns","_createDataSourceAdapterCore","dataSourceAdapter","currentRemoteOperations","_getSummaryOptions","totalSummaryItems","publicMethods","methods","getTotalSummaryValue","summaryItemName","editing","_refreshSummary","isSaving","refresh","load","changesOnly","_addChange","params","_removeChange","cancelEditData","_createRow","_renderCells","_renderGroupSummaryCells","_hasAlignByColumnSummaryItems","_getAlignByColumnCellCount","groupCellColSpan","alignByColumnCellCount","$groupCell","last","attr","_renderGroupSummaryCellsCore","_renderCell","parent","_getSummaryCellIndex","_getCellTemplate","parameters","DataController","_getDataSourceAdapter","_getSpecificDataSourceOption","_dom_adapter","_events_engine","_guid","_component_registrator","_dom","_element","_fx","_position","_devices","_index","_overlay","_deferred","_inheritsLoose","subClass","superClass","prototype","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","__proto__","DX_MENU_CLASS","DX_MENU_ITEM_CLASS","DX_MENU_ITEM_EXPANDED_CLASS","DX_MENU_PHONE_CLASS","DX_MENU_ITEMS_CONTAINER_CLASS","DX_MENU_ITEM_WRAPPER_CLASS","DX_SUBMENU_CLASS","DX_CONTEXT_MENU_CLASS","DX_HAS_CONTEXT_MENU_CLASS","DX_STATE_DISABLED_CLASS","DX_STATE_FOCUSED_CLASS","DX_STATE_HOVER_CLASS","FOCUS_UP","FOCUS_DOWN","FOCUS_LEFT","FOCUS_RIGHT","FOCUS_FIRST","FOCUS_LAST","ACTIONS","LOCAL_SUBMENU_DIRECTIONS","DEFAULT_SHOW_EVENT","ContextMenu","_MenuBase","_proto","getShowEvent","showEventOption","isObject","getShowDelay","_getDefaultOptions","showEvent","onSubmenuCreated","onPositioning","submenuDirection","onLeftFirstItem","onLeftLastItem","onCloseRootSubmenu","onExpandLastSubmenu","_defaultOptionsRules","device","_initActions","_actions","action","_createActionByOption","_setOptionsByReference","_optionsByReference","_focusInHandler","_itemContainer","_eventBindingTarget","itemsContainer","_supportedKeys","selectItem","$item","_isSelectionEnabled","space","escape","_getActiveItem","$availableItems","_getAvailableItems","$focusedItem","$hoveredItem","$hoveredItemContainer","closest","_moveFocus","$newTarget","$items","_getItemsByLocation","$oldTarget","$activeItemHighlighted","_prevItem","_setFocusedElement","is","first","_nextItem","_hideSubmenuHandler","_expandSubmenuHandler","getPublicElement","$activeItem","_getAriaTarget","_refreshActiveDescendant","$target","$curItem","$parentItem","parents","_hideSubmenusOnSameLevel","_hideSubmenu","_getItemData","node","_dataAdapter","getNodeByItem","isItemHasSubmenu","_hasSubmenu","$submenu","hasClass","_showSubmenu","_clean","remove","_detachShowContextMenuEvents","_getTarget","_initMarkup","_render","_renderVisibility","_addWidgetClass","_renderContentImpl","_attachShowContextMenuEvents","_attachKeyboardEvents","_keyboardListenerId","_focusTarget","_renderContextMenuOverlay","overlayOptions","_getOverlayOptions","appendTo","_$element","$overlayContent","_addCustomCssClass","_addPlatformDependentClass","_attachContextMenuEvent","_itemContextMenuHandler","stopPropagation","current","phone","eventName","addNamespace","_showContextMenuEventHandler","off","getDocument","contextMenuAction","_createAction","_show","validatingTargetName","handler","currentTarget","isRenderer","nodeType","isWindow","on","_hoverEndHandler","_renderDimensions","_renderContainer","$wrapper","submenuContainer","$holder","$itemsContainer","_renderSubmenuItems","$itemFrame","_renderItems","_getChildNodes","itemElement","internalFields","submenuElement","innerOverlay","_closeOnOutsideClickHandler","propagateOutsideClick","closeOnTargetScroll","_overlayShownActionHandler","_overlayHidingActionHandler","_overlayHiddenActionHandler","arg","_hideAllShownSubmenus","_setOptionWithoutOptionChange","isDocument","$activeItemContainer","_getActiveItemsContainer","$itemContainers","_getItemsContainers","$clickedItem","_searchActiveItem","$rootItem","isRootItemClicked","isInnerOverlayClicked","_isIncludeOverlay","_getShowSubmenuMode","_hideAllShownChildSubmenus","_$content","$activeOverlay","$allOverlays","isSame","$overlay","_this4","$submenuElements","shownSubmenus","_shownSubmenus","$context","context","isSubmenuRendered","_isSubmenuVisible","_drawSubmenu","$expandedItems","siblings","removeClass","_hideSubmenuGroup","_hideSubmenuCore","$itemElement","submenuPosition","_getSubmenuPosition","stop","setup","_animate","$container","animate","toLowerCase","$rootItemWrapper","h","v","_updateSubmenuVisibilityOnClick","actionArgs","shouldRenderSubmenu","notCloseMenuOnItemClick","closeMenuOnClick","_updateSelectedItemOnClick","$prevSubmenu","canceled","$curSubmenu","_this5","contains","splice","_stopAnimate","_this6","_","_visibilityChanged","_optionChanged","previousValue","showing","_hide","_toggleVisibility","jQEvent","promise","Deferred","reject","_positionContextMenu","_widgetClass","_renderFocusState","_attachHoverEvents","_attachClickEvent","getRootNodes","_setAriaAttributes","_overlayContentId","setAria","role","_cleanAriaAttributes","_getContextMenuPosition","isInitialPosition","_isInitialOptionValue","positioningAction","preventDefault","_refresh","lastPosition","DxValidationRule","DxStringLengthRule","DxRequiredRule","DxRangeRule","DxPatternRule","DxNumericRule","DxEmailRule","DxCustomRule","DxCompareRule","DxAsyncRule","DxAdapter","DxValidator","validator_1","createExtensionComponent","adapter","onValidated","validationRules","AsyncRule","CompareRule","CustomRule","EmailRule","NumericRule","PatternRule","RangeRule","RequiredRule","StringLengthRule","validationRule","applyValidationResults","bypass","focus","getValue","reset","validationRequestsCallbacks","ignoreEmptyValue","message","reevaluate","validationCallback","$_predefinedProps","comparisonTarget","comparisonType","pattern","trim","_style","_string","_remove_event","ROWS_VIEW_CLASS","CONTENT_CLASS","NOWRAP_CLASS","GROUP_ROW_CLASS","GROUP_CELL_CLASS","DATA_ROW_CLASS","FREE_SPACE_CLASS","ROW_LINES_CLASS","COLUMN_LINES_CLASS","ROW_ALTERNATION_CLASS","LAST_ROW_BORDER","EMPTY_CLASS","ROW_INSERTED_ANIMATION_CLASS","LOADPANEL_HIDE_TIMEOUT","getMaxHorizontalScrollOffset","scrollable","scrollWidth","clientWidth","loadPanel","enabled","format","showIndicator","indicatorSrc","showPane","rowTemplate","wordWrapEnabled","showRowLines","rowAlternationEnabled","twoWayBindingEnabled","defaultCellTemplate","isDataTextEmpty","isEmpty","encodeHtml","textContent","innerHTML","getScrollableBottomPadding","getScrollable","ceil","parseFloat","_getDefaultTemplate","_getDefaultGroupTemplate","getGroupRowSummaryText","groupContinuedMessage","groupContinuesMessage","_update","allowRenderToDetachedContainer","groupCellTemplate","isGroup","isRowExpanded","isExpanded","_rowPrepared","rowOptions","_isAltRow","watch","_setAriaRowIndex","isPagerMode","_afterRowPrepared","isNewRow","dispose","generateDataValues","repaintRows","deep","skipImmediate","_renderScrollable","force","_loadPanel","_renderLoadPanel","isLocalStore","allColumnsHasWidth","_hasHeight","_isColumnFixing","_renderScrollableCore","_handleScroll","_isScrollByEvent","_scrollTop","scrollOffset","top","_scrollLeft","left","_scrollRight","scrollChanged","fire","dxScrollableOptions","_createScrollableOptions","scrollHandler","onScroll","onStop","_scrollable","_scrollableContainer","_$container","renderLoadPanel","contentElement","tableElement","_findContentElement","newTableElement","executors","highlightChanges","rowInsertedClass","rowIndices","$newRowElement","_getRowElements","$rowsElement","insertBefore","insertAfter","prependTo","isLiveUpdate","setTableElement","_createEmptyRow","className","isFixed","getFixedColumns","_createCell","isNumeric","_appendEmptyRow","$table","$emptyRow","$tBodies","_getBodies","isTableContainer","prepend","$colgroup","_renderFreeSpaceRow","$tableElement","$freeSpaceRowElement","_wrapRowIfNeed","_checkRowKeys","rows","keyExpr","store","some","fireError","_needUpdateRowHeight","itemsCount","_rowHeight","_getRowsHeight","$rowElements","not","reduce","getBoundingRect","_updateRowHeight","rowsHeight","$rows","_getFreeSpaceRowElements","tableElements","getTableElements","_getNoDataText","evaluate","expr","getter","_rowDblClick","_getColumnsCountBeforeGroups","_getGroupCellOptions","columnsCountBeforeGroups","colspan","_renderGroupedCells","expandColumn","groupCellOptions","allowCollapsing","scrollingMode","groupColumnAlignment","getDefaultAlignment","_renderRows","updateFreeSpaceRowHeight","_renderRow","renderTemplate","resizeCompletedHandler","scrollableInstance","getWindow","document","resizeCompleted","_createTable","_lastColumnWidths","getDisplayValue","oldValue","formatValue","resized","resizedCallbacks","groupingTextsOptions","isContinuation","_setRowsOpacityCore","columnID","isBand","isParentBandColumn","opacity","_getDevicePixelRatio","devicePixelRatio","renderNoDataText","getCellOptions","columnIdentifier","cellOptions","getRow","itemCount","freeSpaceRowElements","isFreeSpaceRowVisible","deferUpdate","scrollbarWidth","getScrollbarWidth","elementHeightWithoutScrollbar","contentHeight","outerHeight","showFreeSpaceRow","borderTopWidth","heightCorrection","_getHeightCorrection","resultHeight","deferRender","_updateLastRowBorder","freeSpaceRowCount","setHeight","isZoomedWebkit","webkit","hasExtraBorderTop","mozilla","version","_fireColumnResizedCallbacks","_editorFactoryController","loadingChanged","isLoading","messageText","setLoading","dataSourceChanged","contentWidth","isHorizontal","scrollableContainer","clientHeight","offsetHeight","offsetWidth","lastColumnWidths","columnWidths","_updateScrollable","dxScrollable","getInstance","_updateHorizontalScrollPosition","scrollLeft","maxHorizontalScrollOffset","scrollRight","scrollTo","_height","hasHeight","loadPanelOptions","visibilityOptions","clearTimeout","_hideLoadingTimeoutID","setRowsOpacity","_getCellElementsCore","$cells","groupCellIndex","getTopVisibleItemIndex","isFloor","itemIndex","prevOffsetTop","offsetTop","scrollPosition","$contentElement","contentElementOffsetTop","rowElements","round","getTopVisibleRowData","_scrollToElement","scrollToElement","_tableElement","setScrollerSpacing","_date","_number","_date2","_dependency_injector","_format","formatIsValid","valueIsValid","getTimeFormat","showSecond","_normalizeFormat","formatPart","join","getDateFormatByDifferences","dateDifferences","intervalFormat","resultFormat","needSpecialSecondFormatter","millisecond","year","month","day","secondFormatter","hour","minute","second","unshift","quarter","monthDayFormatter","getMonthNames","dayFormatter","getDateFormatByTicks","ticks","maxDiff","currentDiff","getDatesDifferences","getDateFormatByTickInterval","startValue","endValue","tickInterval","dateUnitInterval","dateDifferencesConverter","week","correctDateDifferences","correctDifferencesByMaxDate","differences","minDate","maxDate","getDateUnitInterval","createOffsetFilter","GroupingHelper","_class","lastLevelOnly","filterElement","j","currentFilter","combineFilters","findGroupInfoByKey","groupsInfo","hash","getGroupInfoIndexByOffset","leftIndex","rightIndex","middleIndex","cleanGroupsInfo","groupsCount","calculateItemsCount","isGroupItemCountable","ctor","_groupsInfo","_totalCountCorrection","totalCountCorrection","updateTotalItemsCount","_isVirtualPaging","foreachGroups","childrenAtFirst","foreachCollapsedGroups","updateOffsets","updateParentOffsets","foreachGroupsCore","callbackResults","executeCallback","callbackResult","currentParents","when","always","_updateGroupInfoOffsets","groupInfo","parentIndex","sort","a","b","findGroupInfo","pathIndex","addGroupInfo","groupInfoData","allowCollapseAll","oldGroups","_group","handleDataLoading","handleDataLoaded","handleDataLoadedCore","_context_menu","CONTEXT_MENU","viewName","columnHeadersView","headerPanel","VIEW_NAMES","ContextMenuController","ViewController","createAction","getContextMenuItems","dxEvent","$targetRowElement","$targetCellElement","menuItems","$targetElement","view","getRowIndex","cellIndex","targetElement","cells","_contextMenuPrepared","ContextMenuView","contextMenuInstance","getWidgetContainerClass","onContextMenuPreparing","contextMenu","contextMenuView","_excel","_excel2","_excel3","_excel4","_excel5","ExcelFile","_cellFormatTags","_fillTags","_fontTags","_numberFormatTags","tryCreateTag","patternFill","patternType","registerCellFormat","cellFormat","cellFormatTag","registerFill","registerFont","registerNumberFormat","areEqual","copyCellFormat","copy","generateCellFormatsXml","cellFormatTagsAsXmlStringsArray","tag","toXml","fill","fillTag","generateFillsXml","tagsAsXmlStringsArray","font","fontTag","generateFontsXml","xmlStringsArray","_convertNumberFormatIndexToId","CUSTOM_FORMAT_ID_START_VALUE","numberFormat","ID_PROPERTY_NAME","generateNumberFormatsXml","_click","_pointer","_position2","EDITOR_INLINE_BLOCK","FOCUS_OVERLAY_CLASS","FOCUSED_ELEMENT_CLASS","ROW_CLASS","MODULE_NAMESPACE","UPDATE_FOCUS_EVENTS","down","DX_HIDDEN","EditorFactory","_getFocusedElement","$dataGridElement","rowSelector","focusedElementSelector","_getFocusCellSelector","_updateFocusCore","$focusCell","hideBorders","$focus","_$focusedElement","loseFocus","_updateFocus","isFocusOverlay","_isFocusOverlay","_updateFocusTimeoutID","_updateFocusOverlaySize","oversize","outerWidth","callbackNames","hideBorder","_focusTimeoutID","renderFocusOverlay","focused","refocus","isElementInCurrentGrid","_$focusOverlay","align","elemCoord","right","bottom","focusOverlayPosition","precise","$focusedElement","excludeValidators","category","_updateFocusHandler","_attachContainerEventHandlers","normalizeKeyName","include","editorFactory","getSvgMarkup","getSvgElement","window","getMarkup","backgroundColor","temp","createElement","cloneNode","appendChild","fixNamespaces","markup","replace","match","decodeHtmlEntities","isNode","DOMParser","parseFromString","childNodes","fontHelper","sourceObj","size","family","scheme","bold","italic","underline","color","leftTag","rightTag","content","val","_callbacks","WIDGET_WITH_LEGACY_CONTAINER_NAME","ModuleItem","_endUpdateCore","_updateLockCount","_actionConfigs","flags","callbackFlags","unique","syncStrategy","beginUpdate","endUpdate","optionCache","_optionCache","_silentOption","localize","getAction","actionName","prefix","setAttribute","_controllers","config","componentName","containerName","Controller","_views","getViews","_isReady","isReady","_requireReady","_requireRender","_requireResize","_$parent","requireResize","requireReady","_afterRender","_parentElement","renderCompleted","marginTop","marginBottom","getTemplate","_getTemplate","$parent","isResizing","trigger","MODULES_ORDER_MAX_INDEX","processModules","componentClass","modulesOrder","controllerTypes","viewTypes","module1","module2","orderIndex1","orderIndex2","moduleName","Error","subclassOf","extender","registerPublicMethods","moduleItem","methodName","createModuleItems","moduleTypes","moduleItems","moduleType","callModuleItemsMethod","registerModulesOrder","moduleNames","unregisterModule","grep","_typeof","Symbol","iterator","_element_data","_double_click","iteratorUtils","_interopRequireWildcard","_uiGrid_core3","_getRequireWildcardCache","WeakMap","cache","has","newObj","hasPropertyDescriptor","hasOwnProperty","SCROLL_CONTAINER_CLASS","GROUP_SPACE_CLASS","TABLE_CLASS","TABLE_FIXED_CLASS","CONTENT_FIXED_CLASS","DETAIL_ROW_CLASS","FILTER_ROW_CLASS","CELL_UPDATED_ANIMATION_CLASS","HIDDEN_COLUMNS_WIDTH","CELL_HINT_VISIBLE","FORM_FIELD_ITEM_CONTENT_CLASS","appendElementTemplate","subscribeToRowEvents","touchTarget","touchCurrentTarget","timeoutId","clearTouchTargets","timeout","_isNativeClick","_rowPointerDown","getWidthStyle","setCellWidth","style","copyAttributes","newElement","oldAttributes","attributes","newAttributes","nodeName","hasAttribute","removeAttribute","nodeValue","scrollingOptions","useNativeScrolling","pushBackValue","bounceEnabled","useSimulatedScrollbar","_updateCell","_cellPrepared","textAlign","headerId","rowObject","dataIndex","isAppend","_createColGroup","safari","ctrlKey","isHeaderRow","isGroupRow","isMasterDetailRow","isFilterRow","msieCorrection","headerCellTemplate","removeAttr","difference","getOptions","$fieldItemContent","delegateTarget","resultOptions","cellElement","eventType","formItemOptions","getVisibleIndex","colgroupElement","_createCol","col","setWidth","renderDelayedTemplates","delayedTemplates","_delayedTemplates","syncTemplates","async","asyncTemplates","_renderDelayedTemplatesCore","_renderDelayedTemplatesCoreAsync","templates","isAsync","templateParameters","shift","doc","_processTemplate","renderingTemplate","deferred","resolve","renderedTemplate","templateID","_templatesCache","templateDeferred","templateOptions","onRendered","renderAsync","showEditorAlways","$tbody","_appendRow","appendTemplate","$root","$wrappedRow","_addWatchMethod","_needRenderCell","oldValues","$newCells","cellUpdatedClass","$newCell","_setCellAriaAttributes","columnIndexOffset","getColumnIndexOffset","ariaColIndex","isAltRow","watchers","updateFunc","watcher","newValue","stopWatch","checkChanges","widths","setColumnWidths","getCellIndex","afterExecute","columnsChanged","pos","$scrollContainer","_wrapTableInScrollContainer","$newTableElement","_getWidths","$cellElements","legacyRendering","getBoundingClientRect","clientRect","getColumnWidths","isRowVisible","display","getVisibleColumnIndex","_ref","$cols","toFixed","getCellElements","_getCellElement","columnVisibleIndex","_getVisibleColumnIndex","_getRowElement","$tableElements","getCellElement","elements","getColumnElements","getCell","cellPosition","getRowsCount","_getRowElementsCore","tBodies","getName","paddingLeft","paddingRight","isScrollbarVisible","SORT_CLASS","SORT_NONE_CLASS","SORTUP_CLASS","SORTDOWN_CLASS","SORT_INDEX_CLASS","SORT_INDEX_ICON_CLASS","HEADERS_ACTION_CLASS","_applyColumnState","ariaSortState","$sortIndicator","sortingMode","rootElement","$indicatorsContainer","_getIndicatorContainer","isSortingAllowed","allowSorting","hasSeveralSortIndexes","sortIndex","_getIndicatorClassName","_renderIndicator","$indicator","indicator","columnAlignment","_updateIndicator","indicatorName","_getIndicatorElements","returnAll","$indicatorElements","ROW_FOCUSED_CLASS","FOCUSED_ROW_SELECTOR","TABLE_POSTFIX_CLASS","FocusController","_keyboardController","focusedRowKey","_focusRowByIndex","_triggerFocusedRowChangedIfNeed","focusedRowIndex","_focusRowByKey","focusedRowIndexByKey","getFocusedRowIndexByKey","getRowIndexByKey","_fireFocusedRowChanged","isAutoNavigateToFocusedRow","_resetFocusedRow","_focusRowByIndexCore","setKeyByIndex","_isValidFocusedRowIndex","lastItemIndex","_getLastItemIndex","getKeyByRowIndex","isRowFocused","_isLocalRowIndex","waitReady","isVirtualScrolling","_isVirtualScrolling","virtualItems","virtualItemsCount","virtualItemsBegin","begin","visibleRowsCount","visiblePagesCount","_setFocusedRowKeyByIndex","_navigateToRow","isFocusedRowKeyDefined","setFocusedRowIndex","updateItems","navigateToRow","needFocusRow","isAutoNavigate","d","rowIndexByKey","_navigateTo","getPageIndexByKey","reload","fail","visibleRowIndex","isVirtualRowRenderingMode","_navigateToVirtualRow","_navigateToVisibleRow","_triggerUpdateFocusedRow","scrollToRowElement","rowsScrollController","_rowsScrollController","getIndexByKey","getItemOffset","triggerUpdateFocusedRow","loadedRowIndex","_focusRowByKeyOrIndex","currentFocusedRowIndex","equalByValue","updateFocusedRow","_change$items","isMainTable","_clearPreviousFocusedRow","_prepareFocusedRow","changedItem","isNotMasterDetailFocusedRow","focusedRow","$focusedRowTable","$prevRowFocusedElement","$firstRow","scrollToElementVertically","focusedRowEnabled","autoNavigateToFocusedRow","focusedColumnIndex","keyboardNavigation","setRowFocusType","_focusedCellPosition","visibleRow","setFocusedColumnIndex","_escapeKeyHandler","eventArgs","isEditing","isCellFocusType","_focus","_getCellElementFromTarget","originalEvent","_updateFocusedCellPosition","prevRowIndex","prevColumnIndex","_fireFocusedCellChanged","isRowElement","_getElementType","isRowFocusType","getFirstValidCellInRow","getSortDataSourceParameters","sortByKey","isLocalOperations","every","operationName","notSortedKeys","getDataIndexGetter","notSortedKey","_applyChange","_fireChanged","isPartialUpdate","isPartialUpdateWithDeleting","_updatePageIndexes","processUpdateFocusedRow","prevRenderingPageIndex","_lastRenderingPageIndex","renderingPageIndex","_isPagingByRendering","isPagingByRendering","operationTypes","focusController","fullReload","isValidRowIndexByKey","needFocusRowByIndex","getGlobalRowIndexByKey","globalIndex","_calculateGlobalRowIndexByGroupedData","_calculateGlobalRowIndexByFlatData","groupFilter","useGroup","_generateFilterByKey","_concatWithCombinedFilter","skip","take","_generateOperationFilterByKey","requireTotalCount","combinedFilter","getCombinedFilter","_generateBooleanFilter","sortInfo","rowData","filtering","getGroupDataSourceParameters","reverse","isBoolean","booleanFilter","filterOperation","sortFilter","operation","dataSourceKey","keyPart","_deleteRowCore","rowKey","visibleRows","updateFocusElementTabIndex","preventScroll","_setFocusedRowElementTabIndex","_findRowElementForTabIndex","_scrollToFocusOnResize","setFocusedCellPosition","getScrollElementPosition","DEFAULT_COLUMN_WIDTH","VirtualScrollingRowsViewExtender","setScrollPosition","HeaderFooterViewExtender","isVirtualMode","ColumnsControllerExtender","getWidths","members","_beginPageIndex","_endPageIndex","_virtualVisibleColumns","resetColumnsCache","getBeginPageIndex","currentPosition","getColumnPageSize","getTotalWidth","_lastWidth","getEndPageIndex","_fireColumnsChanged","all","_renderTime","renderingThreshold","_changedTimeout","_setScrollPositionCore","beginPageIndex","endPageIndex","needColumnsChanged","isBase","fixedColumns","transparentColumnIndex","c","visibleColumnsHash","rowCount","getRowCount","startIndex","endIndex","beginFixedColumnCount","beginFixedColumns","beginColumns","beginWidth","endFixedColumnCount","endFixedColumns","endColumns","endWidth","columnsInfo","createColumnsInfo","leftFixedColumnCount","columnRenderingMode","columnPageSize","columnRenderingThreshold","prepareScrollData","allowScroll","delta","shiftKey","scrollTopPos","scrollTop","scrollBottomPos","isScrollFromTop","isScrollFromBottom","isScrollFromMiddle","validateTarget","isCorrectTarget","eventTarget","validate","isDxMouseWheelEvent","_needSkipEvent","export","_export","_file_saver","fileSaver","svg","pdf","image","excel","_excel_creator","_image_creator","_svg_creator","_excel_format_converter","_pdf_creator","getData","exportingAction","exportedAction","fileSavingAction","fileName","then","blob","saveAs","proxyUrl","forceProxy","creator","ExcelCreator","formatConverter","imageCreator","testFormats","svgCreator","_uiTree_view","WIDGET_CLASS","NODE_CONTAINER_CLASS","TreeViewSearch","_addWidgetPrefix","_showCheckboxes","_isRecursiveSelection","_removeSelection","_initDataAdapter","_updateSearch","_repaintContainer","repaint","_updateDataAdapter","_getDataAdapterOptions","searchValue","_searchEditor","editorOptions","_getSearchEditorOptions","rootNodes","_renderEmptyMessage","_fireContentReadyAction","isSearchMode","_removeSearchBox","CELL_CONTENT_CLASS","HEADERS_CLASS","ROW_CLASS_SELECTOR","HEADER_ROW_CLASS","CONTEXT_MENU_SORT_ASC_ICON","CONTEXT_MENU_SORT_DESC_ICON","CONTEXT_MENU_SORT_NONE_ICON","VISIBILITY_HIDDEN_CLASS","TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX","SORT_INDICATOR_CLASS","SORT_INDEX_INDICATOR_CLASS","HEADER_FILTER_CLASS_SELECTOR","HEADER_FILTER_INDICATOR_CLASS","MULTI_ROW_HEADER_CLASS","cellHintEnabled","createCellContent","$cellContent","addCssClassesToCellContent","contentAlignment","getHeaderContentAlignment","$visibleIndicatorElements","indicatorCount","_getColumnAlignment","sortIndicatorClassName","sortIndexIndicatorClassName","$sortIndexIndicator","_isLegacyKeyboardNavigation","_getHeaderTemplate","resultTemplate","_isGroupingChanged","registerKeyboardAction","_handleActionKeyDown","_lastActionElement","headerFilterController","$column","getColumnIndexByElement","showHeaderFilterMenu","_processHeaderAction","_hasRowElements","_getRowVisibleColumns","$cellElement","rowspan","_isElementVisible","elementOptions","_alignCaptionByCenter","$indicatorElement","_isSortableElement","getHeadersRowHeight","$headerRows","headerRow","getHeaderElement","columnElements","bandColumnIndex","getChildrenByBandColumn","$columnElements","allowDragging","sourceLocation","draggingPanels","draggableColumnCount","canHideColumn","allowHiding","allowDrag","allowGrouping","isColumnOptionUsed","draggingPanel","getColumnCount","sortingOptions","changeSortOrder","ascendingText","descendingText","clearText","setColumnOpacity","ownerBand","_tree_view","_popup","_ui2","_utils2","FILTER_BUILDER_CLASS","FILTER_BUILDER_GROUP_CLASS","FILTER_BUILDER_GROUP_ITEM_CLASS","FILTER_BUILDER_GROUP_CONTENT_CLASS","FILTER_BUILDER_GROUP_OPERATIONS_CLASS","FILTER_BUILDER_GROUP_OPERATION_CLASS","FILTER_BUILDER_ACTION_CLASS","FILTER_BUILDER_IMAGE_CLASS","FILTER_BUILDER_IMAGE_ADD_CLASS","FILTER_BUILDER_IMAGE_REMOVE_CLASS","FILTER_BUILDER_ITEM_TEXT_CLASS","FILTER_BUILDER_ITEM_FIELD_CLASS","FILTER_BUILDER_ITEM_OPERATION_CLASS","FILTER_BUILDER_ITEM_VALUE_CLASS","FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS","FILTER_BUILDER_OVERLAY_CLASS","FILTER_BUILDER_FILTER_OPERATIONS_CLASS","FILTER_BUILDER_FIELDS_CLASS","FILTER_BUILDER_ADD_CONDITION_CLASS","ACTIVE_CLASS","FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS","SOURCE","DISABLED_STATE_CLASS","TAB_KEY","ENTER_KEY","ESCAPE_KEY","OPERATORS","and","or","notAnd","notOr","FilterBuilder","onEditorPreparing","onEditorPrepared","fields","defaultGroupOperation","groupOperations","maxGroupLevel","allowHierarchicalFields","groupOperationDescriptions","customOperations","closePopupOnTargetScroll","filterOperationDescriptions","between","equal","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","startsWith","notContains","endsWith","isBlank","isNotBlank","_initCustomOperations","disableInvalidateForValue","_disableInvalidateForValue","_initModel","getFilterExpression","_getNormalizedFields","_model","getNormalizedFilter","_customOperations","getNormalizedFields","_updateFilter","normalizedValue","_getModel","_init","_initEditorFactory","_editorFactory","getMergedOperations","convertToInnerStructure","actionConfig","_createGroupElementByCriteria","_createConditionElement","_createConditionItem","criteria","$group","_createGroupElement","$groupContent","groupCriteria","getGroupCriteria","innerCriteria","isCondition","$groupItem","_createRemoveButton","removeItem","_createGroupOperationButton","_createAddButton","newGroup","createEmptyGroup","addItem","field","newCondition","createCondition","_createButton","_getGroupOperations","groupMenuItem","getGroupMenuItem","$operationButton","_createButtonWithMenu","menu","setGroupValue","removeMenu","menuOnItemClickWrapper","$button","selectionMode","popup","info","treeViewElement","treeView","dxTreeView","keyName","_subscribeOnClickAndEnterKey","_createPopupWithTreeView","_hasValueButton","customOperation","getCustomOperation","hasValue","_createOperationButtonWithMenu","availableOperations","getAvailableOperations","currentOperation","getOperationFromAvailable","getOperationValue","onItemRendered","isCustom","updateConditionByOperation","$valueButton","_createValueButton","_createOperationAndValueButtons","_createFieldButtonWithMenu","getItems","getField","getFullCaption","getCaptionWithParents","$fieldButton","dataStructure","getDefaultOperation","isSingleChild","getGroupValue","$removeButton","addGroupHandler","addConditionHandler","click","_createValueText","$text","getCurrentLookupValueText","renderValueText","getCurrentValueText","_createValueEditorWithEvents","_updateConditionValue","areValuesDifferent","_addDocumentKeyUp","$editor","isComposing","hasCompositionJustEnded","documentKeyUpHandler","input","which","_documentKeyUpHandler","_addDocumentClick","closeEditorFunc","documentClickHandler","_isFocusOnEditorParts","_documentClickHandler","activeElement","getActiveElement","_removeEvents","_dispose","_this7","createValueText","closeEditor","setValue","_createValueEditor","prev","editorTemplate","createEditor","parentType","$popup","$menuContainer","getElementMaxHeightByWindow","DxSearchEditorOptions","DxTreeView","tree_view_1","animationEnabled","createChildren","disabledExpr","expandAllEnabled","expandedExpr","expandEvent","expandNodesRecursive","hasItemsExpr","itemHoldTimeout","itemsExpr","onItemCollapsed","onItemContextMenu","onItemExpanded","onItemHold","onItemSelectionChanged","onSelectAllValueChanged","parentIdExpr","rootValue","scrollDirection","searchEditorOptions","selectAllText","selectByClick","selectedExpr","selectNodesRecursive","showCheckBoxesMode","virtualModeEnabled","expanded","hasItems","selected","mask","maskChar","maskInvalidMessage","maskRules","onKeyPress","showMaskMode","useMaskedValue","getContentHeightLimit","subscribeToExternalScrollers","VirtualScrollController","getPixelRatio","SCROLLING_MODE_INFINITE","SCROLLING_MODE_VIRTUAL","_isVirtual","isAppendMode","needTwoPagesLoading","_viewportItemIndex","browser","scrollChangedHandler","$scrollElement","scrollableArray","scrollToArray","disposeArray","getElementOffset","$scrollableElement","scrollableOffset","createWindowScrollHandler","widgetScrollStrategy","subscribeToScrollEvents","eventsStrategy","topOffset","scrollMethod","getViewportPageCount","preventPreload","realViewportSize","_viewportSize","viewportSize","_viewportItemSize","getContentOffset","totalItemsCount","itemSize","_itemSizes","getPreloadPageCount","previous","preloadEnabled","getPageIndexForLoad","_pageIndex","_cache","needToLoadPageBeforeLast","needToLoadPrevPage","needToLoadNextPage","_loadingPageIndexes","fireChanged","_isChangedFiring","processDelayChanged","_isDelayChanged","processChanged","isDelayChanged","removeCacheItem","isPrepend","viewportItems","removeCount","correctCount","removeItemCount","itemsLength","updateLoading","_lastPageIndex","loadCore","isVirtual","_sizeRatio","_items","positionChanged","getItemSizes","beginItemsCount","endItemsCount","end","setViewportPosition","scrollingTimeout","changingDuration","_scrollTimeoutID","_setViewportPositionCore","getViewportPosition","getItemIndexByPosition","defaultItemSize","getItemSize","itemOffset","itemOffsetsWithSize","itemOffsetWithSize","itemOffsetDiff","setViewportItemIndex","setContentSize","sizes","_contentSize","virtualContentSize","contentHeightLimit","isEnd","currentItemIndex","getVirtualContentSize","getViewportItemIndex","newPageIndex","virtualMode","appendMode","lastPageSize","maxPageIndex","viewportItemSize","defaultPageIndex","pageIndexForLoad","loadResult","delayDeferred","_delayDeferred","onChanged","loadIfNeed","handleDataChanged","removeInvisiblePages","lastCacheLength","changes","cacheItem","isDelayed","isRefresh","subscribeToWindowScrollEvents","_windowScroll","dataSourceAdapterType","selectedTemplate","idSelectedTemplate","selectedTemplateVersion","templateFields","lerCodes","sectors","cnaeCodes","categoriesFirstLevel","templateEditMode","selectedField","fieldTypes","unitTypes","removeValues","idLastFieldCreated","formattedCategoriesList","active","res","commit","templateVersion","response","TypeError","templateVersions","post","toJson","templateVersionDB","put","resTemplateVersion","templateDB","url","delete","dispatch","lerCode","sector","cnaeCode","categoryFirstLevel","formattedCategory","editar","Format","templateVersionsDetail","idField","fieldType","unitType","ValuesDB","templateId","valuesByFieldId","fieldId","namespaced","dynamic","_filtering","_variable_wrapper","_accessibility","DATE_INTERVAL_FORMATS","HeaderFilterController","getFormatOptions","currentLevel","getFormatOptionsByColumn","getDisplayFormat","formatOptions","firstValueText","secondValue","secondValueText","_headerFilterView","_updateSelectedState","isExclude","filterType","updateHeaderFilterItemSelectionState","filterValues","_normalizeGroupItem","valueSelector","displaySelector","getHeaderItemText","headerFilterOptions","emptyValue","level","getDataSource","getHeaderFilterGroupParameters","headerFilterDataSource","isLookup","normalizeDataSourceOptions","lookupDataSourceOptions","isWrapped","cutoffLevel","_currentColumn","useDefaultSearch","origPostProcess","postProcess","getCurrentColumn","isGroupPanel","$columnElement","showHeaderFilterMenuBase","columnElement","applyFilter","remoteFiltering","dxResizableInstance","overlayContent","dxResizable","headerFilterByColumn","restoreFocus","isFilterBuilder","hideHeaderFilterMenu","ColumnHeadersViewHeaderFilterExtender","headerFilterMixin","$headerFilterIndicator","allowHeaderFiltering","_subscribeToIndicatorEvent","_updateHeaderFilterIndicators","_updateIndicators","_needUpdateFilterIndicators","HeaderPanelHeaderFilterExtender","_createGroupPanelItem","invertFilterExpression","DataControllerFilterRowExtender","skipCalculateColumnFilters","_calculateAdditionalFilter","filters","currentColumn","calculateFilterExpression","createFilterExpression","allowSearch","ok","headerFilterView","HeaderFilterView","_ajax","_svg","_markup","_imageArray","_imageDeferreds","_getBinaryFile","src","sendRequest","method","responseType","_loadImages","binary","bytes","Uint8Array","byteLength","fromCharCode","btoa","_parseImages","href","tagName","_prepareImages","svgElem","xmlVersion","$svgObject","dataURI","regexpString","RegExp","Blob","_getBlob","_getBase64","_array_store","_array_utils","cloneItems","calculateOperationTypes","lastLoadOptions","isFullReload","sorting","equalSortParameters","groupExpanding","groupExpand","equalFilterParameters","executeTask","executeAsync","createEmptyPagesData","pages","getPageDataFromCache","setPageDataToCache","_remoteOperations","_isLastPage","isLastPage","_hasLastPage","_currentTotalCount","_cachedPagesData","_lastOperationTypes","_eventsStrategy","_skipCorrection","_isLoadingAll","loadError","customizeStoreLoadOptions","changing","_dataChangedHandler","_dataLoadingHandler","_handleDataLoading","_dataLoadedHandler","_handleDataLoaded","_loadingChangedHandler","_handleLoadingChanged","_loadErrorHandler","_handleLoadError","_pushHandler","_handlePush","_changingHandler","_handleChanging","memberName","member","isSharedDataSource","resetCurrentTotalCount","paginate","resetCache","_cachedStoreData","_cachedPagingData","resetPagesCache","_needClearStoreDataCache","_lastLoadOptions","fromStore","applyBatch","keyInfo","_applyBatch","_dataIndexGetter","indexByKey","storeData","isCacheUpdated","getKeyHash","keyOf","_getKeyInfo","getItemCount","oldItemCount","useInsertIndex","_needCleanCacheByOperation","operationType","operationTypesByOrder","operationTypeIndex","currentOperationTypes","cachedStoreData","cachedPagingData","originalStoreLoadOptions","_isRefreshing","isRefreshing","_loadingOperationTypes","_isRefreshed","_lastOperationId","operationId","_handleDataLoadingCore","localLoadOptionNames","optionValue","localPaging","needCache","needPageCache","needPagingCache","needStoreCache","mergeStoreLoadData","error","currentTotalCount","_operationTypes","_scheduleCustomLoadCallbacks","_isCustomLoading","loadingOperationTypes","loadFromStore","dataSourceLoadOptions","_customLoadOptions","_scheduleLoadCallbacks","fireEvent","full","getCachedStoreData","MAX_SAFE_INTEGER","changeRowExpand","isRowClick","isKeyboardEnabled","_isFocusedRowInsideGroup","_getGroupPath","groupPath","_expandGroupByPath","expandRow","isGroupKey","_grouping","_updatePagingOptions","_calculateExpandedRowGlobalIndex","groupOffset","createGroupFilter","totalOffset","dataOffset","groupContinuationCount","currentPageOffset","commonColumnSettings","allowExporting","MASTER_DETAIL_CELL_CLASS","MASTER_DETAIL_ROW_CLASS","masterDetail","autoExpandAll","_getExpandColumnsCore","expandColumns","getExpandCellTemplate","initMasterDetail","_expandedItems","_isExpandAll","expandAll","collapseAll","expandIndex","_getRowIndicesForExpand","_changeRowExpandCore","_processDataItem","dataItem","detailColumnIndex","_processItems","isEnabledChanged","isAutoExpandAllChanged","resizing","fireContentReadyAction","_updateParentDataGrids","$masterDetailRow","_updateMasterDataGrid","$detailElement","masterRowOptions","masterDataGrid","isFixedColumns","_updateFixedMasterDetailGrids","masterRowIndex","detailElementWidth","updateDimensions","isDetailHorizontalScrollCanBeShown","isDetailGridWidthChanged","_toggleBestFitMode","isBestFit","$rowsTable","_rowsView","isEditRow","_isDetailRow","$detailCell","DxDropDownBox","drop_down_box_1","displayValueFormatter","tagHelper","attributeName","attributeValue","_uiToolbar","_action_sheet","ActionSheetStrategy","_getMenuItemTemplate","_toolbar","_hasVisibleMenuItems","_menuWidgetClass","_menuContainer","_widgetOptions","_$button","_menuButtonOptions","_toggleMenu","_menu","_menuShown","_jszip","XML_TAG","GROUP_SHEET_PR_XML","SINGLE_SHEET_PR_XML","BASE_STYLE_XML2","OPEN_XML_FORMAT_URL","RELATIONSHIP_PART_NAME","XL_FOLDER_NAME","WORKBOOK_FILE_NAME","CONTENTTYPES_FILE_NAME","SHAREDSTRING_FILE_NAME","STYLE_FILE_NAME","WORKSHEETS_FOLDER","WORKSHEET_FILE_NAME","WORKSHEET_HEADER_XML","VALID_TYPES","number","string","EXCEL_START_TIME","UTC","DAYS_COUNT_BEFORE_29_FEB_1900","MAX_DIGIT_WIDTH_IN_PIXELS","UNSUPPORTED_FORMAT_MAPPING","quarterAndYear","_getXMLTag","_convertToExcelCellRef","zeroBasedRowIndex","zeroBasedCellIndex","charCode","isCellIndexFound","columnName","_convertToExcelCellRefAndTrackMaxIndex","_maxRowIndex","_maxColumnIndex","_getDataType","_tryGetExcelCellDataType","isFinite","boolean","_formatObjectConverter","precision","formatter","currency","_tryConvertToExcelNumberFormat","newFormat","convertFormat","_appendString","_stringHash","_stringArray","_tryGetExcelDateValue","days","totalTime","_prepareValue","sourceValue","dataProvider","_dataProvider","getCellData","cellSourceData","_ref2","getCellType","_callCustomizeExcelCell","_ref3","sourceData","styleCopy","clearStyle","horizontalAlignment","verticalAlignment","wrapTextEnabled","horizontal","vertical","wrapText","fillPatternType","fillPatternColor","customizeExcelCell","newStyle","_getDataArray","cellsArray","cellData","cellsLength","rowsLength","styleArrayIndex","getStyleId","cellStyleId","_styleArrayIndexToCellStyleIdMap","hasCustomizeExcelCell","modifiedExcelCell","_styleArray","cellDataType","excelDateValue","_excelFile","_needSheetPr","getGroupLevel","_calculateWidth","pixelsWidth","_prepareStyleData","styles","getStyles","_colsArray","fonts","theme","_prepareCellData","_cellsArray","_createXMLRelationships","xmlRelationships","_createXMLRelationship","_getWorkbookContent","_getContentTypesContent","_generateStylesXML","folder","_zip","XML","file","_generateStringsXML","stringIndex","stringsLength","sharedStringXml","_getPaneXML","frozenArea","getFrozenArea","_getAutoFilterXML","maxCellIndex","_options","autoFilterEnabled","getHeaderRowCount","_getIgnoredErrorsXML","ignoreErrors","_generateWorksheetXML","colIndex","xmlCells","xmlRows","colsLength","rSpans","headerRowCount","xmlResult","_rtlEnabled","rightBottomCellRef","_generateMergingXML","k","l","mergeIndex","columnsLength","usedArea","mergeArray","mergeXML","cellMerge","getCellMerging","mergeArrayLength","_generateCommonXML","relsFileContent","relsXML","_generateContent","_generateWorkXML","JSZip","_checkZipState","ready","isBlob","compression","mimeType","MIME_TYPES","EXCEL","generateAsync","generate","excelCreator","ColumnChooserView","ColumnChooserController","columnChooser","columnChooserView","WINDOW_HEIGHT_PERCENT","startLocation","actualOffset","$window","_$element$offset","elementOffset","innerHeight","offsetBottom","_vm","_h","$createElement","_c","_self","staticClass","attrs","ref","$event","saveTemplate","_v","_s","$t","templateTitle","numVersion","goToListListVersions","scopedSlots","_u","fn","_g","_b","editTemplateVersion","description","idVersion","headers","loading","search","formattedContent","code","label","proxy","_e","staticRenderFns","withWidth","hasPermission","updateTemplates","$router","idPlantilla","isNaN","getTemplateVersionById","getTemplateById","contenido","substring","$tc","components","ValidationProvider","ItiIconButton","DxTextBox","DxNumberBox","DxTextArea","DxValidationSummary","DxCheckBox","DxDataGrid","DxSelection","DxPaging","DxFilterRow","DxScrolling","VBtn","VCard","VCardText","VCardTitle","VContainer","VDataTable","VFlex","VForm","VIcon","VLayout","VTooltip","numberFormatHelper","formatCode","numFmtId","_check_box","_load_indicator","_ui3","NODE_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","INVISIBLE_STATE_CLASS","SELECTED_ITEM_CLASS","EXPAND_EVENT_NAMESPACE","DATA_ITEM_ID","TreeViewBase","_itemClickHandler","expandEventName","_getEventNameByOption","expandByClick","_expandEventHandler","select","checkboxInstance","_getCheckBoxInstance","currentState","_updateItemSelection","toggleExpandedNestedItems","state","rootItem","_toggleExpandedNestedItems","enter","asterisk","minus","len","_toggleExpandedState","_getNodeElement","_encodeString","$nodeByKey","$node","querySelector","_activeStateUnit","integrationOptions","useDeferUpdateForTemplates","_initSelectedItems","_syncSelectionOptions","asyncNoop","_fireSelectionChanged","selectionChangePromise","_selectionChangePromise","_createSelectAllValueChangedAction","_selectAllValueChangedAction","_fireSelectAllValueChanged","_checkBoxModeChange","selectAllExists","_$selectAllItem","_renderSelectAllItem","getFullData","_hasChildren","toggleSelection","dxCheckBox","_filter","_initAccessors","_initExpandEvent","setOption","_initDataSource","_useCustomChildrenLoader","_loadChildrenByCustomLoader","newItems","_isVirtualMode","_initVirtualMode","custom","internal","_isDataStructurePlain","parentNode","invocationResult","fromPromise","_combineFilter","_dataSourceLoadErrorHandler","_initStoreChangeHandlers","_dataSourceChangedHandler","_initialized","_removeTreeViewLoadIndicator","_treeViewLoadIndicator","_createTreeViewLoadIndicator","_dataSourceLoadingChangedHandler","resultFilter","newItem","isFiltered","_updateLevel","_parentIdGetter","removedKey","getNodeByKey","_markChildrenItemsToRemove","_removeItems","childrenKeys","counter","_getContainerByParentKey","getChildrenNodes","_getOldContainer","_renderNodeContainer","_isRootLevel","_renderScrollableContainer","_getAccessors","accessors","multipleSelection","_isSingleSelection","recursiveSelection","recursiveExpansion","selectionRequired","$nodeContainer","_selectAllEnabled","skipContentReadyAction","_expandedGetter","_createDOMElement","_displayGetter","_getLevel","nodes","_renderItem","_renderedItemsCount","nodeIndex","nodeData","showCheckBox","_renderCheckBox","_toggleSelectedClass","_renderChildren","_setAriaSelected","_renderToggleItemVisibilityIcon","_loadSublevel","_renderSublevel","_getActualNode","_addLeafClass","cachedNode","_hasItemsGetter","childrenNodes","_loadNestedItems","getNodesByItems","$nestedNodeContainer","childNodesByChildrenKeys","childNode","firstChild","_updateParentsState","_normalizeIconState","_executeItemRenderAction","_getNode","_getItemRenderAction","getPublicNode","$nodeElement","expandedEventName","itemSelector","_itemSelector","identifier","isPrimitive","isElementNode","_getNodeByElement","_decodeString","_createLoadIndicator","toggleExpansion","_updateExpandedItemsUI","$icon","_renderToggleItemVisibilityIconClick","isHiddenNode","parentKey","nodeContainerExists","completionCallback","_animateNodeContainer","_loadNestedItemsWithUpdate","_this8","actualNodeData","_this9","publicNode","_areNodesExists","_appendItems","keyOfRootItem","fullData","nodeHeight","_fireExpandedStateUpdatedEvent","_itemDXEventHandler","_itemEventHandler","hasNewItems","$loadIndicator","_emptyMessageContainer","_contentAlreadyRendered","isAllSelected","_onSelectAllCheckboxValueChanged","before","_toggleSelectAll","toggleSelectAll","_updateItemsUI","$checkbox","_changeCheckboxValue","_disabledGetter","_toggleNodeDisabledState","toggleNodeDisabledState","checkbox","_itemOptionChanged","property","_isLastSelectedBranch","selectedNodesKeys","keyIndex","_isLastRequired","isSingleMode","getSelectedNodeKeys","_this10","selectedKeys","_fireItemSelectionChanged","needFireSelectAllChanged","initiator","_findItemElementByItem","_this11","nodeSelection","selectAllCheckbox","$parentNode","parentValue","_itemEventHandlerImpl","_extendActionArgs","_createEventHandler","_itemHoldHandler","_itemClass","_itemDataKey","clickSelector","pointerDownSelector","pointerDownEvent","$itemContainer","_itemPointerDownHandler","isDefaultPrevented","_updateSelectionToFirstItem","_updateSelectionToLastItem","_this12","_updateFocusState","_setFocusedItemTimeout","_setFocusedItem","_findNonDisabledNodes","$nodes","_nodeElements","$prevItem","prevItemElement","_getNodeItemElement","$nextItem","nextItemElement","$firstItem","$lastItem","_expandFocusedContainer","_collapseFocusedContainer","$focusedNode","_getClosestNonDisabledNode","nodeElement","collapsedNode","encodeURI","decodeURI","_this13","resolveWith","unselectItem","expandItem","collapseItem","getNodes","getTreeNodes","getSelectedNodes","_this14","getSelectedNodesKeys","selectAll","unselectAll","dataAdapter","getExpandedNodesKeys","scrollToItem","keyOrItemOrElement","_this15","nodeKeysToExpand","scrollCallback","_expandNodes","scrollToElementTopLeft","keysToExpand","_this16","resultCallback","callbacksByNodes","_uiList","TOOLBAR_MENU_ACTION_CLASS","TOOLBAR_HIDDEN_BUTTON_CLASS","TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS","TOOLBAR_MENU_SECTION_CLASS","TOOLBAR_MENU_LAST_SECTION_CLASS","ToolbarMenu","ListBase","_renderSections","_getSections","_itemElements","sectionName","$section","_updateSections","$sections","itemContainer","$after","_getItemTemplateName","isAction","menuTemplate","menuItemTemplate","accessibility","executeKeyDown","_icon","_uiCollection_widget","_bindable_template","HierarchicalCollectionWidget","real","deviceType","isSimulator","_initDynamicTemplates","_createDataAdapterAccessors","dataAccessors","getters","setters","_templateManager","addDefaultTemplates","BindableTemplate","_getIconContainer","_getTextContainer","_getPopoutContainer","_addContentClasses","_itemsGetter","getImageContainer","accessor","_compileAccessor","_compileDisplayGetter","arr","setter","optionExpr","compileSetter","getterName","setterName","newAccessor","_renderItemFrame","Permission","allConfiguration","readConfiguration","updateConfiguration","allTemplates","readTemplates","allUsers","readUsers","updateUsers","allCollaborativeArea","readCollaborativeArea","updateCollaborativeArea","allAlgorithms","readAlgorithms","updateAlgorithms","_drag","_swatch_container","COLUMNS_SEPARATOR_CLASS","COLUMNS_SEPARATOR_TRANSPARENT","DRAGGING_HEADER_CLASS","HEADERS_DRAG_ACTION_CLASS","TRACKER_CLASS","HEADERS_DROP_HIGHLIGHT_CLASS","BLOCK_SEPARATOR_CLASS","DRAGGING_COMMAND_CELL_CLASS","COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH","DRAGGING_DELTA","COLUMN_OPACITY","allowResizing","TrackerView","_unsubscribeFromCallback","_positionChanged","_tablePositionController","_subscribeToCallback","SeparatorView","_renderSeparator","_isShown","ColumnsSeparatorView","_isTransparent","columnsSeparatorTransparent","moveByX","outerX","changeCursor","cursorName","BlockSeparatorView","groupPanelOptions","columnChooserOptions","targetLocation","startAnimate","toOptions","DraggingHeaderView","_isDragging","isDragging","_getDraggingPanelByPos","_dragOptions","boundingRect","_resetTargetColumnOptions","_dropOptions","targetColumnIndex","targetColumnElement","isLast","posX","posY","_getVisibleIndexObject","getCommonSettings","_controller","_columnsResizerViewController","dragHeader","isCommandColumn","sourceColumn","sourceIndex","sourceColumnIndex","sourceColumnElement","_onSelectStart","onselectstart","drag","whiteSpace","getSwatchContainer","moveHeader","eventData","dragOptions","moveDeltaX","abs","deltaX","moveDeltaY","deltaY","newLeft","newTop","dockHeader","targetDraggingPanel","controller","isVerticalOrientation","axisName","pointsByTarget","pointsByColumns","_generatePointsByColumns","startColumnIndex","centerPosition","dock","dropHeader","drop","isNextColumnResizingMode","ColumnsResizerViewController","_isHeadersRowArea","_columnHeadersView","headersRowHeight","_isRtlParentStyle","_this$_$parentContain","_$parentContainer","_pointCreated","point","isNextColumnMode","isRtlParentStyle","firstPointColumnIndex","nextColumn","_getTargetPoint","currentX","_moveSeparator","columnsSeparatorWidth","_columnsSeparatorView","parentOffset","parentOffsetLeft","_isResizing","_resizingInfo","_updateColumnsWidthIfNeeded","currentColumnIndex","_targetPoint","_previousParentOffset","_isReadyResizing","_endResizing","_trackerView","_getNextColumnIndex","_setupResizingInfo","nextColumnIndex","currentHeader","nextHeader","startPosX","currentColumnWidth","nextColumnWidth","_startResizing","isTouchEvent","_container","getPointsByColumns","_pointsByColumns","_unsubscribeFromEvents","_moveSeparatorHandler","move","_startResizingHandler","_endResizingHandler","up","_subscribeToEvents","nextCellWidth","cellWidth","needUpdate","resizingInfo","adaptColumnWidthByRatio","isPercentWidth","setColumnWidth","columnWidth","oldColumnWidth","correctContentWidth","allColumnsHaveWidth","totalPercent","hasScroll","totalWidth","lastColumnIndex","getLastResizableColumnIndex","_subscribesToCallbacks","_unsubscribeFromCallbacks","subscribe","_unsubscribes","generatePointsByColumnsHandler","generatePointsByColumnsScrollHandler","previousScrollbarVisibility","previousTableHeight","scrollbarVisibility","TablePositionViewController","diffOffsetTop","columnsHeadersHeight","scrollBarWidth","columnsResizerController","draggingHeaderView","isDraggingOrResizing","_pagerView","targetPoint","DraggingHeaderViewController","targetColumn","draggingHeader","nameDraggingPanel","subscribeToEvents","_getSeparator","_blockSeparatorView","hideSeparators","blockSeparator","columnsSeparator","_animationColumnIndex","_draggingHeaderView","_headerPanelView","_columnChooserView","allowDrop","allowMoveColumn","headersView","separator","hasTargetVisibleIndex","showSeparator","moveColumn","columnsSeparatorView","blockSeparatorView","trackerView","tablePosition","columnsResizer","_uiData_gridGrouping","loadTotalCount","correctSkipLoadOption","skipCorrection","resultSkip","processGroupItems","skipFirstItem","removeLastItemsCount","needRemoveFirstItem","collapsedItems","offsetInfo","pathEquals","path1","path2","keysEqual","updateGroupOffsets","additionalGroupInfo","removeGroupLoadOption","arrangeSortingInfo","createNotGroupFilter","getGroupCount","collapsedGroups","collapsedItemsCount","appendCollapsedPath","collapsedGroup","keyValue","pathValue","toComparable","groupedData","itemsCountCorrection","groupCountQuery","dataSourceItems","groupOffsetQuery","OPERATION_ICONS","notcontains","startswith","endswith","isblank","isnotblank","OPERATION_NAME","getIconByFilterOperation","getNameByFilterOperation","button_1","_uiCollection_widgetEditStrategy","MenuBaseEditStrategy","_PlainEditStrategy","_getPlainItems","_collectionWidget","getMenuItems","_stringifyItem","_getTemplateString","_version","mainPageTemplate","infoTemplate","imageStartTemplate","imageEndTemplate","trailerTemplate","xrefTemplate","pad","str","composePdfString","imageString","curDate","margin","widthPt","heightPt","mainPage","xref","getXref","mainContent","trailer","mainPageLength","contentLength","infoLength","getCurDate","getBlob","binaryData","dataArray","charCodeAt","buffer","getBase64","getImageData","pdfData","subscribeVisibilityChange","unsubscribeVisibilityChange","hiddenFocus","selectView","setTabIndex","FOCUS_STATE_CLASS","FOCUS_DISABLED_CLASS","GRID_ROW_SELECTOR","GRID_CELL_SELECTOR","TREELIST_ROW_SELECTOR","TREELIST_CELL_SELECTOR","viewItemSelectorMap","groupPanel","columnHeaders","filterRow","footer","filterPanel","isMouseDown","isHiddenFocusing","focusedElementInfo","processKeyDown","$mainElement","isHandled","fireKeyDownEvent","saveFocusedElementInfo","ariaLabel","$activeElements","getActiveAccessibleElements","targetIndex","viewInstance","viewElement","$viewElement","findFocusedViewElement","viewSelectors","$focusViewElement","onDocumentVisibilityChange","visibilityState","keyDownHandler","mouseDownHandler","focusinHandler","needShowOverlay","viewNames","viewItemIndex","_viewName","ERROR_ROW_CLASS","ERROR_MESSAGE_CLASS","ERROR_CLOSEBUTTON_CLASS","ACTION_CLASS","ErrorHandlingController","_createErrorRow","$errorRow","$closeButton","$errorMessage","_renderErrorMessage","errorRowIndex","removeErrorRow","colSpan","$message","renderErrorRow","$popupContent","$errorMessageElement","$firstErrorRow","next","resizingController","$columnHeaders","$rowsViewElement","errorRowEnabled","errorHandling","errorHandlingController","dataErrorOccurred","hasChanges","StateStoringController","_storage","DATE_REGEX","parseDates","exec","getStorage","storage","sessionStorage","localStorage","protocol","getUniqueStorageKey","storageKey","_loadState","customLoad","parse","getItem","_saveState","setItem","customSave","isEnabled","_state","_isLoaded","_isLoading","_windowUnloadHandler","_savingTimeoutID","save","_button","abstract","TOOLBAR_MENU_CONTAINER_CLASS","TOOLBAR_MENU_BUTTON_CLASS","ToolbarStrategy","_renderMenuButton","_renderWidget","itemClickAction","_getTemplateByOption","$menu","renderMenuItems","optionGetter","overflowGetter","itemVisible","functionsAsIs","itemOverflow","_getMenuItems","_updateMenuVisibility","buttonOptions","_renderMenuButtonContainer","_$menuButtonContainer","_menuButtonClickHandler","$afterSection","_$afterSection","_buttonClass","toggleMenuVisibility","getMenuWidget","widgetOption","handleToolbarVisibilityChange","_dialog","_form","_hold","iconUtils","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","n","test","iter","arr2","EDIT_FORM_CLASS","EDIT_FORM_ITEM_CLASS","READONLY_CLASS","EDIT_POPUP_CLASS","FORM_BUTTONS_CONTAINER_CLASS","ADD_ROW_BUTTON_CLASS","DROPDOWN_EDITOR_OVERLAY_CLASS","LINK_CLASS","EDITOR_CELL_CLASS","ROW_SELECTED","EDIT_ROW","EDIT_BUTTON_CLASS","COMMAND_EDIT_CLASS","COMMAND_EDIT_WITH_ICONS_CLASS","SCROLLABLE_CONTAINER_CLASS","BUTTON_CLASS","INSERT_INDEX","ROW_REMOVED","ROW_INSERTED","ROW_MODIFIED","CELL_MODIFIED","EDITING_NAMESPACE","EDITORS_INPUT_SELECTOR","FOCUSABLE_ELEMENT_SELECTOR","EDIT_MODE_BATCH","EDIT_MODE_ROW","EDIT_MODE_CELL","EDIT_MODE_FORM","EDIT_MODE_POPUP","DATA_EDIT_DATA_INSERT_TYPE","DATA_EDIT_DATA_UPDATE_TYPE","DATA_EDIT_DATA_REMOVE_TYPE","DEFAULT_START_EDIT_ACTION","EDIT_MODES","ROW_BASED_MODES","CELL_BASED_MODES","FORM_BASED_MODES","MODES_WITH_DELAYED_FOCUS","TARGET_COMPONENT_NAME","EDIT_LINK_CLASS","edit","undelete","EDIT_ICON_CLASS","METHOD_NAMES","ACTION_OPTION_NAMES","BUTTON_NAMES","EDITING_POPUP_OPTION_NAME","EDITING_CHANGES_OPTION_NAME","EDITING_EDITROWKEY_OPTION_NAME","EDITING_EDITCOLUMNNAME_OPTION_NAME","createFailureHandler","_getEditMode","editMode","_isRowEditMode","isEditingCell","allowEditing","isEditingOrShowEditorAlwaysDataCell","isCommandCell","isEditorCell","EditingController","getDefaultEditorTemplate","isOnForm","getEditingTexts","editingTexts","saveRowChanges","cancelRowChanges","editRow","undeleteRow","deleteRow","addRowToNode","getButtonIndex","getButtonName","getEditorType","isCustomEditorType","editorType","formItem","forEachFormItems","callBack","tabs","$pointerDownTarget","_editForm","_updateEditFormDeferred","_lastOperation","_deferreds","_saveEditorHandler","_pointerUpEditorHandler","_that$getController","_pointerDownEditorHandler","targetComponent","_editCellInProgress","isEditorPopup","checkEditorPopup","isDomElement","isAnotherComponent","_disposed","isAddRowButton","isCellEditMode","_closeEditItem","_updateEditColumn","_updateEditButtons","_internalState","getChanges","resetChanges","needReset","_getInternalData","_addInternalData","internalData","_getOldData","_this$_getInternalDat","oldData","editIndex","createObjectWithChanges","_fireDataErrorOccurred","getPopupContent","_needToCloseEditableCell","isCurrentComponentElement","$targetCell","isEditCell","closeEditCell","editForm","_repaintEditPopup","_isDefaultButtonVisible","isRowMode","isBatchMode","_getVisibleEditRowIndex","allowUpdating","allowDeleting","removed","_isButtonVisible","_getButtonConfig","buttonName","editingOptions","allowAction","_getEditingButtons","buttonIndex","haveCustomButtons","_renderEditingButtons","_getEditCommandCellTemplate","isRowEditMode","isFormEditMode","isCellOrBatchEditMode","getEditMode","getFirstEditableColumnIndex","firstFormItem","_firstFormItem","editRowKey","editRowIndex","$editFormElements","_getEditFormEditorVisibleIndex","getFirstEditableCellInRow","getFocusedCellInRow","_inputFocusTimeoutID","editPopup","_editPopup","popupOptionName","_handleEditRowKeyChange","_handleEditColumnNameChange","_handleChangesChange","_resetEditColumnName","_resetEditRowKey","oldRowIndexCorrection","_getEditRowIndexCorrection","oldRowIndex","_getVisibleEditColumnIndex","_editCellFromOptionChanged","_editRowFromOptionChanged","oldColumnIndex","_repaintEditCell","isPageChanged","needResetIndexes","isEditRowKeyDefined","isEditColumnNameDefined","_setEditRowKey","silent","_setEditRowKeyByIndex","getEditRowIndex","getEditFormRowIndex","popupVisible","_$popupContent","getEditForm","_needInsertItem","dataRowIndex","_generateNewItem","_getLoadedRowIndexByInsertKey","loadedRowIndexOffset","processItems","processDataItem","_changes$editIndex","modified","modifiedValues","_initNewRow","_getInsertKey","insertKey","_getInsertRowIndex","_getInsertIndex","parentRowIndex","maxInsertIndex","editItem","addRow","param","oldEditRowIndex","saveEditData","_allowRowAdding","__KEY__","_addRowCore","insertIndex","initialOldEditRowIndex","_showEditPopup","_focusFirstEditableCellInRow","_afterInsertRow","$firstCell","_delayedInputFocus","eventToTrigger","_isEditingStart","_beforeEditCell","_beforeUpdateItems","editColumnName","_setEditColumnNameByIndex","_visibleColumns$index","_setEditColumnName","_getEditColumn","_getColumnByName","editColumn","isColumnHidden","_resetEditIndices","_needFocusEditor","_focusEditorIfNeed","$editingCell","_this$_rowsView","editColumnIndex","_focusEditingCell","repaintForm","isMobileDevice","popupOptions","_getSaveButtonConfig","_getCancelButtonConfig","_getPopupEditFormTemplate","$popupContainer","_getEditPopupHiddenHandler","defaultAnimation","formTemplate","getEditFormTemplate","_removeInternalData","executeOperation","func","waitForDeferredOperations","editCell","_editCell","coreResult","_editCellCore","_getNormalizedEditCellOptions","oldColumn","isEditByOptionChanged","_this$_getNormalizedE","_prepareEditCell","_processCanceledEditingCell","beforeFocusCallback","callBeforeFocusCallbackAlways","inputFocus","$focusableElement","focusAndSelectElement","_beforeFocusCallback","ios","android","$editCell","_checkAndDeleteRow","confirmDelete","confirmDeleteMessage","confirmDeleteTitle","showDialogTitle","confirm","confirmResult","_fireOnSaving","onSavingParams","_executeEditingAction","_processChanges","deferreds","results","dataChanges","changeCopy","_beforeSaveEditData","insert","newData","doneDeferred","_processSaveEditDataResult","hasSavedData","changesLength","isError","_fireSaveEditDataEvents","_resolveAfterSave","_saving","_saveEditDataInner","_afterSaveEditData","_this17","_ref4","beginLoading","_endSaving","endLoading","_cancelSaving","_resetModifiedClassCells","_this18","columnsCount","_ref5","_changes$","_refreshDataAfterSave","_cancelEditDataCore","_this19","refreshMode","isFullRefresh","selection","isEditColumnVisible","_isEditColumnVisible","useIcons","isVisibleWithCurrentEditMode","allowAdding","setToolbarItemDisabled","_applyModified","_beforeCloseEditCellInBatchMode","_beforeCancelEditData","_hideEditPopup","hasEditData","withoutSaveEditData","_this20","_closeEditCellCore","_this21","_getRowIndicesForCascadeUpdating","skipCurrentRow","addDeferred","_this22","_prepareChange","_options$row","setCellValueResult","setCellValue","displayValueMap","_updateRowValues","updateFieldValue","forceUpdateRow","_this23","_focusPreviousEditingCellIfNeed","_updateEditRow","_needUpdateRow","isCustomSetCellValue","defaultSetCellValue","isCustomCalculateCellValue","visibleColumn","defaultCalculateCellValue","isUpdateInCellMode","focusPreviousEditingCell","_updateEditRowCore","focusedElement","selectionRange","getSelectionRange","selectionStart","setSelectionRange","_getFormEditItemTemplate","editCellTemplate","renderFormEditTemplate","detailCellOptions","form","isReadOnly","getItemID","getFormEditorTemplate","_validator","$editorElement","validator","validatorOptions","contents","dxValidator","dataGetter","getEditFormOptions","detailOptions","userCustomizeItem","editFormItemClass","itemId","formID","customizeItem","isRequired","rule","renderFormOnly","editFormOptions","baseEditFormOptions","$buttonsContainer","getColumnTemplate","editingStartOptions","isRowEditing","isCellEditing","iconType","getImageSourceType","localizationName","getButtonLocalizationNames","prepareEditButtons","titleButtonTextByClassNames","revert","cancelAllChanges","saveAllChanges","classNameButtonByNames","buttonItems","prepareButtonItem","_getToolbarButtonClass","hintText","isButtonDisabled","showText","locateInMenu","highlightDataCell","cellModified","isCellModified","_allowEditAction","allowEditAction","startEditAction","needCallback","selectTextOnEditStart","colCount","_editingController","_applyChangeUpdate","_applyChangesOnly","_processItem","_getChangedColumnIndices","oldItem","_isCellChanged","oldRow","newRow","editFormRowIndex","isRowRemoved","isRowInserted","isRowModified","_getColumnIndexByElement","_getColumnIndexByElementCore","_editCellByClick","_this24","_pointerDownTimeout","isEditForm","isEditableCell","_editCellPrepared","_formItemPrepared","_isFormItem","isDetailRow","isPopupEditing","cellValue","_getToolbarItems","editButtonItems","excludedOptions","shouldInvalidate","DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS","Submenu","_ContextMenu","orientation","onHoverStart","_renderDelimiter","$contentDelimiter","onPositioned","_overlayPositionedActionHandler","_showDelimiter","_toggleFocusClass","_isMenuHorizontal","_hoverStartHandler","hoverStartAction","submenu","containerOffset","vLocation","hLocation","rootOffset","offsetLeft","rootWidth","rootHeight","submenuWidth","submenuHeight","isOverlayVisible","getOverlayContent","validation_summary_1","BORDERS_CLASS","IMPORTANT_MARGIN_CLASS","TEXT_CONTENT_CLASS","HIDDEN_CLASS","GRIDBASE_CONTAINER_CLASS","isPixelWidth","mergeArraysByMaxValue","values1","values2","getContainerHeight","paddingTop","paddingBottom","calculateFreeWidth","_getTotalWidth","calculateFreeWidthWithCurrentMinWidth","currentMinWidth","ResizingController","_initPostRenderHandlers","_refreshSizesHandler","resizeDeferred","needUpdateDimensions","_setAriaRowColCount","columnCount","_getBestFitWidths","_this$_footerView","_widths","_rowsView$getTableEle","headersTableElement","rowsColumnWidths","headerColumnWidths","footerColumnWidths","_footerView","resultWidths","_setVisibleWidths","columnId","getColumnId","_toggleBestFitModeForView","$rowsTables","$viewTables","$tableBody","$viewTable","$rowsFixedTable","_needStretch","_synchronizeColumns","resetBestFitMode","needBestFit","_needBestFit","hasMinWidth","isColumnWidthsCorrected","normalizeWidthsByExpandColumns","expandColumnWidth","isFocusOutsideWindow","_correctColumnWidths","_processStretch","_getAverageColumnsWidth","freeWidth","columnCountWithoutWidth","hasPercentWidth","hasAutoWidth","hasWidth","_hasWidth","_loop","isHiddenColumn","averageColumnsWidth","realColumnWidth","_getRealColumnWidth","_maxWidth","resultSizes","groupSize","tableSize","unusedIndexes","diff","diffElement","onePixelElementsCount","groupWidth","ratio","percentTotalWidth","pixelTotalWidth","freeSpace","percentTotalWidthInPixel","updateSize","$groupElement","importantMarginClass","detach","checkSize","_checkSize","prevResult","_resizeDeferred","_resetGroupElementHeight","_updateDimensionsCore","groupElement","_lastHeight","_setScrollerSpacingCore","vScrollbarWidth","hScrollbarWidth","_setScrollerSpacing","$testDiv","rootElementHeight","maxHeightHappened","isMaxHeightApplied","scrollHeight","_updateLastSizes","SynchronizeScrollingController","_scrollChangedHandler","GridView","_resizingController","_getWidgetAriaLabel","_groupElement","_renderViews","_getTableRoleName","isFirstRender","_rootElement","synchronizeScrolling","gridView","_selectors","_short","DROP_DOWN_BOX_CLASS","ANONYMOUS_TEMPLATE_NAME","realDevice","DropDownBox","tab","$tabbableElements","_getTabbableElements","_getElements","tabbable","useHiddenSubmitElement","_getAnonymousTemplateName","_initTemplates","_initDataExpressions","_setSubmitValue","submitValue","_shouldUseDisplayValue","_getSubmitElement","_renderInputValue","currentValue","_getCurrentValue","ensureDefined","itemLoadDeferreds","_loadItem","_isValueEquals","_valueGetter","_loadValue","_popupElementTabHandler","$firstTabbable","$lastTabbable","moveBackward","moveForward","close","_input","_renderPopup","keyboard","_renderPopupContent","templateData","_fieldRenderData","_canShowVirtualKeyboard","mac","_isNestedElementActive","_shouldCloseOnTargetScroll","_popupHiddenHandler","_popupPosition","_popupPositionedHandler","_getDefaultPopupPosition","isRtlEnabled","_this$callBase","_popupConfig","_this$option","onKeyboardHandled","opts","_this$_popupPosition","popupLocation","_popupShownHandler","$firstElement","_setCollectionWidgetOption","_dataExpressionOptionChanged","_renderValue","_filter_builder","_getEmptyCell","_defaultSetter","_cloneItem","_prepareItems","resultItems","cols","r","_hover","DX_MENU_VERTICAL_CLASS","DX_MENU_HORIZONTAL_CLASS","DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS","DX_STATE_ACTIVE_CLASS","DX_ADAPTIVE_MODE_CLASS","DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS","DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS","SHOW_SUBMENU_OPERATION","NEXTITEM_OPERATION","PREVITEM_OPERATION","DEFAULT_DELAY","Menu","showFirstSubmenuMode","hideSubmenuOnMouseLeave","onSubmenuShowing","onSubmenuShown","onSubmenuHiding","onSubmenuHidden","adaptivityEnabled","rootMenuElements","submenuElements","_submenuItemElements","currentSubmenu","_submenus","argument","navigationAction","isMenuHorizontal","_getItemsNavigationOperation","_getKeyboardNavigationAction","navOperation","_resizeEventTimer","_menuItemsWidth","_updateItemsWidthCache","_dimensionChanged","_isAdaptivityEnabled","$menuItems","_getSummaryItemsWidth","containerWidth","_toggleAdaptiveMode","_visibleSubmenu","_initAdaptivity","_renderHamburgerButton","_hamburger","_toggleTreeView","_toggleHamburgerActiveState","$menuItemsContainer","$adaptiveElements","_hideVisibleSubmenu","_treeView","_removeAdaptivity","_$adaptiveContainer","_treeviewItemClickHandler","_getAdaptiveOverlayOptions","rtl","_getTreeViewOptions","menuOptions","optionsToTransfer","actionsToTransfer","$hamburger","_wrapper","_getDelay","delayType","_keyboardHandler","_createSubmenu","_renderBorderElement","_getKeyboardListeners","$submenuContainer","_getSubmenuOptions","_parentKey","_clearTimeouts","getSubmenuPosition","_attachSubmenuHandlers","$submenuTarget","showSubmenuMode","onFocusedItemChanged","_nestedItemOnSelectionChangedHandler","_nestedItemOnItemClickHandler","_nestedItemOnItemRenderedHandler","_moveMainMenuFocus","_getShowFirstSubmenuMode","_isDesktopDevice","$currentItem","$newItem","addedItems","_clearSelectionInSubmenus","_clearRootSelection","targetSubmenu","cleanAllSubmenus","isOtherItem","$selectedItem","_selectedItemClass","selectedItemData","_clearSelectedItems","$prevSelectedItem","prevSelectedItemData","$submenuOverlayContent","submenus","submenuMouseLeaveName","_submenuOnShowingHandler","_submenuOnShownHandler","_submenuOnHidingHandler","_submenuOnHiddenHandler","_submenuMouseLeaveHandler","$border","relatedTarget","_getSubmenuByRootElement","_hideSubmenuAfterTimeout","isRootItemHovered","isSubmenuItemHovered","hoveredElementFromSubMenu","isHorizontalMenu","$closestItem","mouseMoveEventName","_getItemElementByEventArgs","isSelectionActive","_isItemDisabled","_getSubmenuByElement","_itemMouseMoveHandler","_showSubmenuTimer","eventArg","_hideSubmenuTimer","_hoveredRootItem","pointers","_changeSubmenusOption","DxFormat","number_box_1","invalidValueMessage","showSpinButtons","useLargeSpinButtons","parser","SEARCH_PANEL_CLASS","SEARCH_TEXT_CLASS","HEADER_PANEL_CLASS","FILTERING_TIMEOUT","allowFiltering","parseValue","searchPanel","highlightSearchText","highlightCaseSensitive","searchVisibleColumnsOnly","calculateSearchFilter","onQueryDone","valueGetter","_i","searchFilter","searchByText","_applyFilter","getSearchPanelOptions","_prepareSearchItem","searchPanelOptions","$search","updateValueTimeout","getSearchTextEditor","$searchPanel","dxTextBox","editor","_searchParams","_getFormattedSearchText","searchText","_getStringNormalizer","isCaseSensitive","_findHighlightingTextNodes","_$items","stringNormalizer","normalizedSearchText","$contents","_highlightSearchTextCore","$textNode","$searchTextSpan","firstContentElement","substr","after","createTextNode","_highlightSearchText","isEquals","textNodes","textNode","_highlightTimer","cellAlignmentHelper","_uiToolbar2","_drop_down_menu","MENU_INVISIBLE_CLASS","DropDownMenuStrategy","menuWidget","popupPosition","isMenuVisible","_toggleMenuVisibility","_config","_object","_inflector","_date_serialization","_abstract_store","_data_source","USER_STATE_FIELD_NAMES_15_1","USER_STATE_FIELD_NAMES","IGNORE_COLUMN_OPTION_NAMES","bestFitWidth","bufferedFilterValue","COMMAND_EXPAND_CLASS","GROUP_COMMAND_COLUMN_NAME","regExp","globalColumnId","trueText","falseText","allowColumnReordering","allowColumnResizing","columnResizingMode","columnMinWidth","regenerateColumnsByVisibleItems","customizeColumns","dateSerializationFormat","DEFAULT_COLUMN_OPTIONS","showInColumnChooser","DATATYPE_OPERATIONS","datetime","COLUMN_INDEX_OPTIONS","GROUP_LOCATION","COLUMN_CHOOSER_LOCATION","setFilterOperationsAsDefaultValues","filterOperations","defaultFilterOperations","createColumn","columnOptions","userStateColumnOptions","bandColumn","commonColumnOptions","setName","deepExtendArraySafe","calculatedColumnOptions","_createCalculatedColumnOptions","createColumnsFromOptions","columnsOptions","_columnsUserState","checkUserStateColumn","hasColumns","getParentBandColumns","columnParentByIndex","_getChildrenByBandColumn","columnChildrenByIndex","recursive","getColumnByIndexes","columnIndexes","bandColumnsCache","getBandColumnsCache","callbackFilter","isPlain","_columns","getColumnFullPath","calculateColspan","processBandColumns","getValueDataType","getSerializationFormat","getDateSerializationFormat","updateSerializers","deserializeDate","serializeValue","serializeDate","serializationFormat","parsedValue","getAlignmentByDataType","isRTL","customizeTextForBooleanDataType","valueText","getCustomizeTextByDataType","createColumnsFromDataSource","fieldName","firstItems","_getFirstItems","processedFields","updateColumnIndexes","_commandColumns","updateColumnGroupIndexes","normalizeIndexes","updateColumnSortIndexes","isSortOrderValid","updateColumnVisibleIndexes","bandColumns","parentBandColumns","getColumnIndexByVisibleIndex","getChooserColumns","moveColumnToGroup","userStateColumn","applyUserState","userStateColumnIndex","columnsUserState","ignoreColumnOptionNames","_ignoreColumnOptionNames","columnCountById","resultColumns","allColumnsHaveState","userStateColumnIndexes","applyFieldsState","defaultSelectedFilterOperation","findUserStateColumn","_hasUserState","initialIndex","hasAddedBands","columnUserState","added","assignColumns","updateIndexes","resetBandColumnsCache","updateColumnDataTypes","updateColumnChanges","columnChanges","_columnChanges","fireColumnsChanged","onColumnsChanging","reinitOptionNames","needReinit","isInitialized","reinit","updateSortOrderWhenGrouping","prevGroupIndex","columnWasGrouped","lastSortOrder","sortMode","sortedByAnotherColumn","fireOptionChanged","prevValue","fullOptionName","fullOptionPath","_skipProcessingColumnsChange","_notifyOptionChanged","columnOptionCore","notFireEvent","initialColumn","optionSetter","_checkColumns","getColumnByPath","addExpandColumn","_getExpandColumnOptions","dotCount","getDataColumns","bandColumnID","_getRowCount","invisibleParents","isCustomCommandColumn","commandColumn","getFixedPosition","processExpandColumns","customColumnIndex","expandColumnsByType","digitsCount","numberToString","mergeColumns","commandColumns","needToExtend","commandColumnIndex","isColumnFixing","defaultCommandColumns","getCommandColumnIndex","columnType","allowFixing","isColumnFixed","convertOwnerBandToColumnReference","_bandColumnsCache","findColumn","identifierOptionName","getFirstItemsCore","childItems","_isColumnsFromOptions","_dataSourceApplied","applyDataSource","needUpdateRequireResize","_updateRequireResize","_args$fullName","_args$fullName2","_args$fullName3","_args$fullName4","_args$fullName5","isEditingPopup","isEditingForm","isEditRowKey","isEditColumnName","isChanges","columnOptionValue","columnOptionName","forceApplying","isDataSourceLoaded","_dataSourceColumnsCount","columnsFromDataSource","updateColumns","isAllDataTypesDefined","_visibleColumns","_fixedColumns","_rowCount","getUserState","isDataSourceApplied","groupingOptions","autoExpandGroup","allowColumnDragging","contextMenuEnabled","checkSerializers","isBandColumnsUsed","_getVisibleColumnsCore","_getFixedColumnsCore","getFilteringColumns","notFixedColumnCount","lastFixedPosition","transparentColumn","transparentColspan","newColumn","getExpandColumns","firstGroupColumn","isFixedFirstGroupColumn","_isColumnVisible","isParentColumnVisible","isFixedToEnd","rowspanGroupColumns","rowspanExpandColumns","positiveIndexedColumns","negativeIndexedColumns","notGroupedColumnsCount","columnDigitsCount","indexedColumns","orderEach","firstPositiveIndexColumn","columnsByFixing","columnsByVisibleIndex","getInvisibleColumns","hiddenColumnsByBand","getAllColumns","fromVisibleIndex","toVisibleIndex","targetGroupIndex","toIndex","needResetSorting","nextSortOrder","useLocalSelector","sortColumns","sortItem","calculateSortValue","sortingMethod","compare","calculateGroupValue","updateNewLookupsOnly","valueMap","_updateColumnOptions","calculateCallbackName","calculateCallback","originalCallback","customizeText","defaultFilterOperation","isColumnDataTypesUpdated","lookupDataType","valueDataType","_customizeColumns","hasOwnerBand","updateSortingGrouping","sortParameters","groupParameters","filterParameters","_updateChanges","fromDataSource","isColumnsChanged","updateSortGroupParameterIndexes","indexParameterName","columnsGroupParameters","columnsSortParameters","updateFilter","forceIsoDateParsing","clearSorting","clearGrouping","getVisibleIndexByColumn","addColumn","deleteColumn","childIndexes","handleStateField","setUserState","isFilterPanelHidden","usedNames","hasEditableColumnWithoutName","duplicatedNames","_column$columns","isEditable","captionize","skipDeserialization","userDataType","updateValueMap","calculateValue","dataSourceOptions","DataSource","defaultOptionName","charAt","toUpperCase","alwaysGetRowIndex","onlyVisibleDirectChildren","column1","column2","_uiEventsEmitterGesture","_size","_text_box","TEXTAREA_CLASS","TEXTEDITOR_INPUT_CLASS","TEXTEDITOR_INPUT_CLASS_AUTO_RESIZE","TextArea","autoResizeEnabled","_updateInputHeight","_renderInput","_renderScrollHandler","_createInput","$input","_applyInputAttributes","_updateInputAutoResizeAppearance","customAttributes","_eventY","initScrollData","_pointerDownHandler","_pointerMoveHandler","currentEventY","isScrollingEvent","_getOptionValue","_resetDimensions","_renderEvents","_refreshEvents","_getHeightDifference","getVerticalOffsets","_$textEditorContainer","_$textEditorInputContainer","getElementBoxParams","getComputedStyle","autoHeightResizing","heightDifference","_getBoundaryHeight","inputHeight","adjustedMaxHeight","needScroll","boundaryValue","parseHeight","_renderInputType","isAutoResizeEnabled","_uiMenu_baseEdit","_item","DX_MENU_NO_ICONS_CLASS","DX_MENU_BASE_CLASS","DX_ITEM_CONTENT_CLASS","DX_MENU_SELECTED_ITEM_CLASS","DX_MENU_SEPARATOR_CLASS","DX_MENU_ITEM_LAST_GROUP_ITEM","DX_ITEM_HAS_TEXT","DX_ITEM_HAS_ICON","DX_ITEM_HAS_SUBMENU","DX_MENU_ITEM_POPOUT_CLASS","DX_MENU_ITEM_POPOUT_CONTAINER_CLASS","DX_MENU_ITEM_CAPTION_CLASS","SINGLE_SELECTION_MODE","MenuBase","_HierarchicalCollecti","focusOnSelectedItem","_itemAttributes","useInkRipple","pageUp","pageDown","_renderSelectedItem","itemText","itemContent","$popOutContainer","$popOutImage","_selectByItem","nodeToSelect","selectedKey","selectable","_renderInkRipple","_inkRipple","_toggleActiveState","showWave","hideWave","defaultValue","_initEditStrategy","Strategy","_editStrategy","_itemWrapperSelector","_showSubmenusTimeout","_getSubmenuDelay","$itemElements","_addExpandedClass","hasIcons","firstVisibleIndex","nextGroupFirstIndex","isVisibleNode","isBeginGroup","beginGroup","_refreshItem","_itemIndexKey","hasText","hasIcon","hasSubmenu","_getItemContent","$itemContent","_postprocessRenderItem","selectedIndex","_selectedGetter","_isItemSelectable","_skipHandling","itemClickActionHandler","_isItemSelectionAllowed","selectedItemKey","selectedNode","_toggleItemSelection","_fireSelectionChangeEvent","isSelectionByClickEnabled","_isContainerEmpty","_updateSelectedItems","_getElementByItem","oldSelection","newSelection","addedSelection","removedSelection","removedItems","ItemClass","_list","HEADER_FILTER_CLASS","HEADER_FILTER_MENU_CLASS","DEFAULT_SEARCH_EXPRESSION","resetChildrenItemSelection","updateSelectAllState","selectAllCheckBox","isSearchEnabled","filterValuesMatch","isExcludeFilter","getPopupContainer","_popupContainer","getListContainer","_listContainer","applyHeaderFilter","list","isSelectAll","fillSelectedItemKeys","hasChildren","hasChildrenWithSelection","_initializePopupContainer","popupContainer","updatePopup","headerFilterMenu","_cleanPopupContent","_getSearchExpr","useDefaultSearchExpr","dxPopupOptions","_initializeListContainer","widgetOptions","pageLoadMode","selectedItems","_selectedItemsUpdating","oldSelected","filterValueIndex","_isHeaderFilterEmpty","fillHelper","tryCreateFillFromSimpleFormat","foregroundColor","rgb","copySimpleFormat","CHECKBOX_SIZE_CLASS","EditorFactoryMixin","getResultConfig","checkEnterBug","getTextEditorConfig","isEnterBug","sharedData","needDelayedUpdate","isInputOrKeyUpEvent","updateValue","valueChangeTimeout","prepareDateBox","editorName","blur","displayFormat","prepareTextBox","isSearching","prepareNumberBox","prepareBooleanEditor","prepareSelectBox","prepareCheckBox","watchLookupDataSource","selectBox","displayGetter","allowClearing","showAllText","createEditorCore","editorElement","registerKeyHandler","dateBox","dxDateBox","defaultEnterKeyHandler","dxTextArea","showValidationMark","_validation_engine","INVALIDATE_CLASS","REVERT_TOOLTIP_CLASS","INVALID_MESSAGE_CLASS","WIDGET_INVALID_MESSAGE_CLASS","INVALID_MESSAGE_ALWAYS_CLASS","REVERT_BUTTON_CLASS","VALIDATOR_CLASS","PENDING_INDICATOR_CLASS","VALIDATION_PENDING_CLASS","PADDING_BETWEEN_TOOLTIPS","COMMAND_TRANSPARENT","VALIDATION_STATUS","valid","invalid","pending","EDIT_DATA_INSERT_TYPE","EDIT_DATA_REMOVE_TYPE","VALIDATION_CANCELLED","validationResultIsValid","cellValueShouldBeValidated","ValidatingController","_validationState","_rowIsValidated","validationData","_getValidationData","validated","_getBrokenRules","validationResults","brokenRules","brokenRule","_rowValidating","getChangeByKey","errorText","getHiddenValidatorsErrorText","brokenRulesMessages","isGroupExpandColumn","isVisibleColumn","isFull","completeList","_isValidationInProgress","validationResult","validateGroup","_currentCellValidator","_findGroup","_validationResult","getGroupConfig","validators","resetRowValidationResults","isRowDataModified","updateValidationState","setDisableApplyValidationResults","groupConfig","setValidator","renderCellPendingIndicator","$indicatorContainer","disposeCellPendingIndicator","validationStatusChanged","updateCellValidationResult","validatorInitialized","validatorDisposing","getCellValidationResult","status","cancelCellValidationResult","applyValidationResult","requestIsDisabled","disabledPendingId","_disableApplyValidationResults","getEditorInstance","createValidator","needCreateValidator","isCellOrBatchEditingAllowed","useDefaultValidator","flag","getDisableApplyValidationResults","isCurrentValidatorProcessing","validateCell","cellParams","stateRestored","_validationData$valid","removeCellValidationResult","_ref6","isInvalidCell","_ref7","getCellValidator","_ref8","setCellValidationStatus","validationCancelChanges","validating","validatingController","_updateRowAndPageIndices","startInsertIndex","_ref9","_ref10","isNotCanceled","getIndexByChange","isInsert","addInValidItem","isInserted","_createInvisibleColumnValidators","invisibleColumns","invisibleColumnValidators","isCellVisible","disposeValidators","isFullValid","_showErrorRow","validationState","resetRowAndPageIndices","currentValidator","isValidated","needValidation","isCellInvalid","getWidthOfVisibleCells","w1","w2","getBoundaryNonFixedColumnsInfo","firstNonFixedColumnIndex","lastNonFixedColumnIndex","endColumnIndex","_showRevertButton","$tooltipElement","$overlayContainer","tooltipOptions","$buttonElement","_positionedHandler","_hideFixedGroupCell","$nextFixedRowElement","$groupCellElement","nextRowOptions","visibility","__skipPositionProcessing","isRevertButton","needRepaint","normalizedPosition","_normalizeValidationMessagePositionAndMaxWidth","_showValidationMessage","messages","revertTooltip","editorPopup","myPosition","atPosition","errorMessageText","$overlayElement","_shiftValidationMessageIfNeed","visibleTableWidth","$overlayContentElement","validationMessageWidth","needMaxWidth","boundaryNonFixedColumnsInfo","$revertContent","contentOffset","revertContentOffset","_getTooltipsSelector","invalidMessageClass","revertTooltipClass","skipValidator","updateCellState","_change$data","showValidationMessage","errorMessages","$tooltips","getWidgetInstance","oldValidationStatus","newValidationStatus","rowIsModified","cellIsMarkedAsInvalid","$freeSpaceRowElements","$tooltipContent","isEditorDisposed","foreachColumnInfo","offsets","lastProcessedIndexes","processedColumnCount","newInfo","columnInfo","cellColspan","getDataState","filterEnabled","processLoadState","selectionController","exportController","updateState","selectionChanged","selectedRowKeys","selectionFilter","_initialPageSize","_initialFilterValue","selectionOnlyChanged","exportSelectionOnly","selectionOnly","DEFAULT_FILTER_VALUE","getFilterValue","filterSyncController","hasFilterState","getFilterValueFromColumns","stateStoring","savingTimeout","stateLoaded","isStateLoading","applyState","oldState","newState","oldStateHash","newStateHash","isVirtualScrollingMode","stateStoringController","_refreshDataSource","_restoreStateTimeoutID","isDeferredSelection","ColumnHeadersView","DataConverter","_dataStructure","_itemsCount","_visibleItemsCount","_indexByKey","_convertItemsToNodes","_getParentId","_convertItemToNode","_checkForDuplicateId","_itemHasChildren","_dataAccessors","_dataType","_getUniqueKey","keyGetter","itemKey","isCorrectKey","getItemsCount","_rootValue","_makeObjectFromPrimitive","setChildrenKeys","getParentNode","_convertToPublicNode","convertToPublicNodes","publicNodes","_getByKey","setDataAccessors","getByKey","currentElementKey","getVisibleItemsCount","updateIndexByKey","updateChildrenKeys","removeChildrenKeys","createPlainStructure","COLUMN_INDICATORS_CLASS","GROUP_PANEL_ITEM_CLASS","_that$component","isGroupPanelItem","_createIndicatorContainer","$span","indicatorAlignment","ignoreIndicatorAlignment","EXPANDED","SELECTED","DISABLED","DataAdapter","_defaultOptions","dataConverter","_selectedNodesKeys","_expandedNodesKeys","_createInternalDataStructure","_updateSelection","onNodeChanged","_initialDataStructure","_updateExpansion","_setChildrenSelection","_setParentSelection","_updateNodesKeysArray","_updateOneBranch","_setParentExpansion","array","_getDataBySelectionMode","_isNodeVisible","isSelected","_toggleChildrenSelection","_iterateParents","newParentState","_calculateSelectedState","_setFieldState","_iterateChildren","processedKeys","nodeKey","child","selectedItemsCount","invisibleItemsCount","isChildInvisible","childState","_markChildren","_removeNode","_addNode","_updateFields","selectRecursive","isSingleModeUnselect","_isSingleModeUnselect","selectionState","lastSelectedKey","_filterDataStructure","_createCriteria","getOperationBySearchMode","matches","lookForParents","queryByOptions","_uiToolbarStrategy","_uiToolbarStrategy2","_child_default_template","STRATEGIES","actionSheet","dropDownMenu","TOOLBAR_AUTO_HIDE_ITEM_CLASS","TOOLBAR_AUTO_HIDE_TEXT_CLASS","TOOLBAR_HIDDEN_ITEM","Toolbar","submenuType","menuContainer","dimension","_menuStrategy","actionSheetItem","ChildDefaultTemplate","_renderMenu","_postProcessRenderItems","_hideOverflowItems","_getItemsWidth","_$beforeSection","_$centerSection","elementWidth","overflowItems","itemsWidth","_isMenuItem","$hiddenItems","_restoreItems","$itemMarkup","merge","_renderMenuStrategy","strategyName","_requireDropDownStrategy","strategy","_arrangeItems","_isToolbarItem","_changeMenuOption","getLanguageId","_core","LANGUAGE_CODES","ar","bg","ca","cs","da","de","el","en","es","fi","fr","he","hu","it","ja","ko","nl","no","pl","pt","rm","ro","ru","hr","sk","sq","sv","th","tr","ur","uk","be","sl","et","lv","lt","tg","fa","vi","hy","az","eu","hsb","mk","tn","xh","zu","af","ka","fo","hi","mt","se","ga","ms","kk","ky","sw","tk","uz","tt","bn","pa","gu","ta","te","kn","ml","as","mr","sa","mn","bo","cy","km","lo","gl","kok","syr","si","iu","am","tzm","ne","fy","ps","fil","dv","ha","yo","quz","nso","ba","lb","kl","ig","ii","arn","moh","br","ug","mi","oc","co","gsw","sah","qut","rw","wo","prs","gd","smn","sms","zh","nn","bs","sma","nb","sr","dsb","smj","locale","_visibility_change","TOOLBAR_BUTTON_CLASS","TOOLBAR_ARIA_LABEL","HeaderPanel","_getButtonContainer","specificClass","secondClass","_getToolbarOptions","toolbarOptions","itemRenderedCallback","_toolbarOptions","$headerPanel","$toolbar","toolbarInstance","itemOptionPrefix","updateToolbarDimensions","triggerResizeEvent","getHeaderPanel","GROUP_FOOTER_CLASS","FREESPACE_ROW_CLASS","VIRTUAL_ROW_CLASS","COMMAND_SELECT_CLASS","COMMAND_CELL_SELECTOR","DATEBOX_WIDGET_NAME","FAST_EDITING_DELETE_KEY","INTERACTIVE_ELEMENTS_SELECTOR","FOCUS_TYPE_ROW","FOCUS_TYPE_CELL","COLUMN_HEADERS_VIEW","isNotFocusedRow","isCellElement","isElementDefined","isMobile","isCellInHeaderRow","isFixedColumnIndexOffsetRequired","shouldPreventScroll","KeyboardNavigationController","_selectionController","_headerPanel","_updateFocusTimeout","_fastEditingStarted","_canceledCellPosition","elementFocused","setupFocusedView","_isNeedScroll","_focusedView","_initViewHandlers","_initDocumentHandlers","rowsViewFocusHandler","isRelatedTargetInRowsView","isCommandButton","_isEventInCurrentGrid","$focusedCell","_getFocusedCell","$rowsView","isFullUpdate","isFocusedViewCorrect","needUpdateFocus","isFocusedElementCorrect","_initPointerEventHandler","_initKeyDownHandler","_setRowsViewAttributes","_isNeedFocus","_isHiddenFocus","isCurrentRowsViewClick","isEditorOverlay","isColumnResizing","targetInsideFocusedView","_resetFocusedCell","_resetFocusedView","_getRowsViewElement","isGridEmpty","_applyTabIndexToElement","pointerEventName","_pointerEventAction","_pointerEventHandler","_keyDownListener","_keyDownHandler","focusType","setCellFocusType","needStopPropagation","_processOnKeyDown","_updateFocusedCellPositionByTarget","_leftRightKeysHandler","ctrl","_upDownKeysHandler","_pageUpDownKeyHandler","_spaceKeyHandler","_ctrlAKeyHandler","_beginFastEditing","_tabKeyHandler","_enterKeyHandler","_ctrlFKeyHandler","_f2KeyHandler","_isFastEditingAllowed","_isFastEditingStarted","alt","altKey","_closeEditCell","getVisibleRowIndex","directionCode","_getDirectionCodeByKey","isEditingNavigationMode","allowNavigate","_isVirtualColumnRender","_processVirtualHorizontalPosition","_getNextCell","_arrowKeysHandlerFocusCell","isUpArrow","_navigateNextCell","_isVirtualRowRender","rowHeight","_scrollBy","pagingEnabled","isPageUp","pageStep","isFocusedRowElement","isFocusedSelectionCell","startSelectionWithCheckboxes","changeItemSelection","control","isCellPositionDefined","isOriginalHandlerRequired","_isLastValidCell","_isFirstValidCell","focusedViewElement","_handleTabKeyOnMasterDetailCell","_editingCellTabHandler","_targetCellTabHandler","_getMaxHorizontalOffset","_isColumnRendered","allVisibleColumns","renderedVisibleColumns","_isFixedColumn","_isColumnVirtual","localColumnIndex","getColumnIndex","horizontalScrollPosition","needToScroll","_getVisibleColumnCount","leftEdgePosition","_getHorizontalScrollPositionOffset","scrollBy","positionOffset","$currentCell","_getCell","currentCellWidth","rtlMultiplier","isEditingAllowed","elementType","nextCellInfo","_getNextCellByTabKey","_getRowIndex","_isDataRow","_focusCell","isHighlighted","_editFocusedCell","_focusInteractiveElement","$lastInteractiveElement","_getInteractiveElement","_checkNewLineTransition","_fireFocusedCellChanging","$newCellElement","_getCellPosition","_fireFocusedRowChanging","rowIndexChanged","_processEnterKeyForDataCell","_getEnterKeyDirection","allowEditingOnEnterKey","_allowEditingOnEnterKey","_handleEnterKeyEditingCell","_startEditing","enterKeyDirection","isShift","_focusEditFormCell","searchTextEditor","keyCode","isCellValid","_isCellValid","$nextCell","isVerticalDirection","_fireFocusChangingEvents","isDeleting","fastEditingKey","isInteractiveElement","isExpandCommandCell","_isInsideEditForm","_focusView","_isMasterDetailCell","_clickTargetCellHandler","_isCellEditMode","resetFocusedRow","_allowRowUpdating","isInteractiveTarget","isEditor","isDisabled","activeElementSelector","_focusElement","getFocusedView","rowsViewElement","$focusedView","_getFocusedViewByElement","$view","disableFocus","$focusElement","focusedView","one","isRenderView","_hasSkipRow","_checkCellOverlapped","$focusedElementInsideCell","isFocusedElementDefined","cellOffset","hasScrollable","isOverlapped","_this$_focusedCellPos","_getFocusedColumnIndexOffset","_getFixedColumnIndexOffset","_applyColumnIndexBoundaries","_this$_focusedView","renderFocusState","restoreFocusableElement","rowIndexOffset","newRowIndex","_getNewPositionByCode","visibleColumnsCount","_hasValidCellAfterPosition","_isLastRow","_hasValidCellBeforePosition","_isCellByPositionValid","isFirstValidCell","hasValidCells","checkingPosition","visibleColumnCount","isLastRow","isClick","isShowWhenGrouped","isDataCell","isValidGroupSpaceColumn","rowItems","isRowEditingInCurrentRow","_isLegacyNavigation","$result","focusedCellPosition","includeCommandCells","newFocusedCellPosition","isLastCellOnDirection","_isCellInRow","visibleColumnIndex","_isAllowEditing","_startEditCell","editResult","_editingCellHandler","editorValue","keyDownEvent","createEvent","keyPressEvent","inputEvent","$widgetContainer","fireRowEvent","newColumnIndex","prevCellIndex","localRowIndex","$newFocusedRow","prevFocusedRowIndex","$masterDetailCell","$masterDetailGrid","_processNextCellInMasterDetail","_processCanceledEditCellPosition","isCanceled","enterKeyAction","editOnKeyPress","needTriggerPointerEventHandler","_triggerPointerDownEventHandler","cellElements","_updateFocusedCellTabIndex","cellElementsLength","updateCellTabIndex","isMasterDetailCell","isValidCell","_renderFocusByChange","editorInstance","_getEditorInstance","_handleEditingNavigationMode","originalKeyHandler","isDropDownOpened","isDateBoxWithMask","keyboardNavigationController","_keyboardNavigationController","_correctRowIndices","getRowIndexCorrection","focusedRowIndexCorrection","adaptiveColumns","_showHiddenCellsInView","_hideVisibleCellInView","_themes","FOOTER_VIEW","COLUMN_VIEWS","ADAPTIVE_NAMESPACE","ADAPTIVE_ROW_TYPE","FORM_ITEM_CONTENT_CLASS","FORM_ITEM_MODIFIED","HIDDEN_COLUMN_CLASS","ADAPTIVE_COLUMN_BUTTON_CLASS","ADAPTIVE_COLUMN_NAME_CLASS","COMMAND_ADAPTIVE_HIDDEN_CLASS","ADAPTIVE_DETAIL_ROW_CLASS","ADAPTIVE_ITEM_TEXT_CLASS","LAST_DATA_CELL_CLASS","ADAPTIVE_COLUMN_NAME","EXPAND_ARIA_NAME","COLLAPSE_ARIA_NAME","getDataCellElements","adaptiveCellTemplate","$adaptiveColumnButton","adaptiveColumnsController","toggleExpandAdaptiveDetailRow","AdaptiveColumnsController","_isItemModified","_renderFormViewTemplate","focusAction","renderFormTemplate","isItemEdited","_isItemEdited","_isVisibleColumnsValid","getCommandColumnsCount","_calculatePercentWidths","percentWidths","_getItemPercentWidth","_isPercentWidth","_isColumnHidden","_hiddenColumns","hiddenColumn","columnsCanFit","fixedColumnsWidth","columnsWithoutFixedWidthCount","_calculatePercentWidth","_calculateColumnWidth","contentColumns","colWidth","widthOption","columnFitted","partialWidth","resultWidth","_getNotTruncatedColumnWidth","_getCommandColumnsWidth","adaptiveExpandedKey","_getFormItemsByHiddenColumns","hiddenColumns","_getAdaptiveColumnVisibleIndex","_hideAdaptiveColumn","_hideVisibleColumn","cssClassNameToRemove","_showHiddenColumns","$hiddenCommandCells","$hiddenCells","_hideVisibleColumnInView","rowsCount","cancelClassAdding","currentVisibleIndex","_findCellElementInRow","$rowCells","cellIsInsideGroup","groupCellLength","endGroupIndex","cssClassNameToAdd","hideRedundantColumns","hiddenQueue","hasHiddenColumns","needHideColumn","rootElementWidth","getVisibleContentColumns","visibleContentColumns","contentColumnsCount","columnBestFitWidth","getItemContentByColumnIndex","_$itemContents","alwaysExpanded","createFormByHiddenColumns","userFormOptions","defaultFormOptions","isMaterial","formOptions","updateForm","hasAdaptiveDetailRowExpanded","_contentReadyAction","updateHidingQueue","columnsHasHidingPriority","hideableColumns","_hidingColumnsQueue","hidingPriority","getHiddenColumns","getHidingColumnsQueue","adaptiveHidden","isAdaptiveVisible","isAdaptiveDetailRowExpanded","expandAdaptiveDetailRow","collapseAdaptiveDetailRow","updateCommandAdaptiveAriaLabel","setCommandAdaptiveAriaLabel","labelName","$adaptiveCommand","columnHidingEnabled","onAdaptiveDetailRowPreparing","_adaptiveColumnsController","hidingColumnsQueueLength","hiddenColumnsLength","isClickableElement","isClickable","_updateColumnWidth","hasHiddenColumnsOnly","hasAdaptiveHiddenWidth","$itemContents","_adaptiveController","oldExpandRowIndex","_isForceRowAdaptiveExpand","_collapseAdaptiveDetailRow","_cancelEditAdaptiveDetailRow","expandedKey","_adaptiveExpandedKey","_updateScrollableForIE","_updateScrollableTimeoutID","adaptiveController","oldHiddenColumns","hidingColumnsQueue","expandRowIndex","lastRowIndex","oldExpandLoadedRowIndex","newExpandLoadedRowIndex","oldKey","rowIndexDelta","getRowIndexDelta","allowInvisibleRowIndices","isCellOrBatchMode","focusHandler","$dataCells","isCellElementsEquals","text_area_1","getFilterOperations","getCaptionByOperation","isEmptyGroup","isValidCondition","removeFieldConditionsFromFilter","syncFilters","getMatchedConditions","filterHasField","_errors","_format_helper","_between","DEFAULT_DATA_TYPE","EMPTY_MENU_ICON","AND_GROUP_OPERATION","EQUAL_OPERATION","NOT_EQUAL_OPERATION","DEFAULT_FORMAT","LOOKUP_OPERATIONS","AVAILABLE_FIELD_PROPERTIES","FILTER_BUILDER_ITEM_TEXT_PART_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS","getFormattedValueText","fieldFormat","isNegationGroup","setGroupCriteria","convertGroupToNewStructure","isNegationValue","convertGroupToNegationGroup","convertNegationGroupToGroup","getNormalizedGroupValue","changeCriteriaValue","availableGroups","groupValue","getCriteriaOperation","errors","getDefaultFilterOperations","containItems","entity","filteredOperations","isLookupField","dataTypes","isOperationForbidden","notForLookup","hasConditions","extendedFields","convertToInnerGroup","groupOperation","innerGroup","convertToInnerCondition","conditionHasCustomOperation","normalizedField","getConditionFilterExpression","filterExpression","_filterExpression","itemsForRemove","normalizedGroupValue","lookupDataSource","loadSingle","getPrimitiveValueText","getArrayValueText","checkDefaultValue","_len","_key","itemExists","plainItems","pushItemAndCheckParent","originalItems","hasParent","getParentIdFromItemDataField","generateCaptionByDataField","lastIndexOf","betweenCaption","betweenIndex","getConfig","isMatchedCondition","addedFilterDataField","hasMatchedCondition","syncConditionIntoGroup","addedFilter","canPush","t","valueSeparator","FILTER_PANEL_CLASS","FILTER_PANEL_TEXT_CLASS","FILTER_PANEL_CHECKBOX_CLASS","FILTER_PANEL_CLEAR_FILTER_CLASS","FILTER_PANEL_LEFT_CONTAINER","FILTER_PANEL_TARGET","FilterPanelView","$leftContainer","_filterValueBuffer","_getCheckElement","_getFilterElement","_getTextElement","_getRemoveButtonElement","_showFilterBuilder","_addTabIndexToElement","filterText","$textElement","getFilterText","getCustomFilterOperations","customText","clearFilterValue","tabindex","_getConditionText","fieldText","operationText","_getValueMaskedText","_getValueText","hasCustomOperation","getConditionText","getGroupText","isInnerGroup","textParts","groupText","createFilter","clearFilter","filterEnabledHint","filterPanelView","_support","_selection","ROW_SELECTION_CLASS","SELECT_CHECKBOX_CLASS","CHECKBOXES_HIDDEN_CLASS","SELECTION_DISABLED_CLASS","SHOW_CHECKBOXES_MODE","SELECTION_MODE","processLongTap","isSelectionWithCheckboxes","stopSelectionWithCheckboxes","SelectionController","isSeveralRowsSelected","isComplexKey","selectionCellTemplate","isRowSelected","renderSelectCheckBoxContainer","selectionHeaderTemplate","_renderSelectAllCheckBox","_attachSelectAllCheckBoxClickEvent","_selectionMode","_isSelectionWithCheckboxes","_createSelection","_updateSelectColumn","_getSelectionConfig","selectionOptions","maxFilterLengthInRequest","dataFields","isItemSelected","isSelectableItem","getItemData","isSelectColumnVisible","_updateCheckboxesState","isDeferredMode","selectedItemKeys","removedItemKeys","selectionChangedOptions","changedItemIndexes","getChangedItemIndexes","itemIndexes","addedItemKeys","_selectedItemsInternalChange","selectedRowsData","currentSelectedRowKeys","currentDeselectedRowKeys","isDataItem","oldSelectionMode","selectRows","_isOnePageSelectAll","getSelectAllState","deselectAll","clearSelection","preserve","isDeselect","getSelectedRowKeys","getSelectedItemKeys","deselectRows","selectRowsByIndexes","indexes","getSelectedRowsData","getSelectedItems","focusedItemIndex","_focusedItemIndex","allowSelectAll","selectAllMode","_loadDataSource","hasSelectColumn","_repaintChangesOnly","currentItem","_changes","isUpdateSelection","removedKeys","_updateSelectAllValue","isEmptyData","_attachCheckBoxClickEvent","_renderSelectCheckBox","_e$event","_updateCheckboxesClass","touch","isSelectionDisabled","isCommandKeyPressed","isCommandSelect","isCheckBoxesHidden","colorHelper","_tryConvertColor","colorCode","patternFillHelper","standardColorNames","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","standardColorTypes","re","process","colorString","s","hsvToRgb","hslToRgb","_round","Color","baseColor","parseColor","colorIsInvalid","normalize","g","hsv","toHsvFromRgb","hsl","toHslFromRgb","colorComponent","def","toHexFromRgb","H","S","V","vMin","vInc","vDec","calculateHue","convertTo01Bounds","maxMinSum","makeColorTint","colorPart","colorTint","modifyColorTint","hueToRgb","q","isIntegerBetweenMinAndMax","highlight","alter","toHex","darken","blend","blendColor","other","getPureColor","isValidHex","hex","isValidRGB","isValidAlpha","fromHSL","u","require","1","encode","f","getTypeOf","decode","uint8array","2","compressedSize","uncompressedSize","crc32","compressedContent","getContentWorker","Promise","pipe","uncompressWorker","streamInfo","data_length","getCompressedWorker","withStreamInfo","createWorkerFrom","compressWorker","3","STORE","magic","DEFLATE","4","5","base64","dir","createFolders","compressionOptions","comment","unixPermissions","dosPermissions","6","lie","7","Uint16Array","Uint32Array","_pako","_pakoAction","_pakoOptions","meta","inherits","processChunk","_createPako","transformTo","flush","cleanUp","raw","onData","pako","8","A","O","utf8encode","I","m","w","z","C","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","B","E","fileRecord","R","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","bytesWritten","zipComment","zipPlatform","encodeFileName","streamFiles","accumulate","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","percent","openedSource","closedSource","DATA_DESCRIPTOR","CENTRAL_DIRECTORY_END","prepareNextSource","isPaused","pause","resume","registerPrevious","generatedError","lock","9","generateWorker","platform","_compressWorker","10","files","root","loadAsync","support","defaults","external","11","decompressed","checkCRC32","optimizedBinaryString","decodeFileName","utf8decode","isStream","prepareContent","fileNameStr","fileCommentStr","12","_upstreamEnded","_bindStream","_stream","13","Readable","_helper","emit","_read","14","Buffer","newBufferFrom","allocBuffer","alloc","isBuffer","15","generateInternalStream","checkSupport","generateNodeStream","toNodejsStream","16","stream","17","byteAt","zero","lastIndexOfSignature","readAndCheckSignature","readData","checkOffset","18","checkIndex","setIndex","readInt","readString","readDate","19","20","21","subarray","22","23","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","24","destType","25","26","propName","27","dataIsReady","_tickScheduled","_tickAndRepeat","isFinished","_tick","28","extraStreamInfo","isLocked","_listeners","mergeStreamInfo","29","nodestream","_internalType","_outputType","_mimeType","newBlob","_worker","objectMode","30","arraybuffer","ArrayBuffer","nodebuffer","self","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","31","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","32","stringifyByChunk","stringifyByChar","applyCanBeUsed","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","FileReader","onload","onerror","readAsArrayBuffer","33","checkSignature","reader","isSignature","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","processAttributes","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","34","isEncrypted","bitFlag","useUTF8","fileNameLength","compressionMethod","versionMadeBy","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","fileComment","extraFields","findExtraFieldUnicodePath","findExtraFieldUnicodeComment","35","_dataBinary","internalStream","_decompressWorker","nodeStream","36","MutationObserver","WebKitMutationObserver","observe","characterData","setImmediate","MessageChannel","onreadystatechange","removeChild","documentElement","port1","onmessage","port2","postMessage","global","37","queue","outcome","onFulfilled","callFulfilled","otherCallFulfilled","onRejected","callRejected","otherCallRejected","finally","catch","race","immediate","38","assign","39","chunkSize","windowBits","memLevel","gzip","err","msg","ended","chunks","strm","avail_out","deflateInit2","header","deflateSetHeader","dictionary","string2buf","deflateSetDictionary","_dict_set","next_in","avail_in","output","Buf8","next_out","deflate","onEnd","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","Deflate","deflateRaw","40","inflateInit2","Z_OK","inflateGetHeader","Z_FINISH","Z_NO_FLUSH","binstring2buf","inflate","Z_NEED_DICT","inflateSetDictionary","Z_BUF_ERROR","Z_STREAM_END","Z_SYNC_FLUSH","utf8border","buf2string","arraySet","inflateEnd","Inflate","inflateRaw","ungzip","41","Int32Array","setTyped","Buf16","Buf32","42","43","44","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","45","46","T","D","F","pending_buf","pending_out","total_out","N","_tr_flush_block","block_start","strstart","U","P","L","max_chain_length","prev_length","nice_match","w_size","w_mask","good_match","lookahead","match_start","window_size","hash_size","head","wrap","adler","total_in","ins_h","hash_shift","hash_mask","Z","match_length","_tr_tally","max_lazy_match","last_lit","W","prev_match","match_available","M","good_length","max_lazy","nice_length","max_chain","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","G","data_type","_tr_init","K","Y","deflateInit","deflateReset","deflateResetKeep","hcrc","time","os","_tr_align","_tr_stored_block","deflateInfo","47","xflags","extra_len","48","dmax","wsize","whave","wnext","hold","bits","lencode","distcode","lenbits","distbits","sane","49","havedict","check","total","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","back","was","inflateReset","inflateReset2","inflateResetKeep","inflateInit","inflateInfo","50","51","0","52","static_tree","extra_bits","extra_base","elems","max_length","has_stree","dyn_tree","max_code","stat_desc","X","J","53","54","_console","navigator","getNavigator","FILE_EXTESIONS","CSS","PNG","JPEG","GIF","SVG","PDF","_revokeObjectURLTimeout","_getDataUri","_getMimeType","_linkDownloader","exportLinkElement","download","_formDownloader","contentType","formAttributes","enctype","exportForm","setAttributes","_saveByProxy","_winJSBlobSave","savePicker","Windows","Storage","Pickers","FileSavePicker","suggestedStartLocation","PickerLocationId","documentsLibrary","fileExtension","fileTypeChoices","suggestedFileName","pickSaveFileAsync","openAsync","FileAccessMode","readWrite","outputStream","inputStream","msDetachStream","Streams","RandomAccessStream","copyAsync","flushAsync","link","dispatchEvent","MouseEvent","cancelable","initMouseEvent","_saveBlobAs","_blobSaved","msSaveOrOpenBlob","WinJS","URL","webkitURL","mozURL","msURL","oURL","objectURL","createObjectURL","downloadLink","revokeObjectURL","_objectUrlRevoked","logger","warn","proxyURL","userAgent","GroupingHeaderPanelExtender","_uiData_gridGrouping2","DATAGRID_GROUP_PANEL_CLASS","DATAGRID_GROUP_PANEL_MESSAGE_CLASS","DATAGRID_GROUP_PANEL_ITEM_CLASS","DATAGRID_GROUP_PANEL_LABEL_CLASS","DATAGRID_EXPAND_CLASS","DATAGRID_GROUP_ROW_CLASS","GroupingDataSourceAdapterExtender","_initGroupingHelper","isAutoExpandAll","isFocusedRowEnabled","isODataRemoteOperations","_collapseExpandAll","isExpand","_hasGroupLevelsExpandState","groupPaging","GroupingDataControllerExtender","_beforeProcessItems","groupedColumns","collapseRow","onGroupingMenuItemClick","_appendGroupingItem","_isGroupPanelVisible","isRendered","$groupPanel","_updateGroupPanelContent","_processGroupItemAction","_renderGroupPanelItems","$groupPanelItem","$toolbarElement","emptyPanelText","$groupedColumnElement","isGroupingAllowed","isColumnGrouped","groupingTexts","ungroup","ungroupAll","GroupingRowsViewExtender","expandMode","isGroupRowStateChanged","isExpandButtonClicked","_changeGroupRowState","columnHeadersViewExtender","groupByThisColumn","_custom_store","_data_helper","_array_compare","cacheEnabled","onDataErrorOccurred","changePaging","_skipProcessingPagingChange","pageChanged","_currentOperationTypes","_columnsChangedHandler","_handleColumnsChanged","_customizeStoreLoadOptionsHandler","_handleCustomizeStoreLoadOptions","stopOnFalse","_setPagingOptions","_useSortingGroupingFromColumns","returnDataField","additionalFilter","_readyDeferred","_columnsUpdating","filterApplied","updateItemsHandler","_needApplyFilter","isAsyncDataSourceApplying","_isDataSourceApplying","hasAdditionalFilter","needApplyFilter","_isAllDataTypesDefined","_fireLoadingChanged","isChanged","oldDataSource","setDataSource","visibleItems","lastVisibleItem","_generateDataItem","isModified","_applyChangeFull","_getRowIndices","correctedRowIndex","prevIndex","rowIndexCorrection","equalItems","item1","item2","strict","oldNextItem","newNextItem","_partialUpdateRow","changedColumnIndices","isCellChanged","_isItemEquals","compareFields","_item1$data","_item2$data","_item1$data2","_item2$data2","expandedMatch","summaryCellsMatch","continuationMatch","newIndexByKey","getRowKey","isItemEquals","oldItems","findChanges","isDataChanged","_loadingText","filterExpr","filterName","clearColumnOption","_fireDataSourceChanged","changedHandler","dataSourceAdapterProvider","isCustomStore","_createDataSourceAdapter","enabledRemoteOperations","cancelAll","_isSharedDataSource","loadAll","byLoaded","byKey","getDataByKeys","rowKeys","keyData","beginCustomLoading","endCustomLoading","customizeLoadResult","_disposeDataSource","rowIndexes","proxyMethod","COLUMN_HEADERS_VIEW_NAMESPACE","ColumnHeadersViewSortingExtender","$cellElementFromEvent","editingMode","HeaderPanelSortingExtender","showSortIndexes","DxValueFormat","DxTotalItem","DxTexts","DxSummaryTexts","DxSummary","DxStateStoring","DxSorting","DxSortByGroupSummaryInfo","DxSearchPanel","DxRowDragging","DxRemoteOperations","DxPopup","DxPager","DxOperationDescriptions","DxMasterDetail","DxLookup","DxLoadPanel","DxLabel","DxKeyboardNavigation","DxHeaderFilter","DxGroupPanel","DxGroupOperationDescriptions","DxGroupItem","DxGroupingTexts","DxGrouping","DxFormItem","DxForm","DxFilterPanelTexts","DxFilterPanel","DxFilterOperationDescriptions","DxFilterBuilderPopup","DxFilterBuilder","DxFieldLookup","DxField","DxExportTexts","DxExport","DxEditingTexts","DxEditing","DxDataGridHeaderFilterTexts","DxDataGridHeaderFilter","DxCustomOperation","DxCursorOffset","DxColumnLookup","DxColumnHeaderFilter","DxColumnFixingTexts","DxColumnFixing","DxColumnChooser","DxColumn","DxColCountByScreen","data_grid_1","filterBuilder","filterBuilderPopup","filterSyncEnabled","onCellClick","onCellDblClick","onCellHoverChanged","onCellPrepared","onEditCanceled","onEditCanceling","onEditingStart","onExporting","onFocusedCellChanged","onFocusedCellChanging","onFocusedRowChanged","onFocusedRowChanging","onInitNewRow","onRowClick","onRowCollapsed","onRowCollapsing","onRowDblClick","onRowExpanded","onRowExpanding","onRowInserted","onRowInserting","onRowRemoved","onRowRemoving","onRowUpdated","onRowUpdating","onRowValidating","onSaved","onSaving","onToolbarPreparing","dataGridHeaderFilter","lg","md","sm","xs","columnHeaderFilter","columnLookup","columnFixingTexts","fix","leftPosition","rightPosition","unfix","dataGridHeaderFilterTexts","allowExportSelectedData","excelFilterEnabled","excelWrapTextEnabled","ignoreExcelErrors","exportTexts","exportAll","exportSelectedRows","exportTo","fieldLookup","filterPanelTexts","applyFilterText","betweenEndText","betweenStartText","operationDescriptions","resetOperationText","showOperationChooser","alignItemLabels","alignItemLabelsInAllGroups","colCountByScreen","formData","labelLocation","minColWidth","onEditorEnterKey","onFieldDataChanged","optionalMark","requiredMark","requiredMessage","screenByWidth","scrollingEnabled","showColonAfterLabel","showOptionalMark","showRequiredMark","showValidationSummary","helpText","itemType","showColon","autoScroll","cursorOffset","dragDirection","onAdd","onDragChange","onDragMove","onRemove","onReorder","scrollSensitivity","scrollSpeed","rowRenderingMode","scrollByContent","scrollByThumb","COLUMN_CHOOSER_CLASS","COLUMN_CHOOSER_BUTTON_CLASS","NOTOUCH_ACTION_CLASS","COLUMN_CHOOSER_LIST_CLASS","COLUMN_CHOOSER_PLAIN_CLASS","COLUMN_CHOOSER_DRAG_CLASS","COLUMN_CHOOSER_SELECT_CLASS","COLUMN_CHOOSER_ICON_NAME","COLUMN_CHOOSER_ITEM_CLASS","TREEVIEW_NODE_SELECTOR","CHECKBOX_SELECTOR","CLICK_TIMEOUT","chooserColumns","isSelectMode","disableCheckBox","renderShowColumnChooserButton","$columnChooserButton","columnChooserButtonClass","columnChooserEnabled","$showColumnChooserButton","showColumnChooser","getPosition","_isWinDevice","win","_updateList","columnChooserList","_columnChooserList","_renderTreeView","themeName","isGenericTheme","isGeneric","shortcut","treeViewConfig","$checkBox","$treeViewNode","checkBoxInstance","_prepareSelectModeConfig","_prepareDragModeConfig","selectionChangedHandler","isLastColumnUnselected","needPartialRender","needFullRender","columnVisible","isColumnChooserVisible","hideColumnChooser","_appendColumnChooserItem","onClickHandler","columnChooserMode","isMoveColumnDisallowed","_translator","BOTTOM_LOAD_PANEL_CLASS","TABLE_CONTENT_CLASS","FREESPACE_CLASS","SCROLLING_MODE_STANDARD","PIXELS_LIMIT","LOAD_TIMEOUT","isVirtualRowRendering","_correctCount","fromEnd","isItemCountableFunc","isItemCountableByDataSource","VirtualScrollingDataSourceAdapterExtender","_updateLoading","_virtualScrollController","_startLoadTime","virtualScrollController","removeEmptyRows","$emptyRows","getRowParent","_dataController$state","scrollToPage","_scrollToCurrentPageOnResize","resizeHandler","itemSizes","_updateContentPosition","startRenderTime","_contentHeight","_removeRowsElements","contentTable","_restoreErrorRow","_updateBottomLoading","_addVirtualRow","$virtualRow","_getRowHeights","rowHeights","_correctRowHeights","correctedRowHeights","firstCountableItem","isRender","_updateContentPositionCore","$tables","$virtualRows","$contentTable","virtualTable","_contentTableHeight","isRenderVirtualTableContentRequired","_isTableLinesDisplaysCorrect","_isColumnElementsEqual","_renderVirtualTableContent","table","hasColumnLines","$columns","$virtualColumns","freeSpaceCellsHtml","columnLinesClass","createFreeSpaceRowHtml","classes","_getCellClasses","classString","isExpandColumn","_findBottomLoadPanel","$bottomLoadPanel","showBottomLoading","bottomLoadPanelElement","viewportHeight","hasBottomLoadPanel","scrollPos","updateTimeout","minTimeout","rowPageSize","loadTwoPagesOnStart","baseResult","initVirtualRows","getRowPageSize","isSortingOperation","allowedTopOffset","virtualRowsRendering","_visibleItems","_rowPageIndex","isItemCountable","isNextAfterLast","countableOnly","_that$_dataSource","allItems","byLoadedRows","_resizeTimeout","_lastTime","_scroll_view","FilterBuilderView","_updatePopupOptions","_initPopup","_filterBuilderPopup","_disposePopup","_filterBuilder","_getPopupContentTemplate","_getPopupToolbarItems","$filterBuilderContainer","filterBuilderView","_color","parseAttributes","_math","PI","_min","_abs","_sqrt","sqrt","_pow","pow","_atan2","atan2","_cos","cos","_sin","sin","IMAGE_QUALITY","TEXT_DECORATION_LINE_WIDTH_COEFF","DEFAULT_FONT_SIZE","DEFAULT_TEXT_COLOR","createCanvas","canvas","hidden","getStringFromCanvas","dataURL","toDataURL","imageData","atob","arcTo","x1","y1","x2","y2","radius","largeArcFlag","clockwise","cBx","cBy","aB","opSide","adjSide","centerX","centerY","startAngle","endAngle","arc","getElementOptions","rootAppended","coords","transform","translateX","translateY","rotationAngle","rotationX","rotationY","scaleX","scaleY","parseStyles","drawRect","cornerRadius","rx","translate","moveTo","lineTo","restore","rect","drawImage","shared","Image","globalAlpha","transformElement","clipElement","drawPath","dAttr","prevParams","prevParamsLen","dArray","bezierCurveTo","closePath","camelize","textDecoration","textDecorationLine","parseUrl","urlString","setFontStyle","fontParams","fontSize","fontFamily","fontStyle","fontWeight","fillStyle","drawText","fillText","strokeElement","drawTextDecoration","textWidth","measureText","textHeight","lineHeight","fillElement","aggregateOpacity","strokeOpacity","fillOpacity","hasTspan","drawTextElement","line","lines","drawElement","mergedOptions","dy","commonWidth","xDiff","currentOffset","parentOptions","isText","isImage","beginPath","cx","applyGradient","gradients","box","getBBox","gradient","createLinearGradient","opt","addColorStop","stopColor","filterOptions","offsetX","offsetY","shadowOffsetX","shadowOffsetY","shadowColor","shadowBlur","rotate","scale","clipPaths","clip","hex2rgba","hexColor","alpha","createGradient","stdDeviation","dx","asyncEach","isPromise","drawCanvasElements","onDone","patterns","setLineDash","stroke","lineJoin","lineWidth","strokeStyle","strokeText","getPattern","patternCanvas","patternContext","getContext","createPattern","drawBackground","fillRect","createInvisibleDiv","invisibleDiv","convertSvgToCanvas","getCanvasFromSvg","pixelRatio","svgToCanvas","setTransform","markupIsDomElement","getBody","__parseAttributesFn","formats","supported","unsupported","FILTER_ROW_OPERATIONS","FILTER_TYPES_INCLUDE","FILTER_TYPES_EXCLUDE","getColumnIdentifier","checkForErrors","FilterSyncController","getEmptyFilterValues","canSyncHeaderFilterWithFilterRow","getHeaderFilterFromCondition","headerFilterCondition","hasArrayValue","getConditionFromFilterRow","getConditionFromHeaderFilter","selectedOperation","updateHeaderFilterCondition","updateFilterRowCondition","filterRowOptions","syncFilterValue","_skipSyncColumnOptions","filterConditions","filterCondition","_initSync","filteringColumns","isFilterSyncActive","_getSyncFilterRow","_getSyncHeaderFilter","syncFilterRow","syncHeaderFilter","filterBuilderCustomOperations","anyOf","noneOf","DataControllerFilterSyncExtender","filterSyncEnabledValue","calculatedFilterValue","_parseColumnPropertyName","matched","propertyName","ColumnHeadersViewFilterSyncExtender","filterSync","_language_codes","ARABIC_ZERO_CODE","DEFINED_NUMBER_FORMTATS","thousands","millions","billions","trillions","decimal","fixedpoint","exponential","PERIOD_REGEXP","DAY_REGEXP","DO_REGEXP","STANDALONE_MONTH_REGEXP","HOUR_REGEXP","ANY_REGEXP","excelFormatConverter","_applyPrecision","_hasArabicDigits","_convertDateFormatToOpenXml","datePart","_convertDateFormat","formattedValue","getFormat","_getLanguageInfo","defaultPattern","languageID","languageIDStr","languageInfo","_convertNumberFormat","excelFormat","getOpenXmlCurrencyFormat","getContinuationGroupCount","pageOffset","foreachExpandedGroups","updateGroups","expandedInfo","isLastGroupExpanded","lastCount","updateGroupInfoItem","isLastGroupLevel","_isGroupExpanded","updateGroupInfos","loadedGroupCount","remotePaging","skips","isGroupExpanded","getTotalOffset","groupInfos","childrenTotalCount","applyContinuationToGroupItem","expandedItemIndex","takes","isLastExpandedItem","isFirstExpandedItem","lastExpandedItemSkip","isItemsTruncatedByTake","fillSkipTakeInExpandedInfo","currentGroupCount","currentGroupIndex","isDataDeferred","makeDataDeferred","loadGroupItems","loadExpandedGroups","loadLastLevelGroupItems","currentGroup","requireGroupCount","expandedFilters","expandedPath","isPagingLocal","expandedItems","loadGroupTotalCount","isGrouping","isVirtualPaging","skipChildrenTotalCount","takeCorrection","parentTakeCorrection","continuationGroupCount","skipContinuationGroupCount","groupInfoCount","childrenGroupInfoCount","remoteGroupPaging","isLastGroup","_processPaging","_processSkips","firstItem","_processTakes","lastItem","maxTakeCount","handleGroup","_select_box","_number_box","PAGES_LIMITER","PAGER_PAGE_CLASS","PAGER_PAGE_CLASS_SELECTOR","PAGER_PAGES_CLASS","LIGHT_MODE_CLASS","LIGHT_PAGES_CLASS","PAGER_PAGE_INDEX_CLASS","PAGER_PAGES_COUNT_CLASS","PAGER_SELECTION_CLASS","PAGER_PAGE_SEPARATOR_CLASS","PAGER_PAGE_SIZES_CLASS","PAGER_PAGE_SIZE_CLASS","PAGER_PAGE_SIZE_CLASS_SELECTOR","PAGER_NAVIGATE_BUTTON","PAGER_PREV_BUTTON_CLASS","PAGER_NEXT_BUTTON_CLASS","PAGER_INFO_CLASS","PAGER_INFO_TEXT_CLASS","PAGER_BUTTON_DISABLE_CLASS","Page","_$page","_value","Pager","pagesCountText","lightModeEnabled","_getPages","currentPage","firstValue","showMoreButton","pagesCount","_getPageByValue","page","_pages","_processSelectedPage","selectedPageIndex","isPageIndexValid","selectedPage","_selectPageByValue","nextPage","morePage","pagesLength","prevPage","_updatePagesTabIndices","$selectedPage","updatePageIndices","_nextPage","_wrapClickAction","_pointerUpHappened","_renderPages","$separator","clickPagesIndexAction","pageNumber","_pageClickHandler","_$pagesChooser","Name","_calculateLightPagesWidth","$pageIndex","_renderLightPages","clickAction","_pageIndexEditor","$pageCount","_renderPagesChooser","_renderInfo","_renderNavigateButton","_updatePagesChooserWidth","_renderPageSizes","pageSizeValue","$pageSize","pagesSizesLength","currentPageSize","clickPagesSizeAction","_$pagesSizeChooser","_calculateLightPageSizesWidth","_renderLightPageSizes","_pageSizeEditor","_renderPagesSizeChooser","_pagesSizeChooserWidth","_$info","_isInfoHide","_infoWidth","_updatePageSizes","_updatePages","_updateLightMode","forceRender","_updateButtonsState","_isPageIndexInvalid","isNextDirection","nextButton","prevButton","_pageKeyDownHandler","_getMinPagerWidth","pagesChooserWidth","_pagesChooserWidth","pagesSizeChooserWidth","deferUpdater","lastPageWidth","infoWidth","_previousWidth","RowsView","ExportController","DataProvider","_exporter","DATAGRID_EXPORT_MENU_CLASS","DATAGRID_EXPORT_BUTTON_CLASS","DATAGRID_EXPORT_ICON","DATAGRID_EXPORT_EXCEL_ICON","DATAGRID_EXPORT_SELECTED_ICON","DATAGRID_EXPORT_EXCEL_BUTTON_ICON","TOOLBAR_ITEM_AUTO_HIDE_CLASS","_getGroupValue","_correctCellIndex","_initOptions","_exportController","_getColumns","_initialColumnWidthsByColumnIndex","_selectedRowsOnly","_selectionOnly","_getSelectedItems","_getAllItems","isHeadersVisible","customizeExportData","gridCell","initialColumnWidthsByColumnIndex","selectedRowsOnly","getHeaderStyles","getGroupRowStyle","getColumnStyles","columnStyles","_getTotalCellStyleId","_this$getColumns$cell","isTotalCell","getColumnsByAllRows","getColumnsWidths","_convertFromGridGroupSummaryItems","gridGroupSummaryItems","isExcelJS","correctedCellIndex","columnsRow","gridColumn","itemValues","totalSummaryItemName","correctCellIndex","isSummaryAlignByColumn","exportColspan","currentHeaderRow","columnWidthsByColumnIndex","_getColumnWidths","_headersView","_needColumnExporting","currentColspan","_calculateExportColspan","childColumns","childColumn","_getFooterSummaryItems","isTotal","estimatedItemsCount","_hasSummaryGroupFooters","_getItemsWithSummaryGroupFooters","sourceItems","beforeGroupFooterItems","groupFooterItems","_updateGroupValuesWithSummaryByColumn","summaryValues","groupColumnCount","_processUnExportedItems","isDetailExpandColumn","selectedRowData","getExportFormat","getDataProvider","columnsLastRowVisibleColumns","exportToExcel","_isSelectedRows","callbackList","editingChanged","_appendExportItems","exportOptions","exportItems","_renderButton","_renderExportMenu","_renderList","allowExportSelected","_correctItemsPosition","withText","_getButtonOptions","$buttonContainer","wrapperNode","wrapInner","_renderFakeButton","exportSelected","iconName","$toolbarItem","itemA","itemB","_contextMenu","_isExportButtonVisible","DATAGRID_ROW_SELECTOR","DATAGRID_DEPRECATED_TEMPLATE_WARNING","DataGrid","_setDeprecatedOptions","_deprecatedOptions","since","alias","_device","templateName","baseOperation","grid","lastIndex","getFullText","parentText","getSelectedItemsTexts","selectedItemsTexts","fieldInfo","conditionInfo","div","baseOp","baseFilter","cellFormatHelper","sharedItemsContainer","numberFormatId","fontId","fillId","applyNumberFormat","isAlignmentEmpty","xfId","applyAlignment","_wheel","FIRST_CELL_CLASS","LAST_CELL_CLASS","HOVER_STATE_CLASS","FIXED_COL_CLASS","FIXED_COLUMNS_CLASS","POINTER_EVENTS_NONE_CLASS","getTransparentColumnIndex","normalizeColumnWidths","fixedWidths","fixedColumnIndex","baseFixedColumns","_isFixedColumns","_correctColumnIndicesForFixedColumns","$fixedTable","_fixedTableElement","fixedCorrection","fixedCells","prevFixedColumn","columnCommand","isRowAltStyle","isEmptyCell","isGroupCell","alignByFixedColumnCellCount","fixedCellElements","fixedColumn","getFixedColumnsOffset","$transparentColumn","getTransparentColumnElement","positionTransparentColumn","getFixedTableElement","synchronizeRows","isWidthsSynchronized","isColumnWidthChanged","useVisibleColumns","_getClientHeight","boundingClientRectElement","$fixedRowElements","fixedRowHeights","heightTable","heightFixedTable","fixedRowHeight","ColumnHeadersViewFixedColumnsExtender","columnFixingOptions","getFixedColumnElements","$transparentColumnElement","$fixedColumnElements","RowsViewFixedColumnsExtender","_detachHoverEvents","attachHoverEvent","isHover","contentClass","scrollDelay","_fixedScrollTimeout","$nearestScrollable","_updateFixedTablePosition","needFocus","vWidth","hWidth","$fixedContent","_getElasticScrollTop","elasticScrollTop","reachedBottom","scrollableContent","maxScrollTop","_applyElasticScrolling","FooterViewFixedColumnsExtender","normalizeColumnIndicesByPoints","correctIndex","pointsByFixedColumns","_pointsByFixedColumns","isWidgetResizingMode","_editor","OPERATION_DESCRIPTORS","CORRECT_FILTER_RANGE_OVERLAY_WIDTH","FILTER_RANGE_OVERLAY_CLASS","FILTER_RANGE_START_CLASS","FILTER_RANGE_END_CLASS","MENU_CLASS","EDITOR_WITH_MENU_CLASS","EDITOR_CONTAINER_CLASS","FILTER_MENU","APPLY_BUTTON_CLASS","HIGHLIGHT_OUTLINE_CLASS","FOCUSED_CLASS","FILTER_RANGE_CONTENT_CLASS","FILTER_MODIFIED_CLASS","BETWEEN_OPERATION_DATA_TYPES","isOnClickApplyFilterMode","ColumnHeadersViewFilterRowExtender","$editorContainer","componentNames","getRangeTextByFilterValue","rangeEnd","getColumnFilterValue","getColumnSelectedFilterOperation","bufferedSelectedFilterOperation","isValidFilterValue","isFilterRange","isRangeStart","normalizeFilterValue","columnFilterValue","updateFilterValue","_applyFilterViewController","setHighLight","_updateEditorValue","$editorRangeElements","overlayInstance","_updateFilterRangeContent","_updateFilterOperationChooser","_renderFilterRangeContent","_renderEditor","_getEditorOptions","_hideFilterRange","_filterRangeOverlayInstance","isFilterRowVisible","_initFilterRangeOverlay","$prevElement","_updateFilterRangeOverlay","_showFilterRange","getFilterRangeOverlayInstance","_renderFilterCell","_renderFilterOperationChooser","accessibilityOptions","_getFilterInputAccessibilityAttributes","columnAriaLabel","$filterRangeContent","isCellWasFocused","_focusEditor","_getFilterOperationMenuItems","properties","columnSelectedFilterOperation","notFocusEditor","isOnClickMode","_isEditorFocused","availableFilterOperations","descriptionName","ApplyFilterViewController","_getHeaderPanel","enableApplyButton","removeHighLights","columnHeadersViewElement","filterItem","_prepareFilterItem","_isShowApplyFilterButton","FILTER_BUILDER_RANGE_CLASS","FILTER_BUILDER_RANGE_START_CLASS","FILTER_BUILDER_RANGE_END_CLASS","FILTER_BUILDER_RANGE_SEPARATOR_CLASS","SEPARATOR","$editorStart","$editorEnd","getStartValue","getEndValue","check_box_1","_load_panel","DATAGRID_SELECTION_DISABLED_CLASS","DATAGRID_GROUP_OPENED_CLASS","DATAGRID_GROUP_CLOSED_CLASS","NO_DATA_CLASS","DATE_INTERVAL_SELECTORS","getIntervalSelector","nameIntervalSelector","equalSelectors","selector1","selector2","formatObject","editorData","dxComponents","widgetName","filter1","filter2","noDataClass","noDataElement","changeNames","changesWithChangeNamesCount","defaultResult","remoteGrouping","sortParameters1","sortParameters2","ignoreIsExpanded","pointCreated","isVertical","notCreatePoint","prevItemOffset","selectionEnd","isSelectTextOnEditingStart","_loadItemDeferred","hasResizableColumns","$grid","depthFirstSearch","isCount","aggregators","normalizeAggregate","_groupLevel","_groupAggregates","_totals","_calculateTotals","_calculateGroups","_aggregate","_accumulate","_seed","_finalize","maxLevel","seedFn","stepFn","finalizeFn","innerNode","NaN","aggregateIndex","fin"],"mappings":"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,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,GACLC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,GAAI,IACJ,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,aAAc,KACd,cAAe,KACf,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,SAAU,KACV,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS,MACT,a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","file":"js/chunk-53833ec8.371bf451.js","sourcesContent":["/**\r\n * DevExtreme (ui/shared/filtering.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar DEFAULT_DATE_INTERVAL = [\"year\", \"month\", \"day\"];\r\nvar DEFAULT_DATETIME_INTERVAL = [\"year\", \"month\", \"day\", \"hour\", \"minute\"];\r\nvar isDateType = function(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n};\r\nvar getGroupInterval = function(column) {\r\n var index;\r\n var result = [];\r\n var dateIntervals = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\"];\r\n var groupInterval = column.headerFilter && column.headerFilter.groupInterval;\r\n var interval = \"quarter\" === groupInterval ? \"month\" : groupInterval;\r\n if (isDateType(column.dataType) && null !== groupInterval) {\r\n result = \"datetime\" === column.dataType ? DEFAULT_DATETIME_INTERVAL : DEFAULT_DATE_INTERVAL;\r\n index = (0, _array.inArray)(interval, dateIntervals);\r\n if (index >= 0) {\r\n result = dateIntervals.slice(0, index);\r\n result.push(groupInterval);\r\n return result\r\n }\r\n return result\r\n } else {\r\n if ((0, _type.isDefined)(groupInterval)) {\r\n return Array.isArray(groupInterval) ? groupInterval : [groupInterval]\r\n }\r\n }\r\n};\r\nvar _default = function() {\r\n var getFilterSelector = function(column, target) {\r\n var selector = column.dataField || column.selector;\r\n if (\"search\" === target) {\r\n selector = column.displayField || column.calculateDisplayValue || selector\r\n }\r\n return selector\r\n };\r\n var isZeroTime = function(date) {\r\n return date.getHours() + date.getMinutes() + date.getSeconds() + date.getMilliseconds() < 1\r\n };\r\n var getDateValues = function(dateValue) {\r\n if ((0, _type.isDate)(dateValue)) {\r\n return [dateValue.getFullYear(), dateValue.getMonth(), dateValue.getDate(), dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds()]\r\n }\r\n return (0, _iterator.map)((\"\" + dateValue).split(\"/\"), function(value, index) {\r\n return 1 === index ? Number(value) - 1 : Number(value)\r\n })\r\n };\r\n var getFilterExpressionByRange = function(filterValue, target) {\r\n var column = this;\r\n var endFilterValue;\r\n var startFilterExpression;\r\n var endFilterExpression;\r\n var selector = getFilterSelector(column, target);\r\n if (Array.isArray(filterValue) && (0, _type.isDefined)(filterValue[0]) && (0, _type.isDefined)(filterValue[1])) {\r\n startFilterExpression = [selector, \">=\", filterValue[0]];\r\n endFilterExpression = [selector, \"<=\", filterValue[1]];\r\n if (isDateType(column.dataType) && isZeroTime(filterValue[1])) {\r\n endFilterValue = new Date(filterValue[1].getTime());\r\n if (\"date\" === column.dataType) {\r\n endFilterValue.setDate(filterValue[1].getDate() + 1)\r\n }\r\n endFilterExpression = [selector, \"<\", endFilterValue]\r\n }\r\n return [startFilterExpression, \"and\", endFilterExpression]\r\n }\r\n };\r\n var getFilterExpressionForDate = function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var dateStart;\r\n var dateEnd;\r\n var dateInterval;\r\n var values = getDateValues(filterValue);\r\n var selector = getFilterSelector(column, target);\r\n if (\"headerFilter\" === target) {\r\n dateInterval = getGroupInterval(column)[values.length - 1]\r\n } else {\r\n if (\"datetime\" === column.dataType) {\r\n dateInterval = \"minute\"\r\n }\r\n }\r\n switch (dateInterval) {\r\n case \"year\":\r\n dateStart = new Date(values[0], 0, 1);\r\n dateEnd = new Date(values[0] + 1, 0, 1);\r\n break;\r\n case \"month\":\r\n dateStart = new Date(values[0], values[1], 1);\r\n dateEnd = new Date(values[0], values[1] + 1, 1);\r\n break;\r\n case \"quarter\":\r\n dateStart = new Date(values[0], 3 * values[1], 1);\r\n dateEnd = new Date(values[0], 3 * values[1] + 3, 1);\r\n break;\r\n case \"hour\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3] + 1);\r\n break;\r\n case \"minute\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4] + 1);\r\n break;\r\n case \"second\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4], values[5]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4], values[5] + 1);\r\n break;\r\n default:\r\n dateStart = new Date(values[0], values[1], values[2]);\r\n dateEnd = new Date(values[0], values[1], values[2] + 1)\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"<\":\r\n return [selector, \"<\", dateStart];\r\n case \"<=\":\r\n return [selector, \"<\", dateEnd];\r\n case \">\":\r\n return [selector, \">=\", dateEnd];\r\n case \">=\":\r\n return [selector, \">=\", dateStart];\r\n case \"<>\":\r\n return [\r\n [selector, \"<\", dateStart], \"or\", [selector, \">=\", dateEnd]\r\n ];\r\n default:\r\n return [\r\n [selector, \">=\", dateStart], \"and\", [selector, \"<\", dateEnd]\r\n ]\r\n }\r\n };\r\n var getFilterExpressionForNumber = function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var selector = getFilterSelector(column, target);\r\n var groupInterval = getGroupInterval(column);\r\n if (\"headerFilter\" === target && groupInterval && (0, _type.isDefined)(filterValue)) {\r\n var values = (\"\" + filterValue).split(\"/\");\r\n var value = Number(values[values.length - 1]);\r\n var interval = groupInterval[values.length - 1];\r\n var startFilterValue = [selector, \">=\", value];\r\n var endFilterValue = [selector, \"<\", value + interval];\r\n var condition = [startFilterValue, \"and\", endFilterValue];\r\n return condition\r\n }\r\n return [selector, selectedFilterOperation || \"=\", filterValue]\r\n };\r\n return {\r\n defaultCalculateFilterExpression: function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var selector = getFilterSelector(column, target);\r\n var isSearchByDisplayValue = column.calculateDisplayValue && \"search\" === target;\r\n var dataType = isSearchByDisplayValue && column.lookup && column.lookup.dataType || column.dataType;\r\n var filter = null;\r\n if ((\"headerFilter\" === target || \"filterBuilder\" === target) && null === filterValue) {\r\n filter = [selector, selectedFilterOperation || \"=\", null];\r\n if (\"string\" === dataType) {\r\n filter = [filter, \"=\" === selectedFilterOperation ? \"or\" : \"and\", [selector, selectedFilterOperation || \"=\", \"\"]]\r\n }\r\n } else {\r\n if (\"string\" === dataType && (!column.lookup || isSearchByDisplayValue)) {\r\n filter = [selector, selectedFilterOperation || \"contains\", filterValue]\r\n } else {\r\n if (\"between\" === selectedFilterOperation) {\r\n return getFilterExpressionByRange.apply(column, [filterValue, target])\r\n } else {\r\n if (isDateType(dataType) && (0, _type.isDefined)(filterValue)) {\r\n return getFilterExpressionForDate.apply(column, arguments)\r\n } else {\r\n if (\"number\" === dataType) {\r\n return getFilterExpressionForNumber.apply(column, arguments)\r\n } else {\r\n if (\"object\" !== dataType) {\r\n filter = [selector, selectedFilterOperation || \"=\", filterValue]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return filter\r\n },\r\n getGroupInterval: getGroupInterval\r\n }\r\n}();\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/*!\n * devextreme-vue\n * Version: 20.2.7\n * Build date: Thu Apr 22 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxToolbarItem = exports.DxShow = exports.DxPosition = exports.DxOptions = exports.DxOffset = exports.DxMy = exports.DxItem = exports.DxHide = exports.DxDropDownOptions = exports.DxCollision = exports.DxButton = exports.DxBoundaryOffset = exports.DxAt = exports.DxAnimation = exports.DxSelectBox = void 0;\nvar select_box_1 = require(\"devextreme/ui/select_box\");\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxSelectBox = index_1.createComponent({\n props: {\n acceptCustomValue: Boolean,\n accessKey: String,\n activeStateEnabled: Boolean,\n buttons: Array,\n dataSource: [Array, Object, String],\n deferRendering: Boolean,\n disabled: Boolean,\n displayExpr: [Function, String],\n displayValue: String,\n dropDownButtonTemplate: {},\n dropDownOptions: Object,\n elementAttr: Object,\n fieldTemplate: {},\n focusStateEnabled: Boolean,\n grouped: Boolean,\n groupTemplate: {},\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n inputAttr: Object,\n isValid: Boolean,\n items: Array,\n itemTemplate: {},\n maxLength: [Number, String],\n minSearchLength: Number,\n name: String,\n noDataText: String,\n onChange: Function,\n onClosed: Function,\n onContentReady: Function,\n onCopy: Function,\n onCustomItemCreating: Function,\n onCut: Function,\n onDisposing: Function,\n onEnterKey: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onInput: Function,\n onItemClick: Function,\n onKeyDown: Function,\n onKeyUp: Function,\n onOpened: Function,\n onOptionChanged: Function,\n onPaste: Function,\n onSelectionChanged: Function,\n onValueChanged: Function,\n opened: Boolean,\n openOnFieldClick: Boolean,\n placeholder: String,\n readOnly: Boolean,\n rtlEnabled: Boolean,\n searchEnabled: Boolean,\n searchExpr: [Array, Function, String],\n searchMode: String,\n searchTimeout: Number,\n selectedItem: {},\n showClearButton: Boolean,\n showDataBeforeSearch: Boolean,\n showDropDownButton: Boolean,\n showSelectionControls: Boolean,\n spellcheck: Boolean,\n stylingMode: String,\n tabIndex: Number,\n text: String,\n validationError: Object,\n validationErrors: Array,\n validationMessageMode: String,\n validationStatus: String,\n value: {},\n valueChangeEvent: String,\n valueExpr: [Function, String],\n visible: Boolean,\n width: [Function, Number, String],\n wrapItemText: Boolean\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:acceptCustomValue\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:buttons\": null,\n \"update:dataSource\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:displayExpr\": null,\n \"update:displayValue\": null,\n \"update:dropDownButtonTemplate\": null,\n \"update:dropDownOptions\": null,\n \"update:elementAttr\": null,\n \"update:fieldTemplate\": null,\n \"update:focusStateEnabled\": null,\n \"update:grouped\": null,\n \"update:groupTemplate\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:inputAttr\": null,\n \"update:isValid\": null,\n \"update:items\": null,\n \"update:itemTemplate\": null,\n \"update:maxLength\": null,\n \"update:minSearchLength\": null,\n \"update:name\": null,\n \"update:noDataText\": null,\n \"update:onChange\": null,\n \"update:onClosed\": null,\n \"update:onContentReady\": null,\n \"update:onCopy\": null,\n \"update:onCustomItemCreating\": null,\n \"update:onCut\": null,\n \"update:onDisposing\": null,\n \"update:onEnterKey\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onInput\": null,\n \"update:onItemClick\": null,\n \"update:onKeyDown\": null,\n \"update:onKeyUp\": null,\n \"update:onOpened\": null,\n \"update:onOptionChanged\": null,\n \"update:onPaste\": null,\n \"update:onSelectionChanged\": null,\n \"update:onValueChanged\": null,\n \"update:opened\": null,\n \"update:openOnFieldClick\": null,\n \"update:placeholder\": null,\n \"update:readOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:searchEnabled\": null,\n \"update:searchExpr\": null,\n \"update:searchMode\": null,\n \"update:searchTimeout\": null,\n \"update:selectedItem\": null,\n \"update:showClearButton\": null,\n \"update:showDataBeforeSearch\": null,\n \"update:showDropDownButton\": null,\n \"update:showSelectionControls\": null,\n \"update:spellcheck\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:text\": null,\n \"update:validationError\": null,\n \"update:validationErrors\": null,\n \"update:validationMessageMode\": null,\n \"update:validationStatus\": null,\n \"update:value\": null,\n \"update:valueChangeEvent\": null,\n \"update:valueExpr\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wrapItemText\": null,\n },\n model: { prop: \"value\", event: \"update:value\" },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = select_box_1.default;\n this.$_expectedChildren = {\n button: { isCollectionItem: true, optionName: \"buttons\" },\n dropDownOptions: { isCollectionItem: false, optionName: \"dropDownOptions\" },\n item: { isCollectionItem: true, optionName: \"items\" }\n };\n }\n});\nexports.DxSelectBox = DxSelectBox;\nvar DxAnimation = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:hide\": null,\n \"update:show\": null,\n },\n props: {\n hide: Object,\n show: Object\n }\n});\nexports.DxAnimation = DxAnimation;\nDxAnimation.$_optionName = \"animation\";\nDxAnimation.$_expectedChildren = {\n hide: { isCollectionItem: false, optionName: \"hide\" },\n show: { isCollectionItem: false, optionName: \"show\" }\n};\nvar DxAt = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxAt = DxAt;\nDxAt.$_optionName = \"at\";\nvar DxBoundaryOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxBoundaryOffset = DxBoundaryOffset;\nDxBoundaryOffset.$_optionName = \"boundaryOffset\";\nvar DxButton = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:location\": null,\n \"update:name\": null,\n \"update:options\": null,\n },\n props: {\n location: String,\n name: String,\n options: Object\n }\n});\nexports.DxButton = DxButton;\nDxButton.$_optionName = \"buttons\";\nDxButton.$_isCollectionItem = true;\nDxButton.$_expectedChildren = {\n options: { isCollectionItem: false, optionName: \"options\" }\n};\nvar DxCollision = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxCollision = DxCollision;\nDxCollision.$_optionName = \"collision\";\nvar DxDropDownOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragEnabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxHeight\": null,\n \"update:maxWidth\": null,\n \"update:minHeight\": null,\n \"update:minWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onHidden\": null,\n \"update:onHiding\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onResize\": null,\n \"update:onResizeEnd\": null,\n \"update:onResizeStart\": null,\n \"update:onShowing\": null,\n \"update:onShown\": null,\n \"update:onTitleRendered\": null,\n \"update:position\": null,\n \"update:resizeEnabled\": null,\n \"update:rtlEnabled\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showCloseButton\": null,\n \"update:showTitle\": null,\n \"update:tabIndex\": null,\n \"update:title\": null,\n \"update:titleTemplate\": null,\n \"update:toolbarItems\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n animation: Object,\n bindingOptions: Object,\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n deferRendering: Boolean,\n disabled: Boolean,\n dragEnabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n maxHeight: [Function, Number, String],\n maxWidth: [Function, Number, String],\n minHeight: [Function, Number, String],\n minWidth: [Function, Number, String],\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onHidden: Function,\n onHiding: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onResize: Function,\n onResizeEnd: Function,\n onResizeStart: Function,\n onShowing: Function,\n onShown: Function,\n onTitleRendered: Function,\n position: [Function, Object, String],\n resizeEnabled: Boolean,\n rtlEnabled: Boolean,\n shading: Boolean,\n shadingColor: String,\n showCloseButton: Boolean,\n showTitle: Boolean,\n tabIndex: Number,\n title: String,\n titleTemplate: {},\n toolbarItems: Array,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxDropDownOptions = DxDropDownOptions;\nDxDropDownOptions.$_optionName = \"dropDownOptions\";\nDxDropDownOptions.$_expectedChildren = {\n animation: { isCollectionItem: false, optionName: \"animation\" },\n position: { isCollectionItem: false, optionName: \"position\" },\n toolbarItem: { isCollectionItem: true, optionName: \"toolbarItems\" }\n};\nvar DxHide = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: [Number, Object, String],\n staggerDelay: Number,\n start: Function,\n to: [Number, Object, String],\n type: String\n }\n});\nexports.DxHide = DxHide;\nDxHide.$_optionName = \"hide\";\nvar DxItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n disabled: Boolean,\n html: String,\n template: {},\n text: String,\n visible: Boolean\n }\n});\nexports.DxItem = DxItem;\nDxItem.$_optionName = \"items\";\nDxItem.$_isCollectionItem = true;\nvar DxMy = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxMy = DxMy;\nDxMy.$_optionName = \"my\";\nvar DxOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxOffset = DxOffset;\nDxOffset.$_optionName = \"offset\";\nvar DxOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:bindingOptions\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:icon\": null,\n \"update:onClick\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:rtlEnabled\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:type\": null,\n \"update:useSubmitBehavior\": null,\n \"update:validationGroup\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n bindingOptions: Object,\n disabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n icon: String,\n onClick: Function,\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n rtlEnabled: Boolean,\n stylingMode: String,\n tabIndex: Number,\n template: {},\n text: String,\n type: String,\n useSubmitBehavior: Boolean,\n validationGroup: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxOptions = DxOptions;\nDxOptions.$_optionName = \"options\";\nvar DxPosition = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:at\": null,\n \"update:boundary\": null,\n \"update:boundaryOffset\": null,\n \"update:collision\": null,\n \"update:my\": null,\n \"update:of\": null,\n \"update:offset\": null,\n },\n props: {\n at: [Object, String],\n boundary: {},\n boundaryOffset: [Object, String],\n collision: [Object, String],\n my: [Object, String],\n of: {},\n offset: [Object, String]\n }\n});\nexports.DxPosition = DxPosition;\nDxPosition.$_optionName = \"position\";\nDxPosition.$_expectedChildren = {\n at: { isCollectionItem: false, optionName: \"at\" },\n boundaryOffset: { isCollectionItem: false, optionName: \"boundaryOffset\" },\n collision: { isCollectionItem: false, optionName: \"collision\" },\n my: { isCollectionItem: false, optionName: \"my\" },\n offset: { isCollectionItem: false, optionName: \"offset\" }\n};\nvar DxShow = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: [Number, Object, String],\n staggerDelay: Number,\n start: Function,\n to: [Number, Object, String],\n type: String\n }\n});\nexports.DxShow = DxShow;\nDxShow.$_optionName = \"show\";\nvar DxToolbarItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:location\": null,\n \"update:options\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:toolbar\": null,\n \"update:visible\": null,\n \"update:widget\": null,\n },\n props: {\n disabled: Boolean,\n html: String,\n location: String,\n options: Object,\n template: {},\n text: String,\n toolbar: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxToolbarItem = DxToolbarItem;\nDxToolbarItem.$_optionName = \"toolbarItems\";\nDxToolbarItem.$_isCollectionItem = true;\nexports.default = DxSelectBox;\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.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 _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.utils\"));\r\nvar _uiGrid_core2 = _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\n\r\nfunction ownKeys(object, enumerableOnly) {\r\n var keys = Object.keys(object);\r\n if (Object.getOwnPropertySymbols) {\r\n var symbols = Object.getOwnPropertySymbols(object);\r\n if (enumerableOnly) {\r\n symbols = symbols.filter(function(sym) {\r\n return Object.getOwnPropertyDescriptor(object, sym).enumerable\r\n })\r\n }\r\n keys.push.apply(keys, symbols)\r\n }\r\n return keys\r\n}\r\n\r\nfunction _objectSpread(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = null != arguments[i] ? arguments[i] : {};\r\n if (i % 2) {\r\n ownKeys(Object(source), true).forEach(function(key) {\r\n _defineProperty(target, key, source[key])\r\n })\r\n } else {\r\n if (Object.getOwnPropertyDescriptors) {\r\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source))\r\n } else {\r\n ownKeys(Object(source)).forEach(function(key) {\r\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\r\n })\r\n }\r\n }\r\n }\r\n return target\r\n}\r\n\r\nfunction _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\nvar _default = _objectSpread(_objectSpread(_objectSpread({}, _uiGrid_core2.default), _uiGrid_core.default), {}, {\r\n modules: []\r\n});\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _sortable = _interopRequireDefault(require(\"../sortable\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar COMMAND_HANDLE_CLASS = \"dx-command-drag\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar HANDLE_ICON_CLASS = \"drag-icon\";\r\nvar ROWS_VIEW = \"rowsview\";\r\nvar SORTABLE_WITHOUT_HANDLE_CLASS = \"dx-sortable-without-handle\";\r\nvar RowDraggingExtender = {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateHandleColumn()\r\n },\r\n _allowReordering: function() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n return !!(rowDragging && (rowDragging.allowReordering || rowDragging.allowDropInsideItem || rowDragging.group))\r\n },\r\n _updateHandleColumn: function() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n var allowReordering = this._allowReordering();\r\n var columnsController = this._columnsController;\r\n var isHandleColumnVisible = allowReordering && rowDragging.showDragIcons;\r\n columnsController && columnsController.addCommandColumn({\r\n type: \"drag\",\r\n command: \"drag\",\r\n visibleIndex: -2,\r\n alignment: \"center\",\r\n cssClass: COMMAND_HANDLE_CLASS,\r\n width: \"auto\",\r\n cellTemplate: this._getHandleTemplate(),\r\n visible: isHandleColumnVisible\r\n });\r\n columnsController.columnOption(\"type:drag\", \"visible\", isHandleColumnVisible)\r\n },\r\n _renderContent: function() {\r\n var _this = this;\r\n var rowDragging = this.option(\"rowDragging\");\r\n var allowReordering = this._allowReordering();\r\n var $content = this.callBase.apply(this, arguments);\r\n var isFixedTableRendering = this._isFixedTableRendering;\r\n var sortableName = \"_sortable\";\r\n var sortableFixedName = \"_sortableFixed\";\r\n var currentSortableName = isFixedTableRendering ? sortableFixedName : sortableName;\r\n var anotherSortableName = isFixedTableRendering ? sortableName : sortableFixedName;\r\n var togglePointerEventsStyle = function(toggle) {\r\n var _this$sortableFixedNa;\r\n null === (_this$sortableFixedNa = _this[sortableFixedName]) || void 0 === _this$sortableFixedNa ? void 0 : _this$sortableFixedNa.$element().css(\"pointerEvents\", toggle ? \"auto\" : \"\")\r\n };\r\n if ((allowReordering || this[currentSortableName]) && $content.length) {\r\n this[currentSortableName] = this._createComponent($content, _sortable.default, (0, _extend.extend)({\r\n component: this.component,\r\n contentTemplate: null,\r\n filter: \"> table > tbody > .dx-row:not(.dx-freespace-row):not(.dx-virtual-row)\",\r\n dragTemplate: this._getDraggableRowTemplate(),\r\n handle: rowDragging.showDragIcons && \".\".concat(COMMAND_HANDLE_CLASS),\r\n dropFeedbackMode: \"indicate\"\r\n }, rowDragging, {\r\n onDragStart: function(e) {\r\n var _rowDragging$onDragSt;\r\n var row = e.component.getVisibleRows()[e.fromIndex];\r\n e.itemData = row && row.data;\r\n var isDataRow = row && \"data\" === row.rowType;\r\n e.cancel = !allowReordering || !isDataRow;\r\n null === (_rowDragging$onDragSt = rowDragging.onDragStart) || void 0 === _rowDragging$onDragSt ? void 0 : _rowDragging$onDragSt.call(rowDragging, e)\r\n },\r\n onDragEnter: function() {\r\n togglePointerEventsStyle(true)\r\n },\r\n onDragLeave: function() {\r\n togglePointerEventsStyle(false)\r\n },\r\n onDragEnd: function(e) {\r\n var _rowDragging$onDragEn;\r\n togglePointerEventsStyle(false);\r\n null === (_rowDragging$onDragEn = rowDragging.onDragEnd) || void 0 === _rowDragging$onDragEn ? void 0 : _rowDragging$onDragEn.call(rowDragging, e)\r\n },\r\n dropFeedbackMode: _browser.default.msie ? \"indicate\" : rowDragging.dropFeedbackMode,\r\n onOptionChanged: function(e) {\r\n var hasFixedSortable = _this[sortableFixedName];\r\n if (hasFixedSortable) {\r\n if (\"fromIndex\" === e.name || \"toIndex\" === e.name) {\r\n _this[anotherSortableName].option(e.name, e.value)\r\n }\r\n }\r\n }\r\n }));\r\n $content.toggleClass(SORTABLE_WITHOUT_HANDLE_CLASS, allowReordering && !rowDragging.showDragIcons)\r\n }\r\n return $content\r\n },\r\n _resizeCore: function() {\r\n this.callBase.apply(this, arguments);\r\n var offset = this._dataController.getRowIndexOffset();\r\n [this._sortable, this._sortableFixed].forEach(function(sortable) {\r\n null === sortable || void 0 === sortable ? void 0 : sortable.option(\"offset\", offset);\r\n null === sortable || void 0 === sortable ? void 0 : sortable.update()\r\n })\r\n },\r\n _getDraggableGridOptions: function(options) {\r\n var gridOptions = this.option();\r\n var columns = this.getColumns();\r\n var $rowElement = (0, _renderer.default)(this.getRowElement(options.rowIndex));\r\n return {\r\n dataSource: [{\r\n id: 1,\r\n parentId: 0\r\n }],\r\n showBorders: true,\r\n showColumnHeaders: false,\r\n scrolling: {\r\n useNative: false,\r\n showScrollbar: false\r\n },\r\n pager: {\r\n visible: false\r\n },\r\n loadingTimeout: void 0,\r\n columnFixing: gridOptions.columnFixing,\r\n columnAutoWidth: gridOptions.columnAutoWidth,\r\n showColumnLines: gridOptions.showColumnLines,\r\n columns: columns.map(function(column) {\r\n return {\r\n width: column.width || column.visibleWidth,\r\n fixed: column.fixed,\r\n fixedPosition: column.fixedPosition\r\n }\r\n }),\r\n onRowPrepared: function(e) {\r\n var rowsView = e.component.getView(\"rowsView\");\r\n (0, _renderer.default)(e.rowElement).replaceWith($rowElement.eq(rowsView._isFixedTableRendering ? 1 : 0).clone())\r\n }\r\n }\r\n },\r\n _getDraggableRowTemplate: function() {\r\n var _this2 = this;\r\n return function(options) {\r\n var $rootElement = _this2.component.$element();\r\n var $dataGridContainer = (0, _renderer.default)(\"
\").width($rootElement.width());\r\n var items = _this2._dataController.items();\r\n var row = items && items[options.fromIndex];\r\n var gridOptions = _this2._getDraggableGridOptions(row);\r\n _this2._createComponent($dataGridContainer, _this2.component.NAME, gridOptions);\r\n $dataGridContainer.find(\".dx-gridbase-container\").children(\":not(.\".concat(_this2.addWidgetPrefix(ROWS_VIEW), \")\")).hide();\r\n return $dataGridContainer\r\n }\r\n },\r\n _getHandleTemplate: function() {\r\n var _this3 = this;\r\n return function(container, options) {\r\n if (\"data\" === options.rowType) {\r\n (0, _renderer.default)(container).addClass(CELL_FOCUS_DISABLED_CLASS);\r\n return (0, _renderer.default)(\"\").addClass(_this3.addWidgetPrefix(HANDLE_ICON_CLASS))\r\n } else {\r\n _uiGrid_core.default.setEmptyText((0, _renderer.default)(container))\r\n }\r\n }\r\n },\r\n optionChanged: function(args) {\r\n if (\"rowDragging\" === args.name) {\r\n this._updateHandleColumn();\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n};\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n rowDragging: {\r\n showDragIcons: true,\r\n dropFeedbackMode: \"indicate\",\r\n allowReordering: false,\r\n allowDropInsideItem: false\r\n }\r\n }\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: RowDraggingExtender\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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\nexports.default = void 0;\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _pager = _interopRequireDefault(require(\"../pager\"));\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _window = require(\"../../core/utils/window\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar PAGER_CLASS = \"pager\";\r\nvar MAX_PAGES_COUNT = 10;\r\nvar getPageIndex = function(dataController) {\r\n return 1 + (parseInt(dataController.pageIndex()) || 0)\r\n};\r\nvar PagerView = _uiGrid_core.default.View.inherit({\r\n init: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that._isVisible = false;\r\n dataController.changed.add(function(e) {\r\n if (e && e.repaintChangesOnly) {\r\n var pager = that._getPager();\r\n if (pager) {\r\n pager.option({\r\n pageIndex: getPageIndex(dataController),\r\n pageSize: dataController.pageSize(),\r\n pageCount: dataController.pageCount(),\r\n totalCount: dataController.totalCount(),\r\n hasKnownLastPage: dataController.hasKnownLastPage()\r\n })\r\n } else {\r\n that.render()\r\n }\r\n } else {\r\n if (!e || \"update\" !== e.changeType && \"updateSelection\" !== e.changeType) {\r\n that.render()\r\n }\r\n }\r\n })\r\n },\r\n _getPager: function() {\r\n var $element = this.element();\r\n return $element && $element.data(\"dxPager\")\r\n },\r\n _renderCore: function() {\r\n var that = this;\r\n var $element = that.element().addClass(that.addWidgetPrefix(PAGER_CLASS));\r\n var pagerOptions = that.option(\"pager\") || {};\r\n var dataController = that.getController(\"data\");\r\n var keyboardController = that.getController(\"keyboardNavigation\");\r\n var options = {\r\n maxPagesCount: MAX_PAGES_COUNT,\r\n pageIndex: getPageIndex(dataController),\r\n pageCount: dataController.pageCount(),\r\n pageSize: dataController.pageSize(),\r\n showPageSizes: pagerOptions.showPageSizeSelector,\r\n showInfo: pagerOptions.showInfo,\r\n displayMode: pagerOptions.displayMode,\r\n pagesNavigatorVisible: pagerOptions.visible,\r\n showNavigationButtons: pagerOptions.showNavigationButtons,\r\n pageSizes: that.getPageSizes(),\r\n totalCount: dataController.totalCount(),\r\n hasKnownLastPage: dataController.hasKnownLastPage(),\r\n pageIndexChanged: function(pageIndex) {\r\n if (dataController.pageIndex() !== pageIndex - 1) {\r\n setTimeout(function() {\r\n dataController.pageIndex(pageIndex - 1)\r\n })\r\n }\r\n },\r\n pageSizeChanged: function(pageSize) {\r\n setTimeout(function() {\r\n dataController.pageSize(pageSize)\r\n })\r\n },\r\n onKeyDown: function(e) {\r\n return keyboardController && keyboardController.executeAction(\"onKeyDown\", e)\r\n },\r\n useLegacyKeyboardNavigation: this.option(\"useLegacyKeyboardNavigation\"),\r\n useKeyboard: this.option(\"keyboardNavigation.enabled\")\r\n };\r\n if ((0, _type.isDefined)(pagerOptions.infoText)) {\r\n options.infoText = pagerOptions.infoText\r\n }\r\n that._createComponent($element, _pager.default, options)\r\n },\r\n getPageSizes: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n var pagerOptions = that.option(\"pager\");\r\n var allowedPageSizes = pagerOptions && pagerOptions.allowedPageSizes;\r\n var pageSize = dataController.pageSize();\r\n if (!(0, _type.isDefined)(that._pageSizes) || (0, _array.inArray)(pageSize, that._pageSizes) === -1) {\r\n that._pageSizes = [];\r\n if (pagerOptions) {\r\n if (Array.isArray(allowedPageSizes)) {\r\n that._pageSizes = allowedPageSizes\r\n } else {\r\n if (allowedPageSizes && pageSize > 1) {\r\n that._pageSizes = [Math.floor(pageSize / 2), pageSize, 2 * pageSize]\r\n }\r\n }\r\n }\r\n }\r\n return that._pageSizes\r\n },\r\n isVisible: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n var pagerOptions = that.option(\"pager\");\r\n var pagerVisible = pagerOptions && pagerOptions.visible;\r\n var scrolling = that.option(\"scrolling\");\r\n if (that._isVisible) {\r\n return true\r\n }\r\n if (\"auto\" === pagerVisible) {\r\n if (scrolling && (\"virtual\" === scrolling.mode || \"infinite\" === scrolling.mode)) {\r\n pagerVisible = false\r\n } else {\r\n pagerVisible = dataController.pageCount() > 1 || dataController.isLoaded() && !dataController.hasKnownLastPage()\r\n }\r\n }\r\n that._isVisible = pagerVisible;\r\n return pagerVisible\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n var name = args.name;\r\n var isPager = \"pager\" === name;\r\n var isPaging = \"paging\" === name;\r\n var isDataSource = \"dataSource\" === name;\r\n var isScrolling = \"scrolling\" === name;\r\n var dataController = that.getController(\"data\");\r\n if (isPager || isPaging || isScrolling || isDataSource) {\r\n args.handled = true;\r\n if (dataController.skipProcessingPagingChange(args.fullName)) {\r\n return\r\n }\r\n if (isPager || isPaging) {\r\n that._pageSizes = null\r\n }\r\n if (isPager || isPaging || isScrolling) {\r\n that._isVisible = false\r\n }\r\n if (!isDataSource) {\r\n that._invalidate();\r\n if ((0, _window.hasWindow)() && isPager && that.component) {\r\n that.component.resize()\r\n }\r\n }\r\n }\r\n }\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n pager: {\r\n visible: \"auto\",\r\n showPageSizeSelector: false,\r\n allowedPageSizes: \"auto\"\r\n }\r\n }\r\n },\r\n views: {\r\n pagerView: PagerView\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.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.FooterView = exports.renderSummaryCell = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _uiData_grid2 = _interopRequireDefault(require(\"./ui.data_grid.data_source_adapter\"));\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.columns_view\");\r\nvar _aggregate_calculator = _interopRequireDefault(require(\"./aggregate_calculator\"));\r\nvar _query = _interopRequireDefault(require(\"../../data/query\"));\r\nvar _store_helper = _interopRequireDefault(require(\"../../data/store_helper\"));\r\nvar _utils = _interopRequireDefault(require(\"../../data/utils\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DATAGRID_TOTAL_FOOTER_CLASS = \"dx-datagrid-total-footer\";\r\nvar DATAGRID_SUMMARY_ITEM_CLASS = \"dx-datagrid-summary-item\";\r\nvar DATAGRID_TEXT_CONTENT_CLASS = \"dx-datagrid-text-content\";\r\nvar DATAGRID_GROUP_FOOTER_CLASS = \"dx-datagrid-group-footer\";\r\nvar DATAGRID_GROUP_TEXT_CONTENT_CLASS = \"dx-datagrid-group-text-content\";\r\nvar DATAGRID_NOWRAP_CLASS = \"dx-datagrid-nowrap\";\r\nvar DATAGRID_GROUP_FOOTER_ROW_TYPE = \"groupFooter\";\r\nvar renderSummaryCell = function(cell, options) {\r\n var $cell = (0, _renderer.default)(cell);\r\n var column = options.column;\r\n var summaryItems = options.summaryItems;\r\n var $summaryItems = [];\r\n if (!column.command && summaryItems) {\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n var summaryItem = summaryItems[i];\r\n $summaryItems.push((0, _renderer.default)(\"
\").css(\"textAlign\", summaryItem.alignment || column.alignment).addClass(DATAGRID_SUMMARY_ITEM_CLASS).addClass(DATAGRID_TEXT_CONTENT_CLASS).addClass(summaryItem.cssClass).toggleClass(DATAGRID_GROUP_TEXT_CONTENT_CLASS, \"group\" === options.rowType).text(_uiData_grid.default.getSummaryText(summaryItem, options.summaryTexts)))\r\n }\r\n $cell.append($summaryItems)\r\n }\r\n};\r\nexports.renderSummaryCell = renderSummaryCell;\r\nvar getSummaryCellOptions = function(that, options) {\r\n var summaryTexts = that.option(\"summary.texts\") || {};\r\n return {\r\n totalItem: options.row,\r\n summaryItems: options.row.summaryCells[options.columnIndex],\r\n summaryTexts: summaryTexts\r\n }\r\n};\r\nvar getGroupAggregates = function(data) {\r\n return data.summary || data.aggregates || []\r\n};\r\nvar recalculateWhileEditing = function(that) {\r\n return that.option(\"summary.recalculateWhileEditing\")\r\n};\r\nvar FooterView = _uiGrid_core.ColumnsView.inherit(function() {\r\n return {\r\n _getRows: function() {\r\n return this._dataController.footerItems()\r\n },\r\n _getCellOptions: function(options) {\r\n return (0, _extend.extend)(this.callBase(options), getSummaryCellOptions(this, options))\r\n },\r\n _renderCellContent: function($cell, options) {\r\n renderSummaryCell($cell, options);\r\n this.callBase($cell, options)\r\n },\r\n _renderCore: function(change) {\r\n var totalItem = this._dataController.footerItems()[0];\r\n if (!change || !change.columnIndices) {\r\n this.element().empty().addClass(DATAGRID_TOTAL_FOOTER_CLASS).toggleClass(DATAGRID_NOWRAP_CLASS, !this.option(\"wordWrapEnabled\"))\r\n }\r\n if (totalItem && totalItem.summaryCells && totalItem.summaryCells.length) {\r\n this._updateContent(this._renderTable({\r\n change: change\r\n }), change)\r\n }\r\n },\r\n _updateContent: function($newTable, change) {\r\n if (change && \"update\" === change.changeType && change.columnIndices) {\r\n var $row = this.getTableElement().find(\".dx-row\");\r\n var $newRow = $newTable.find(\".dx-row\");\r\n this._updateCells($row, $newRow, change.columnIndices[0])\r\n } else {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _rowClick: function(e) {\r\n var item = this._dataController.footerItems()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", (0, _extend.extend)({}, e, item))\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n this.callBase(e)\r\n }\r\n },\r\n _handleDataChanged: function(e) {\r\n var changeType = e.changeType;\r\n if (\"update\" === e.changeType && e.repaintChangesOnly) {\r\n if (!e.totalColumnIndices) {\r\n this.render()\r\n } else {\r\n if (e.totalColumnIndices.length) {\r\n this.render(null, {\r\n changeType: \"update\",\r\n columnIndices: [e.totalColumnIndices]\r\n })\r\n }\r\n }\r\n } else {\r\n if (\"refresh\" === changeType || \"append\" === changeType || \"prepend\" === changeType) {\r\n this.render()\r\n }\r\n }\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n isVisible: function() {\r\n return !!this._dataController.footerItems().length\r\n }\r\n }\r\n}());\r\nexports.FooterView = FooterView;\r\nvar SummaryDataSourceAdapterExtender = function() {\r\n function forEachGroup(groups, groupCount, callback, path) {\r\n path = path || [];\r\n for (var i = 0; i < groups.length; i++) {\r\n path.push(groups[i].key);\r\n if (1 === groupCount) {\r\n callback(path, groups[i].items)\r\n } else {\r\n forEachGroup(groups[i].items, groupCount - 1, callback, path)\r\n }\r\n path.pop()\r\n }\r\n }\r\n return {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._totalAggregates = [];\r\n this._summaryGetter = _common.noop\r\n },\r\n summaryGetter: function(_summaryGetter) {\r\n if (!arguments.length) {\r\n return this._summaryGetter\r\n }\r\n if ((0, _type.isFunction)(_summaryGetter)) {\r\n this._summaryGetter = _summaryGetter\r\n }\r\n },\r\n summary: function(_summary) {\r\n if (!arguments.length) {\r\n return this._summaryGetter()\r\n }\r\n this._summaryGetter = function() {\r\n return _summary\r\n }\r\n },\r\n totalAggregates: function() {\r\n return this._totalAggregates\r\n },\r\n isLastLevelGroupItemsPagingLocal: function() {\r\n var summary = this.summary();\r\n var sortByGroupsInfo = summary && summary.sortByGroups();\r\n return sortByGroupsInfo && sortByGroupsInfo.length\r\n },\r\n sortLastLevelGroupItems: function(items, groups, paths) {\r\n var groupedItems = _store_helper.default.multiLevelGroup((0, _query.default)(items), groups).toArray();\r\n var result = [];\r\n paths.forEach(function(path) {\r\n forEachGroup(groupedItems, groups.length, function(itemsPath, items) {\r\n if (path.toString() === itemsPath.toString()) {\r\n result = result.concat(items)\r\n }\r\n })\r\n });\r\n return result\r\n }\r\n }\r\n}();\r\nvar SummaryDataSourceAdapterClientExtender = function() {\r\n var applyAddedData = function applyAddedData(data, insertedData, groupLevel) {\r\n if (groupLevel) {\r\n return applyAddedData(data, insertedData.map(function(item) {\r\n return {\r\n items: [item]\r\n }\r\n }, groupLevel - 1))\r\n }\r\n return data.concat(insertedData)\r\n };\r\n var applyRemovedData = function applyRemovedData(data, removedData, groupLevel) {\r\n if (groupLevel) {\r\n return data.map(function(data) {\r\n var updatedData = {};\r\n var updatedItems = applyRemovedData(data.items || [], removedData, groupLevel - 1);\r\n Object.defineProperty(updatedData, \"aggregates\", {\r\n get: function() {\r\n return data.aggregates\r\n },\r\n set: function(value) {\r\n data.aggregates = value\r\n }\r\n });\r\n return (0, _extend.extend)(updatedData, data, {\r\n items: updatedItems\r\n })\r\n })\r\n }\r\n return data.filter(function(data) {\r\n return removedData.indexOf(data) < 0\r\n })\r\n };\r\n var calculateAggregates = function(that, summary, data, groupLevel) {\r\n var calculator;\r\n if (recalculateWhileEditing(that)) {\r\n var editingController = that.getController(\"editing\");\r\n if (editingController) {\r\n var insertedData = editingController.getInsertedData();\r\n if (insertedData.length) {\r\n data = applyAddedData(data, insertedData, groupLevel)\r\n }\r\n var removedData = editingController.getRemovedData();\r\n if (removedData.length) {\r\n data = applyRemovedData(data, removedData, groupLevel)\r\n }\r\n }\r\n }\r\n if (summary) {\r\n calculator = new _aggregate_calculator.default({\r\n totalAggregates: summary.totalAggregates,\r\n groupAggregates: summary.groupAggregates,\r\n data: data,\r\n groupLevel: groupLevel\r\n });\r\n calculator.calculate()\r\n }\r\n return calculator ? calculator.totalAggregates() : []\r\n };\r\n var sortGroupsBySummaryCore = function sortGroupsBySummaryCore(items, groups, sortByGroups) {\r\n if (!items || !groups.length) {\r\n return items\r\n }\r\n var group = groups[0];\r\n var sorts = sortByGroups[0];\r\n var query;\r\n if (group && sorts && sorts.length) {\r\n query = (0, _query.default)(items);\r\n (0, _iterator.each)(sorts, function(index) {\r\n if (0 === index) {\r\n query = query.sortBy(this.selector, this.desc)\r\n } else {\r\n query = query.thenBy(this.selector, this.desc)\r\n }\r\n });\r\n query.enumerate().done(function(sortedItems) {\r\n items = sortedItems\r\n })\r\n }\r\n groups = groups.slice(1);\r\n sortByGroups = sortByGroups.slice(1);\r\n if (groups.length && sortByGroups.length) {\r\n (0, _iterator.each)(items, function() {\r\n this.items = sortGroupsBySummaryCore(this.items, groups, sortByGroups)\r\n })\r\n }\r\n return items\r\n };\r\n var sortGroupsBySummary = function(data, group, summary) {\r\n var sortByGroups = summary && summary.sortByGroups && summary.sortByGroups();\r\n if (sortByGroups && sortByGroups.length) {\r\n return sortGroupsBySummaryCore(data, group, sortByGroups)\r\n }\r\n return data\r\n };\r\n return {\r\n _customizeRemoteOperations: function(options) {\r\n var summary = this.summary();\r\n if (summary) {\r\n if (options.remoteOperations.summary) {\r\n if (!options.isCustomLoading || options.storeLoadOptions.isLoadingAll) {\r\n if (options.storeLoadOptions.group) {\r\n if (options.remoteOperations.grouping) {\r\n options.storeLoadOptions.groupSummary = summary.groupAggregates\r\n } else {\r\n if (summary.groupAggregates.length) {\r\n options.remoteOperations.paging = false\r\n }\r\n }\r\n }\r\n options.storeLoadOptions.totalSummary = summary.totalAggregates\r\n }\r\n } else {\r\n if (summary.totalAggregates.length || summary.groupAggregates.length && options.storeLoadOptions.group) {\r\n options.remoteOperations.paging = false\r\n }\r\n }\r\n }\r\n this.callBase.apply(this, arguments);\r\n var cachedExtra = options.cachedPagesData.extra;\r\n if (cachedExtra && cachedExtra.summary && !options.isCustomLoading) {\r\n options.storeLoadOptions.totalSummary = void 0\r\n }\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n var that = this;\r\n var groups = _utils.default.normalizeSortingInfo(options.storeLoadOptions.group || options.loadOptions.group || []);\r\n var remoteOperations = options.remoteOperations || {};\r\n var summary = that.summaryGetter()(remoteOperations);\r\n var totalAggregates;\r\n if (!options.isCustomLoading || options.storeLoadOptions.isLoadingAll) {\r\n if (remoteOperations.summary) {\r\n if (!remoteOperations.paging && groups.length && summary) {\r\n if (!remoteOperations.grouping) {\r\n calculateAggregates(that, {\r\n groupAggregates: summary.groupAggregates\r\n }, options.data, groups.length)\r\n }\r\n options.data = sortGroupsBySummary(options.data, groups, summary)\r\n }\r\n } else {\r\n if (!remoteOperations.paging) {\r\n totalAggregates = calculateAggregates(that, summary, options.data, groups.length);\r\n options.data = sortGroupsBySummary(options.data, groups, summary);\r\n options.extra = (0, _type.isPlainObject)(options.extra) ? options.extra : {};\r\n options.extra.summary = totalAggregates\r\n }\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n that._totalAggregates = options.extra && options.extra.summary || that._totalAggregates\r\n }\r\n that.callBase(options)\r\n }\r\n }\r\n}();\r\n_uiData_grid2.default.extend(SummaryDataSourceAdapterExtender);\r\n_uiData_grid2.default.extend(SummaryDataSourceAdapterClientExtender);\r\n_uiData_grid.default.registerModule(\"summary\", {\r\n defaultOptions: function() {\r\n return {\r\n summary: {\r\n groupItems: void 0,\r\n totalItems: void 0,\r\n calculateCustomSummary: void 0,\r\n skipEmptyValues: true,\r\n recalculateWhileEditing: false,\r\n texts: {\r\n sum: _message.default.getFormatter(\"dxDataGrid-summarySum\"),\r\n sumOtherColumn: _message.default.getFormatter(\"dxDataGrid-summarySumOtherColumn\"),\r\n min: _message.default.getFormatter(\"dxDataGrid-summaryMin\"),\r\n minOtherColumn: _message.default.getFormatter(\"dxDataGrid-summaryMinOtherColumn\"),\r\n max: _message.default.getFormatter(\"dxDataGrid-summaryMax\"),\r\n maxOtherColumn: _message.default.getFormatter(\"dxDataGrid-summaryMaxOtherColumn\"),\r\n avg: _message.default.getFormatter(\"dxDataGrid-summaryAvg\"),\r\n avgOtherColumn: _message.default.getFormatter(\"dxDataGrid-summaryAvgOtherColumn\"),\r\n count: _message.default.getFormatter(\"dxDataGrid-summaryCount\")\r\n }\r\n },\r\n sortByGroupSummaryInfo: void 0\r\n }\r\n },\r\n views: {\r\n footerView: FooterView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: function() {\r\n return {\r\n _isDataColumn: function(column) {\r\n return column && (!(0, _type.isDefined)(column.groupIndex) || column.showWhenGrouped)\r\n },\r\n _isGroupFooterVisible: function() {\r\n var groupItems = this.option(\"summary.groupItems\") || [];\r\n for (var i = 0; i < groupItems.length; i++) {\r\n var groupItem = groupItems[i];\r\n var column = this._columnsController.columnOption(groupItem.showInColumn || groupItem.column);\r\n if (groupItem.showInGroupFooter && this._isDataColumn(column)) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _processGroupItems: function(items, groupCount, options) {\r\n var data = options && options.data;\r\n var result = this.callBase.apply(this, arguments);\r\n if (options) {\r\n if (void 0 === options.isGroupFooterVisible) {\r\n options.isGroupFooterVisible = this._isGroupFooterVisible()\r\n }\r\n if (data && data.items && options.isGroupFooterVisible && (options.collectContinuationItems || !data.isContinuationOnNextPage)) {\r\n result.push({\r\n rowType: DATAGRID_GROUP_FOOTER_ROW_TYPE,\r\n key: options.path.slice(),\r\n data: data,\r\n groupIndex: options.path.length - 1,\r\n values: []\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _processGroupItem: function(groupItem, options) {\r\n var that = this;\r\n if (!options.summaryGroupItems) {\r\n options.summaryGroupItems = that.option(\"summary.groupItems\") || []\r\n }\r\n if (\"group\" === groupItem.rowType) {\r\n var groupColumnIndex = -1;\r\n var afterGroupColumnIndex = -1;\r\n (0, _iterator.each)(options.visibleColumns, function(visibleIndex) {\r\n var prevColumn = options.visibleColumns[visibleIndex - 1];\r\n if (groupItem.groupIndex === this.groupIndex) {\r\n groupColumnIndex = this.index\r\n }\r\n if (visibleIndex > 0 && \"expand\" === prevColumn.command && \"expand\" !== this.command) {\r\n afterGroupColumnIndex = this.index\r\n }\r\n });\r\n groupItem.summaryCells = this._calculateSummaryCells(options.summaryGroupItems, getGroupAggregates(groupItem.data), options.visibleColumns, function(summaryItem, column) {\r\n if (summaryItem.showInGroupFooter) {\r\n return -1\r\n }\r\n if (summaryItem.alignByColumn && column && !(0, _type.isDefined)(column.groupIndex) && column.index !== afterGroupColumnIndex) {\r\n return column.index\r\n } else {\r\n return groupColumnIndex\r\n }\r\n })\r\n }\r\n if (groupItem.rowType === DATAGRID_GROUP_FOOTER_ROW_TYPE) {\r\n groupItem.summaryCells = this._calculateSummaryCells(options.summaryGroupItems, getGroupAggregates(groupItem.data), options.visibleColumns, function(summaryItem, column) {\r\n return summaryItem.showInGroupFooter && that._isDataColumn(column) ? column.index : -1\r\n })\r\n }\r\n return groupItem\r\n },\r\n _calculateSummaryCells: function(summaryItems, aggregates, visibleColumns, calculateTargetColumnIndex) {\r\n var that = this;\r\n var summaryCells = [];\r\n var summaryCellsByColumns = {};\r\n (0, _iterator.each)(summaryItems, function(summaryIndex, summaryItem) {\r\n var column = that._columnsController.columnOption(summaryItem.column);\r\n var showInColumn = summaryItem.showInColumn && that._columnsController.columnOption(summaryItem.showInColumn) || column;\r\n var columnIndex = calculateTargetColumnIndex(summaryItem, showInColumn);\r\n if (columnIndex >= 0) {\r\n if (!summaryCellsByColumns[columnIndex]) {\r\n summaryCellsByColumns[columnIndex] = []\r\n }\r\n var aggregate = aggregates[summaryIndex];\r\n if (aggregate === aggregate) {\r\n var valueFormat;\r\n if ((0, _type.isDefined)(summaryItem.valueFormat)) {\r\n valueFormat = summaryItem.valueFormat\r\n } else {\r\n if (\"count\" !== summaryItem.summaryType) {\r\n valueFormat = _uiData_grid.default.getFormatByDataType(column && column.dataType)\r\n }\r\n }\r\n summaryCellsByColumns[columnIndex].push((0, _extend.extend)({}, summaryItem, {\r\n value: (0, _type.isString)(aggregate) && column && column.deserializeValue ? column.deserializeValue(aggregate) : aggregate,\r\n valueFormat: valueFormat,\r\n columnCaption: column && column.index !== columnIndex ? column.caption : void 0\r\n }))\r\n }\r\n }\r\n });\r\n if (!(0, _type.isEmptyObject)(summaryCellsByColumns)) {\r\n (0, _iterator.each)(visibleColumns, function() {\r\n summaryCells.push(summaryCellsByColumns[this.index] || [])\r\n })\r\n }\r\n return summaryCells\r\n },\r\n _getSummaryCells: function(summaryTotalItems, totalAggregates) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n return that._calculateSummaryCells(summaryTotalItems, totalAggregates, columnsController.getVisibleColumns(), function(summaryItem, column) {\r\n return that._isDataColumn(column) ? column.index : -1\r\n })\r\n },\r\n _updateItemsCore: function(change) {\r\n var that = this;\r\n var summaryCells;\r\n var dataSource = that._dataSource;\r\n var footerItems = that._footerItems;\r\n var oldSummaryCells = footerItems && footerItems[0] && footerItems[0].summaryCells;\r\n var summaryTotalItems = that.option(\"summary.totalItems\");\r\n that._footerItems = [];\r\n if (dataSource && summaryTotalItems && summaryTotalItems.length) {\r\n var totalAggregates = dataSource.totalAggregates();\r\n summaryCells = that._getSummaryCells(summaryTotalItems, totalAggregates);\r\n if (change && change.repaintChangesOnly && oldSummaryCells) {\r\n change.totalColumnIndices = summaryCells.map(function(summaryCell, index) {\r\n if (JSON.stringify(summaryCell) !== JSON.stringify(oldSummaryCells[index])) {\r\n return index\r\n }\r\n return -1\r\n }).filter(function(index) {\r\n return index >= 0\r\n })\r\n }\r\n if (summaryCells.length) {\r\n that._footerItems.push({\r\n rowType: \"totalFooter\",\r\n summaryCells: summaryCells\r\n })\r\n }\r\n }\r\n that.callBase(change)\r\n },\r\n _prepareUnsavedDataSelector: function(selector) {\r\n var that = this;\r\n if (recalculateWhileEditing(that)) {\r\n var editingController = that.getController(\"editing\");\r\n if (editingController) {\r\n return function(data) {\r\n data = editingController.getUpdatedData(data);\r\n return selector(data)\r\n }\r\n }\r\n }\r\n return selector\r\n },\r\n _prepareAggregateSelector: function(selector, aggregator) {\r\n selector = this._prepareUnsavedDataSelector(selector);\r\n if (\"avg\" === aggregator || \"sum\" === aggregator) {\r\n return function(data) {\r\n var value = selector(data);\r\n return (0, _type.isDefined)(value) ? Number(value) : value\r\n }\r\n }\r\n return selector\r\n },\r\n _getAggregates: function(summaryItems, remoteOperations) {\r\n var that = this;\r\n var columnsController = that.getController(\"columns\");\r\n var calculateCustomSummary = that.option(\"summary.calculateCustomSummary\");\r\n var commonSkipEmptyValues = that.option(\"summary.skipEmptyValues\");\r\n return (0, _iterator.map)(summaryItems || [], function(summaryItem) {\r\n var column = columnsController.columnOption(summaryItem.column);\r\n var calculateCellValue = column && column.calculateCellValue ? column.calculateCellValue.bind(column) : (0, _data.compileGetter)(column ? column.dataField : summaryItem.column);\r\n var aggregator = summaryItem.summaryType || \"count\";\r\n var selector = summaryItem.column;\r\n var skipEmptyValues = (0, _type.isDefined)(summaryItem.skipEmptyValues) ? summaryItem.skipEmptyValues : commonSkipEmptyValues;\r\n if (remoteOperations) {\r\n return {\r\n selector: summaryItem.column,\r\n summaryType: aggregator\r\n }\r\n } else {\r\n selector = that._prepareAggregateSelector(calculateCellValue, aggregator);\r\n if (\"custom\" === aggregator) {\r\n if (!calculateCustomSummary) {\r\n _ui.default.log(\"E1026\");\r\n calculateCustomSummary = function() {}\r\n }\r\n var options = {\r\n component: that.component,\r\n name: summaryItem.name\r\n };\r\n calculateCustomSummary(options);\r\n options.summaryProcess = \"calculate\";\r\n aggregator = {\r\n seed: function(groupIndex) {\r\n options.summaryProcess = \"start\";\r\n options.totalValue = void 0;\r\n options.groupIndex = groupIndex;\r\n delete options.value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n },\r\n step: function(totalValue, value) {\r\n options.summaryProcess = \"calculate\";\r\n options.totalValue = totalValue;\r\n options.value = value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n },\r\n finalize: function(totalValue) {\r\n options.summaryProcess = \"finalize\";\r\n options.totalValue = totalValue;\r\n delete options.value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n }\r\n }\r\n }\r\n return {\r\n selector: selector,\r\n aggregator: aggregator,\r\n skipEmptyValues: skipEmptyValues\r\n }\r\n }\r\n })\r\n },\r\n _addSortInfo: function(sortByGroups, groupColumn, selector, sortOrder) {\r\n if (groupColumn) {\r\n var groupIndex = groupColumn.groupIndex;\r\n sortOrder = sortOrder || groupColumn.sortOrder;\r\n if ((0, _type.isDefined)(groupIndex)) {\r\n sortByGroups[groupIndex] = sortByGroups[groupIndex] || [];\r\n sortByGroups[groupIndex].push({\r\n selector: selector,\r\n desc: \"desc\" === sortOrder\r\n })\r\n }\r\n }\r\n },\r\n _findSummaryItem: function(summaryItems, name) {\r\n var summaryItemIndex = -1;\r\n var getFullName = function(summaryItem) {\r\n var summaryType = summaryItem.summaryType;\r\n var column = summaryItem.column;\r\n return summaryType && column && summaryType + \"_\" + column\r\n };\r\n if ((0, _type.isDefined)(name)) {\r\n (0, _iterator.each)(summaryItems || [], function(index) {\r\n if (this.name === name || index === name || this.summaryType === name || this.column === name || getFullName(this) === name) {\r\n summaryItemIndex = index;\r\n return false\r\n }\r\n })\r\n }\r\n return summaryItemIndex\r\n },\r\n _getSummarySortByGroups: function(sortByGroupSummaryInfo, groupSummaryItems) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var groupColumns = columnsController.getGroupColumns();\r\n var sortByGroups = [];\r\n if (!groupSummaryItems || !groupSummaryItems.length) {\r\n return\r\n }(0, _iterator.each)(sortByGroupSummaryInfo || [], function() {\r\n var sortOrder = this.sortOrder;\r\n var groupColumn = this.groupColumn;\r\n var summaryItemIndex = that._findSummaryItem(groupSummaryItems, this.summaryItem);\r\n if (summaryItemIndex < 0) {\r\n return\r\n }\r\n var selector = function(data) {\r\n return getGroupAggregates(data)[summaryItemIndex]\r\n };\r\n if ((0, _type.isDefined)(groupColumn)) {\r\n groupColumn = columnsController.columnOption(groupColumn);\r\n that._addSortInfo(sortByGroups, groupColumn, selector, sortOrder)\r\n } else {\r\n (0, _iterator.each)(groupColumns, function(groupIndex, groupColumn) {\r\n that._addSortInfo(sortByGroups, groupColumn, selector, sortOrder)\r\n })\r\n }\r\n });\r\n return sortByGroups\r\n },\r\n _createDataSourceAdapterCore: function(dataSource, remoteOperations) {\r\n var that = this;\r\n var dataSourceAdapter = this.callBase(dataSource, remoteOperations);\r\n dataSourceAdapter.summaryGetter(function(currentRemoteOperations) {\r\n return that._getSummaryOptions(currentRemoteOperations || remoteOperations)\r\n });\r\n return dataSourceAdapter\r\n },\r\n _getSummaryOptions: function(remoteOperations) {\r\n var that = this;\r\n var groupSummaryItems = that.option(\"summary.groupItems\");\r\n var totalSummaryItems = that.option(\"summary.totalItems\");\r\n var sortByGroupSummaryInfo = that.option(\"sortByGroupSummaryInfo\");\r\n var groupAggregates = that._getAggregates(groupSummaryItems, remoteOperations && remoteOperations.grouping && remoteOperations.summary);\r\n var totalAggregates = that._getAggregates(totalSummaryItems, remoteOperations && remoteOperations.summary);\r\n var sortByGroups = function() {\r\n return that._getSummarySortByGroups(sortByGroupSummaryInfo, groupSummaryItems)\r\n };\r\n if (groupAggregates.length || totalAggregates.length) {\r\n return {\r\n groupAggregates: groupAggregates,\r\n totalAggregates: totalAggregates,\r\n sortByGroups: sortByGroups\r\n }\r\n }\r\n },\r\n publicMethods: function() {\r\n var methods = this.callBase();\r\n methods.push(\"getTotalSummaryValue\");\r\n return methods\r\n },\r\n getTotalSummaryValue: function(summaryItemName) {\r\n var summaryItemIndex = this._findSummaryItem(this.option(\"summary.totalItems\"), summaryItemName);\r\n var aggregates = this._dataSource.totalAggregates();\r\n if (aggregates.length && summaryItemIndex > -1) {\r\n return aggregates[summaryItemIndex]\r\n }\r\n },\r\n optionChanged: function(args) {\r\n if (\"summary\" === args.name || \"sortByGroupSummaryInfo\" === args.name) {\r\n args.name = \"dataSource\"\r\n }\r\n this.callBase(args)\r\n },\r\n init: function() {\r\n this._footerItems = [];\r\n this.callBase()\r\n },\r\n footerItems: function() {\r\n return this._footerItems\r\n }\r\n }\r\n }(),\r\n editing: function() {\r\n return {\r\n _refreshSummary: function() {\r\n if (recalculateWhileEditing(this) && !this.isSaving()) {\r\n this._dataController.refresh({\r\n load: true,\r\n changesOnly: true\r\n })\r\n }\r\n },\r\n _addChange: function(params) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (params.type) {\r\n this._refreshSummary()\r\n }\r\n return result\r\n },\r\n _removeChange: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n this._refreshSummary();\r\n return result\r\n },\r\n cancelEditData: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n this._refreshSummary();\r\n return result\r\n }\r\n }\r\n }()\r\n },\r\n views: {\r\n rowsView: function() {\r\n return {\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n row && $row.addClass(row.rowType === DATAGRID_GROUP_FOOTER_ROW_TYPE ? DATAGRID_GROUP_FOOTER_CLASS : \"\");\r\n return $row\r\n },\r\n _renderCells: function($row, options) {\r\n this.callBase.apply(this, arguments);\r\n if (\"group\" === options.row.rowType && options.row.summaryCells && options.row.summaryCells.length) {\r\n this._renderGroupSummaryCells($row, options)\r\n }\r\n },\r\n _hasAlignByColumnSummaryItems: function(columnIndex, options) {\r\n return !(0, _type.isDefined)(options.columns[columnIndex].groupIndex) && options.row.summaryCells[columnIndex].length\r\n },\r\n _getAlignByColumnCellCount: function(groupCellColSpan, options) {\r\n var alignByColumnCellCount = 0;\r\n for (var i = 1; i < groupCellColSpan; i++) {\r\n var columnIndex = options.row.summaryCells.length - i;\r\n alignByColumnCellCount = this._hasAlignByColumnSummaryItems(columnIndex, options) ? i : alignByColumnCellCount\r\n }\r\n return alignByColumnCellCount\r\n },\r\n _renderGroupSummaryCells: function($row, options) {\r\n var $groupCell = $row.children().last();\r\n var groupCellColSpan = Number($groupCell.attr(\"colSpan\")) || 1;\r\n var alignByColumnCellCount = this._getAlignByColumnCellCount(groupCellColSpan, options);\r\n this._renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount)\r\n },\r\n _renderGroupSummaryCellsCore: function($groupCell, options, groupCellColSpan, alignByColumnCellCount) {\r\n if (alignByColumnCellCount > 0) {\r\n $groupCell.attr(\"colSpan\", groupCellColSpan - alignByColumnCellCount);\r\n for (var i = 0; i < alignByColumnCellCount; i++) {\r\n var columnIndex = options.columns.length - alignByColumnCellCount + i;\r\n this._renderCell($groupCell.parent(), (0, _extend.extend)({\r\n column: options.columns[columnIndex],\r\n columnIndex: this._getSummaryCellIndex(columnIndex, options.columns)\r\n }, options))\r\n }\r\n }\r\n },\r\n _getSummaryCellIndex: function(columnIndex) {\r\n return columnIndex\r\n },\r\n _getCellTemplate: function(options) {\r\n if (!options.column.command && !(0, _type.isDefined)(options.column.groupIndex) && options.summaryItems && options.summaryItems.length) {\r\n return renderSummaryCell\r\n } else {\r\n return this.callBase(options)\r\n }\r\n },\r\n _getCellOptions: function(options) {\r\n var that = this;\r\n var parameters = that.callBase(options);\r\n if (options.row.summaryCells) {\r\n return (0, _extend.extend)(parameters, getSummaryCellOptions(that, options))\r\n } else {\r\n return parameters\r\n }\r\n }\r\n }\r\n }()\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.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 _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _uiData_grid2 = _interopRequireDefault(require(\"./ui.data_grid.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 _uiData_grid2.default\r\n },\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (dataSource && !Array.isArray(dataSource) && this.option(\"keyExpr\")) {\r\n _ui.default.log(\"W1011\")\r\n }\r\n return this.callBase()\r\n }\r\n }\r\n}());\r\nexports.DataController = DataController;\r\n_uiData_grid.default.registerModule(\"data\", {\r\n defaultOptions: _uiGrid_core.default.defaultOptions,\r\n controllers: {\r\n data: DataController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/context_menu/ui.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\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 _guid = _interopRequireDefault(require(\"../../core/guid\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _dom = require(\"../../core/utils/dom\");\r\nvar _element = require(\"../../core/element\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _position = _interopRequireDefault(require(\"../../animation/position\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _overlay = _interopRequireDefault(require(\"../overlay\"));\r\nvar _ui = _interopRequireDefault(require(\"./ui.menu_base\"));\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 DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_PHONE_CLASS = \"dx-menu-phone-overlay\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = DX_MENU_ITEM_CLASS + \"-wrapper\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_HAS_CONTEXT_MENU_CLASS = \"dx-has-context-menu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_FOCUSED_CLASS = \"dx-state-focused\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar FOCUS_LAST = \"last\";\r\nvar ACTIONS = [\"onShowing\", \"onShown\", \"onSubmenuCreated\", \"onHiding\", \"onHidden\", \"onPositioning\", \"onLeftFirstItem\", \"onLeftLastItem\", \"onCloseRootSubmenu\", \"onExpandLastSubmenu\"];\r\nvar LOCAL_SUBMENU_DIRECTIONS = [FOCUS_UP, FOCUS_DOWN, FOCUS_FIRST, FOCUS_LAST];\r\nvar DEFAULT_SHOW_EVENT = \"dxcontextmenu\";\r\nvar ContextMenu = function(_MenuBase) {\r\n _inheritsLoose(ContextMenu, _MenuBase);\r\n\r\n function ContextMenu() {\r\n return _MenuBase.apply(this, arguments) || this\r\n }\r\n var _proto = ContextMenu.prototype;\r\n _proto.getShowEvent = function(showEventOption) {\r\n var result = null;\r\n if ((0, _type.isObject)(showEventOption)) {\r\n if (null !== showEventOption.name) {\r\n result = showEventOption.name || DEFAULT_SHOW_EVENT\r\n }\r\n } else {\r\n result = showEventOption\r\n }\r\n return result\r\n };\r\n _proto.getShowDelay = function(showEventOption) {\r\n return (0, _type.isObject)(showEventOption) && showEventOption.delay\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_MenuBase.prototype._getDefaultOptions.call(this), {\r\n showEvent: DEFAULT_SHOW_EVENT,\r\n closeOnOutsideClick: true,\r\n position: {\r\n at: \"top left\",\r\n my: \"top left\"\r\n },\r\n onShowing: null,\r\n onShown: null,\r\n onSubmenuCreated: null,\r\n onHiding: null,\r\n onHidden: null,\r\n onPositioning: null,\r\n submenuDirection: \"auto\",\r\n visible: false,\r\n target: void 0,\r\n onLeftFirstItem: null,\r\n onLeftLastItem: null,\r\n onCloseRootSubmenu: null,\r\n onExpandLastSubmenu: null\r\n })\r\n };\r\n _proto._defaultOptionsRules = function() {\r\n return _MenuBase.prototype._defaultOptionsRules.call(this).concat([{\r\n device: function() {\r\n return !(0, _window.hasWindow)()\r\n },\r\n options: {\r\n animation: null\r\n }\r\n }])\r\n };\r\n _proto._initActions = function() {\r\n var _this = this;\r\n this._actions = {};\r\n (0, _iterator.each)(ACTIONS, function(index, action) {\r\n _this._actions[action] = _this._createActionByOption(action) || _common.noop\r\n })\r\n };\r\n _proto._setOptionsByReference = function() {\r\n _MenuBase.prototype._setOptionsByReference.call(this);\r\n (0, _extend.extend)(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n };\r\n _proto._focusInHandler = function() {};\r\n _proto._itemContainer = function() {\r\n return this._overlay ? this._overlay.$content() : (0, _renderer.default)()\r\n };\r\n _proto._eventBindingTarget = function() {\r\n return this._itemContainer()\r\n };\r\n _proto.itemsContainer = function() {\r\n return this._overlay ? this._overlay.$content() : void 0\r\n };\r\n _proto._supportedKeys = function() {\r\n var _this2 = this;\r\n var selectItem = function() {\r\n var $item = (0, _renderer.default)(_this2.option(\"focusedElement\"));\r\n _this2.hide();\r\n if (!$item.length || !_this2._isSelectionEnabled()) {\r\n return\r\n }\r\n _this2.selectItem($item[0])\r\n };\r\n return (0, _extend.extend)(_MenuBase.prototype._supportedKeys.call(this), {\r\n space: selectItem,\r\n escape: this.hide\r\n })\r\n };\r\n _proto._getActiveItem = function() {\r\n var $availableItems = this._getAvailableItems();\r\n var $focusedItem = $availableItems.filter(\".\".concat(DX_STATE_FOCUSED_CLASS));\r\n var $hoveredItem = $availableItems.filter(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $hoveredItemContainer = $hoveredItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS));\r\n if ($hoveredItemContainer.find(\".\".concat(DX_MENU_ITEM_CLASS)).index($focusedItem) >= 0) {\r\n return $focusedItem\r\n }\r\n if ($hoveredItem.length) {\r\n return $hoveredItem\r\n }\r\n return _MenuBase.prototype._getActiveItem.call(this)\r\n };\r\n _proto._moveFocus = function(location) {\r\n var $items = this._getItemsByLocation(location);\r\n var $oldTarget = this._getActiveItem(true);\r\n var $hoveredItem = this.itemsContainer().find(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $focusedItem = (0, _renderer.default)(this.option(\"focusedElement\"));\r\n var $activeItemHighlighted = !!($focusedItem.length || $hoveredItem.length);\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n $newTarget = $activeItemHighlighted ? this._prevItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.first())) {\r\n this._actions.onLeftFirstItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n $newTarget = $activeItemHighlighted ? this._nextItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.last())) {\r\n this._actions.onLeftLastItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._hideSubmenuHandler() : this._expandSubmenuHandler($items, location);\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._expandSubmenuHandler($items, location) : this._hideSubmenuHandler();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n default:\r\n return _MenuBase.prototype._moveFocus.call(this, location)\r\n }\r\n };\r\n _proto._setFocusedElement = function($element) {\r\n if ($element && 0 !== $element.length) {\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($element))\r\n }\r\n };\r\n _proto._getItemsByLocation = function(location) {\r\n var $activeItem = this._getActiveItem(true);\r\n var $items;\r\n if ((0, _array.inArray)(location, LOCAL_SUBMENU_DIRECTIONS) >= 0) {\r\n $items = $activeItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).children().children()\r\n }\r\n $items = this._getAvailableItems($items);\r\n return $items\r\n };\r\n _proto._getAriaTarget = function() {\r\n return this.$element()\r\n };\r\n _proto._refreshActiveDescendant = function() {\r\n if ((0, _type.isDefined)(this._overlay)) {\r\n var $target = this._overlay.$content();\r\n _MenuBase.prototype._refreshActiveDescendant.call(this, $target)\r\n }\r\n };\r\n _proto._hideSubmenuHandler = function() {\r\n var $curItem = this._getActiveItem(true);\r\n var $parentItem = $curItem.parents(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).first();\r\n if ($parentItem.length) {\r\n this._hideSubmenusOnSameLevel($parentItem);\r\n this._hideSubmenu($curItem.closest(\".\".concat(DX_SUBMENU_CLASS)));\r\n return $parentItem\r\n }\r\n this._actions.onCloseRootSubmenu($curItem);\r\n return $curItem\r\n };\r\n _proto._expandSubmenuHandler = function($items, location) {\r\n var $curItem = this._getActiveItem(true);\r\n var itemData = this._getItemData($curItem);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var isItemHasSubmenu = this._hasSubmenu(node);\r\n var $submenu = $curItem.children(\".\".concat(DX_SUBMENU_CLASS));\r\n if (isItemHasSubmenu && !$curItem.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n if (!$submenu.length || \"hidden\" === $submenu.css(\"visibility\")) {\r\n this._showSubmenu($curItem)\r\n }\r\n return this._nextItem(this._getItemsByLocation(location))\r\n }\r\n this._actions.onExpandLastSubmenu($curItem);\r\n return\r\n };\r\n _proto._clean = function() {\r\n if (this._overlay) {\r\n this._overlay.$element().remove();\r\n this._overlay = null\r\n }\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n _MenuBase.prototype._clean.call(this)\r\n };\r\n _proto._initMarkup = function() {\r\n this.$element().addClass(DX_HAS_CONTEXT_MENU_CLASS);\r\n _MenuBase.prototype._initMarkup.call(this)\r\n };\r\n _proto._render = function() {\r\n _MenuBase.prototype._render.call(this);\r\n this._renderVisibility(this.option(\"visible\"));\r\n this._addWidgetClass()\r\n };\r\n _proto._renderContentImpl = function() {\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n this._attachShowContextMenuEvents()\r\n };\r\n _proto._attachKeyboardEvents = function() {\r\n !this._keyboardListenerId && this._focusTarget().length && _MenuBase.prototype._attachKeyboardEvents.call(this)\r\n };\r\n _proto._renderContextMenuOverlay = function() {\r\n if (this._overlay) {\r\n return\r\n }\r\n var overlayOptions = this._getOverlayOptions();\r\n this._overlay = this._createComponent((0, _renderer.default)(\"
\").appendTo(this._$element), _overlay.default, overlayOptions);\r\n var $overlayContent = this._overlay.$content();\r\n $overlayContent.addClass(DX_CONTEXT_MENU_CLASS);\r\n this._addCustomCssClass($overlayContent);\r\n this._addPlatformDependentClass($overlayContent);\r\n this._attachContextMenuEvent()\r\n };\r\n _proto._itemContextMenuHandler = function(e) {\r\n _MenuBase.prototype._itemContextMenuHandler.call(this, e);\r\n e.stopPropagation()\r\n };\r\n _proto._addPlatformDependentClass = function($element) {\r\n if (_devices.default.current().phone) {\r\n $element.addClass(DX_MENU_PHONE_CLASS)\r\n }\r\n };\r\n _proto._detachShowContextMenuEvents = function(target) {\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = (0, _index.addNamespace)(showEvent, this.NAME);\r\n if (this._showContextMenuEventHandler) {\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n } else {\r\n _events_engine.default.off((0, _renderer.default)(target), eventName)\r\n }\r\n };\r\n _proto._attachShowContextMenuEvents = function() {\r\n var _this3 = this;\r\n var target = this._getTarget();\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = (0, _index.addNamespace)(showEvent, this.NAME);\r\n var contextMenuAction = this._createAction(function(e) {\r\n var delay = _this3.getShowDelay(_this3.option(\"showEvent\"));\r\n if (delay) {\r\n setTimeout(function() {\r\n return _this3._show(e.event)\r\n }, delay)\r\n } else {\r\n _this3._show(e.event)\r\n }\r\n }, {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = function(e) {\r\n return contextMenuAction({\r\n event: e,\r\n target: (0, _renderer.default)(e.currentTarget)\r\n })\r\n };\r\n contextMenuAction = this._createAction(contextMenuAction);\r\n if ((0, _type.isRenderer)(target) || target.nodeType || (0, _type.isWindow)(target)) {\r\n this._showContextMenuEventHandler = void 0;\r\n _events_engine.default.on(target, eventName, handler)\r\n } else {\r\n this._showContextMenuEventHandler = handler;\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n }\r\n };\r\n _proto._hoverEndHandler = function(e) {\r\n _MenuBase.prototype._hoverEndHandler.call(this, e);\r\n e.stopPropagation()\r\n };\r\n _proto._renderDimensions = function() {};\r\n _proto._renderContainer = function($wrapper, submenuContainer) {\r\n var $holder = submenuContainer || this._itemContainer();\r\n $wrapper = (0, _renderer.default)(\"
\");\r\n $wrapper.appendTo($holder).addClass(DX_SUBMENU_CLASS).css(\"visibility\", submenuContainer ? \"hidden\" : \"visible\");\r\n var $itemsContainer = _MenuBase.prototype._renderContainer.call(this, $wrapper);\r\n if (submenuContainer) {\r\n return $itemsContainer\r\n }\r\n if (this.option(\"width\")) {\r\n return $itemsContainer.css(\"minWidth\", this.option(\"width\"))\r\n }\r\n if (this.option(\"height\")) {\r\n return $itemsContainer.css(\"minHeight\", this.option(\"height\"))\r\n }\r\n return $itemsContainer\r\n };\r\n _proto._renderSubmenuItems = function(node, $itemFrame) {\r\n this._renderItems(this._getChildNodes(node), $itemFrame);\r\n this._actions.onSubmenuCreated({\r\n itemElement: (0, _element.getPublicElement)($itemFrame),\r\n itemData: node.internalFields.item,\r\n submenuElement: (0, _element.getPublicElement)($itemFrame.children(\".\".concat(DX_SUBMENU_CLASS)))\r\n })\r\n };\r\n _proto._getOverlayOptions = function() {\r\n var position = this.option(\"position\");\r\n var overlayOptions = {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n innerOverlay: true,\r\n closeOnOutsideClick: this._closeOnOutsideClickHandler.bind(this),\r\n propagateOutsideClick: true,\r\n closeOnTargetScroll: true,\r\n deferRendering: false,\r\n position: {\r\n at: position.at,\r\n my: position.my,\r\n of: this._getTarget(),\r\n collision: \"flipfit\"\r\n },\r\n shading: false,\r\n showTitle: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n onShown: this._overlayShownActionHandler.bind(this),\r\n onHiding: this._overlayHidingActionHandler.bind(this),\r\n onHidden: this._overlayHiddenActionHandler.bind(this)\r\n };\r\n return overlayOptions\r\n };\r\n _proto._overlayShownActionHandler = function(arg) {\r\n this._actions.onShown(arg)\r\n };\r\n _proto._overlayHidingActionHandler = function(arg) {\r\n this._actions.onHiding(arg);\r\n if (!arg.cancel) {\r\n this._hideAllShownSubmenus();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n };\r\n _proto._overlayHiddenActionHandler = function(arg) {\r\n this._actions.onHidden(arg)\r\n };\r\n _proto._closeOnOutsideClickHandler = function(e) {\r\n var closeOnOutsideClick = this.option(\"closeOnOutsideClick\");\r\n if ((0, _type.isFunction)(closeOnOutsideClick)) {\r\n return closeOnOutsideClick(e)\r\n }\r\n if (!closeOnOutsideClick) {\r\n return false\r\n }\r\n if (_dom_adapter.default.isDocument(e.target)) {\r\n return true\r\n }\r\n var $activeItemContainer = this._getActiveItemsContainer(e.target);\r\n var $itemContainers = this._getItemsContainers();\r\n var $clickedItem = this._searchActiveItem(e.target);\r\n var $rootItem = this.$element().parents(\".\".concat(DX_MENU_ITEM_CLASS));\r\n var isRootItemClicked = $clickedItem[0] === $rootItem[0] && $clickedItem.length && $rootItem.length;\r\n var isInnerOverlayClicked = this._isIncludeOverlay($activeItemContainer, $itemContainers) && $clickedItem.length;\r\n if (isInnerOverlayClicked || isRootItemClicked) {\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._hideAllShownChildSubmenus($clickedItem)\r\n }\r\n return false\r\n }\r\n return true\r\n };\r\n _proto._getActiveItemsContainer = function(target) {\r\n return (0, _renderer.default)(target).closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n };\r\n _proto._getItemsContainers = function() {\r\n return this._overlay._$content.find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n };\r\n _proto._searchActiveItem = function(target) {\r\n return (0, _renderer.default)(target).closest(\".\".concat(DX_MENU_ITEM_CLASS)).eq(0)\r\n };\r\n _proto._isIncludeOverlay = function($activeOverlay, $allOverlays) {\r\n var isSame = false;\r\n (0, _iterator.each)($allOverlays, function(index, $overlay) {\r\n if ($activeOverlay.is($overlay) && !isSame) {\r\n isSame = true\r\n }\r\n });\r\n return isSame\r\n };\r\n _proto._hideAllShownChildSubmenus = function($clickedItem) {\r\n var _this4 = this;\r\n var $submenuElements = $clickedItem.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shownSubmenus = (0, _extend.extend)([], this._shownSubmenus);\r\n if ($submenuElements.length > 0) {\r\n (0, _iterator.each)(shownSubmenus, function(index, $submenu) {\r\n var $context = _this4._searchActiveItem($submenu.context).parent();\r\n if ($context.parent().is($clickedItem.parent().parent()) && !$context.is($clickedItem.parent())) {\r\n _this4._hideSubmenu($submenu)\r\n }\r\n })\r\n }\r\n };\r\n _proto._showSubmenu = function($item) {\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n this._hideSubmenusOnSameLevel($item);\r\n if (!this._hasSubmenu(node)) {\r\n return\r\n }\r\n var $submenu = $item.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var isSubmenuRendered = $submenu.length;\r\n _MenuBase.prototype._showSubmenu.call(this, $item);\r\n if (!isSubmenuRendered) {\r\n this._renderSubmenuItems(node, $item)\r\n }\r\n if (!this._isSubmenuVisible($submenu)) {\r\n this._drawSubmenu($item)\r\n }\r\n };\r\n _proto._hideSubmenusOnSameLevel = function($item) {\r\n var $expandedItems = $item.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)).siblings().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n if ($expandedItems.length) {\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenu($expandedItems.find(\".\".concat(DX_SUBMENU_CLASS)))\r\n }\r\n };\r\n _proto._hideSubmenuGroup = function($submenu) {\r\n if (this._isSubmenuVisible($submenu)) {\r\n this._hideSubmenuCore($submenu)\r\n }\r\n };\r\n _proto._isSubmenuVisible = function($submenu) {\r\n return \"visible\" === $submenu.css(\"visibility\")\r\n };\r\n _proto._drawSubmenu = function($itemElement) {\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").show : {};\r\n var $submenu = $itemElement.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuPosition = this._getSubmenuPosition($itemElement);\r\n if (this._overlay && this._overlay.option(\"visible\")) {\r\n if (!(0, _type.isDefined)(this._shownSubmenus)) {\r\n this._shownSubmenus = []\r\n }\r\n if ((0, _array.inArray)($submenu, this._shownSubmenus)) {\r\n this._shownSubmenus.push($submenu)\r\n }\r\n if (animation) {\r\n _fx.default.stop($submenu)\r\n }\r\n _position.default.setup($submenu, submenuPosition);\r\n if (animation) {\r\n if ((0, _type.isPlainObject)(animation.to)) {\r\n animation.to.position = submenuPosition\r\n }\r\n this._animate($submenu, animation)\r\n }\r\n $submenu.css(\"visibility\", \"visible\")\r\n }\r\n };\r\n _proto._animate = function($container, options) {\r\n _fx.default.animate($container, options)\r\n };\r\n _proto._getSubmenuPosition = function($rootItem) {\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var $rootItemWrapper = $rootItem.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS));\r\n var position = {\r\n collision: \"flip\",\r\n of: $rootItemWrapper,\r\n offset: {\r\n h: 0,\r\n v: -1\r\n }\r\n };\r\n switch (submenuDirection) {\r\n case \"left\":\r\n position.at = \"left top\";\r\n position.my = \"right top\";\r\n break;\r\n case \"right\":\r\n position.at = \"right top\";\r\n position.my = \"left top\";\r\n break;\r\n default:\r\n if (this.option(\"rtlEnabled\")) {\r\n position.at = \"left top\";\r\n position.my = \"right top\"\r\n } else {\r\n position.at = \"right top\";\r\n position.my = \"left top\"\r\n }\r\n }\r\n return position\r\n };\r\n _proto._updateSubmenuVisibilityOnClick = function(actionArgs) {\r\n if (!actionArgs.args.length) {\r\n return\r\n }\r\n var itemData = actionArgs.args[0].itemData;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (!node) {\r\n return\r\n }\r\n var $itemElement = (0, _renderer.default)(actionArgs.args[0].itemElement);\r\n var $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shouldRenderSubmenu = this._hasSubmenu(node) && !$submenu.length;\r\n if (shouldRenderSubmenu) {\r\n this._renderSubmenuItems(node, $itemElement);\r\n $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS))\r\n }\r\n if ($itemElement.context === $submenu.context && \"visible\" === $submenu.css(\"visibility\")) {\r\n return\r\n }\r\n var notCloseMenuOnItemClick = itemData && false === itemData.closeMenuOnClick;\r\n if (!itemData || itemData.disabled || notCloseMenuOnItemClick) {\r\n return\r\n }\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (0 === $submenu.length) {\r\n var $prevSubmenu = (0, _renderer.default)($itemElement.parents(\".\".concat(DX_SUBMENU_CLASS))[0]);\r\n this._hideSubmenu($prevSubmenu);\r\n if (!actionArgs.canceled && this._overlay && this._overlay.option(\"visible\")) {\r\n this.option(\"visible\", false)\r\n }\r\n } else {\r\n if (this._shownSubmenus && this._shownSubmenus.length > 0) {\r\n if (this._shownSubmenus[0].is($submenu)) {\r\n this._hideSubmenu($submenu)\r\n }\r\n }\r\n this._showSubmenu($itemElement)\r\n }\r\n };\r\n _proto._hideSubmenu = function($curSubmenu) {\r\n var _this5 = this;\r\n var shownSubmenus = (0, _extend.extend)([], this._shownSubmenus);\r\n (0, _iterator.each)(shownSubmenus, function(index, $submenu) {\r\n if ($curSubmenu.is($submenu) || (0, _dom.contains)($curSubmenu[0], $submenu[0])) {\r\n $submenu.parent().removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n _this5._hideSubmenuCore($submenu)\r\n }\r\n })\r\n };\r\n _proto._hideSubmenuCore = function($submenu) {\r\n var index = (0, _array.inArray)($submenu, this._shownSubmenus);\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").hide : null;\r\n if (index >= 0) {\r\n this._shownSubmenus.splice(index, 1)\r\n }\r\n this._stopAnimate($submenu);\r\n animation && this._animate($submenu, animation);\r\n $submenu.css(\"visibility\", \"hidden\")\r\n };\r\n _proto._stopAnimate = function($container) {\r\n _fx.default.stop($container, true)\r\n };\r\n _proto._hideAllShownSubmenus = function() {\r\n var _this6 = this;\r\n var shownSubmenus = (0, _extend.extend)([], this._shownSubmenus);\r\n var $expandedItems = this._overlay.$content().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n (0, _iterator.each)(shownSubmenus, function(_, $submenu) {\r\n _this6._hideSubmenu($submenu)\r\n })\r\n };\r\n _proto._visibilityChanged = function(visible) {\r\n if (visible) {\r\n this._renderContentImpl()\r\n }\r\n };\r\n _proto._optionChanged = function(args) {\r\n if ((0, _array.inArray)(args.name, ACTIONS) > -1) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"visible\":\r\n this._renderVisibility(args.value);\r\n break;\r\n case \"showEvent\":\r\n case \"position\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachShowContextMenuEvents(args.previousValue);\r\n this._invalidate();\r\n break;\r\n case \"closeOnOutsideClick\":\r\n break;\r\n default:\r\n _MenuBase.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto._renderVisibility = function(showing) {\r\n return showing ? this._show() : this._hide()\r\n };\r\n _proto._toggleVisibility = function() {};\r\n _proto._show = function(event) {\r\n var args = {\r\n jQEvent: event\r\n };\r\n var promise = (new _deferred.Deferred).reject().promise();\r\n this._actions.onShowing(args);\r\n if (args.cancel) {\r\n return promise\r\n }\r\n var position = this._positionContextMenu(event);\r\n if (position) {\r\n if (!this._overlay) {\r\n this._renderContextMenuOverlay();\r\n this._overlay.$content().addClass(this._widgetClass());\r\n this._renderFocusState();\r\n this._attachHoverEvents();\r\n this._attachClickEvent();\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n this._setOptionWithoutOptionChange(\"visible\", true);\r\n this._overlay.option(\"position\", position);\r\n promise = this._overlay.show();\r\n event && event.stopPropagation();\r\n this._setAriaAttributes()\r\n }\r\n return promise\r\n };\r\n _proto._setAriaAttributes = function() {\r\n this._overlayContentId = \"dx-\".concat(new _guid.default);\r\n this.setAria(\"owns\", this._overlayContentId);\r\n this.setAria({\r\n id: this._overlayContentId,\r\n role: \"menu\"\r\n }, this._overlay.$content())\r\n };\r\n _proto._cleanAriaAttributes = function() {\r\n this._overlay && this.setAria(\"id\", null, this._overlay.$content());\r\n this.setAria(\"owns\", void 0)\r\n };\r\n _proto._getTarget = function() {\r\n return this.option(\"target\") || this.option(\"position\").of || (0, _renderer.default)(_dom_adapter.default.getDocument())\r\n };\r\n _proto._getContextMenuPosition = function() {\r\n return (0, _extend.extend)({}, this.option(\"position\"), {\r\n of: this._getTarget()\r\n })\r\n };\r\n _proto._positionContextMenu = function(jQEvent) {\r\n var position = this._getContextMenuPosition();\r\n var isInitialPosition = this._isInitialOptionValue(\"position\");\r\n var positioningAction = this._createActionByOption(\"onPositioning\", actionArgs);\r\n if (jQEvent && jQEvent.preventDefault && isInitialPosition) {\r\n position.of = jQEvent\r\n }\r\n var actionArgs = {\r\n position: position,\r\n event: jQEvent\r\n };\r\n positioningAction(actionArgs);\r\n if (actionArgs.cancel) {\r\n position = null\r\n } else {\r\n if (actionArgs.event) {\r\n actionArgs.event.cancel = true;\r\n jQEvent.preventDefault()\r\n }\r\n }\r\n return position\r\n };\r\n _proto._refresh = function() {\r\n if (!(0, _window.hasWindow)()) {\r\n _MenuBase.prototype._refresh.call(this)\r\n } else {\r\n if (this._overlay) {\r\n var lastPosition = this._overlay.option(\"position\");\r\n _MenuBase.prototype._refresh.call(this);\r\n this._overlay && this._overlay.option(\"position\", lastPosition)\r\n } else {\r\n _MenuBase.prototype._refresh.call(this)\r\n }\r\n }\r\n };\r\n _proto._hide = function() {\r\n var promise;\r\n if (this._overlay) {\r\n promise = this._overlay.hide();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n this._cleanAriaAttributes();\r\n this.option(\"focusedElement\", null);\r\n return promise || (new _deferred.Deferred).reject().promise()\r\n };\r\n _proto.toggle = function(showing) {\r\n var visible = this.option(\"visible\");\r\n showing = void 0 === showing ? !visible : showing;\r\n return this._renderVisibility(showing)\r\n };\r\n _proto.show = function() {\r\n return this.toggle(true)\r\n };\r\n _proto.hide = function() {\r\n return this.toggle(false)\r\n };\r\n return ContextMenu\r\n}(_ui.default);\r\n(0, _component_registrator.default)(\"dxContextMenu\", ContextMenu);\r\nvar _default = ContextMenu;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/*!\n * devextreme-vue\n * Version: 20.2.7\n * Build date: Thu Apr 22 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxValidationRule = exports.DxStringLengthRule = exports.DxRequiredRule = exports.DxRangeRule = exports.DxPatternRule = exports.DxNumericRule = exports.DxEmailRule = exports.DxCustomRule = exports.DxCompareRule = exports.DxAsyncRule = exports.DxAdapter = exports.DxValidator = void 0;\nvar validator_1 = require(\"devextreme/ui/validator\");\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxValidator = index_1.createExtensionComponent({\n props: {\n adapter: Object,\n elementAttr: Object,\n height: [Function, Number, String],\n name: String,\n onDisposing: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onValidated: Function,\n validationGroup: String,\n validationRules: Array,\n width: [Function, Number, String]\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:adapter\": null,\n \"update:elementAttr\": null,\n \"update:height\": null,\n \"update:name\": null,\n \"update:onDisposing\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onValidated\": null,\n \"update:validationGroup\": null,\n \"update:validationRules\": null,\n \"update:width\": null,\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = validator_1.default;\n this.$_expectedChildren = {\n adapter: { isCollectionItem: false, optionName: \"adapter\" },\n AsyncRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CompareRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CustomRule: { isCollectionItem: true, optionName: \"validationRules\" },\n EmailRule: { isCollectionItem: true, optionName: \"validationRules\" },\n NumericRule: { isCollectionItem: true, optionName: \"validationRules\" },\n PatternRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RangeRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RequiredRule: { isCollectionItem: true, optionName: \"validationRules\" },\n StringLengthRule: { isCollectionItem: true, optionName: \"validationRules\" },\n validationRule: { isCollectionItem: true, optionName: \"validationRules\" }\n };\n }\n});\nexports.DxValidator = DxValidator;\nvar DxAdapter = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:applyValidationResults\": null,\n \"update:bypass\": null,\n \"update:focus\": null,\n \"update:getValue\": null,\n \"update:reset\": null,\n \"update:validationRequestsCallbacks\": null,\n },\n props: {\n applyValidationResults: Function,\n bypass: Function,\n focus: Function,\n getValue: Function,\n reset: Function,\n validationRequestsCallbacks: Array\n }\n});\nexports.DxAdapter = DxAdapter;\nDxAdapter.$_optionName = \"adapter\";\nvar DxAsyncRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxAsyncRule = DxAsyncRule;\nDxAsyncRule.$_optionName = \"validationRules\";\nDxAsyncRule.$_isCollectionItem = true;\nDxAsyncRule.$_predefinedProps = {\n type: \"async\"\n};\nvar DxCompareRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:comparisonTarget\": null,\n \"update:comparisonType\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n },\n props: {\n comparisonTarget: Function,\n comparisonType: String,\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String\n }\n});\nexports.DxCompareRule = DxCompareRule;\nDxCompareRule.$_optionName = \"validationRules\";\nDxCompareRule.$_isCollectionItem = true;\nDxCompareRule.$_predefinedProps = {\n type: \"compare\"\n};\nvar DxCustomRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxCustomRule = DxCustomRule;\nDxCustomRule.$_optionName = \"validationRules\";\nDxCustomRule.$_isCollectionItem = true;\nDxCustomRule.$_predefinedProps = {\n type: \"custom\"\n};\nvar DxEmailRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxEmailRule = DxEmailRule;\nDxEmailRule.$_optionName = \"validationRules\";\nDxEmailRule.$_isCollectionItem = true;\nDxEmailRule.$_predefinedProps = {\n type: \"email\"\n};\nvar DxNumericRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxNumericRule = DxNumericRule;\nDxNumericRule.$_optionName = \"validationRules\";\nDxNumericRule.$_isCollectionItem = true;\nDxNumericRule.$_predefinedProps = {\n type: \"numeric\"\n};\nvar DxPatternRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:pattern\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n pattern: {},\n type: String\n }\n});\nexports.DxPatternRule = DxPatternRule;\nDxPatternRule.$_optionName = \"validationRules\";\nDxPatternRule.$_isCollectionItem = true;\nDxPatternRule.$_predefinedProps = {\n type: \"pattern\"\n};\nvar DxRangeRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n max: {},\n message: String,\n min: {},\n reevaluate: Boolean,\n type: String\n }\n});\nexports.DxRangeRule = DxRangeRule;\nDxRangeRule.$_optionName = \"validationRules\";\nDxRangeRule.$_isCollectionItem = true;\nDxRangeRule.$_predefinedProps = {\n type: \"range\"\n};\nvar DxRequiredRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:message\": null,\n \"update:trim\": null,\n \"update:type\": null,\n },\n props: {\n message: String,\n trim: Boolean,\n type: String\n }\n});\nexports.DxRequiredRule = DxRequiredRule;\nDxRequiredRule.$_optionName = \"validationRules\";\nDxRequiredRule.$_isCollectionItem = true;\nDxRequiredRule.$_predefinedProps = {\n type: \"required\"\n};\nvar DxStringLengthRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:trim\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n max: Number,\n message: String,\n min: Number,\n trim: Boolean,\n type: String\n }\n});\nexports.DxStringLengthRule = DxStringLengthRule;\nDxStringLengthRule.$_optionName = \"validationRules\";\nDxStringLengthRule.$_isCollectionItem = true;\nDxStringLengthRule.$_predefinedProps = {\n type: \"stringLength\"\n};\nvar DxValidationRule = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:comparisonTarget\": null,\n \"update:comparisonType\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:pattern\": null,\n \"update:reevaluate\": null,\n \"update:trim\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n comparisonTarget: Function,\n comparisonType: String,\n ignoreEmptyValue: Boolean,\n max: {},\n message: String,\n min: {},\n pattern: {},\n reevaluate: Boolean,\n trim: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxValidationRule = DxValidationRule;\nDxValidationRule.$_optionName = \"validationRules\";\nDxValidationRule.$_isCollectionItem = true;\nDxValidationRule.$_predefinedProps = {\n type: \"required\"\n};\nexports.default = DxValidator;\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _style = require(\"../../core/utils/style\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _string = require(\"../../core/utils/string\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _uiGrid_core2 = require(\"./ui.grid_core.columns_view\");\r\nvar _ui = _interopRequireDefault(require(\"../scroll_view/ui.scrollable\"));\r\nvar _remove_event = _interopRequireDefault(require(\"../../core/remove_event\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar FREE_SPACE_CLASS = \"dx-freespace-row\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar ROW_ALTERNATION_CLASS = \"dx-row-alt\";\r\nvar LAST_ROW_BORDER = \"dx-last-row-border\";\r\nvar EMPTY_CLASS = \"dx-empty\";\r\nvar ROW_INSERTED_ANIMATION_CLASS = \"row-inserted-animation\";\r\nvar LOADPANEL_HIDE_TIMEOUT = 200;\r\n\r\nfunction getMaxHorizontalScrollOffset(scrollable) {\r\n return scrollable ? scrollable.scrollWidth() - scrollable.clientWidth() : 0\r\n}\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n hoverStateEnabled: false,\r\n scrolling: {\r\n useNative: \"auto\"\r\n },\r\n loadPanel: {\r\n enabled: \"auto\",\r\n text: _message.default.format(\"Loading\"),\r\n width: 200,\r\n height: 90,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true\r\n },\r\n rowTemplate: null,\r\n columnAutoWidth: false,\r\n noDataText: _message.default.format(\"dxDataGrid-noDataText\"),\r\n wordWrapEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n rowAlternationEnabled: false,\r\n activeStateEnabled: false,\r\n twoWayBindingEnabled: true\r\n }\r\n },\r\n views: {\r\n rowsView: _uiGrid_core2.ColumnsView.inherit(function() {\r\n var defaultCellTemplate = function($container, options) {\r\n var isDataTextEmpty = (0, _string.isEmpty)(options.text) && \"data\" === options.rowType;\r\n var text = options.text;\r\n var container = $container.get(0);\r\n if (isDataTextEmpty) {\r\n _uiGrid_core.default.setEmptyText($container)\r\n } else {\r\n if (options.column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n }\r\n };\r\n var getScrollableBottomPadding = function(that) {\r\n var scrollable = that.getScrollable();\r\n return scrollable ? Math.ceil(parseFloat(scrollable.$content().css(\"paddingBottom\"))) : 0\r\n };\r\n return {\r\n _getDefaultTemplate: function(column) {\r\n switch (column.command) {\r\n case \"empty\":\r\n return function(container) {\r\n container.html(\" \")\r\n };\r\n default:\r\n return defaultCellTemplate\r\n }\r\n },\r\n _getDefaultGroupTemplate: function(column) {\r\n var that = this;\r\n var summaryTexts = that.option(\"summary.texts\");\r\n return function($container, options) {\r\n var data = options.data;\r\n var text = options.column.caption + \": \" + options.text;\r\n var container = $container.get(0);\r\n if (options.summaryItems && options.summaryItems.length) {\r\n text += \" \" + _uiGrid_core.default.getGroupRowSummaryText(options.summaryItems, summaryTexts)\r\n }\r\n if (data) {\r\n if (options.groupContinuedMessage && options.groupContinuesMessage) {\r\n text += \" (\" + options.groupContinuedMessage + \". \" + options.groupContinuesMessage + \")\"\r\n } else {\r\n if (options.groupContinuesMessage) {\r\n text += \" (\" + options.groupContinuesMessage + \")\"\r\n } else {\r\n if (options.groupContinuedMessage) {\r\n text += \" (\" + options.groupContinuedMessage + \")\"\r\n }\r\n }\r\n }\r\n }\r\n $container.addClass(GROUP_CELL_CLASS);\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n }\r\n },\r\n _update: function() {},\r\n _getCellTemplate: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var template;\r\n if (\"group\" === options.rowType && (0, _type.isDefined)(column.groupIndex) && !column.showWhenGrouped && !column.command) {\r\n template = column.groupCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: that._getDefaultGroupTemplate(column)\r\n }\r\n } else {\r\n if ((\"data\" === options.rowType || column.command) && column.cellTemplate) {\r\n template = column.cellTemplate\r\n } else {\r\n template = {\r\n allowRenderToDetachedContainer: true,\r\n render: that._getDefaultTemplate(column)\r\n }\r\n }\r\n }\r\n return template\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (row) {\r\n var isGroup = \"group\" === row.rowType;\r\n var isDataRow = \"data\" === row.rowType;\r\n isDataRow && $row.addClass(DATA_ROW_CLASS);\r\n isDataRow && this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n this.option(\"showColumnLines\") && $row.addClass(COLUMN_LINES_CLASS);\r\n if (false === row.visible) {\r\n $row.hide()\r\n }\r\n if (isGroup) {\r\n $row.addClass(GROUP_ROW_CLASS);\r\n var isRowExpanded = row.isExpanded;\r\n this.setAria(\"role\", \"row\", $row);\r\n this.setAria(\"expanded\", (0, _type.isDefined)(isRowExpanded) && isRowExpanded.toString(), $row)\r\n }\r\n }\r\n return $row\r\n },\r\n _rowPrepared: function($row, rowOptions, row) {\r\n var _this = this;\r\n if (\"data\" === rowOptions.rowType) {\r\n if (this.option(\"rowAlternationEnabled\")) {\r\n this._isAltRow(row) && $row.addClass(ROW_ALTERNATION_CLASS);\r\n rowOptions.watch && rowOptions.watch(function() {\r\n return _this._isAltRow(row)\r\n }, function(value) {\r\n $row.toggleClass(ROW_ALTERNATION_CLASS, value)\r\n })\r\n }\r\n this._setAriaRowIndex(rowOptions, $row);\r\n rowOptions.watch && rowOptions.watch(function() {\r\n return rowOptions.rowIndex\r\n }, function() {\r\n return _this._setAriaRowIndex(rowOptions, $row)\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _setAriaRowIndex: function(row, $row) {\r\n var component = this.component;\r\n var isPagerMode = \"standard\" === component.option(\"scrolling.mode\") && \"virtual\" !== component.option(\"scrolling.rowRenderingMode\");\r\n var rowIndex = row.rowIndex + 1;\r\n if (isPagerMode) {\r\n rowIndex = component.pageIndex() * component.pageSize() + rowIndex\r\n } else {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n this.setAria(\"rowindex\", rowIndex, $row)\r\n },\r\n _afterRowPrepared: function(e) {\r\n var _this2 = this;\r\n var arg = e.args[0];\r\n var dataController = this._dataController;\r\n var row = dataController.getVisibleRows()[arg.rowIndex];\r\n var watch = this.option(\"integrationOptions.watchMethod\");\r\n if (!arg.data || \"data\" !== arg.rowType || arg.isNewRow || !this.option(\"twoWayBindingEnabled\") || !watch || !row) {\r\n return\r\n }\r\n var dispose = watch(function() {\r\n return dataController.generateDataValues(arg.data, arg.columns)\r\n }, function() {\r\n dataController.repaintRows([row.rowIndex], _this2.option(\"repaintChangesOnly\"))\r\n }, {\r\n deep: true,\r\n skipImmediate: true\r\n });\r\n _events_engine.default.on(arg.rowElement, _remove_event.default, dispose)\r\n },\r\n _renderScrollable: function(force) {\r\n var that = this;\r\n var $element = that.element();\r\n if (!$element.children().length) {\r\n $element.append(\"
\")\r\n }\r\n if (force || !that._loadPanel) {\r\n that._renderLoadPanel($element, $element.parent(), that._dataController.isLocalStore())\r\n }\r\n if ((force || !that.getScrollable()) && that._dataController.isLoaded()) {\r\n var columns = that.getColumns();\r\n var allColumnsHasWidth = true;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].width && !columns[i].minWidth) {\r\n allColumnsHasWidth = false;\r\n break\r\n }\r\n }\r\n if (that.option(\"columnAutoWidth\") || that._hasHeight || allColumnsHasWidth || that._columnsController._isColumnFixing()) {\r\n that._renderScrollableCore($element)\r\n }\r\n }\r\n },\r\n _handleScroll: function(e) {\r\n var that = this;\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n that._isScrollByEvent = !!e.event;\r\n that._scrollTop = e.scrollOffset.top;\r\n that._scrollLeft = e.scrollOffset.left;\r\n if (rtlEnabled) {\r\n this._scrollRight = getMaxHorizontalScrollOffset(e.component) - this._scrollLeft\r\n }\r\n that.scrollChanged.fire(e.scrollOffset, that.name)\r\n },\r\n _renderScrollableCore: function($element) {\r\n var that = this;\r\n var dxScrollableOptions = that._createScrollableOptions();\r\n var scrollHandler = that._handleScroll.bind(that);\r\n dxScrollableOptions.onScroll = scrollHandler;\r\n dxScrollableOptions.onStop = scrollHandler;\r\n that._scrollable = that._createComponent($element, _ui.default, dxScrollableOptions);\r\n that._scrollableContainer = that._scrollable && that._scrollable._$container\r\n },\r\n _renderLoadPanel: _uiGrid_core.default.renderLoadPanel,\r\n _renderContent: function(contentElement, tableElement) {\r\n contentElement.empty().append(tableElement);\r\n return this._findContentElement()\r\n },\r\n _updateContent: function(newTableElement, change) {\r\n var that = this;\r\n var tableElement = that.getTableElement();\r\n var contentElement = that._findContentElement();\r\n var changeType = change && change.changeType;\r\n var executors = [];\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var rowInsertedClass = this.addWidgetPrefix(ROW_INSERTED_ANIMATION_CLASS);\r\n switch (changeType) {\r\n case \"update\":\r\n (0, _iterator.each)(change.rowIndices, function(index, rowIndex) {\r\n var $newRowElement = that._getRowElements(newTableElement).eq(index);\r\n var changeType = change.changeTypes && change.changeTypes[index];\r\n var item = change.items && change.items[index];\r\n executors.push(function() {\r\n var $rowsElement = that._getRowElements();\r\n var $rowElement = $rowsElement.eq(rowIndex);\r\n switch (changeType) {\r\n case \"update\":\r\n if (item) {\r\n var columnIndices = change.columnIndices && change.columnIndices[index];\r\n if ((0, _type.isDefined)(item.visible) && item.visible !== $rowElement.is(\":visible\")) {\r\n $rowElement.toggle(item.visible)\r\n } else {\r\n if (columnIndices) {\r\n that._updateCells($rowElement, $newRowElement, columnIndices)\r\n } else {\r\n $rowElement.replaceWith($newRowElement)\r\n }\r\n }\r\n }\r\n break;\r\n case \"insert\":\r\n if (!$rowsElement.length) {\r\n if (tableElement) {\r\n var target = $newRowElement.is(\"tbody\") ? tableElement : tableElement.children(\"tbody\");\r\n $newRowElement.prependTo(target)\r\n }\r\n } else {\r\n if ($rowElement.length) {\r\n $newRowElement.insertBefore($rowElement)\r\n } else {\r\n $newRowElement.insertAfter($rowsElement.last())\r\n }\r\n }\r\n if (highlightChanges && change.isLiveUpdate) {\r\n $newRowElement.addClass(rowInsertedClass)\r\n }\r\n break;\r\n case \"remove\":\r\n $rowElement.remove()\r\n }\r\n })\r\n });\r\n (0, _iterator.each)(executors, function() {\r\n this()\r\n });\r\n newTableElement.remove();\r\n break;\r\n default:\r\n that.setTableElement(newTableElement);\r\n contentElement.addClass(that.addWidgetPrefix(CONTENT_CLASS));\r\n that._renderContent(contentElement, newTableElement)\r\n }\r\n },\r\n _createEmptyRow: function(className, isFixed, height) {\r\n var that = this;\r\n var $cell;\r\n var $row = that._createRow();\r\n var columns = isFixed ? this.getFixedColumns() : this.getColumns();\r\n $row.addClass(className).toggleClass(COLUMN_LINES_CLASS, that.option(\"showColumnLines\"));\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = that._createCell({\r\n column: columns[i],\r\n rowType: \"freeSpace\",\r\n columnIndex: i,\r\n columns: columns\r\n });\r\n (0, _type.isNumeric)(height) && $cell.css(\"height\", height);\r\n $row.append($cell)\r\n }\r\n that.setAria(\"role\", \"presentation\", $row);\r\n return $row\r\n },\r\n _appendEmptyRow: function($table, $emptyRow, location) {\r\n var $tBodies = this._getBodies($table);\r\n var isTableContainer = !$tBodies.length || $emptyRow.is(\"tbody\");\r\n var $container = isTableContainer ? $table : $tBodies;\r\n if (\"top\" === location) {\r\n $container.first().prepend($emptyRow);\r\n if (isTableContainer) {\r\n var $colgroup = $container.children(\"colgroup\");\r\n $container.prepend($colgroup)\r\n }\r\n } else {\r\n $container.last().append($emptyRow)\r\n }\r\n },\r\n _renderFreeSpaceRow: function($tableElement) {\r\n var $freeSpaceRowElement = this._createEmptyRow(FREE_SPACE_CLASS);\r\n $freeSpaceRowElement = this._wrapRowIfNeed($tableElement, $freeSpaceRowElement);\r\n this._appendEmptyRow($tableElement, $freeSpaceRowElement)\r\n },\r\n _checkRowKeys: function(options) {\r\n var that = this;\r\n var rows = that._getRows(options);\r\n var keyExpr = that._dataController.store() && that._dataController.store().key();\r\n keyExpr && rows.some(function(row) {\r\n if (\"data\" === row.rowType && void 0 === row.key) {\r\n that._dataController.fireError(\"E1046\", keyExpr);\r\n return true\r\n }\r\n })\r\n },\r\n _needUpdateRowHeight: function(itemsCount) {\r\n return itemsCount > 0 && !this._rowHeight\r\n },\r\n _getRowsHeight: function($tableElement) {\r\n var $rowElements = $tableElement.children(\"tbody\").children().not(\".dx-virtual-row\").not(\".\" + FREE_SPACE_CLASS);\r\n return $rowElements.toArray().reduce(function(sum, row) {\r\n return sum + (0, _position.getBoundingRect)(row).height\r\n }, 0)\r\n },\r\n _updateRowHeight: function() {\r\n var that = this;\r\n var $tableElement = that.getTableElement();\r\n var itemsCount = that._dataController.items().length;\r\n if ($tableElement && that._needUpdateRowHeight(itemsCount)) {\r\n var rowsHeight = that._getRowsHeight($tableElement);\r\n that._rowHeight = rowsHeight / itemsCount\r\n }\r\n },\r\n _findContentElement: function() {\r\n var $content = this.element();\r\n var scrollable = this.getScrollable();\r\n if ($content) {\r\n if (scrollable) {\r\n $content = scrollable.$content()\r\n }\r\n return $content.children().first()\r\n }\r\n },\r\n _getRowElements: function(tableElement) {\r\n var $rows = this.callBase(tableElement);\r\n return $rows && $rows.not(\".\" + FREE_SPACE_CLASS)\r\n },\r\n _getFreeSpaceRowElements: function($table) {\r\n var tableElements = $table || this.getTableElements();\r\n return tableElements && tableElements.children(\"tbody\").children(\".\" + FREE_SPACE_CLASS)\r\n },\r\n _getNoDataText: function() {\r\n return this.option(\"noDataText\")\r\n },\r\n _rowClick: function(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", (0, _extend.extend)({\r\n evaluate: function(expr) {\r\n var getter = (0, _data.compileGetter)(expr);\r\n return getter(item.data)\r\n }\r\n }, e, item))\r\n },\r\n _rowDblClick: function(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowDblClick\", (0, _extend.extend)({}, e, item))\r\n },\r\n _getColumnsCountBeforeGroups: function(columns) {\r\n for (var i = 0; i < columns.length; i++) {\r\n if (\"groupExpand\" === columns[i].type) {\r\n return i\r\n }\r\n }\r\n return 0\r\n },\r\n _getGroupCellOptions: function(options) {\r\n var columnsCountBeforeGroups = this._getColumnsCountBeforeGroups(options.columns);\r\n var columnIndex = (options.row.groupIndex || 0) + columnsCountBeforeGroups;\r\n return {\r\n columnIndex: columnIndex,\r\n colspan: options.columns.length - columnIndex - 1\r\n }\r\n },\r\n _renderCells: function($row, options) {\r\n if (\"group\" === options.row.rowType) {\r\n this._renderGroupedCells($row, options)\r\n } else {\r\n if (options.row.values) {\r\n this.callBase($row, options)\r\n }\r\n }\r\n },\r\n _renderGroupedCells: function($row, options) {\r\n var row = options.row;\r\n var expandColumn;\r\n var columns = options.columns;\r\n var rowIndex = row.rowIndex;\r\n var isExpanded;\r\n var groupCellOptions = this._getGroupCellOptions(options);\r\n for (var i = 0; i <= groupCellOptions.columnIndex; i++) {\r\n if (i === groupCellOptions.columnIndex && columns[i].allowCollapsing && \"infinite\" !== options.scrollingMode) {\r\n isExpanded = !!row.isExpanded;\r\n expandColumn = columns[i]\r\n } else {\r\n isExpanded = null;\r\n expandColumn = {\r\n command: \"expand\",\r\n cssClass: columns[i].cssClass\r\n }\r\n }\r\n this._renderCell($row, {\r\n value: isExpanded,\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: expandColumn,\r\n columnIndex: i\r\n })\r\n }\r\n var groupColumnAlignment = (0, _position.getDefaultAlignment)(this.option(\"rtlEnabled\"));\r\n var groupColumn = (0, _extend.extend)({}, columns[groupCellOptions.columnIndex], {\r\n command: null,\r\n cssClass: null,\r\n width: null,\r\n showWhenGrouped: false,\r\n alignment: groupColumnAlignment\r\n });\r\n if (groupCellOptions.colspan > 1) {\r\n groupColumn.colspan = groupCellOptions.colspan\r\n }\r\n this._renderCell($row, {\r\n value: row.values[row.groupIndex],\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: groupColumn,\r\n columnIndex: groupCellOptions.columnIndex\r\n })\r\n },\r\n _renderRows: function($table, options) {\r\n var that = this;\r\n var scrollingMode = that.option(\"scrolling.mode\");\r\n that.callBase($table, (0, _extend.extend)({\r\n scrollingMode: scrollingMode\r\n }, options));\r\n that._checkRowKeys(options.change);\r\n that._renderFreeSpaceRow($table);\r\n if (!that._hasHeight) {\r\n that.updateFreeSpaceRowHeight($table)\r\n }\r\n },\r\n _renderRow: function($table, options) {\r\n var that = this;\r\n var row = options.row;\r\n var rowTemplate = that.option(\"rowTemplate\");\r\n if ((\"data\" === row.rowType || \"group\" === row.rowType) && !(0, _type.isDefined)(row.groupIndex) && rowTemplate) {\r\n that.renderTemplate($table, rowTemplate, (0, _extend.extend)({\r\n columns: options.columns\r\n }, row), true)\r\n } else {\r\n that.callBase($table, options)\r\n }\r\n },\r\n _renderTable: function(options) {\r\n var that = this;\r\n var $table = that.callBase(options);\r\n var resizeCompletedHandler = function resizeCompletedHandler() {\r\n var scrollableInstance = that.getScrollable();\r\n if (scrollableInstance && that.element().closest((0, _window.getWindow)().document).length) {\r\n that.resizeCompleted.remove(resizeCompletedHandler);\r\n scrollableInstance._visibilityChanged(true)\r\n }\r\n };\r\n if (!(0, _type.isDefined)(that.getTableElement())) {\r\n that.setTableElement($table);\r\n that._renderScrollable(true);\r\n that.resizeCompleted.add(resizeCompletedHandler)\r\n } else {\r\n that._renderScrollable()\r\n }\r\n return $table\r\n },\r\n _createTable: function() {\r\n var $table = this.callBase.apply(this, arguments);\r\n if (this.option(\"rowTemplate\")) {\r\n $table.appendTo(this.component.$element())\r\n }\r\n return $table\r\n },\r\n _renderCore: function(change) {\r\n var that = this;\r\n var $element = that.element();\r\n $element.addClass(that.addWidgetPrefix(ROWS_VIEW_CLASS)).toggleClass(that.addWidgetPrefix(NOWRAP_CLASS), !that.option(\"wordWrapEnabled\"));\r\n $element.toggleClass(EMPTY_CLASS, 0 === that._dataController.items().length);\r\n that.setAria(\"role\", \"presentation\", $element);\r\n var $table = that._renderTable({\r\n change: change\r\n });\r\n that._updateContent($table, change);\r\n that.callBase(change);\r\n that._lastColumnWidths = null\r\n },\r\n _getRows: function(change) {\r\n return change && change.items || this._dataController.items()\r\n },\r\n _getCellOptions: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var row = options.row;\r\n var data = row.data;\r\n var summaryCells = row && row.summaryCells;\r\n var value = options.value;\r\n var displayValue = _uiGrid_core.default.getDisplayValue(column, value, data, row.rowType);\r\n var parameters = this.callBase(options);\r\n parameters.value = value;\r\n parameters.oldValue = options.oldValue;\r\n parameters.displayValue = displayValue;\r\n parameters.row = row;\r\n parameters.key = row.key;\r\n parameters.data = data;\r\n parameters.rowType = row.rowType;\r\n parameters.values = row.values;\r\n parameters.text = !column.command ? _uiGrid_core.default.formatValue(displayValue, column) : \"\";\r\n parameters.rowIndex = row.rowIndex;\r\n parameters.summaryItems = summaryCells && summaryCells[options.columnIndex];\r\n parameters.resized = column.resizedCallbacks;\r\n if ((0, _type.isDefined)(column.groupIndex) && !column.command) {\r\n var groupingTextsOptions = that.option(\"grouping.texts\");\r\n var scrollingMode = that.option(\"scrolling.mode\");\r\n if (\"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n parameters.groupContinuesMessage = data && data.isContinuationOnNextPage && groupingTextsOptions && groupingTextsOptions.groupContinuesMessage;\r\n parameters.groupContinuedMessage = data && data.isContinuation && groupingTextsOptions && groupingTextsOptions.groupContinuedMessage\r\n }\r\n }\r\n return parameters\r\n },\r\n _setRowsOpacityCore: function($rows, visibleColumns, columnIndex, value) {\r\n var columnsController = this._columnsController;\r\n var columns = columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n (0, _iterator.each)($rows, function(rowIndex, row) {\r\n if (!(0, _renderer.default)(row).hasClass(GROUP_ROW_CLASS)) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n if ((0, _type.isNumeric)(columnID) && columnsController.isParentBandColumn(visibleColumns[i].index, columnID) || visibleColumns[i].index === columnIndex) {\r\n $rows.eq(rowIndex).children().eq(i).css({\r\n opacity: value\r\n });\r\n if (!(0, _type.isNumeric)(columnID)) {\r\n break\r\n }\r\n }\r\n }\r\n }\r\n })\r\n },\r\n _getDevicePixelRatio: function() {\r\n return (0, _window.getWindow)().devicePixelRatio\r\n },\r\n renderNoDataText: _uiGrid_core.default.renderNoDataText,\r\n getCellOptions: function(rowIndex, columnIdentifier) {\r\n var rowOptions = this._dataController.items()[rowIndex];\r\n var cellOptions;\r\n var column;\r\n if (rowOptions) {\r\n if ((0, _type.isString)(columnIdentifier)) {\r\n column = this._columnsController.columnOption(columnIdentifier)\r\n } else {\r\n column = this._columnsController.getVisibleColumns()[columnIdentifier]\r\n }\r\n if (column) {\r\n cellOptions = this._getCellOptions({\r\n value: column.calculateCellValue(rowOptions.data),\r\n rowIndex: rowOptions.rowIndex,\r\n row: rowOptions,\r\n column: column\r\n })\r\n }\r\n }\r\n return cellOptions\r\n },\r\n getRow: function(index) {\r\n if (index >= 0) {\r\n var rows = this._getRowElements();\r\n if (rows.length > index) {\r\n return (0, _renderer.default)(rows[index])\r\n }\r\n }\r\n },\r\n updateFreeSpaceRowHeight: function($table) {\r\n var _this3 = this;\r\n var dataController = this._dataController;\r\n var itemCount = dataController.items(true).length;\r\n var contentElement = this._findContentElement();\r\n var freeSpaceRowElements = this._getFreeSpaceRowElements($table);\r\n if (freeSpaceRowElements && contentElement && dataController.totalCount() >= 0) {\r\n var isFreeSpaceRowVisible = false;\r\n if (itemCount > 0) {\r\n if (!this._hasHeight) {\r\n var freeSpaceRowCount = dataController.pageSize() - itemCount;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (freeSpaceRowCount > 0 && dataController.pageCount() > 1 && \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n (0, _style.setHeight)(freeSpaceRowElements, freeSpaceRowCount * this._rowHeight);\r\n isFreeSpaceRowVisible = true\r\n }\r\n if (!isFreeSpaceRowVisible && $table) {\r\n (0, _style.setHeight)(freeSpaceRowElements, 0)\r\n } else {\r\n freeSpaceRowElements.toggle(isFreeSpaceRowVisible)\r\n }\r\n this._updateLastRowBorder(isFreeSpaceRowVisible)\r\n } else {\r\n freeSpaceRowElements.hide();\r\n (0, _common.deferUpdate)(function() {\r\n var scrollbarWidth = _this3.getScrollbarWidth(true);\r\n var elementHeightWithoutScrollbar = _this3.element().height() - scrollbarWidth;\r\n var contentHeight = contentElement.outerHeight();\r\n var showFreeSpaceRow = elementHeightWithoutScrollbar - contentHeight > 0;\r\n var rowsHeight = _this3._getRowsHeight(contentElement.children().first());\r\n var $tableElement = $table || _this3.getTableElements();\r\n var borderTopWidth = Math.ceil(parseFloat($tableElement.css(\"borderTopWidth\")));\r\n var heightCorrection = _this3._getHeightCorrection();\r\n var resultHeight = elementHeightWithoutScrollbar - rowsHeight - borderTopWidth - heightCorrection;\r\n if (showFreeSpaceRow) {\r\n (0, _common.deferRender)(function() {\r\n freeSpaceRowElements.css(\"height\", resultHeight);\r\n isFreeSpaceRowVisible = true;\r\n freeSpaceRowElements.show()\r\n })\r\n }(0, _common.deferRender)(function() {\r\n return _this3._updateLastRowBorder(isFreeSpaceRowVisible)\r\n })\r\n })\r\n }\r\n } else {\r\n freeSpaceRowElements.css(\"height\", 0);\r\n freeSpaceRowElements.show();\r\n this._updateLastRowBorder(true)\r\n }\r\n }\r\n },\r\n _getHeightCorrection: function() {\r\n var isZoomedWebkit = _browser.default.webkit && this._getDevicePixelRatio() >= 2;\r\n var hasExtraBorderTop = _browser.default.mozilla && _browser.default.version >= 70 && !this.option(\"showRowLines\");\r\n return isZoomedWebkit || hasExtraBorderTop ? 1 : 0\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n this.callBase(e);\r\n this._fireColumnResizedCallbacks()\r\n }\r\n },\r\n getScrollable: function() {\r\n return this._scrollable\r\n },\r\n init: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n that._editorFactoryController = that.getController(\"editorFactory\");\r\n that._rowHeight = 0;\r\n that._scrollTop = 0;\r\n that._scrollLeft = -1;\r\n that._scrollRight = 0;\r\n that._hasHeight = false;\r\n dataController.loadingChanged.add(function(isLoading, messageText) {\r\n that.setLoading(isLoading, messageText)\r\n });\r\n dataController.dataSourceChanged.add(function() {\r\n if (that._scrollLeft >= 0) {\r\n that._handleScroll({\r\n component: that.getScrollable(),\r\n scrollOffset: {\r\n top: that._scrollTop,\r\n left: that._scrollLeft\r\n }\r\n })\r\n }\r\n })\r\n },\r\n _handleDataChanged: function(change) {\r\n var that = this;\r\n switch (change.changeType) {\r\n case \"refresh\":\r\n case \"prepend\":\r\n case \"append\":\r\n case \"update\":\r\n that.render(null, change);\r\n break;\r\n default:\r\n that._update(change)\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"isScrollbarVisible\", \"getTopVisibleRowData\", \"getScrollbarWidth\", \"getCellElement\", \"getRowElement\", \"getScrollable\"]\r\n },\r\n contentWidth: function() {\r\n return this.element().width() - this.getScrollbarWidth()\r\n },\r\n getScrollbarWidth: function(isHorizontal) {\r\n var scrollableContainer = this._scrollableContainer && this._scrollableContainer.get(0);\r\n var scrollbarWidth = 0;\r\n if (scrollableContainer) {\r\n if (!isHorizontal) {\r\n scrollbarWidth = scrollableContainer.clientWidth ? scrollableContainer.offsetWidth - scrollableContainer.clientWidth : 0\r\n } else {\r\n scrollbarWidth = scrollableContainer.clientHeight ? scrollableContainer.offsetHeight - scrollableContainer.clientHeight : 0;\r\n scrollbarWidth += getScrollableBottomPadding(this)\r\n }\r\n }\r\n return scrollbarWidth > 0 ? scrollbarWidth : 0\r\n },\r\n _fireColumnResizedCallbacks: function() {\r\n var that = this;\r\n var lastColumnWidths = that._lastColumnWidths || [];\r\n var columnWidths = [];\r\n var columns = that.getColumns();\r\n for (var i = 0; i < columns.length; i++) {\r\n columnWidths[i] = columns[i].visibleWidth;\r\n if (columns[i].resizedCallbacks && !(0, _type.isDefined)(columns[i].groupIndex) && lastColumnWidths[i] !== columnWidths[i]) {\r\n columns[i].resizedCallbacks.fire(columnWidths[i])\r\n }\r\n }\r\n that._lastColumnWidths = columnWidths\r\n },\r\n _updateLastRowBorder: function(isFreeSpaceRowVisible) {\r\n if (this.option(\"showBorders\") && this.option(\"showRowLines\") && !isFreeSpaceRowVisible) {\r\n this.element().addClass(LAST_ROW_BORDER)\r\n } else {\r\n this.element().removeClass(LAST_ROW_BORDER)\r\n }\r\n },\r\n _updateScrollable: function() {\r\n var dxScrollable = _ui.default.getInstance(this.element());\r\n if (dxScrollable) {\r\n dxScrollable.update();\r\n this._updateHorizontalScrollPosition()\r\n }\r\n },\r\n _updateHorizontalScrollPosition: function() {\r\n var scrollable = this.getScrollable();\r\n var scrollLeft = scrollable && scrollable.scrollOffset().left;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n var maxHorizontalScrollOffset = getMaxHorizontalScrollOffset(scrollable);\r\n var scrollRight = maxHorizontalScrollOffset - scrollLeft;\r\n if (scrollRight !== this._scrollRight) {\r\n this._scrollLeft = maxHorizontalScrollOffset - this._scrollRight\r\n }\r\n }\r\n if (this._scrollLeft >= 0 && scrollLeft !== this._scrollLeft) {\r\n scrollable.scrollTo({\r\n x: this._scrollLeft\r\n })\r\n }\r\n },\r\n _resizeCore: function() {\r\n var that = this;\r\n that._fireColumnResizedCallbacks();\r\n that._updateRowHeight();\r\n (0, _common.deferRender)(function() {\r\n that._renderScrollable();\r\n that.renderNoDataText();\r\n that.updateFreeSpaceRowHeight();\r\n (0, _common.deferUpdate)(function() {\r\n that._updateScrollable()\r\n })\r\n })\r\n },\r\n scrollTo: function(location) {\r\n var $element = this.element();\r\n var dxScrollable = $element && _ui.default.getInstance($element);\r\n if (dxScrollable) {\r\n dxScrollable.scrollTo(location)\r\n }\r\n },\r\n height: function(_height, hasHeight) {\r\n var that = this;\r\n var $element = this.element();\r\n if (0 === arguments.length) {\r\n return $element ? $element.outerHeight(true) : 0\r\n }\r\n that._hasHeight = void 0 === hasHeight ? \"auto\" !== _height : hasHeight;\r\n if ((0, _type.isDefined)(_height) && $element) {\r\n (0, _style.setHeight)($element, _height)\r\n }\r\n },\r\n setLoading: function(isLoading, messageText) {\r\n var that = this;\r\n var loadPanel = that._loadPanel;\r\n var dataController = that._dataController;\r\n var loadPanelOptions = that.option(\"loadPanel\") || {};\r\n var animation = dataController.isLoaded() ? loadPanelOptions.animation : null;\r\n var $element = that.element();\r\n if (!(0, _window.hasWindow)()) {\r\n return\r\n }\r\n if (!loadPanel && void 0 !== messageText && dataController.isLocalStore() && \"auto\" === loadPanelOptions.enabled && $element) {\r\n that._renderLoadPanel($element, $element.parent());\r\n loadPanel = that._loadPanel\r\n }\r\n if (loadPanel) {\r\n var visibilityOptions = {\r\n message: messageText || loadPanelOptions.text,\r\n animation: animation,\r\n visible: isLoading\r\n };\r\n clearTimeout(that._hideLoadingTimeoutID);\r\n if (loadPanel.option(\"visible\") && !isLoading) {\r\n that._hideLoadingTimeoutID = setTimeout(function() {\r\n loadPanel.option(visibilityOptions)\r\n }, LOADPANEL_HIDE_TIMEOUT)\r\n } else {\r\n loadPanel.option(visibilityOptions)\r\n }\r\n }\r\n },\r\n setRowsOpacity: function(columnIndex, value) {\r\n var $rows = this._getRowElements().not(\".\" + GROUP_ROW_CLASS) || [];\r\n this._setRowsOpacityCore($rows, this.getColumns(), columnIndex, value)\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var $cells = this.callBase.apply(this, arguments);\r\n if ($cells) {\r\n var groupCellIndex = $cells.filter(\".\" + GROUP_CELL_CLASS).index();\r\n if (groupCellIndex >= 0 && $cells.length > groupCellIndex + 1) {\r\n return $cells.slice(0, groupCellIndex + 1)\r\n }\r\n }\r\n return $cells\r\n },\r\n getTopVisibleItemIndex: function(isFloor) {\r\n var that = this;\r\n var itemIndex = 0;\r\n var prevOffsetTop = 0;\r\n var offsetTop = 0;\r\n var scrollPosition = that._scrollTop;\r\n var $contentElement = that._findContentElement();\r\n var contentElementOffsetTop = $contentElement && $contentElement.offset().top;\r\n var items = that._dataController.items();\r\n var tableElement = that.getTableElement();\r\n if (items.length && tableElement) {\r\n var rowElements = that._getRowElements(tableElement).filter(\":visible\");\r\n for (itemIndex = 0; itemIndex < items.length; itemIndex++) {\r\n prevOffsetTop = offsetTop;\r\n var rowElement = rowElements.eq(itemIndex);\r\n if (rowElement.length) {\r\n offsetTop = rowElement.offset().top - contentElementOffsetTop;\r\n if (offsetTop > scrollPosition) {\r\n if (itemIndex) {\r\n if (isFloor || 2 * scrollPosition < Math.round(offsetTop + prevOffsetTop)) {\r\n itemIndex--\r\n }\r\n }\r\n break\r\n }\r\n }\r\n }\r\n if (itemIndex && itemIndex === items.length) {\r\n itemIndex--\r\n }\r\n }\r\n return itemIndex\r\n },\r\n getTopVisibleRowData: function() {\r\n var itemIndex = this.getTopVisibleItemIndex();\r\n var items = this._dataController.items();\r\n if (items[itemIndex]) {\r\n return items[itemIndex].data\r\n }\r\n },\r\n _scrollToElement: function($element, offset) {\r\n var scrollable = this.getScrollable();\r\n scrollable && scrollable.scrollToElement($element, offset)\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n that.callBase(args);\r\n switch (args.name) {\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n case \"showRowLines\":\r\n case \"rowAlternationEnabled\":\r\n case \"rowTemplate\":\r\n case \"twoWayBindingEnabled\":\r\n that._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"scrolling\":\r\n that._rowHeight = null;\r\n that._tableElement = null;\r\n args.handled = true;\r\n break;\r\n case \"rtlEnabled\":\r\n that._rowHeight = null;\r\n that._tableElement = null;\r\n break;\r\n case \"loadPanel\":\r\n that._tableElement = null;\r\n that._invalidate(true, \"loadPanel.enabled\" !== args.fullName);\r\n args.handled = true;\r\n break;\r\n case \"noDataText\":\r\n that.renderNoDataText();\r\n args.handled = true\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n this._scrollable && this._scrollable.dispose()\r\n },\r\n setScrollerSpacing: function() {}\r\n }\r\n }())\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (format_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"./core/utils/type\");\r\nvar _date = _interopRequireDefault(require(\"./core/utils/date\"));\r\nvar _number = _interopRequireDefault(require(\"./localization/number\"));\r\nvar _date2 = _interopRequireDefault(require(\"./localization/date\"));\r\nvar _dependency_injector = _interopRequireDefault(require(\"./core/utils/dependency_injector\"));\r\nrequire(\"./localization/currency\");\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, _dependency_injector.default)({\r\n format: function(value, _format) {\r\n var formatIsValid = (0, _type.isString)(_format) && \"\" !== _format || (0, _type.isPlainObject)(_format) || (0, _type.isFunction)(_format);\r\n var valueIsValid = (0, _type.isNumeric)(value) || (0, _type.isDate)(value);\r\n if (!formatIsValid || !valueIsValid) {\r\n return (0, _type.isDefined)(value) ? value.toString() : \"\"\r\n }\r\n if ((0, _type.isFunction)(_format)) {\r\n return _format(value)\r\n }\r\n if ((0, _type.isString)(_format)) {\r\n _format = {\r\n type: _format\r\n }\r\n }\r\n if ((0, _type.isNumeric)(value)) {\r\n return _number.default.format(value, _format)\r\n }\r\n if ((0, _type.isDate)(value)) {\r\n return _date2.default.format(value, _format)\r\n }\r\n },\r\n getTimeFormat: function(showSecond) {\r\n return showSecond ? \"longtime\" : \"shorttime\"\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!Array.isArray(format)) {\r\n return format\r\n }\r\n if (1 === format.length) {\r\n return format[0]\r\n }\r\n return function(date) {\r\n return format.map(function(formatPart) {\r\n return _date2.default.format(date, formatPart)\r\n }).join(\" \")\r\n }\r\n },\r\n getDateFormatByDifferences: function(dateDifferences, intervalFormat) {\r\n var resultFormat = [];\r\n var needSpecialSecondFormatter = intervalFormat && dateDifferences.millisecond && !(dateDifferences.year || dateDifferences.month || dateDifferences.day);\r\n if (needSpecialSecondFormatter) {\r\n var secondFormatter = function(date) {\r\n return date.getSeconds() + date.getMilliseconds() / 1e3 + \"s\"\r\n };\r\n resultFormat.push(secondFormatter)\r\n } else {\r\n if (dateDifferences.millisecond) {\r\n resultFormat.push(\"millisecond\")\r\n }\r\n }\r\n if (dateDifferences.hour || dateDifferences.minute || !needSpecialSecondFormatter && dateDifferences.second) {\r\n resultFormat.unshift(this.getTimeFormat(dateDifferences.second))\r\n }\r\n if (dateDifferences.year && dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat && \"month\" === intervalFormat) {\r\n return \"monthandyear\"\r\n } else {\r\n resultFormat.unshift(\"shortdate\");\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n }\r\n if (dateDifferences.year && dateDifferences.month) {\r\n return \"monthandyear\"\r\n }\r\n if (dateDifferences.year && dateDifferences.quarter) {\r\n return \"quarterandyear\"\r\n }\r\n if (dateDifferences.year) {\r\n return \"year\"\r\n }\r\n if (dateDifferences.quarter) {\r\n return \"quarter\"\r\n }\r\n if (dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat) {\r\n var monthDayFormatter = function(date) {\r\n return _date2.default.getMonthNames(\"abbreviated\")[date.getMonth()] + \" \" + _date2.default.format(date, \"day\")\r\n };\r\n resultFormat.unshift(monthDayFormatter)\r\n } else {\r\n resultFormat.unshift(\"monthandday\")\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n if (dateDifferences.month) {\r\n return \"month\"\r\n }\r\n if (dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift(\"day\")\r\n } else {\r\n var dayFormatter = function(date) {\r\n return _date2.default.format(date, \"dayofweek\") + \", \" + _date2.default.format(date, \"day\")\r\n };\r\n resultFormat.unshift(dayFormatter)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n },\r\n getDateFormatByTicks: function(ticks) {\r\n var maxDiff;\r\n var currentDiff;\r\n var i;\r\n if (ticks.length > 1) {\r\n maxDiff = _date.default.getDatesDifferences(ticks[0], ticks[1]);\r\n for (i = 1; i < ticks.length - 1; i++) {\r\n currentDiff = _date.default.getDatesDifferences(ticks[i], ticks[i + 1]);\r\n if (maxDiff.count < currentDiff.count) {\r\n maxDiff = currentDiff\r\n }\r\n }\r\n } else {\r\n maxDiff = {\r\n year: true,\r\n month: true,\r\n day: true,\r\n hour: ticks[0].getHours() > 0,\r\n minute: ticks[0].getMinutes() > 0,\r\n second: ticks[0].getSeconds() > 0,\r\n millisecond: ticks[0].getMilliseconds() > 0\r\n }\r\n }\r\n var resultFormat = this.getDateFormatByDifferences(maxDiff);\r\n return resultFormat\r\n },\r\n getDateFormatByTickInterval: function(startValue, endValue, tickInterval) {\r\n var dateUnitInterval;\r\n var dateDifferencesConverter = {\r\n week: \"day\"\r\n };\r\n var correctDateDifferences = function(dateDifferences, tickInterval, value) {\r\n switch (tickInterval) {\r\n case \"year\":\r\n case \"quarter\":\r\n dateDifferences.month = value;\r\n case \"month\":\r\n dateDifferences.day = value;\r\n case \"week\":\r\n case \"day\":\r\n dateDifferences.hour = value;\r\n case \"hour\":\r\n dateDifferences.minute = value;\r\n case \"minute\":\r\n dateDifferences.second = value;\r\n case \"second\":\r\n dateDifferences.millisecond = value\r\n }\r\n };\r\n var correctDifferencesByMaxDate = function(differences, minDate, maxDate) {\r\n if (!maxDate.getMilliseconds() && maxDate.getSeconds()) {\r\n if (maxDate.getSeconds() - minDate.getSeconds() === 1) {\r\n differences.millisecond = true;\r\n differences.second = false\r\n }\r\n } else {\r\n if (!maxDate.getSeconds() && maxDate.getMinutes()) {\r\n if (maxDate.getMinutes() - minDate.getMinutes() === 1) {\r\n differences.second = true;\r\n differences.minute = false\r\n }\r\n } else {\r\n if (!maxDate.getMinutes() && maxDate.getHours()) {\r\n if (maxDate.getHours() - minDate.getHours() === 1) {\r\n differences.minute = true;\r\n differences.hour = false\r\n }\r\n } else {\r\n if (!maxDate.getHours() && maxDate.getDate() > 1) {\r\n if (maxDate.getDate() - minDate.getDate() === 1) {\r\n differences.hour = true;\r\n differences.day = false\r\n }\r\n } else {\r\n if (1 === maxDate.getDate() && maxDate.getMonth()) {\r\n if (maxDate.getMonth() - minDate.getMonth() === 1) {\r\n differences.day = true;\r\n differences.month = false\r\n }\r\n } else {\r\n if (!maxDate.getMonth() && maxDate.getFullYear()) {\r\n if (maxDate.getFullYear() - minDate.getFullYear() === 1) {\r\n differences.month = true;\r\n differences.year = false\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n tickInterval = (0, _type.isString)(tickInterval) ? tickInterval.toLowerCase() : tickInterval;\r\n var dateDifferences = _date.default.getDatesDifferences(startValue, endValue);\r\n if (startValue !== endValue) {\r\n correctDifferencesByMaxDate(dateDifferences, startValue > endValue ? endValue : startValue, startValue > endValue ? startValue : endValue)\r\n }\r\n dateUnitInterval = _date.default.getDateUnitInterval(dateDifferences);\r\n correctDateDifferences(dateDifferences, dateUnitInterval, true);\r\n dateUnitInterval = _date.default.getDateUnitInterval(tickInterval || \"second\");\r\n correctDateDifferences(dateDifferences, dateUnitInterval, false);\r\n dateDifferences[dateDifferencesConverter[dateUnitInterval] || dateUnitInterval] = true;\r\n var resultFormat = this.getDateFormatByDifferences(dateDifferences);\r\n return resultFormat\r\n }\r\n});\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.grouping.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.createOffsetFilter = createOffsetFilter;\r\nexports.GroupingHelper = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _utils = _interopRequireDefault(require(\"../../data/utils\"));\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 createOffsetFilter(path, storeLoadOptions, lastLevelOnly) {\r\n var groups = _utils.default.normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = lastLevelOnly ? path.length - 1 : 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n var selector = groups[j].selector;\r\n if (i === j && (null === path[j] || false === path[j] || true === path[j])) {\r\n if (false === path[j]) {\r\n filterElement.push([selector, \"=\", groups[j].desc ? true : null])\r\n } else {\r\n if (path[j] ? !groups[j].desc : groups[j].desc) {\r\n filterElement.push([selector, \"<>\", path[j]])\r\n } else {\r\n filterElement.push([selector, \"<>\", null]);\r\n filterElement.push([selector, \"=\", null])\r\n }\r\n }\r\n } else {\r\n var currentFilter = [selector, i === j ? groups[j].desc ? \">\" : \"<\" : \"=\", path[j]];\r\n if (\"<\" === currentFilter[1]) {\r\n filterElement.push([currentFilter, \"or\", [selector, \"=\", null]])\r\n } else {\r\n filterElement.push(currentFilter)\r\n }\r\n }\r\n }\r\n filter.push(_uiData_grid.default.combineFilters(filterElement))\r\n }\r\n filter = _uiData_grid.default.combineFilters(filter, \"or\");\r\n return _uiData_grid.default.combineFilters([filter, storeLoadOptions.filter])\r\n}\r\nvar GroupingHelper = _class.default.inherit(function() {\r\n var findGroupInfoByKey = function(groupsInfo, key) {\r\n var hash = groupsInfo.hash;\r\n return hash && hash[JSON.stringify(key)]\r\n };\r\n var getGroupInfoIndexByOffset = function(groupsInfo, offset) {\r\n var leftIndex = 0;\r\n var rightIndex = groupsInfo.length - 1;\r\n if (!groupsInfo.length) {\r\n return 0\r\n }\r\n do {\r\n var middleIndex = rightIndex + leftIndex >> 1;\r\n if (groupsInfo[middleIndex].offset > offset) {\r\n rightIndex = middleIndex\r\n } else {\r\n leftIndex = middleIndex\r\n }\r\n } while (rightIndex - leftIndex > 1);\r\n var index;\r\n for (index = leftIndex; index <= rightIndex; index++) {\r\n if (groupsInfo[index].offset > offset) {\r\n break\r\n }\r\n }\r\n return index\r\n };\r\n var cleanGroupsInfo = function cleanGroupsInfo(groupsInfo, groupIndex, groupsCount) {\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n if (groupIndex + 1 >= groupsCount) {\r\n groupsInfo[i].children = []\r\n } else {\r\n cleanGroupsInfo(groupsInfo[i].children, groupIndex + 1, groupsCount)\r\n }\r\n }\r\n };\r\n var calculateItemsCount = function calculateItemsCount(that, items, groupsCount) {\r\n var result = 0;\r\n if (items) {\r\n if (!groupsCount) {\r\n result = items.length\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n if (that.isGroupItemCountable(items[i])) {\r\n result++\r\n }\r\n result += calculateItemsCount(that, items[i].items, groupsCount - 1)\r\n }\r\n }\r\n }\r\n return result\r\n };\r\n return {\r\n ctor: function(dataSourceAdapter) {\r\n this._dataSource = dataSourceAdapter;\r\n this.reset()\r\n },\r\n reset: function() {\r\n this._groupsInfo = [];\r\n this._totalCountCorrection = 0\r\n },\r\n totalCountCorrection: function() {\r\n return this._totalCountCorrection\r\n },\r\n updateTotalItemsCount: function(totalCountCorrection) {\r\n this._totalCountCorrection = totalCountCorrection || 0\r\n },\r\n isGroupItemCountable: function(item) {\r\n return !this._isVirtualPaging() || !item.isContinuation\r\n },\r\n _isVirtualPaging: function() {\r\n var scrollingMode = this._dataSource.option(\"scrolling.mode\");\r\n return \"virtual\" === scrollingMode || \"infinite\" === scrollingMode\r\n },\r\n itemsCount: function itemsCount() {\r\n var dataSourceAdapter = this._dataSource;\r\n var dataSource = dataSourceAdapter._dataSource;\r\n var groupCount = _uiData_grid.default.normalizeSortingInfo(dataSource.group() || []).length;\r\n var itemsCount = calculateItemsCount(this, dataSource.items(), groupCount);\r\n return itemsCount\r\n },\r\n foreachGroups: function(callback, childrenAtFirst, foreachCollapsedGroups, updateOffsets, updateParentOffsets) {\r\n var that = this;\r\n\r\n function foreachGroupsCore(groupsInfo, callback, childrenAtFirst, parents) {\r\n var callbackResults = [];\r\n\r\n function executeCallback(callback, data, parents, callbackResults) {\r\n var callbackResult = data && callback(data, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n return callbackResult\r\n }\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n parents.push(groupsInfo[i].data);\r\n if (!childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.isExpanded || foreachCollapsedGroups) {\r\n var children = groupsInfo[i].children;\r\n var callbackResult = children.length && foreachGroupsCore(children, callback, childrenAtFirst, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n if (false === callbackResult) {\r\n return false\r\n }\r\n }\r\n if (childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.offset !== groupsInfo[i].offset) {\r\n updateOffsets = true\r\n }\r\n parents.pop()\r\n }\r\n var currentParents = updateParentOffsets && parents.slice(0);\r\n return updateOffsets && _deferred.when.apply(_renderer.default, callbackResults).always(function() {\r\n that._updateGroupInfoOffsets(groupsInfo, currentParents)\r\n })\r\n }\r\n return foreachGroupsCore(that._groupsInfo, callback, childrenAtFirst, [])\r\n },\r\n _updateGroupInfoOffsets: function(groupsInfo, parents) {\r\n parents = parents || [];\r\n for (var index = 0; index < groupsInfo.length; index++) {\r\n var groupInfo = groupsInfo[index];\r\n if (groupInfo.data && groupInfo.data.offset !== groupInfo.offset) {\r\n groupInfo.offset = groupInfo.data.offset;\r\n for (var parentIndex = 0; parentIndex < parents.length; parentIndex++) {\r\n parents[parentIndex].offset = groupInfo.offset\r\n }\r\n }\r\n }\r\n groupsInfo.sort(function(a, b) {\r\n return a.offset - b.offset\r\n })\r\n },\r\n findGroupInfo: function(path) {\r\n var that = this;\r\n var groupInfo;\r\n var groupsInfo = that._groupsInfo;\r\n for (var pathIndex = 0; groupsInfo && pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n groupsInfo = groupInfo && groupInfo.children\r\n }\r\n return groupInfo && groupInfo.data\r\n },\r\n addGroupInfo: function(groupInfoData) {\r\n var that = this;\r\n var groupInfo;\r\n var path = groupInfoData.path;\r\n var groupsInfo = that._groupsInfo;\r\n for (var pathIndex = 0; pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n if (!groupInfo) {\r\n groupInfo = {\r\n key: path[pathIndex],\r\n offset: groupInfoData.offset,\r\n data: {\r\n offset: groupInfoData.offset,\r\n isExpanded: true,\r\n path: path.slice(0, pathIndex + 1)\r\n },\r\n children: []\r\n };\r\n var index = getGroupInfoIndexByOffset(groupsInfo, groupInfoData.offset);\r\n groupsInfo.splice(index, 0, groupInfo);\r\n groupsInfo.hash = groupsInfo.hash || {};\r\n groupsInfo.hash[JSON.stringify(groupInfo.key)] = groupInfo\r\n }\r\n if (pathIndex === path.length - 1) {\r\n groupInfo.data = groupInfoData;\r\n if (groupInfo.offset !== groupInfoData.offset) {\r\n that._updateGroupInfoOffsets(groupsInfo)\r\n }\r\n }\r\n groupsInfo = groupInfo.children\r\n }\r\n },\r\n allowCollapseAll: function() {\r\n return true\r\n },\r\n refresh: function(options) {\r\n var that = this;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var groups = _utils.default.normalizeSortingInfo(storeLoadOptions.group || []);\r\n var oldGroups = \"_group\" in that ? _utils.default.normalizeSortingInfo(that._group || []) : groups;\r\n var groupsCount = Math.min(oldGroups.length, groups.length);\r\n that._group = storeLoadOptions.group;\r\n for (var groupIndex = 0; groupIndex < groupsCount; groupIndex++) {\r\n if (oldGroups[groupIndex].selector !== groups[groupIndex].selector) {\r\n groupsCount = groupIndex;\r\n break\r\n }\r\n }\r\n if (!groupsCount) {\r\n that.reset()\r\n } else {\r\n cleanGroupsInfo(that._groupsInfo, 0, groupsCount)\r\n }\r\n },\r\n handleDataLoading: function() {},\r\n handleDataLoaded: function(options, callBase) {\r\n callBase(options)\r\n },\r\n handleDataLoadedCore: function(options, callBase) {\r\n callBase(options)\r\n }\r\n }\r\n}());\r\nexports.GroupingHelper = GroupingHelper;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _element = require(\"../../core/element\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _context_menu = _interopRequireDefault(require(\"../context_menu\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar CONTEXT_MENU = \"dx-context-menu\";\r\nvar viewName = {\r\n columnHeadersView: \"header\",\r\n rowsView: \"content\",\r\n footerView: \"footer\",\r\n headerPanel: \"headerPanel\"\r\n};\r\nvar VIEW_NAMES = [\"columnHeadersView\", \"rowsView\", \"footerView\", \"headerPanel\"];\r\nvar ContextMenuController = _uiGrid_core.default.ViewController.inherit({\r\n init: function() {\r\n this.createAction(\"onContextMenuPreparing\")\r\n },\r\n getContextMenuItems: function(dxEvent) {\r\n if (!dxEvent) {\r\n return false\r\n }\r\n var that = this;\r\n var $targetElement = (0, _renderer.default)(dxEvent.target);\r\n var $element;\r\n var $targetRowElement;\r\n var $targetCellElement;\r\n var menuItems;\r\n (0, _iterator.each)(VIEW_NAMES, function() {\r\n var view = that.getView(this);\r\n $element = view && view.element();\r\n if ($element && ($element.is($targetElement) || $element.find($targetElement).length)) {\r\n $targetCellElement = $targetElement.closest(\".dx-row > td, .dx-row > tr\");\r\n $targetRowElement = $targetCellElement.parent();\r\n var rowIndex = view.getRowIndex($targetRowElement);\r\n var columnIndex = $targetCellElement[0] && $targetCellElement[0].cellIndex;\r\n var rowOptions = $targetRowElement.data(\"options\");\r\n var options = {\r\n event: dxEvent,\r\n targetElement: (0, _element.getPublicElement)($targetElement),\r\n target: viewName[this],\r\n rowIndex: rowIndex,\r\n row: view._getRows()[rowIndex],\r\n columnIndex: columnIndex,\r\n column: rowOptions && rowOptions.cells[columnIndex].column\r\n };\r\n options.items = view.getContextMenuItems && view.getContextMenuItems(options);\r\n that.executeAction(\"onContextMenuPreparing\", options);\r\n that._contextMenuPrepared(options);\r\n menuItems = options.items;\r\n if (menuItems) {\r\n return false\r\n }\r\n }\r\n });\r\n return menuItems\r\n },\r\n _contextMenuPrepared: _common.noop\r\n});\r\nvar ContextMenuView = _uiGrid_core.default.View.inherit({\r\n _renderCore: function() {\r\n var that = this;\r\n var $element = that.element().addClass(CONTEXT_MENU);\r\n this.setAria(\"role\", \"presentation\", $element);\r\n this._createComponent($element, _context_menu.default, {\r\n onPositioning: function(actionArgs) {\r\n var event = actionArgs.event;\r\n var contextMenuInstance = actionArgs.component;\r\n var items = that.getController(\"contextMenu\").getContextMenuItems(event);\r\n if (items) {\r\n contextMenuInstance.option(\"items\", items);\r\n event.stopPropagation()\r\n } else {\r\n actionArgs.cancel = true\r\n }\r\n },\r\n onItemClick: function(params) {\r\n params.itemData.onItemClick && params.itemData.onItemClick(params)\r\n },\r\n cssClass: that.getWidgetContainerClass(),\r\n target: that.component.$element()\r\n })\r\n }\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n onContextMenuPreparing: null\r\n }\r\n },\r\n controllers: {\r\n contextMenu: ContextMenuController\r\n },\r\n views: {\r\n contextMenuView: ContextMenuView\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.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 _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.base\"));\r\nrequire(\"./ui.data_grid.state_storing\");\r\nrequire(\"./ui.data_grid.selection\");\r\nrequire(\"./ui.data_grid.column_chooser\");\r\nrequire(\"./ui.data_grid.grouping\");\r\nrequire(\"./ui.data_grid.master_detail\");\r\nrequire(\"./ui.data_grid.editing\");\r\nrequire(\"./ui.data_grid.validating\");\r\nrequire(\"./ui.data_grid.virtual_scrolling\");\r\nrequire(\"./ui.data_grid.filter_row\");\r\nrequire(\"./ui.data_grid.header_filter\");\r\nrequire(\"./ui.data_grid.filter_sync\");\r\nrequire(\"./ui.data_grid.filter_builder\");\r\nrequire(\"./ui.data_grid.filter_panel\");\r\nrequire(\"./ui.data_grid.search\");\r\nrequire(\"./ui.data_grid.pager\");\r\nrequire(\"./ui.data_grid.columns_resizing_reordering\");\r\nrequire(\"./ui.data_grid.keyboard_navigation\");\r\nrequire(\"./ui.data_grid.summary\");\r\nrequire(\"./ui.data_grid.column_fixing\");\r\nrequire(\"./ui.data_grid.adaptivity\");\r\nrequire(\"./ui.data_grid.virtual_columns\");\r\nrequire(\"./ui.data_grid.export\");\r\nrequire(\"./ui.data_grid.focus\");\r\nrequire(\"./ui.data_grid.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 = _uiData_grid.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.file.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\nvar _excel2 = _interopRequireDefault(require(\"./excel.cell_format_helper\"));\r\nvar _excel3 = _interopRequireDefault(require(\"./excel.fill_helper\"));\r\nvar _excel4 = _interopRequireDefault(require(\"./excel.font_helper\"));\r\nvar _excel5 = _interopRequireDefault(require(\"./excel.number_format_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ExcelFile = function() {\r\n function ExcelFile() {\r\n this._cellFormatTags = [];\r\n this._fillTags = [];\r\n this._fontTags = [];\r\n this._numberFormatTags = [];\r\n this._fillTags.push(_excel3.default.tryCreateTag({\r\n patternFill: {\r\n patternType: \"none\"\r\n }\r\n }))\r\n }\r\n var _proto = ExcelFile.prototype;\r\n _proto.registerCellFormat = function(cellFormat) {\r\n var result;\r\n var cellFormatTag = _excel2.default.tryCreateTag(cellFormat, {\r\n registerFill: this.registerFill.bind(this),\r\n registerFont: this.registerFont.bind(this),\r\n registerNumberFormat: this.registerNumberFormat.bind(this)\r\n });\r\n if ((0, _type.isDefined)(cellFormatTag)) {\r\n for (var i = 0; i < this._cellFormatTags.length; i++) {\r\n if (_excel2.default.areEqual(this._cellFormatTags[i], cellFormatTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n result = this._cellFormatTags.push(cellFormatTag) - 1\r\n }\r\n }\r\n return result\r\n };\r\n ExcelFile.copyCellFormat = function(source) {\r\n return _excel2.default.copy(source)\r\n };\r\n _proto.generateCellFormatsXml = function() {\r\n var cellFormatTagsAsXmlStringsArray = this._cellFormatTags.map(function(tag) {\r\n return _excel2.default.toXml(tag)\r\n });\r\n return _excel.default.toXml(\"cellXfs\", {\r\n count: cellFormatTagsAsXmlStringsArray.length\r\n }, cellFormatTagsAsXmlStringsArray.join(\"\"))\r\n };\r\n _proto.registerFill = function(fill) {\r\n var result;\r\n var fillTag = _excel3.default.tryCreateTag(fill);\r\n if ((0, _type.isDefined)(fillTag)) {\r\n for (var i = 0; i < this._fillTags.length; i++) {\r\n if (_excel3.default.areEqual(this._fillTags[i], fillTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n if (this._fillTags.length < 2) {\r\n this._fillTags.push(_excel3.default.tryCreateTag({\r\n patternFill: {\r\n patternType: \"Gray125\"\r\n }\r\n }))\r\n }\r\n result = this._fillTags.push(fillTag) - 1\r\n }\r\n }\r\n return result\r\n };\r\n _proto.generateFillsXml = function() {\r\n var tagsAsXmlStringsArray = this._fillTags.map(function(tag) {\r\n return _excel3.default.toXml(tag)\r\n });\r\n return _excel.default.toXml(\"fills\", {\r\n count: tagsAsXmlStringsArray.length\r\n }, tagsAsXmlStringsArray.join(\"\"))\r\n };\r\n _proto.registerFont = function(font) {\r\n var result;\r\n var fontTag = _excel4.default.tryCreateTag(font);\r\n if ((0, _type.isDefined)(fontTag)) {\r\n for (var i = 0; i < this._fontTags.length; i++) {\r\n if (_excel4.default.areEqual(this._fontTags[i], fontTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n result = this._fontTags.push(fontTag) - 1\r\n }\r\n }\r\n return result\r\n };\r\n _proto.generateFontsXml = function() {\r\n var xmlStringsArray = this._fontTags.map(function(tag) {\r\n return _excel4.default.toXml(tag)\r\n });\r\n return _excel.default.toXml(\"fonts\", {\r\n count: xmlStringsArray.length\r\n }, xmlStringsArray.join(\"\"))\r\n };\r\n _proto._convertNumberFormatIndexToId = function(index) {\r\n var CUSTOM_FORMAT_ID_START_VALUE = 165;\r\n return CUSTOM_FORMAT_ID_START_VALUE + index\r\n };\r\n _proto.registerNumberFormat = function(numberFormat) {\r\n var result;\r\n var tag = _excel5.default.tryCreateTag(numberFormat);\r\n if ((0, _type.isDefined)(tag)) {\r\n for (var i = 0; i < this._numberFormatTags.length; i++) {\r\n if (_excel5.default.areEqual(this._numberFormatTags[i], tag)) {\r\n result = this._numberFormatTags[i][_excel5.default.ID_PROPERTY_NAME];\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n tag[_excel5.default.ID_PROPERTY_NAME] = this._convertNumberFormatIndexToId(this._numberFormatTags.length);\r\n result = tag[_excel5.default.ID_PROPERTY_NAME];\r\n this._numberFormatTags.push(tag)\r\n }\r\n }\r\n return result\r\n };\r\n _proto.generateNumberFormatsXml = function() {\r\n if (this._numberFormatTags.length > 0) {\r\n var xmlStringsArray = this._numberFormatTags.map(function(tag) {\r\n return _excel5.default.toXml(tag)\r\n });\r\n return _excel.default.toXml(\"numFmts\", {\r\n count: xmlStringsArray.length\r\n }, xmlStringsArray.join(\"\"))\r\n } else {\r\n return \"\"\r\n }\r\n };\r\n return ExcelFile\r\n}();\r\nexports.default = ExcelFile;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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\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 _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _position = _interopRequireDefault(require(\"../../animation/position\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position2 = require(\"../../core/utils/position\");\r\nvar _ui = _interopRequireDefault(require(\"../shared/ui.editor_factory_mixin\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUS_OVERLAY_CLASS = \"focus-overlay\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar FOCUSED_ELEMENT_CLASS = \"dx-focused\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar MODULE_NAMESPACE = \"dxDataGridEditorFactory\";\r\nvar UPDATE_FOCUS_EVENTS = (0, _index.addNamespace)([_pointer.default.down, \"focusin\", _click.name].join(\" \"), MODULE_NAMESPACE);\r\nvar DX_HIDDEN = \"dx-hidden\";\r\nvar EditorFactory = _uiGrid_core.default.ViewController.inherit({\r\n _getFocusedElement: function($dataGridElement) {\r\n var rowSelector = this.option(\"focusedRowEnabled\") ? \"tr[tabindex]:focus\" : \"tr[tabindex]:not(.dx-data-row):focus\";\r\n var focusedElementSelector = \"td[tabindex]:focus, \".concat(rowSelector, \", input:focus, textarea:focus, .dx-lookup-field:focus, .dx-checkbox:focus, .dx-switch:focus, .dx-dropdownbutton .dx-buttongroup:focus\");\r\n return $dataGridElement.find(focusedElementSelector)\r\n },\r\n _getFocusCellSelector: function() {\r\n return \".dx-row > td\"\r\n },\r\n _updateFocusCore: function() {\r\n var $focus = this._$focusedElement;\r\n var $dataGridElement = this.component && this.component.$element();\r\n var $focusCell;\r\n var hideBorders;\r\n if ($dataGridElement) {\r\n $focus = this._getFocusedElement($dataGridElement);\r\n if ($focus.length) {\r\n if (!$focus.hasClass(CELL_FOCUS_DISABLED_CLASS) && !$focus.hasClass(ROW_CLASS)) {\r\n $focusCell = $focus.closest(this._getFocusCellSelector() + \", .\" + CELL_FOCUS_DISABLED_CLASS);\r\n hideBorders = $focusCell.get(0) !== $focus.get(0) && $focusCell.hasClass(EDITOR_INLINE_BLOCK);\r\n $focus = $focusCell\r\n }\r\n if ($focus.length && !$focus.hasClass(CELL_FOCUS_DISABLED_CLASS)) {\r\n this.focus($focus, hideBorders);\r\n return\r\n }\r\n }\r\n }\r\n this.loseFocus()\r\n },\r\n _updateFocus: function(e) {\r\n var that = this;\r\n var isFocusOverlay = e && e.event && (0, _renderer.default)(e.event.target).hasClass(that.addWidgetPrefix(FOCUS_OVERLAY_CLASS));\r\n that._isFocusOverlay = that._isFocusOverlay || isFocusOverlay;\r\n clearTimeout(that._updateFocusTimeoutID);\r\n that._updateFocusTimeoutID = setTimeout(function() {\r\n delete that._updateFocusTimeoutID;\r\n if (!that._isFocusOverlay) {\r\n that._updateFocusCore()\r\n }\r\n that._isFocusOverlay = false\r\n })\r\n },\r\n _updateFocusOverlaySize: function($element, position) {\r\n $element.hide();\r\n var location = _position.default.calculate($element, (0, _extend.extend)({\r\n collision: \"fit\"\r\n }, position));\r\n if (location.h.oversize > 0) {\r\n $element.outerWidth($element.outerWidth() - location.h.oversize)\r\n }\r\n if (location.v.oversize > 0) {\r\n $element.outerHeight($element.outerHeight() - location.v.oversize)\r\n }\r\n $element.show()\r\n },\r\n callbackNames: function() {\r\n return [\"focused\"]\r\n },\r\n focus: function($element, hideBorder) {\r\n var that = this;\r\n if (void 0 === $element) {\r\n return that._$focusedElement\r\n } else {\r\n if ($element) {\r\n if (!$element.is(that._$focusedElement)) {\r\n that._$focusedElement && that._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS)\r\n }\r\n that._$focusedElement = $element;\r\n clearTimeout(that._focusTimeoutID);\r\n that._focusTimeoutID = setTimeout(function() {\r\n delete that._focusTimeoutID;\r\n that.renderFocusOverlay($element, hideBorder);\r\n $element.addClass(FOCUSED_ELEMENT_CLASS);\r\n that.focused.fire($element)\r\n })\r\n }\r\n }\r\n },\r\n refocus: function() {\r\n var $focus = this.focus();\r\n this.focus($focus)\r\n },\r\n renderFocusOverlay: function($element, hideBorder) {\r\n var that = this;\r\n if (!_uiGrid_core2.default.isElementInCurrentGrid(this, $element)) {\r\n return\r\n }\r\n if (!that._$focusOverlay) {\r\n that._$focusOverlay = (0, _renderer.default)(\"
\").addClass(that.addWidgetPrefix(FOCUS_OVERLAY_CLASS))\r\n }\r\n if (hideBorder) {\r\n that._$focusOverlay.addClass(DX_HIDDEN)\r\n } else {\r\n if ($element.length) {\r\n var align = _browser.default.msie ? \"left bottom\" : _browser.default.mozilla ? \"right bottom\" : \"left top\";\r\n var $content = $element.closest(\".\" + that.addWidgetPrefix(CONTENT_CLASS));\r\n var elemCoord = (0, _position2.getBoundingRect)($element.get(0));\r\n that._$focusOverlay.removeClass(DX_HIDDEN).appendTo($content).outerWidth(elemCoord.right - elemCoord.left + 1).outerHeight(elemCoord.bottom - elemCoord.top + 1);\r\n var focusOverlayPosition = {\r\n precise: true,\r\n my: align,\r\n at: align,\r\n of: $element,\r\n boundary: $content.length && $content\r\n };\r\n that._updateFocusOverlaySize(that._$focusOverlay, focusOverlayPosition);\r\n _position.default.setup(that._$focusOverlay, focusOverlayPosition);\r\n that._$focusOverlay.css(\"visibility\", \"visible\")\r\n }\r\n }\r\n },\r\n resize: function() {\r\n var $focusedElement = this._$focusedElement;\r\n if ($focusedElement) {\r\n this.focus($focusedElement)\r\n }\r\n },\r\n loseFocus: function() {\r\n this._$focusedElement && this._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS);\r\n this._$focusedElement = null;\r\n this._$focusOverlay && this._$focusOverlay.addClass(DX_HIDDEN)\r\n },\r\n init: function() {\r\n this.createAction(\"onEditorPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this.createAction(\"onEditorPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this._updateFocusHandler = this._updateFocusHandler || this.createAction(this._updateFocus.bind(this));\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), UPDATE_FOCUS_EVENTS, this._updateFocusHandler);\r\n this._attachContainerEventHandlers()\r\n },\r\n _attachContainerEventHandlers: function() {\r\n var that = this;\r\n var $container = that.component && that.component.$element();\r\n if ($container) {\r\n _events_engine.default.on($container, (0, _index.addNamespace)(\"keydown\", MODULE_NAMESPACE), function(e) {\r\n if (\"tab\" === (0, _index.normalizeKeyName)(e)) {\r\n that._updateFocusHandler(e)\r\n }\r\n })\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._focusTimeoutID);\r\n clearTimeout(this._updateFocusTimeoutID);\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), UPDATE_FOCUS_EVENTS, this._updateFocusHandler)\r\n }\r\n}).include(_ui.default);\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {}\r\n },\r\n controllers: {\r\n editorFactory: EditorFactory\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (core/utils/svg.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.getSvgMarkup = getSvgMarkup;\r\nexports.getSvgElement = getSvgElement;\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _window = require(\"./window\");\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\n\r\nfunction getMarkup(element, backgroundColor) {\r\n var temp = _dom_adapter.default.createElement(\"div\");\r\n var clone = element.cloneNode(true);\r\n if (backgroundColor) {\r\n (0, _renderer.default)(clone).css(\"backgroundColor\", backgroundColor)\r\n }\r\n temp.appendChild(clone);\r\n return temp.innerHTML\r\n}\r\n\r\nfunction fixNamespaces(markup) {\r\n var first = true;\r\n if (markup.indexOf(\"xmlns:xlink\") === -1) {\r\n markup = markup.replace(\" 0) {\r\n this._updateLockCount--;\r\n if (!this._updateLockCount) {\r\n this._endUpdateCore()\r\n }\r\n }\r\n },\r\n option: function(name) {\r\n var component = this.component;\r\n var optionCache = component._optionCache;\r\n if (1 === arguments.length && optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = component.option(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return component.option.apply(component, arguments)\r\n },\r\n _silentOption: function(name, value) {\r\n var component = this.component;\r\n var optionCache = component._optionCache;\r\n if (optionCache) {\r\n optionCache[name] = value\r\n }\r\n return component._setOptionWithoutOptionChange(name, value)\r\n },\r\n localize: function(name) {\r\n var optionCache = this.component._optionCache;\r\n if (optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = _message.default.format(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return _message.default.format(name)\r\n },\r\n on: function() {\r\n return this.component.on.apply(this.component, arguments)\r\n },\r\n off: function() {\r\n return this.component.off.apply(this.component, arguments)\r\n },\r\n optionChanged: function(args) {\r\n if (args.name in this._actions) {\r\n this.createAction(args.name, this._actionConfigs[args.name]);\r\n args.handled = true\r\n }\r\n },\r\n getAction: function(actionName) {\r\n return this._actions[actionName]\r\n },\r\n setAria: function(name, value, $target) {\r\n var target = $target.get(0);\r\n var prefix = \"role\" !== name && \"id\" !== name ? \"aria-\" : \"\";\r\n if (target.setAttribute) {\r\n target.setAttribute(prefix + name, value)\r\n } else {\r\n $target.attr(prefix + name, value)\r\n }\r\n },\r\n _createComponent: function() {\r\n return this.component._createComponent.apply(this.component, arguments)\r\n },\r\n getController: function(name) {\r\n return this.component._controllers[name]\r\n },\r\n createAction: function(actionName, config) {\r\n if ((0, _type.isFunction)(actionName)) {\r\n var action = this.component._createAction(actionName.bind(this), config);\r\n return function(e) {\r\n action({\r\n event: e\r\n })\r\n }\r\n } else {\r\n this._actions[actionName] = this.component._createActionByOption(actionName, config);\r\n this._actionConfigs[actionName] = config\r\n }\r\n },\r\n executeAction: function(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n dispose: function() {\r\n var that = this;\r\n (0, _iterator.each)(that.callbackNames() || [], function() {\r\n that[this].empty()\r\n })\r\n },\r\n addWidgetPrefix: function(className) {\r\n var componentName = this.component.NAME;\r\n return \"dx-\" + componentName.slice(2).toLowerCase() + (className ? \"-\" + className : \"\")\r\n },\r\n getWidgetContainerClass: function() {\r\n var containerName = this.component.NAME === WIDGET_WITH_LEGACY_CONTAINER_NAME ? null : \"container\";\r\n return this.addWidgetPrefix(containerName)\r\n }\r\n});\r\nvar Controller = ModuleItem;\r\nvar ViewController = Controller.inherit({\r\n getView: function(name) {\r\n return this.component._views[name]\r\n },\r\n getViews: function() {\r\n return this.component._views\r\n }\r\n});\r\nvar View = ModuleItem.inherit({\r\n _isReady: function() {\r\n return this.component.isReady()\r\n },\r\n _endUpdateCore: function() {\r\n this.callBase();\r\n if (!this._isReady() && this._requireReady) {\r\n this._requireRender = false;\r\n this.component._requireResize = false\r\n }\r\n if (this._requireRender) {\r\n this._requireRender = false;\r\n this.render(this._$parent)\r\n }\r\n },\r\n _invalidate: function(requireResize, requireReady) {\r\n this._requireRender = true;\r\n this.component._requireResize = (0, _window.hasWindow)() && (this.component._requireResize || requireResize);\r\n this._requireReady = this._requireReady || requireReady\r\n },\r\n _renderCore: function() {},\r\n _resizeCore: function() {},\r\n _afterRender: function() {},\r\n _parentElement: function() {\r\n return this._$parent\r\n },\r\n ctor: function(component) {\r\n this.callBase(component);\r\n this.renderCompleted = (0, _callbacks.default)();\r\n this.resizeCompleted = (0, _callbacks.default)()\r\n },\r\n element: function() {\r\n return this._$element\r\n },\r\n getElementHeight: function() {\r\n var $element = this.element();\r\n if (!$element) {\r\n return 0\r\n }\r\n var marginTop = parseFloat($element.css(\"marginTop\")) || 0;\r\n var marginBottom = parseFloat($element.css(\"marginBottom\")) || 0;\r\n var offsetHeight = $element.get(0).offsetHeight;\r\n return offsetHeight + marginTop + marginBottom\r\n },\r\n isVisible: function() {\r\n return true\r\n },\r\n getTemplate: function(name) {\r\n return this.component._getTemplate(name)\r\n },\r\n render: function($parent, options) {\r\n var $element = this._$element;\r\n var isVisible = this.isVisible();\r\n if (!$element && !$parent) {\r\n return\r\n }\r\n this._requireReady = false;\r\n if (!$element) {\r\n $element = this._$element = (0, _renderer.default)(\"
\").appendTo($parent);\r\n this._$parent = $parent\r\n }\r\n $element.toggleClass(\"dx-hidden\", !isVisible);\r\n if (isVisible) {\r\n this.component._optionCache = {};\r\n this._renderCore(options);\r\n this.component._optionCache = void 0;\r\n this._afterRender($parent);\r\n this.renderCompleted.fire(options)\r\n }\r\n },\r\n resize: function() {\r\n this.isResizing = true;\r\n this._resizeCore();\r\n this.resizeCompleted.fire();\r\n this.isResizing = false\r\n },\r\n focus: function() {\r\n _events_engine.default.trigger(this.element(), \"focus\")\r\n }\r\n});\r\nvar MODULES_ORDER_MAX_INDEX = 1e6;\r\nvar processModules = function(that, componentClass) {\r\n var modules = componentClass.modules;\r\n var modulesOrder = componentClass.modulesOrder;\r\n var controllerTypes = componentClass.controllerTypes || {};\r\n var viewTypes = componentClass.viewTypes || {};\r\n if (!componentClass.controllerTypes) {\r\n if (modulesOrder) {\r\n modules.sort(function(module1, module2) {\r\n var orderIndex1 = (0, _array.inArray)(module1.name, modulesOrder);\r\n var orderIndex2 = (0, _array.inArray)(module2.name, modulesOrder);\r\n if (orderIndex1 < 0) {\r\n orderIndex1 = MODULES_ORDER_MAX_INDEX\r\n }\r\n if (orderIndex2 < 0) {\r\n orderIndex2 = MODULES_ORDER_MAX_INDEX\r\n }\r\n return orderIndex1 - orderIndex2\r\n })\r\n }(0, _iterator.each)(modules, function() {\r\n var controllers = this.controllers;\r\n var moduleName = this.name;\r\n var views = this.views;\r\n controllers && (0, _iterator.each)(controllers, function(name, type) {\r\n if (controllerTypes[name]) {\r\n throw _ui.default.Error(\"E1001\", moduleName, name)\r\n } else {\r\n if (!(type && type.subclassOf && type.subclassOf(Controller))) {\r\n type.subclassOf(Controller);\r\n throw _ui.default.Error(\"E1002\", moduleName, name)\r\n }\r\n }\r\n controllerTypes[name] = type\r\n });\r\n views && (0, _iterator.each)(views, function(name, type) {\r\n if (viewTypes[name]) {\r\n throw _ui.default.Error(\"E1003\", moduleName, name)\r\n } else {\r\n if (!(type && type.subclassOf && type.subclassOf(View))) {\r\n throw _ui.default.Error(\"E1004\", moduleName, name)\r\n }\r\n }\r\n viewTypes[name] = type\r\n })\r\n });\r\n (0, _iterator.each)(modules, function() {\r\n var extenders = this.extenders;\r\n if (extenders) {\r\n extenders.controllers && (0, _iterator.each)(extenders.controllers, function(name, extender) {\r\n if (controllerTypes[name]) {\r\n controllerTypes[name] = controllerTypes[name].inherit(extender)\r\n }\r\n });\r\n extenders.views && (0, _iterator.each)(extenders.views, function(name, extender) {\r\n if (viewTypes[name]) {\r\n viewTypes[name] = viewTypes[name].inherit(extender)\r\n }\r\n })\r\n }\r\n });\r\n componentClass.controllerTypes = controllerTypes;\r\n componentClass.viewTypes = viewTypes\r\n }\r\n var registerPublicMethods = function(that, name, moduleItem) {\r\n var publicMethods = moduleItem.publicMethods();\r\n if (publicMethods) {\r\n (0, _iterator.each)(publicMethods, function(index, methodName) {\r\n if (moduleItem[methodName]) {\r\n if (!that[methodName]) {\r\n that[methodName] = function() {\r\n return moduleItem[methodName].apply(moduleItem, arguments)\r\n }\r\n } else {\r\n throw _ui.default.Error(\"E1005\", methodName)\r\n }\r\n } else {\r\n throw _ui.default.Error(\"E1006\", name, methodName)\r\n }\r\n })\r\n }\r\n };\r\n var createModuleItems = function(moduleTypes) {\r\n var moduleItems = {};\r\n (0, _iterator.each)(moduleTypes, function(name, moduleType) {\r\n var moduleItem = new moduleType(that);\r\n moduleItem.name = name;\r\n registerPublicMethods(that, name, moduleItem);\r\n moduleItems[name] = moduleItem\r\n });\r\n return moduleItems\r\n };\r\n that._controllers = createModuleItems(controllerTypes);\r\n that._views = createModuleItems(viewTypes)\r\n};\r\nvar callModuleItemsMethod = function(that, methodName, args) {\r\n args = args || [];\r\n if (that._controllers) {\r\n (0, _iterator.each)(that._controllers, function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n })\r\n }\r\n if (that._views) {\r\n (0, _iterator.each)(that._views, function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n })\r\n }\r\n};\r\nvar _default = {\r\n modules: [],\r\n View: View,\r\n ViewController: ViewController,\r\n Controller: Controller,\r\n registerModule: function(name, module) {\r\n var modules = this.modules;\r\n for (var i = 0; i < modules.length; i++) {\r\n if (modules[i].name === name) {\r\n return\r\n }\r\n }\r\n module.name = name;\r\n modules.push(module);\r\n delete this.controllerTypes;\r\n delete this.viewTypes\r\n },\r\n registerModulesOrder: function(moduleNames) {\r\n this.modulesOrder = moduleNames\r\n },\r\n unregisterModule: function(name) {\r\n this.modules = (0, _common.grep)(this.modules, function(module) {\r\n return module.name !== name\r\n });\r\n delete this.controllerTypes;\r\n delete this.viewTypes\r\n },\r\n processModules: processModules,\r\n callModuleItemsMethod: callModuleItemsMethod\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid.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(\"./data_grid/ui.data_grid\"));\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/grid_core/ui.grid_core.columns_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\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nexports.ColumnsView = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _element_data = require(\"../../core/element_data\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _double_click = require(\"../../events/double_click\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _style = require(\"../../core/utils/style\");\r\nvar _element = require(\"../../core/element\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar iteratorUtils = _interopRequireWildcard(require(\"../../core/utils/iterator\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _uiGrid_core3 = _interopRequireDefault(require(\"./ui.grid_core.column_state_mixin\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SCROLL_CONTAINER_CLASS = \"scroll-container\";\r\nvar GROUP_SPACE_CLASS = \"group-space\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar TABLE_CLASS = \"table\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar CELL_UPDATED_ANIMATION_CLASS = \"cell-updated-animation\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"0.0001px\";\r\nvar CELL_HINT_VISIBLE = \"dxCellHintVisible\";\r\nvar FORM_FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar appendElementTemplate = {\r\n render: function(options) {\r\n options.container.append(options.content)\r\n }\r\n};\r\nvar subscribeToRowEvents = function(that, $table) {\r\n var touchTarget;\r\n var touchCurrentTarget;\r\n var timeoutId;\r\n\r\n function clearTouchTargets(timeout) {\r\n return setTimeout(function() {\r\n touchTarget = touchCurrentTarget = null\r\n }, timeout)\r\n }\r\n _events_engine.default.on($table, \"touchstart touchend\", \".dx-row\", function(e) {\r\n clearTimeout(timeoutId);\r\n if (\"touchstart\" === e.type) {\r\n touchTarget = e.target;\r\n touchCurrentTarget = e.currentTarget;\r\n timeoutId = clearTouchTargets(1e3)\r\n } else {\r\n timeoutId = clearTouchTargets()\r\n }\r\n });\r\n _events_engine.default.on($table, [_click.name, _double_click.name, _pointer.default.down].join(\" \"), \".dx-row\", {\r\n useNative: that._isNativeClick()\r\n }, that.createAction(function(e) {\r\n var event = e.event;\r\n if (touchTarget) {\r\n event.target = touchTarget;\r\n event.currentTarget = touchCurrentTarget\r\n }\r\n if (!(0, _renderer.default)(event.target).closest(\"a\").length) {\r\n e.rowIndex = that.getRowIndex(event.currentTarget);\r\n if (e.rowIndex >= 0) {\r\n e.rowElement = (0, _element.getPublicElement)((0, _renderer.default)(event.currentTarget));\r\n e.columns = that.getColumns();\r\n if (event.type === _pointer.default.down) {\r\n that._rowPointerDown(e)\r\n } else {\r\n if (event.type === _click.name) {\r\n that._rowClick(e)\r\n } else {\r\n that._rowDblClick(e)\r\n }\r\n }\r\n }\r\n }\r\n }))\r\n};\r\nvar getWidthStyle = function(width) {\r\n if (\"auto\" === width) {\r\n return \"\"\r\n }\r\n return (0, _type.isNumeric)(width) ? width + \"px\" : width\r\n};\r\nvar setCellWidth = function(cell, column, width) {\r\n cell.style.width = cell.style.maxWidth = \"auto\" === column.width ? \"\" : width\r\n};\r\nvar copyAttributes = function(element, newElement) {\r\n if (!element || !newElement) {\r\n return\r\n }\r\n var oldAttributes = element.attributes;\r\n var newAttributes = newElement.attributes;\r\n var i;\r\n for (i = 0; i < oldAttributes.length; i++) {\r\n var name = oldAttributes[i].nodeName;\r\n if (!newElement.hasAttribute(name)) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n for (i = 0; i < newAttributes.length; i++) {\r\n element.setAttribute(newAttributes[i].nodeName, newAttributes[i].nodeValue)\r\n }\r\n};\r\nvar ColumnsView = _uiGrid_core.default.View.inherit(_uiGrid_core3.default).inherit({\r\n _createScrollableOptions: function() {\r\n var that = this;\r\n var scrollingOptions = that.option(\"scrolling\");\r\n var useNativeScrolling = that.option(\"scrolling.useNative\");\r\n var options = (0, _extend.extend)({\r\n pushBackValue: 0\r\n }, scrollingOptions, {\r\n direction: \"both\",\r\n bounceEnabled: false,\r\n useKeyboard: false\r\n });\r\n if (void 0 === useNativeScrolling) {\r\n useNativeScrolling = true\r\n }\r\n if (\"auto\" === useNativeScrolling) {\r\n delete options.useNative;\r\n delete options.useSimulatedScrollbar\r\n } else {\r\n options.useNative = !!useNativeScrolling;\r\n options.useSimulatedScrollbar = !useNativeScrolling\r\n }\r\n return options\r\n },\r\n _updateCell: function($cell, parameters) {\r\n if (parameters.rowType) {\r\n this._cellPrepared($cell, parameters)\r\n }\r\n },\r\n _createCell: function(options) {\r\n var column = options.column;\r\n var alignment = column.alignment || (0, _position.getDefaultAlignment)(this.option(\"rtlEnabled\"));\r\n var cell = _dom_adapter.default.createElement(\"td\");\r\n cell.style.textAlign = alignment;\r\n var $cell = (0, _renderer.default)(cell);\r\n if (\"data\" === options.rowType && column.headerId && !column.type) {\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n this.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n }\r\n if (column.cssClass) {\r\n $cell.addClass(column.cssClass)\r\n }\r\n if (\"expand\" === column.command) {\r\n $cell.addClass(column.cssClass);\r\n $cell.addClass(this.addWidgetPrefix(GROUP_SPACE_CLASS))\r\n }\r\n if (column.colspan > 1) {\r\n $cell.attr(\"colSpan\", column.colspan)\r\n } else {\r\n if (!column.isBand && \"auto\" !== column.visibleWidth && !this.option(\"legacyRendering\") && this.option(\"columnAutoWidth\")) {\r\n if (column.width || column.minWidth) {\r\n cell.style.minWidth = getWidthStyle(column.minWidth || column.width)\r\n }\r\n if (column.width) {\r\n setCellWidth(cell, column, getWidthStyle(column.width))\r\n }\r\n }\r\n }\r\n return $cell\r\n },\r\n _createRow: function(rowObject) {\r\n var $element = (0, _renderer.default)(\"\").addClass(ROW_CLASS);\r\n this.setAria(\"role\", \"row\", $element);\r\n return $element\r\n },\r\n _isAltRow: function(row) {\r\n return row && row.dataIndex % 2 === 1\r\n },\r\n _createTable: function(columns, isAppend) {\r\n var that = this;\r\n var $table = (0, _renderer.default)(\"\").addClass(that.addWidgetPrefix(TABLE_CLASS)).addClass(that.addWidgetPrefix(TABLE_FIXED_CLASS));\r\n if (columns && !isAppend) {\r\n $table.append(that._createColGroup(columns));\r\n if (_browser.default.safari) {\r\n $table.append((0, _renderer.default)(\"\").append(\"\"))\r\n }\r\n that.setAria(\"role\", \"presentation\", $table)\r\n } else {\r\n that.setAria(\"hidden\", true, $table)\r\n }\r\n this.setAria(\"role\", \"presentation\", (0, _renderer.default)(\"\").appendTo($table));\r\n if (isAppend) {\r\n return $table\r\n }\r\n if (_browser.default.mozilla) {\r\n _events_engine.default.on($table, \"mousedown\", \"td\", function(e) {\r\n if (e.ctrlKey) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n if (that.option(\"cellHintEnabled\")) {\r\n _events_engine.default.on($table, \"mousemove\", \".dx-row > td\", this.createAction(function(args) {\r\n var e = args.event;\r\n var $element = (0, _renderer.default)(e.target);\r\n var $cell = (0, _renderer.default)(e.currentTarget);\r\n var $row = $cell.parent();\r\n var isDataRow = $row.hasClass(\"dx-data-row\");\r\n var isHeaderRow = $row.hasClass(\"dx-header-row\");\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isMasterDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isFilterRow = $row.hasClass(that.addWidgetPrefix(FILTER_ROW_CLASS));\r\n var visibleColumns = that._columnsController.getVisibleColumns();\r\n var rowOptions = $row.data(\"options\");\r\n var columnIndex = $cell.index();\r\n var cellOptions = rowOptions && rowOptions.cells && rowOptions.cells[columnIndex];\r\n var column = cellOptions ? cellOptions.column : visibleColumns[columnIndex];\r\n var msieCorrection = _browser.default.msie ? 1 : 0;\r\n if (!isMasterDetailRow && !isFilterRow && (!isDataRow || isDataRow && column && !column.cellTemplate) && (!isHeaderRow || isHeaderRow && column && !column.headerCellTemplate) && (!isGroupRow || isGroupRow && column && (void 0 === column.groupIndex || !column.groupCellTemplate))) {\r\n if ($element.data(CELL_HINT_VISIBLE)) {\r\n $element.removeAttr(\"title\");\r\n $element.data(CELL_HINT_VISIBLE, false)\r\n }\r\n var difference = $element[0].scrollWidth - $element[0].clientWidth - msieCorrection;\r\n if (difference > 0 && !(0, _type.isDefined)($element.attr(\"title\"))) {\r\n $element.attr(\"title\", $element.text());\r\n $element.data(CELL_HINT_VISIBLE, true)\r\n }\r\n }\r\n }))\r\n }\r\n var getOptions = function(event) {\r\n var $cell = (0, _renderer.default)(event.currentTarget);\r\n var $fieldItemContent = (0, _renderer.default)(event.target).closest(\".\" + FORM_FIELD_ITEM_CONTENT_CLASS);\r\n var rowOptions = $cell.parent().data(\"options\");\r\n var options = rowOptions && rowOptions.cells && rowOptions.cells[$cell.index()];\r\n if (!$cell.closest(\"table\").is(event.delegateTarget)) {\r\n return\r\n }\r\n var resultOptions = (0, _extend.extend)({}, options, {\r\n cellElement: (0, _element.getPublicElement)($cell),\r\n event: event,\r\n eventType: event.type\r\n });\r\n if ($fieldItemContent.length) {\r\n var formItemOptions = $fieldItemContent.data(\"dx-form-item\");\r\n if (formItemOptions.column) {\r\n resultOptions.column = formItemOptions.column;\r\n resultOptions.columnIndex = that._columnsController.getVisibleIndex(resultOptions.column.index)\r\n }\r\n }\r\n return resultOptions\r\n };\r\n _events_engine.default.on($table, \"mouseover\", \".dx-row > td\", function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellHoverChanged\", options)\r\n });\r\n _events_engine.default.on($table, \"mouseout\", \".dx-row > td\", function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellHoverChanged\", options)\r\n });\r\n _events_engine.default.on($table, _click.name, \".dx-row > td\", function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellClick\", options)\r\n });\r\n _events_engine.default.on($table, _double_click.name, \".dx-row > td\", function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellDblClick\", options)\r\n });\r\n subscribeToRowEvents(that, $table);\r\n return $table\r\n },\r\n _isNativeClick: _common.noop,\r\n _rowPointerDown: _common.noop,\r\n _rowClick: _common.noop,\r\n _rowDblClick: _common.noop,\r\n _createColGroup: function(columns) {\r\n var colgroupElement = (0, _renderer.default)(\"\");\r\n for (var i = 0; i < columns.length; i++) {\r\n var colspan = columns[i].colspan || 1;\r\n for (var j = 0; j < colspan; j++) {\r\n colgroupElement.append(this._createCol(columns[i]))\r\n }\r\n }\r\n return colgroupElement\r\n },\r\n _createCol: function(column) {\r\n var width = column.visibleWidth || column.width;\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n var col = (0, _renderer.default)(\"\");\r\n (0, _style.setWidth)(col, width);\r\n return col\r\n },\r\n renderDelayedTemplates: function() {\r\n var delayedTemplates = this._delayedTemplates;\r\n var syncTemplates = delayedTemplates.filter(function(template) {\r\n return !template.async\r\n });\r\n var asyncTemplates = delayedTemplates.filter(function(template) {\r\n return template.async\r\n });\r\n this._delayedTemplates = [];\r\n this._renderDelayedTemplatesCore(syncTemplates);\r\n this._renderDelayedTemplatesCoreAsync(asyncTemplates)\r\n },\r\n _renderDelayedTemplatesCoreAsync: function(templates) {\r\n var that = this;\r\n if (templates.length) {\r\n (0, _window.getWindow)().setTimeout(function() {\r\n that._renderDelayedTemplatesCore(templates, true)\r\n })\r\n }\r\n },\r\n _renderDelayedTemplatesCore: function(templates, isAsync) {\r\n var date = new Date;\r\n while (templates.length) {\r\n var templateParameters = templates.shift();\r\n var options = templateParameters.options;\r\n var doc = _dom_adapter.default.getDocument();\r\n if (!isAsync || (0, _renderer.default)(options.container).closest(doc).length) {\r\n templateParameters.template.render(options)\r\n }\r\n if (isAsync && new Date - date > 30) {\r\n this._renderDelayedTemplatesCoreAsync(templates);\r\n break\r\n }\r\n }\r\n if (!templates.length && this._delayedTemplates.length) {\r\n this.renderDelayedTemplates()\r\n }\r\n },\r\n _processTemplate: function(template) {\r\n var that = this;\r\n var renderingTemplate;\r\n if (template && template.render && !(0, _type.isRenderer)(template)) {\r\n renderingTemplate = {\r\n allowRenderToDetachedContainer: template.allowRenderToDetachedContainer,\r\n render: function(options) {\r\n template.render(options.container, options.model);\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else {\r\n if ((0, _type.isFunction)(template)) {\r\n renderingTemplate = {\r\n render: function(options) {\r\n var renderedTemplate = template((0, _element.getPublicElement)(options.container), options.model);\r\n if (renderedTemplate && (renderedTemplate.nodeType || (0, _type.isRenderer)(renderedTemplate))) {\r\n options.container.append(renderedTemplate)\r\n }\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else {\r\n var templateID = (0, _type.isString)(template) ? template : (0, _renderer.default)(template).attr(\"id\");\r\n if (!templateID) {\r\n renderingTemplate = that.getTemplate(template)\r\n } else {\r\n if (!that._templatesCache[templateID]) {\r\n that._templatesCache[templateID] = that.getTemplate(template)\r\n }\r\n renderingTemplate = that._templatesCache[templateID]\r\n }\r\n }\r\n }\r\n return renderingTemplate\r\n },\r\n renderTemplate: function(container, template, options, allowRenderToDetachedContainer) {\r\n var that = this;\r\n var renderingTemplate = that._processTemplate(template, options);\r\n var column = options.column;\r\n var isDataRow = \"data\" === options.rowType;\r\n var templateDeferred = new _deferred.Deferred;\r\n var templateOptions = {\r\n container: container,\r\n model: options,\r\n deferred: templateDeferred,\r\n onRendered: function() {\r\n templateDeferred.resolve()\r\n }\r\n };\r\n if (renderingTemplate) {\r\n options.component = that.component;\r\n var async = column && (column.renderAsync && isDataRow || that.option(\"renderAsync\") && (false !== column.renderAsync && (column.command || column.showEditorAlways) && isDataRow || \"filter\" === options.rowType));\r\n if ((renderingTemplate.allowRenderToDetachedContainer || allowRenderToDetachedContainer) && !async) {\r\n renderingTemplate.render(templateOptions)\r\n } else {\r\n that._delayedTemplates.push({\r\n template: renderingTemplate,\r\n options: templateOptions,\r\n async: async\r\n })\r\n }\r\n } else {\r\n templateDeferred.reject()\r\n }\r\n return templateDeferred.promise()\r\n },\r\n _getBodies: function(tableElement) {\r\n return (0, _renderer.default)(tableElement).children(\"tbody\").not(\".dx-header\").not(\".dx-footer\")\r\n },\r\n _wrapRowIfNeed: function($table, $row) {\r\n var $tBodies = this.option(\"rowTemplate\") && this._getBodies(this._tableElement || $table);\r\n if ($tBodies && $tBodies.filter(\".\" + ROW_CLASS).length) {\r\n var $tbody = (0, _renderer.default)(\"\").addClass($row.attr(\"class\"));\r\n this.setAria(\"role\", \"presentation\", $tbody);\r\n return $tbody.append($row)\r\n }\r\n return $row\r\n },\r\n _appendRow: function($table, $row, appendTemplate) {\r\n appendTemplate = appendTemplate || appendElementTemplate;\r\n appendTemplate.render({\r\n content: $row,\r\n container: $table\r\n })\r\n },\r\n _resizeCore: function() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n },\r\n _renderCore: function(e) {\r\n var $root = this.element().parent();\r\n if (!$root || $root.parent().length) {\r\n this.renderDelayedTemplates(e)\r\n }\r\n },\r\n _renderTable: function(options) {\r\n options = options || {};\r\n options.columns = this._columnsController.getVisibleColumns();\r\n var changeType = options.change && options.change.changeType;\r\n var $table = this._createTable(options.columns, \"append\" === changeType || \"prepend\" === changeType || \"update\" === changeType);\r\n this._renderRows($table, options);\r\n return $table\r\n },\r\n _renderRows: function($table, options) {\r\n var that = this;\r\n var rows = that._getRows(options.change);\r\n var columnIndices = options.change && options.change.columnIndices || [];\r\n var changeTypes = options.change && options.change.changeTypes || [];\r\n for (var i = 0; i < rows.length; i++) {\r\n that._renderRow($table, (0, _extend.extend)({\r\n row: rows[i],\r\n columnIndices: columnIndices[i],\r\n changeType: changeTypes[i]\r\n }, options))\r\n }\r\n },\r\n _renderRow: function($table, options) {\r\n if (!options.columnIndices) {\r\n options.row.cells = []\r\n }\r\n var $row = this._createRow(options.row);\r\n var $wrappedRow = this._wrapRowIfNeed($table, $row);\r\n if (\"remove\" !== options.changeType) {\r\n this._renderCells($row, options)\r\n }\r\n this._appendRow($table, $wrappedRow);\r\n var rowOptions = (0, _extend.extend)({\r\n columns: options.columns\r\n }, options.row);\r\n this._addWatchMethod(rowOptions, options.row);\r\n this._rowPrepared($wrappedRow, rowOptions, options.row)\r\n },\r\n _needRenderCell: function(columnIndex, columnIndices) {\r\n return !columnIndices || columnIndices.indexOf(columnIndex) >= 0\r\n },\r\n _renderCells: function($row, options) {\r\n var that = this;\r\n var columnIndex = 0;\r\n var row = options.row;\r\n var columns = options.columns;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n that._renderCell($row, (0, _extend.extend)({\r\n column: columns[i],\r\n columnIndex: columnIndex,\r\n value: row.values && row.values[columnIndex],\r\n oldValue: row.oldValues && row.oldValues[columnIndex]\r\n }, options))\r\n }\r\n if (columns[i].colspan > 1) {\r\n columnIndex += columns[i].colspan\r\n } else {\r\n columnIndex++\r\n }\r\n }\r\n },\r\n _updateCells: function($rowElement, $newRowElement, columnIndices) {\r\n var $cells = $rowElement.children();\r\n var $newCells = $newRowElement.children();\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var cellUpdatedClass = this.addWidgetPrefix(CELL_UPDATED_ANIMATION_CLASS);\r\n columnIndices.forEach(function(columnIndex, index) {\r\n var $cell = $cells.eq(columnIndex);\r\n var $newCell = $newCells.eq(index);\r\n $cell.replaceWith($newCell);\r\n if (highlightChanges && !$newCell.hasClass(\"dx-command-expand\")) {\r\n $newCell.addClass(cellUpdatedClass)\r\n }\r\n });\r\n copyAttributes($rowElement.get(0), $newRowElement.get(0))\r\n },\r\n _setCellAriaAttributes: function($cell, cellOptions) {\r\n if (\"freeSpace\" !== cellOptions.rowType) {\r\n this.setAria(\"selected\", false, $cell);\r\n this.setAria(\"role\", \"gridcell\", $cell);\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var ariaColIndex = cellOptions.columnIndex + columnIndexOffset + 1;\r\n this.setAria(\"colindex\", ariaColIndex, $cell)\r\n }\r\n },\r\n _renderCell: function($row, options) {\r\n var cellOptions = this._getCellOptions(options);\r\n if (options.columnIndices) {\r\n if (options.row.cells) {\r\n options.row.cells[cellOptions.columnIndex] = cellOptions\r\n }\r\n } else {\r\n options.row.cells.push(cellOptions)\r\n }\r\n var $cell = this._createCell(cellOptions);\r\n this._setCellAriaAttributes($cell, cellOptions);\r\n this._renderCellContent($cell, cellOptions);\r\n $row.get(0).appendChild($cell.get(0));\r\n return $cell\r\n },\r\n _renderCellContent: function($cell, options) {\r\n var _this = this;\r\n var template = this._getCellTemplate(options);\r\n (0, _deferred.when)(!template || this.renderTemplate($cell, template, options)).done(function() {\r\n _this._updateCell($cell, options)\r\n })\r\n },\r\n _getCellTemplate: function() {},\r\n _getRows: function() {\r\n return []\r\n },\r\n _getCellOptions: function(options) {\r\n var cellOptions = {\r\n column: options.column,\r\n columnIndex: options.columnIndex,\r\n rowType: options.row.rowType,\r\n isAltRow: this._isAltRow(options.row)\r\n };\r\n this._addWatchMethod(cellOptions);\r\n return cellOptions\r\n },\r\n _addWatchMethod: function(options, source) {\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n return\r\n }\r\n var watchers = [];\r\n source = source || options;\r\n source.watch = source.watch || function(getter, updateFunc) {\r\n var oldValue = getter(source.data);\r\n var watcher = function(row) {\r\n var newValue = getter(source.data);\r\n if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {\r\n if (row) {\r\n updateFunc(newValue, oldValue)\r\n }\r\n oldValue = newValue\r\n }\r\n };\r\n watchers.push(watcher);\r\n var stopWatch = function() {\r\n var index = watchers.indexOf(watcher);\r\n if (index >= 0) {\r\n watchers.splice(index, 1)\r\n }\r\n };\r\n return stopWatch\r\n };\r\n source.update = source.update || function(row) {\r\n if (row) {\r\n this.data = options.data = row.data;\r\n this.rowIndex = options.rowIndex = row.rowIndex;\r\n this.dataIndex = options.dataIndex = row.dataIndex;\r\n this.isExpanded = options.isExpanded = row.isExpanded;\r\n if (options.row) {\r\n options.row = row\r\n }\r\n }\r\n watchers.forEach(function(watcher) {\r\n watcher(row)\r\n })\r\n };\r\n if (source !== options) {\r\n options.watch = source.watch.bind(source)\r\n }\r\n return options\r\n },\r\n _cellPrepared: function(cell, options) {\r\n options.cellElement = (0, _element.getPublicElement)((0, _renderer.default)(cell));\r\n this.executeAction(\"onCellPrepared\", options)\r\n },\r\n _rowPrepared: function($row, options) {\r\n (0, _element_data.data)($row.get(0), \"options\", options);\r\n options.rowElement = (0, _element.getPublicElement)($row);\r\n this.executeAction(\"onRowPrepared\", options)\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (_uiGrid_core2.default.checkChanges(optionNames, [\"width\", \"visibleWidth\"])) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var widths = iteratorUtils.map(visibleColumns, function(column) {\r\n var width = column.visibleWidth || column.width;\r\n return (0, _type.isDefined)(width) ? width : \"auto\"\r\n });\r\n this.setColumnWidths({\r\n widths: widths,\r\n optionNames: optionNames\r\n });\r\n return\r\n }\r\n if (!this._requireReady) {\r\n this.render()\r\n }\r\n },\r\n getCellIndex: function($cell) {\r\n var cellIndex = $cell.length ? $cell[0].cellIndex : -1;\r\n return cellIndex\r\n },\r\n getTableElements: function() {\r\n return this._tableElement || (0, _renderer.default)()\r\n },\r\n getTableElement: function() {\r\n return this._tableElement\r\n },\r\n setTableElement: function(tableElement) {\r\n this._tableElement = tableElement\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n switch (args.name) {\r\n case \"cellHintEnabled\":\r\n case \"onCellPrepared\":\r\n case \"onRowPrepared\":\r\n case \"onCellHoverChanged\":\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n },\r\n init: function() {\r\n var that = this;\r\n that._scrollLeft = -1;\r\n that._columnsController = that.getController(\"columns\");\r\n that._dataController = that.getController(\"data\");\r\n that._delayedTemplates = [];\r\n that._templatesCache = {};\r\n that.createAction(\"onCellClick\");\r\n that.createAction(\"onRowClick\");\r\n that.createAction(\"onCellDblClick\");\r\n that.createAction(\"onRowDblClick\");\r\n that.createAction(\"onCellHoverChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onCellPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n that.createAction(\"onRowPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\",\r\n afterExecute: function(e) {\r\n that._afterRowPrepared(e)\r\n }\r\n });\r\n that._columnsController.columnsChanged.add(that._columnOptionChanged.bind(that));\r\n that._dataController && that._dataController.changed.add(that._handleDataChanged.bind(that))\r\n },\r\n _afterRowPrepared: _common.noop,\r\n _handleDataChanged: function() {},\r\n callbackNames: function() {\r\n return [\"scrollChanged\"]\r\n },\r\n scrollTo: function(pos) {\r\n var $element = this.element();\r\n var $scrollContainer = $element && $element.children(\".\" + this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).not(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS));\r\n if ((0, _type.isDefined)(pos) && (0, _type.isDefined)(pos.left) && this._scrollLeft !== pos.left) {\r\n this._scrollLeft = pos.left;\r\n $scrollContainer && $scrollContainer.scrollLeft(pos.left)\r\n }\r\n },\r\n _wrapTableInScrollContainer: function($table) {\r\n var _this2 = this;\r\n var $scrollContainer = (0, _renderer.default)(\"
\");\r\n _events_engine.default.on($scrollContainer, \"scroll\", function() {\r\n var scrollLeft = $scrollContainer.scrollLeft();\r\n if (scrollLeft !== _this2._scrollLeft) {\r\n _this2.scrollChanged.fire({\r\n left: scrollLeft\r\n }, _this2.name)\r\n }\r\n });\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_CLASS)).addClass(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).append($table).appendTo(this.element());\r\n this.setAria(\"role\", \"presentation\", $scrollContainer);\r\n return $scrollContainer\r\n },\r\n _updateContent: function($newTableElement) {\r\n this.setTableElement($newTableElement);\r\n this._wrapTableInScrollContainer($newTableElement)\r\n },\r\n _findContentElement: _common.noop,\r\n _getWidths: function($cellElements) {\r\n var result = [];\r\n var legacyRendering = this.option(\"legacyRendering\");\r\n var width;\r\n if ($cellElements) {\r\n iteratorUtils.each($cellElements, function(index, item) {\r\n width = item.offsetWidth;\r\n if (item.getBoundingClientRect) {\r\n var clientRect = (0, _position.getBoundingRect)(item);\r\n if (clientRect.width > width - 1) {\r\n width = legacyRendering ? Math.ceil(clientRect.width) : clientRect.width\r\n }\r\n }\r\n result.push(width)\r\n })\r\n }\r\n return result\r\n },\r\n getColumnWidths: function($tableElement) {\r\n var that = this;\r\n var result = [];\r\n var $rows;\r\n var $cells;\r\n (this.option(\"forceApplyBindings\") || _common.noop)();\r\n $tableElement = $tableElement || that.getTableElement();\r\n if ($tableElement) {\r\n $rows = $tableElement.children(\"tbody:not(.dx-header)\").children();\r\n for (var i = 0; i < $rows.length; i++) {\r\n var $row = $rows.eq(i);\r\n var isRowVisible = \"none\" !== $row.get(0).style.display && !$row.hasClass(\"dx-state-invisible\");\r\n if (!$row.is(\".\" + GROUP_ROW_CLASS) && !$row.is(\".\" + DETAIL_ROW_CLASS) && isRowVisible) {\r\n $cells = $row.children(\"td\");\r\n break\r\n }\r\n }\r\n result = that._getWidths($cells)\r\n }\r\n return result\r\n },\r\n getVisibleColumnIndex: function(columnIndex, rowIndex) {\r\n return columnIndex\r\n },\r\n setColumnWidths: function(_ref) {\r\n var widths = _ref.widths,\r\n $tableElement = _ref.$tableElement,\r\n columns = _ref.columns,\r\n fixed = _ref.fixed;\r\n var $cols;\r\n var width;\r\n var minWidth;\r\n var columnIndex;\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var legacyRendering = this.option(\"legacyRendering\");\r\n $tableElement = $tableElement || this.getTableElement();\r\n if ($tableElement && $tableElement.length && widths) {\r\n columnIndex = 0;\r\n $cols = $tableElement.children(\"colgroup\").children(\"col\");\r\n (0, _style.setWidth)($cols, \"auto\");\r\n columns = columns || this.getColumns(null, $tableElement);\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!legacyRendering && columnAutoWidth && !fixed) {\r\n width = columns[i].width;\r\n if (width && !columns[i].command) {\r\n width = columns[i].visibleWidth || width;\r\n width = getWidthStyle(width);\r\n minWidth = getWidthStyle(columns[i].minWidth || width);\r\n var $rows = $rows || $tableElement.children().children(\".dx-row\").not(\".\" + GROUP_ROW_CLASS).not(\".\" + DETAIL_ROW_CLASS);\r\n for (var rowIndex = 0; rowIndex < $rows.length; rowIndex++) {\r\n var visibleIndex = this.getVisibleColumnIndex(i, rowIndex);\r\n var cell = $rows[rowIndex].cells[visibleIndex];\r\n if (cell) {\r\n setCellWidth(cell, columns[i], width);\r\n cell.style.minWidth = minWidth\r\n }\r\n }\r\n }\r\n }\r\n if (columns[i].colspan) {\r\n columnIndex += columns[i].colspan;\r\n continue\r\n }\r\n width = widths[columnIndex];\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n if (\"number\" === typeof width) {\r\n width = width.toFixed(3) + \"px\"\r\n }(0, _style.setWidth)($cols.eq(columnIndex), (0, _type.isDefined)(width) ? width : \"auto\");\r\n columnIndex++\r\n }\r\n }\r\n },\r\n getCellElements: function(rowIndex) {\r\n return this._getCellElementsCore(rowIndex)\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var $row = this._getRowElements().eq(rowIndex);\r\n return $row.children()\r\n },\r\n _getCellElement: function(rowIndex, columnIdentifier) {\r\n var that = this;\r\n var $cell;\r\n var $cells = that.getCellElements(rowIndex);\r\n var columnVisibleIndex = that._getVisibleColumnIndex($cells, rowIndex, columnIdentifier);\r\n if ($cells.length && columnVisibleIndex >= 0) {\r\n $cell = $cells.eq(columnVisibleIndex)\r\n }\r\n if ($cell && $cell.length) {\r\n return $cell\r\n }\r\n },\r\n _getRowElement: function(rowIndex) {\r\n var that = this;\r\n var $rowElement = (0, _renderer.default)();\r\n var $tableElements = that.getTableElements();\r\n iteratorUtils.each($tableElements, function(_, tableElement) {\r\n $rowElement = $rowElement.add(that._getRowElements((0, _renderer.default)(tableElement)).eq(rowIndex))\r\n });\r\n if ($rowElement.length) {\r\n return $rowElement\r\n }\r\n },\r\n getCellElement: function(rowIndex, columnIdentifier) {\r\n return (0, _element.getPublicElement)(this._getCellElement(rowIndex, columnIdentifier))\r\n },\r\n getRowElement: function(rowIndex) {\r\n var $rows = this._getRowElement(rowIndex);\r\n var elements = [];\r\n if ($rows && !(0, _element.getPublicElement)($rows).get) {\r\n for (var i = 0; i < $rows.length; i++) {\r\n elements.push($rows[i])\r\n }\r\n } else {\r\n elements = $rows\r\n }\r\n return elements\r\n },\r\n _getVisibleColumnIndex: function($cells, rowIndex, columnIdentifier) {\r\n if ((0, _type.isString)(columnIdentifier)) {\r\n var columnIndex = this._columnsController.columnOption(columnIdentifier, \"index\");\r\n return this._columnsController.getVisibleIndex(columnIndex)\r\n }\r\n return columnIdentifier\r\n },\r\n getColumnElements: function() {},\r\n getColumns: function(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n },\r\n getCell: function(cellPosition, rows) {\r\n var $rows = rows || this._getRowElements();\r\n var $cells;\r\n if ($rows.length > 0 && cellPosition.rowIndex >= 0) {\r\n if (\"virtual\" !== this.option(\"scrolling.mode\")) {\r\n cellPosition.rowIndex = cellPosition.rowIndex < $rows.length ? cellPosition.rowIndex : $rows.length - 1\r\n }\r\n $cells = this.getCellElements(cellPosition.rowIndex);\r\n if ($cells && $cells.length > 0) {\r\n return $cells.eq($cells.length > cellPosition.columnIndex ? cellPosition.columnIndex : $cells.length - 1)\r\n }\r\n }\r\n },\r\n getRowsCount: function() {\r\n var tableElement = this.getTableElement();\r\n if (tableElement && 1 === tableElement.length) {\r\n return tableElement[0].rows.length\r\n }\r\n return 0\r\n },\r\n _getRowElementsCore: function(tableElement) {\r\n tableElement = tableElement || this.getTableElement();\r\n if (tableElement) {\r\n var tBodies = this.option(\"rowTemplate\") && tableElement.find(\"> tbody.\" + ROW_CLASS);\r\n return tBodies && tBodies.length ? tBodies : tableElement.find(\"> tbody > .\" + ROW_CLASS + \", > .\" + ROW_CLASS)\r\n }\r\n return (0, _renderer.default)()\r\n },\r\n _getRowElements: function(tableElement) {\r\n return this._getRowElementsCore(tableElement)\r\n },\r\n getRowIndex: function($row) {\r\n return this._getRowElements().index($row)\r\n },\r\n getBoundingRect: function() {},\r\n getName: function() {},\r\n setScrollerSpacing: function(width) {\r\n var that = this;\r\n var $element = that.element();\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n $element && $element.css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n },\r\n isScrollbarVisible: function(isHorizontal) {\r\n var $element = this.element();\r\n var $tableElement = this._tableElement;\r\n if ($element && $tableElement) {\r\n return isHorizontal ? $tableElement.outerWidth() - $element.width() > 0 : $tableElement.outerHeight() - $element.height() > 0\r\n }\r\n return false\r\n }\r\n});\r\nexports.ColumnsView = ColumnsView;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.sorting_mixin.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SORT_CLASS = \"dx-sort\";\r\nvar SORT_NONE_CLASS = \"dx-sort-none\";\r\nvar SORTUP_CLASS = \"dx-sort-up\";\r\nvar SORTDOWN_CLASS = \"dx-sort-down\";\r\nvar SORT_INDEX_CLASS = \"dx-sort-index\";\r\nvar SORT_INDEX_ICON_CLASS = \"dx-sort-index-icon\";\r\nvar HEADERS_ACTION_CLASS = \"action\";\r\nvar _default = {\r\n _applyColumnState: function(options) {\r\n var that = this;\r\n var ariaSortState;\r\n var $sortIndicator;\r\n var sortingMode = that.option(\"sorting.mode\");\r\n var rootElement = options.rootElement;\r\n var column = options.column;\r\n var $indicatorsContainer = that._getIndicatorContainer(rootElement);\r\n if (\"sort\" === options.name) {\r\n rootElement.find(\".\" + SORT_CLASS).remove();\r\n !$indicatorsContainer.children().length && $indicatorsContainer.remove();\r\n var isSortingAllowed = (\"single\" === sortingMode || \"multiple\" === sortingMode) && column.allowSorting;\r\n if (!(0, _type.isDefined)(column.groupIndex) && (isSortingAllowed || (0, _type.isDefined)(column.sortOrder))) {\r\n ariaSortState = \"asc\" === column.sortOrder ? \"ascending\" : \"descending\";\r\n $sortIndicator = that.callBase(options).toggleClass(SORTUP_CLASS, \"asc\" === column.sortOrder).toggleClass(SORTDOWN_CLASS, \"desc\" === column.sortOrder);\r\n var hasSeveralSortIndexes = that.getController && !!that.getController(\"columns\").columnOption(\"sortIndex:1\");\r\n if (hasSeveralSortIndexes && that.option(\"sorting.showSortIndexes\") && column.sortIndex >= 0) {\r\n (0, _renderer.default)(\"\").addClass(SORT_INDEX_ICON_CLASS).text(column.sortIndex + 1).appendTo($sortIndicator);\r\n $sortIndicator.addClass(SORT_INDEX_CLASS)\r\n }\r\n options.rootElement.addClass(that.addWidgetPrefix(HEADERS_ACTION_CLASS))\r\n }\r\n if (!(0, _type.isDefined)(column.sortOrder)) {\r\n that.setAria(\"sort\", \"none\", rootElement)\r\n } else {\r\n that.setAria(\"sort\", ariaSortState, rootElement)\r\n }\r\n return $sortIndicator\r\n } else {\r\n return that.callBase(options)\r\n }\r\n },\r\n _getIndicatorClassName: function(name) {\r\n if (\"sort\" === name) {\r\n return SORT_CLASS\r\n } else {\r\n if (\"sortIndex\" === name) {\r\n return SORT_INDEX_ICON_CLASS\r\n }\r\n }\r\n return this.callBase(name)\r\n },\r\n _renderIndicator: function(options) {\r\n var column = options.column;\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"sort\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (!(0, _type.isDefined)(column.sortOrder)) {\r\n $indicator && $indicator.addClass(SORT_NONE_CLASS)\r\n }\r\n if ($container.children().length && (!rtlEnabled && \"left\" === options.columnAlignment || rtlEnabled && \"right\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n if (\"sort\" === indicatorName && (0, _type.isDefined)(column.groupIndex)) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getIndicatorElements: function($cell, returnAll) {\r\n var $indicatorElements = this.callBase($cell);\r\n return returnAll ? $indicatorElements : $indicatorElements && $indicatorElements.not(\".\" + SORT_NONE_CLASS)\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ROW_FOCUSED_CLASS = \"dx-row-focused\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row.\" + ROW_FOCUSED_CLASS;\r\nvar TABLE_POSTFIX_CLASS = \"table\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FocusController = _uiGrid_core.default.ViewController.inherit(function() {\r\n return {\r\n init: function() {\r\n this._dataController = this.getController(\"data\");\r\n this._keyboardController = this.getController(\"keyboardNavigation\");\r\n this.component._optionsByReference.focusedRowKey = true\r\n },\r\n optionChanged: function(args) {\r\n if (\"focusedRowIndex\" === args.name) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n this._focusRowByIndex(args.value);\r\n this._triggerFocusedRowChangedIfNeed(focusedRowKey, args.value);\r\n args.handled = true\r\n } else {\r\n if (\"focusedRowKey\" === args.name) {\r\n var focusedRowIndex = this.option(\"focusedRowIndex\");\r\n this._focusRowByKey(args.value);\r\n this._triggerFocusedRowChangedIfNeed(args.value, focusedRowIndex);\r\n args.handled = true\r\n } else {\r\n if (\"focusedColumnIndex\" === args.name) {\r\n args.handled = true\r\n } else {\r\n if (\"focusedRowEnabled\" === args.name) {\r\n args.handled = true\r\n } else {\r\n if (\"autoNavigateToFocusedRow\" === args.name) {\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _triggerFocusedRowChangedIfNeed: function(focusedRowKey, focusedRowIndex) {\r\n var focusedRowIndexByKey = this.getFocusedRowIndexByKey(focusedRowKey);\r\n if (focusedRowIndex === focusedRowIndexByKey) {\r\n var rowIndex = this._dataController.getRowIndexByKey(focusedRowKey);\r\n if (rowIndex >= 0) {\r\n var $rowElement = (0, _renderer.default)(this.getView(\"rowsView\").getRowElement(rowIndex));\r\n this.getController(\"keyboardNavigation\")._fireFocusedRowChanged($rowElement, focusedRowIndex)\r\n }\r\n }\r\n },\r\n isAutoNavigateToFocusedRow: function() {\r\n return \"infinite\" !== this.option(\"scrolling.mode\") && this.option(\"autoNavigateToFocusedRow\")\r\n },\r\n _focusRowByIndex: function(index) {\r\n if (!this.option(\"focusedRowEnabled\")) {\r\n return\r\n }\r\n index = void 0 !== index ? index : this.option(\"focusedRowIndex\");\r\n if (index < 0) {\r\n if (this.isAutoNavigateToFocusedRow()) {\r\n this._resetFocusedRow()\r\n }\r\n } else {\r\n this._focusRowByIndexCore(index)\r\n }\r\n },\r\n _focusRowByIndexCore: function(index) {\r\n var _this = this;\r\n var dataController = this.getController(\"data\");\r\n var pageSize = dataController.pageSize();\r\n var setKeyByIndex = function() {\r\n if (_this._isValidFocusedRowIndex(index)) {\r\n var visibleIndex = index - dataController.getRowIndexOffset(true);\r\n var lastItemIndex = dataController._getLastItemIndex();\r\n var rowIndex = Math.min(visibleIndex, lastItemIndex);\r\n var focusedRowKey = dataController.getKeyByRowIndex(rowIndex, true);\r\n if ((0, _type.isDefined)(focusedRowKey) && !_this.isRowFocused(focusedRowKey)) {\r\n _this.option(\"focusedRowKey\", focusedRowKey)\r\n }\r\n }\r\n };\r\n if (pageSize >= 0) {\r\n if (!this._isLocalRowIndex(index)) {\r\n var pageIndex = Math.floor(index / dataController.pageSize());\r\n (0, _deferred.when)(dataController.pageIndex(pageIndex), dataController.waitReady()).done(function() {\r\n setKeyByIndex()\r\n })\r\n } else {\r\n setKeyByIndex()\r\n }\r\n }\r\n },\r\n _isLocalRowIndex: function(index) {\r\n var dataController = this.getController(\"data\");\r\n var isVirtualScrolling = this.getController(\"keyboardNavigation\")._isVirtualScrolling();\r\n if (isVirtualScrolling) {\r\n var pageIndex = Math.floor(index / dataController.pageSize());\r\n var virtualItems = dataController.virtualItemsCount();\r\n var virtualItemsBegin = virtualItems ? virtualItems.begin : -1;\r\n var visibleRowsCount = dataController.getVisibleRows().length + dataController.getRowIndexOffset();\r\n var visiblePagesCount = Math.ceil(visibleRowsCount / dataController.pageSize());\r\n return virtualItemsBegin <= index && visiblePagesCount > pageIndex\r\n }\r\n return true\r\n },\r\n _setFocusedRowKeyByIndex: function(index) {\r\n var dataController = this.getController(\"data\");\r\n if (this._isValidFocusedRowIndex(index)) {\r\n var rowIndex = Math.min(index - dataController.getRowIndexOffset(), dataController.items().length - 1);\r\n var focusedRowKey = dataController.getKeyByRowIndex(rowIndex);\r\n if ((0, _type.isDefined)(focusedRowKey) && !this.isRowFocused(focusedRowKey)) {\r\n this.option(\"focusedRowKey\", focusedRowKey)\r\n }\r\n }\r\n },\r\n _focusRowByKey: function(key) {\r\n if (!(0, _type.isDefined)(key)) {\r\n this._resetFocusedRow()\r\n } else {\r\n this._navigateToRow(key, true)\r\n }\r\n },\r\n _resetFocusedRow: function() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var isFocusedRowKeyDefined = (0, _type.isDefined)(focusedRowKey);\r\n if (!isFocusedRowKeyDefined && this.option(\"focusedRowIndex\") < 0) {\r\n return\r\n }\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n if (isFocusedRowKeyDefined) {\r\n this.option(\"focusedRowKey\", void 0)\r\n }\r\n keyboardController.setFocusedRowIndex(-1);\r\n this.option(\"focusedRowIndex\", -1);\r\n this.getController(\"data\").updateItems({\r\n changeType: \"updateFocusedRow\",\r\n focusedRowKey: void 0\r\n });\r\n keyboardController._fireFocusedRowChanged(void 0, -1)\r\n },\r\n _isValidFocusedRowIndex: function(rowIndex) {\r\n var dataController = this.getController(\"data\");\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n return !row || \"data\" === row.rowType || \"group\" === row.rowType\r\n },\r\n publicMethods: function() {\r\n return [\"navigateToRow\", \"isRowFocused\"]\r\n },\r\n navigateToRow: function(key) {\r\n if (!this.isAutoNavigateToFocusedRow()) {\r\n this.option(\"focusedRowIndex\", -1)\r\n }\r\n this._navigateToRow(key)\r\n },\r\n _navigateToRow: function(key, needFocusRow) {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n var isAutoNavigate = that.isAutoNavigateToFocusedRow();\r\n var d = new _deferred.Deferred;\r\n if (void 0 === key || !dataController.dataSource()) {\r\n return d.reject().promise()\r\n }\r\n var rowIndexByKey = that.getFocusedRowIndexByKey(key);\r\n if (!isAutoNavigate && needFocusRow || rowIndexByKey >= 0) {\r\n that._navigateTo(key, d, needFocusRow)\r\n } else {\r\n dataController.getPageIndexByKey(key).done(function(pageIndex) {\r\n if (pageIndex < 0) {\r\n d.resolve(-1);\r\n return\r\n }\r\n if (pageIndex === dataController.pageIndex()) {\r\n dataController.reload().done(function() {\r\n if (that.isRowFocused(key)) {\r\n d.resolve(that.getFocusedRowIndexByKey(key))\r\n } else {\r\n that._navigateTo(key, d, needFocusRow)\r\n }\r\n }).fail(d.reject)\r\n } else {\r\n dataController.pageIndex(pageIndex).done(function() {\r\n that._navigateTo(key, d, needFocusRow)\r\n }).fail(d.reject)\r\n }\r\n }).fail(d.reject)\r\n }\r\n return d.promise()\r\n },\r\n _navigateTo: function(key, deferred, needFocusRow) {\r\n var visibleRowIndex = this.getController(\"data\").getRowIndexByKey(key);\r\n var isVirtualRowRenderingMode = \"virtual\" === this.option(\"scrolling.rowRenderingMode\");\r\n var isAutoNavigate = this.isAutoNavigateToFocusedRow();\r\n if (isAutoNavigate && isVirtualRowRenderingMode && visibleRowIndex < 0) {\r\n this._navigateToVirtualRow(key, deferred, needFocusRow)\r\n } else {\r\n this._navigateToVisibleRow(key, deferred, needFocusRow)\r\n }\r\n },\r\n _navigateToVisibleRow: function(key, deferred, needFocusRow) {\r\n if (needFocusRow) {\r\n this._triggerUpdateFocusedRow(key, deferred)\r\n } else {\r\n this.getView(\"rowsView\").scrollToRowElement(key)\r\n }\r\n },\r\n _navigateToVirtualRow: function(key, deferred, needFocusRow) {\r\n var that = this;\r\n var dataController = this.getController(\"data\");\r\n var rowsScrollController = dataController._rowsScrollController;\r\n var rowIndex = _uiGrid_core2.default.getIndexByKey(key, dataController.items(true));\r\n var scrollable = that.getView(\"rowsView\").getScrollable();\r\n if (rowsScrollController && scrollable && rowIndex >= 0) {\r\n var focusedRowIndex = rowIndex + dataController.getRowIndexOffset(true);\r\n var offset = rowsScrollController.getItemOffset(focusedRowIndex);\r\n if (needFocusRow) {\r\n var triggerUpdateFocusedRow = function triggerUpdateFocusedRow() {\r\n that.component.off(\"contentReady\", triggerUpdateFocusedRow);\r\n that._triggerUpdateFocusedRow(key, deferred)\r\n };\r\n that.component.on(\"contentReady\", triggerUpdateFocusedRow)\r\n }\r\n scrollable.scrollTo({\r\n y: offset\r\n })\r\n }\r\n },\r\n _triggerUpdateFocusedRow: function(key, deferred) {\r\n var dataController = this.getController(\"data\");\r\n var focusedRowIndex = this.getFocusedRowIndexByKey(key);\r\n if (this._isValidFocusedRowIndex(focusedRowIndex)) {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n dataController.updateItems({\r\n changeType: \"updateFocusedRow\",\r\n focusedRowKey: key\r\n })\r\n } else {\r\n this.getView(\"rowsView\").scrollToRowElement(key)\r\n }\r\n this.getController(\"keyboardNavigation\").setFocusedRowIndex(focusedRowIndex);\r\n deferred && deferred.resolve(focusedRowIndex)\r\n } else {\r\n deferred && deferred.resolve(-1)\r\n }\r\n },\r\n getFocusedRowIndexByKey: function(key) {\r\n var dataController = this.getController(\"data\");\r\n var loadedRowIndex = dataController.getRowIndexByKey(key, true);\r\n return loadedRowIndex >= 0 ? loadedRowIndex + dataController.getRowIndexOffset(true) : -1\r\n },\r\n _focusRowByKeyOrIndex: function() {\r\n var _this2 = this;\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var currentFocusedRowIndex = this.option(\"focusedRowIndex\");\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var dataController = this.getController(\"data\");\r\n if ((0, _type.isDefined)(focusedRowKey)) {\r\n var visibleRowIndex = dataController.getRowIndexByKey(focusedRowKey);\r\n if (visibleRowIndex >= 0) {\r\n if (keyboardController._isVirtualScrolling()) {\r\n currentFocusedRowIndex = visibleRowIndex + dataController.getRowIndexOffset()\r\n }\r\n keyboardController.setFocusedRowIndex(currentFocusedRowIndex);\r\n this._triggerUpdateFocusedRow(focusedRowKey)\r\n } else {\r\n this._navigateToRow(focusedRowKey, true).done(function(focusedRowIndex) {\r\n if (currentFocusedRowIndex >= 0 && focusedRowIndex < 0) {\r\n _this2._focusRowByIndex()\r\n }\r\n })\r\n }\r\n } else {\r\n if (currentFocusedRowIndex >= 0) {\r\n this.getController(\"focus\")._focusRowByIndex(currentFocusedRowIndex)\r\n }\r\n }\r\n },\r\n isRowFocused: function(key) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n if ((0, _type.isDefined)(focusedRowKey)) {\r\n return (0, _common.equalByValue)(key, this.option(\"focusedRowKey\"))\r\n }\r\n },\r\n updateFocusedRow: function(change) {\r\n var that = this;\r\n var focusedRowIndex = that._dataController.getRowIndexByKey(change.focusedRowKey);\r\n var rowsView = that.getView(\"rowsView\");\r\n var $tableElement;\r\n (0, _iterator.each)(rowsView.getTableElements(), function(index, element) {\r\n var _change$items;\r\n var isMainTable = 0 === index;\r\n $tableElement = (0, _renderer.default)(element);\r\n that._clearPreviousFocusedRow($tableElement, focusedRowIndex);\r\n that._prepareFocusedRow({\r\n changedItem: null === change || void 0 === change ? void 0 : null === (_change$items = change.items) || void 0 === _change$items ? void 0 : _change$items[focusedRowIndex],\r\n $tableElement: $tableElement,\r\n focusedRowIndex: focusedRowIndex,\r\n isMainTable: isMainTable\r\n })\r\n })\r\n },\r\n _clearPreviousFocusedRow: function($tableElement, focusedRowIndex) {\r\n var _this3 = this;\r\n var isNotMasterDetailFocusedRow = function(_, focusedRow) {\r\n var $focusedRowTable = (0, _renderer.default)(focusedRow).closest(\".\".concat(_this3.addWidgetPrefix(TABLE_POSTFIX_CLASS)));\r\n return $tableElement.is($focusedRowTable)\r\n };\r\n var $prevRowFocusedElement = $tableElement.find(FOCUSED_ROW_SELECTOR).filter(isNotMasterDetailFocusedRow);\r\n $prevRowFocusedElement.removeClass(ROW_FOCUSED_CLASS).removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabindex\");\r\n $prevRowFocusedElement.children(\"td\").removeAttr(\"tabindex\");\r\n if (0 !== focusedRowIndex) {\r\n var $firstRow = (0, _renderer.default)(this.getView(\"rowsView\").getRowElement(0));\r\n $firstRow.removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabIndex\")\r\n }\r\n },\r\n _prepareFocusedRow: function(options) {\r\n var $row;\r\n var changedItem = options.changedItem;\r\n if (changedItem && (\"data\" === changedItem.rowType || \"group\" === changedItem.rowType)) {\r\n var focusedRowIndex = options.focusedRowIndex;\r\n var $tableElement = options.$tableElement;\r\n var isMainTable = options.isMainTable;\r\n var tabIndex = this.option(\"tabindex\") || 0;\r\n var rowsView = this.getView(\"rowsView\");\r\n $row = (0, _renderer.default)(rowsView._getRowElements($tableElement).eq(focusedRowIndex));\r\n $row.addClass(ROW_FOCUSED_CLASS).attr(\"tabindex\", tabIndex);\r\n if (isMainTable) {\r\n rowsView.scrollToElementVertically($row)\r\n }\r\n }\r\n return $row\r\n }\r\n }\r\n}());\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n focusedRowEnabled: false,\r\n autoNavigateToFocusedRow: true,\r\n focusedRowKey: void 0,\r\n focusedRowIndex: -1,\r\n focusedColumnIndex: -1\r\n }\r\n },\r\n controllers: {\r\n focus: FocusController\r\n },\r\n extenders: {\r\n controllers: {\r\n keyboardNavigation: {\r\n init: function() {\r\n var rowIndex = this.option(\"focusedRowIndex\");\r\n var columnIndex = this.option(\"focusedColumnIndex\");\r\n this.createAction(\"onFocusedRowChanging\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedRowChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedCellChanging\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedCellChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.callBase();\r\n this.setRowFocusType();\r\n this._focusedCellPosition = {};\r\n if ((0, _type.isDefined)(rowIndex)) {\r\n this._focusedCellPosition.rowIndex = this.option(\"focusedRowIndex\")\r\n }\r\n if ((0, _type.isDefined)(columnIndex)) {\r\n this._focusedCellPosition.columnIndex = this.option(\"focusedColumnIndex\")\r\n }\r\n },\r\n setFocusedRowIndex: function(rowIndex) {\r\n var dataController = this.getController(\"data\");\r\n this.callBase(rowIndex);\r\n var visibleRowIndex = rowIndex - dataController.getRowIndexOffset();\r\n var visibleRow = dataController.getVisibleRows()[visibleRowIndex];\r\n if (!visibleRow || !visibleRow.isNewRow) {\r\n this.option(\"focusedRowIndex\", rowIndex)\r\n }\r\n },\r\n setFocusedColumnIndex: function(columnIndex) {\r\n this.callBase(columnIndex);\r\n this.option(\"focusedColumnIndex\", columnIndex)\r\n },\r\n _escapeKeyHandler: function(eventArgs, isEditing) {\r\n if (isEditing || !this.option(\"focusedRowEnabled\")) {\r\n this.callBase(eventArgs, isEditing);\r\n return\r\n }\r\n if (this.isCellFocusType()) {\r\n this.setRowFocusType();\r\n this._focus(this._getCellElementFromTarget(eventArgs.originalEvent.target), true)\r\n }\r\n },\r\n _updateFocusedCellPosition: function($cell, direction) {\r\n var prevRowIndex = this.option(\"focusedRowIndex\");\r\n var prevColumnIndex = this.option(\"focusedColumnIndex\");\r\n var position = this.callBase($cell, direction);\r\n if (position && position.columnIndex >= 0) {\r\n this._fireFocusedCellChanged($cell, prevColumnIndex, prevRowIndex)\r\n }\r\n }\r\n },\r\n editorFactory: {\r\n renderFocusOverlay: function($element, hideBorder) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var focusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var editingController = this.getController(\"editing\");\r\n var isRowElement = \"row\" === keyboardController._getElementType($element);\r\n var $cell;\r\n if (!focusedRowEnabled || !keyboardController.isRowFocusType() || editingController.isEditing()) {\r\n this.callBase($element, hideBorder)\r\n } else {\r\n if (focusedRowEnabled) {\r\n if (isRowElement && !$element.hasClass(ROW_FOCUSED_CLASS)) {\r\n $cell = keyboardController.getFirstValidCellInRow($element);\r\n keyboardController.focus($cell)\r\n }\r\n }\r\n }\r\n }\r\n },\r\n columns: {\r\n getSortDataSourceParameters: function(_, sortByKey) {\r\n var _this4 = this;\r\n var result = this.callBase.apply(this, arguments);\r\n var dataController = this.getController(\"data\");\r\n var dataSource = dataController._dataSource;\r\n var store = dataController.store();\r\n var key = store && store.key();\r\n var remoteOperations = dataSource && dataSource.remoteOperations() || {};\r\n var isLocalOperations = Object.keys(remoteOperations).every(function(operationName) {\r\n return !remoteOperations[operationName]\r\n });\r\n if (key && (this.option(\"focusedRowEnabled\") && false !== this.getController(\"focus\").isAutoNavigateToFocusedRow() || sortByKey)) {\r\n key = Array.isArray(key) ? key : [key];\r\n var notSortedKeys = key.filter(function(key) {\r\n return !_this4.columnOption(key, \"sortOrder\")\r\n });\r\n if (notSortedKeys.length) {\r\n result = result || [];\r\n if (isLocalOperations) {\r\n result.push({\r\n selector: dataSource.getDataIndexGetter(),\r\n desc: false\r\n })\r\n } else {\r\n notSortedKeys.forEach(function(notSortedKey) {\r\n return result.push({\r\n selector: notSortedKey,\r\n desc: false\r\n })\r\n })\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n data: {\r\n _applyChange: function(change) {\r\n if (change && \"updateFocusedRow\" === change.changeType) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireChanged: function(e) {\r\n this.callBase(e);\r\n if (this.option(\"focusedRowEnabled\") && this._dataSource) {\r\n var isPartialUpdate = \"update\" === e.changeType && e.repaintChangesOnly;\r\n var isPartialUpdateWithDeleting = isPartialUpdate && e.changeTypes && e.changeTypes.indexOf(\"remove\") >= 0;\r\n if (\"refresh\" === e.changeType && e.items.length || isPartialUpdateWithDeleting) {\r\n this._updatePageIndexes();\r\n this.processUpdateFocusedRow(e)\r\n } else {\r\n if (\"append\" === e.changeType || \"prepend\" === e.changeType) {\r\n this._updatePageIndexes()\r\n }\r\n }\r\n }\r\n },\r\n _updatePageIndexes: function() {\r\n var prevRenderingPageIndex = this._lastRenderingPageIndex || 0;\r\n var renderingPageIndex = this._rowsScrollController ? this._rowsScrollController.pageIndex() : 0;\r\n this._lastRenderingPageIndex = renderingPageIndex;\r\n this._isPagingByRendering = renderingPageIndex !== prevRenderingPageIndex\r\n },\r\n isPagingByRendering: function() {\r\n return this._isPagingByRendering\r\n },\r\n processUpdateFocusedRow: function(e) {\r\n var operationTypes = e.operationTypes || {};\r\n var focusController = this.getController(\"focus\");\r\n var reload = operationTypes.reload,\r\n fullReload = operationTypes.fullReload;\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var isVirtualScrolling = keyboardController._isVirtualScrolling();\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var isAutoNavigate = focusController.isAutoNavigateToFocusedRow();\r\n if (reload && !fullReload && (0, _type.isDefined)(focusedRowKey)) {\r\n focusController._navigateToRow(focusedRowKey, true).done(function(focusedRowIndex) {\r\n if (focusedRowIndex < 0) {\r\n focusController._focusRowByIndex()\r\n }\r\n })\r\n } else {\r\n if (operationTypes.paging && !isVirtualScrolling) {\r\n if (isAutoNavigate) {\r\n var rowIndexByKey = this.getRowIndexByKey(focusedRowKey);\r\n var isValidRowIndexByKey = rowIndexByKey >= 0;\r\n var focusedRowIndex = this.option(\"focusedRowIndex\");\r\n var needFocusRowByIndex = focusedRowIndex >= 0 && (focusedRowIndex === rowIndexByKey || !isValidRowIndexByKey);\r\n if (needFocusRowByIndex) {\r\n focusController._focusRowByIndex()\r\n }\r\n } else {\r\n if (this.getRowIndexByKey(focusedRowKey) < 0) {\r\n this.option(\"focusedRowIndex\", -1)\r\n }\r\n }\r\n } else {\r\n if (operationTypes.fullReload) {\r\n focusController._focusRowByKeyOrIndex()\r\n }\r\n }\r\n }\r\n },\r\n getPageIndexByKey: function(key) {\r\n var that = this;\r\n var d = new _deferred.Deferred;\r\n that.getGlobalRowIndexByKey(key).done(function(globalIndex) {\r\n d.resolve(globalIndex >= 0 ? Math.floor(globalIndex / that.pageSize()) : -1)\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n getGlobalRowIndexByKey: function(key) {\r\n if (this._dataSource.group()) {\r\n return this._calculateGlobalRowIndexByGroupedData(key)\r\n }\r\n return this._calculateGlobalRowIndexByFlatData(key)\r\n },\r\n _calculateGlobalRowIndexByFlatData: function(key, groupFilter, useGroup) {\r\n var that = this;\r\n var deferred = new _deferred.Deferred;\r\n var dataSource = that._dataSource;\r\n var filter = that._generateFilterByKey(key);\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter),\r\n skip: 0,\r\n take: 1\r\n }).done(function(data) {\r\n if (data.length > 0) {\r\n filter = that._generateOperationFilterByKey(key, data[0], useGroup);\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter, groupFilter),\r\n skip: 0,\r\n take: 1,\r\n requireTotalCount: true\r\n }).done(function(_, extra) {\r\n deferred.resolve(extra.totalCount)\r\n })\r\n } else {\r\n deferred.resolve(-1)\r\n }\r\n });\r\n return deferred.promise()\r\n },\r\n _concatWithCombinedFilter: function(filter, groupFilter) {\r\n var combinedFilter = this.getCombinedFilter();\r\n return _uiGrid_core2.default.combineFilters([filter, combinedFilter, groupFilter])\r\n },\r\n _generateBooleanFilter: function(selector, value, sortInfo) {\r\n var result;\r\n if (false === value) {\r\n result = [selector, \"=\", sortInfo.desc ? true : null]\r\n } else {\r\n if (true === value ? !sortInfo.desc : sortInfo.desc) {\r\n result = [selector, \"<>\", value]\r\n }\r\n }\r\n return result\r\n },\r\n _generateOperationFilterByKey: function(key, rowData, useGroup) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var filter = that._generateFilterByKey(key, \"<\");\r\n var sort = that._columnsController.getSortDataSourceParameters(!dataSource.remoteOperations().filtering, true);\r\n if (useGroup) {\r\n var group = that._columnsController.getGroupDataSourceParameters(!dataSource.remoteOperations().filtering);\r\n if (group) {\r\n sort = sort ? group.concat(sort) : group\r\n }\r\n }\r\n if (sort) {\r\n sort.slice().reverse().forEach(function(sortInfo) {\r\n var selector = sortInfo.selector;\r\n var getter;\r\n if (\"function\" === typeof selector) {\r\n getter = selector\r\n } else {\r\n getter = that._columnsController.columnOption(selector, \"selector\")\r\n }\r\n var value = getter ? getter(rowData) : rowData[selector];\r\n filter = [\r\n [selector, \"=\", value], \"and\", filter\r\n ];\r\n if (null === value || (0, _type.isBoolean)(value)) {\r\n var booleanFilter = that._generateBooleanFilter(selector, value, sortInfo);\r\n if (booleanFilter) {\r\n filter = [booleanFilter, \"or\", filter]\r\n }\r\n } else {\r\n var filterOperation = sortInfo.desc ? \">\" : \"<\";\r\n var sortFilter = [selector, filterOperation, value];\r\n if (!sortInfo.desc) {\r\n sortFilter = [sortFilter, \"or\", [selector, \"=\", null]]\r\n }\r\n filter = [sortFilter, \"or\", filter]\r\n }\r\n })\r\n }\r\n return filter\r\n },\r\n _generateFilterByKey: function(key, operation) {\r\n var dataSourceKey = this._dataSource.key();\r\n var filter = [];\r\n if (!operation) {\r\n operation = \"=\"\r\n }\r\n if (Array.isArray(dataSourceKey)) {\r\n for (var i = 0; i < dataSourceKey.length; ++i) {\r\n var keyPart = key[dataSourceKey[i]];\r\n if (keyPart) {\r\n if (filter.length > 0) {\r\n filter.push(\"and\")\r\n }\r\n filter.push([dataSourceKey[i], operation, keyPart])\r\n }\r\n }\r\n } else {\r\n filter = [dataSourceKey, operation, key]\r\n }\r\n return filter\r\n },\r\n _getLastItemIndex: function() {\r\n return this.items(true).length - 1\r\n }\r\n },\r\n editing: {\r\n _deleteRowCore: function(rowIndex) {\r\n var _this5 = this;\r\n var deferred = this.callBase.apply(this, arguments);\r\n var dataController = this.getController(\"data\");\r\n var rowKey = dataController.getKeyByRowIndex(rowIndex);\r\n deferred.done(function() {\r\n var rowIndex = dataController.getRowIndexByKey(rowKey);\r\n var visibleRows = dataController.getVisibleRows();\r\n if (rowIndex === -1 && !visibleRows.length) {\r\n _this5.getController(\"focus\")._resetFocusedRow()\r\n }\r\n })\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (this.option(\"focusedRowEnabled\") && row) {\r\n if (this.getController(\"focus\").isRowFocused(row.key)) {\r\n $row.addClass(ROW_FOCUSED_CLASS)\r\n }\r\n }\r\n return $row\r\n },\r\n _checkRowKeys: function(options) {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"focusedRowEnabled\") && this.option(\"dataSource\")) {\r\n var store = this._dataController.store();\r\n if (store && !store.key()) {\r\n this._dataController.fireError(\"E1042\", \"Row focusing\")\r\n }\r\n }\r\n },\r\n _update: function(change) {\r\n if (\"updateFocusedRow\" === change.changeType) {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.getController(\"focus\").updateFocusedRow(change)\r\n }\r\n } else {\r\n this.callBase(change)\r\n }\r\n },\r\n updateFocusElementTabIndex: function($cellElements, preventScroll) {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this._setFocusedRowElementTabIndex(preventScroll)\r\n } else {\r\n this.callBase($cellElements)\r\n }\r\n },\r\n _setFocusedRowElementTabIndex: function(preventScroll) {\r\n var _this6 = this;\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var tabIndex = this.option(\"tabIndex\") || 0;\r\n var dataController = this._dataController;\r\n var columnsController = this._columnsController;\r\n var rowIndex = dataController.getRowIndexByKey(focusedRowKey);\r\n var columnIndex = this.option(\"focusedColumnIndex\");\r\n var $row = this._findRowElementForTabIndex();\r\n if (!(0, _type.isDefined)(this._scrollToFocusOnResize)) {\r\n this._scrollToFocusOnResize = function() {\r\n _this6.scrollToElementVertically(_this6._findRowElementForTabIndex());\r\n _this6.resizeCompleted.remove(_this6._scrollToFocusOnResize)\r\n }\r\n }\r\n $row.attr(\"tabIndex\", tabIndex);\r\n if (rowIndex >= 0 && !preventScroll) {\r\n if (columnIndex < 0) {\r\n columnIndex = 0\r\n }\r\n rowIndex += dataController.getRowIndexOffset();\r\n columnIndex += columnsController.getColumnIndexOffset();\r\n this.getController(\"keyboardNavigation\").setFocusedCellPosition(rowIndex, columnIndex);\r\n if (this.getController(\"focus\").isAutoNavigateToFocusedRow()) {\r\n var dataSource = dataController.dataSource();\r\n var operationTypes = dataSource && dataSource.operationTypes();\r\n if (operationTypes && !operationTypes.paging && !dataController.isPagingByRendering()) {\r\n this.resizeCompleted.remove(this._scrollToFocusOnResize);\r\n this.resizeCompleted.add(this._scrollToFocusOnResize)\r\n }\r\n }\r\n }\r\n },\r\n _findRowElementForTabIndex: function() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var rowIndex = this._dataController.getRowIndexByKey(focusedRowKey);\r\n return (0, _renderer.default)(this.getRowElement(rowIndex >= 0 ? rowIndex : 0))\r\n },\r\n scrollToRowElement: function(key) {\r\n var rowIndex = this.getController(\"data\").getRowIndexByKey(key);\r\n var $row = (0, _renderer.default)(this.getRow(rowIndex));\r\n this.scrollToElementVertically($row)\r\n },\r\n scrollToElementVertically: function($row) {\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n var position = scrollable.getScrollElementPosition($row, \"vertical\");\r\n scrollable.scrollTo({\r\n top: position\r\n })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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\nexports.default = void 0;\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _uiGrid_core = require(\"./ui.grid_core.virtual_columns_core\");\r\nvar DEFAULT_COLUMN_WIDTH = 50;\r\nvar VirtualScrollingRowsViewExtender = {\r\n _resizeCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this._columnsController.resize()\r\n },\r\n _handleScroll: function(e) {\r\n var that = this;\r\n var scrollable = this.getScrollable();\r\n var left = e.scrollOffset.left;\r\n that.callBase.apply(that, arguments);\r\n if (that.option(\"rtlEnabled\") && scrollable) {\r\n left = scrollable.$content().width() - scrollable.$element().width() - left\r\n }\r\n that._columnsController.setScrollPosition(left)\r\n }\r\n};\r\nvar HeaderFooterViewExtender = {\r\n _renderCore: function() {\r\n var that = this;\r\n var scrollLeft = that._scrollLeft;\r\n that.callBase.apply(that, arguments);\r\n if (that._columnsController.isVirtualMode() && scrollLeft >= 0) {\r\n that._scrollLeft = 0;\r\n that.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n }\r\n};\r\nvar ColumnsControllerExtender = function() {\r\n var getWidths = function(columns) {\r\n return columns.map(function(column) {\r\n return column.visibleWidth || parseFloat(column.width) || DEFAULT_COLUMN_WIDTH\r\n })\r\n };\r\n var members = {\r\n init: function() {\r\n var that = this;\r\n that.callBase();\r\n that._beginPageIndex = 0;\r\n that._endPageIndex = 0;\r\n that._position = 0;\r\n that._virtualVisibleColumns = {}\r\n },\r\n resetColumnsCache: function() {\r\n this.callBase();\r\n this._virtualVisibleColumns = {}\r\n },\r\n getBeginPageIndex: function(position) {\r\n var visibleColumns = this.getVisibleColumns(void 0, true);\r\n var widths = getWidths(visibleColumns);\r\n var currentPosition = 0;\r\n for (var index = 0; index < widths.length; index++) {\r\n if (currentPosition >= position) {\r\n return Math.floor(index / this.getColumnPageSize())\r\n }\r\n currentPosition += widths[index]\r\n }\r\n return 0\r\n },\r\n getTotalWidth: function() {\r\n var width = this.option(\"width\");\r\n if (\"number\" === typeof width) {\r\n return width\r\n }\r\n return this.getController(\"resizing\")._lastWidth || this.component.$element().outerWidth()\r\n },\r\n getEndPageIndex: function(position) {\r\n var visibleColumns = this.getVisibleColumns(void 0, true);\r\n var widths = getWidths(visibleColumns);\r\n var currentPosition = 0;\r\n position += this.getTotalWidth();\r\n for (var index = 0; index < widths.length; index++) {\r\n if (currentPosition >= position) {\r\n return Math.ceil(index / this.getColumnPageSize())\r\n }\r\n currentPosition += widths[index]\r\n }\r\n return Math.ceil(widths.length / this.getColumnPageSize())\r\n },\r\n getColumnPageSize: function() {\r\n return this.option(\"scrolling.columnPageSize\")\r\n },\r\n _fireColumnsChanged: function() {\r\n var date = new Date;\r\n this.columnsChanged.fire({\r\n optionNames: {\r\n all: true,\r\n length: 1\r\n },\r\n changeTypes: {\r\n columns: true,\r\n length: 1\r\n }\r\n });\r\n this._renderTime = new Date - date\r\n },\r\n setScrollPosition: function(position) {\r\n var that = this;\r\n var renderingThreshold = that.option(\"scrolling.columnRenderingThreshold\");\r\n if (that._renderTime > renderingThreshold) {\r\n clearTimeout(that._changedTimeout);\r\n that._changedTimeout = setTimeout(function() {\r\n that._setScrollPositionCore(position)\r\n }, that.option(\"scrolling.timeout\"))\r\n } else {\r\n that._setScrollPositionCore(position)\r\n }\r\n },\r\n isVirtualMode: function() {\r\n return (0, _window.hasWindow)() && \"virtual\" === this.option(\"scrolling.columnRenderingMode\")\r\n },\r\n resize: function() {\r\n this._setScrollPositionCore(this._position)\r\n },\r\n _setScrollPositionCore: function(position) {\r\n var that = this;\r\n if (that.isVirtualMode()) {\r\n var beginPageIndex = that.getBeginPageIndex(position);\r\n var endPageIndex = that.getEndPageIndex(position);\r\n var needColumnsChanged = position < that._position ? that._beginPageIndex > beginPageIndex : that._endPageIndex < endPageIndex;\r\n that._position = position;\r\n if (needColumnsChanged) {\r\n that._beginPageIndex = beginPageIndex;\r\n that._endPageIndex = endPageIndex;\r\n that._fireColumnsChanged()\r\n }\r\n }\r\n },\r\n getFixedColumns: function(rowIndex, isBase) {\r\n var fixedColumns = this.callBase(rowIndex);\r\n if (this.isVirtualMode() && !isBase && fixedColumns.length) {\r\n var transparentColumnIndex = fixedColumns.map(function(c) {\r\n return c.command\r\n }).indexOf(\"transparent\");\r\n fixedColumns[transparentColumnIndex].colspan = this.getVisibleColumns().length - this.callBase().length + 1;\r\n return fixedColumns\r\n }\r\n return fixedColumns\r\n },\r\n getVisibleColumns: function(rowIndex, isBase) {\r\n if (isBase || !this.isVirtualMode()) {\r\n return this.callBase(rowIndex)\r\n }\r\n if (!this._beginPageIndex && !this._endPageIndex) {\r\n this._beginPageIndex = this.getBeginPageIndex(this._position);\r\n this._endPageIndex = this.getEndPageIndex(this._position)\r\n }\r\n var beginPageIndex = this._beginPageIndex;\r\n var endPageIndex = this._endPageIndex;\r\n var visibleColumnsHash = rowIndex + \"-\" + beginPageIndex + \"-\" + endPageIndex;\r\n if (this._virtualVisibleColumns[visibleColumnsHash]) {\r\n return this._virtualVisibleColumns[visibleColumnsHash]\r\n }\r\n var visibleColumns = this.callBase();\r\n var rowCount = this.getRowCount();\r\n var pageSize = this.getColumnPageSize();\r\n var startIndex = beginPageIndex * pageSize;\r\n var endIndex = endPageIndex * pageSize;\r\n var fixedColumns = this.getFixedColumns(void 0, true);\r\n var transparentColumnIndex = fixedColumns.map(function(c) {\r\n return c.command\r\n }).indexOf(\"transparent\");\r\n var beginFixedColumnCount = fixedColumns.length ? transparentColumnIndex : 0;\r\n var beginFixedColumns = visibleColumns.slice(0, beginFixedColumnCount);\r\n var beginColumns = visibleColumns.slice(beginFixedColumnCount, startIndex);\r\n var beginWidth = getWidths(beginColumns).reduce(function(a, b) {\r\n return a + b\r\n }, 0);\r\n if (!beginWidth) {\r\n startIndex = 0\r\n }\r\n var endFixedColumnCount = fixedColumns.length ? fixedColumns.length - transparentColumnIndex - 1 : 0;\r\n var endFixedColumns = visibleColumns.slice(visibleColumns.length - endFixedColumnCount);\r\n var endColumns = visibleColumns.slice(endIndex, visibleColumns.length - endFixedColumnCount);\r\n var endWidth = getWidths(endColumns).reduce(function(a, b) {\r\n return a + b\r\n }, 0);\r\n if (!endWidth) {\r\n endIndex = visibleColumns.length\r\n }\r\n if (rowCount > 1 && \"number\" === typeof rowIndex) {\r\n var columnsInfo = [];\r\n for (var i = 0; i < rowCount; i++) {\r\n columnsInfo.push(this.callBase(i))\r\n }\r\n beginFixedColumns = (0, _uiGrid_core.createColumnsInfo)(columnsInfo, 0, beginFixedColumns.length)[rowIndex] || [];\r\n endFixedColumns = (0, _uiGrid_core.createColumnsInfo)(columnsInfo, visibleColumns.length - endFixedColumns.length, visibleColumns.length)[rowIndex] || [];\r\n visibleColumns = (0, _uiGrid_core.createColumnsInfo)(columnsInfo, startIndex, endIndex)[rowIndex] || []\r\n } else {\r\n visibleColumns = visibleColumns.slice(startIndex, endIndex)\r\n }\r\n if (beginWidth) {\r\n visibleColumns.unshift({\r\n command: \"virtual\",\r\n width: beginWidth\r\n });\r\n visibleColumns = beginFixedColumns.concat(visibleColumns)\r\n }\r\n if (endWidth) {\r\n visibleColumns.push({\r\n command: \"virtual\",\r\n width: endWidth\r\n });\r\n visibleColumns = visibleColumns.concat(endFixedColumns)\r\n }\r\n this._virtualVisibleColumns[visibleColumnsHash] = visibleColumns;\r\n return visibleColumns\r\n },\r\n getColumnIndexOffset: function() {\r\n var offset = 0;\r\n if (this._beginPageIndex > 0) {\r\n var fixedColumns = this.getFixedColumns();\r\n var transparentColumnIndex = fixedColumns.map(function(c) {\r\n return c.command\r\n }).indexOf(\"transparent\");\r\n var leftFixedColumnCount = transparentColumnIndex >= 0 ? transparentColumnIndex : 0;\r\n offset = this._beginPageIndex * this.getColumnPageSize() - leftFixedColumnCount - 1\r\n }\r\n return offset > 0 ? offset : 0\r\n },\r\n dispose: function() {\r\n clearTimeout(this._changedTimeout);\r\n this.callBase.apply(this, arguments)\r\n }\r\n };\r\n return members\r\n}();\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n scrolling: {\r\n columnRenderingMode: \"standard\",\r\n columnPageSize: 5,\r\n columnRenderingThreshold: 300\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n columns: ColumnsControllerExtender\r\n },\r\n views: {\r\n columnHeadersView: HeaderFooterViewExtender,\r\n footerView: HeaderFooterViewExtender,\r\n rowsView: VirtualScrollingRowsViewExtender\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.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 _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.keyboard_navigation\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"keyboardNavigation\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/text_box/utils.scroll.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.prepareScrollData = exports.allowScroll = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _index = require(\"../../events/utils/index\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar allowScroll = function(container, delta, shiftKey) {\r\n var $container = (0, _renderer.default)(container);\r\n var scrollTopPos = shiftKey ? $container.scrollLeft() : $container.scrollTop();\r\n var prop = shiftKey ? \"Width\" : \"Height\";\r\n var scrollBottomPos = $container.prop(\"scroll\".concat(prop)) - $container.prop(\"client\".concat(prop)) - scrollTopPos;\r\n if (0 === scrollTopPos && 0 === scrollBottomPos) {\r\n return false\r\n }\r\n var isScrollFromTop = 0 === scrollTopPos && delta >= 0;\r\n var isScrollFromBottom = 0 === scrollBottomPos && delta <= 0;\r\n var isScrollFromMiddle = scrollTopPos > 0 && scrollBottomPos > 0;\r\n if (isScrollFromTop || isScrollFromBottom || isScrollFromMiddle) {\r\n return true\r\n }\r\n};\r\nexports.allowScroll = allowScroll;\r\nvar prepareScrollData = function(container, validateTarget) {\r\n var $container = (0, _renderer.default)(container);\r\n var isCorrectTarget = function(eventTarget) {\r\n return validateTarget ? (0, _renderer.default)(eventTarget).is(container) : true\r\n };\r\n return {\r\n validate: function(e) {\r\n if ((0, _index.isDxMouseWheelEvent)(e) && isCorrectTarget(e.target)) {\r\n if (allowScroll($container, -e.delta, e.shiftKey)) {\r\n e._needSkipEvent = true;\r\n return true\r\n }\r\n return false\r\n }\r\n }\r\n }\r\n};\r\nexports.prepareScrollData = prepareScrollData;\r\n","/**\r\n * DevExtreme (exporter.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.export = _export;\r\nObject.defineProperty(exports, \"fileSaver\", {\r\n enumerable: true,\r\n get: function() {\r\n return _file_saver.fileSaver\r\n }\r\n});\r\nexports.svg = exports.pdf = exports.image = exports.excel = void 0;\r\nvar _file_saver = require(\"./exporter/file_saver\");\r\nvar _excel_creator = require(\"./exporter/excel_creator\");\r\nvar _image_creator = require(\"./exporter/image_creator\");\r\nvar _svg_creator = require(\"./exporter/svg_creator\");\r\nvar _type = require(\"./core/utils/type\");\r\nvar _deferred = require(\"./core/utils/deferred\");\r\nvar _excel_format_converter = _interopRequireDefault(require(\"./exporter/excel_format_converter\"));\r\nvar _pdf_creator = require(\"./exporter/pdf_creator\");\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 _export(data, options, getData) {\r\n if (!data) {\r\n return (new _deferred.Deferred).resolve()\r\n }\r\n var exportingAction = options.exportingAction;\r\n var exportedAction = options.exportedAction;\r\n var fileSavingAction = options.fileSavingAction;\r\n var eventArgs = {\r\n fileName: options.fileName,\r\n format: options.format,\r\n cancel: false\r\n };\r\n (0, _type.isFunction)(exportingAction) && exportingAction(eventArgs);\r\n if (!eventArgs.cancel) {\r\n return getData(data, options).then(function(blob) {\r\n (0, _type.isFunction)(exportedAction) && exportedAction();\r\n if ((0, _type.isFunction)(fileSavingAction)) {\r\n eventArgs.data = blob;\r\n fileSavingAction(eventArgs)\r\n }\r\n if (!eventArgs.cancel) {\r\n _file_saver.fileSaver.saveAs(eventArgs.fileName, options.format, blob, options.proxyUrl, options.forceProxy)\r\n }\r\n })\r\n }\r\n return (new _deferred.Deferred).resolve()\r\n}\r\nvar excel = {\r\n creator: _excel_creator.ExcelCreator,\r\n getData: _excel_creator.getData,\r\n formatConverter: _excel_format_converter.default\r\n};\r\nexports.excel = excel;\r\nvar image = {\r\n creator: _image_creator.imageCreator,\r\n getData: _image_creator.getData,\r\n testFormats: _image_creator.testFormats\r\n};\r\nexports.image = image;\r\nvar pdf = {\r\n getData: _pdf_creator.getData\r\n};\r\nexports.pdf = pdf;\r\nvar svg = {\r\n creator: _svg_creator.svgCreator,\r\n getData: _svg_creator.getData\r\n};\r\nexports.svg = svg;\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","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _uiGrid_core = require(\"./ui.grid_core.columns_view\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiGrid_core2 = require(\"./ui.grid_core.accessibility\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_CLASS = \"headers\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar ROW_CLASS_SELECTOR = \".dx-row\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar CONTEXT_MENU_SORT_ASC_ICON = \"context-menu-sort-asc\";\r\nvar CONTEXT_MENU_SORT_DESC_ICON = \"context-menu-sort-desc\";\r\nvar CONTEXT_MENU_SORT_NONE_ICON = \"context-menu-sort-none\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar VISIBILITY_HIDDEN_CLASS = \"dx-visibility-hidden\";\r\nvar TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX = \"dx-text-content-alignment-\";\r\nvar SORT_INDICATOR_CLASS = \"dx-sort-indicator\";\r\nvar SORT_INDEX_INDICATOR_CLASS = \"dx-sort-index-indicator\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar HEADER_FILTER_INDICATOR_CLASS = \"dx-header-filter-indicator\";\r\nvar MULTI_ROW_HEADER_CLASS = \"dx-header-multi-row\";\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n showColumnHeaders: true,\r\n cellHintEnabled: true\r\n }\r\n },\r\n views: {\r\n columnHeadersView: _uiGrid_core.ColumnsView.inherit(function() {\r\n var createCellContent = function(that, $cell, options) {\r\n var $cellContent = (0, _renderer.default)(\"
\").addClass(that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n that.setAria(\"role\", \"presentation\", $cellContent);\r\n addCssClassesToCellContent(that, $cell, options.column, $cellContent);\r\n var showColumnLines = that.option(\"showColumnLines\");\r\n var contentAlignment = that.getController(\"columns\").getHeaderContentAlignment(options.column.alignment);\r\n return $cellContent[showColumnLines || \"right\" === contentAlignment ? \"appendTo\" : \"prependTo\"]($cell)\r\n };\r\n\r\n function addCssClassesToCellContent(that, $cell, column, $cellContent) {\r\n var $indicatorElements = that._getIndicatorElements($cell, true);\r\n var $visibleIndicatorElements = that._getIndicatorElements($cell);\r\n var indicatorCount = $indicatorElements && $indicatorElements.length;\r\n var columnAlignment = that._getColumnAlignment(column.alignment);\r\n var sortIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sort\"));\r\n var sortIndexIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sortIndex\"));\r\n var $sortIndicator = $visibleIndicatorElements.filter(sortIndicatorClassName);\r\n var $sortIndexIndicator = $visibleIndicatorElements.children().filter(sortIndexIndicatorClassName);\r\n $cellContent = $cellContent || $cell.children(\".\" + that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n $cellContent.toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + columnAlignment, indicatorCount > 0).toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + (\"left\" === columnAlignment ? \"right\" : \"left\"), indicatorCount > 0 && \"center\" === column.alignment).toggleClass(SORT_INDICATOR_CLASS, !!$sortIndicator.length).toggleClass(SORT_INDEX_INDICATOR_CLASS, !!$sortIndexIndicator.length).toggleClass(HEADER_FILTER_INDICATOR_CLASS, !!$visibleIndicatorElements.filter(\".\" + that._getIndicatorClassName(\"headerFilter\")).length)\r\n }\r\n return {\r\n _createTable: function() {\r\n var $table = this.callBase.apply(this, arguments);\r\n _events_engine.default.on($table, \"mousedown selectstart\", this.createAction(function(e) {\r\n var event = e.event;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n }));\r\n return $table\r\n },\r\n _isLegacyKeyboardNavigation: function() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n },\r\n _getDefaultTemplate: function(column) {\r\n var that = this;\r\n return function($container, options) {\r\n var $content = column.command ? $container : createCellContent(that, $container, options);\r\n var caption = \"expand\" !== column.command && column.caption;\r\n if (caption) {\r\n $content.text(caption)\r\n } else {\r\n if (column.command) {\r\n $container.html(\" \")\r\n }\r\n }\r\n }\r\n },\r\n _getHeaderTemplate: function(column) {\r\n return column.headerCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n },\r\n _processTemplate: function(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var column = options.column;\r\n var renderingTemplate = that.callBase(template);\r\n if (\"header\" === options.rowType && renderingTemplate && column.headerCellTemplate && !column.command) {\r\n resultTemplate = {\r\n render: function(options) {\r\n var $content = createCellContent(that, options.container, options.model);\r\n renderingTemplate.render((0, _extend.extend)({}, options, {\r\n container: $content\r\n }))\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n _handleDataChanged: function(e) {\r\n if (\"refresh\" !== e.changeType) {\r\n return\r\n }\r\n if (this._isGroupingChanged || this._requireReady) {\r\n this._isGroupingChanged = false;\r\n this.render()\r\n }\r\n },\r\n _renderCell: function($row, options) {\r\n var $cell = this.callBase($row, options);\r\n if (\"header\" === options.row.rowType) {\r\n $cell.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n if (options.column && !options.column.type) {\r\n $cell.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n }\r\n }\r\n return $cell\r\n },\r\n _setCellAriaAttributes: function($cell, cellOptions) {\r\n this.callBase($cell, cellOptions);\r\n if (\"header\" === cellOptions.rowType) {\r\n this.setAria(\"role\", \"columnheader\", $cell);\r\n if (cellOptions.column && !cellOptions.column.command && !cellOptions.column.isBand) {\r\n $cell.attr(\"id\", cellOptions.column.headerId);\r\n this.setAria(\"label\", _message.default.format(\"dxDataGrid-ariaColumn\") + \" \" + cellOptions.column.caption, $cell)\r\n }\r\n }\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row).toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n if (\"header\" === row.rowType) {\r\n $row.addClass(HEADER_ROW_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n (0, _uiGrid_core2.registerKeyboardAction)(\"columnHeaders\", this, $row, \"td\", this._handleActionKeyDown.bind(this))\r\n }\r\n }\r\n return $row\r\n },\r\n _handleActionKeyDown: function(args) {\r\n var event = args.event;\r\n var $target = (0, _renderer.default)(event.target);\r\n this._lastActionElement = event.target;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n var headerFilterController = this.getController(\"headerFilter\");\r\n var $column = $target.closest(\"td\");\r\n var columnIndex = this.getColumnIndexByElement($column);\r\n if (columnIndex >= 0) {\r\n headerFilterController.showHeaderFilterMenu(columnIndex, false)\r\n }\r\n } else {\r\n var $row = $target.closest(ROW_CLASS_SELECTOR);\r\n this._processHeaderAction(event, $row)\r\n }\r\n event.preventDefault()\r\n },\r\n _renderCore: function() {\r\n var that = this;\r\n var $container = that.element();\r\n if (that._tableElement && !that._dataController.isLoaded() && !that._hasRowElements) {\r\n return\r\n }\r\n $container.addClass(that.addWidgetPrefix(HEADERS_CLASS)).toggleClass(that.addWidgetPrefix(NOWRAP_CLASS), !that.option(\"wordWrapEnabled\")).empty();\r\n that.setAria(\"role\", \"presentation\", $container);\r\n that._updateContent(that._renderTable());\r\n if (that.getRowCount() > 1) {\r\n $container.addClass(MULTI_ROW_HEADER_CLASS)\r\n }\r\n that.callBase.apply(that, arguments)\r\n },\r\n _renderRows: function() {\r\n var that = this;\r\n if (that._dataController.isLoaded() || that._hasRowElements) {\r\n that.callBase.apply(that, arguments);\r\n that._hasRowElements = true\r\n }\r\n },\r\n _getRowVisibleColumns: function(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n },\r\n _renderRow: function($table, options) {\r\n options.columns = this._getRowVisibleColumns(options.row.rowIndex);\r\n this.callBase($table, options)\r\n },\r\n _createCell: function(options) {\r\n var column = options.column;\r\n var $cellElement = this.callBase.apply(this, arguments);\r\n column.rowspan > 1 && \"header\" === options.rowType && $cellElement.attr(\"rowSpan\", column.rowspan);\r\n return $cellElement\r\n },\r\n _getRows: function() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n if (this.option(\"showColumnHeaders\")) {\r\n for (var i = 0; i < rowCount; i++) {\r\n result.push({\r\n rowType: \"header\",\r\n rowIndex: i\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _getCellTemplate: function(options) {\r\n if (\"header\" === options.rowType) {\r\n return this._getHeaderTemplate(options.column)\r\n }\r\n },\r\n _columnOptionChanged: function(e) {\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n if (changeTypes.grouping) {\r\n this._isGroupingChanged = true;\r\n return\r\n }\r\n this.callBase(e);\r\n if (optionNames.width || optionNames.visible) {\r\n this.resizeCompleted.fire()\r\n }\r\n },\r\n _isElementVisible: function(elementOptions) {\r\n return elementOptions && elementOptions.visible\r\n },\r\n _alignCaptionByCenter: function($cell) {\r\n var $indicatorsContainer = this._getIndicatorContainer($cell, true);\r\n if ($indicatorsContainer && $indicatorsContainer.length) {\r\n $indicatorsContainer.filter(\".\" + VISIBILITY_HIDDEN_CLASS).remove();\r\n $indicatorsContainer = this._getIndicatorContainer($cell);\r\n $indicatorsContainer.clone().addClass(VISIBILITY_HIDDEN_CLASS).css(\"float\", \"\").insertBefore($cell.children(\".\" + this.addWidgetPrefix(CELL_CONTENT_CLASS)))\r\n }\r\n },\r\n _updateCell: function($cell, options) {\r\n if (\"header\" === options.rowType && \"center\" === options.column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n var $indicatorElement = this.callBase.apply(this, arguments);\r\n if (\"center\" === column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n addCssClassesToCellContent(this, $cell, column);\r\n return $indicatorElement\r\n },\r\n _getIndicatorContainer: function($cell, returnAll) {\r\n var $indicatorsContainer = this.callBase($cell);\r\n return returnAll ? $indicatorsContainer : $indicatorsContainer.filter(\":not(.\" + VISIBILITY_HIDDEN_CLASS + \")\")\r\n },\r\n _isSortableElement: function() {\r\n return true\r\n },\r\n getHeadersRowHeight: function() {\r\n var $tableElement = this.getTableElement();\r\n var $headerRows = $tableElement && $tableElement.find(\".\" + HEADER_ROW_CLASS);\r\n return $headerRows && $headerRows.toArray().reduce(function(sum, headerRow) {\r\n return sum + (0, _renderer.default)(headerRow).height()\r\n }, 0) || 0\r\n },\r\n getHeaderElement: function(index) {\r\n var columnElements = this.getColumnElements();\r\n return columnElements && columnElements.eq(index)\r\n },\r\n getColumnElements: function(index, bandColumnIndex) {\r\n var that = this;\r\n var $cellElement;\r\n var columnsController = that._columnsController;\r\n var rowCount = that.getRowCount();\r\n if (that.option(\"showColumnHeaders\")) {\r\n if (rowCount > 1 && (!(0, _type.isDefined)(index) || (0, _type.isDefined)(bandColumnIndex))) {\r\n var result = [];\r\n var visibleColumns = (0, _type.isDefined)(bandColumnIndex) ? columnsController.getChildrenByBandColumn(bandColumnIndex, true) : columnsController.getVisibleColumns();\r\n (0, _iterator.each)(visibleColumns, function(_, column) {\r\n var rowIndex = (0, _type.isDefined)(index) ? index : columnsController.getRowIndex(column.index);\r\n $cellElement = that._getCellElement(rowIndex, columnsController.getVisibleIndex(column.index, rowIndex));\r\n $cellElement && result.push($cellElement.get(0))\r\n });\r\n return (0, _renderer.default)(result)\r\n } else {\r\n if (!index || index < rowCount) {\r\n return that.getCellElements(index || 0)\r\n }\r\n }\r\n }\r\n },\r\n getColumnIndexByElement: function($cell) {\r\n var cellIndex = this.getCellIndex($cell);\r\n var $row = $cell.closest(\".dx-row\");\r\n var rowIndex = $row[0].rowIndex;\r\n var column = this.getColumns(rowIndex)[cellIndex];\r\n return column ? column.index : -1\r\n },\r\n getVisibleColumnIndex: function(columnIndex, rowIndex) {\r\n var column = this.getColumns()[columnIndex];\r\n return column ? this._columnsController.getVisibleIndex(column.index, rowIndex) : -1\r\n },\r\n getColumnWidths: function() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n return this._getWidths($columnElements)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n allowDragging: function(column, sourceLocation, draggingPanels) {\r\n var i;\r\n var draggableColumnCount = 0;\r\n var rowIndex = column && this._columnsController.getRowIndex(column.index);\r\n var columns = this.getColumns(0 === rowIndex ? 0 : null);\r\n var canHideColumn = (null === column || void 0 === column ? void 0 : column.allowHiding) && columns.length > 1;\r\n var allowDrag = function(column) {\r\n return column.allowReordering || column.allowGrouping || column.allowHiding\r\n };\r\n for (i = 0; i < columns.length; i++) {\r\n if (allowDrag(columns[i])) {\r\n draggableColumnCount++\r\n }\r\n }\r\n if (draggableColumnCount <= 1 && !canHideColumn) {\r\n return false\r\n } else {\r\n if (!draggingPanels) {\r\n return (this.option(\"allowColumnReordering\") || this._columnsController.isColumnOptionUsed(\"allowReordering\")) && column && column.allowReordering\r\n }\r\n }\r\n for (i = 0; i < draggingPanels.length; i++) {\r\n var draggingPanel = draggingPanels[i];\r\n if (draggingPanel && draggingPanel.allowDragging(column, sourceLocation)) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n getBoundingRect: function() {\r\n var that = this;\r\n var $columnElements = that.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n var offset = that.getTableElement().offset();\r\n return {\r\n top: offset.top\r\n }\r\n }\r\n return null\r\n },\r\n getName: function() {\r\n return \"headers\"\r\n },\r\n getColumnCount: function() {\r\n var $columnElements = this.getColumnElements();\r\n return $columnElements ? $columnElements.length : 0\r\n },\r\n isVisible: function() {\r\n return this.option(\"showColumnHeaders\")\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n switch (args.name) {\r\n case \"showColumnHeaders\":\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n that._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n getContextMenuItems: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n if (options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var sortingOptions = that.option(\"sorting\");\r\n if (sortingOptions && \"none\" !== sortingOptions.mode && column && column.allowSorting) {\r\n var onItemClick = function(params) {\r\n setTimeout(function() {\r\n that._columnsController.changeSortOrder(column.index, params.itemData.value)\r\n })\r\n };\r\n return [{\r\n text: sortingOptions.ascendingText,\r\n value: \"asc\",\r\n disabled: \"asc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_ASC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.descendingText,\r\n value: \"desc\",\r\n disabled: \"desc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_DESC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.clearText,\r\n value: \"none\",\r\n disabled: !column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_NONE_ICON,\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n },\r\n getRowCount: function() {\r\n return this._columnsController && this._columnsController.getRowCount()\r\n },\r\n setRowsOpacity: function(columnIndex, value, rowIndex) {\r\n var that = this;\r\n var i;\r\n var columnElements;\r\n var rowCount = that.getRowCount();\r\n var columns = that._columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n var setColumnOpacity = function(index, column) {\r\n if (column.ownerBand === columnID) {\r\n columnElements.eq(index).css({\r\n opacity: value\r\n });\r\n if (column.isBand) {\r\n that.setRowsOpacity(column.index, value, i + 1)\r\n }\r\n }\r\n };\r\n if ((0, _type.isDefined)(columnID)) {\r\n rowIndex = rowIndex || 0;\r\n for (i = rowIndex; i < rowCount; i++) {\r\n columnElements = that.getCellElements(i);\r\n (0, _iterator.each)(that.getColumns(i), setColumnOpacity)\r\n }\r\n }\r\n }\r\n }\r\n }())\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/filter_builder/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\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _tree_view = _interopRequireDefault(require(\"../tree_view\"));\r\nvar _popup = _interopRequireDefault(require(\"../popup\"));\r\nvar _utils = require(\"../overlay/utils\");\r\nvar _ui2 = _interopRequireDefault(require(\"../shared/ui.editor_factory_mixin\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _utils2 = require(\"./utils\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar FILTER_BUILDER_CLASS = \"dx-filterbuilder\";\r\nvar FILTER_BUILDER_GROUP_CLASS = FILTER_BUILDER_CLASS + \"-group\";\r\nvar FILTER_BUILDER_GROUP_ITEM_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-item\";\r\nvar FILTER_BUILDER_GROUP_CONTENT_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-content\";\r\nvar FILTER_BUILDER_GROUP_OPERATIONS_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-operations\";\r\nvar FILTER_BUILDER_GROUP_OPERATION_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-operation\";\r\nvar FILTER_BUILDER_ACTION_CLASS = FILTER_BUILDER_CLASS + \"-action\";\r\nvar FILTER_BUILDER_IMAGE_CLASS = FILTER_BUILDER_ACTION_CLASS + \"-icon\";\r\nvar FILTER_BUILDER_IMAGE_ADD_CLASS = \"dx-icon-plus\";\r\nvar FILTER_BUILDER_IMAGE_REMOVE_CLASS = \"dx-icon-remove\";\r\nvar FILTER_BUILDER_ITEM_TEXT_CLASS = FILTER_BUILDER_CLASS + \"-text\";\r\nvar FILTER_BUILDER_ITEM_FIELD_CLASS = FILTER_BUILDER_CLASS + \"-item-field\";\r\nvar FILTER_BUILDER_ITEM_OPERATION_CLASS = FILTER_BUILDER_CLASS + \"-item-operation\";\r\nvar FILTER_BUILDER_ITEM_VALUE_CLASS = FILTER_BUILDER_CLASS + \"-item-value\";\r\nvar FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS = FILTER_BUILDER_CLASS + \"-item-value-text\";\r\nvar FILTER_BUILDER_OVERLAY_CLASS = FILTER_BUILDER_CLASS + \"-overlay\";\r\nvar FILTER_BUILDER_FILTER_OPERATIONS_CLASS = FILTER_BUILDER_CLASS + \"-operations\";\r\nvar FILTER_BUILDER_FIELDS_CLASS = FILTER_BUILDER_CLASS + \"-fields\";\r\nvar FILTER_BUILDER_ADD_CONDITION_CLASS = FILTER_BUILDER_CLASS + \"-add-condition\";\r\nvar ACTIVE_CLASS = \"dx-state-active\";\r\nvar FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS = FILTER_BUILDER_CLASS + \"-menu-custom-operation\";\r\nvar SOURCE = \"filterBuilder\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar TAB_KEY = \"tab\";\r\nvar ENTER_KEY = \"enter\";\r\nvar ESCAPE_KEY = \"escape\";\r\nvar ACTIONS = [{\r\n name: \"onEditorPreparing\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n }\r\n}, {\r\n name: \"onEditorPrepared\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n }\r\n}, {\r\n name: \"onValueChanged\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }\r\n}];\r\nvar OPERATORS = {\r\n and: \"and\",\r\n or: \"or\",\r\n notAnd: \"!and\",\r\n notOr: \"!or\"\r\n};\r\nvar EditorFactory = _class.default.inherit(_ui2.default);\r\nvar FilterBuilder = _ui.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n onEditorPreparing: null,\r\n onEditorPrepared: null,\r\n onValueChanged: null,\r\n fields: [],\r\n defaultGroupOperation: \"and\",\r\n groupOperations: [\"and\", \"or\", \"notAnd\", \"notOr\"],\r\n maxGroupLevel: void 0,\r\n value: null,\r\n allowHierarchicalFields: false,\r\n groupOperationDescriptions: {\r\n and: _message.default.format(\"dxFilterBuilder-and\"),\r\n or: _message.default.format(\"dxFilterBuilder-or\"),\r\n notAnd: _message.default.format(\"dxFilterBuilder-notAnd\"),\r\n notOr: _message.default.format(\"dxFilterBuilder-notOr\")\r\n },\r\n customOperations: [],\r\n closePopupOnTargetScroll: true,\r\n filterOperationDescriptions: {\r\n between: _message.default.format(\"dxFilterBuilder-filterOperationBetween\"),\r\n equal: _message.default.format(\"dxFilterBuilder-filterOperationEquals\"),\r\n notEqual: _message.default.format(\"dxFilterBuilder-filterOperationNotEquals\"),\r\n lessThan: _message.default.format(\"dxFilterBuilder-filterOperationLess\"),\r\n lessThanOrEqual: _message.default.format(\"dxFilterBuilder-filterOperationLessOrEquals\"),\r\n greaterThan: _message.default.format(\"dxFilterBuilder-filterOperationGreater\"),\r\n greaterThanOrEqual: _message.default.format(\"dxFilterBuilder-filterOperationGreaterOrEquals\"),\r\n startsWith: _message.default.format(\"dxFilterBuilder-filterOperationStartsWith\"),\r\n contains: _message.default.format(\"dxFilterBuilder-filterOperationContains\"),\r\n notContains: _message.default.format(\"dxFilterBuilder-filterOperationNotContains\"),\r\n endsWith: _message.default.format(\"dxFilterBuilder-filterOperationEndsWith\"),\r\n isBlank: _message.default.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: _message.default.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n }\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"closePopupOnTargetScroll\":\r\n break;\r\n case \"onEditorPreparing\":\r\n case \"onEditorPrepared\":\r\n case \"onValueChanged\":\r\n this._initActions();\r\n break;\r\n case \"customOperations\":\r\n this._initCustomOperations();\r\n this._invalidate();\r\n break;\r\n case \"fields\":\r\n case \"defaultGroupOperation\":\r\n case \"maxGroupLevel\":\r\n case \"groupOperations\":\r\n case \"allowHierarchicalFields\":\r\n case \"groupOperationDescriptions\":\r\n case \"filterOperationDescriptions\":\r\n this._invalidate();\r\n break;\r\n case \"value\":\r\n if (args.value !== args.previousValue) {\r\n var disableInvalidateForValue = this._disableInvalidateForValue;\r\n if (!disableInvalidateForValue) {\r\n this._initModel();\r\n this._invalidate()\r\n }\r\n this._disableInvalidateForValue = false;\r\n this.executeAction(\"onValueChanged\", {\r\n value: args.value,\r\n previousValue: args.previousValue\r\n });\r\n this._disableInvalidateForValue = disableInvalidateForValue\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getFilterExpression: function() {\r\n var fields = this._getNormalizedFields();\r\n var value = (0, _extend.extend)(true, [], this._model);\r\n return (0, _utils2.getFilterExpression)((0, _utils2.getNormalizedFilter)(value), fields, this._customOperations, SOURCE)\r\n },\r\n _getNormalizedFields: function() {\r\n return (0, _utils2.getNormalizedFields)(this.option(\"fields\"))\r\n },\r\n _updateFilter: function() {\r\n this._disableInvalidateForValue = true;\r\n var value = (0, _extend.extend)(true, [], this._model);\r\n var normalizedValue = (0, _utils2.getNormalizedFilter)(value);\r\n var oldValue = (0, _utils2.getNormalizedFilter)(this._getModel(this.option(\"value\")));\r\n if (JSON.stringify(oldValue) !== JSON.stringify(normalizedValue)) {\r\n this.option(\"value\", normalizedValue)\r\n }\r\n this._disableInvalidateForValue = false;\r\n this._fireContentReadyAction()\r\n },\r\n _init: function() {\r\n this._initCustomOperations();\r\n this._initModel();\r\n this._initEditorFactory();\r\n this._initActions();\r\n this.callBase()\r\n },\r\n _initEditorFactory: function() {\r\n this._editorFactory = new EditorFactory\r\n },\r\n _initCustomOperations: function() {\r\n this._customOperations = (0, _utils2.getMergedOperations)(this.option(\"customOperations\"), this.option(\"filterOperationDescriptions.between\"), this)\r\n },\r\n _getModel: function(value) {\r\n return (0, _utils2.convertToInnerStructure)(value, this._customOperations)\r\n },\r\n _initModel: function() {\r\n this._model = this._getModel(this.option(\"value\"))\r\n },\r\n _initActions: function() {\r\n var that = this;\r\n that._actions = {};\r\n ACTIONS.forEach(function(action) {\r\n var actionConfig = (0, _extend.extend)({}, action.config);\r\n that._actions[action.name] = that._createActionByOption(action.name, actionConfig)\r\n })\r\n },\r\n executeAction: function(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(FILTER_BUILDER_CLASS);\r\n this.callBase();\r\n this._createGroupElementByCriteria(this._model).appendTo(this.$element())\r\n },\r\n _createConditionElement: function(condition, parent) {\r\n return (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_GROUP_CLASS).append(this._createConditionItem(condition, parent))\r\n },\r\n _createGroupElementByCriteria: function(criteria, parent) {\r\n var groupLevel = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;\r\n var $group = this._createGroupElement(criteria, parent, groupLevel);\r\n var $groupContent = $group.find(\".\" + FILTER_BUILDER_GROUP_CONTENT_CLASS);\r\n var groupCriteria = (0, _utils2.getGroupCriteria)(criteria);\r\n for (var i = 0; i < groupCriteria.length; i++) {\r\n var innerCriteria = groupCriteria[i];\r\n if ((0, _utils2.isGroup)(innerCriteria)) {\r\n this._createGroupElementByCriteria(innerCriteria, criteria, groupLevel + 1).appendTo($groupContent)\r\n } else {\r\n if ((0, _utils2.isCondition)(innerCriteria)) {\r\n this._createConditionElement(innerCriteria, criteria).appendTo($groupContent)\r\n }\r\n }\r\n }\r\n return $group\r\n },\r\n _createGroupElement: function(criteria, parent, groupLevel) {\r\n var _this = this;\r\n var $groupItem = (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_GROUP_ITEM_CLASS);\r\n var $groupContent = (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_GROUP_CONTENT_CLASS);\r\n var $group = (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_GROUP_CLASS).append($groupItem).append($groupContent);\r\n if (null != parent) {\r\n this._createRemoveButton(function() {\r\n (0, _utils2.removeItem)(parent, criteria);\r\n $group.remove();\r\n _this._updateFilter()\r\n }).appendTo($groupItem)\r\n }\r\n this._createGroupOperationButton(criteria).appendTo($groupItem);\r\n this._createAddButton(function() {\r\n var newGroup = (0, _utils2.createEmptyGroup)(_this.option(\"defaultGroupOperation\"));\r\n (0, _utils2.addItem)(newGroup, criteria);\r\n _this._createGroupElement(newGroup, criteria, groupLevel + 1).appendTo($groupContent);\r\n _this._updateFilter()\r\n }, function() {\r\n var field = _this.option(\"fields\")[0];\r\n var newCondition = (0, _utils2.createCondition)(field, _this._customOperations);\r\n (0, _utils2.addItem)(newCondition, criteria);\r\n _this._createConditionElement(newCondition, criteria).appendTo($groupContent);\r\n _this._updateFilter()\r\n }, groupLevel).appendTo($groupItem);\r\n return $group\r\n },\r\n _createButton: function(caption) {\r\n return (0, _renderer.default)(\"
\").text(caption)\r\n },\r\n _createGroupOperationButton: function(criteria) {\r\n var _this2 = this;\r\n var groupOperations = this._getGroupOperations(criteria);\r\n var groupMenuItem = (0, _utils2.getGroupMenuItem)(criteria, groupOperations);\r\n var caption = groupMenuItem.text;\r\n var $operationButton = groupOperations && groupOperations.length < 2 ? this._createButton(caption).addClass(DISABLED_STATE_CLASS) : this._createButtonWithMenu({\r\n caption: caption,\r\n menu: {\r\n items: groupOperations,\r\n displayExpr: \"text\",\r\n keyExpr: \"value\",\r\n onItemClick: function(e) {\r\n if (groupMenuItem !== e.itemData) {\r\n (0, _utils2.setGroupValue)(criteria, e.itemData.value);\r\n $operationButton.html(e.itemData.text);\r\n groupMenuItem = e.itemData;\r\n _this2._updateFilter()\r\n }\r\n },\r\n onContentReady: function(e) {\r\n e.component.selectItem(groupMenuItem)\r\n },\r\n cssClass: FILTER_BUILDER_GROUP_OPERATIONS_CLASS\r\n }\r\n });\r\n return $operationButton.addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_GROUP_OPERATION_CLASS).attr(\"tabindex\", 0)\r\n },\r\n _createButtonWithMenu: function(options) {\r\n var that = this;\r\n var removeMenu = function() {\r\n that.$element().find(\".\" + ACTIVE_CLASS).removeClass(ACTIVE_CLASS);\r\n that.$element().find(\".dx-overlay .dx-treeview\").remove();\r\n that.$element().find(\".dx-overlay\").remove()\r\n };\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var menuOnItemClickWrapper = function(handler) {\r\n return function(e) {\r\n handler(e);\r\n if (\"dxclick\" === e.event.type) {\r\n removeMenu()\r\n }\r\n }\r\n };\r\n var position = rtlEnabled ? \"right\" : \"left\";\r\n var $button = this._createButton(options.caption);\r\n (0, _extend.extend)(options.menu, {\r\n focusStateEnabled: true,\r\n selectionMode: \"single\",\r\n onItemClick: menuOnItemClickWrapper(options.menu.onItemClick),\r\n onHiding: function(e) {\r\n $button.removeClass(ACTIVE_CLASS)\r\n },\r\n position: {\r\n my: position + \" top\",\r\n at: position + \" bottom\",\r\n offset: \"0 1\",\r\n of: $button,\r\n collision: \"flip\"\r\n },\r\n animation: null,\r\n onHidden: function() {\r\n removeMenu()\r\n },\r\n cssClass: FILTER_BUILDER_OVERLAY_CLASS + \" \" + options.menu.cssClass,\r\n rtlEnabled: rtlEnabled\r\n });\r\n options.popup = {\r\n onShown: function(info) {\r\n var treeViewElement = (0, _renderer.default)(info.component.content()).find(\".dx-treeview\");\r\n var treeView = treeViewElement.dxTreeView(\"instance\");\r\n _events_engine.default.on(treeViewElement, \"keyup keydown\", function(e) {\r\n var keyName = (0, _index.normalizeKeyName)(e);\r\n if (\"keydown\" === e.type && keyName === TAB_KEY || \"keyup\" === e.type && (keyName === ESCAPE_KEY || keyName === ENTER_KEY)) {\r\n info.component.hide();\r\n _events_engine.default.trigger(options.menu.position.of, \"focus\")\r\n }\r\n });\r\n treeView.focus();\r\n treeView.option(\"focusedElement\", null)\r\n }\r\n };\r\n this._subscribeOnClickAndEnterKey($button, function() {\r\n removeMenu();\r\n that._createPopupWithTreeView(options, that.$element());\r\n $button.addClass(ACTIVE_CLASS)\r\n });\r\n return $button\r\n },\r\n _hasValueButton: function(condition) {\r\n var customOperation = (0, _utils2.getCustomOperation)(this._customOperations, condition[1]);\r\n return customOperation ? false !== customOperation.hasValue : null !== condition[2]\r\n },\r\n _createOperationButtonWithMenu: function(condition, field) {\r\n var _this3 = this;\r\n var that = this;\r\n var availableOperations = (0, _utils2.getAvailableOperations)(field, this.option(\"filterOperationDescriptions\"), this._customOperations);\r\n var currentOperation = (0, _utils2.getOperationFromAvailable)((0, _utils2.getOperationValue)(condition), availableOperations);\r\n var $operationButton = this._createButtonWithMenu({\r\n caption: currentOperation.text,\r\n menu: {\r\n items: availableOperations,\r\n displayExpr: \"text\",\r\n onItemRendered: function(e) {\r\n e.itemData.isCustom && (0, _renderer.default)(e.itemElement).addClass(FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS)\r\n },\r\n onContentReady: function(e) {\r\n e.component.selectItem(currentOperation)\r\n },\r\n onItemClick: function(e) {\r\n if (currentOperation !== e.itemData) {\r\n currentOperation = e.itemData;\r\n (0, _utils2.updateConditionByOperation)(condition, currentOperation.value, that._customOperations);\r\n var $valueButton = $operationButton.siblings().filter(\".\" + FILTER_BUILDER_ITEM_VALUE_CLASS);\r\n if (that._hasValueButton(condition)) {\r\n if (0 !== $valueButton.length) {\r\n $valueButton.remove()\r\n }\r\n that._createValueButton(condition, field).appendTo($operationButton.parent())\r\n } else {\r\n $valueButton.remove()\r\n }\r\n $operationButton.html(currentOperation.text);\r\n _this3._updateFilter()\r\n }\r\n },\r\n cssClass: FILTER_BUILDER_FILTER_OPERATIONS_CLASS\r\n }\r\n }).addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_OPERATION_CLASS).attr(\"tabindex\", 0);\r\n return $operationButton\r\n },\r\n _createOperationAndValueButtons: function(condition, field, $item) {\r\n this._createOperationButtonWithMenu(condition, field).appendTo($item);\r\n if (this._hasValueButton(condition)) {\r\n this._createValueButton(condition, field).appendTo($item)\r\n }\r\n },\r\n _createFieldButtonWithMenu: function(fields, condition, field) {\r\n var _this4 = this;\r\n var that = this;\r\n var allowHierarchicalFields = this.option(\"allowHierarchicalFields\");\r\n var items = (0, _utils2.getItems)(fields, allowHierarchicalFields);\r\n var item = (0, _utils2.getField)(field.name || field.dataField, items);\r\n var getFullCaption = function(item, items) {\r\n return allowHierarchicalFields ? (0, _utils2.getCaptionWithParents)(item, items) : item.caption\r\n };\r\n var $fieldButton = this._createButtonWithMenu({\r\n caption: getFullCaption(item, items),\r\n menu: {\r\n items: items,\r\n dataStructure: \"plain\",\r\n keyExpr: \"id\",\r\n parentId: \"parentId\",\r\n displayExpr: \"caption\",\r\n onItemClick: function(e) {\r\n if (item !== e.itemData) {\r\n item = e.itemData;\r\n condition[0] = item.name || item.dataField;\r\n condition[2] = \"object\" === item.dataType ? null : \"\";\r\n (0, _utils2.updateConditionByOperation)(condition, (0, _utils2.getDefaultOperation)(item), that._customOperations);\r\n $fieldButton.siblings().filter(\".\" + FILTER_BUILDER_ITEM_TEXT_CLASS).remove();\r\n that._createOperationAndValueButtons(condition, item, $fieldButton.parent());\r\n var caption = getFullCaption(item, e.component.option(\"items\"));\r\n $fieldButton.html(caption);\r\n _this4._updateFilter()\r\n }\r\n },\r\n onContentReady: function(e) {\r\n e.component.selectItem(item)\r\n },\r\n cssClass: FILTER_BUILDER_FIELDS_CLASS\r\n }\r\n }).addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_FIELD_CLASS).attr(\"tabindex\", 0);\r\n return $fieldButton\r\n },\r\n _createConditionItem: function(condition, parent) {\r\n var _this5 = this;\r\n var $item = (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_GROUP_ITEM_CLASS);\r\n var fields = this._getNormalizedFields();\r\n var field = (0, _utils2.getField)(condition[0], fields);\r\n this._createRemoveButton(function() {\r\n (0, _utils2.removeItem)(parent, condition);\r\n var isSingleChild = 1 === $item.parent().children().length;\r\n if (isSingleChild) {\r\n $item.parent().remove()\r\n } else {\r\n $item.remove()\r\n }\r\n _this5._updateFilter()\r\n }).appendTo($item);\r\n this._createFieldButtonWithMenu(fields, condition, field).appendTo($item);\r\n this._createOperationAndValueButtons(condition, field, $item);\r\n return $item\r\n },\r\n _getGroupOperations: function(criteria) {\r\n var groupOperations = this.option(\"groupOperations\");\r\n var groupOperationDescriptions = this.option(\"groupOperationDescriptions\");\r\n if (!groupOperations || !groupOperations.length) {\r\n groupOperations = [(0, _utils2.getGroupValue)(criteria).replace(\"!\", \"not\")]\r\n }\r\n return groupOperations.map(function(operation) {\r\n return {\r\n text: groupOperationDescriptions[operation],\r\n value: OPERATORS[operation]\r\n }\r\n })\r\n },\r\n _createRemoveButton: function(handler) {\r\n var $removeButton = (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_IMAGE_CLASS).addClass(FILTER_BUILDER_IMAGE_REMOVE_CLASS).addClass(FILTER_BUILDER_ACTION_CLASS).attr(\"tabindex\", 0);\r\n this._subscribeOnClickAndEnterKey($removeButton, handler);\r\n return $removeButton\r\n },\r\n _createAddButton: function(addGroupHandler, addConditionHandler, groupLevel) {\r\n var $button;\r\n var maxGroupLevel = this.option(\"maxGroupLevel\");\r\n if ((0, _type.isDefined)(maxGroupLevel) && groupLevel >= maxGroupLevel) {\r\n $button = this._createButton();\r\n this._subscribeOnClickAndEnterKey($button, addConditionHandler)\r\n } else {\r\n $button = this._createButtonWithMenu({\r\n menu: {\r\n items: [{\r\n caption: _message.default.format(\"dxFilterBuilder-addCondition\"),\r\n click: addConditionHandler\r\n }, {\r\n caption: _message.default.format(\"dxFilterBuilder-addGroup\"),\r\n click: addGroupHandler\r\n }],\r\n displayExpr: \"caption\",\r\n onItemClick: function(e) {\r\n e.itemData.click()\r\n },\r\n cssClass: FILTER_BUILDER_ADD_CONDITION_CLASS\r\n }\r\n })\r\n }\r\n return $button.addClass(FILTER_BUILDER_IMAGE_CLASS).addClass(FILTER_BUILDER_IMAGE_ADD_CLASS).addClass(FILTER_BUILDER_ACTION_CLASS).attr(\"tabindex\", 0)\r\n },\r\n _createValueText: function(item, field, $container) {\r\n var that = this;\r\n var $text = (0, _renderer.default)(\"
\").html(\" \").addClass(FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS).attr(\"tabindex\", 0).appendTo($container);\r\n var value = item[2];\r\n var customOperation = (0, _utils2.getCustomOperation)(that._customOperations, item[1]);\r\n if (!customOperation && field.lookup) {\r\n (0, _utils2.getCurrentLookupValueText)(field, value, function(result) {\r\n (0, _utils2.renderValueText)($text, result)\r\n })\r\n } else {\r\n (0, _deferred.when)((0, _utils2.getCurrentValueText)(field, value, customOperation)).done(function(result) {\r\n (0, _utils2.renderValueText)($text, result, customOperation)\r\n })\r\n }\r\n that._subscribeOnClickAndEnterKey($text, function(e) {\r\n if (\"keyup\" === e.type) {\r\n e.stopPropagation()\r\n }\r\n that._createValueEditorWithEvents(item, field, $container)\r\n });\r\n return $text\r\n },\r\n _updateConditionValue: function(item, value, callback) {\r\n var areValuesDifferent = item[2] !== value;\r\n if (areValuesDifferent) {\r\n item[2] = value\r\n }\r\n callback();\r\n this._updateFilter()\r\n },\r\n _addDocumentKeyUp: function($editor, handler) {\r\n var isComposing = false;\r\n var hasCompositionJustEnded = false;\r\n var document = _dom_adapter.default.getDocument();\r\n var documentKeyUpHandler = function(e) {\r\n if (isComposing || hasCompositionJustEnded) {\r\n hasCompositionJustEnded = false;\r\n return\r\n }\r\n handler(e)\r\n };\r\n _events_engine.default.on(document, \"keyup\", documentKeyUpHandler);\r\n var input = $editor.find(\"input\");\r\n _events_engine.default.on(input, \"compositionstart\", function() {\r\n isComposing = true\r\n });\r\n _events_engine.default.on(input, \"compositionend\", function() {\r\n isComposing = false;\r\n hasCompositionJustEnded = true\r\n });\r\n _events_engine.default.on(input, \"keydown\", function(event) {\r\n if (229 !== event.which) {\r\n hasCompositionJustEnded = false\r\n }\r\n });\r\n this._documentKeyUpHandler = documentKeyUpHandler\r\n },\r\n _addDocumentClick: function($editor, closeEditorFunc) {\r\n var _this6 = this;\r\n var document = _dom_adapter.default.getDocument();\r\n var documentClickHandler = function(e) {\r\n if (!_this6._isFocusOnEditorParts($editor, e.target)) {\r\n _events_engine.default.trigger($editor.find(\"input\"), \"change\");\r\n closeEditorFunc()\r\n }\r\n };\r\n _events_engine.default.on(document, \"dxpointerdown\", documentClickHandler);\r\n this._documentClickHandler = documentClickHandler\r\n },\r\n _isFocusOnEditorParts: function($editor, target) {\r\n var activeElement = target || _dom_adapter.default.getActiveElement();\r\n return (0, _renderer.default)(activeElement).closest($editor.children()).length || (0, _renderer.default)(activeElement).closest(\".dx-dropdowneditor-overlay\").length\r\n },\r\n _removeEvents: function() {\r\n var document = _dom_adapter.default.getDocument();\r\n (0, _type.isDefined)(this._documentKeyUpHandler) && _events_engine.default.off(document, \"keyup\", this._documentKeyUpHandler);\r\n (0, _type.isDefined)(this._documentClickHandler) && _events_engine.default.off(document, \"dxpointerdown\", this._documentClickHandler)\r\n },\r\n _dispose: function() {\r\n this._removeEvents();\r\n this.callBase()\r\n },\r\n _createValueEditorWithEvents: function(item, field, $container) {\r\n var _this7 = this;\r\n var value = item[2];\r\n var createValueText = function() {\r\n $container.empty();\r\n _this7._removeEvents();\r\n return _this7._createValueText(item, field, $container)\r\n };\r\n var closeEditor = function() {\r\n _this7._updateConditionValue(item, value, function() {\r\n createValueText()\r\n })\r\n };\r\n var options = {\r\n value: \"\" === value ? null : value,\r\n filterOperation: (0, _utils2.getOperationValue)(item),\r\n setValue: function(data) {\r\n value = null === data ? \"\" : data\r\n },\r\n closeEditor: closeEditor,\r\n text: $container.text()\r\n };\r\n $container.empty();\r\n var $editor = this._createValueEditor($container, field, options);\r\n _events_engine.default.trigger($editor.find(\"input\").not(\":hidden\").eq(0), \"focus\");\r\n this._removeEvents();\r\n this._addDocumentClick($editor, closeEditor);\r\n this._addDocumentKeyUp($editor, function(e) {\r\n var keyName = (0, _index.normalizeKeyName)(e);\r\n if (keyName === TAB_KEY) {\r\n if (_this7._isFocusOnEditorParts($editor)) {\r\n return\r\n }\r\n _this7._updateConditionValue(item, value, function() {\r\n createValueText();\r\n if (e.shiftKey) {\r\n _events_engine.default.trigger($container.prev(), \"focus\")\r\n }\r\n })\r\n }\r\n if (keyName === ESCAPE_KEY) {\r\n _events_engine.default.trigger(createValueText(), \"focus\")\r\n }\r\n if (keyName === ENTER_KEY) {\r\n _this7._updateConditionValue(item, value, function() {\r\n _events_engine.default.trigger(createValueText(), \"focus\")\r\n })\r\n }\r\n });\r\n this._fireContentReadyAction()\r\n },\r\n _createValueButton: function(item, field) {\r\n var $valueButton = (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_VALUE_CLASS);\r\n this._createValueText(item, field, $valueButton);\r\n return $valueButton\r\n },\r\n _createValueEditor: function($container, field, options) {\r\n var $editor = (0, _renderer.default)(\"
\").attr(\"tabindex\", 0).appendTo($container);\r\n var customOperation = (0, _utils2.getCustomOperation)(this._customOperations, options.filterOperation);\r\n var editorTemplate = customOperation && customOperation.editorTemplate ? customOperation.editorTemplate : field.editorTemplate;\r\n if (editorTemplate) {\r\n var template = this._getTemplate(editorTemplate);\r\n template.render({\r\n model: (0, _extend.extend)({\r\n field: field\r\n }, options),\r\n container: $editor\r\n })\r\n } else {\r\n this._editorFactory.createEditor.call(this, $editor, (0, _extend.extend)({}, field, options, {\r\n parentType: SOURCE\r\n }))\r\n }\r\n return $editor\r\n },\r\n _createPopupWithTreeView: function(options, $container) {\r\n var that = this;\r\n var $popup = (0, _renderer.default)(\"
\").addClass(options.menu.cssClass).appendTo($container);\r\n this._createComponent($popup, _popup.default, {\r\n onHiding: options.menu.onHiding,\r\n onHidden: options.menu.onHidden,\r\n rtlEnabled: options.menu.rtlEnabled,\r\n position: options.menu.position,\r\n animation: options.menu.animation,\r\n contentTemplate: function(contentElement) {\r\n var $menuContainer = (0, _renderer.default)(\"
\").appendTo(contentElement);\r\n that._createComponent($menuContainer, _tree_view.default, options.menu);\r\n this.repaint()\r\n },\r\n maxHeight: function() {\r\n return (0, _utils.getElementMaxHeightByWindow)(options.menu.position.of)\r\n },\r\n visible: true,\r\n focusStateEnabled: false,\r\n closeOnTargetScroll: this.option(\"closePopupOnTargetScroll\"),\r\n closeOnOutsideClick: true,\r\n onShown: options.popup.onShown,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n showTitle: false\r\n })\r\n },\r\n _subscribeOnClickAndEnterKey: function($button, handler) {\r\n _events_engine.default.on($button, \"dxclick\", handler);\r\n _events_engine.default.on($button, \"keyup\", function(e) {\r\n if ((0, _index.normalizeKeyName)(e) === ENTER_KEY) {\r\n handler(e)\r\n }\r\n })\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxFilterBuilder\", FilterBuilder);\r\nvar _default = FilterBuilder;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/*!\n * devextreme-vue\n * Version: 20.2.7\n * Build date: Thu Apr 22 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxSearchEditorOptions = exports.DxOptions = exports.DxItem = exports.DxButton = exports.DxTreeView = void 0;\nvar tree_view_1 = require(\"devextreme/ui/tree_view\");\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxTreeView = index_1.createComponent({\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n animationEnabled: Boolean,\n createChildren: Function,\n dataSource: [Array, Object, String],\n dataStructure: String,\n disabled: Boolean,\n disabledExpr: [Function, String],\n displayExpr: [Function, String],\n elementAttr: Object,\n expandAllEnabled: Boolean,\n expandedExpr: [Function, String],\n expandEvent: String,\n expandNodesRecursive: Boolean,\n focusStateEnabled: Boolean,\n hasItemsExpr: [Function, String],\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n itemHoldTimeout: Number,\n items: Array,\n itemsExpr: [Function, String],\n itemTemplate: {},\n keyExpr: [Function, String],\n noDataText: String,\n onContentReady: Function,\n onDisposing: Function,\n onInitialized: Function,\n onItemClick: Function,\n onItemCollapsed: Function,\n onItemContextMenu: Function,\n onItemExpanded: Function,\n onItemHold: Function,\n onItemRendered: Function,\n onItemSelectionChanged: Function,\n onOptionChanged: Function,\n onSelectAllValueChanged: Function,\n onSelectionChanged: Function,\n parentIdExpr: [Function, String],\n rootValue: {},\n rtlEnabled: Boolean,\n scrollDirection: String,\n searchEditorOptions: Object,\n searchEnabled: Boolean,\n searchExpr: [Array, Function, String],\n searchMode: String,\n searchTimeout: Number,\n searchValue: String,\n selectAllText: String,\n selectByClick: Boolean,\n selectedExpr: [Function, String],\n selectionMode: String,\n selectNodesRecursive: Boolean,\n showCheckBoxesMode: String,\n tabIndex: Number,\n virtualModeEnabled: Boolean,\n visible: Boolean,\n width: [Function, Number, String]\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:animationEnabled\": null,\n \"update:createChildren\": null,\n \"update:dataSource\": null,\n \"update:dataStructure\": null,\n \"update:disabled\": null,\n \"update:disabledExpr\": null,\n \"update:displayExpr\": null,\n \"update:elementAttr\": null,\n \"update:expandAllEnabled\": null,\n \"update:expandedExpr\": null,\n \"update:expandEvent\": null,\n \"update:expandNodesRecursive\": null,\n \"update:focusStateEnabled\": null,\n \"update:hasItemsExpr\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:itemHoldTimeout\": null,\n \"update:items\": null,\n \"update:itemsExpr\": null,\n \"update:itemTemplate\": null,\n \"update:keyExpr\": null,\n \"update:noDataText\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onInitialized\": null,\n \"update:onItemClick\": null,\n \"update:onItemCollapsed\": null,\n \"update:onItemContextMenu\": null,\n \"update:onItemExpanded\": null,\n \"update:onItemHold\": null,\n \"update:onItemRendered\": null,\n \"update:onItemSelectionChanged\": null,\n \"update:onOptionChanged\": null,\n \"update:onSelectAllValueChanged\": null,\n \"update:onSelectionChanged\": null,\n \"update:parentIdExpr\": null,\n \"update:rootValue\": null,\n \"update:rtlEnabled\": null,\n \"update:scrollDirection\": null,\n \"update:searchEditorOptions\": null,\n \"update:searchEnabled\": null,\n \"update:searchExpr\": null,\n \"update:searchMode\": null,\n \"update:searchTimeout\": null,\n \"update:searchValue\": null,\n \"update:selectAllText\": null,\n \"update:selectByClick\": null,\n \"update:selectedExpr\": null,\n \"update:selectionMode\": null,\n \"update:selectNodesRecursive\": null,\n \"update:showCheckBoxesMode\": null,\n \"update:tabIndex\": null,\n \"update:virtualModeEnabled\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = tree_view_1.default;\n this.$_expectedChildren = {\n item: { isCollectionItem: true, optionName: \"items\" },\n searchEditorOptions: { isCollectionItem: false, optionName: \"searchEditorOptions\" }\n };\n }\n});\nexports.DxTreeView = DxTreeView;\nvar DxButton = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:location\": null,\n \"update:name\": null,\n \"update:options\": null,\n },\n props: {\n location: String,\n name: String,\n options: Object\n }\n});\nexports.DxButton = DxButton;\nDxButton.$_optionName = \"buttons\";\nDxButton.$_isCollectionItem = true;\nDxButton.$_expectedChildren = {\n options: { isCollectionItem: false, optionName: \"options\" }\n};\nvar DxItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:expanded\": null,\n \"update:hasItems\": null,\n \"update:html\": null,\n \"update:icon\": null,\n \"update:items\": null,\n \"update:parentId\": null,\n \"update:selected\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n disabled: Boolean,\n expanded: Boolean,\n hasItems: Boolean,\n html: String,\n icon: String,\n items: Array,\n parentId: [Number, String],\n selected: Boolean,\n template: {},\n text: String,\n visible: Boolean\n }\n});\nexports.DxItem = DxItem;\nDxItem.$_optionName = \"items\";\nDxItem.$_isCollectionItem = true;\nvar DxOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:bindingOptions\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:icon\": null,\n \"update:onClick\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:rtlEnabled\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:type\": null,\n \"update:useSubmitBehavior\": null,\n \"update:validationGroup\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n bindingOptions: Object,\n disabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n icon: String,\n onClick: Function,\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n rtlEnabled: Boolean,\n stylingMode: String,\n tabIndex: Number,\n template: {},\n text: String,\n type: String,\n useSubmitBehavior: Boolean,\n validationGroup: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxOptions = DxOptions;\nDxOptions.$_optionName = \"options\";\nvar DxSearchEditorOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:bindingOptions\": null,\n \"update:buttons\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:inputAttr\": null,\n \"update:isValid\": null,\n \"update:mask\": null,\n \"update:maskChar\": null,\n \"update:maskInvalidMessage\": null,\n \"update:maskRules\": null,\n \"update:maxLength\": null,\n \"update:mode\": null,\n \"update:name\": null,\n \"update:onChange\": null,\n \"update:onContentReady\": null,\n \"update:onCopy\": null,\n \"update:onCut\": null,\n \"update:onDisposing\": null,\n \"update:onEnterKey\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onInput\": null,\n \"update:onKeyDown\": null,\n \"update:onKeyPress\": null,\n \"update:onKeyUp\": null,\n \"update:onOptionChanged\": null,\n \"update:onPaste\": null,\n \"update:onValueChanged\": null,\n \"update:placeholder\": null,\n \"update:readOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:showClearButton\": null,\n \"update:showMaskMode\": null,\n \"update:spellcheck\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:text\": null,\n \"update:useMaskedValue\": null,\n \"update:validationError\": null,\n \"update:validationErrors\": null,\n \"update:validationMessageMode\": null,\n \"update:validationStatus\": null,\n \"update:value\": null,\n \"update:valueChangeEvent\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n bindingOptions: Object,\n buttons: Array,\n disabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n inputAttr: Object,\n isValid: Boolean,\n mask: String,\n maskChar: String,\n maskInvalidMessage: String,\n maskRules: Object,\n maxLength: [Number, String],\n mode: String,\n name: String,\n onChange: Function,\n onContentReady: Function,\n onCopy: Function,\n onCut: Function,\n onDisposing: Function,\n onEnterKey: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onInput: Function,\n onKeyDown: Function,\n onKeyPress: Function,\n onKeyUp: Function,\n onOptionChanged: Function,\n onPaste: Function,\n onValueChanged: Function,\n placeholder: String,\n readOnly: Boolean,\n rtlEnabled: Boolean,\n showClearButton: Boolean,\n showMaskMode: String,\n spellcheck: Boolean,\n stylingMode: String,\n tabIndex: Number,\n text: String,\n useMaskedValue: Boolean,\n validationError: Object,\n validationErrors: Array,\n validationMessageMode: String,\n validationStatus: String,\n value: String,\n valueChangeEvent: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxSearchEditorOptions = DxSearchEditorOptions;\nDxSearchEditorOptions.$_optionName = \"searchEditorOptions\";\nDxSearchEditorOptions.$_expectedChildren = {\n button: { isCollectionItem: true, optionName: \"buttons\" }\n};\nexports.default = DxTreeView;\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.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 _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.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_uiData_grid.default.registerModule(\"search\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.virtual_scrolling_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.getContentHeightLimit = getContentHeightLimit;\r\nexports.subscribeToExternalScrollers = subscribeToExternalScrollers;\r\nexports.VirtualScrollController = exports.getPixelRatio = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _position = _interopRequireDefault(require(\"../../animation/position\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar isVirtualMode = function(that) {\r\n return that.option(\"scrolling.mode\") === SCROLLING_MODE_VIRTUAL || that._isVirtual\r\n};\r\nvar isAppendMode = function(that) {\r\n return that.option(\"scrolling.mode\") === SCROLLING_MODE_INFINITE && !that._isVirtual\r\n};\r\nvar needTwoPagesLoading = function(that) {\r\n return that.option(\"scrolling.loadTwoPagesOnStart\") || that._isVirtual || that._viewportItemIndex > 0\r\n};\r\nvar getPixelRatio = function(window) {\r\n return window.devicePixelRatio || 1\r\n};\r\nexports.getPixelRatio = getPixelRatio;\r\n\r\nfunction getContentHeightLimit(browser) {\r\n if (browser.msie) {\r\n return 4e6\r\n } else {\r\n if (browser.mozilla) {\r\n return 8e6\r\n }\r\n }\r\n return 15e6 / getPixelRatio((0, _window.getWindow)())\r\n}\r\n\r\nfunction subscribeToExternalScrollers($element, scrollChangedHandler, $targetElement) {\r\n var $scrollElement;\r\n var scrollableArray = [];\r\n var scrollToArray = [];\r\n var disposeArray = [];\r\n $targetElement = $targetElement || $element;\r\n\r\n function getElementOffset(scrollable) {\r\n var $scrollableElement = scrollable.element ? scrollable.$element() : scrollable;\r\n var scrollableOffset = _position.default.offset($scrollableElement);\r\n if (!scrollableOffset) {\r\n return $element.offset().top\r\n }\r\n return scrollable.scrollTop() - (scrollableOffset.top - $element.offset().top)\r\n }\r\n\r\n function createWindowScrollHandler(scrollable) {\r\n return function() {\r\n var scrollTop = scrollable.scrollTop() - getElementOffset(scrollable);\r\n scrollTop = scrollTop > 0 ? scrollTop : 0;\r\n scrollChangedHandler(scrollTop)\r\n }\r\n }\r\n var widgetScrollStrategy = {\r\n on: function(scrollable, eventName, handler) {\r\n scrollable.on(\"scroll\", handler)\r\n },\r\n off: function(scrollable, eventName, handler) {\r\n scrollable.off(\"scroll\", handler)\r\n }\r\n };\r\n\r\n function subscribeToScrollEvents($scrollElement) {\r\n var isDocument = \"#document\" === $scrollElement.get(0).nodeName;\r\n var scrollable = $scrollElement.data(\"dxScrollable\");\r\n var eventsStrategy = widgetScrollStrategy;\r\n if (!scrollable) {\r\n scrollable = isDocument && (0, _renderer.default)((0, _window.getWindow)()) || \"auto\" === $scrollElement.css(\"overflowY\") && $scrollElement;\r\n eventsStrategy = _events_engine.default;\r\n if (!scrollable) {\r\n return\r\n }\r\n }\r\n var handler = createWindowScrollHandler(scrollable);\r\n eventsStrategy.on(scrollable, \"scroll\", handler);\r\n scrollToArray.push(function(pos) {\r\n var topOffset = getElementOffset(scrollable);\r\n var scrollMethod = scrollable.scrollTo ? \"scrollTo\" : \"scrollTop\";\r\n if (pos - topOffset >= 0) {\r\n scrollable[scrollMethod](pos + topOffset)\r\n }\r\n });\r\n scrollableArray.push(scrollable);\r\n disposeArray.push(function() {\r\n eventsStrategy.off(scrollable, \"scroll\", handler)\r\n })\r\n }\r\n for ($scrollElement = $targetElement.parent(); $scrollElement.length; $scrollElement = $scrollElement.parent()) {\r\n subscribeToScrollEvents($scrollElement)\r\n }\r\n return {\r\n scrollTo: function(pos) {\r\n (0, _iterator.each)(scrollToArray, function(_, scrollTo) {\r\n scrollTo(pos)\r\n })\r\n },\r\n dispose: function() {\r\n (0, _iterator.each)(disposeArray, function(_, dispose) {\r\n dispose()\r\n })\r\n }\r\n }\r\n}\r\nvar VirtualScrollController = _class.default.inherit(function() {\r\n var getViewportPageCount = function(that) {\r\n var pageSize = that._dataSource.pageSize();\r\n var preventPreload = that.option(\"scrolling.preventPreload\");\r\n if (preventPreload) {\r\n return 0\r\n }\r\n var realViewportSize = that._viewportSize;\r\n if (isVirtualMode(that) && !that.option(\"legacyRendering\") && that.option(\"scrolling.removeInvisiblePages\")) {\r\n realViewportSize = 0;\r\n var viewportSize = that._viewportSize * that._viewportItemSize;\r\n var offset = that.getContentOffset();\r\n var position = that._position || 0;\r\n var virtualItemsCount = that.virtualItemsCount();\r\n var totalItemsCount = that._dataSource.totalItemsCount();\r\n for (var itemIndex = virtualItemsCount.begin; itemIndex < totalItemsCount; itemIndex++) {\r\n if (offset >= position + viewportSize) {\r\n break\r\n }\r\n var itemSize = that._itemSizes[itemIndex] || that._viewportItemSize;\r\n offset += itemSize;\r\n if (offset >= position) {\r\n realViewportSize++\r\n }\r\n }\r\n }\r\n return pageSize && realViewportSize > 0 ? Math.ceil(realViewportSize / pageSize) : 1\r\n };\r\n var getPreloadPageCount = function(that, previous) {\r\n var preloadEnabled = that.option(\"scrolling.preloadEnabled\");\r\n var pageCount = getViewportPageCount(that);\r\n if (pageCount) {\r\n if (previous) {\r\n pageCount = preloadEnabled ? 1 : 0\r\n } else {\r\n if (preloadEnabled) {\r\n pageCount++\r\n }\r\n if (isAppendMode(that) || !needTwoPagesLoading(that)) {\r\n pageCount--\r\n }\r\n }\r\n }\r\n return pageCount\r\n };\r\n var getPageIndexForLoad = function(that) {\r\n var result = -1;\r\n var beginPageIndex = getBeginPageIndex(that);\r\n var dataSource = that._dataSource;\r\n if (beginPageIndex < 0) {\r\n result = that._pageIndex\r\n } else {\r\n if (!that._cache[that._pageIndex - beginPageIndex]) {\r\n result = that._pageIndex\r\n } else {\r\n if (beginPageIndex >= 0 && that._viewportSize >= 0) {\r\n if (beginPageIndex > 0) {\r\n var needToLoadPageBeforeLast = getEndPageIndex(that) + 1 === dataSource.pageCount() && that._cache.length < getPreloadPageCount(that) + 1;\r\n var needToLoadPrevPage = needToLoadPageBeforeLast || that._pageIndex === beginPageIndex && getPreloadPageCount(that, true);\r\n if (needToLoadPrevPage) {\r\n result = beginPageIndex - 1\r\n }\r\n }\r\n if (result < 0) {\r\n var needToLoadNextPage = beginPageIndex + that._cache.length <= that._pageIndex + getPreloadPageCount(that);\r\n if (needToLoadNextPage) {\r\n result = beginPageIndex + that._cache.length\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (that._loadingPageIndexes[result]) {\r\n result = -1\r\n }\r\n return result\r\n };\r\n\r\n function getBeginPageIndex(that) {\r\n return that._cache.length ? that._cache[0].pageIndex : -1\r\n }\r\n\r\n function getEndPageIndex(that) {\r\n return that._cache.length ? that._cache[that._cache.length - 1].pageIndex : -1\r\n }\r\n var fireChanged = function(that, changed, args) {\r\n that._isChangedFiring = true;\r\n changed(args);\r\n that._isChangedFiring = false\r\n };\r\n var processDelayChanged = function(that, changed, args) {\r\n if (that._isDelayChanged) {\r\n that._isDelayChanged = false;\r\n fireChanged(that, changed, args);\r\n return true\r\n }\r\n };\r\n var processChanged = function(that, changed, changeType, isDelayChanged, removeCacheItem) {\r\n var dataSource = that._dataSource;\r\n var items = dataSource.items().slice();\r\n var change = (0, _type.isObject)(changeType) ? changeType : void 0;\r\n var isPrepend = \"prepend\" === changeType;\r\n var viewportItems = dataSource.viewportItems();\r\n if (changeType && (0, _type.isString)(changeType) && !that._isDelayChanged) {\r\n change = {\r\n changeType: changeType,\r\n items: items\r\n };\r\n if (removeCacheItem) {\r\n change.removeCount = removeCacheItem.itemsCount;\r\n if (change.removeCount && dataSource.correctCount) {\r\n change.removeCount = dataSource.correctCount(viewportItems, change.removeCount, isPrepend)\r\n }\r\n }\r\n }\r\n var removeItemCount = removeCacheItem ? removeCacheItem.itemsLength : 0;\r\n if (removeItemCount && dataSource.correctCount) {\r\n removeItemCount = dataSource.correctCount(viewportItems, removeItemCount, isPrepend)\r\n }\r\n if (\"append\" === changeType) {\r\n viewportItems.push.apply(viewportItems, items);\r\n if (removeCacheItem) {\r\n viewportItems.splice(0, removeItemCount)\r\n }\r\n } else {\r\n if (isPrepend) {\r\n viewportItems.unshift.apply(viewportItems, items);\r\n if (removeCacheItem) {\r\n viewportItems.splice(-removeItemCount)\r\n }\r\n } else {\r\n that._dataSource.viewportItems(items)\r\n }\r\n }\r\n dataSource.updateLoading();\r\n that._lastPageIndex = that.pageIndex();\r\n that._isDelayChanged = isDelayChanged;\r\n if (!isDelayChanged) {\r\n fireChanged(that, changed, change)\r\n }\r\n };\r\n var loadCore = function(that, pageIndex) {\r\n var dataSource = that._dataSource;\r\n if (pageIndex === that.pageIndex() || !dataSource.isLoading() && pageIndex < dataSource.pageCount() || !dataSource.hasKnownLastPage() && pageIndex === dataSource.pageCount()) {\r\n dataSource.pageIndex(pageIndex);\r\n that._loadingPageIndexes[pageIndex] = true;\r\n return (0, _deferred.when)(dataSource.load()).always(function() {\r\n that._loadingPageIndexes[pageIndex] = false\r\n })\r\n }\r\n };\r\n return {\r\n ctor: function(component, dataSource, isVirtual) {\r\n var that = this;\r\n that._dataSource = dataSource;\r\n that.component = component;\r\n that._pageIndex = that._lastPageIndex = dataSource.pageIndex();\r\n that._viewportSize = 0;\r\n that._viewportItemSize = 20;\r\n that._viewportItemIndex = -1;\r\n that._itemSizes = {};\r\n that._sizeRatio = 1;\r\n that._items = [];\r\n that._cache = [];\r\n that._isVirtual = isVirtual;\r\n that._loadingPageIndexes = {};\r\n that.positionChanged = (0, _callbacks.default)()\r\n },\r\n getItemSizes: function() {\r\n return this._itemSizes\r\n },\r\n option: function() {\r\n return this.component.option.apply(this.component, arguments)\r\n },\r\n virtualItemsCount: function() {\r\n var that = this;\r\n var pageIndex;\r\n var itemsCount = 0;\r\n if (isVirtualMode(that)) {\r\n pageIndex = getBeginPageIndex(that);\r\n if (pageIndex < 0) {\r\n pageIndex = that._dataSource.pageIndex()\r\n }\r\n var beginItemsCount = pageIndex * that._dataSource.pageSize();\r\n itemsCount = that._cache.length * that._dataSource.pageSize();\r\n var endItemsCount = Math.max(0, that._dataSource.totalItemsCount() - itemsCount - beginItemsCount);\r\n return {\r\n begin: beginItemsCount,\r\n end: endItemsCount\r\n }\r\n }\r\n },\r\n setViewportPosition: function(position) {\r\n var that = this;\r\n var result = new _deferred.Deferred;\r\n var scrollingTimeout = Math.min(that.option(\"scrolling.timeout\") || 0, that._dataSource.changingDuration());\r\n if (scrollingTimeout < that.option(\"scrolling.renderingThreshold\")) {\r\n scrollingTimeout = that.option(\"scrolling.minTimeout\") || 0\r\n }\r\n clearTimeout(that._scrollTimeoutID);\r\n if (scrollingTimeout > 0) {\r\n that._scrollTimeoutID = setTimeout(function() {\r\n that._setViewportPositionCore(position);\r\n result.resolve()\r\n }, scrollingTimeout)\r\n } else {\r\n that._setViewportPositionCore(position);\r\n result.resolve()\r\n }\r\n return result.promise()\r\n },\r\n getViewportPosition: function() {\r\n return this._position || 0\r\n },\r\n getItemIndexByPosition: function() {\r\n var that = this;\r\n var position = that._position;\r\n var defaultItemSize = that.getItemSize();\r\n var offset = 0;\r\n var itemOffset = 0;\r\n var itemOffsetsWithSize = Object.keys(that._itemSizes).concat(-1);\r\n for (var i = 0; i < itemOffsetsWithSize.length && offset < position; i++) {\r\n var itemOffsetWithSize = parseInt(itemOffsetsWithSize[i]);\r\n var itemOffsetDiff = (position - offset) / defaultItemSize;\r\n if (itemOffsetWithSize < 0 || itemOffset + itemOffsetDiff < itemOffsetWithSize) {\r\n itemOffset += itemOffsetDiff;\r\n break\r\n } else {\r\n itemOffsetDiff = itemOffsetWithSize - itemOffset;\r\n offset += itemOffsetDiff * defaultItemSize;\r\n itemOffset += itemOffsetDiff\r\n }\r\n var itemSize = that._itemSizes[itemOffsetWithSize];\r\n offset += itemSize;\r\n itemOffset += offset < position ? 1 : (position - offset + itemSize) / itemSize\r\n }\r\n return Math.round(50 * itemOffset) / 50\r\n },\r\n _setViewportPositionCore: function(position) {\r\n this._position = position;\r\n var itemIndex = this.getItemIndexByPosition();\r\n var result = this.setViewportItemIndex(itemIndex);\r\n this.positionChanged.fire();\r\n return result\r\n },\r\n setContentSize: function(size) {\r\n var that = this;\r\n var sizes = Array.isArray(size) && size;\r\n var virtualItemsCount = that.virtualItemsCount();\r\n if (sizes) {\r\n size = sizes.reduce(function(a, b) {\r\n return a + b\r\n }, 0)\r\n }\r\n that._contentSize = size;\r\n if (virtualItemsCount) {\r\n if (sizes) {\r\n sizes.forEach(function(size, index) {\r\n that._itemSizes[virtualItemsCount.begin + index] = size\r\n })\r\n }\r\n var virtualContentSize = (virtualItemsCount.begin + virtualItemsCount.end + that.itemsCount()) * that._viewportItemSize;\r\n var contentHeightLimit = getContentHeightLimit(_browser.default);\r\n if (virtualContentSize > contentHeightLimit) {\r\n that._sizeRatio = contentHeightLimit / virtualContentSize\r\n } else {\r\n that._sizeRatio = 1\r\n }\r\n }\r\n },\r\n getItemSize: function() {\r\n return this._viewportItemSize * this._sizeRatio\r\n },\r\n getItemOffset: function(itemIndex, isEnd) {\r\n var that = this;\r\n var virtualItemsCount = that.virtualItemsCount();\r\n var itemCount = itemIndex;\r\n if (!virtualItemsCount) {\r\n return 0\r\n }\r\n var offset = 0;\r\n var totalItemsCount = that._dataSource.totalItemsCount();\r\n Object.keys(that._itemSizes).forEach(function(currentItemIndex) {\r\n if (!itemCount) {\r\n return\r\n }\r\n if (isEnd ? currentItemIndex >= totalItemsCount - itemIndex : currentItemIndex < itemIndex) {\r\n offset += that._itemSizes[currentItemIndex];\r\n itemCount--\r\n }\r\n });\r\n return Math.floor(offset + itemCount * that._viewportItemSize * that._sizeRatio)\r\n },\r\n getContentOffset: function(type) {\r\n var isEnd = \"end\" === type;\r\n var virtualItemsCount = this.virtualItemsCount();\r\n if (!virtualItemsCount) {\r\n return 0\r\n }\r\n return this.getItemOffset(isEnd ? virtualItemsCount.end : virtualItemsCount.begin, isEnd)\r\n },\r\n getVirtualContentSize: function() {\r\n var that = this;\r\n var virtualItemsCount = that.virtualItemsCount();\r\n return virtualItemsCount ? that.getContentOffset(\"begin\") + that.getContentOffset(\"end\") + that._contentSize : 0\r\n },\r\n getViewportItemIndex: function() {\r\n return this._viewportItemIndex\r\n },\r\n setViewportItemIndex: function(itemIndex) {\r\n var that = this;\r\n var pageSize = that._dataSource.pageSize();\r\n var pageCount = that._dataSource.pageCount();\r\n var virtualMode = isVirtualMode(that);\r\n var appendMode = isAppendMode(that);\r\n var totalItemsCount = that._dataSource.totalItemsCount();\r\n var newPageIndex;\r\n that._viewportItemIndex = itemIndex;\r\n if (pageSize && (virtualMode || appendMode) && totalItemsCount >= 0) {\r\n if (that._viewportSize && itemIndex + that._viewportSize >= totalItemsCount && !that._isVirtual) {\r\n if (that._dataSource.hasKnownLastPage()) {\r\n newPageIndex = pageCount - 1;\r\n var lastPageSize = totalItemsCount % pageSize;\r\n if (newPageIndex > 0 && lastPageSize > 0 && lastPageSize < that._viewportSize) {\r\n newPageIndex--\r\n }\r\n } else {\r\n newPageIndex = pageCount\r\n }\r\n } else {\r\n newPageIndex = Math.floor(itemIndex / pageSize);\r\n var maxPageIndex = pageCount - 1;\r\n newPageIndex = Math.max(newPageIndex, 0);\r\n newPageIndex = Math.min(newPageIndex, maxPageIndex)\r\n }\r\n that.pageIndex(newPageIndex);\r\n return that.load()\r\n }\r\n },\r\n viewportItemSize: function(size) {\r\n if (void 0 !== size) {\r\n this._viewportItemSize = size\r\n }\r\n return this._viewportItemSize\r\n },\r\n viewportSize: function(size) {\r\n if (void 0 !== size) {\r\n this._viewportSize = size\r\n }\r\n return this._viewportSize\r\n },\r\n pageIndex: function(_pageIndex) {\r\n if (isVirtualMode(this) || isAppendMode(this)) {\r\n if (void 0 !== _pageIndex) {\r\n this._pageIndex = _pageIndex\r\n }\r\n return this._pageIndex\r\n } else {\r\n return this._dataSource.pageIndex(_pageIndex)\r\n }\r\n },\r\n beginPageIndex: function beginPageIndex(defaultPageIndex) {\r\n var beginPageIndex = getBeginPageIndex(this);\r\n if (beginPageIndex < 0) {\r\n beginPageIndex = void 0 !== defaultPageIndex ? defaultPageIndex : this.pageIndex()\r\n }\r\n return beginPageIndex\r\n },\r\n endPageIndex: function endPageIndex() {\r\n var endPageIndex = getEndPageIndex(this);\r\n return endPageIndex > 0 ? endPageIndex : this._lastPageIndex\r\n },\r\n pageSize: function() {\r\n return this._dataSource.pageSize()\r\n },\r\n load: function() {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var result;\r\n if (isVirtualMode(that) || isAppendMode(that)) {\r\n var pageIndexForLoad = getPageIndexForLoad(that);\r\n if (pageIndexForLoad >= 0) {\r\n var loadResult = loadCore(that, pageIndexForLoad);\r\n if (loadResult) {\r\n result = new _deferred.Deferred;\r\n loadResult.done(function() {\r\n var delayDeferred = that._delayDeferred;\r\n if (delayDeferred) {\r\n delayDeferred.done(result.resolve).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n }).fail(result.reject);\r\n dataSource.updateLoading()\r\n }\r\n }\r\n } else {\r\n result = dataSource.load()\r\n }\r\n if (!result && that._lastPageIndex !== that.pageIndex()) {\r\n that._dataSource.onChanged({\r\n changeType: \"pageIndex\"\r\n })\r\n }\r\n return result || (new _deferred.Deferred).resolve()\r\n },\r\n loadIfNeed: function() {\r\n var that = this;\r\n if ((isVirtualMode(that) || isAppendMode(that)) && !that._dataSource.isLoading() && (!that._isChangedFiring || that._isVirtual)) {\r\n var position = that.getViewportPosition();\r\n if (position > 0) {\r\n that._setViewportPositionCore(position)\r\n } else {\r\n that.load()\r\n }\r\n }\r\n },\r\n handleDataChanged: function(callBase, e) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var lastCacheLength = that._cache.length;\r\n var changeType;\r\n var removeInvisiblePages;\r\n if (e && e.changes) {\r\n fireChanged(that, callBase, e)\r\n } else {\r\n if (isVirtualMode(that) || isAppendMode(that)) {\r\n var beginPageIndex = getBeginPageIndex(that);\r\n if (beginPageIndex >= 0) {\r\n if (isVirtualMode(that) && beginPageIndex + that._cache.length !== dataSource.pageIndex() && beginPageIndex - 1 !== dataSource.pageIndex()) {\r\n lastCacheLength = 0;\r\n that._cache = []\r\n }\r\n if (isAppendMode(that)) {\r\n if (0 === dataSource.pageIndex()) {\r\n that._cache = []\r\n } else {\r\n if (dataSource.pageIndex() < getEndPageIndex(that)) {\r\n fireChanged(that, callBase, {\r\n changeType: \"append\",\r\n items: []\r\n });\r\n return\r\n }\r\n }\r\n }\r\n }\r\n var cacheItem = {\r\n pageIndex: dataSource.pageIndex(),\r\n itemsLength: dataSource.items(true).length,\r\n itemsCount: that.itemsCount(true)\r\n };\r\n if (!that.option(\"legacyRendering\") && that.option(\"scrolling.removeInvisiblePages\") && isVirtualMode(that)) {\r\n removeInvisiblePages = that._cache.length > Math.max(getPreloadPageCount(this) + (that.option(\"scrolling.preloadEnabled\") ? 1 : 0), 2)\r\n } else {\r\n processDelayChanged(that, callBase, {\r\n isDelayed: true\r\n })\r\n }\r\n var removeCacheItem;\r\n if (beginPageIndex === dataSource.pageIndex() + 1) {\r\n if (removeInvisiblePages) {\r\n removeCacheItem = that._cache.pop()\r\n }\r\n changeType = \"prepend\";\r\n that._cache.unshift(cacheItem)\r\n } else {\r\n if (removeInvisiblePages) {\r\n removeCacheItem = that._cache.shift()\r\n }\r\n changeType = \"append\";\r\n that._cache.push(cacheItem)\r\n }\r\n var isDelayChanged = isVirtualMode(that) && 0 === lastCacheLength && needTwoPagesLoading(that);\r\n processChanged(that, callBase, that._cache.length > 1 ? changeType : void 0, isDelayChanged, removeCacheItem);\r\n that._delayDeferred = that.load().done(function() {\r\n if (processDelayChanged(that, callBase)) {\r\n that.load()\r\n }\r\n })\r\n } else {\r\n processChanged(that, callBase, e)\r\n }\r\n }\r\n },\r\n itemsCount: function itemsCount(isBase) {\r\n var itemsCount = 0;\r\n if (!isBase && isVirtualMode(this)) {\r\n (0, _iterator.each)(this._cache, function() {\r\n itemsCount += this.itemsCount\r\n })\r\n } else {\r\n itemsCount = this._dataSource.itemsCount()\r\n }\r\n return itemsCount\r\n },\r\n reset: function(isRefresh) {\r\n this._loadingPageIndexes = {};\r\n this._cache = [];\r\n if (!isRefresh) {\r\n this._itemSizes = {}\r\n }\r\n },\r\n subscribeToWindowScrollEvents: function($element) {\r\n var that = this;\r\n that._windowScroll = that._windowScroll || subscribeToExternalScrollers($element, function(scrollTop) {\r\n if (that.viewportItemSize()) {\r\n that.setViewportPosition(scrollTop)\r\n }\r\n })\r\n },\r\n dispose: function() {\r\n clearTimeout(this._scrollTimeoutID);\r\n this._windowScroll && this._windowScroll.dispose();\r\n this._windowScroll = null\r\n },\r\n scrollTo: function(pos) {\r\n this._windowScroll && this._windowScroll.scrollTo(pos)\r\n }\r\n }\r\n}());\r\nexports.VirtualScrollController = VirtualScrollController;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.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 _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.data_source_adapter\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar dataSourceAdapterType = _uiGrid_core.default;\r\nvar _default = {\r\n extend: function(extender) {\r\n dataSourceAdapterType = dataSourceAdapterType.inherit(extender)\r\n },\r\n create: function(component) {\r\n return new dataSourceAdapterType(component)\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","import { Field } from './field';\nimport { Template } from '@/shared/dtos/template';\nimport { ItiBaseDto } from \"@/iti-core-vue\";\n\nexport class TemplateVersion extends ItiBaseDto{\n public description!: string;\n public version!: number;\n public active!: boolean;\n public published!: boolean;\n public templateId!: number;\n public fields!: Field[];\n}","import { ItiBaseDto } from '@/iti-core-vue';\nimport { Field } from './field';\nimport { Categories } from './categories';\nimport { TemplateVersion } from './template-version';\n\nexport class Template extends ItiBaseDto {\n public title!: string;\n public description!: string;\n public active!: boolean;\n public offer!: boolean;\n public demand!: boolean;\n public categories!: Categories;\n // public categoriesCategoryFirstLevelId !: number; \n // public categoriesCategoryFirstLevelCode !: string; \n // public categoriesCategoryFirstLevelDescription !: string; \n // public categoriesCategorySecondLevelId !: number; \n // public categoriesCategorySecondLevelCode !: string; \n // public categoriesCategorySecondLevelDescription !: string;\n // public categoriesCategoryThirdLevelId !: number; \n // public categoriesCategoryThirdLevelCode !: string;\n // public categoriesCategoryThirdLevelDescription !: string;\n // public categoriesCategoryFourthLevelId !: number; \n // public categoriesCategoryFourthLevelCode !: string; \n // public categoriesCategoryFourthLevelDescription !: string; \n\n public templateVersions!: TemplateVersion[];\n}","import { ItiBaseDto } from '@/iti-core-vue';\nimport { FieldType } from './field-type';\nimport { UnitType } from './unit-type';\n\nexport class Field extends ItiBaseDto {\n public code!: string;\n public label!: string;\n public description!: string;\n //public fieldTypeId!: number;\n public fieldTypeCode!: string;\n public fieldTypeType!: string;\n //public unitTypeId!: number;\n public unitTypeCode!: string;\n public unitTypeDescription!: string;\n public defaultValue!: string;\n public obligatory!: boolean;\n public multipleSelector!: boolean; \n public help!: string;\n public validationRules!: string;\n public errorMessage!: string;\n public readOnly!: boolean;\n //public templateId!: number;\n public fieldType!: FieldType;\n public unitType!: UnitType;\n\n}","import { ItiBaseDto } from '@/iti-core-vue';\n\nexport class Values extends ItiBaseDto {\n public id !: number;\n public value !: string;\n public fieldId !: number;\n public fieldCode !: string;\n public fieldDescription !:string;\n}","import { TemplateVersion } from './../../shared/dtos/template-version';\nimport { Template } from '@/shared/dtos/template';\nimport { Action, getModule, Module, Mutation, VuexModule } from 'vuex-module-decorators';\nimport { store } from '@/iti-core-vue/store';\nimport { itiHttpService, itiMessageService, ItiString } from '@/iti-core-vue';\nimport { API } from '@/shared';\nimport { LerCode } from '@/shared/dtos/ler-code';\nimport { Sector } from '@/shared/dtos/sector';\nimport { CnaeCode } from '@/shared/dtos/cnae-code';\nimport { Field } from '@/shared/dtos/field';\nimport { FieldType } from '@/shared/dtos/field-type';\nimport { UnitType } from '@/shared/dtos/unit-type';\nimport { CategoryFirstLevel } from '@/shared/dtos/category-first-level';\nimport { Values } from '@/shared/dtos/values';\nimport { FormattedCategory } from '@/shared/dtos/formatted-category';\n\n\n@Module({\n namespaced: true,\n name: 'TemplatesModule',\n store,\n dynamic: true,\n})\n\nclass TemplatesModule extends VuexModule {\n public templates: Template[] = [];\n public selectedTemplate: Template = new Template();\n public idSelectedTemplate: number = 0;\n public selectedTemplateVersion: TemplateVersion = new TemplateVersion();\n public templateFields: Field[] = [];\n public lerCodes: LerCode[] = [];\n public sectors: Sector[] = [];\n public cnaeCodes: CnaeCode[] = [];\n public categoriesFirstLevel: CategoryFirstLevel[] = [];\n public templateEditMode: boolean = false;\n public selectedField: Field = new Field();\n public fieldTypes: FieldType[] = [];\n public unitTypes: UnitType[] = [];\n public values: Values[] = [];\n public removeValues: Values[] = [];\n public idLastFieldCreated: number = 0;\n public formattedCategoriesList: FormattedCategory[] = [];\n\n @Mutation\n public setTemplates(templates: Template[]) {\n this.templates = templates;\n }\n\n @Action\n public async getTemplates(active: boolean | null | undefined) {\n if (active == null)\n active = false;\n const res = await itiHttpService.get(API.templates + '/GetAllTemplates?onlyActives=' + active);\n this.context.commit('setTemplates', res);\n }\n\n @Mutation\n public setTemplateById(template: Template) {\n this.selectedTemplate = template;\n // this.templateFields = template.fields;\n }\n\n @Mutation\n public setTemplateVersionById(templateVersion: TemplateVersion) {\n this.selectedTemplateVersion = templateVersion;\n this.templateFields = templateVersion.fields;\n }\n @Mutation\n public newTemplateVersion() {\n this.selectedTemplateVersion = new TemplateVersion();\n this.selectedTemplateVersion.fields = [];\n this.templateFields = this.selectedTemplateVersion.fields;\n }\n\n // @Action\n // public async createNewTemplateVersion(idTemplate: number, idToCopy: number | null) {\n // if (idToCopy == null) {\n // this.context.commit('newTemplateVersion');\n // } else {\n // const response = await itiHttpService.post(API.templateVersions + '/CreateTemplateVersion/templateId=' + idTemplate + '&templateVersionId=' + idToCopy, null, true, false, true);\n // }\n // }\n\n @Mutation\n public newTemplate() {\n this.selectedTemplate = new Template();\n // this.selectedTemplate.fields = [];\n // this.templateFields = this.selectedTemplate.fields;\n }\n\n @Action\n public async getTemplateById(id: number) {\n if (id != null) {\n try {\n const response = await itiHttpService.get(API.templates + '/' + id, null, true, false, true);\n this.context.commit('setTemplateById', response);\n } catch (err) {\n return itiMessageService.TypeError;\n }\n }\n else {\n this.context.commit('newTemplate');\n }\n }\n\n @Action\n public async getTemplateVersionById(id: number) {\n if (id != null) {\n try {\n const response = await itiHttpService.get(API.templateVersions + '/' + id, null, true, false, true);\n this.context.commit('setTemplateVersionById', response);\n } catch (err) {\n return itiMessageService.TypeError;\n }\n }\n else {\n this.context.commit('newTemplateVersion');\n }\n }\n @Action\n public async saveTemplateVersion(templateVersion: TemplateVersion) {\n let res = null;\n this.templateFields.forEach((element, index) => {\n if (element.id == null) {\n this.templateFields[index].id = 0;\n }\n });\n if (templateVersion.id == null) {\n templateVersion.id = 0;\n res = await itiHttpService.post(API.templateVersions, templateVersion.toJson());\n } else {\n const templateVersionDB: TemplateVersion = new TemplateVersion(templateVersion);\n res = await itiHttpService.put(API.templateVersions, templateVersionDB.toJson());\n }\n let resTemplateVersion: TemplateVersion = res;\n if (resTemplateVersion.fields && resTemplateVersion.fields.length > 0) {\n this.context.commit('setIdLastFieldCreated', resTemplateVersion.fields[resTemplateVersion.fields.length - 1].id);\n }\n\n this.context.commit('setTemplateVersionById', res);\n\n }\n\n @Action\n public async saveTemplate(template: Template) {\n let res = null;\n\n if (template.id == null) {\n template.id = 0;\n res = await itiHttpService.post(API.templates, template.toJson());\n } else {\n const templateDB: Template = new Template(template);\n res = await itiHttpService.put(API.templates, templateDB.toJson());\n }\n\n this.context.commit('setTemplateById', res);\n }\n\n @Mutation\n public setIdLastFieldCreated(id: number) {\n this.idLastFieldCreated = id;\n }\n\n\n @Action\n public async deleteTemplate(template: Template) {\n if (template.id != null) {\n const url = API.templates + '/' + template.id;\n const res = await itiHttpService.delete(url, null);\n }\n this.context.dispatch('getTemplates');\n }\n\n @Mutation\n public setLerCodes(lerCodes: LerCode[]) {\n this.lerCodes = lerCodes;\n }\n\n @Action\n public async getLerCodes() {\n const res = await itiHttpService.get(API.lerCode);\n this.context.commit('setLerCodes', res);\n }\n\n @Mutation\n public setSectors(sectors: Sector[]) {\n this.sectors = sectors;\n }\n\n @Action\n public async getSectors() {\n const res = await itiHttpService.get(API.sector);\n this.context.commit('setSectors', res);\n }\n\n @Mutation\n public setCnaeCodes(cnaeCodes: CnaeCode[]) {\n this.cnaeCodes = cnaeCodes;\n }\n\n @Action\n public async getCnaeCodes() {\n const res = await itiHttpService.get(API.cnaeCode);\n this.context.commit('setCnaeCodes', res);\n }\n\n @Mutation\n public setCategories(categoriesFirstLevel: CategoryFirstLevel[]) {\n this.categoriesFirstLevel = categoriesFirstLevel;\n }\n\n @Action\n public async getCategories() {\n const res = await itiHttpService.get(API.categoryFirstLevel);\n this.context.commit('setCategories', res);\n }\n\n @Mutation\n public setFormattedCategories(formattedCategoriesList: FormattedCategory[]) {\n this.formattedCategoriesList = formattedCategoriesList;\n }\n\n @Action\n public async getFormattedCategories() {\n const res = await itiHttpService.get(API.formattedCategory);\n this.context.commit('setFormattedCategories', res);\n }\n\n @Mutation\n public setTemplateEditMode(editar: boolean) {\n this.templateEditMode = editar;\n }\n\n @Mutation\n public deleteFieldFromTemplate(field: Field) {\n this.templateFields.forEach((element, index) => {\n if (element == field) {\n this.templateFields.splice(index, 1);\n return;\n }\n });\n }\n\n @Action\n public async deleteTemplateVersion(version: TemplateVersion) {\n const url = ItiString.Format(API.templateVersionsDetail, version.id);\n const res = await itiHttpService.delete(url, null);\n this.context.commit('deleteVersionFromTemplate', res);\n }\n\n @Mutation\n public deleteVersionFromTemplate(version: TemplateVersion) {\n this.selectedTemplate.templateVersions.forEach((element, index) => {\n if (element == version) {\n this.selectedTemplate.templateVersions.splice(index, 1);\n return;\n }\n });\n }\n\n @Mutation\n public updateField(field: Field) {\n this.templateFields.forEach((element, index) => {\n if (element == field) {\n this.templateFields[index] = field;\n return;\n }\n });\n }\n\n @Mutation\n public newField() {\n this.selectedField = new Field();\n }\n\n @Mutation\n public setFieldToEdit(field: Field) {\n this.selectedField = field;\n }\n\n @Mutation\n public setFieldToEditById(idField: number) {\n this.templateFields.forEach((element, index) => {\n if (element.id == idField) {\n this.selectedField = element;\n return;\n }\n });\n }\n\n @Mutation\n public setFieldTypes(fieldTypes: FieldType[]) {\n this.fieldTypes = fieldTypes;\n }\n\n @Action\n public async getFieldTypes() {\n const res = await itiHttpService.get(API.fieldType);\n this.context.commit('setFieldTypes', res);\n }\n\n @Mutation\n public setUnitTypes(unitTypes: UnitType[]) {\n this.unitTypes = unitTypes;\n }\n\n @Action\n public async getUnitTypes() {\n const res = await itiHttpService.get(API.unitType);\n this.context.commit('setUnitTypes', res);\n }\n\n @Mutation\n public setFields(fields: Field[]) {\n this.templateFields = fields;\n }\n\n /* VALUES */\n\n @Action\n public async saveValues(values: Values) {\n let res = null;\n if (values.id == null) {\n res = await itiHttpService.post(API.values, values.toJson());\n } else {\n const ValuesDB: Values = new Values(values);\n res = await itiHttpService.put(API.values, ValuesDB.toJson());\n }\n }\n\n @Action\n public async deleteValues(values: Values) {\n if (values.id != null) {\n const url = API.values + '/' + values.id;\n const res = await itiHttpService.delete(url, null);\n }\n }\n\n @Action\n public async publishVersion(templateVersion: TemplateVersion) {\n const url = API.templateVersions + '/PublishVersion?templateVersionId=' + templateVersion.id;\n const res = await itiHttpService.post(url, null)\n }\n @Action\n public async activate(templateVersion: TemplateVersion) {\n const url = API.templateVersions + '/Activate?templateVersionId=' + templateVersion.id;\n const res = await itiHttpService.post(url, null)\n }\n\n @Action\n public async cloneVersion(templateVersion: TemplateVersion) {\n const url = API.templateVersions + '/CreateTemplateVersion?templateId=' + templateVersion.templateId + '&templateVersionId=' + templateVersion.id;\n const res = await itiHttpService.post(url, null)\n }\n @Action\n public async getValuesByFieldId(id: number) {\n let res: Values[] = [];\n let valuesByFieldId: Values[] = [];\n if (id != null) {\n try {\n res = await itiHttpService.get(API.values);\n res.forEach(element => {\n if (element.fieldId == id) {\n valuesByFieldId.push(element);\n }\n });\n } catch (err) {\n return itiMessageService.TypeError;\n }\n }\n this.context.commit('setValuesByFieldId', valuesByFieldId);\n }\n\n @Mutation\n public setValuesByFieldId(values: Values[]) {\n if (values.length > 0) {\n this.values = values;\n } else {\n this.values = [];\n }\n }\n\n @Mutation\n public initializeValuesRange() {\n this.values.push(new Values());\n this.values.push(new Values());\n }\n\n @Mutation\n public addValueToValues(values: Values) {\n this.values.push(values);\n }\n\n @Mutation\n public resetValues() {\n this.values = [];\n }\n\n @Mutation\n public addValueToRemoveFromList(values: Values) {\n this.removeValues.push(values);\n }\n\n @Mutation\n public resetRemoveValues() {\n this.removeValues = [];\n }\n\n}\nexport default getModule(TemplatesModule);","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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\nexports.default = void 0;\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _filtering = _interopRequireDefault(require(\"../shared/filtering\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _uiGrid_core3 = require(\"./ui.grid_core.header_filter_core\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _utils = require(\"../../data/data_source/utils\");\r\nvar _date = _interopRequireDefault(require(\"../../localization/date\"));\r\nvar _variable_wrapper = _interopRequireDefault(require(\"../../core/utils/variable_wrapper\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _accessibility = require(\"../shared/accessibility\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DATE_INTERVAL_FORMATS = {\r\n month: function(value) {\r\n return _date.default.getMonthNames()[value - 1]\r\n },\r\n quarter: function(value) {\r\n return _date.default.format(new Date(2e3, 3 * value - 1), \"quarter\")\r\n }\r\n};\r\nvar HeaderFilterController = _uiGrid_core.default.ViewController.inherit(function() {\r\n var getFormatOptions = function(value, column, currentLevel) {\r\n var groupInterval = _filtering.default.getGroupInterval(column);\r\n var result = _uiGrid_core2.default.getFormatOptionsByColumn(column, \"headerFilter\");\r\n if (groupInterval) {\r\n result.groupInterval = groupInterval[currentLevel];\r\n if (_uiGrid_core2.default.isDateType(column.dataType)) {\r\n result.format = DATE_INTERVAL_FORMATS[groupInterval[currentLevel]]\r\n } else {\r\n if (\"number\" === column.dataType) {\r\n result.getDisplayFormat = function() {\r\n var formatOptions = {\r\n format: column.format,\r\n target: \"headerFilter\"\r\n };\r\n var firstValueText = _uiGrid_core2.default.formatValue(value, formatOptions);\r\n var secondValue = value + groupInterval[currentLevel];\r\n var secondValueText = _uiGrid_core2.default.formatValue(secondValue, formatOptions);\r\n return firstValueText && secondValueText ? firstValueText + \" - \" + secondValueText : \"\"\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n };\r\n return {\r\n init: function() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._headerFilterView = this.getView(\"headerFilterView\")\r\n },\r\n _updateSelectedState: function(items, column) {\r\n var i = items.length;\r\n var isExclude = \"exclude\" === column.filterType;\r\n while (i--) {\r\n var item = items[i];\r\n if (\"items\" in items[i]) {\r\n this._updateSelectedState(items[i].items, column)\r\n }(0, _uiGrid_core3.updateHeaderFilterItemSelectionState)(item, _uiGrid_core2.default.getIndexByKey(items[i].value, column.filterValues, null) > -1, isExclude)\r\n }\r\n },\r\n _normalizeGroupItem: function(item, currentLevel, options) {\r\n var value;\r\n var displayValue;\r\n var path = options.path;\r\n var valueSelector = options.valueSelector;\r\n var displaySelector = options.displaySelector;\r\n var column = options.column;\r\n if (valueSelector && displaySelector) {\r\n value = valueSelector(item);\r\n displayValue = displaySelector(item)\r\n } else {\r\n value = item.key;\r\n displayValue = value\r\n }\r\n if (!(0, _type.isObject)(item)) {\r\n item = {}\r\n } else {\r\n item = (0, _extend.extend)({}, item)\r\n }\r\n path.push(value);\r\n if (1 === path.length) {\r\n item.value = path[0]\r\n } else {\r\n item.value = path.join(\"/\")\r\n }\r\n item.text = this.getHeaderItemText(displayValue, column, currentLevel, options.headerFilterOptions);\r\n return item\r\n },\r\n getHeaderItemText: function(displayValue, column, currentLevel, headerFilterOptions) {\r\n var text = _uiGrid_core2.default.formatValue(displayValue, getFormatOptions(displayValue, column, currentLevel));\r\n if (!text) {\r\n text = headerFilterOptions.texts.emptyValue\r\n }\r\n return text\r\n },\r\n _processGroupItems: function(groupItems, currentLevel, path, options) {\r\n var that = this;\r\n var displaySelector;\r\n var valueSelector;\r\n var column = options.column;\r\n var lookup = column.lookup;\r\n var level = options.level;\r\n path = path || [];\r\n currentLevel = currentLevel || 0;\r\n if (lookup) {\r\n displaySelector = (0, _data.compileGetter)(lookup.displayExpr);\r\n valueSelector = (0, _data.compileGetter)(lookup.valueExpr)\r\n }\r\n for (var i = 0; i < groupItems.length; i++) {\r\n groupItems[i] = that._normalizeGroupItem(groupItems[i], currentLevel, {\r\n column: options.column,\r\n headerFilterOptions: options.headerFilterOptions,\r\n displaySelector: displaySelector,\r\n valueSelector: valueSelector,\r\n path: path\r\n });\r\n if (\"items\" in groupItems[i]) {\r\n if (currentLevel === level || !(0, _type.isDefined)(groupItems[i].value)) {\r\n delete groupItems[i].items\r\n } else {\r\n that._processGroupItems(groupItems[i].items, currentLevel + 1, path, options)\r\n }\r\n }\r\n path.pop()\r\n }\r\n },\r\n getDataSource: function(column) {\r\n var that = this;\r\n var dataSource = that._dataController.dataSource();\r\n var group = _uiGrid_core2.default.getHeaderFilterGroupParameters(column, dataSource && dataSource.remoteOperations().grouping);\r\n var headerFilterDataSource = column.headerFilter && column.headerFilter.dataSource;\r\n var headerFilterOptions = that.option(\"headerFilter\");\r\n var isLookup = false;\r\n var options = {\r\n component: that.component\r\n };\r\n if (!dataSource) {\r\n return\r\n }\r\n if ((0, _type.isDefined)(headerFilterDataSource) && !(0, _type.isFunction)(headerFilterDataSource)) {\r\n options.dataSource = (0, _utils.normalizeDataSourceOptions)(headerFilterDataSource)\r\n } else {\r\n if (column.lookup) {\r\n isLookup = true;\r\n var lookupDataSourceOptions;\r\n if (column.lookup.items) {\r\n lookupDataSourceOptions = column.lookup.items\r\n } else {\r\n lookupDataSourceOptions = column.lookup.dataSource;\r\n if ((0, _type.isFunction)(lookupDataSourceOptions) && !_variable_wrapper.default.isWrapped(lookupDataSourceOptions)) {\r\n lookupDataSourceOptions = lookupDataSourceOptions({})\r\n }\r\n }\r\n options.dataSource = (0, _utils.normalizeDataSourceOptions)(lookupDataSourceOptions)\r\n } else {\r\n var cutoffLevel = Array.isArray(group) ? group.length - 1 : 0;\r\n that._currentColumn = column;\r\n var filter = that._dataController.getCombinedFilter();\r\n that._currentColumn = null;\r\n options.dataSource = {\r\n filter: filter,\r\n group: group,\r\n useDefaultSearch: true,\r\n load: function(options) {\r\n var d = new _deferred.Deferred;\r\n options.dataField = column.dataField || column.name;\r\n dataSource.load(options).done(function(data) {\r\n that._processGroupItems(data, null, null, {\r\n level: cutoffLevel,\r\n column: column,\r\n headerFilterOptions: headerFilterOptions\r\n });\r\n d.resolve(data)\r\n }).fail(d.reject);\r\n return d\r\n }\r\n }\r\n }\r\n }\r\n if ((0, _type.isFunction)(headerFilterDataSource)) {\r\n headerFilterDataSource.call(column, options)\r\n }\r\n var origPostProcess = options.dataSource.postProcess;\r\n options.dataSource.postProcess = function(data) {\r\n var items = data;\r\n if (isLookup) {\r\n if (0 === this.pageIndex() && !this.searchValue()) {\r\n items = items.slice(0);\r\n items.unshift(null)\r\n }\r\n that._processGroupItems(items, null, null, {\r\n level: 0,\r\n column: column,\r\n headerFilterOptions: headerFilterOptions\r\n })\r\n }\r\n items = origPostProcess && origPostProcess.call(this, items) || items;\r\n that._updateSelectedState(items, column);\r\n return items\r\n };\r\n return options.dataSource\r\n },\r\n getCurrentColumn: function() {\r\n return this._currentColumn\r\n },\r\n showHeaderFilterMenu: function(columnIndex, isGroupPanel) {\r\n var columnsController = this._columnsController;\r\n var column = (0, _extend.extend)(true, {}, this._columnsController.getColumns()[columnIndex]);\r\n if (column) {\r\n var visibleIndex = columnsController.getVisibleIndex(columnIndex);\r\n var view = isGroupPanel ? this.getView(\"headerPanel\") : this.getView(\"columnHeadersView\");\r\n var $columnElement = $columnElement || view.getColumnElements().eq(isGroupPanel ? column.groupIndex : visibleIndex);\r\n this.showHeaderFilterMenuBase({\r\n columnElement: $columnElement,\r\n column: column,\r\n applyFilter: true,\r\n apply: function() {\r\n columnsController.columnOption(columnIndex, {\r\n filterValues: this.filterValues,\r\n filterType: this.filterType\r\n })\r\n }\r\n })\r\n }\r\n },\r\n showHeaderFilterMenuBase: function(options) {\r\n var _this = this;\r\n var that = this;\r\n var column = options.column;\r\n if (column) {\r\n var groupInterval = _filtering.default.getGroupInterval(column);\r\n var dataSource = that._dataController.dataSource();\r\n var remoteFiltering = dataSource && dataSource.remoteOperations().filtering;\r\n (0, _extend.extend)(options, column, {\r\n type: groupInterval && groupInterval.length > 1 ? \"tree\" : \"list\",\r\n remoteFiltering: remoteFiltering,\r\n onShowing: function(e) {\r\n var dxResizableInstance = e.component.overlayContent().dxResizable(\"instance\");\r\n dxResizableInstance && dxResizableInstance.option(\"onResizeEnd\", function(e) {\r\n var columnsController = that.getController(\"columns\");\r\n var headerFilterByColumn = columnsController.columnOption(options.dataField, \"headerFilter\");\r\n headerFilterByColumn = headerFilterByColumn || {};\r\n headerFilterByColumn.width = e.width;\r\n headerFilterByColumn.height = e.height;\r\n columnsController.columnOption(options.dataField, \"headerFilter\", headerFilterByColumn, true)\r\n })\r\n },\r\n onHidden: function() {\r\n return (0, _accessibility.restoreFocus)(_this)\r\n }\r\n });\r\n options.dataSource = that.getDataSource(options);\r\n if (options.isFilterBuilder) {\r\n options.dataSource.filter = null;\r\n options.alignment = \"right\"\r\n }\r\n that._headerFilterView.showHeaderFilterMenu(options.columnElement, options)\r\n }\r\n },\r\n hideHeaderFilterMenu: function() {\r\n this._headerFilterView.hideHeaderFilterMenu()\r\n }\r\n }\r\n}());\r\nvar ColumnHeadersViewHeaderFilterExtender = (0, _extend.extend)({}, _uiGrid_core3.headerFilterMixin, {\r\n _renderCellContent: function($cell, options) {\r\n var that = this;\r\n var $headerFilterIndicator;\r\n var column = options.column;\r\n if (!column.command && (0, _uiGrid_core3.allowHeaderFiltering)(column) && that.option(\"headerFilter.visible\") && \"header\" === options.rowType) {\r\n $headerFilterIndicator = that._applyColumnState({\r\n name: \"headerFilter\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: that.option(\"showColumnLines\")\r\n });\r\n $headerFilterIndicator && that._subscribeToIndicatorEvent($headerFilterIndicator, column, \"headerFilter\")\r\n }\r\n that.callBase($cell, options)\r\n },\r\n _subscribeToIndicatorEvent: function($indicator, column, indicatorName) {\r\n var that = this;\r\n if (\"headerFilter\" === indicatorName) {\r\n _events_engine.default.on($indicator, _click.name, that.createAction(function(e) {\r\n e.event.stopPropagation();\r\n that.getController(\"headerFilter\").showHeaderFilterMenu(column.index, false)\r\n }))\r\n }\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n var $indicator = this.callBase($cell, column, indicatorName);\r\n $indicator && this._subscribeToIndicatorEvent($indicator, column, indicatorName)\r\n },\r\n _updateHeaderFilterIndicators: function() {\r\n if (this.option(\"headerFilter.visible\")) {\r\n this._updateIndicators(\"headerFilter\")\r\n }\r\n },\r\n _needUpdateFilterIndicators: function() {\r\n return true\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (_uiGrid_core2.default.checkChanges(optionNames, [\"filterValues\", \"filterType\"])) {\r\n if (this._needUpdateFilterIndicators()) {\r\n this._updateHeaderFilterIndicators()\r\n }\r\n return\r\n }\r\n this.callBase(e)\r\n }\r\n});\r\nvar HeaderPanelHeaderFilterExtender = (0, _extend.extend)({}, _uiGrid_core3.headerFilterMixin, {\r\n _createGroupPanelItem: function($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = that.callBase.apply(that, arguments);\r\n var $headerFilterIndicator;\r\n if (!groupColumn.command && (0, _uiGrid_core3.allowHeaderFiltering)(groupColumn) && that.option(\"headerFilter.visible\")) {\r\n $headerFilterIndicator = that._applyColumnState({\r\n name: \"headerFilter\",\r\n rootElement: $item,\r\n column: {\r\n alignment: (0, _position.getDefaultAlignment)(that.option(\"rtlEnabled\")),\r\n filterValues: groupColumn.filterValues,\r\n allowHeaderFiltering: true\r\n },\r\n showColumnLines: true\r\n });\r\n $headerFilterIndicator && _events_engine.default.on($headerFilterIndicator, _click.name, that.createAction(function(e) {\r\n var event = e.event;\r\n event.stopPropagation();\r\n that.getController(\"headerFilter\").showHeaderFilterMenu(groupColumn.index, true)\r\n }))\r\n }\r\n return $item\r\n }\r\n});\r\n\r\nfunction invertFilterExpression(filter) {\r\n return [\"!\", filter]\r\n}\r\nvar DataControllerFilterRowExtender = {\r\n skipCalculateColumnFilters: function() {\r\n return false\r\n },\r\n _calculateAdditionalFilter: function() {\r\n if (this.skipCalculateColumnFilters()) {\r\n return this.callBase()\r\n }\r\n var that = this;\r\n var filters = [that.callBase()];\r\n var columns = that._columnsController.getVisibleColumns(null, true);\r\n var headerFilterController = that.getController(\"headerFilter\");\r\n var currentColumn = headerFilterController.getCurrentColumn();\r\n (0, _iterator.each)(columns, function(_, column) {\r\n var filter;\r\n if (currentColumn && currentColumn.index === column.index) {\r\n return\r\n }\r\n if ((0, _uiGrid_core3.allowHeaderFiltering)(column) && column.calculateFilterExpression && Array.isArray(column.filterValues) && column.filterValues.length) {\r\n var filterValues = [];\r\n (0, _iterator.each)(column.filterValues, function(_, filterValue) {\r\n if (Array.isArray(filterValue)) {\r\n filter = filterValue\r\n } else {\r\n if (column.deserializeValue && !_uiGrid_core2.default.isDateType(column.dataType) && \"number\" !== column.dataType) {\r\n filterValue = column.deserializeValue(filterValue)\r\n }\r\n filter = column.createFilterExpression(filterValue, \"=\", \"headerFilter\")\r\n }\r\n if (filter) {\r\n filter.columnIndex = column.index\r\n }\r\n filterValues.push(filter)\r\n });\r\n filterValues = _uiGrid_core2.default.combineFilters(filterValues, \"or\");\r\n filters.push(\"exclude\" === column.filterType ? [\"!\", filterValues] : filterValues)\r\n }\r\n });\r\n return _uiGrid_core2.default.combineFilters(filters)\r\n }\r\n};\r\nvar _default = {\r\n invertFilterExpression: invertFilterExpression,\r\n defaultOptions: function() {\r\n return {\r\n headerFilter: {\r\n visible: false,\r\n width: 252,\r\n height: 325,\r\n allowSearch: false,\r\n searchTimeout: 500,\r\n texts: {\r\n emptyValue: _message.default.format(\"dxDataGrid-headerFilterEmptyValue\"),\r\n ok: _message.default.format(\"dxDataGrid-headerFilterOK\"),\r\n cancel: _message.default.format(\"dxDataGrid-headerFilterCancel\")\r\n }\r\n }\r\n }\r\n },\r\n controllers: {\r\n headerFilter: HeaderFilterController\r\n },\r\n views: {\r\n headerFilterView: _uiGrid_core3.HeaderFilterView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: DataControllerFilterRowExtender\r\n },\r\n views: {\r\n columnHeadersView: ColumnHeadersViewHeaderFilterExtender,\r\n headerPanel: HeaderPanelHeaderFilterExtender\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/svg_creator.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.getData = getData;\r\nexports.svgCreator = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _ajax = _interopRequireDefault(require(\"../core/utils/ajax\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _svg = require(\"../core/utils/svg\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar svgCreator = {\r\n _markup: \"\",\r\n _imageArray: {},\r\n _imageDeferreds: [],\r\n _getBinaryFile: function(src, callback) {\r\n _ajax.default.sendRequest({\r\n url: src,\r\n method: \"GET\",\r\n responseType: \"arraybuffer\"\r\n }).done(callback).fail(function() {\r\n callback(false)\r\n })\r\n },\r\n _loadImages: function() {\r\n var that = this;\r\n (0, _iterator.each)(that._imageArray, function(src) {\r\n var deferred = new _deferred.Deferred;\r\n that._imageDeferreds.push(deferred);\r\n that._getBinaryFile(src, function(response) {\r\n if (!response) {\r\n delete that._imageArray[src];\r\n deferred.resolve();\r\n return\r\n }\r\n var i;\r\n var binary = \"\";\r\n var bytes = new Uint8Array(response);\r\n var length = bytes.byteLength;\r\n for (i = 0; i < length; i++) {\r\n binary += String.fromCharCode(bytes[i])\r\n }\r\n that._imageArray[src] = \"data:image/png;base64,\" + window.btoa(binary);\r\n deferred.resolve()\r\n })\r\n })\r\n },\r\n _parseImages: function(element) {\r\n var href;\r\n var that = this;\r\n if (\"image\" === element.tagName) {\r\n href = (0, _renderer.default)(element).attr(\"href\") || (0, _renderer.default)(element).attr(\"xlink:href\");\r\n if (!that._imageArray[href]) {\r\n that._imageArray[href] = \"\"\r\n }\r\n }(0, _iterator.each)(element.childNodes, function(_, element) {\r\n that._parseImages(element)\r\n })\r\n },\r\n _prepareImages: function(svgElem) {\r\n this._parseImages(svgElem);\r\n this._loadImages();\r\n return _deferred.when.apply(_renderer.default, this._imageDeferreds)\r\n },\r\n getData: function(data, options) {\r\n var markup;\r\n var that = this;\r\n var xmlVersion = '';\r\n var svgElem = (0, _svg.getSvgElement)(data);\r\n var $svgObject = (0, _renderer.default)(svgElem);\r\n markup = xmlVersion + (0, _svg.getSvgMarkup)($svgObject.get(0), options.backgroundColor);\r\n return that._prepareImages(svgElem).then(function() {\r\n (0, _iterator.each)(that._imageArray, function(href, dataURI) {\r\n var regexpString = \"href=['|\\\"]\".concat(href, \"['|\\\"]\");\r\n markup = markup.replace(new RegExp(regexpString, \"gi\"), 'href=\"'.concat(dataURI, '\"'))\r\n });\r\n return (0, _type.isFunction)(window.Blob) ? that._getBlob(markup) : that._getBase64(markup)\r\n })\r\n },\r\n _getBlob: function(markup) {\r\n return new window.Blob([markup], {\r\n type: \"image/svg+xml\"\r\n })\r\n },\r\n _getBase64: function(markup) {\r\n return window.btoa(markup)\r\n }\r\n};\r\nexports.svgCreator = svgCreator;\r\n\r\nfunction getData(data, options) {\r\n return svgCreator.getData(data, options)\r\n}\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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 _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\nvar _uiData_grid = _interopRequireDefault(require(\"../data_grid/ui.data_grid.core\"));\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 _array_store = _interopRequireDefault(require(\"../../data/array_store\"));\r\nvar _array_utils = require(\"../../data/array_utils\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _uiData_grid.default.Controller.inherit(function() {\r\n function cloneItems(items, groupCount) {\r\n if (items) {\r\n items = items.slice(0);\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n items[i] = (0, _extend.extend)({\r\n key: items[i].key\r\n }, items[i]);\r\n items[i].items = cloneItems(items[i].items, groupCount - 1)\r\n }\r\n }\r\n }\r\n return items\r\n }\r\n\r\n function calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload) {\r\n var operationTypes = {\r\n reload: true,\r\n fullReload: true\r\n };\r\n if (lastLoadOptions) {\r\n operationTypes = {\r\n sorting: !_uiData_grid.default.equalSortParameters(loadOptions.sort, lastLoadOptions.sort),\r\n grouping: !_uiData_grid.default.equalSortParameters(loadOptions.group, lastLoadOptions.group, true),\r\n groupExpanding: !_uiData_grid.default.equalSortParameters(loadOptions.group, lastLoadOptions.group) || lastLoadOptions.groupExpand,\r\n filtering: !_uiData_grid.default.equalFilterParameters(loadOptions.filter, lastLoadOptions.filter),\r\n pageIndex: loadOptions.pageIndex !== lastLoadOptions.pageIndex,\r\n skip: loadOptions.skip !== lastLoadOptions.skip,\r\n take: loadOptions.take !== lastLoadOptions.take,\r\n fullReload: isFullReload\r\n };\r\n operationTypes.reload = isFullReload || operationTypes.sorting || operationTypes.grouping || operationTypes.filtering;\r\n operationTypes.paging = operationTypes.pageIndex || operationTypes.take\r\n }\r\n return operationTypes\r\n }\r\n\r\n function executeTask(action, timeout) {\r\n if ((0, _type.isDefined)(timeout)) {\r\n (0, _common.executeAsync)(action, timeout)\r\n } else {\r\n action()\r\n }\r\n }\r\n\r\n function createEmptyPagesData() {\r\n return {\r\n pages: {}\r\n }\r\n }\r\n\r\n function getPageDataFromCache(options) {\r\n return options.cachedPagesData.pages[options.pageIndex]\r\n }\r\n\r\n function setPageDataToCache(options, data) {\r\n var pageIndex = options.pageIndex;\r\n if (void 0 !== pageIndex) {\r\n options.cachedPagesData.pages[pageIndex] = data\r\n }\r\n }\r\n return {\r\n init: function(dataSource, remoteOperations) {\r\n var that = this;\r\n that._dataSource = dataSource;\r\n that._remoteOperations = remoteOperations || {};\r\n that._isLastPage = !dataSource.isLastPage();\r\n that._hasLastPage = false;\r\n that._currentTotalCount = 0;\r\n that._cachedPagesData = createEmptyPagesData();\r\n that._lastOperationTypes = {};\r\n that._eventsStrategy = dataSource._eventsStrategy;\r\n that._skipCorrection = 0;\r\n that._isLoadingAll = false;\r\n that.changed = (0, _callbacks.default)();\r\n that.loadingChanged = (0, _callbacks.default)();\r\n that.loadError = (0, _callbacks.default)();\r\n that.customizeStoreLoadOptions = (0, _callbacks.default)();\r\n that.changing = (0, _callbacks.default)();\r\n that._dataChangedHandler = that._handleDataChanged.bind(that);\r\n that._dataLoadingHandler = that._handleDataLoading.bind(that);\r\n that._dataLoadedHandler = that._handleDataLoaded.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._pushHandler = that._handlePush.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n dataSource.on(\"changed\", that._dataChangedHandler);\r\n dataSource.on(\"customizeStoreLoadOptions\", that._dataLoadingHandler);\r\n dataSource.on(\"customizeLoadResult\", that._dataLoadedHandler);\r\n dataSource.on(\"loadingChanged\", that._loadingChangedHandler);\r\n dataSource.on(\"loadError\", that._loadErrorHandler);\r\n dataSource.on(\"changing\", that._changingHandler);\r\n dataSource.store().on(\"push\", that._pushHandler);\r\n (0, _iterator.each)(dataSource, function(memberName, member) {\r\n if (!that[memberName] && (0, _type.isFunction)(member)) {\r\n that[memberName] = function() {\r\n return this._dataSource[memberName].apply(this._dataSource, arguments)\r\n }\r\n }\r\n })\r\n },\r\n remoteOperations: function() {\r\n return this._remoteOperations\r\n },\r\n dispose: function(isSharedDataSource) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var store = dataSource.store();\r\n dataSource.off(\"changed\", that._dataChangedHandler);\r\n dataSource.off(\"customizeStoreLoadOptions\", that._dataLoadingHandler);\r\n dataSource.off(\"customizeLoadResult\", that._dataLoadedHandler);\r\n dataSource.off(\"loadingChanged\", that._loadingChangedHandler);\r\n dataSource.off(\"loadError\", that._loadErrorHandler);\r\n dataSource.off(\"changing\", that._changingHandler);\r\n store && store.off(\"push\", that._pushHandler);\r\n if (!isSharedDataSource) {\r\n dataSource.dispose()\r\n }\r\n },\r\n refresh: function(options, operationTypes) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n if (operationTypes.reload) {\r\n that.resetCurrentTotalCount();\r\n that._isLastPage = !dataSource.paginate();\r\n that._hasLastPage = that._isLastPage\r\n }\r\n },\r\n resetCurrentTotalCount: function() {\r\n this._currentTotalCount = 0;\r\n this._skipCorrection = 0\r\n },\r\n resetCache: function() {\r\n this._cachedStoreData = void 0;\r\n this._cachedPagingData = void 0\r\n },\r\n resetPagesCache: function() {\r\n this._cachedPagesData = createEmptyPagesData()\r\n },\r\n _needClearStoreDataCache: function() {\r\n var remoteOperations = this.remoteOperations();\r\n var operationTypes = calculateOperationTypes(this._lastLoadOptions || {}, {});\r\n var isLocalOperations = Object.keys(remoteOperations).every(function(operationName) {\r\n return !operationTypes[operationName] || !remoteOperations[operationName]\r\n });\r\n return !isLocalOperations\r\n },\r\n push: function(changes, fromStore) {\r\n var store = this.store();\r\n if (this._needClearStoreDataCache()) {\r\n this._cachedStoreData = void 0\r\n }\r\n this._cachedPagingData = void 0;\r\n this.resetPagesCache(true);\r\n if (this._cachedStoreData) {\r\n (0, _array_utils.applyBatch)({\r\n keyInfo: store,\r\n data: this._cachedStoreData,\r\n changes: changes\r\n })\r\n }\r\n if (!fromStore) {\r\n this._applyBatch(changes)\r\n }\r\n },\r\n getDataIndexGetter: function() {\r\n var _this = this;\r\n if (!this._dataIndexGetter) {\r\n var indexByKey;\r\n var storeData;\r\n var store = this.store();\r\n this._dataIndexGetter = function(data) {\r\n var isCacheUpdated = storeData && storeData !== _this._cachedStoreData;\r\n if (!indexByKey || isCacheUpdated) {\r\n storeData = _this._cachedStoreData || [];\r\n indexByKey = {};\r\n for (var i = 0; i < storeData.length; i++) {\r\n indexByKey[(0, _common.getKeyHash)(store.keyOf(storeData[i]))] = i\r\n }\r\n }\r\n return indexByKey[(0, _common.getKeyHash)(store.keyOf(data))]\r\n }\r\n }\r\n return this._dataIndexGetter\r\n },\r\n _getKeyInfo: function() {\r\n return this.store()\r\n },\r\n _applyBatch: function(changes) {\r\n var _this2 = this;\r\n var keyInfo = this._getKeyInfo();\r\n var dataSource = this._dataSource;\r\n var groupCount = _uiData_grid.default.normalizeSortingInfo(this.group()).length;\r\n var totalCount = this.totalCount();\r\n var isVirtualMode = \"virtual\" === this.option(\"scrolling.mode\");\r\n changes = changes.filter(function(change) {\r\n return !dataSource.paginate() || \"insert\" !== change.type || void 0 !== change.index\r\n });\r\n var getItemCount = function() {\r\n return groupCount ? _this2.itemsCount() : _this2._items.length\r\n };\r\n var oldItemCount = getItemCount();\r\n (0, _array_utils.applyBatch)({\r\n keyInfo: keyInfo,\r\n data: this._items,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true\r\n });\r\n (0, _array_utils.applyBatch)({\r\n keyInfo: keyInfo,\r\n data: dataSource.items(),\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true\r\n });\r\n if (this._currentTotalCount > 0 || isVirtualMode && totalCount === oldItemCount) {\r\n this._skipCorrection += getItemCount() - oldItemCount\r\n }\r\n changes.splice(0, changes.length)\r\n },\r\n _handlePush: function(changes) {\r\n this.push(changes, true)\r\n },\r\n _handleChanging: function(e) {\r\n this.changing.fire(e);\r\n this._applyBatch(e.changes)\r\n },\r\n _needCleanCacheByOperation: function(operationType, remoteOperations) {\r\n var operationTypesByOrder = [\"filtering\", \"sorting\", \"paging\"];\r\n var operationTypeIndex = operationTypesByOrder.indexOf(operationType);\r\n var currentOperationTypes = operationTypeIndex >= 0 ? operationTypesByOrder.slice(operationTypeIndex) : [operationType];\r\n return currentOperationTypes.some(function(operationType) {\r\n return remoteOperations[operationType]\r\n })\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n var that = this;\r\n var cachedStoreData = that._cachedStoreData;\r\n var cachedPagingData = that._cachedPagingData;\r\n var cachedPagesData = that._cachedPagesData;\r\n if (options.storeLoadOptions.filter && !options.remoteOperations.filtering || options.storeLoadOptions.sort && !options.remoteOperations.sorting) {\r\n options.remoteOperations = {\r\n filtering: options.remoteOperations.filtering\r\n }\r\n }\r\n if (operationTypes.fullReload) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0;\r\n cachedPagesData = createEmptyPagesData()\r\n } else {\r\n if (operationTypes.reload) {\r\n cachedPagingData = void 0;\r\n cachedPagesData = createEmptyPagesData()\r\n } else {\r\n if (operationTypes.take || operationTypes.groupExpanding) {\r\n cachedPagesData = createEmptyPagesData()\r\n }\r\n }(0, _iterator.each)(operationTypes, function(operationType, value) {\r\n if (value && that._needCleanCacheByOperation(operationType, options.remoteOperations)) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0\r\n }\r\n })\r\n }\r\n if (cachedPagingData) {\r\n options.remoteOperations.paging = false\r\n }\r\n options.cachedStoreData = cachedStoreData;\r\n options.cachedPagingData = cachedPagingData;\r\n options.cachedPagesData = cachedPagesData;\r\n if (!options.isCustomLoading) {\r\n that._cachedStoreData = cachedStoreData;\r\n that._cachedPagingData = cachedPagingData;\r\n that._cachedPagesData = cachedPagesData\r\n }\r\n },\r\n _handleDataLoading: function(options) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var lastLoadOptions = that._lastLoadOptions;\r\n that.customizeStoreLoadOptions.fire(options);\r\n options.delay = this.option(\"loadingTimeout\");\r\n options.originalStoreLoadOptions = options.storeLoadOptions;\r\n options.remoteOperations = (0, _extend.extend)({}, this.remoteOperations());\r\n var isFullReload = !that.isLoaded() && !that._isRefreshing;\r\n if (that.option(\"integrationOptions.renderedOnServer\") && !that.isLoaded()) {\r\n options.delay = void 0\r\n }\r\n var loadOptions = (0, _extend.extend)({\r\n pageIndex: that.pageIndex()\r\n }, options.storeLoadOptions);\r\n var operationTypes = calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload);\r\n that._customizeRemoteOperations(options, operationTypes);\r\n if (!options.isCustomLoading) {\r\n var isRefreshing = that._isRefreshing;\r\n options.pageIndex = dataSource.pageIndex();\r\n options.lastLoadOptions = loadOptions;\r\n options.operationTypes = operationTypes;\r\n that._loadingOperationTypes = operationTypes;\r\n that._isRefreshing = true;\r\n (0, _deferred.when)(isRefreshing || that._isRefreshed || that.refresh(options, operationTypes)).done(function() {\r\n if (that._lastOperationId === options.operationId) {\r\n that._isRefreshed = true;\r\n that.load().always(function() {\r\n that._isRefreshed = false\r\n })\r\n }\r\n }).fail(function() {\r\n dataSource.cancel(options.operationId)\r\n }).always(function() {\r\n that._isRefreshing = false\r\n });\r\n dataSource.cancel(that._lastOperationId);\r\n that._lastOperationId = options.operationId;\r\n if (that._isRefreshing) {\r\n dataSource.cancel(that._lastOperationId)\r\n }\r\n }\r\n this._handleDataLoadingCore(options)\r\n },\r\n _handleDataLoadingCore: function(options) {\r\n var remoteOperations = options.remoteOperations;\r\n options.loadOptions = {};\r\n var cachedExtra = options.cachedPagesData.extra;\r\n var localLoadOptionNames = {\r\n filter: !remoteOperations.filtering,\r\n sort: !remoteOperations.sorting,\r\n group: !remoteOperations.grouping,\r\n summary: !remoteOperations.summary,\r\n skip: !remoteOperations.paging,\r\n take: !remoteOperations.paging,\r\n requireTotalCount: cachedExtra && \"totalCount\" in cachedExtra || !remoteOperations.paging\r\n };\r\n (0, _iterator.each)(options.storeLoadOptions, function(optionName, optionValue) {\r\n if (localLoadOptionNames[optionName]) {\r\n options.loadOptions[optionName] = optionValue;\r\n delete options.storeLoadOptions[optionName]\r\n }\r\n });\r\n if (cachedExtra) {\r\n options.extra = cachedExtra\r\n }\r\n options.data = getPageDataFromCache(options) || options.cachedStoreData\r\n },\r\n _handleDataLoaded: function(options) {\r\n var _this3 = this;\r\n var loadOptions = options.loadOptions;\r\n var localPaging = options.remoteOperations && !options.remoteOperations.paging;\r\n var cachedPagesData = options.cachedPagesData;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var needCache = false !== this.option(\"cacheEnabled\") && storeLoadOptions;\r\n var needPageCache = needCache && !options.isCustomLoading && cachedPagesData && (!localPaging || storeLoadOptions.group) && !this.option(\"legacyRendering\");\r\n var needPagingCache = needCache && localPaging;\r\n var needStoreCache = needPagingCache && !options.isCustomLoading;\r\n if (!loadOptions) {\r\n this._dataSource.cancel(options.operationId);\r\n return\r\n }\r\n if (options.lastLoadOptions) {\r\n this._lastLoadOptions = options.lastLoadOptions;\r\n Object.keys(options.operationTypes).forEach(function(operationType) {\r\n _this3._lastOperationTypes[operationType] = _this3._lastOperationTypes[operationType] || options.operationTypes[operationType]\r\n })\r\n }\r\n if (localPaging) {\r\n options.skip = loadOptions.skip;\r\n options.take = loadOptions.take;\r\n delete loadOptions.skip;\r\n delete loadOptions.take\r\n }\r\n if (loadOptions.group) {\r\n loadOptions.group = options.group || loadOptions.group\r\n }\r\n var groupCount = _uiData_grid.default.normalizeSortingInfo(storeLoadOptions.group || loadOptions.group).length;\r\n if (!needPageCache || !getPageDataFromCache(options)) {\r\n if (needPagingCache && options.cachedPagingData) {\r\n options.data = cloneItems(options.cachedPagingData, groupCount)\r\n } else {\r\n if (needStoreCache) {\r\n if (!this._cachedStoreData) {\r\n this._cachedStoreData = cloneItems(options.data, _uiData_grid.default.normalizeSortingInfo(storeLoadOptions.group).length)\r\n } else {\r\n if (options.mergeStoreLoadData) {\r\n options.data = this._cachedStoreData = this._cachedStoreData.concat(options.data)\r\n }\r\n }\r\n }\r\n new _array_store.default(options.data).load(loadOptions).done(function(data) {\r\n options.data = data;\r\n if (needStoreCache) {\r\n _this3._cachedPagingData = cloneItems(options.data, groupCount)\r\n }\r\n }).fail(function(error) {\r\n options.data = (new _deferred.Deferred).reject(error)\r\n })\r\n }\r\n if (loadOptions.requireTotalCount && localPaging) {\r\n options.extra = (0, _type.isPlainObject)(options.extra) ? options.extra : {};\r\n options.extra.totalCount = options.data.length\r\n }\r\n if (options.extra && options.extra.totalCount >= 0 && (false === storeLoadOptions.requireTotalCount || false === loadOptions.requireTotalCount)) {\r\n options.extra.totalCount = -1\r\n }\r\n this._handleDataLoadedCore(options);\r\n if (needPageCache) {\r\n cachedPagesData.extra = cachedPagesData.extra || (0, _extend.extend)({}, options.extra);\r\n (0, _deferred.when)(options.data).done(function(data) {\r\n setPageDataToCache(options, cloneItems(data, groupCount))\r\n })\r\n }\r\n }\r\n options.storeLoadOptions = options.originalStoreLoadOptions\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n if (options.remoteOperations && !options.remoteOperations.paging && Array.isArray(options.data)) {\r\n if (void 0 !== options.skip) {\r\n options.data = options.data.slice(options.skip)\r\n }\r\n if (void 0 !== options.take) {\r\n options.data = options.data.slice(0, options.take)\r\n }\r\n }\r\n },\r\n _handleLoadingChanged: function(isLoading) {\r\n this.loadingChanged.fire(isLoading)\r\n },\r\n _handleLoadError: function(error) {\r\n this.loadError.fire(error);\r\n this.changed.fire({\r\n changeType: \"loadError\",\r\n error: error\r\n })\r\n },\r\n _handleDataChanged: function(args) {\r\n var that = this;\r\n var currentTotalCount;\r\n var dataSource = that._dataSource;\r\n var isLoading = false;\r\n var itemsCount = that.itemsCount();\r\n that._isLastPage = !itemsCount || !that.pageSize() || itemsCount < that.pageSize();\r\n if (that._isLastPage) {\r\n that._hasLastPage = true\r\n }\r\n if (dataSource.totalCount() >= 0) {\r\n if (dataSource.pageIndex() >= that.pageCount()) {\r\n dataSource.pageIndex(that.pageCount() - 1);\r\n that.pageIndex(dataSource.pageIndex());\r\n that.resetPagesCache();\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n } else {\r\n if (!args || (0, _type.isDefined)(args.changeType)) {\r\n currentTotalCount = dataSource.pageIndex() * that.pageSize() + itemsCount;\r\n that._currentTotalCount = Math.max(that._currentTotalCount, currentTotalCount);\r\n if (0 === itemsCount && dataSource.pageIndex() >= that.pageCount()) {\r\n dataSource.pageIndex(that.pageCount() - 1);\r\n if (\"infinite\" !== that.option(\"scrolling.mode\")) {\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n }\r\n }\r\n }\r\n if (!isLoading) {\r\n that._operationTypes = that._lastOperationTypes;\r\n that._lastOperationTypes = {};\r\n that.component._optionCache = {};\r\n that.changed.fire(args);\r\n that.component._optionCache = void 0\r\n }\r\n },\r\n _scheduleCustomLoadCallbacks: function(deferred) {\r\n var that = this;\r\n that._isCustomLoading = true;\r\n deferred.always(function() {\r\n that._isCustomLoading = false\r\n })\r\n },\r\n loadingOperationTypes: function() {\r\n return this._loadingOperationTypes\r\n },\r\n operationTypes: function() {\r\n return this._operationTypes\r\n },\r\n lastLoadOptions: function() {\r\n return this._lastLoadOptions || {}\r\n },\r\n isLastPage: function() {\r\n return this._isLastPage\r\n },\r\n totalCount: function() {\r\n return parseInt((this._currentTotalCount || this._dataSource.totalCount()) + this._skipCorrection)\r\n },\r\n itemsCount: function() {\r\n return this._dataSource.items().length\r\n },\r\n totalItemsCount: function() {\r\n return this.totalCount()\r\n },\r\n pageSize: function() {\r\n var dataSource = this._dataSource;\r\n if (!arguments.length && !dataSource.paginate()) {\r\n return 0\r\n }\r\n return dataSource.pageSize.apply(dataSource, arguments)\r\n },\r\n pageCount: function() {\r\n var that = this;\r\n var count = that.totalItemsCount() - that._skipCorrection;\r\n var pageSize = that.pageSize();\r\n if (pageSize && count > 0) {\r\n return Math.max(1, Math.ceil(count / pageSize))\r\n }\r\n return 1\r\n },\r\n hasKnownLastPage: function() {\r\n return this._hasLastPage || this._dataSource.totalCount() >= 0\r\n },\r\n loadFromStore: function(loadOptions, store) {\r\n var dataSource = this._dataSource;\r\n var d = new _deferred.Deferred;\r\n if (!dataSource) {\r\n return\r\n }\r\n store = store || dataSource.store();\r\n store.load(loadOptions).done(function(data, extra) {\r\n if (data && !Array.isArray(data) && Array.isArray(data.data)) {\r\n extra = data;\r\n data = data.data\r\n }\r\n d.resolve(data, extra)\r\n }).fail(d.reject);\r\n return d\r\n },\r\n isCustomLoading: function() {\r\n return !!this._isCustomLoading\r\n },\r\n load: function(options) {\r\n var _this4 = this;\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new _deferred.Deferred;\r\n if (options) {\r\n var store = dataSource.store();\r\n var dataSourceLoadOptions = dataSource.loadOptions();\r\n var loadResult = {\r\n storeLoadOptions: options,\r\n isCustomLoading: true\r\n };\r\n (0, _iterator.each)(store._customLoadOptions() || [], function(_, optionName) {\r\n if (!(optionName in loadResult.storeLoadOptions)) {\r\n loadResult.storeLoadOptions[optionName] = dataSourceLoadOptions[optionName]\r\n }\r\n });\r\n this._isLoadingAll = options.isLoadingAll;\r\n that._scheduleCustomLoadCallbacks(d);\r\n dataSource._scheduleLoadCallbacks(d);\r\n that._handleDataLoading(loadResult);\r\n executeTask(function() {\r\n if (!dataSource.store()) {\r\n return d.reject(\"canceled\")\r\n }(0, _deferred.when)(loadResult.data || that.loadFromStore(loadResult.storeLoadOptions)).done(function(data, extra) {\r\n loadResult.data = data;\r\n loadResult.extra = extra || {};\r\n that._handleDataLoaded(loadResult);\r\n if (options.requireTotalCount && void 0 === loadResult.extra.totalCount) {\r\n loadResult.extra.totalCount = store.totalCount(loadResult.storeLoadOptions)\r\n }(0, _deferred.when)(loadResult.data, loadResult.extra.totalCount).done(function(data, totalCount) {\r\n loadResult.extra.totalCount = totalCount;\r\n d.resolve(data, loadResult.extra)\r\n }).fail(d.reject)\r\n }).fail(d.reject)\r\n }, that.option(\"loadingTimeout\"));\r\n return d.fail(function() {\r\n that._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n }).always(function() {\r\n _this4._isLoadingAll = false\r\n }).promise()\r\n } else {\r\n return dataSource.load()\r\n }\r\n },\r\n reload: function(full) {\r\n return full ? this._dataSource.reload() : this._dataSource.load()\r\n },\r\n getCachedStoreData: function() {\r\n return this._cachedStoreData\r\n }\r\n }\r\n}());\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.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 _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.focus\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _uiData_grid2 = require(\"./ui.data_grid.utils\");\r\nvar _data = require(\"../../core/utils/data\");\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 MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\n_uiData_grid.default.registerModule(\"focus\", (0, _extend.extend)(true, {}, _uiGrid_core.default, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n changeRowExpand: function(path, isRowClick) {\r\n if (this.option(\"focusedRowEnabled\") && Array.isArray(path) && this.isRowExpanded(path)) {\r\n var keyboardNavigation = this.getController(\"keyboardNavigation\");\r\n if ((!isRowClick || !keyboardNavigation.isKeyboardEnabled()) && this._isFocusedRowInsideGroup(path)) {\r\n this.option(\"focusedRowKey\", path)\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isFocusedRowInsideGroup: function(path) {\r\n var columnsController = this.getController(\"columns\");\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 groups = columnsController.getGroupDataSourceParameters(true);\r\n if (focusedRow) {\r\n for (var i = 0; i < path.length; ++i) {\r\n var getter = (0, _data.compileGetter)(groups[i] && groups[i].selector);\r\n if (getter(focusedRow.data) !== path[i]) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n },\r\n _getGroupPath: function(group) {\r\n var groupPath = [group.key];\r\n var items = group.items;\r\n while (items && items[0]) {\r\n var item = items[0];\r\n if (void 0 !== item.key) {\r\n groupPath.push(item.key)\r\n }\r\n items = item.items\r\n }\r\n return groupPath\r\n },\r\n _expandGroupByPath: function(that, groupPath, level) {\r\n var d = new _deferred.Deferred;\r\n level++;\r\n that.expandRow(groupPath.slice(0, level)).done(function() {\r\n if (level === groupPath.length) {\r\n d.resolve()\r\n } else {\r\n that._expandGroupByPath(that, groupPath, level).done(d.resolve).fail(d.reject)\r\n }\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n _calculateGlobalRowIndexByGroupedData: function(key) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var filter = that._generateFilterByKey(key);\r\n var deferred = new _deferred.Deferred;\r\n var isGroupKey = Array.isArray(key);\r\n var group = dataSource.group();\r\n if (isGroupKey) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n if (!dataSource._grouping._updatePagingOptions) {\r\n that._calculateGlobalRowIndexByFlatData(key, null, true).done(deferred.resolve).fail(deferred.reject);\r\n return deferred\r\n }\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter),\r\n group: group\r\n }).done(function(data) {\r\n if (!data || 0 === data.length || !(0, _type.isDefined)(data[0].key) || data[0].key === -1) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n var groupPath = that._getGroupPath(data[0]);\r\n that._expandGroupByPath(that, groupPath, 0).done(function() {\r\n that._calculateExpandedRowGlobalIndex(deferred, key, groupPath, group)\r\n }).fail(deferred.reject)\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _calculateExpandedRowGlobalIndex: function(deferred, key, groupPath, group) {\r\n var groupFilter = (0, _uiData_grid2.createGroupFilter)(groupPath, {\r\n group: group\r\n });\r\n var dataSource = this._dataSource;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrolling = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var pageSize = dataSource.pageSize();\r\n var groupOffset;\r\n dataSource._grouping._updatePagingOptions({\r\n skip: 0,\r\n take: MAX_SAFE_INTEGER\r\n }, function(groupInfo, totalOffset) {\r\n if ((0, _common.equalByValue)(groupInfo.path, groupPath)) {\r\n groupOffset = totalOffset\r\n }\r\n });\r\n this._calculateGlobalRowIndexByFlatData(key, groupFilter).done(function(dataOffset) {\r\n var count;\r\n var groupContinuationCount;\r\n if (dataOffset < 0) {\r\n deferred.resolve(-1);\r\n return\r\n }\r\n var currentPageOffset = groupOffset % pageSize || pageSize;\r\n count = currentPageOffset + dataOffset - groupPath.length;\r\n if (isVirtualScrolling) {\r\n groupContinuationCount = 0\r\n } else {\r\n groupContinuationCount = Math.floor(count / (pageSize - groupPath.length)) * groupPath.length\r\n }\r\n count = groupOffset + dataOffset + groupContinuationCount;\r\n deferred.resolve(count)\r\n }).fail(deferred.reject)\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.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\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.columns_controller\"));\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_uiData_grid.default.registerModule(\"columns\", {\r\n defaultOptions: function() {\r\n return (0, _extend.extend)(true, {}, _uiGrid_core.default.defaultOptions(), {\r\n commonColumnSettings: {\r\n allowExporting: true\r\n }\r\n })\r\n },\r\n controllers: _uiGrid_core.default.controllers\r\n});\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar MASTER_DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n masterDetail: {\r\n enabled: false,\r\n autoExpandAll: false,\r\n template: null\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n columns: {\r\n _getExpandColumnsCore: function() {\r\n var expandColumns = this.callBase();\r\n if (this.option(\"masterDetail.enabled\")) {\r\n expandColumns.push({\r\n type: \"detailExpand\",\r\n cellTemplate: _uiGrid_core.default.getExpandCellTemplate()\r\n })\r\n }\r\n return expandColumns\r\n }\r\n },\r\n data: function() {\r\n var initMasterDetail = function(that) {\r\n that._expandedItems = [];\r\n that._isExpandAll = that.option(\"masterDetail.autoExpandAll\")\r\n };\r\n return {\r\n init: function() {\r\n var that = this;\r\n initMasterDetail(that);\r\n that.callBase()\r\n },\r\n expandAll: function(groupIndex) {\r\n var that = this;\r\n if (groupIndex < 0) {\r\n that._isExpandAll = true;\r\n that._expandedItems = [];\r\n that.updateItems()\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n collapseAll: function(groupIndex) {\r\n var that = this;\r\n if (groupIndex < 0) {\r\n that._isExpandAll = false;\r\n that._expandedItems = [];\r\n that.updateItems()\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n isRowExpanded: function(key) {\r\n var that = this;\r\n var expandIndex = _uiGrid_core.default.getIndexByKey(key, that._expandedItems);\r\n if (Array.isArray(key)) {\r\n return that.callBase.apply(that, arguments)\r\n } else {\r\n return !!(that._isExpandAll ^ (expandIndex >= 0 && that._expandedItems[expandIndex].visible))\r\n }\r\n },\r\n _getRowIndicesForExpand: function(key) {\r\n var rowIndex = this.getRowIndexByKey(key);\r\n return [rowIndex, rowIndex + 1]\r\n },\r\n _changeRowExpandCore: function(key) {\r\n var that = this;\r\n var result;\r\n if (Array.isArray(key)) {\r\n result = that.callBase.apply(that, arguments)\r\n } else {\r\n var expandIndex = _uiGrid_core.default.getIndexByKey(key, that._expandedItems);\r\n if (expandIndex >= 0) {\r\n var visible = that._expandedItems[expandIndex].visible;\r\n that._expandedItems[expandIndex].visible = !visible\r\n } else {\r\n that._expandedItems.push({\r\n key: key,\r\n visible: true\r\n })\r\n }\r\n that.updateItems({\r\n changeType: \"update\",\r\n rowIndices: that._getRowIndicesForExpand(key)\r\n });\r\n result = (new _deferred.Deferred).resolve()\r\n }\r\n return result\r\n },\r\n _processDataItem: function(data, options) {\r\n var that = this;\r\n var dataItem = that.callBase.apply(that, arguments);\r\n dataItem.isExpanded = that.isRowExpanded(dataItem.key);\r\n if (void 0 === options.detailColumnIndex) {\r\n options.detailColumnIndex = -1;\r\n (0, _iterator.each)(options.visibleColumns, function(index, column) {\r\n if (\"expand\" === column.command && !(0, _type.isDefined)(column.groupIndex)) {\r\n options.detailColumnIndex = index;\r\n return false\r\n }\r\n })\r\n }\r\n if (options.detailColumnIndex >= 0) {\r\n dataItem.values[options.detailColumnIndex] = dataItem.isExpanded\r\n }\r\n return dataItem\r\n },\r\n _processItems: function(items, change) {\r\n var that = this;\r\n var changeType = change.changeType;\r\n var result = [];\r\n items = that.callBase.apply(that, arguments);\r\n if (\"loadingAll\" === changeType) {\r\n return items\r\n }\r\n if (\"refresh\" === changeType) {\r\n that._expandedItems = (0, _common.grep)(that._expandedItems, function(item) {\r\n return item.visible\r\n })\r\n }(0, _iterator.each)(items, function(index, item) {\r\n result.push(item);\r\n var expandIndex = _uiGrid_core.default.getIndexByKey(item.key, that._expandedItems);\r\n if (\"data\" === item.rowType && (item.isExpanded || expandIndex >= 0) && !item.isNewRow) {\r\n result.push({\r\n visible: item.isExpanded,\r\n rowType: \"detail\",\r\n key: item.key,\r\n data: item.data,\r\n values: []\r\n })\r\n }\r\n });\r\n return result\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n var isEnabledChanged;\r\n var isAutoExpandAllChanged;\r\n if (\"masterDetail\" === args.name) {\r\n args.name = \"dataSource\";\r\n switch (args.fullName) {\r\n case \"masterDetail\":\r\n var value = args.value || {};\r\n var previousValue = args.previousValue || {};\r\n isEnabledChanged = value.enabled !== previousValue.enabled;\r\n isAutoExpandAllChanged = value.autoExpandAll !== previousValue.autoExpandAll;\r\n break;\r\n case \"masterDetail.enabled\":\r\n isEnabledChanged = true;\r\n break;\r\n case \"masterDetail.autoExpandAll\":\r\n isAutoExpandAllChanged = true\r\n }\r\n if (isEnabledChanged || isAutoExpandAllChanged) {\r\n initMasterDetail(that)\r\n }\r\n }\r\n that.callBase(args)\r\n }\r\n }\r\n }(),\r\n resizing: {\r\n fireContentReadyAction: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateParentDataGrids(this.component.$element())\r\n },\r\n _updateParentDataGrids: function($element) {\r\n var _this = this;\r\n var $masterDetailRow = $element.closest(\".\" + MASTER_DETAIL_ROW_CLASS);\r\n if ($masterDetailRow.length) {\r\n (0, _deferred.when)(this._updateMasterDataGrid($masterDetailRow, $element)).done(function() {\r\n _this._updateParentDataGrids($masterDetailRow.parent())\r\n })\r\n }\r\n },\r\n _updateMasterDataGrid: function($masterDetailRow, $detailElement) {\r\n var masterRowOptions = (0, _renderer.default)($masterDetailRow).data(\"options\");\r\n var masterDataGrid = (0, _renderer.default)($masterDetailRow).closest(\".\" + this.getWidgetContainerClass()).parent().data(\"dxDataGrid\");\r\n if (masterRowOptions && masterDataGrid) {\r\n if (masterDataGrid.getView(\"rowsView\").isFixedColumns()) {\r\n this._updateFixedMasterDetailGrids(masterDataGrid, masterRowOptions.rowIndex, $detailElement)\r\n } else {\r\n var scrollable = masterDataGrid.getScrollable();\r\n return scrollable && scrollable.update()\r\n }\r\n }\r\n },\r\n _updateFixedMasterDetailGrids: function(masterDataGrid, masterRowIndex, $detailElement) {\r\n var _this2 = this;\r\n var $rows = (0, _renderer.default)(masterDataGrid.getRowElement(masterRowIndex));\r\n if ($rows && 2 === $rows.length && $rows.eq(0).height() !== $rows.eq(1).height()) {\r\n var detailElementWidth = $detailElement.width();\r\n return masterDataGrid.updateDimensions().done(function() {\r\n var isDetailHorizontalScrollCanBeShown = _this2.option(\"columnAutoWidth\") && true === masterDataGrid.option(\"scrolling.useNative\");\r\n var isDetailGridWidthChanged = isDetailHorizontalScrollCanBeShown && detailElementWidth !== $detailElement.width();\r\n if (isDetailHorizontalScrollCanBeShown && isDetailGridWidthChanged) {\r\n _this2.updateDimensions()\r\n }\r\n })\r\n }\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"masterDetail.template\")) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n if ($rowsTable) {\r\n $rowsTable.find(\".dx-master-detail-cell\").css(\"maxWidth\", isBestFit ? 0 : \"\")\r\n }\r\n }\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: function() {\r\n return {\r\n _getCellTemplate: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var editingController = that.getController(\"editing\");\r\n var isEditRow = editingController && editingController.isEditRow(options.rowIndex);\r\n var template;\r\n if (\"detail\" === column.command && !isEditRow) {\r\n template = that.option(\"masterDetail.template\") || {\r\n allowRenderToDetachedContainer: false,\r\n render: that._getDefaultTemplate(column)\r\n }\r\n } else {\r\n template = that.callBase.apply(that, arguments)\r\n }\r\n return template\r\n },\r\n _isDetailRow: function(row) {\r\n return row && row.rowType && 0 === row.rowType.indexOf(\"detail\")\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (row && this._isDetailRow(row)) {\r\n this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n $row.addClass(MASTER_DETAIL_ROW_CLASS);\r\n if ((0, _type.isDefined)(row.visible)) {\r\n $row.toggle(row.visible)\r\n }\r\n }\r\n return $row\r\n },\r\n _renderCells: function($row, options) {\r\n var row = options.row;\r\n var $detailCell;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (row.rowType && this._isDetailRow(row)) {\r\n if (this._needRenderCell(0, options.columnIndices)) {\r\n $detailCell = this._renderCell($row, {\r\n value: null,\r\n row: row,\r\n rowIndex: row.rowIndex,\r\n column: {\r\n command: \"detail\"\r\n },\r\n columnIndex: 0\r\n });\r\n $detailCell.addClass(CELL_FOCUS_DISABLED_CLASS).addClass(MASTER_DETAIL_CELL_CLASS).attr(\"colSpan\", visibleColumns.length)\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }()\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/*!\n * devextreme-vue\n * Version: 20.2.7\n * Build date: Thu Apr 22 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxToolbarItem = exports.DxShow = exports.DxPosition = exports.DxOptions = exports.DxOffset = exports.DxMy = exports.DxHide = exports.DxDropDownOptions = exports.DxCollision = exports.DxButton = exports.DxBoundaryOffset = exports.DxAt = exports.DxAnimation = exports.DxDropDownBox = void 0;\nvar drop_down_box_1 = require(\"devextreme/ui/drop_down_box\");\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxDropDownBox = index_1.createComponent({\n props: {\n acceptCustomValue: Boolean,\n accessKey: String,\n activeStateEnabled: Boolean,\n buttons: Array,\n contentTemplate: {},\n dataSource: [Array, Object, String],\n deferRendering: Boolean,\n disabled: Boolean,\n displayExpr: [Function, String],\n displayValueFormatter: Function,\n dropDownButtonTemplate: {},\n dropDownOptions: Object,\n elementAttr: Object,\n fieldTemplate: {},\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n inputAttr: Object,\n isValid: Boolean,\n items: Array,\n maxLength: [Number, String],\n name: String,\n onChange: Function,\n onClosed: Function,\n onCopy: Function,\n onCut: Function,\n onDisposing: Function,\n onEnterKey: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onInput: Function,\n onKeyDown: Function,\n onKeyUp: Function,\n onOpened: Function,\n onOptionChanged: Function,\n onPaste: Function,\n onValueChanged: Function,\n opened: Boolean,\n openOnFieldClick: Boolean,\n placeholder: String,\n readOnly: Boolean,\n rtlEnabled: Boolean,\n showClearButton: Boolean,\n showDropDownButton: Boolean,\n stylingMode: String,\n tabIndex: Number,\n text: String,\n validationError: Object,\n validationErrors: Array,\n validationMessageMode: String,\n validationStatus: String,\n value: {},\n valueChangeEvent: String,\n valueExpr: [Function, String],\n visible: Boolean,\n width: [Function, Number, String]\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:acceptCustomValue\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:buttons\": null,\n \"update:contentTemplate\": null,\n \"update:dataSource\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:displayExpr\": null,\n \"update:displayValueFormatter\": null,\n \"update:dropDownButtonTemplate\": null,\n \"update:dropDownOptions\": null,\n \"update:elementAttr\": null,\n \"update:fieldTemplate\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:inputAttr\": null,\n \"update:isValid\": null,\n \"update:items\": null,\n \"update:maxLength\": null,\n \"update:name\": null,\n \"update:onChange\": null,\n \"update:onClosed\": null,\n \"update:onCopy\": null,\n \"update:onCut\": null,\n \"update:onDisposing\": null,\n \"update:onEnterKey\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onInput\": null,\n \"update:onKeyDown\": null,\n \"update:onKeyUp\": null,\n \"update:onOpened\": null,\n \"update:onOptionChanged\": null,\n \"update:onPaste\": null,\n \"update:onValueChanged\": null,\n \"update:opened\": null,\n \"update:openOnFieldClick\": null,\n \"update:placeholder\": null,\n \"update:readOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:showClearButton\": null,\n \"update:showDropDownButton\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:text\": null,\n \"update:validationError\": null,\n \"update:validationErrors\": null,\n \"update:validationMessageMode\": null,\n \"update:validationStatus\": null,\n \"update:value\": null,\n \"update:valueChangeEvent\": null,\n \"update:valueExpr\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n model: { prop: \"value\", event: \"update:value\" },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = drop_down_box_1.default;\n this.$_expectedChildren = {\n button: { isCollectionItem: true, optionName: \"buttons\" },\n dropDownOptions: { isCollectionItem: false, optionName: \"dropDownOptions\" }\n };\n }\n});\nexports.DxDropDownBox = DxDropDownBox;\nvar DxAnimation = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:hide\": null,\n \"update:show\": null,\n },\n props: {\n hide: Object,\n show: Object\n }\n});\nexports.DxAnimation = DxAnimation;\nDxAnimation.$_optionName = \"animation\";\nDxAnimation.$_expectedChildren = {\n hide: { isCollectionItem: false, optionName: \"hide\" },\n show: { isCollectionItem: false, optionName: \"show\" }\n};\nvar DxAt = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxAt = DxAt;\nDxAt.$_optionName = \"at\";\nvar DxBoundaryOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxBoundaryOffset = DxBoundaryOffset;\nDxBoundaryOffset.$_optionName = \"boundaryOffset\";\nvar DxButton = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:location\": null,\n \"update:name\": null,\n \"update:options\": null,\n },\n props: {\n location: String,\n name: String,\n options: Object\n }\n});\nexports.DxButton = DxButton;\nDxButton.$_optionName = \"buttons\";\nDxButton.$_isCollectionItem = true;\nDxButton.$_expectedChildren = {\n options: { isCollectionItem: false, optionName: \"options\" }\n};\nvar DxCollision = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxCollision = DxCollision;\nDxCollision.$_optionName = \"collision\";\nvar DxDropDownOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragEnabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxHeight\": null,\n \"update:maxWidth\": null,\n \"update:minHeight\": null,\n \"update:minWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onHidden\": null,\n \"update:onHiding\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onResize\": null,\n \"update:onResizeEnd\": null,\n \"update:onResizeStart\": null,\n \"update:onShowing\": null,\n \"update:onShown\": null,\n \"update:onTitleRendered\": null,\n \"update:position\": null,\n \"update:resizeEnabled\": null,\n \"update:rtlEnabled\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showCloseButton\": null,\n \"update:showTitle\": null,\n \"update:tabIndex\": null,\n \"update:title\": null,\n \"update:titleTemplate\": null,\n \"update:toolbarItems\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n animation: Object,\n bindingOptions: Object,\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n deferRendering: Boolean,\n disabled: Boolean,\n dragEnabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n maxHeight: [Function, Number, String],\n maxWidth: [Function, Number, String],\n minHeight: [Function, Number, String],\n minWidth: [Function, Number, String],\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onHidden: Function,\n onHiding: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onResize: Function,\n onResizeEnd: Function,\n onResizeStart: Function,\n onShowing: Function,\n onShown: Function,\n onTitleRendered: Function,\n position: [Function, Object, String],\n resizeEnabled: Boolean,\n rtlEnabled: Boolean,\n shading: Boolean,\n shadingColor: String,\n showCloseButton: Boolean,\n showTitle: Boolean,\n tabIndex: Number,\n title: String,\n titleTemplate: {},\n toolbarItems: Array,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxDropDownOptions = DxDropDownOptions;\nDxDropDownOptions.$_optionName = \"dropDownOptions\";\nDxDropDownOptions.$_expectedChildren = {\n animation: { isCollectionItem: false, optionName: \"animation\" },\n position: { isCollectionItem: false, optionName: \"position\" },\n toolbarItem: { isCollectionItem: true, optionName: \"toolbarItems\" }\n};\nvar DxHide = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: [Number, Object, String],\n staggerDelay: Number,\n start: Function,\n to: [Number, Object, String],\n type: String\n }\n});\nexports.DxHide = DxHide;\nDxHide.$_optionName = \"hide\";\nvar DxMy = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxMy = DxMy;\nDxMy.$_optionName = \"my\";\nvar DxOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxOffset = DxOffset;\nDxOffset.$_optionName = \"offset\";\nvar DxOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:bindingOptions\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:icon\": null,\n \"update:onClick\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:rtlEnabled\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:type\": null,\n \"update:useSubmitBehavior\": null,\n \"update:validationGroup\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n bindingOptions: Object,\n disabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n icon: String,\n onClick: Function,\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n rtlEnabled: Boolean,\n stylingMode: String,\n tabIndex: Number,\n template: {},\n text: String,\n type: String,\n useSubmitBehavior: Boolean,\n validationGroup: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxOptions = DxOptions;\nDxOptions.$_optionName = \"options\";\nvar DxPosition = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:at\": null,\n \"update:boundary\": null,\n \"update:boundaryOffset\": null,\n \"update:collision\": null,\n \"update:my\": null,\n \"update:of\": null,\n \"update:offset\": null,\n },\n props: {\n at: [Object, String],\n boundary: {},\n boundaryOffset: [Object, String],\n collision: [Object, String],\n my: [Object, String],\n of: {},\n offset: [Object, String]\n }\n});\nexports.DxPosition = DxPosition;\nDxPosition.$_optionName = \"position\";\nDxPosition.$_expectedChildren = {\n at: { isCollectionItem: false, optionName: \"at\" },\n boundaryOffset: { isCollectionItem: false, optionName: \"boundaryOffset\" },\n collision: { isCollectionItem: false, optionName: \"collision\" },\n my: { isCollectionItem: false, optionName: \"my\" },\n offset: { isCollectionItem: false, optionName: \"offset\" }\n};\nvar DxShow = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: [Number, Object, String],\n staggerDelay: Number,\n start: Function,\n to: [Number, Object, String],\n type: String\n }\n});\nexports.DxShow = DxShow;\nDxShow.$_optionName = \"show\";\nvar DxToolbarItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:location\": null,\n \"update:options\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:toolbar\": null,\n \"update:visible\": null,\n \"update:widget\": null,\n },\n props: {\n disabled: Boolean,\n html: String,\n location: String,\n options: Object,\n template: {},\n text: String,\n toolbar: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxToolbarItem = DxToolbarItem;\nDxToolbarItem.$_optionName = \"toolbarItems\";\nDxToolbarItem.$_isCollectionItem = true;\nexports.default = DxDropDownBox;\n","/**\r\n * DevExtreme (exporter/excel/excel.tag_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar tagHelper = {\r\n toXml: function(tagName, attributes, content) {\r\n var result = [\"<\", tagName];\r\n for (var attributeName in attributes) {\r\n var attributeValue = attributes[attributeName];\r\n if ((0, _type.isDefined)(attributeValue)) {\r\n result.push(\" \", attributeName, '=\"', attributeValue, '\"')\r\n }\r\n }\r\n if ((0, _type.isDefined)(content) && \"\" !== content) {\r\n result.push(\">\", content, \"\")\r\n } else {\r\n result.push(\" />\")\r\n }\r\n return result.join(\"\")\r\n }\r\n};\r\nvar _default = tagHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/toolbar/ui.toolbar.strategy.action_sheet.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _uiToolbar = _interopRequireDefault(require(\"./ui.toolbar.strategy\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _action_sheet = _interopRequireDefault(require(\"../action_sheet\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ActionSheetStrategy = _uiToolbar.default.inherit({\r\n NAME: \"actionSheet\",\r\n _getMenuItemTemplate: function() {\r\n return this._toolbar._getTemplate(\"actionSheetItem\")\r\n },\r\n render: function() {\r\n if (!this._hasVisibleMenuItems()) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _menuWidgetClass: function() {\r\n return _action_sheet.default\r\n },\r\n _menuContainer: function() {\r\n return this._toolbar.$element()\r\n },\r\n _widgetOptions: function() {\r\n return (0, _extend.extend)({}, this.callBase(), {\r\n target: this._$button,\r\n showTitle: false\r\n })\r\n },\r\n _menuButtonOptions: function() {\r\n return (0, _extend.extend)({}, this.callBase(), {\r\n icon: \"overflow\"\r\n })\r\n },\r\n _toggleMenu: function() {\r\n this.callBase.apply(this, arguments);\r\n this._menu.toggle(this._menuShown);\r\n this._menuShown = false\r\n }\r\n});\r\nvar _default = ActionSheetStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel_creator.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.getData = getData;\r\nexports.ExcelCreator = void 0;\r\nvar _class = _interopRequireDefault(require(\"../core/class\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"../ui/widget/ui.errors\"));\r\nvar _string = require(\"../core/utils/string\");\r\nvar _jszip = _interopRequireDefault(require(\"jszip\"));\r\nvar _file_saver = require(\"./file_saver\");\r\nvar _excel_format_converter = _interopRequireDefault(require(\"./excel_format_converter\"));\r\nvar _excel = _interopRequireDefault(require(\"./excel/excel.file\"));\r\nvar _deferred = require(\"../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nvar XML_TAG = '';\r\nvar GROUP_SHEET_PR_XML = '';\r\nvar SINGLE_SHEET_PR_XML = \"\";\r\nvar BASE_STYLE_XML2 = '';\r\nvar OPEN_XML_FORMAT_URL = \"http://schemas.openxmlformats.org\";\r\nvar RELATIONSHIP_PART_NAME = \"rels\";\r\nvar XL_FOLDER_NAME = \"xl\";\r\nvar WORKBOOK_FILE_NAME = \"workbook.xml\";\r\nvar CONTENTTYPES_FILE_NAME = \"[Content_Types].xml\";\r\nvar SHAREDSTRING_FILE_NAME = \"sharedStrings.xml\";\r\nvar STYLE_FILE_NAME = \"styles.xml\";\r\nvar WORKSHEETS_FOLDER = \"worksheets\";\r\nvar WORKSHEET_FILE_NAME = \"sheet1.xml\";\r\nvar WORKSHEET_HEADER_XML = '';\r\nvar VALID_TYPES = {\r\n \"boolean\": \"b\",\r\n date: \"d\",\r\n number: \"n\",\r\n string: \"s\"\r\n};\r\nvar EXCEL_START_TIME = Date.UTC(1899, 11, 30);\r\nvar DAYS_COUNT_BEFORE_29_FEB_1900 = 60;\r\nvar MAX_DIGIT_WIDTH_IN_PIXELS = 7;\r\nvar UNSUPPORTED_FORMAT_MAPPING = {\r\n quarter: \"shortDate\",\r\n quarterAndYear: \"shortDate\",\r\n minute: \"longTime\",\r\n millisecond: \"longTime\"\r\n};\r\nvar ExcelCreator = _class.default.inherit({\r\n _getXMLTag: function(tagName, attributes, content) {\r\n var result = \"<\" + tagName;\r\n var i;\r\n var length = attributes.length;\r\n var attr;\r\n for (i = 0; i < length; i++) {\r\n attr = attributes[i];\r\n if (void 0 !== attr.value) {\r\n result = result + \" \" + attr.name + '=\"' + attr.value + '\"'\r\n }\r\n }\r\n return (0, _type.isDefined)(content) ? result + \">\" + content + \"\" : result + \" />\"\r\n },\r\n _convertToExcelCellRef: function(zeroBasedRowIndex, zeroBasedCellIndex) {\r\n var columnName = \"\";\r\n var max = 26;\r\n var charCode;\r\n var isCellIndexFound;\r\n while (!isCellIndexFound) {\r\n charCode = 65 + (zeroBasedCellIndex >= max ? zeroBasedCellIndex % max : Math.ceil(zeroBasedCellIndex));\r\n columnName = String.fromCharCode(charCode) + columnName;\r\n if (zeroBasedCellIndex >= max) {\r\n zeroBasedCellIndex = Math.floor(zeroBasedCellIndex / max) - 1\r\n } else {\r\n isCellIndexFound = true\r\n }\r\n }\r\n return columnName + (zeroBasedRowIndex + 1)\r\n },\r\n _convertToExcelCellRefAndTrackMaxIndex: function(rowIndex, cellIndex) {\r\n if (this._maxRowIndex < Number(rowIndex)) {\r\n this._maxRowIndex = Number(rowIndex)\r\n }\r\n if (this._maxColumnIndex < Number(cellIndex)) {\r\n this._maxColumnIndex = Number(cellIndex)\r\n }\r\n return this._convertToExcelCellRef(rowIndex, cellIndex)\r\n },\r\n _getDataType: function(dataType) {\r\n return VALID_TYPES[dataType] || VALID_TYPES.string\r\n },\r\n _tryGetExcelCellDataType: function(object) {\r\n if ((0, _type.isDefined)(object)) {\r\n if (\"number\" === typeof object) {\r\n if (isFinite(object)) {\r\n return VALID_TYPES.number\r\n } else {\r\n return VALID_TYPES.string\r\n }\r\n } else {\r\n if ((0, _type.isString)(object)) {\r\n return VALID_TYPES.string\r\n } else {\r\n if ((0, _type.isDate)(object)) {\r\n return VALID_TYPES.number\r\n } else {\r\n if ((0, _type.isBoolean)(object)) {\r\n return VALID_TYPES.boolean\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _formatObjectConverter: function(format, dataType) {\r\n var result = {\r\n format: format,\r\n precision: format && format.precision,\r\n dataType: dataType\r\n };\r\n if ((0, _type.isObject)(format)) {\r\n return (0, _extend.extend)(result, format, {\r\n format: format.formatter || format.type,\r\n currency: format.currency\r\n })\r\n }\r\n return result\r\n },\r\n _tryConvertToExcelNumberFormat: function(format, dataType) {\r\n var newFormat = this._formatObjectConverter(format, dataType);\r\n format = newFormat.format;\r\n var currency = newFormat.currency;\r\n dataType = newFormat.dataType;\r\n if ((0, _type.isDefined)(format) && \"date\" === dataType) {\r\n format = UNSUPPORTED_FORMAT_MAPPING[format && format.type || format] || format\r\n }\r\n return _excel_format_converter.default.convertFormat(format, newFormat.precision, dataType, currency)\r\n },\r\n _appendString: function(value) {\r\n if ((0, _type.isDefined)(value)) {\r\n value = String(value);\r\n if (value.length) {\r\n value = (0, _string.encodeHtml)(value);\r\n if (void 0 === this._stringHash[value]) {\r\n this._stringHash[value] = this._stringArray.length;\r\n this._stringArray.push(value)\r\n }\r\n return this._stringHash[value]\r\n }\r\n }\r\n },\r\n _tryGetExcelDateValue: function(date) {\r\n var days;\r\n var totalTime;\r\n if ((0, _type.isDate)(date)) {\r\n days = Math.floor((Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - EXCEL_START_TIME) / 864e5);\r\n if (days < DAYS_COUNT_BEFORE_29_FEB_1900) {\r\n days--\r\n }\r\n totalTime = (3600 * date.getHours() + 60 * date.getMinutes() + date.getSeconds()) / 86400;\r\n return days + totalTime\r\n }\r\n },\r\n _prepareValue: function(rowIndex, cellIndex) {\r\n var dataProvider = this._dataProvider;\r\n var _ref = dataProvider.getCellData(rowIndex, cellIndex) || {},\r\n cellSourceData = _ref.cellSourceData;\r\n var _ref2 = dataProvider.getCellData(rowIndex, cellIndex) || {},\r\n value = _ref2.value;\r\n var sourceValue;\r\n var type = this._getDataType(dataProvider.getCellType(rowIndex, cellIndex));\r\n if (type === VALID_TYPES.date && !(0, _type.isDate)(value)) {\r\n type = VALID_TYPES.string\r\n }\r\n switch (type) {\r\n case VALID_TYPES.string:\r\n sourceValue = value;\r\n value = this._appendString(value);\r\n break;\r\n case VALID_TYPES.date:\r\n sourceValue = value;\r\n value = this._tryGetExcelDateValue(value);\r\n type = VALID_TYPES.number\r\n }\r\n return {\r\n value: value,\r\n type: type,\r\n sourceValue: sourceValue,\r\n cellSourceData: cellSourceData\r\n }\r\n },\r\n _callCustomizeExcelCell: function(_ref3) {\r\n var dataProvider = _ref3.dataProvider,\r\n value = _ref3.value,\r\n style = _ref3.style,\r\n sourceData = _ref3.sourceData;\r\n var styleCopy = _excel.default.copyCellFormat(style);\r\n var args = {\r\n value: value,\r\n numberFormat: styleCopy.numberFormat,\r\n clearStyle: function() {\r\n this.horizontalAlignment = null;\r\n this.verticalAlignment = null;\r\n this.wrapTextEnabled = null;\r\n this.font = null;\r\n this.numberFormat = null\r\n }\r\n };\r\n if ((0, _type.isDefined)(styleCopy)) {\r\n if ((0, _type.isDefined)(styleCopy.alignment)) {\r\n args.horizontalAlignment = styleCopy.alignment.horizontal;\r\n args.verticalAlignment = styleCopy.alignment.vertical;\r\n args.wrapTextEnabled = styleCopy.alignment.wrapText\r\n }\r\n args.backgroundColor = styleCopy.backgroundColor;\r\n args.fillPatternType = styleCopy.fillPatternType;\r\n args.fillPatternColor = styleCopy.fillPatternColor;\r\n args.font = styleCopy.font\r\n }\r\n dataProvider.customizeExcelCell(args, sourceData);\r\n var newStyle = styleCopy || {};\r\n newStyle.font = args.font;\r\n newStyle.alignment = newStyle.alignment || {};\r\n newStyle.alignment.horizontal = args.horizontalAlignment;\r\n newStyle.alignment.vertical = args.verticalAlignment;\r\n newStyle.alignment.wrapText = args.wrapTextEnabled;\r\n newStyle.backgroundColor = args.backgroundColor;\r\n newStyle.fillPatternType = args.fillPatternType;\r\n newStyle.fillPatternColor = args.fillPatternColor;\r\n newStyle.numberFormat = args.numberFormat;\r\n return {\r\n value: args.value,\r\n style: newStyle\r\n }\r\n },\r\n _getDataArray: function() {\r\n var that = this;\r\n var rowIndex;\r\n var cellIndex;\r\n var cellsArray;\r\n var cellData;\r\n var result = [];\r\n var dataProvider = that._dataProvider;\r\n var rowsLength = dataProvider.getRowsCount();\r\n var columns = dataProvider.getColumns();\r\n var cellsLength;\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n cellsArray = [];\r\n cellsLength = columns.length;\r\n for (cellIndex = 0; cellIndex !== cellsLength; cellIndex++) {\r\n cellData = that._prepareValue(rowIndex, cellIndex);\r\n var styleArrayIndex = dataProvider.getStyleId(rowIndex, cellIndex);\r\n var cellStyleId = this._styleArrayIndexToCellStyleIdMap[styleArrayIndex];\r\n if (dataProvider.hasCustomizeExcelCell && dataProvider.hasCustomizeExcelCell()) {\r\n var value = cellData.sourceValue || cellData.value;\r\n var modifiedExcelCell = this._callCustomizeExcelCell({\r\n dataProvider: dataProvider,\r\n value: value,\r\n style: that._styleArray[styleArrayIndex],\r\n sourceData: cellData.cellSourceData\r\n });\r\n if (modifiedExcelCell.value !== value) {\r\n if (_typeof(modifiedExcelCell.value) !== _typeof(value) || \"number\" === typeof modifiedExcelCell.value && !isFinite(modifiedExcelCell.value)) {\r\n var cellDataType = this._tryGetExcelCellDataType(modifiedExcelCell.value);\r\n if ((0, _type.isDefined)(cellDataType)) {\r\n cellData.type = cellDataType\r\n }\r\n }\r\n switch (cellData.type) {\r\n case VALID_TYPES.string:\r\n cellData.value = this._appendString(modifiedExcelCell.value);\r\n break;\r\n case VALID_TYPES.date:\r\n cellData.value = modifiedExcelCell.value;\r\n break;\r\n case VALID_TYPES.number:\r\n var newValue = modifiedExcelCell.value;\r\n var excelDateValue = this._tryGetExcelDateValue(newValue);\r\n if ((0, _type.isDefined)(excelDateValue)) {\r\n newValue = excelDateValue\r\n }\r\n cellData.value = newValue;\r\n break;\r\n default:\r\n cellData.value = modifiedExcelCell.value\r\n }\r\n }\r\n cellStyleId = this._excelFile.registerCellFormat(modifiedExcelCell.style)\r\n }\r\n cellsArray.push({\r\n style: cellStyleId,\r\n value: cellData.value,\r\n type: cellData.type\r\n })\r\n }\r\n if (!that._needSheetPr && dataProvider.getGroupLevel(rowIndex) > 0) {\r\n that._needSheetPr = true\r\n }\r\n result.push(cellsArray)\r\n }\r\n return result\r\n },\r\n _calculateWidth: function(pixelsWidth) {\r\n pixelsWidth = parseInt(pixelsWidth, 10);\r\n if (!pixelsWidth || pixelsWidth < 5) {\r\n pixelsWidth = 100\r\n }\r\n return Math.min(255, Math.floor((pixelsWidth - 5) / MAX_DIGIT_WIDTH_IN_PIXELS * 100 + .5) / 100)\r\n },\r\n _prepareStyleData: function() {\r\n var _this = this;\r\n var that = this;\r\n var styles = that._dataProvider.getStyles();\r\n that._dataProvider.getColumns().forEach(function(column) {\r\n that._colsArray.push(that._calculateWidth(column.width))\r\n });\r\n var fonts = [{\r\n size: 11,\r\n color: {\r\n theme: 1\r\n },\r\n name: \"Calibri\",\r\n family: 2,\r\n scheme: \"minor\",\r\n bold: false\r\n }, {\r\n size: 11,\r\n color: {\r\n theme: 1\r\n },\r\n name: \"Calibri\",\r\n family: 2,\r\n scheme: \"minor\",\r\n bold: true\r\n }];\r\n this._excelFile.registerFont(fonts[0]);\r\n this._excelFile.registerFont(fonts[1]);\r\n styles.forEach(function(style) {\r\n var numberFormat = that._tryConvertToExcelNumberFormat(style.format, style.dataType);\r\n if (!(0, _type.isDefined)(numberFormat)) {\r\n numberFormat = 0\r\n }\r\n that._styleArray.push({\r\n font: fonts[Number(!!style.bold)],\r\n numberFormat: numberFormat,\r\n alignment: {\r\n vertical: \"top\",\r\n wrapText: !!style.wrapText,\r\n horizontal: style.alignment || \"left\"\r\n }\r\n })\r\n });\r\n that._styleArrayIndexToCellStyleIdMap = that._styleArray.map(function(item) {\r\n return _this._excelFile.registerCellFormat(item)\r\n })\r\n },\r\n _prepareCellData: function() {\r\n this._cellsArray = this._getDataArray()\r\n },\r\n _createXMLRelationships: function(xmlRelationships) {\r\n return this._getXMLTag(\"Relationships\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/package/2006/relationships\"\r\n }], xmlRelationships)\r\n },\r\n _createXMLRelationship: function(id, type, target) {\r\n return this._getXMLTag(\"Relationship\", [{\r\n name: \"Id\",\r\n value: \"rId\" + id\r\n }, {\r\n name: \"Type\",\r\n value: OPEN_XML_FORMAT_URL + \"/officeDocument/2006/relationships/\" + type\r\n }, {\r\n name: \"Target\",\r\n value: target\r\n }])\r\n },\r\n _getWorkbookContent: function() {\r\n var content = 'Sheet!$1:$1';\r\n return XML_TAG + this._getXMLTag(\"workbook\", [{\r\n name: \"xmlns:r\",\r\n value: OPEN_XML_FORMAT_URL + \"/officeDocument/2006/relationships\"\r\n }, {\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }], content)\r\n },\r\n _getContentTypesContent: function() {\r\n return XML_TAG + ''\r\n },\r\n _generateStylesXML: function() {\r\n var that = this;\r\n var folder = that._zip.folder(XL_FOLDER_NAME);\r\n var XML = \"\";\r\n XML += this._excelFile.generateNumberFormatsXml();\r\n XML += this._excelFile.generateFontsXml();\r\n XML += this._excelFile.generateFillsXml();\r\n XML += BASE_STYLE_XML2;\r\n XML += this._excelFile.generateCellFormatsXml();\r\n XML += that._getXMLTag(\"cellStyles\", [{\r\n name: \"count\",\r\n value: 1\r\n }], that._getXMLTag(\"cellStyle\", [{\r\n name: \"name\",\r\n value: \"Normal\"\r\n }, {\r\n name: \"xfId\",\r\n value: 0\r\n }, {\r\n name: \"builtinId\",\r\n value: 0\r\n }]));\r\n XML = XML_TAG + that._getXMLTag(\"styleSheet\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }], XML);\r\n folder.file(STYLE_FILE_NAME, XML);\r\n that._styleArray = []\r\n },\r\n _generateStringsXML: function() {\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var stringIndex;\r\n var stringsLength = this._stringArray.length;\r\n var sharedStringXml = XML_TAG;\r\n for (stringIndex = 0; stringIndex < stringsLength; stringIndex++) {\r\n this._stringArray[stringIndex] = this._getXMLTag(\"si\", [], this._getXMLTag(\"t\", [], this._stringArray[stringIndex]))\r\n }\r\n sharedStringXml += this._getXMLTag(\"sst\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }, {\r\n name: \"count\",\r\n value: this._stringArray.length\r\n }, {\r\n name: \"uniqueCount\",\r\n value: this._stringArray.length\r\n }], this._stringArray.join(\"\"));\r\n folder.file(SHAREDSTRING_FILE_NAME, sharedStringXml);\r\n this._stringArray = []\r\n },\r\n _getPaneXML: function() {\r\n var attributes = [{\r\n name: \"activePane\",\r\n value: \"bottomLeft\"\r\n }, {\r\n name: \"state\",\r\n value: \"frozen\"\r\n }];\r\n var frozenArea = this._dataProvider.getFrozenArea();\r\n if (!(frozenArea.x || frozenArea.y)) {\r\n return \"\"\r\n }\r\n if (frozenArea.x) {\r\n attributes.push({\r\n name: \"xSplit\",\r\n value: frozenArea.x\r\n })\r\n }\r\n if (frozenArea.y) {\r\n attributes.push({\r\n name: \"ySplit\",\r\n value: frozenArea.y\r\n })\r\n }\r\n attributes.push({\r\n name: \"topLeftCell\",\r\n value: this._convertToExcelCellRefAndTrackMaxIndex(frozenArea.y, frozenArea.x)\r\n });\r\n return this._getXMLTag(\"pane\", attributes)\r\n },\r\n _getAutoFilterXML: function(maxCellIndex) {\r\n if (this._options.autoFilterEnabled) {\r\n return ''\r\n }\r\n return \"\"\r\n },\r\n _getIgnoredErrorsXML: function(maxCellIndex) {\r\n if (this._options.ignoreErrors) {\r\n return ''\r\n }\r\n return \"\"\r\n },\r\n _generateWorksheetXML: function() {\r\n var colIndex;\r\n var rowIndex;\r\n var cellData;\r\n var xmlCells;\r\n var xmlRows = [];\r\n var rowsLength = this._cellsArray.length;\r\n var cellsLength;\r\n var colsLength = this._colsArray.length;\r\n var rSpans = \"1:\" + colsLength;\r\n var headerRowCount = this._dataProvider.getHeaderRowCount ? this._dataProvider.getHeaderRowCount() : 1;\r\n var xmlResult = [WORKSHEET_HEADER_XML];\r\n xmlResult.push(this._needSheetPr ? GROUP_SHEET_PR_XML : SINGLE_SHEET_PR_XML);\r\n xmlResult.push('');\r\n xmlResult.push(\"');\r\n xmlResult.push(this._getPaneXML());\r\n xmlResult.push(\"\");\r\n xmlResult.push(' 0 ? this._dataProvider.getGroupLevel(0) : 0) + '\"');\r\n xmlResult.push(' x14ac:dyDescent=\"0.25\"/>');\r\n for (colIndex = 0; colIndex < colsLength; colIndex++) {\r\n this._colsArray[colIndex] = this._getXMLTag(\"col\", [{\r\n name: \"width\",\r\n value: this._colsArray[colIndex]\r\n }, {\r\n name: \"min\",\r\n value: Number(colIndex) + 1\r\n }, {\r\n name: \"max\",\r\n value: Number(colIndex) + 1\r\n }, {\r\n name: \"customWidth\",\r\n value: 1\r\n }])\r\n }\r\n xmlResult.push(this._getXMLTag(\"cols\", [], this._colsArray.join(\"\")) + \"\");\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n xmlCells = [];\r\n cellsLength = this._cellsArray[rowIndex].length;\r\n for (colIndex = 0; colIndex < cellsLength; colIndex++) {\r\n rowIndex = Number(rowIndex);\r\n cellData = this._cellsArray[rowIndex][colIndex];\r\n xmlCells.push(this._getXMLTag(\"c\", [{\r\n name: \"r\",\r\n value: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex, colIndex)\r\n }, {\r\n name: \"s\",\r\n value: cellData.style\r\n }, {\r\n name: \"t\",\r\n value: cellData.type\r\n }], (0, _type.isDefined)(cellData.value) ? this._getXMLTag(\"v\", [], cellData.value) : null))\r\n }\r\n xmlRows.push(this._getXMLTag(\"row\", [{\r\n name: \"r\",\r\n value: Number(rowIndex) + 1\r\n }, {\r\n name: \"spans\",\r\n value: rSpans\r\n }, {\r\n name: \"outlineLevel\",\r\n value: rowIndex >= headerRowCount ? this._dataProvider.getGroupLevel(rowIndex) : 0\r\n }, {\r\n name: \"x14ac:dyDescent\",\r\n value: \"0.25\"\r\n }], xmlCells.join(\"\")));\r\n this._cellsArray[rowIndex] = null;\r\n if (xmlRows.length > 1e4) {\r\n xmlResult.push(xmlRows.join(\"\"));\r\n xmlRows = []\r\n }\r\n }\r\n xmlResult.push(xmlRows.join(\"\"));\r\n xmlRows = [];\r\n var rightBottomCellRef = this._convertToExcelCellRef(this._maxRowIndex, this._maxColumnIndex);\r\n xmlResult.push(\"\" + this._getAutoFilterXML(rightBottomCellRef) + this._generateMergingXML() + this._getIgnoredErrorsXML(rightBottomCellRef) + \"\");\r\n this._zip.folder(XL_FOLDER_NAME).folder(WORKSHEETS_FOLDER).file(WORKSHEET_FILE_NAME, xmlResult.join(\"\"));\r\n this._colsArray = [];\r\n this._cellsArray = [];\r\n xmlResult = []\r\n },\r\n _generateMergingXML: function() {\r\n var k;\r\n var l;\r\n var cellIndex;\r\n var rowIndex;\r\n var rowsLength = (0, _type.isDefined)(this._dataProvider.getHeaderRowCount) ? this._dataProvider.getHeaderRowCount() : this._dataProvider.getRowsCount();\r\n var columnsLength = this._dataProvider.getColumns().length;\r\n var usedArea = [];\r\n var mergeArray = [];\r\n var mergeIndex;\r\n var mergeXML = \"\";\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n for (cellIndex = 0; cellIndex !== columnsLength; cellIndex++) {\r\n if (!(0, _type.isDefined)(usedArea[rowIndex]) || !(0, _type.isDefined)(usedArea[rowIndex][cellIndex])) {\r\n var cellMerge = this._dataProvider.getCellMerging(rowIndex, cellIndex);\r\n if (cellMerge.colspan || cellMerge.rowspan) {\r\n mergeArray.push({\r\n start: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex, cellIndex),\r\n end: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex + (cellMerge.rowspan || 0), cellIndex + (cellMerge.colspan || 0))\r\n });\r\n for (k = rowIndex; k <= rowIndex + cellMerge.rowspan || 0; k++) {\r\n for (l = cellIndex; l <= cellIndex + cellMerge.colspan || 0; l++) {\r\n if (!(0, _type.isDefined)(usedArea[k])) {\r\n usedArea[k] = []\r\n }\r\n usedArea[k][l] = true\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n var mergeArrayLength = mergeArray.length;\r\n for (mergeIndex = 0; mergeIndex < mergeArrayLength; mergeIndex++) {\r\n mergeXML += this._getXMLTag(\"mergeCell\", [{\r\n name: \"ref\",\r\n value: mergeArray[mergeIndex].start + \":\" + mergeArray[mergeIndex].end\r\n }])\r\n }\r\n return mergeXML.length ? this._getXMLTag(\"mergeCells\", [{\r\n name: \"count\",\r\n value: mergeArrayLength\r\n }], mergeXML) : \"\"\r\n },\r\n _generateCommonXML: function() {\r\n var relsFileContent = XML_TAG + this._createXMLRelationships(this._createXMLRelationship(1, \"officeDocument\", \"xl/\" + WORKBOOK_FILE_NAME));\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var relsXML = XML_TAG;\r\n this._zip.folder(\"_\" + RELATIONSHIP_PART_NAME).file(\".\" + RELATIONSHIP_PART_NAME, relsFileContent);\r\n var xmlRelationships = this._createXMLRelationship(1, \"worksheet\", \"worksheets/\" + WORKSHEET_FILE_NAME) + this._createXMLRelationship(2, \"styles\", STYLE_FILE_NAME) + this._createXMLRelationship(3, \"sharedStrings\", SHAREDSTRING_FILE_NAME);\r\n relsXML += this._createXMLRelationships(xmlRelationships);\r\n folder.folder(\"_\" + RELATIONSHIP_PART_NAME).file(WORKBOOK_FILE_NAME + \".rels\", relsXML);\r\n folder.file(WORKBOOK_FILE_NAME, this._getWorkbookContent());\r\n this._zip.file(CONTENTTYPES_FILE_NAME, this._getContentTypesContent())\r\n },\r\n _generateContent: function() {\r\n this._prepareStyleData();\r\n this._prepareCellData();\r\n this._generateWorkXML();\r\n this._generateCommonXML()\r\n },\r\n _generateWorkXML: function() {\r\n this._generateStylesXML();\r\n this._generateStringsXML();\r\n this._generateWorksheetXML()\r\n },\r\n ctor: function(dataProvider, options) {\r\n this._rtlEnabled = options && !!options.rtlEnabled;\r\n this._options = options;\r\n this._maxRowIndex = 0;\r\n this._maxColumnIndex = 0;\r\n this._stringArray = [];\r\n this._stringHash = {};\r\n this._styleArray = [];\r\n this._colsArray = [];\r\n this._cellsArray = [];\r\n this._needSheetPr = false;\r\n this._dataProvider = dataProvider;\r\n this._excelFile = new _excel.default;\r\n if ((0, _type.isDefined)(ExcelCreator.JSZip)) {\r\n this._zip = new ExcelCreator.JSZip\r\n } else {\r\n this._zip = null\r\n }\r\n },\r\n _checkZipState: function() {\r\n if (!this._zip) {\r\n throw _ui.default.Error(\"E1041\", \"JSZip\")\r\n }\r\n },\r\n ready: function() {\r\n return this._dataProvider.ready()\r\n },\r\n getData: function(isBlob) {\r\n var options = {\r\n type: isBlob ? \"blob\" : \"base64\",\r\n compression: \"DEFLATE\",\r\n mimeType: _file_saver.MIME_TYPES.EXCEL\r\n };\r\n var deferred = new _deferred.Deferred;\r\n this._checkZipState();\r\n this._generateContent();\r\n if (this._zip.generateAsync) {\r\n this._zip.generateAsync(options).then(deferred.resolve)\r\n } else {\r\n deferred.resolve(this._zip.generate(options))\r\n }\r\n return deferred\r\n }\r\n});\r\nexports.ExcelCreator = ExcelCreator;\r\nExcelCreator.JSZip = _jszip.default;\r\n\r\nfunction getData(data, options) {\r\n var excelCreator = new ExcelCreator(data, options);\r\n excelCreator._checkZipState();\r\n return excelCreator.ready().then(function() {\r\n return excelCreator.getData((0, _type.isFunction)((0, _window.getWindow)().Blob))\r\n })\r\n}\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.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 _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.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_uiData_grid.default.registerModule(\"contextMenu\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.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 _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.master_detail\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"masterDetail\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.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\nexports.ColumnChooserView = exports.ColumnChooserController = void 0;\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.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\nvar ColumnChooserController = _uiGrid_core.default.controllers.columnChooser;\r\nexports.ColumnChooserController = ColumnChooserController;\r\nvar ColumnChooserView = _uiGrid_core.default.views.columnChooserView;\r\nexports.ColumnChooserView = ColumnChooserView;\r\n_uiData_grid.default.registerModule(\"columnChooser\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/overlay/utils.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getElementMaxHeightByWindow = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _type = require(\"../../core/utils/type\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar WINDOW_HEIGHT_PERCENT = .9;\r\nvar getElementMaxHeightByWindow = function($element, startLocation) {\r\n var $window = (0, _renderer.default)((0, _window.getWindow)());\r\n var _$element$offset = $element.offset(),\r\n elementOffset = _$element$offset.top;\r\n var actualOffset;\r\n if ((0, _type.isNumeric)(startLocation)) {\r\n if (startLocation < elementOffset) {\r\n return elementOffset - startLocation\r\n } else {\r\n actualOffset = $window.innerHeight() - startLocation + $window.scrollTop()\r\n }\r\n } else {\r\n var offsetTop = elementOffset - $window.scrollTop();\r\n var offsetBottom = $window.innerHeight() - offsetTop - $element.outerHeight();\r\n actualOffset = Math.max(offsetTop, offsetBottom)\r\n }\r\n return actualOffset * WINDOW_HEIGHT_PERCENT\r\n};\r\nexports.getElementMaxHeightByWindow = getElementMaxHeightByWindow;\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.hasPermission)?_c('v-card',{staticClass:\"card-form\",attrs:{\"id\":\"card_templates\"}},[_c('div',{staticClass:\"div-form\"},[_c('v-form',{ref:\"form\",staticClass:\"form-template\",on:{\"submit\":function($event){$event.preventDefault();return _vm.saveTemplate($event)}}},[_c('v-card-title',[_c('h1',[_vm._v(\" \"+_vm._s(_vm.$t('plantillas.plantilla'))+\": \"+_vm._s(_vm.templateTitle)+\" - \"+_vm._s(_vm.$t('plantillas.version'))+\": \"+_vm._s(_vm.numVersion)+\" \")]),_c('div',[_c('v-btn',{attrs:{\"color\":\"black\",\"fab\":\"\",\"dark\":\"\",\"absolute\":\"\",\"right\":\"\"},on:{\"click\":function($event){return _vm.goToListListVersions()}}},[_c('v-icon',[_vm._v(\"arrow_back\")])],1)],1)]),_c('v-card-text',[_c('v-container',{staticClass:\"pt-0\"},[_c('v-layout',{attrs:{\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"xs9\":\"\"}},[_c('div',[_vm._v(_vm._s(_vm.$t('plantillas.description'))+\":\")]),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('span',_vm._g(_vm._b({staticClass:\"text-codes\"},'span',attrs,false),on),[_vm._v(_vm._s(_vm.editTemplateVersion.description))])]}}],null,false,901147854)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.editTemplateVersion.description)+\" \")])])],1),_c('br'),_c('br'),_c('br'),_c('br'),_c('v-flex',{attrs:{\"xs7\":\"\"}},[_c('h3',[_vm._v(_vm._s(_vm.$t('plantillas.campos')))])]),(_vm.idVersion != 0)?_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-data-table',{attrs:{\"id\":\"tabla_fields\",\"headers\":_vm.headers,\"items\":_vm.fields,\"loading\":_vm.loading,\"search\":_vm.search,\"footer-props\":{ 'items-per-page-options': [10, 20, 30, 40, 50] },\"items-per-page\":50,\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"item.code\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('span',_vm._g(_vm._b({},'span',attrs,false),on),[_vm._v(_vm._s(_vm.formattedContent(item.code)))])]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(item.code)+\" \")])])]}},{key:\"item.label\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('span',_vm._g(_vm._b({},'span',attrs,false),on),[_vm._v(_vm._s(_vm.formattedContent(item.label)))])]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(item.label)+\" \")])])]}},{key:\"item.fieldType\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('span',_vm._g(_vm._b({},'span',attrs,false),on),[_vm._v(_vm._s(_vm.formattedContent(item.fieldType.type)))])]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(item.fieldType.type)+\" \")])])]}},{key:\"item.description\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('span',_vm._g(_vm._b({},'span',attrs,false),on),[_vm._v(_vm._s(_vm.formattedContent(item.description)))])]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(item.description)+\" \")])])]}},{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('maestros.no-results'))+\" \\\"\"+_vm._s(_vm.search)+\"\\\". \")]},proxy:true}],null,false,2802617151)})],1):_vm._e()],1)],1)],1)],1)],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { itiMessageService, itiPermissionService, itiTokenService } from '@/iti-core-vue';\nimport templatesModule from '@/store/modules/templates.module';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { validate, ValidationProvider } from 'vee-validate';\nimport { Field } from '@/shared/dtos/field';\nimport { ItiIconButton, ItiVHeader } from '@/iti-core-vuetify';\nimport DxSelectBox from 'devextreme-vue/select-box';\nimport DxTextBox from 'devextreme-vue/text-box';\nimport DxNumberBox from 'devextreme-vue/number-box';\nimport DxTextArea from 'devextreme-vue/text-area';\nimport DxButton from 'devextreme-vue/button';\nimport DxDropDownBox from 'devextreme-vue/drop-down-box';\nimport DxTreeView from 'devextreme-vue/tree-view';\nimport DxCheckBox from 'devextreme-vue/check-box';\nimport { DxDataGrid, DxSelection, DxPaging, DxFilterRow, DxScrolling } from 'devextreme-vue/data-grid';\nimport DxValidationSummary from 'devextreme-vue/validation-summary';\nimport {\n DxValidator,\n DxRequiredRule,\n DxCompareRule,\n DxStringLengthRule,\n} from 'devextreme-vue/validator';\nimport { Permission } from '@/shared/permissions';\n\n@Component({\n components: {\n ValidationProvider,\n ItiIconButton,\n DxSelectBox,\n DxTextBox,\n DxNumberBox,\n DxTextArea,\n DxButton,\n DxValidator,\n DxRequiredRule,\n DxCompareRule,\n DxStringLengthRule,\n DxValidationSummary,\n DxDropDownBox,\n DxTreeView,\n DxCheckBox,\n DxDataGrid,\n DxSelection,\n DxPaging,\n DxFilterRow,\n DxScrolling\n },\n})\n\nexport default class PlantillaFormulario extends Vue {\n @Prop() idPlantilla !: number;\n @Prop() idVersion !: number;\n public loading = false;\n public search = \"\";\n\n public get headers() {\n return [\n new ItiVHeader('code', 'plantillas.fieldCode'),\n new ItiVHeader('label', 'plantillas.fieldLabel'),\n new ItiVHeader('fieldType.code', 'plantillas.fieldTypecode'),\n new ItiVHeader('description', 'plantillas.fieldDescription').withWidth(300),\n // new ItiVHeader('action', '').withWidth(50),\n ];\n }\n\n public get editTemplateVersion() {\n return templatesModule.selectedTemplateVersion;\n }\n\n public get fields() {\n return templatesModule.templateFields;\n }\n\n public get templateTitle() {\n if (templatesModule.selectedTemplate.title == null || templatesModule.selectedTemplate.title.length == 0) {\n return this.$t('plantillas.nuevaPlantilla');\n } else {\n return templatesModule.selectedTemplate.title;\n }\n }\n\n public get hasPermission() {\n return itiPermissionService.hasPermission(Permission.updateTemplates);\n }\n\n public get numVersion() {\n return this.editTemplateVersion.version\n }\n\n public goToListListVersions(){\n this.$router.push({ name: 'ListaVersiones', params: { id: this.idPlantilla.toString() } })\n }\n\n public created() {\n if (!isNaN(this.idVersion) && this.idVersion != 0) {\n templatesModule.getTemplateVersionById(this.idVersion).then(() => {\n });\n } \n if (!isNaN(this.idPlantilla) && this.idPlantilla != 0) {\n templatesModule.getTemplateById(this.idPlantilla).then(() => {\n });\n }\n }\n\n public mounted() {\n // \n }\n\n public formattedContent(contenido: string) {\n if (contenido && contenido.length > 40) {\n return String(contenido).substring(0, 40) + \"...\";\n } else {\n return contenido;\n }\n }\n\n public translateState(active: boolean) {\n return this.$tc(active.toString());\n }\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./explorarVersion.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./explorarVersion.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./explorarVersion.html?vue&type=template&id=a8fdc8c4&\"\nimport script from \"./explorarVersion.ts?vue&type=script&lang=ts&\"\nexport * from \"./explorarVersion.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VFlex } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VContainer,VDataTable,VFlex,VForm,VIcon,VLayout,VTooltip})\n","/**\r\n * DevExtreme (exporter/excel/excel.number_format_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar numberFormatHelper = {\r\n ID_PROPERTY_NAME: \"id\",\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (\"string\" === typeof sourceObj) {\r\n result = {\r\n formatCode: sourceObj\r\n };\r\n if (numberFormatHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return numberFormatHelper.isEmpty(leftTag) && numberFormatHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && leftTag.formatCode === rightTag.formatCode\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || !(0, _type.isDefined)(tag.formatCode) || \"\" === tag.formatCode\r\n },\r\n toXml: function(tag) {\r\n return _excel.default.toXml(\"numFmt\", {\r\n numFmtId: tag[numberFormatHelper.ID_PROPERTY_NAME],\r\n formatCode: tag.formatCode\r\n })\r\n }\r\n};\r\nvar _default = numberFormatHelper;\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/toolbar/ui.toolbar.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\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _uiList = require(\"../list/ui.list.base\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TOOLBAR_MENU_ACTION_CLASS = \"dx-toolbar-menu-action\";\r\nvar TOOLBAR_HIDDEN_BUTTON_CLASS = \"dx-toolbar-hidden-button\";\r\nvar TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS = \"dx-toolbar-hidden-button-group\";\r\nvar TOOLBAR_MENU_SECTION_CLASS = \"dx-toolbar-menu-section\";\r\nvar TOOLBAR_MENU_LAST_SECTION_CLASS = \"dx-toolbar-menu-last-section\";\r\nvar ToolbarMenu = _uiList.ListBase.inherit({\r\n _activeStateUnit: \".\" + TOOLBAR_MENU_ACTION_CLASS,\r\n _initMarkup: function() {\r\n this._renderSections();\r\n this.callBase()\r\n },\r\n _getSections: function() {\r\n return this._itemContainer().children()\r\n },\r\n _itemElements: function() {\r\n return this._getSections().children(this._itemSelector())\r\n },\r\n _renderSections: function() {\r\n var that = this;\r\n var $container = this._itemContainer();\r\n (0, _iterator.each)([\"before\", \"center\", \"after\", \"menu\"], function() {\r\n var sectionName = \"_$\" + this + \"Section\";\r\n var $section = that[sectionName];\r\n if (!$section) {\r\n that[sectionName] = $section = (0, _renderer.default)(\"
    \").addClass(TOOLBAR_MENU_SECTION_CLASS)\r\n }\r\n $section.appendTo($container)\r\n })\r\n },\r\n _renderItems: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateSections()\r\n },\r\n _updateSections: function() {\r\n var $sections = this.$element().find(\".\" + TOOLBAR_MENU_SECTION_CLASS);\r\n $sections.removeClass(TOOLBAR_MENU_LAST_SECTION_CLASS);\r\n $sections.not(\":empty\").eq(-1).addClass(TOOLBAR_MENU_LAST_SECTION_CLASS)\r\n },\r\n _renderItem: function(index, item, itemContainer, $after) {\r\n var location = item.location || \"menu\";\r\n var $container = this[\"_$\" + location + \"Section\"];\r\n var itemElement = this.callBase(index, item, $container, $after);\r\n if (this._getItemTemplateName({\r\n itemData: item\r\n })) {\r\n itemElement.addClass(\"dx-toolbar-menu-custom\")\r\n }\r\n if (\"menu\" === location || \"dxButton\" === item.widget || \"dxButtonGroup\" === item.widget || item.isAction) {\r\n itemElement.addClass(TOOLBAR_MENU_ACTION_CLASS)\r\n }\r\n if (\"dxButton\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_CLASS)\r\n }\r\n if (\"dxButtonGroup\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS)\r\n }\r\n itemElement.addClass(item.cssClass);\r\n return itemElement\r\n },\r\n _getItemTemplateName: function(args) {\r\n var template = this.callBase(args);\r\n var data = args.itemData;\r\n var menuTemplate = data && data.menuItemTemplate;\r\n return menuTemplate || template\r\n },\r\n _itemClickHandler: function(e, args, config) {\r\n if ((0, _renderer.default)(e.target).closest(\".\" + TOOLBAR_MENU_ACTION_CLASS).length) {\r\n this.callBase(e, args, config)\r\n }\r\n },\r\n _clean: function() {\r\n this._getSections().empty();\r\n this.callBase()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxToolbarMenu\", ToolbarMenu);\r\nvar _default = ToolbarMenu;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.accessibility.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\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nexports.registerKeyboardAction = void 0;\r\nvar accessibility = _interopRequireWildcard(require(\"../../ui/shared/accessibility\"));\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\r\nvar registerKeyboardAction = function(viewName, instance, $element, selector, action) {\r\n var keyboardController = instance.getController(\"keyboardNavigation\");\r\n if (instance.option(\"useLegacyKeyboardNavigation\") || keyboardController && !keyboardController.isKeyboardEnabled()) {\r\n return\r\n }\r\n var executeKeyDown = function(args) {\r\n instance.executeAction(\"onKeyDown\", args)\r\n };\r\n instance.createAction(\"onKeyDown\");\r\n accessibility.registerKeyboardAction(viewName, instance, $element, selector, action, executeKeyDown)\r\n};\r\nexports.registerKeyboardAction = registerKeyboardAction;\r\n","/**\r\n * DevExtreme (ui/hierarchical_collection/ui.hierarchical_collection_widget.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 _data = require(\"../../core/utils/data\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _icon = require(\"../../core/utils/icon\");\r\nvar _ui = _interopRequireDefault(require(\"./ui.data_adapter\"));\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"../collection/ui.collection_widget.edit\"));\r\nvar _bindable_template = require(\"../../core/templates/bindable_template\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _common = require(\"../../core/utils/common\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar HierarchicalCollectionWidget = _uiCollection_widget.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n keyExpr: \"id\",\r\n displayExpr: \"text\",\r\n selectedExpr: \"selected\",\r\n disabledExpr: \"disabled\",\r\n itemsExpr: \"items\",\r\n hoverStateEnabled: true,\r\n parentIdExpr: \"parentId\",\r\n expandedExpr: \"expanded\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === _devices.default.real().deviceType && !_devices.default.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this._initDynamicTemplates()\r\n },\r\n _initDataSource: function() {\r\n this.callBase();\r\n this._dataSource && this._dataSource.paginate(false)\r\n },\r\n _initDataAdapter: function() {\r\n var accessors = this._createDataAdapterAccessors();\r\n this._dataAdapter = new _ui.default((0, _extend.extend)({\r\n dataAccessors: {\r\n getters: accessors.getters,\r\n setters: accessors.setters\r\n },\r\n items: this.option(\"items\")\r\n }, this._getDataAdapterOptions()))\r\n },\r\n _getDataAdapterOptions: _common.noop,\r\n _initDynamicTemplates: function() {\r\n var that = this;\r\n this._templateManager.addDefaultTemplates({\r\n item: new _bindable_template.BindableTemplate(function($container, itemData) {\r\n $container.html(itemData.html).append(this._getIconContainer(itemData)).append(this._getTextContainer(itemData)).append(this._getPopoutContainer(itemData));\r\n that._addContentClasses(itemData, $container.parent())\r\n }.bind(this), [\"text\", \"html\", \"items\", \"icon\"], this.option(\"integrationOptions.watchMethod\"), {\r\n text: this._displayGetter,\r\n items: this._itemsGetter\r\n })\r\n })\r\n },\r\n _getIconContainer: function(itemData) {\r\n return itemData.icon ? (0, _icon.getImageContainer)(itemData.icon) : void 0\r\n },\r\n _getTextContainer: function(itemData) {\r\n return (0, _renderer.default)(\"\").text(itemData.text)\r\n },\r\n _getPopoutContainer: _common.noop,\r\n _addContentClasses: _common.noop,\r\n _initAccessors: function() {\r\n var that = this;\r\n (0, _iterator.each)(this._getAccessors(), function(_, accessor) {\r\n that._compileAccessor(accessor)\r\n });\r\n this._compileDisplayGetter()\r\n },\r\n _getAccessors: function() {\r\n return [\"key\", \"selected\", \"items\", \"disabled\", \"parentId\", \"expanded\"]\r\n },\r\n _getChildNodes: function(node) {\r\n var that = this;\r\n var arr = [];\r\n (0, _iterator.each)(node.internalFields.childrenKeys, function(_, key) {\r\n var childNode = that._dataAdapter.getNodeByKey(key);\r\n arr.push(childNode)\r\n });\r\n return arr\r\n },\r\n _hasChildren: function(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n },\r\n _compileAccessor: function(optionName) {\r\n var getter = \"_\" + optionName + \"Getter\";\r\n var setter = \"_\" + optionName + \"Setter\";\r\n var optionExpr = this.option(optionName + \"Expr\");\r\n if (!optionExpr) {\r\n this[getter] = _common.noop;\r\n this[setter] = _common.noop;\r\n return\r\n } else {\r\n if ((0, _type.isFunction)(optionExpr)) {\r\n this[setter] = function(obj, value) {\r\n obj[optionExpr()] = value\r\n };\r\n this[getter] = function(obj) {\r\n return obj[optionExpr()]\r\n };\r\n return\r\n }\r\n }\r\n this[getter] = (0, _data.compileGetter)(optionExpr);\r\n this[setter] = (0, _data.compileSetter)(optionExpr)\r\n },\r\n _createDataAdapterAccessors: function() {\r\n var that = this;\r\n var accessors = {\r\n getters: {},\r\n setters: {}\r\n };\r\n (0, _iterator.each)(this._getAccessors(), function(_, accessor) {\r\n var getterName = \"_\" + accessor + \"Getter\";\r\n var setterName = \"_\" + accessor + \"Setter\";\r\n var newAccessor = \"parentId\" === accessor ? \"parentKey\" : accessor;\r\n accessors.getters[newAccessor] = that[getterName];\r\n accessors.setters[newAccessor] = that[setterName]\r\n });\r\n accessors.getters.display = !this._displayGetter ? function(itemData) {\r\n return itemData.text\r\n } : this._displayGetter;\r\n return accessors\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._addWidgetClass()\r\n },\r\n _addWidgetClass: function() {\r\n this._focusTarget().addClass(this._widgetClass())\r\n },\r\n _widgetClass: _common.noop,\r\n _renderItemFrame: function(index, itemData) {\r\n var $itemFrame = this.callBase.apply(this, arguments);\r\n $itemFrame.toggleClass(DISABLED_STATE_CLASS, !!this._disabledGetter(itemData));\r\n return $itemFrame\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"displayExpr\":\r\n case \"keyExpr\":\r\n this._initAccessors();\r\n this._initDynamicTemplates();\r\n this.repaint();\r\n break;\r\n case \"itemsExpr\":\r\n case \"selectedExpr\":\r\n case \"disabledExpr\":\r\n case \"expandedExpr\":\r\n case \"parentIdExpr\":\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"items\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar _default = HierarchicalCollectionWidget;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","//\n// Constantes de permisos disponibles\n//\n\nexport class Permission {\n public static allConfiguration = 'all_configuration';\n public static readConfiguration = 'read_configuration';\n public static updateConfiguration = 'update_configuration';\n\n public static allTemplates = 'all_templates';\n public static readTemplates = 'read_templates';\n public static updateTemplates = 'update_templates';\n\n public static allUsers = 'all_users';\n public static readUsers = 'read_users';\n public static updateUsers = 'update_users';\n\n public static allCollaborativeArea = 'all_CollaborativeArea';\n public static readCollaborativeArea = 'read_CollaborativeArea';\n public static updateCollaborativeArea = 'update_CollaborativeArea';\n\n public static allAlgorithms = 'all_Algorithm';\n public static readAlgorithms = 'read_Algorithm';\n public static updateAlgorithms = 'update_Algorithm';\n}\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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\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 _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _drag = require(\"../../events/drag\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _swatch_container = _interopRequireDefault(require(\"../widget/swatch_container\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar COLUMNS_SEPARATOR_CLASS = \"columns-separator\";\r\nvar COLUMNS_SEPARATOR_TRANSPARENT = \"columns-separator-transparent\";\r\nvar DRAGGING_HEADER_CLASS = \"drag-header\";\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_DRAG_ACTION_CLASS = \"drag-action\";\r\nvar TRACKER_CLASS = \"tracker\";\r\nvar HEADERS_DROP_HIGHLIGHT_CLASS = \"drop-highlight\";\r\nvar BLOCK_SEPARATOR_CLASS = \"dx-block-separator\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar WIDGET_CLASS = \"dx-widget\";\r\nvar DRAGGING_COMMAND_CELL_CLASS = \"dx-drag-command-cell\";\r\nvar MODULE_NAMESPACE = \"dxDataGridResizingReordering\";\r\nvar COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH = 10;\r\nvar DRAGGING_DELTA = 5;\r\nvar COLUMN_OPACITY = .5;\r\nvar allowResizing = function(that) {\r\n return that.option(\"allowColumnResizing\") || that.getController(\"columns\").isColumnOptionUsed(\"allowResizing\")\r\n};\r\nvar allowReordering = function(that) {\r\n return that.option(\"allowColumnReordering\") || that.getController(\"columns\").isColumnOptionUsed(\"allowReordering\")\r\n};\r\nvar TrackerView = _uiGrid_core.default.View.inherit({\r\n _renderCore: function() {\r\n this.callBase();\r\n this.element().addClass(this.addWidgetPrefix(TRACKER_CLASS));\r\n this.hide()\r\n },\r\n _unsubscribeFromCallback: function() {\r\n if (this._positionChanged) {\r\n this._tablePositionController.positionChanged.remove(this._positionChanged)\r\n }\r\n },\r\n _subscribeToCallback: function() {\r\n var that = this;\r\n that._positionChanged = function(position) {\r\n var $element = that.element();\r\n if ($element && $element.hasClass(that.addWidgetPrefix(TRACKER_CLASS))) {\r\n $element.css({\r\n top: position.top\r\n });\r\n $element.height(position.height)\r\n }\r\n };\r\n this._tablePositionController.positionChanged.add(that._positionChanged)\r\n },\r\n optionChanged: function(args) {\r\n if (\"allowColumnResizing\" === args.name) {\r\n this._unsubscribeFromCallback();\r\n if (args.value) {\r\n this._subscribeToCallback();\r\n this._invalidate()\r\n }\r\n }\r\n this.callBase(args)\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._tablePositionController = this.getController(\"tablePosition\");\r\n this._subscribeToCallback()\r\n },\r\n isVisible: function() {\r\n return allowResizing(this)\r\n },\r\n show: function() {\r\n this.element().show()\r\n },\r\n hide: function() {\r\n this.element() && this.element().hide()\r\n },\r\n setHeight: function(value) {\r\n this.element().height(value)\r\n },\r\n dispose: function() {\r\n this._unsubscribeFromCallback();\r\n this.callBase()\r\n }\r\n});\r\nvar SeparatorView = _uiGrid_core.default.View.inherit({\r\n _renderSeparator: function() {},\r\n _renderCore: function(options) {\r\n this.callBase(options);\r\n this._isShown = true;\r\n this._renderSeparator();\r\n this.hide()\r\n },\r\n show: function() {\r\n this._isShown = true\r\n },\r\n hide: function() {\r\n this._isShown = false\r\n },\r\n height: function(value) {\r\n var $element = this.element();\r\n if ($element) {\r\n if ((0, _type.isDefined)(value)) {\r\n $element.height(value)\r\n } else {\r\n return $element.height()\r\n }\r\n }\r\n },\r\n width: function(value) {\r\n var $element = this.element();\r\n if ($element) {\r\n if ((0, _type.isDefined)(value)) {\r\n $element.width(value)\r\n } else {\r\n return $element.width()\r\n }\r\n }\r\n }\r\n});\r\nvar ColumnsSeparatorView = SeparatorView.inherit({\r\n _renderSeparator: function() {\r\n this.callBase();\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(COLUMNS_SEPARATOR_CLASS))\r\n },\r\n _subscribeToCallback: function() {\r\n var that = this;\r\n var $element;\r\n that._positionChanged = function(position) {\r\n $element = that.element();\r\n if ($element) {\r\n $element.css({\r\n top: position.top\r\n });\r\n $element.height(position.height)\r\n }\r\n };\r\n that._tablePositionController.positionChanged.add(that._positionChanged)\r\n },\r\n _unsubscribeFromCallback: function() {\r\n this._positionChanged && this._tablePositionController.positionChanged.remove(this._positionChanged)\r\n },\r\n _init: function() {\r\n this._isTransparent = allowResizing(this);\r\n if (this.isVisible()) {\r\n this._subscribeToCallback()\r\n }\r\n },\r\n isVisible: function() {\r\n return this.option(\"showColumnHeaders\") && (allowReordering(this) || allowResizing(this))\r\n },\r\n optionChanged: function(args) {\r\n if (\"allowColumnResizing\" === args.name) {\r\n if (args.value) {\r\n this._init();\r\n this._invalidate();\r\n this.hide(true)\r\n } else {\r\n this._unsubscribeFromCallback();\r\n this._isTransparent = allowResizing(this);\r\n this.hide(true)\r\n }\r\n }\r\n this.callBase(args)\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._tablePositionController = this.getController(\"tablePosition\");\r\n this._init()\r\n },\r\n show: function() {\r\n var that = this;\r\n var $element = this.element();\r\n if ($element && !that._isShown) {\r\n if (that._isTransparent) {\r\n $element.removeClass(that.addWidgetPrefix(COLUMNS_SEPARATOR_TRANSPARENT))\r\n } else {\r\n $element.show()\r\n }\r\n }\r\n this.callBase()\r\n },\r\n hide: function(force) {\r\n var $element = this.element();\r\n var columnsSeparatorTransparent = this.addWidgetPrefix(COLUMNS_SEPARATOR_TRANSPARENT);\r\n if ($element && (this._isShown || force)) {\r\n if (this._isTransparent) {\r\n $element.addClass(columnsSeparatorTransparent);\r\n $element.css(\"left\", \"\");\r\n $element.show()\r\n } else {\r\n if ($element.hasClass(columnsSeparatorTransparent)) {\r\n $element.removeClass(columnsSeparatorTransparent)\r\n }\r\n $element.hide()\r\n }\r\n }\r\n this.callBase()\r\n },\r\n moveByX: function(outerX) {\r\n var $element = this.element();\r\n if ($element) {\r\n $element.css(\"left\", outerX - this._parentElement().offset().left)\r\n }\r\n },\r\n changeCursor: function(cursorName) {\r\n cursorName = (0, _type.isDefined)(cursorName) ? cursorName : \"\";\r\n var $element = this.element();\r\n if ($element) {\r\n $element.css(\"cursor\", cursorName)\r\n }\r\n },\r\n dispose: function() {\r\n this._unsubscribeFromCallback();\r\n this.callBase()\r\n }\r\n});\r\nvar BlockSeparatorView = SeparatorView.inherit({\r\n init: function() {\r\n var that = this;\r\n this.callBase();\r\n this.getController(\"data\").loadingChanged.add(function(isLoading) {\r\n if (!isLoading) {\r\n that.hide()\r\n }\r\n })\r\n },\r\n _renderSeparator: function() {\r\n this.callBase();\r\n this.element().addClass(BLOCK_SEPARATOR_CLASS).html(\" \")\r\n },\r\n hide: function() {\r\n var that = this;\r\n var $parent = this._parentElement();\r\n var $element = this.element();\r\n if ($element && this._isShown) {\r\n $element.css(\"display\", \"none\")\r\n }\r\n if ($parent && !$parent.children(\".\" + BLOCK_SEPARATOR_CLASS).length) {\r\n $parent.prepend(that.element())\r\n }\r\n that.callBase()\r\n },\r\n isVisible: function() {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n var columnChooserOptions = this.option(\"columnChooser\");\r\n return groupPanelOptions && groupPanelOptions.visible || columnChooserOptions && columnChooserOptions.enabled\r\n },\r\n show: function(targetLocation) {\r\n var that = this;\r\n var $element = this.element();\r\n var startAnimate = function(toOptions) {\r\n _fx.default.stop($element, true);\r\n _fx.default.animate($element, {\r\n type: \"slide\",\r\n from: {\r\n width: 0,\r\n display: toOptions.display\r\n },\r\n to: toOptions,\r\n duration: 300,\r\n easing: \"swing\"\r\n })\r\n };\r\n if ($element && !that._isShown) {\r\n switch (targetLocation) {\r\n case \"group\":\r\n startAnimate({\r\n width: \"50px\",\r\n display: \"inline-block\"\r\n });\r\n break;\r\n case \"columnChooser\":\r\n startAnimate({\r\n width: \"100%\",\r\n display: \"block\"\r\n });\r\n break;\r\n default:\r\n $element.css(\"display\", \"\")\r\n }\r\n }\r\n that.callBase()\r\n }\r\n});\r\nvar DraggingHeaderView = _uiGrid_core.default.View.inherit({\r\n _isDragging: false,\r\n isDragging: function() {\r\n return this._isDragging\r\n },\r\n _getDraggingPanelByPos: function(pos) {\r\n var that = this;\r\n var result;\r\n (0, _iterator.each)(that._dragOptions.draggingPanels, function(index, draggingPanel) {\r\n if (draggingPanel) {\r\n var boundingRect = draggingPanel.getBoundingRect();\r\n if (boundingRect && (void 0 === boundingRect.bottom || pos.y < boundingRect.bottom) && (void 0 === boundingRect.top || pos.y > boundingRect.top) && (void 0 === boundingRect.left || pos.x > boundingRect.left) && (void 0 === boundingRect.right || pos.x < boundingRect.right)) {\r\n result = draggingPanel;\r\n return false\r\n }\r\n }\r\n });\r\n return result\r\n },\r\n _renderCore: function() {\r\n this.element().addClass(this.addWidgetPrefix(DRAGGING_HEADER_CLASS) + \" \" + this.addWidgetPrefix(CELL_CONTENT_CLASS) + \" \" + WIDGET_CLASS).hide()\r\n },\r\n _resetTargetColumnOptions: function() {\r\n var params = this._dropOptions;\r\n params.targetColumnIndex = -1;\r\n delete params.targetColumnElement;\r\n delete params.isLast;\r\n delete params.posX;\r\n delete params.posY\r\n },\r\n _getVisibleIndexObject: function(rowIndex, visibleIndex) {\r\n if ((0, _type.isDefined)(rowIndex)) {\r\n return {\r\n columnIndex: visibleIndex,\r\n rowIndex: rowIndex\r\n }\r\n }\r\n return visibleIndex\r\n },\r\n dispose: function() {\r\n var element = this.element();\r\n this._dragOptions = null;\r\n element && element.parent().find(\".\" + this.addWidgetPrefix(DRAGGING_HEADER_CLASS)).remove()\r\n },\r\n isVisible: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var commonColumnSettings = columnsController.getCommonSettings();\r\n return this.option(\"showColumnHeaders\") && (allowReordering(this) || commonColumnSettings.allowGrouping || commonColumnSettings.allowHiding)\r\n },\r\n init: function() {\r\n var that = this;\r\n this.callBase();\r\n this._controller = this.getController(\"draggingHeader\");\r\n this._columnsResizerViewController = this.getController(\"columnsResizer\");\r\n this.getController(\"data\").loadingChanged.add(function(isLoading) {\r\n var element = that.element();\r\n if (!isLoading && element) {\r\n element.hide()\r\n }\r\n })\r\n },\r\n dragHeader: function(options) {\r\n var that = this;\r\n var columnElement = options.columnElement;\r\n var isCommandColumn = !!options.sourceColumn.type;\r\n that._isDragging = true;\r\n that._dragOptions = options;\r\n that._dropOptions = {\r\n sourceIndex: options.index,\r\n sourceColumnIndex: that._getVisibleIndexObject(options.rowIndex, options.columnIndex),\r\n sourceColumnElement: options.columnElement,\r\n sourceLocation: options.sourceLocation\r\n };\r\n var document = _dom_adapter.default.getDocument();\r\n that._onSelectStart = document.onselectstart;\r\n document.onselectstart = function() {\r\n return false\r\n };\r\n that._controller.drag(that._dropOptions);\r\n that.element().css({\r\n textAlign: columnElement && columnElement.css(\"textAlign\"),\r\n height: columnElement && (isCommandColumn && columnElement.get(0).clientHeight || columnElement.height()),\r\n width: columnElement && (isCommandColumn && columnElement.get(0).clientWidth || columnElement.width()),\r\n whiteSpace: columnElement && columnElement.css(\"whiteSpace\")\r\n }).addClass(that.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS)).toggleClass(DRAGGING_COMMAND_CELL_CLASS, isCommandColumn).text(isCommandColumn ? \"\" : options.sourceColumn.caption);\r\n that.element().appendTo(_swatch_container.default.getSwatchContainer(columnElement))\r\n },\r\n moveHeader: function(args) {\r\n var e = args.event;\r\n var that = e.data.that;\r\n var eventData = (0, _index.eventData)(e);\r\n var isResizing = that._columnsResizerViewController ? that._columnsResizerViewController.isResizing() : false;\r\n var dragOptions = that._dragOptions;\r\n if (that._isDragging && !isResizing) {\r\n var $element = that.element();\r\n var moveDeltaX = Math.abs(eventData.x - dragOptions.columnElement.offset().left - dragOptions.deltaX);\r\n var moveDeltaY = Math.abs(eventData.y - dragOptions.columnElement.offset().top - dragOptions.deltaY);\r\n if ($element.is(\":visible\") || moveDeltaX > DRAGGING_DELTA || moveDeltaY > DRAGGING_DELTA) {\r\n $element.show();\r\n var newLeft = eventData.x - dragOptions.deltaX;\r\n var newTop = eventData.y - dragOptions.deltaY;\r\n $element.css({\r\n left: newLeft,\r\n top: newTop\r\n });\r\n that.dockHeader(eventData)\r\n }\r\n e.preventDefault()\r\n }\r\n },\r\n dockHeader: function(eventData) {\r\n var that = this;\r\n var targetDraggingPanel = that._getDraggingPanelByPos(eventData);\r\n var controller = that._controller;\r\n var params = that._dropOptions;\r\n var dragOptions = that._dragOptions;\r\n if (targetDraggingPanel) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var isVerticalOrientation = \"columnChooser\" === targetDraggingPanel.getName();\r\n var axisName = isVerticalOrientation ? \"y\" : \"x\";\r\n var targetLocation = targetDraggingPanel.getName();\r\n var rowIndex = \"headers\" === targetLocation ? dragOptions.rowIndex : void 0;\r\n var sourceColumn = dragOptions.sourceColumn;\r\n var columnElements = targetDraggingPanel.getColumnElements(rowIndex, null === sourceColumn || void 0 === sourceColumn ? void 0 : sourceColumn.ownerBand) || [];\r\n var pointsByTarget = dragOptions.pointsByTarget = dragOptions.pointsByTarget || {};\r\n var pointsByColumns = \"columnChooser\" === targetLocation ? [] : pointsByTarget[targetLocation] || controller._generatePointsByColumns((0, _extend.extend)({}, dragOptions, {\r\n targetDraggingPanel: targetDraggingPanel,\r\n columns: targetDraggingPanel.getColumns(rowIndex),\r\n columnElements: columnElements,\r\n isVerticalOrientation: isVerticalOrientation,\r\n startColumnIndex: \"headers\" === targetLocation && (0, _renderer.default)(columnElements[0]).index()\r\n }));\r\n pointsByTarget[targetLocation] = pointsByColumns;\r\n params.targetLocation = targetLocation;\r\n if (pointsByColumns.length > 0) {\r\n for (var i = 0; i < pointsByColumns.length; i++) {\r\n var centerPosition = pointsByColumns[i + 1] && (pointsByColumns[i][axisName] + pointsByColumns[i + 1][axisName]) / 2;\r\n if (void 0 === centerPosition || (rtlEnabled && \"x\" === axisName ? eventData[axisName] > centerPosition : eventData[axisName] < centerPosition)) {\r\n params.targetColumnIndex = that._getVisibleIndexObject(rowIndex, pointsByColumns[i].columnIndex);\r\n if (columnElements[i]) {\r\n params.targetColumnElement = columnElements.eq(i);\r\n params.isLast = false\r\n } else {\r\n params.targetColumnElement = columnElements.last();\r\n params.isLast = true\r\n }\r\n params.posX = pointsByColumns[i].x;\r\n params.posY = pointsByColumns[i].y;\r\n controller.dock(params);\r\n break\r\n }\r\n }\r\n } else {\r\n that._resetTargetColumnOptions();\r\n controller.dock(params)\r\n }\r\n }\r\n },\r\n dropHeader: function(args) {\r\n var e = args.event;\r\n var that = e.data.that;\r\n var controller = that._controller;\r\n that.element().hide();\r\n if (controller && that._isDragging) {\r\n controller.drop(that._dropOptions)\r\n }\r\n that.element().appendTo(that._parentElement());\r\n that._dragOptions = null;\r\n that._dropOptions = null;\r\n that._isDragging = false;\r\n _dom_adapter.default.getDocument().onselectstart = that._onSelectStart || null\r\n }\r\n});\r\nvar isNextColumnResizingMode = function(that) {\r\n return \"widget\" !== that.option(\"columnResizingMode\")\r\n};\r\nvar ColumnsResizerViewController = _uiGrid_core.default.ViewController.inherit({\r\n _isHeadersRowArea: function(posY) {\r\n if (this._columnHeadersView) {\r\n var element = this._columnHeadersView.element();\r\n if (element) {\r\n var offsetTop = element.offset().top;\r\n var headersRowHeight = this._columnHeadersView.getHeadersRowHeight();\r\n return posY >= offsetTop && posY <= offsetTop + headersRowHeight\r\n }\r\n }\r\n return false\r\n },\r\n _isRtlParentStyle: function() {\r\n var _this$_$parentContain;\r\n return this.option(\"rtlEnabled\") && \"rtl\" === (null === (_this$_$parentContain = this._$parentContainer) || void 0 === _this$_$parentContain ? void 0 : _this$_$parentContain.parent().css(\"direction\"))\r\n },\r\n _pointCreated: function(point, cellsLength, columns) {\r\n var isNextColumnMode = isNextColumnResizingMode(this);\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n var firstPointColumnIndex = !isNextColumnMode && rtlEnabled && !isRtlParentStyle ? 0 : 1;\r\n if (point.index >= firstPointColumnIndex && point.index < cellsLength + (!isNextColumnMode && (!rtlEnabled || isRtlParentStyle) ? 1 : 0)) {\r\n point.columnIndex -= firstPointColumnIndex;\r\n var currentColumn = columns[point.columnIndex] || {};\r\n var nextColumn = columns[point.columnIndex + 1] || {};\r\n return !(isNextColumnMode ? currentColumn.allowResizing && nextColumn.allowResizing : currentColumn.allowResizing)\r\n }\r\n return true\r\n },\r\n _getTargetPoint: function(pointsByColumns, currentX, deltaX) {\r\n if (pointsByColumns) {\r\n for (var i = 0; i < pointsByColumns.length; i++) {\r\n if (pointsByColumns[i].x === pointsByColumns[0].x && pointsByColumns[i + 1] && pointsByColumns[i].x === pointsByColumns[i + 1].x) {\r\n continue\r\n }\r\n if (pointsByColumns[i].x - deltaX <= currentX && currentX <= pointsByColumns[i].x + deltaX) {\r\n return pointsByColumns[i]\r\n }\r\n }\r\n }\r\n return null\r\n },\r\n _moveSeparator: function(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n var columnsSeparatorWidth = that._columnsSeparatorView.width();\r\n var isNextColumnMode = isNextColumnResizingMode(that);\r\n var deltaX = columnsSeparatorWidth / 2;\r\n var parentOffset = that._$parentContainer.offset();\r\n var parentOffsetLeft = parentOffset.left;\r\n var eventData = (0, _index.eventData)(e);\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n if (that._isResizing && that._resizingInfo) {\r\n if ((parentOffsetLeft <= eventData.x || !isNextColumnMode && isRtlParentStyle) && (!isNextColumnMode || eventData.x <= parentOffsetLeft + that._$parentContainer.width())) {\r\n if (that._updateColumnsWidthIfNeeded(eventData.x)) {\r\n var $cell = that._columnHeadersView.getColumnElements().eq(that._resizingInfo.currentColumnIndex);\r\n var cell = $cell[0];\r\n if (cell) {\r\n var outerWidth = cell.getBoundingClientRect().width;\r\n that._columnsSeparatorView.moveByX($cell.offset().left + ((isNextColumnMode || isRtlParentStyle) && rtlEnabled ? 0 : outerWidth));\r\n that._tablePositionController.update(that._targetPoint.y);\r\n e.preventDefault()\r\n }\r\n }\r\n }\r\n } else {\r\n if (that._isHeadersRowArea(eventData.y)) {\r\n if (that._previousParentOffset) {\r\n if (that._previousParentOffset.left !== parentOffset.left || that._previousParentOffset.top !== parentOffset.top) {\r\n that.pointsByColumns(null)\r\n }\r\n }\r\n that._targetPoint = that._getTargetPoint(that.pointsByColumns(), eventData.x, columnsSeparatorWidth);\r\n that._previousParentOffset = parentOffset;\r\n that._isReadyResizing = false;\r\n if (that._targetPoint) {\r\n that._columnsSeparatorView.changeCursor(\"col-resize\");\r\n that._columnsSeparatorView.moveByX(that._targetPoint.x - deltaX);\r\n that._tablePositionController.update(that._targetPoint.y);\r\n that._isReadyResizing = true;\r\n e.preventDefault()\r\n } else {\r\n that._columnsSeparatorView.changeCursor()\r\n }\r\n } else {\r\n that.pointsByColumns(null);\r\n that._isReadyResizing = false;\r\n that._columnsSeparatorView.changeCursor()\r\n }\r\n }\r\n },\r\n _endResizing: function(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n if (that._isResizing) {\r\n that.pointsByColumns(null);\r\n that._resizingInfo = null;\r\n that._columnsSeparatorView.hide();\r\n that._columnsSeparatorView.changeCursor();\r\n that._trackerView.hide();\r\n that._isReadyResizing = false;\r\n that._isResizing = false\r\n }\r\n },\r\n _getNextColumnIndex: function(currentColumnIndex) {\r\n return currentColumnIndex + 1\r\n },\r\n _setupResizingInfo: function(posX) {\r\n var that = this;\r\n var currentColumnIndex = that._targetPoint.columnIndex;\r\n var nextColumnIndex = that._getNextColumnIndex(currentColumnIndex);\r\n var currentHeader = that._columnHeadersView.getHeaderElement(currentColumnIndex);\r\n var nextHeader = that._columnHeadersView.getHeaderElement(nextColumnIndex);\r\n that._resizingInfo = {\r\n startPosX: posX,\r\n currentColumnIndex: currentColumnIndex,\r\n currentColumnWidth: currentHeader && currentHeader.length > 0 ? (0, _position.getBoundingRect)(currentHeader[0]).width : 0,\r\n nextColumnIndex: nextColumnIndex,\r\n nextColumnWidth: nextHeader && nextHeader.length > 0 ? (0, _position.getBoundingRect)(nextHeader[0]).width : 0\r\n }\r\n },\r\n _startResizing: function(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n var eventData = (0, _index.eventData)(e);\r\n if ((0, _index.isTouchEvent)(e)) {\r\n if (that._isHeadersRowArea(eventData.y)) {\r\n that._targetPoint = that._getTargetPoint(that.pointsByColumns(), eventData.x, COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH);\r\n if (that._targetPoint) {\r\n that._columnsSeparatorView.moveByX(that._targetPoint.x - that._columnsSeparatorView.width() / 2);\r\n that._isReadyResizing = true\r\n }\r\n } else {\r\n that._isReadyResizing = false\r\n }\r\n }\r\n if (that._isReadyResizing) {\r\n that._setupResizingInfo(eventData.x);\r\n that._isResizing = true;\r\n that._tablePositionController.update(that._targetPoint.y);\r\n that._columnsSeparatorView.show();\r\n that._trackerView.show();\r\n var scrollable = that.component.getScrollable();\r\n if (scrollable && that._isRtlParentStyle()) {\r\n that._scrollRight = scrollable.$content().width() - scrollable._container().width() - scrollable.scrollLeft()\r\n }\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n if (this.isResizing()) {\r\n this.getController(\"editorFactory\").loseFocus()\r\n }\r\n },\r\n _generatePointsByColumns: function() {\r\n var that = this;\r\n var columns = that._columnsController ? that._columnsController.getVisibleColumns() : [];\r\n var cells = that._columnHeadersView.getColumnElements();\r\n var pointsByColumns = [];\r\n if (cells && cells.length > 0) {\r\n pointsByColumns = _uiGrid_core2.default.getPointsByColumns(cells, function(point) {\r\n return that._pointCreated(point, cells.length, columns)\r\n })\r\n }\r\n that._pointsByColumns = pointsByColumns\r\n },\r\n _unsubscribeFromEvents: function() {\r\n this._moveSeparatorHandler && _events_engine.default.off(_dom_adapter.default.getDocument(), (0, _index.addNamespace)(_pointer.default.move, MODULE_NAMESPACE), this._moveSeparatorHandler);\r\n this._startResizingHandler && _events_engine.default.off(this._$parentContainer, (0, _index.addNamespace)(_pointer.default.down, MODULE_NAMESPACE), this._startResizingHandler);\r\n if (this._endResizingHandler) {\r\n _events_engine.default.off(this._columnsSeparatorView.element(), (0, _index.addNamespace)(_pointer.default.up, MODULE_NAMESPACE), this._endResizingHandler);\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), (0, _index.addNamespace)(_pointer.default.up, MODULE_NAMESPACE), this._endResizingHandler)\r\n }\r\n },\r\n _subscribeToEvents: function() {\r\n this._moveSeparatorHandler = this.createAction(this._moveSeparator);\r\n this._startResizingHandler = this.createAction(this._startResizing);\r\n this._endResizingHandler = this.createAction(this._endResizing);\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), (0, _index.addNamespace)(_pointer.default.move, MODULE_NAMESPACE), this, this._moveSeparatorHandler);\r\n _events_engine.default.on(this._$parentContainer, (0, _index.addNamespace)(_pointer.default.down, MODULE_NAMESPACE), this, this._startResizingHandler);\r\n _events_engine.default.on(this._columnsSeparatorView.element(), (0, _index.addNamespace)(_pointer.default.up, MODULE_NAMESPACE), this, this._endResizingHandler);\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), (0, _index.addNamespace)(_pointer.default.up, MODULE_NAMESPACE), this, this._endResizingHandler)\r\n },\r\n _updateColumnsWidthIfNeeded: function(posX) {\r\n var deltaX;\r\n var needUpdate = false;\r\n var nextCellWidth;\r\n var resizingInfo = this._resizingInfo;\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnsSeparatorWidth = this._columnsSeparatorView.width();\r\n var contentWidth = this._rowsView.contentWidth();\r\n var isNextColumnMode = isNextColumnResizingMode(this);\r\n var adaptColumnWidthByRatio = isNextColumnMode && this.option(\"adaptColumnWidthByRatio\") && !this.option(\"columnAutoWidth\");\r\n var minWidth;\r\n var nextColumn;\r\n var cellWidth;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n\r\n function isPercentWidth(width) {\r\n return (0, _type.isString)(width) && \"%\" === width.slice(-1)\r\n }\r\n\r\n function setColumnWidth(column, columnWidth, contentWidth, adaptColumnWidthByRatio) {\r\n if (column) {\r\n var oldColumnWidth = column.width;\r\n if (oldColumnWidth) {\r\n adaptColumnWidthByRatio = isPercentWidth(oldColumnWidth)\r\n }\r\n if (adaptColumnWidthByRatio) {\r\n column && columnsController.columnOption(column.index, \"visibleWidth\", columnWidth);\r\n column && columnsController.columnOption(column.index, \"width\", (columnWidth / contentWidth * 100).toFixed(3) + \"%\")\r\n } else {\r\n column && columnsController.columnOption(column.index, \"visibleWidth\", null);\r\n column && columnsController.columnOption(column.index, \"width\", columnWidth)\r\n }\r\n }\r\n }\r\n\r\n function correctContentWidth(contentWidth, visibleColumns) {\r\n var allColumnsHaveWidth = visibleColumns.every(function(column) {\r\n return column.width\r\n });\r\n if (allColumnsHaveWidth) {\r\n var totalPercent = visibleColumns.reduce(function(sum, column) {\r\n if (isPercentWidth(column.width)) {\r\n sum += parseFloat(column.width)\r\n }\r\n return sum\r\n }, 0);\r\n if (totalPercent > 100) {\r\n contentWidth = contentWidth / totalPercent * 100\r\n }\r\n }\r\n return contentWidth\r\n }\r\n deltaX = posX - resizingInfo.startPosX;\r\n if ((isNextColumnMode || isRtlParentStyle) && rtlEnabled) {\r\n deltaX = -deltaX\r\n }\r\n cellWidth = resizingInfo.currentColumnWidth + deltaX;\r\n var column = visibleColumns[resizingInfo.currentColumnIndex];\r\n minWidth = column && column.minWidth || columnsSeparatorWidth;\r\n needUpdate = cellWidth >= minWidth;\r\n if (isNextColumnMode) {\r\n nextCellWidth = resizingInfo.nextColumnWidth - deltaX;\r\n nextColumn = visibleColumns[resizingInfo.nextColumnIndex];\r\n minWidth = nextColumn && nextColumn.minWidth || columnsSeparatorWidth;\r\n needUpdate = needUpdate && nextCellWidth >= minWidth\r\n }\r\n if (needUpdate) {\r\n columnsController.beginUpdate();\r\n cellWidth = Math.floor(cellWidth);\r\n contentWidth = correctContentWidth(contentWidth, visibleColumns);\r\n setColumnWidth(column, cellWidth, contentWidth, adaptColumnWidthByRatio);\r\n if (isNextColumnMode) {\r\n nextCellWidth = Math.floor(nextCellWidth);\r\n setColumnWidth(nextColumn, nextCellWidth, contentWidth, adaptColumnWidthByRatio)\r\n } else {\r\n var columnWidths = this._columnHeadersView.getColumnWidths();\r\n columnWidths[resizingInfo.currentColumnIndex] = cellWidth;\r\n var hasScroll = columnWidths.reduce(function(totalWidth, width) {\r\n return totalWidth + width\r\n }, 0) > this._rowsView.contentWidth();\r\n if (!hasScroll) {\r\n var lastColumnIndex = _uiGrid_core2.default.getLastResizableColumnIndex(visibleColumns);\r\n if (lastColumnIndex >= 0) {\r\n columnsController.columnOption(visibleColumns[lastColumnIndex].index, \"visibleWidth\", \"auto\")\r\n }\r\n }\r\n for (var i = 0; i < columnWidths.length; i++) {\r\n if (visibleColumns[i] && visibleColumns[i] !== column && void 0 === visibleColumns[i].width) {\r\n columnsController.columnOption(visibleColumns[i].index, \"width\", columnWidths[i])\r\n }\r\n }\r\n }\r\n columnsController.endUpdate();\r\n if (!isNextColumnMode) {\r\n this.component.updateDimensions();\r\n var scrollable = this.component.getScrollable();\r\n if (scrollable && isRtlParentStyle) {\r\n var left = scrollable.$content().width() - scrollable._container().width() - this._scrollRight;\r\n scrollable.scrollTo({\r\n left: left\r\n })\r\n }\r\n }\r\n }\r\n return needUpdate\r\n },\r\n _subscribeToCallback: function(callback, handler) {\r\n callback.add(handler);\r\n this._subscribesToCallbacks.push({\r\n callback: callback,\r\n handler: handler\r\n })\r\n },\r\n _unsubscribeFromCallbacks: function() {\r\n for (var i = 0; i < this._subscribesToCallbacks.length; i++) {\r\n var subscribe = this._subscribesToCallbacks[i];\r\n subscribe.callback.remove(subscribe.handler)\r\n }\r\n this._subscribesToCallbacks = []\r\n },\r\n _unsubscribes: function() {\r\n this._unsubscribeFromEvents();\r\n this._unsubscribeFromCallbacks()\r\n },\r\n _init: function() {\r\n var that = this;\r\n var generatePointsByColumnsHandler = function() {\r\n if (!that._isResizing) {\r\n that.pointsByColumns(null)\r\n }\r\n };\r\n var generatePointsByColumnsScrollHandler = function(offset) {\r\n if (that._scrollLeft !== offset.left) {\r\n that._scrollLeft = offset.left;\r\n that.pointsByColumns(null)\r\n }\r\n };\r\n that._columnsSeparatorView = that.getView(\"columnsSeparatorView\");\r\n that._columnHeadersView = that.getView(\"columnHeadersView\");\r\n that._trackerView = that.getView(\"trackerView\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._columnsController = that.getController(\"columns\");\r\n that._tablePositionController = that.getController(\"tablePosition\");\r\n that._$parentContainer = that.component.$element();\r\n that._subscribeToCallback(that._columnHeadersView.renderCompleted, generatePointsByColumnsHandler);\r\n that._subscribeToCallback(that._columnHeadersView.resizeCompleted, generatePointsByColumnsHandler);\r\n that._subscribeToCallback(that._columnsSeparatorView.renderCompleted, function() {\r\n that._unsubscribeFromEvents();\r\n that._subscribeToEvents()\r\n });\r\n that._subscribeToCallback(that._rowsView.renderCompleted, function() {\r\n that._rowsView.scrollChanged.remove(generatePointsByColumnsScrollHandler);\r\n that._rowsView.scrollChanged.add(generatePointsByColumnsScrollHandler)\r\n });\r\n var previousScrollbarVisibility = 0 !== that._rowsView.getScrollbarWidth();\r\n var previousTableHeight = 0;\r\n that._subscribeToCallback(that.getController(\"tablePosition\").positionChanged, function(e) {\r\n if (that._isResizing && !that._rowsView.isResizing) {\r\n var scrollbarVisibility = 0 !== that._rowsView.getScrollbarWidth();\r\n if (previousScrollbarVisibility !== scrollbarVisibility || previousTableHeight && previousTableHeight !== e.height) {\r\n previousScrollbarVisibility = scrollbarVisibility;\r\n previousTableHeight = e.height;\r\n that.component.updateDimensions()\r\n } else {\r\n that._rowsView.updateFreeSpaceRowHeight()\r\n }\r\n }\r\n previousTableHeight = e.height\r\n })\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n if (\"allowColumnResizing\" === args.name) {\r\n if (args.value) {\r\n this._init();\r\n this._subscribeToEvents()\r\n } else {\r\n this._unsubscribes()\r\n }\r\n }\r\n },\r\n isResizing: function() {\r\n return this._isResizing\r\n },\r\n init: function() {\r\n this._subscribesToCallbacks = [];\r\n if (allowResizing(this)) {\r\n this._init()\r\n }\r\n },\r\n pointsByColumns: function(value) {\r\n if (void 0 !== value) {\r\n this._pointsByColumns = value\r\n } else {\r\n if (!this._pointsByColumns) {\r\n this._generatePointsByColumns()\r\n }\r\n return this._pointsByColumns\r\n }\r\n },\r\n dispose: function() {\r\n this._unsubscribes();\r\n this.callBase()\r\n }\r\n});\r\nvar TablePositionViewController = _uiGrid_core.default.ViewController.inherit({\r\n update: function(top) {\r\n var that = this;\r\n var params = {};\r\n var $element = that._columnHeadersView.element();\r\n var offset = $element && $element.offset();\r\n var offsetTop = offset && offset.top || 0;\r\n var diffOffsetTop = (0, _type.isDefined)(top) ? Math.abs(top - offsetTop) : 0;\r\n var columnsHeadersHeight = that._columnHeadersView ? that._columnHeadersView.getHeight() : 0;\r\n var scrollBarWidth = that._rowsView.getScrollbarWidth(true);\r\n var rowsHeight = that._rowsView ? that._rowsView.height() - scrollBarWidth : 0;\r\n var columnsResizerController = that.component.getController(\"columnsResizer\");\r\n var draggingHeaderView = that.component.getView(\"draggingHeaderView\");\r\n params.height = columnsHeadersHeight;\r\n var isDraggingOrResizing = false !== columnsResizerController.isResizing() || draggingHeaderView.isDragging();\r\n if (isDraggingOrResizing) {\r\n params.height += rowsHeight - diffOffsetTop\r\n }\r\n if (null !== top && $element && $element.length) {\r\n params.top = $element[0].offsetTop + diffOffsetTop\r\n }\r\n that.positionChanged.fire(params)\r\n },\r\n init: function() {\r\n var that = this;\r\n that.callBase();\r\n that._columnHeadersView = this.getView(\"columnHeadersView\");\r\n that._rowsView = this.getView(\"rowsView\");\r\n that._pagerView = this.getView(\"pagerView\");\r\n that._rowsView.resizeCompleted.add(function() {\r\n if (that.option(\"allowColumnResizing\")) {\r\n var targetPoint = that.getController(\"columnsResizer\")._targetPoint;\r\n that.update(targetPoint ? targetPoint.y : null)\r\n }\r\n })\r\n },\r\n ctor: function(component) {\r\n this.callBase(component);\r\n this.positionChanged = (0, _callbacks.default)()\r\n }\r\n});\r\nvar DraggingHeaderViewController = _uiGrid_core.default.ViewController.inherit({\r\n _generatePointsByColumns: function(options) {\r\n var that = this;\r\n return _uiGrid_core2.default.getPointsByColumns(options.columnElements, function(point) {\r\n return that._pointCreated(point, options.columns, options.targetDraggingPanel.getName(), options.sourceColumn)\r\n }, options.isVerticalOrientation, options.startColumnIndex)\r\n },\r\n _pointCreated: function(point, columns, location, sourceColumn) {\r\n var targetColumn = columns[point.columnIndex];\r\n var prevColumn = columns[point.columnIndex - 1];\r\n switch (location) {\r\n case \"columnChooser\":\r\n return true;\r\n case \"headers\":\r\n return sourceColumn && !sourceColumn.allowReordering || (!targetColumn || !targetColumn.allowReordering) && (!prevColumn || !prevColumn.allowReordering);\r\n default:\r\n return 0 === columns.length\r\n }\r\n },\r\n _subscribeToEvents: function(draggingHeader, draggingPanels) {\r\n var that = this;\r\n (0, _iterator.each)(draggingPanels, function(_, draggingPanel) {\r\n if (draggingPanel) {\r\n var columns;\r\n var rowCount = draggingPanel.getRowCount ? draggingPanel.getRowCount() : 1;\r\n var nameDraggingPanel = draggingPanel.getName();\r\n var subscribeToEvents = function(index, columnElement) {\r\n if (!columnElement) {\r\n return\r\n }\r\n var $columnElement = (0, _renderer.default)(columnElement);\r\n var column = columns[index];\r\n if (draggingPanel.allowDragging(column, nameDraggingPanel, draggingPanels)) {\r\n $columnElement.addClass(that.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS));\r\n _events_engine.default.on($columnElement, (0, _index.addNamespace)(_drag.start, MODULE_NAMESPACE), that.createAction(function(args) {\r\n var e = args.event;\r\n var eventData = (0, _index.eventData)(e);\r\n draggingHeader.dragHeader({\r\n deltaX: eventData.x - (0, _renderer.default)(e.currentTarget).offset().left,\r\n deltaY: eventData.y - (0, _renderer.default)(e.currentTarget).offset().top,\r\n sourceColumn: column,\r\n index: column.index,\r\n columnIndex: index,\r\n columnElement: $columnElement,\r\n sourceLocation: nameDraggingPanel,\r\n draggingPanels: draggingPanels,\r\n rowIndex: that._columnsController.getRowIndex(column.index, true)\r\n })\r\n }));\r\n _events_engine.default.on($columnElement, (0, _index.addNamespace)(_drag.move, MODULE_NAMESPACE), {\r\n that: draggingHeader\r\n }, that.createAction(draggingHeader.moveHeader));\r\n _events_engine.default.on($columnElement, (0, _index.addNamespace)(_drag.end, MODULE_NAMESPACE), {\r\n that: draggingHeader\r\n }, that.createAction(draggingHeader.dropHeader))\r\n }\r\n };\r\n for (var i = 0; i < rowCount; i++) {\r\n var columnElements = draggingPanel.getColumnElements(i) || [];\r\n if (columnElements.length) {\r\n columns = draggingPanel.getColumns(i) || [];\r\n (0, _iterator.each)(columnElements, subscribeToEvents)\r\n }\r\n }\r\n }\r\n })\r\n },\r\n _unsubscribeFromEvents: function(draggingHeader, draggingPanels) {\r\n var that = this;\r\n (0, _iterator.each)(draggingPanels, function(_, draggingPanel) {\r\n if (draggingPanel) {\r\n var columnElements = draggingPanel.getColumnElements() || [];\r\n (0, _iterator.each)(columnElements, function(index, columnElement) {\r\n var $columnElement = (0, _renderer.default)(columnElement);\r\n _events_engine.default.off($columnElement, (0, _index.addNamespace)(_drag.start, MODULE_NAMESPACE));\r\n _events_engine.default.off($columnElement, (0, _index.addNamespace)(_drag.move, MODULE_NAMESPACE));\r\n _events_engine.default.off($columnElement, (0, _index.addNamespace)(_drag.end, MODULE_NAMESPACE));\r\n $columnElement.removeClass(that.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS))\r\n })\r\n }\r\n })\r\n },\r\n _getSeparator: function(targetLocation) {\r\n return \"headers\" === targetLocation ? this._columnsSeparatorView : this._blockSeparatorView\r\n },\r\n hideSeparators: function(type) {\r\n var blockSeparator = this._blockSeparatorView;\r\n var columnsSeparator = this._columnsSeparatorView;\r\n this._animationColumnIndex = null;\r\n blockSeparator && blockSeparator.hide();\r\n \"block\" !== type && columnsSeparator && columnsSeparator.hide()\r\n },\r\n init: function() {\r\n var that = this;\r\n that.callBase();\r\n that._columnsController = that.getController(\"columns\");\r\n that._columnHeadersView = that.getView(\"columnHeadersView\");\r\n that._columnsSeparatorView = that.getView(\"columnsSeparatorView\");\r\n that._draggingHeaderView = that.getView(\"draggingHeaderView\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._blockSeparatorView = that.getView(\"blockSeparatorView\");\r\n that._headerPanelView = that.getView(\"headerPanel\");\r\n that._columnChooserView = that.getView(\"columnChooserView\");\r\n var subscribeToEvents = function() {\r\n if (that._draggingHeaderView) {\r\n var draggingPanels = [that._columnChooserView, that._columnHeadersView, that._headerPanelView];\r\n that._unsubscribeFromEvents(that._draggingHeaderView, draggingPanels);\r\n that._subscribeToEvents(that._draggingHeaderView, draggingPanels)\r\n }\r\n };\r\n that._columnHeadersView.renderCompleted.add(subscribeToEvents);\r\n that._headerPanelView && that._headerPanelView.renderCompleted.add(subscribeToEvents);\r\n that._columnChooserView && that._columnChooserView.renderCompleted.add(subscribeToEvents)\r\n },\r\n allowDrop: function(parameters) {\r\n return this._columnsController.allowMoveColumn(parameters.sourceColumnIndex, parameters.targetColumnIndex, parameters.sourceLocation, parameters.targetLocation)\r\n },\r\n drag: function(parameters) {\r\n var sourceIndex = parameters.sourceIndex;\r\n var sourceLocation = parameters.sourceLocation;\r\n var sourceColumnElement = parameters.sourceColumnElement;\r\n var headersView = this._columnHeadersView;\r\n var rowsView = this._rowsView;\r\n if (sourceColumnElement) {\r\n sourceColumnElement.css({\r\n opacity: COLUMN_OPACITY\r\n });\r\n if (\"headers\" === sourceLocation) {\r\n headersView && headersView.setRowsOpacity(sourceIndex, COLUMN_OPACITY);\r\n rowsView && rowsView.setRowsOpacity(sourceIndex, COLUMN_OPACITY)\r\n }\r\n }\r\n },\r\n dock: function(parameters) {\r\n var that = this;\r\n var targetColumnIndex = (0, _type.isObject)(parameters.targetColumnIndex) ? parameters.targetColumnIndex.columnIndex : parameters.targetColumnIndex;\r\n var sourceLocation = parameters.sourceLocation;\r\n var targetLocation = parameters.targetLocation;\r\n var separator = that._getSeparator(targetLocation);\r\n var hasTargetVisibleIndex = targetColumnIndex >= 0;\r\n var showSeparator = function() {\r\n if (that._animationColumnIndex !== targetColumnIndex) {\r\n that.hideSeparators();\r\n separator.element()[parameters.isLast ? \"insertAfter\" : \"insertBefore\"](parameters.targetColumnElement);\r\n that._animationColumnIndex = targetColumnIndex;\r\n separator.show(targetLocation)\r\n }\r\n };\r\n that._columnHeadersView.element().find(\".\" + HEADER_ROW_CLASS).toggleClass(that.addWidgetPrefix(HEADERS_DROP_HIGHLIGHT_CLASS), \"headers\" !== sourceLocation && \"headers\" === targetLocation && !hasTargetVisibleIndex);\r\n if (separator) {\r\n if (that.allowDrop(parameters) && hasTargetVisibleIndex) {\r\n if (\"group\" === targetLocation || \"columnChooser\" === targetLocation) {\r\n showSeparator()\r\n } else {\r\n that.hideSeparators(\"block\");\r\n that.getController(\"tablePosition\").update(parameters.posY);\r\n separator.moveByX(parameters.posX - separator.width());\r\n separator.show()\r\n }\r\n } else {\r\n that.hideSeparators()\r\n }\r\n }\r\n },\r\n drop: function(parameters) {\r\n var sourceColumnElement = parameters.sourceColumnElement;\r\n if (sourceColumnElement) {\r\n sourceColumnElement.css({\r\n opacity: \"\"\r\n });\r\n this._columnHeadersView.setRowsOpacity(parameters.sourceIndex, \"\");\r\n this._rowsView.setRowsOpacity(parameters.sourceIndex, \"\");\r\n this._columnHeadersView.element().find(\".\" + HEADER_ROW_CLASS).removeClass(this.addWidgetPrefix(HEADERS_DROP_HIGHLIGHT_CLASS))\r\n }\r\n if (this.allowDrop(parameters)) {\r\n var separator = this._getSeparator(parameters.targetLocation);\r\n if (separator) {\r\n separator.hide()\r\n }\r\n this._columnsController.moveColumn(parameters.sourceColumnIndex, parameters.targetColumnIndex, parameters.sourceLocation, parameters.targetLocation)\r\n }\r\n },\r\n dispose: function() {\r\n if (this._draggingHeaderView) {\r\n this._unsubscribeFromEvents(this._draggingHeaderView, [this._columnChooserView, this._columnHeadersView, this._headerPanelView])\r\n }\r\n }\r\n});\r\nvar _default = {\r\n views: {\r\n columnsSeparatorView: ColumnsSeparatorView,\r\n blockSeparatorView: BlockSeparatorView,\r\n draggingHeaderView: DraggingHeaderView,\r\n trackerView: TrackerView\r\n },\r\n controllers: {\r\n draggingHeader: DraggingHeaderViewController,\r\n tablePosition: TablePositionViewController,\r\n columnsResizer: ColumnsResizerViewController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n _needUpdateRowHeight: function(itemCount) {\r\n var wordWrapEnabled = this.option(\"wordWrapEnabled\");\r\n var columnsResizerController = this.getController(\"columnsResizer\");\r\n var isResizing = columnsResizerController.isResizing();\r\n return this.callBase.apply(this, arguments) || itemCount > 0 && wordWrapEnabled && isResizing\r\n }\r\n }\r\n },\r\n controllers: {\r\n editorFactory: {\r\n renderFocusOverlay: function() {\r\n if (this.getController(\"columnsResizer\").isResizing()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.grouping.expanded.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.GroupingHelper = void 0;\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _utils = _interopRequireDefault(require(\"../../data/utils\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _store_helper = _interopRequireDefault(require(\"../../data/store_helper\"));\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiData_gridGrouping = require(\"./ui.data_grid.grouping.core\");\r\nvar _uiData_grid2 = require(\"./ui.data_grid.utils\");\r\nvar _query = _interopRequireDefault(require(\"../../data/query\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar loadTotalCount = function(dataSource, options) {\r\n var d = new _deferred.Deferred;\r\n var loadOptions = (0, _extend.extend)({\r\n skip: 0,\r\n take: 1,\r\n requireTotalCount: true\r\n }, options);\r\n dataSource.load(loadOptions).done(function(data, extra) {\r\n d.resolve(extra && extra.totalCount)\r\n }).fail(d.reject.bind(d));\r\n return d\r\n};\r\nvar GroupingHelper = _uiData_gridGrouping.GroupingHelper.inherit(function() {\r\n var foreachCollapsedGroups = function(that, callback, updateOffsets) {\r\n return that.foreachGroups(function(groupInfo) {\r\n if (!groupInfo.isExpanded) {\r\n return callback(groupInfo)\r\n }\r\n }, false, false, updateOffsets, true)\r\n };\r\n var correctSkipLoadOption = function(that, skip) {\r\n var skipCorrection = 0;\r\n var resultSkip = skip || 0;\r\n if (skip) {\r\n foreachCollapsedGroups(that, function(groupInfo) {\r\n if (groupInfo.offset - skipCorrection >= skip) {\r\n return false\r\n }\r\n skipCorrection += groupInfo.count - 1\r\n });\r\n resultSkip += skipCorrection\r\n }\r\n return resultSkip\r\n };\r\n var processGroupItems = function processGroupItems(that, items, path, offset, skipFirstItem, take) {\r\n var removeLastItemsCount = 0;\r\n var needRemoveFirstItem = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null;\r\n offset += groupInfo.count;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n } else {\r\n if (item.items) {\r\n var offsetInfo = processGroupItems(that, item.items, path, offset, skipFirstItem, take);\r\n if (skipFirstItem) {\r\n if (offsetInfo.offset - offset > 1) {\r\n item.isContinuation = true\r\n } else {\r\n needRemoveFirstItem = true\r\n }\r\n }\r\n offset = offsetInfo.offset;\r\n take = offsetInfo.take;\r\n if (take < 0) {\r\n if (item.items.length) {\r\n item.isContinuationOnNextPage = true\r\n } else {\r\n removeLastItemsCount++\r\n }\r\n }\r\n }\r\n }\r\n path.pop()\r\n } else {\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n offset++;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n }\r\n skipFirstItem = false\r\n }\r\n if (needRemoveFirstItem) {\r\n items.splice(0, 1)\r\n }\r\n if (removeLastItemsCount) {\r\n items.splice(-removeLastItemsCount, removeLastItemsCount)\r\n }\r\n return {\r\n offset: offset,\r\n take: take\r\n }\r\n };\r\n var pathEquals = function(path1, path2) {\r\n if (path1.length !== path2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < path1.length; i++) {\r\n if (!_utils.default.keysEqual(null, path1[i], path2[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n };\r\n var updateGroupOffsets = function updateGroupOffsets(that, items, path, offset, additionalGroupInfo) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (\"key\" in item && void 0 !== item.items) {\r\n path.push(item.key);\r\n if (additionalGroupInfo && pathEquals(additionalGroupInfo.path, path) && !item.isContinuation) {\r\n additionalGroupInfo.offset = offset\r\n }\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !item.isContinuation) {\r\n groupInfo.offset = offset\r\n }\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n offset += groupInfo.count\r\n } else {\r\n offset = updateGroupOffsets(that, item.items, path, offset, additionalGroupInfo)\r\n }\r\n path.pop()\r\n } else {\r\n offset++\r\n }\r\n }\r\n return offset\r\n };\r\n var removeGroupLoadOption = function(storeLoadOptions, loadOptions) {\r\n if (loadOptions.group) {\r\n var groups = _uiData_grid.default.normalizeSortingInfo(loadOptions.group);\r\n var sorts = _uiData_grid.default.normalizeSortingInfo(storeLoadOptions.sort);\r\n storeLoadOptions.sort = _store_helper.default.arrangeSortingInfo(groups, sorts);\r\n delete loadOptions.group\r\n }\r\n };\r\n var createNotGroupFilter = function(path, storeLoadOptions, group) {\r\n var groups = _uiData_grid.default.normalizeSortingInfo(group || storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n filterElement.push([groups[j].selector, i === j ? \"<>\" : \"=\", path[j]])\r\n }\r\n filter.push(_uiData_grid.default.combineFilters(filterElement))\r\n }\r\n filter = _uiData_grid.default.combineFilters(filter, \"or\");\r\n return _uiData_grid.default.combineFilters([filter, storeLoadOptions.filter])\r\n };\r\n var getGroupCount = function getGroupCount(item, groupCount) {\r\n var count = item.count || item.items.length;\r\n if (!item.count && groupCount > 1) {\r\n count = 0;\r\n for (var i = 0; i < item.items.length; i++) {\r\n count += getGroupCount(item.items[i], groupCount - 1)\r\n }\r\n }\r\n return count\r\n };\r\n return {\r\n handleDataLoading: function(options) {\r\n var that = this;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var collapsedGroups = [];\r\n var collapsedItemsCount = 0;\r\n var skipFirstItem = false;\r\n var take;\r\n var group = options.loadOptions.group;\r\n var skipCorrection = 0;\r\n removeGroupLoadOption(storeLoadOptions, options.loadOptions);\r\n options.group = options.group || group;\r\n if (options.isCustomLoading) {\r\n return\r\n }\r\n var loadOptions = (0, _extend.extend)({}, storeLoadOptions);\r\n loadOptions.skip = correctSkipLoadOption(that, storeLoadOptions.skip);\r\n if (loadOptions.skip && loadOptions.take && group) {\r\n loadOptions.skip--;\r\n loadOptions.take++;\r\n skipFirstItem = true\r\n }\r\n if (loadOptions.take && group) {\r\n take = loadOptions.take;\r\n loadOptions.take++\r\n }\r\n foreachCollapsedGroups(that, function(groupInfo) {\r\n if (groupInfo.offset >= loadOptions.skip + loadOptions.take + skipCorrection) {\r\n return false\r\n } else {\r\n if (groupInfo.offset >= loadOptions.skip + skipCorrection && groupInfo.count) {\r\n skipCorrection += groupInfo.count - 1;\r\n collapsedGroups.push(groupInfo);\r\n collapsedItemsCount += groupInfo.count\r\n }\r\n }\r\n });\r\n (0, _iterator.each)(collapsedGroups, function() {\r\n loadOptions.filter = createNotGroupFilter(this.path, loadOptions, group)\r\n });\r\n options.storeLoadOptions = loadOptions;\r\n options.collapsedGroups = collapsedGroups;\r\n options.collapsedItemsCount = collapsedItemsCount;\r\n options.skip = loadOptions.skip || 0;\r\n options.skipFirstItem = skipFirstItem;\r\n options.take = take\r\n },\r\n handleDataLoaded: function(options, callBase) {\r\n var that = this;\r\n var data = options.data;\r\n var collapsedGroups = options.collapsedGroups;\r\n var groups = _uiData_grid.default.normalizeSortingInfo(options.group);\r\n var groupCount = groups.length;\r\n\r\n function appendCollapsedPath(data, path, groups, collapsedGroup, offset) {\r\n if (!data || !path.length || !groups.length) {\r\n return\r\n }\r\n var keyValue;\r\n var i;\r\n var pathValue = (0, _data.toComparable)(path[0], true);\r\n for (i = 0; i < data.length; i++) {\r\n keyValue = (0, _data.toComparable)(data[i].key, true);\r\n if (offset >= collapsedGroup.offset || pathValue === keyValue) {\r\n break\r\n } else {\r\n offset += getGroupCount(data[i], groups.length)\r\n }\r\n }\r\n if (!data.length || pathValue !== keyValue) {\r\n data.splice(i, 0, {\r\n key: path[0],\r\n items: [],\r\n count: 1 === path.length ? collapsedGroup.count : void 0\r\n })\r\n }\r\n appendCollapsedPath(data[i].items, path.slice(1), groups.slice(1), collapsedGroup, offset)\r\n }\r\n if (options.collapsedItemsCount && options.extra && options.extra.totalCount >= 0) {\r\n options.extra.totalCount += options.collapsedItemsCount\r\n }\r\n callBase(options);\r\n if (groupCount) {\r\n var query = (0, _query.default)(data);\r\n _store_helper.default.multiLevelGroup(query, groups).enumerate().done(function(groupedData) {\r\n data = groupedData\r\n });\r\n if (collapsedGroups) {\r\n for (var pathIndex = 0; pathIndex < collapsedGroups.length; pathIndex++) {\r\n appendCollapsedPath(data, collapsedGroups[pathIndex].path, groups, collapsedGroups[pathIndex], options.skip)\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n processGroupItems(that, data, [], options.skip, options.skipFirstItem, options.take)\r\n }\r\n options.data = data\r\n }\r\n },\r\n isGroupItemCountable: function(item) {\r\n return null === item.items\r\n },\r\n updateTotalItemsCount: function() {\r\n var itemsCountCorrection = 0;\r\n foreachCollapsedGroups(this, function(groupInfo) {\r\n if (groupInfo.count) {\r\n itemsCountCorrection -= groupInfo.count - 1\r\n }\r\n });\r\n this.callBase(itemsCountCorrection)\r\n },\r\n changeRowExpand: function(path) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var beginPageIndex = dataSource.beginPageIndex ? dataSource.beginPageIndex() : dataSource.pageIndex();\r\n var dataSourceItems = dataSource.items();\r\n var offset = correctSkipLoadOption(that, beginPageIndex * dataSource.pageSize());\r\n var groupInfo = that.findGroupInfo(path);\r\n var groupCountQuery;\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n groupCountQuery = (new _deferred.Deferred).resolve(groupInfo.count)\r\n } else {\r\n groupCountQuery = loadTotalCount(dataSource, {\r\n filter: (0, _uiData_grid2.createGroupFilter)(path, {\r\n filter: dataSource.filter(),\r\n group: dataSource.group()\r\n })\r\n })\r\n }\r\n return (0, _deferred.when)(groupCountQuery).done(function(count) {\r\n count = parseInt(count.length ? count[0] : count);\r\n if (groupInfo) {\r\n updateGroupOffsets(that, dataSourceItems, [], offset);\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n groupInfo.count = count\r\n } else {\r\n groupInfo = {\r\n offset: -1,\r\n count: count,\r\n path: path,\r\n isExpanded: false\r\n };\r\n updateGroupOffsets(that, dataSourceItems, [], offset, groupInfo);\r\n if (groupInfo.offset >= 0) {\r\n that.addGroupInfo(groupInfo)\r\n }\r\n }\r\n that.updateTotalItemsCount()\r\n }).fail(function() {\r\n dataSource._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n })\r\n },\r\n allowCollapseAll: function() {\r\n return false\r\n },\r\n refresh: function(options, operationTypes) {\r\n var that = this;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var dataSource = that._dataSource;\r\n this.callBase.apply(this, arguments);\r\n if (operationTypes.reload) {\r\n return foreachCollapsedGroups(that, function(groupInfo) {\r\n var groupCountQuery = loadTotalCount(dataSource, {\r\n filter: (0, _uiData_grid2.createGroupFilter)(groupInfo.path, storeLoadOptions)\r\n });\r\n var groupOffsetQuery = loadTotalCount(dataSource, {\r\n filter: (0, _uiData_gridGrouping.createOffsetFilter)(groupInfo.path, storeLoadOptions)\r\n });\r\n return (0, _deferred.when)(groupOffsetQuery, groupCountQuery).done(function(offset, count) {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount()\r\n }\r\n })\r\n }, true)\r\n }\r\n }\r\n }\r\n}());\r\nexports.GroupingHelper = GroupingHelper;\r\n","/**\r\n * DevExtreme (ui/filter_builder/ui.filter_operations_dictionary.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 OPERATION_ICONS = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notequal\",\r\n \"<\": \"less\",\r\n \"<=\": \"lessorequal\",\r\n \">\": \"greater\",\r\n \">=\": \"greaterorequal\",\r\n notcontains: \"doesnotcontain\",\r\n contains: \"contains\",\r\n startswith: \"startswith\",\r\n endswith: \"endswith\",\r\n isblank: \"isblank\",\r\n isnotblank: \"isnotblank\"\r\n};\r\nvar OPERATION_NAME = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notEqual\",\r\n \"<\": \"lessThan\",\r\n \"<=\": \"lessThanOrEqual\",\r\n \">\": \"greaterThan\",\r\n \">=\": \"greaterThanOrEqual\",\r\n startswith: \"startsWith\",\r\n contains: \"contains\",\r\n notcontains: \"notContains\",\r\n endswith: \"endsWith\",\r\n isblank: \"isBlank\",\r\n isnotblank: \"isNotBlank\",\r\n between: \"between\"\r\n};\r\nvar _default = {\r\n getIconByFilterOperation: function(filterOperation) {\r\n return OPERATION_ICONS[filterOperation]\r\n },\r\n getNameByFilterOperation: function(filterOperation) {\r\n return OPERATION_NAME[filterOperation]\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/*!\n * devextreme-vue\n * Version: 20.2.7\n * Build date: Thu Apr 22 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxButton = void 0;\nvar button_1 = require(\"devextreme/ui/button\");\nvar index_1 = require(\"./core/index\");\nvar DxButton = index_1.createComponent({\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n disabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n icon: String,\n onClick: Function,\n onContentReady: Function,\n onDisposing: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n rtlEnabled: Boolean,\n stylingMode: String,\n tabIndex: Number,\n template: {},\n text: String,\n type: String,\n useSubmitBehavior: Boolean,\n validationGroup: String,\n visible: Boolean,\n width: [Function, Number, String]\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:icon\": null,\n \"update:onClick\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:rtlEnabled\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:type\": null,\n \"update:useSubmitBehavior\": null,\n \"update:validationGroup\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = button_1.default;\n }\n});\nexports.DxButton = DxButton;\nexports.default = DxButton;\n","/**\r\n * DevExtreme (ui/context_menu/ui.menu_base.edit.strategy.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 _iterator = require(\"../../core/utils/iterator\");\r\nvar _uiCollection_widgetEditStrategy = _interopRequireDefault(require(\"../collection/ui.collection_widget.edit.strategy.plain\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\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 MenuBaseEditStrategy = function(_PlainEditStrategy) {\r\n _inheritsLoose(MenuBaseEditStrategy, _PlainEditStrategy);\r\n\r\n function MenuBaseEditStrategy() {\r\n return _PlainEditStrategy.apply(this, arguments) || this\r\n }\r\n var _proto = MenuBaseEditStrategy.prototype;\r\n _proto._getPlainItems = function() {\r\n return (0, _iterator.map)(this._collectionWidget.option(\"items\"), function getMenuItems(item) {\r\n return item.items ? [item].concat((0, _iterator.map)(item.items, getMenuItems)) : item\r\n })\r\n };\r\n _proto._stringifyItem = function(item) {\r\n var _this = this;\r\n return JSON.stringify(item, function(key, value) {\r\n if (\"template\" === key) {\r\n return _this._getTemplateString(value)\r\n }\r\n return value\r\n })\r\n };\r\n _proto._getTemplateString = function(template) {\r\n var result;\r\n if (\"object\" === _typeof(template)) {\r\n result = (0, _renderer.default)(template).text()\r\n } else {\r\n result = template.toString()\r\n }\r\n return result\r\n };\r\n return MenuBaseEditStrategy\r\n}(_uiCollection_widgetEditStrategy.default);\r\nvar _default = MenuBaseEditStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/pdf_creator.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.getData = getData;\r\nvar _version = _interopRequireDefault(require(\"../core/version\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _image_creator = require(\"./image_creator\");\r\nvar _type = require(\"../core/utils/type\");\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 window = (0, _window.getWindow)();\r\nvar mainPageTemplate = \"%PDF-1.3\\r\\n2 0 obj\\r\\n<>>>\\r\\nendobj\\r\\n4 0 obj\\r\\n<>\\r\\nendobj\\r\\n7 0 obj\\r\\n<>\\r\\nendobj\\r\\n1 0 obj\\r\\n<>\\r\\nendobj\\r\\n\";\r\nvar contentTemplate = \"3 0 obj\\r\\n<>stream\\r\\n0.20 w\\n0 G\\nq _width_ 0 0 _height_ 0.00 0.00 cm /I0 Do Q\\r\\nendstream\\r\\nendobj\\r\\n\";\r\nvar infoTemplate = \"6 0 obj\\r\\n<>\\r\\nendobj\\r\\n\";\r\nvar imageStartTemplate = \"5 0 obj\\r\\n<>stream\\r\\n\";\r\nvar imageEndTemplate = \"\\r\\nendstream\\r\\nendobj\\r\\n\";\r\nvar trailerTemplate = \"trailer\\r\\n<<\\r\\n/Size 8\\r\\n/Root 7 0 R\\r\\n/Info 6 0 R\\r\\n>>\\r\\nstartxref\\r\\n_length_\\r\\n%%EOF\";\r\nvar xrefTemplate = \"xref\\r\\n0 8\\r\\n0000000000 65535 f\\r\\n0000000241 00000 n\\r\\n0000000010 00000 n\\r\\n_main_ 00000 n\\r\\n0000000089 00000 n\\r\\n_image_ 00000 n\\r\\n_info_ 00000 n\\r\\n0000000143 00000 n\\r\\n\";\r\nvar pad = function pad(str, len) {\r\n return str.length < len ? pad(\"0\" + str, len) : str\r\n};\r\nvar composePdfString = function(imageString, options, curDate) {\r\n var margin = 2 * (options.margin || 0);\r\n var width = options.width + margin;\r\n var height = options.height + margin;\r\n var widthPt = (.75 * width).toFixed(2);\r\n var heightPt = (.75 * height).toFixed(2);\r\n var mainPage = mainPageTemplate.replace(\"_width_\", widthPt).replace(\"_height_\", heightPt);\r\n var content = contentTemplate.replace(\"_width_\", widthPt).replace(\"_height_\", heightPt);\r\n var info = infoTemplate.replace(\"_date_\", curDate).replace(\"_version_\", _version.default);\r\n var image = imageStartTemplate.replace(\"_width_\", width).replace(\"_height_\", height).replace(\"_length_\", imageString.length) + imageString + imageEndTemplate;\r\n var xref = getXref(mainPage.length, content.length, info.length);\r\n var mainContent = mainPage + content + info + image;\r\n var trailer = trailerTemplate.replace(\"_length_\", mainContent.length);\r\n return mainContent + xref + trailer\r\n};\r\n\r\nfunction getXref(mainPageLength, contentLength, infoLength) {\r\n return xrefTemplate.replace(\"_main_\", pad(mainPageLength + \"\", 10)).replace(\"_info_\", pad(mainPageLength + contentLength + \"\", 10)).replace(\"_image_\", pad(mainPageLength + contentLength + infoLength + \"\", 10))\r\n}\r\nvar getCurDate = function() {\r\n return new Date\r\n};\r\nvar getBlob = function(binaryData) {\r\n var i = 0;\r\n var dataArray = new Uint8Array(binaryData.length);\r\n for (; i < binaryData.length; i++) {\r\n dataArray[i] = binaryData.charCodeAt(i)\r\n }\r\n return new window.Blob([dataArray.buffer], {\r\n type: \"application/pdf\"\r\n })\r\n};\r\nvar getBase64 = function(binaryData) {\r\n return window.btoa(binaryData)\r\n};\r\n\r\nfunction getData(data, options) {\r\n return _image_creator.imageCreator.getImageData(data, (0, _extend.extend)({}, options, {\r\n format: \"JPEG\"\r\n })).then(function(imageString) {\r\n var binaryData = composePdfString(imageString, options, getCurDate());\r\n var pdfData = (0, _type.isFunction)(window.Blob) ? getBlob(binaryData) : getBase64(binaryData);\r\n return pdfData\r\n })\r\n}\r\n","/**\r\n * DevExtreme (ui/shared/accessibility.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.subscribeVisibilityChange = subscribeVisibilityChange;\r\nexports.unsubscribeVisibilityChange = unsubscribeVisibilityChange;\r\nexports.hiddenFocus = hiddenFocus;\r\nexports.registerKeyboardAction = registerKeyboardAction;\r\nexports.restoreFocus = restoreFocus;\r\nexports.selectView = selectView;\r\nexports.setTabIndex = setTabIndex;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _common = require(\"../../core/utils/common\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nvar FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row-focused\";\r\nvar GRID_ROW_SELECTOR = \".dx-datagrid-rowsview .dx-row\";\r\nvar GRID_CELL_SELECTOR = \"\".concat(GRID_ROW_SELECTOR, \" > td\");\r\nvar TREELIST_ROW_SELECTOR = \".dx-treelist-rowsview .dx-row\";\r\nvar TREELIST_CELL_SELECTOR = \"\".concat(TREELIST_ROW_SELECTOR, \" > td\");\r\nvar viewItemSelectorMap = {\r\n groupPanel: [\".dx-datagrid-group-panel .dx-group-panel-item[tabindex]\"],\r\n columnHeaders: [\".dx-datagrid-headers .dx-header-row > td.dx-datagrid-action\", \".dx-treelist-headers .dx-header-row > td.dx-treelist-action\"],\r\n filterRow: [\".dx-datagrid-headers .dx-datagrid-filter-row .dx-editor-cell .dx-texteditor-input\", \".dx-treelist-headers .dx-treelist-filter-row .dx-editor-cell .dx-texteditor-input\"],\r\n rowsView: [\"\".concat(FOCUSED_ROW_SELECTOR), \"\".concat(GRID_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR), \"\".concat(TREELIST_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR)],\r\n footer: [\".dx-datagrid-total-footer .dx-datagrid-summary-item\", \".dx-treelist-total-footer .dx-treelist-summary-item\"],\r\n filterPanel: [\".dx-datagrid-filter-panel .dx-icon-filter\", \".dx-treelist-filter-panel .dx-icon-filter\"],\r\n pager: [\".dx-datagrid-pager [tabindex]\", \".dx-treelist-pager [tabindex]\"]\r\n};\r\nvar isMouseDown = false;\r\nvar isHiddenFocusing = false;\r\nvar focusedElementInfo = null;\r\n\r\nfunction processKeyDown(viewName, instance, event, action, $mainElement, executeKeyDown) {\r\n var isHandled = fireKeyDownEvent(instance, event.originalEvent, executeKeyDown);\r\n if (isHandled) {\r\n return\r\n }\r\n var keyName = (0, _index.normalizeKeyName)(event);\r\n if (\"enter\" === keyName || \"space\" === keyName) {\r\n saveFocusedElementInfo(event.target, instance);\r\n action && action({\r\n event: event\r\n })\r\n } else {\r\n if (\"tab\" === keyName) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n } else {\r\n selectView(viewName, instance, event)\r\n }\r\n }\r\n}\r\n\r\nfunction saveFocusedElementInfo(target, instance) {\r\n var $target = (0, _renderer.default)(target);\r\n var ariaLabel = $target.attr(\"aria-label\");\r\n var $activeElements = getActiveAccessibleElements(ariaLabel, instance.element());\r\n var targetIndex = $activeElements.index($target);\r\n focusedElementInfo = (0, _extend.extend)({}, {\r\n ariaLabel: ariaLabel,\r\n index: targetIndex\r\n }, {\r\n viewInstance: instance\r\n })\r\n}\r\n\r\nfunction getActiveAccessibleElements(ariaLabel, viewElement) {\r\n var $viewElement = (0, _renderer.default)(viewElement);\r\n var $activeElements;\r\n if (ariaLabel) {\r\n $activeElements = $viewElement.find('[aria-label=\"'.concat(ariaLabel, '\"][tabindex]'))\r\n } else {\r\n $activeElements = $viewElement.find(\"[tabindex]\")\r\n }\r\n return $activeElements\r\n}\r\n\r\nfunction findFocusedViewElement(viewSelectors) {\r\n for (var index in viewSelectors) {\r\n var selector = viewSelectors[index];\r\n var $focusViewElement = (0, _renderer.default)(selector).first();\r\n if ($focusViewElement.length) {\r\n return $focusViewElement\r\n }\r\n }\r\n}\r\n\r\nfunction fireKeyDownEvent(instance, event, executeAction) {\r\n var args = {\r\n event: event,\r\n handled: false\r\n };\r\n if (executeAction) {\r\n executeAction(args)\r\n } else {\r\n instance._createActionByOption(\"onKeyDown\")(args)\r\n }\r\n return args.handled\r\n}\r\n\r\nfunction onDocumentVisibilityChange() {\r\n isHiddenFocusing = \"visible\" === _dom_adapter.default.getDocument().visibilityState\r\n}\r\n\r\nfunction subscribeVisibilityChange() {\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\n\r\nfunction unsubscribeVisibilityChange() {\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\n\r\nfunction hiddenFocus(element) {\r\n isHiddenFocusing = true;\r\n element.focus();\r\n isHiddenFocusing = false\r\n}\r\n\r\nfunction registerKeyboardAction(viewName, instance, $element, selector, action, executeKeyDown) {\r\n if (instance.option(\"useLegacyKeyboardNavigation\")) {\r\n return _common.noop\r\n }\r\n var $mainElement = (0, _renderer.default)(instance.element());\r\n var keyDownHandler = function(e) {\r\n return processKeyDown(viewName, instance, e, action, $mainElement, executeKeyDown)\r\n };\r\n var mouseDownHandler = function() {\r\n isMouseDown = true;\r\n $mainElement.removeClass(FOCUS_STATE_CLASS)\r\n };\r\n var focusinHandler = function() {\r\n var needShowOverlay = !isMouseDown && !isHiddenFocusing;\r\n if (needShowOverlay) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n }\r\n isMouseDown = false\r\n };\r\n _events_engine.default.on($element, \"keydown\", selector, keyDownHandler);\r\n _events_engine.default.on($element, \"mousedown\", selector, mouseDownHandler);\r\n _events_engine.default.on($element, \"focusin\", selector, focusinHandler);\r\n return function() {\r\n _events_engine.default.off($element, \"keydown\", selector, keyDownHandler);\r\n _events_engine.default.off($element, \"mousedown\", selector, mouseDownHandler);\r\n _events_engine.default.off($element, \"focusin\", selector, focusinHandler)\r\n }\r\n}\r\n\r\nfunction restoreFocus(instance) {\r\n if (!instance.option(\"useLegacyKeyboardNavigation\") && focusedElementInfo) {\r\n var viewInstance = focusedElementInfo.viewInstance;\r\n if (viewInstance) {\r\n var $activeElements = getActiveAccessibleElements(focusedElementInfo.ariaLabel, viewInstance.element());\r\n var $targetElement = $activeElements.eq(focusedElementInfo.index);\r\n focusedElementInfo = null;\r\n _events_engine.default.trigger($targetElement, \"focus\")\r\n }\r\n }\r\n}\r\n\r\nfunction selectView(viewName, instance, event) {\r\n var keyName = (0, _index.normalizeKeyName)(event);\r\n if (event.ctrlKey && (\"upArrow\" === keyName || \"downArrow\" === keyName)) {\r\n var viewNames = Object.keys(viewItemSelectorMap);\r\n var viewItemIndex = viewNames.indexOf(viewName);\r\n while (viewItemIndex >= 0 && viewItemIndex < viewNames.length) {\r\n viewItemIndex = \"upArrow\" === keyName ? --viewItemIndex : ++viewItemIndex;\r\n var _viewName = viewNames[viewItemIndex];\r\n var viewSelectors = viewItemSelectorMap[_viewName];\r\n var $focusViewElement = findFocusedViewElement(viewSelectors);\r\n if ($focusViewElement && $focusViewElement.length) {\r\n $focusViewElement.attr(\"tabindex\", instance.option(\"tabindex\") || 0);\r\n _events_engine.default.trigger($focusViewElement, \"focus\");\r\n $focusViewElement.removeClass(FOCUS_DISABLED_CLASS);\r\n break\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction setTabIndex(instance, $element) {\r\n if (!instance.option(\"useLegacyKeyboardnavigation\")) {\r\n $element.attr(\"tabindex\", instance.option(\"tabindex\") || 0)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./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 ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar ERROR_MESSAGE_CLASS = \"dx-error-message\";\r\nvar ERROR_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar ACTION_CLASS = \"action\";\r\nvar ErrorHandlingController = _uiGrid_core.default.ViewController.inherit({\r\n init: function() {\r\n var that = this;\r\n that._columnHeadersView = that.getView(\"columnHeadersView\");\r\n that._rowsView = that.getView(\"rowsView\")\r\n },\r\n _createErrorRow: function(error, $tableElements) {\r\n var that = this;\r\n var $errorRow;\r\n var $closeButton;\r\n var $errorMessage = this._renderErrorMessage(error);\r\n if ($tableElements) {\r\n $errorRow = (0, _renderer.default)(\"
\").addClass(ERROR_ROW_CLASS);\r\n $closeButton = (0, _renderer.default)(\"
\").addClass(ERROR_CLOSEBUTTON_CLASS).addClass(that.addWidgetPrefix(ACTION_CLASS));\r\n _events_engine.default.on($closeButton, _click.name, that.createAction(function(args) {\r\n var e = args.event;\r\n var $errorRow;\r\n var errorRowIndex = (0, _renderer.default)(e.currentTarget).closest(\".\" + ERROR_ROW_CLASS).index();\r\n e.stopPropagation();\r\n (0, _iterator.each)($tableElements, function(_, tableElement) {\r\n $errorRow = (0, _renderer.default)(tableElement).children(\"tbody\").children(\"tr\").eq(errorRowIndex);\r\n that.removeErrorRow($errorRow)\r\n });\r\n that.getController(\"resizing\") && that.getController(\"resizing\").fireContentReadyAction()\r\n }));\r\n (0, _renderer.default)(\"
\").attr({\r\n colSpan: that.getController(\"columns\").getVisibleColumns().length,\r\n role: \"presentation\"\r\n }).prepend($closeButton).append($errorMessage).appendTo($errorRow);\r\n return $errorRow\r\n }\r\n return $errorMessage\r\n },\r\n _renderErrorMessage: function(error) {\r\n var message = error.url ? error.message.replace(error.url, \"\") : error.message || error;\r\n var $message = (0, _renderer.default)(\"
\").addClass(ERROR_MESSAGE_CLASS).text(message);\r\n if (error.url) {\r\n (0, _renderer.default)(\"\").attr(\"href\", error.url).text(error.url).appendTo($message)\r\n }\r\n return $message\r\n },\r\n renderErrorRow: function(error, rowIndex, $popupContent) {\r\n var that = this;\r\n var $errorMessageElement;\r\n var $firstErrorRow;\r\n if ($popupContent) {\r\n $popupContent.find(\".\" + ERROR_MESSAGE_CLASS).remove();\r\n $errorMessageElement = that._createErrorRow(error);\r\n $popupContent.prepend($errorMessageElement);\r\n return $errorMessageElement\r\n }\r\n var viewElement = rowIndex >= 0 || !that._columnHeadersView.isVisible() ? that._rowsView : that._columnHeadersView;\r\n var $tableElements = $popupContent || viewElement.getTableElements();\r\n (0, _iterator.each)($tableElements, function(_, tableElement) {\r\n $errorMessageElement = that._createErrorRow(error, $tableElements);\r\n $firstErrorRow = $firstErrorRow || $errorMessageElement;\r\n if (rowIndex >= 0) {\r\n var $row = viewElement._getRowElements((0, _renderer.default)(tableElement)).eq(rowIndex);\r\n that.removeErrorRow($row.next());\r\n $errorMessageElement.insertAfter($row)\r\n } else {\r\n var $tbody = (0, _renderer.default)(tableElement).children(\"tbody\");\r\n var rowElements = $tbody.children(\"tr\");\r\n if (that._columnHeadersView.isVisible()) {\r\n that.removeErrorRow(rowElements.last());\r\n (0, _renderer.default)(tableElement).append($errorMessageElement)\r\n } else {\r\n that.removeErrorRow(rowElements.first());\r\n $tbody.first().prepend($errorMessageElement)\r\n }\r\n }\r\n });\r\n if (!$popupContent) {\r\n var resizingController = that.getController(\"resizing\");\r\n resizingController && resizingController.fireContentReadyAction()\r\n }\r\n return $firstErrorRow\r\n },\r\n removeErrorRow: function($row) {\r\n if (!$row) {\r\n var $columnHeaders = this._columnHeadersView && this._columnHeadersView.element();\r\n $row = $columnHeaders && $columnHeaders.find(\".\" + ERROR_ROW_CLASS);\r\n if (!$row || !$row.length) {\r\n var $rowsViewElement = this._rowsView.element();\r\n $row = $rowsViewElement && $rowsViewElement.find(\".\" + ERROR_ROW_CLASS)\r\n }\r\n }\r\n $row && $row.hasClass(ERROR_ROW_CLASS) && $row.remove()\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n switch (args.name) {\r\n case \"errorRowEnabled\":\r\n args.handled = true;\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n }\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n errorRowEnabled: true\r\n }\r\n },\r\n controllers: {\r\n errorHandling: ErrorHandlingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n var that = this;\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n that.callBase();\r\n that.dataErrorOccurred.add(function(error, $popupContent) {\r\n if (that.option(\"errorRowEnabled\")) {\r\n errorHandlingController.renderErrorRow(error, void 0, $popupContent)\r\n }\r\n });\r\n that.changed.add(function(e) {\r\n if (e && \"loadError\" === e.changeType) {\r\n return\r\n }\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n var editingController = that.getController(\"editing\");\r\n if (editingController && !editingController.hasChanges()) {\r\n errorHandlingController && errorHandlingController.removeErrorRow()\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.state_storing_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.StateStoringController = void 0;\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _storage = require(\"../../core/utils/storage\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DATE_REGEX = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/;\r\nvar parseDates = function parseDates(state) {\r\n if (!state) {\r\n return\r\n }(0, _iterator.each)(state, function(key, value) {\r\n if ((0, _type.isPlainObject)(value) || Array.isArray(value)) {\r\n parseDates(value)\r\n } else {\r\n if (\"string\" === typeof value) {\r\n var date = DATE_REGEX.exec(value);\r\n if (date) {\r\n state[key] = new Date(Date.UTC(+date[1], +date[2] - 1, +date[3], +date[4], +date[5], +date[6]))\r\n }\r\n }\r\n }\r\n })\r\n};\r\nvar StateStoringController = _uiGrid_core.default.ViewController.inherit(function() {\r\n var getStorage = function(options) {\r\n var storage = \"sessionStorage\" === options.type ? (0, _storage.sessionStorage)() : (0, _window.getWindow)().localStorage;\r\n if (!storage) {\r\n if (\"file:\" === (0, _window.getWindow)().location.protocol && _browser.default.msie) {\r\n throw new Error(\"E1038\")\r\n } else {\r\n throw new Error(\"E1007\")\r\n }\r\n }\r\n return storage\r\n };\r\n var getUniqueStorageKey = function(options) {\r\n return (0, _type.isDefined)(options.storageKey) ? options.storageKey : \"storage\"\r\n };\r\n return {\r\n _loadState: function() {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n return options.customLoad && options.customLoad()\r\n }\r\n try {\r\n return JSON.parse(getStorage(options).getItem(getUniqueStorageKey(options)))\r\n } catch (e) {\r\n _ui.default.log(e.message)\r\n }\r\n },\r\n _saveState: function(state) {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n options.customSave && options.customSave(state);\r\n return\r\n }\r\n try {\r\n getStorage(options).setItem(getUniqueStorageKey(options), JSON.stringify(state))\r\n } catch (e) {\r\n _ui.default.log(e.message)\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"state\"]\r\n },\r\n isEnabled: function() {\r\n return this.option(\"stateStoring.enabled\")\r\n },\r\n init: function() {\r\n var that = this;\r\n that._state = {};\r\n that._isLoaded = false;\r\n that._isLoading = false;\r\n that._windowUnloadHandler = function() {\r\n if (void 0 !== that._savingTimeoutID) {\r\n that._saveState(that.state())\r\n }\r\n };\r\n _events_engine.default.on((0, _window.getWindow)(), \"unload\", that._windowUnloadHandler);\r\n return that\r\n },\r\n isLoaded: function() {\r\n return this._isLoaded\r\n },\r\n isLoading: function() {\r\n return this._isLoading\r\n },\r\n load: function() {\r\n var _this = this;\r\n this._isLoading = true;\r\n var loadResult = (0, _deferred.fromPromise)(this._loadState());\r\n loadResult.always(function() {\r\n _this._isLoaded = true;\r\n _this._isLoading = false\r\n }).done(function(state) {\r\n _this.state(state)\r\n });\r\n return loadResult\r\n },\r\n state: function(_state) {\r\n var that = this;\r\n if (!arguments.length) {\r\n return (0, _extend.extend)(true, {}, that._state)\r\n } else {\r\n that._state = (0, _extend.extend)({}, _state);\r\n parseDates(that._state)\r\n }\r\n },\r\n save: function() {\r\n var that = this;\r\n clearTimeout(that._savingTimeoutID);\r\n that._savingTimeoutID = setTimeout(function() {\r\n that._saveState(that.state());\r\n that._savingTimeoutID = void 0\r\n }, that.option(\"stateStoring.savingTimeout\"))\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n switch (args.name) {\r\n case \"stateStoring\":\r\n if (that.isEnabled() && !that.isLoading()) {\r\n that.load()\r\n }\r\n args.handled = true;\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._savingTimeoutID);\r\n _events_engine.default.off((0, _window.getWindow)(), \"unload\", this._windowUnloadHandler)\r\n }\r\n }\r\n}());\r\nexports.StateStoringController = StateStoringController;\r\n","/**\r\n * DevExtreme (ui/toolbar/ui.toolbar.strategy.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar abstract = _class.default.abstract;\r\nvar TOOLBAR_MENU_CONTAINER_CLASS = \"dx-toolbar-menu-container\";\r\nvar TOOLBAR_MENU_BUTTON_CLASS = \"dx-toolbar-menu-button\";\r\nvar ToolbarStrategy = _class.default.inherit({\r\n ctor: function(toolbar) {\r\n this._toolbar = toolbar\r\n },\r\n render: function() {\r\n this._renderMenuButton();\r\n this._renderWidget()\r\n },\r\n _widgetOptions: function() {\r\n var itemClickAction = this._toolbar._createActionByOption(\"onItemClick\");\r\n return {\r\n itemTemplate: this._getMenuItemTemplate.bind(this),\r\n onItemClick: function(e) {\r\n this._toggleMenu(false, true);\r\n itemClickAction(e)\r\n }.bind(this)\r\n }\r\n },\r\n _getMenuItemTemplate: function() {\r\n return this._toolbar._getTemplateByOption(\"menuItemTemplate\")\r\n },\r\n _renderWidget: function() {\r\n var $menu = (0, _renderer.default)(\"
\").appendTo(this._menuContainer());\r\n this._menu = this._toolbar._createComponent($menu, this._menuWidgetClass(), this._widgetOptions());\r\n this.renderMenuItems()\r\n },\r\n _menuContainer: abstract,\r\n _menuWidgetClass: abstract,\r\n _hasVisibleMenuItems: function(items) {\r\n var menuItems = items || this._toolbar.option(\"items\");\r\n var result = false;\r\n var optionGetter = (0, _data.compileGetter)(\"visible\");\r\n var overflowGetter = (0, _data.compileGetter)(\"locateInMenu\");\r\n (0, _iterator.each)(menuItems, function(index, item) {\r\n var itemVisible = optionGetter(item, {\r\n functionsAsIs: true\r\n });\r\n var itemOverflow = overflowGetter(item, {\r\n functionsAsIs: true\r\n });\r\n if (false !== itemVisible && (\"auto\" === itemOverflow || \"always\" === itemOverflow) || \"menu\" === item.location) {\r\n result = true\r\n }\r\n });\r\n return result\r\n },\r\n _getMenuItems: function() {\r\n return this._toolbar._getMenuItems()\r\n },\r\n _updateMenuVisibility: _common.noop,\r\n _renderMenuButton: function() {\r\n var buttonOptions = this._menuButtonOptions();\r\n this._renderMenuButtonContainer();\r\n this._$button = (0, _renderer.default)(\"
\").appendTo(this._$menuButtonContainer).addClass(TOOLBAR_MENU_BUTTON_CLASS);\r\n this._toolbar._createComponent(this._$button, _button.default, buttonOptions)\r\n },\r\n _menuButtonOptions: function() {\r\n return {\r\n onClick: this._menuButtonClickHandler.bind(this)\r\n }\r\n },\r\n _menuButtonClickHandler: function() {\r\n this._toggleMenu(!this._menuShown, true)\r\n },\r\n _renderMenuButtonContainer: function() {\r\n var $afterSection = this._toolbar._$afterSection;\r\n this._$menuButtonContainer = (0, _renderer.default)(\"
\").appendTo($afterSection).addClass(this._toolbar._buttonClass()).addClass(TOOLBAR_MENU_CONTAINER_CLASS)\r\n },\r\n renderMenuItems: function() {\r\n this._menu && this._menu.option(\"items\", this._getMenuItems())\r\n },\r\n toggleMenuVisibility: function(visible, animate) {\r\n this._menu && this._toggleMenu(visible, animate)\r\n },\r\n _toggleMenu: function(visible) {\r\n this._menuShown = visible\r\n },\r\n getMenuWidget: function() {\r\n return this._menu\r\n },\r\n widgetOption: function(name, value) {\r\n this._menu && this._menu.option(name, value)\r\n },\r\n handleToolbarVisibilityChange: _common.noop\r\n});\r\nvar _default = ToolbarStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _guid = _interopRequireDefault(require(\"../../core/guid\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _double_click = require(\"../../events/double_click\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _array_utils = require(\"../../data/array_utils\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _dialog = require(\"../dialog\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\nvar _popup = _interopRequireDefault(require(\"../popup\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _form = _interopRequireDefault(require(\"../form\"));\r\nvar _hold = _interopRequireDefault(require(\"../../events/hold\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar iconUtils = _interopRequireWildcard(require(\"../../core/utils/icon\"));\r\nvar _ui = _interopRequireDefault(require(\"../scroll_view/ui.scrollable\"));\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\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 ownKeys(object, enumerableOnly) {\r\n var keys = Object.keys(object);\r\n if (Object.getOwnPropertySymbols) {\r\n var symbols = Object.getOwnPropertySymbols(object);\r\n if (enumerableOnly) {\r\n symbols = symbols.filter(function(sym) {\r\n return Object.getOwnPropertyDescriptor(object, sym).enumerable\r\n })\r\n }\r\n keys.push.apply(keys, symbols)\r\n }\r\n return keys\r\n}\r\n\r\nfunction _objectSpread(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = null != arguments[i] ? arguments[i] : {};\r\n if (i % 2) {\r\n ownKeys(Object(source), true).forEach(function(key) {\r\n _defineProperty(target, key, source[key])\r\n })\r\n } else {\r\n if (Object.getOwnPropertyDescriptors) {\r\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source))\r\n } else {\r\n ownKeys(Object(source)).forEach(function(key) {\r\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\r\n })\r\n }\r\n }\r\n }\r\n return target\r\n}\r\n\r\nfunction _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\nvar EDIT_FORM_CLASS = \"edit-form\";\r\nvar EDIT_FORM_ITEM_CLASS = \"edit-form-item\";\r\nvar FOCUS_OVERLAY_CLASS = \"focus-overlay\";\r\nvar READONLY_CLASS = \"readonly\";\r\nvar EDIT_POPUP_CLASS = \"edit-popup\";\r\nvar FORM_BUTTONS_CONTAINER_CLASS = \"form-buttons-container\";\r\nvar ADD_ROW_BUTTON_CLASS = \"addrow-button\";\r\nvar DROPDOWN_EDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar LINK_CLASS = \"dx-link\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar ROW_SELECTED = \"dx-selection\";\r\nvar EDIT_ROW = \"dx-edit-row\";\r\nvar EDIT_BUTTON_CLASS = \"dx-edit-button\";\r\nvar COMMAND_EDIT_CLASS = \"dx-command-edit\";\r\nvar COMMAND_EDIT_WITH_ICONS_CLASS = COMMAND_EDIT_CLASS + \"-with-icons\";\r\nvar SCROLLABLE_CONTAINER_CLASS = \"dx-scrollable-container\";\r\nvar BUTTON_CLASS = \"dx-button\";\r\nvar INSERT_INDEX = \"__DX_INSERT_INDEX__\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar ROW_REMOVED = \"dx-row-removed\";\r\nvar ROW_INSERTED = \"dx-row-inserted\";\r\nvar ROW_MODIFIED = \"dx-row-modified\";\r\nvar CELL_MODIFIED = \"dx-cell-modified\";\r\nvar EDITING_NAMESPACE = \"dxDataGridEditing\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nvar FOCUSABLE_ELEMENT_SELECTOR = \"[tabindex], \" + EDITORS_INPUT_SELECTOR;\r\nvar EDIT_MODE_BATCH = \"batch\";\r\nvar EDIT_MODE_ROW = \"row\";\r\nvar EDIT_MODE_CELL = \"cell\";\r\nvar EDIT_MODE_FORM = \"form\";\r\nvar EDIT_MODE_POPUP = \"popup\";\r\nvar DATA_EDIT_DATA_INSERT_TYPE = \"insert\";\r\nvar DATA_EDIT_DATA_UPDATE_TYPE = \"update\";\r\nvar DATA_EDIT_DATA_REMOVE_TYPE = \"remove\";\r\nvar DEFAULT_START_EDIT_ACTION = \"click\";\r\nvar EDIT_MODES = [EDIT_MODE_BATCH, EDIT_MODE_ROW, EDIT_MODE_CELL, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nvar ROW_BASED_MODES = [EDIT_MODE_ROW, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nvar CELL_BASED_MODES = [EDIT_MODE_BATCH, EDIT_MODE_CELL];\r\nvar FORM_BASED_MODES = [EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nvar MODES_WITH_DELAYED_FOCUS = [EDIT_MODE_ROW, EDIT_MODE_FORM];\r\nvar TARGET_COMPONENT_NAME = \"targetComponent\";\r\nvar EDIT_LINK_CLASS = {\r\n save: \"dx-link-save\",\r\n cancel: \"dx-link-cancel\",\r\n edit: \"dx-link-edit\",\r\n undelete: \"dx-link-undelete\",\r\n \"delete\": \"dx-link-delete\",\r\n add: \"dx-link-add\"\r\n};\r\nvar EDIT_ICON_CLASS = {\r\n save: \"save\",\r\n cancel: \"revert\",\r\n edit: \"edit\",\r\n undelete: \"revert\",\r\n \"delete\": \"trash\",\r\n add: \"add\"\r\n};\r\nvar METHOD_NAMES = {\r\n edit: \"editRow\",\r\n \"delete\": \"deleteRow\",\r\n undelete: \"undeleteRow\",\r\n save: \"saveEditData\",\r\n cancel: \"cancelEditData\",\r\n add: \"addRowByRowIndex\"\r\n};\r\nvar ACTION_OPTION_NAMES = {\r\n add: \"allowAdding\",\r\n edit: \"allowUpdating\",\r\n \"delete\": \"allowDeleting\"\r\n};\r\nvar BUTTON_NAMES = [\"edit\", \"save\", \"cancel\", \"delete\", \"undelete\"];\r\nvar EDITING_POPUP_OPTION_NAME = \"editing.popup\";\r\nvar EDITING_CHANGES_OPTION_NAME = \"editing.changes\";\r\nvar EDITING_EDITROWKEY_OPTION_NAME = \"editing.editRowKey\";\r\nvar EDITING_EDITCOLUMNNAME_OPTION_NAME = \"editing.editColumnName\";\r\nvar createFailureHandler = function(deferred) {\r\n return function(arg) {\r\n var error = arg instanceof Error ? arg : new Error(arg && String(arg) || \"Unknown error\");\r\n deferred.reject(error)\r\n }\r\n};\r\nvar _getEditMode = function(that) {\r\n var editMode = that.option(\"editing.mode\");\r\n if (EDIT_MODES.indexOf(editMode) !== -1) {\r\n return editMode\r\n }\r\n return EDIT_MODE_ROW\r\n};\r\nvar _isRowEditMode = function(that) {\r\n var editMode = _getEditMode(that);\r\n return ROW_BASED_MODES.indexOf(editMode) !== -1\r\n};\r\nvar isEditingCell = function(isEditRow, cellOptions) {\r\n return cellOptions.isEditing || isEditRow && cellOptions.column.allowEditing\r\n};\r\nvar isEditingOrShowEditorAlwaysDataCell = function(isEditRow, cellOptions) {\r\n var isCommandCell = !!cellOptions.column.command;\r\n var isEditing = isEditingCell(isEditRow, cellOptions);\r\n var isEditorCell = !isCommandCell && (isEditing || cellOptions.column.showEditorAlways);\r\n return \"data\" === cellOptions.rowType && isEditorCell\r\n};\r\nvar EditingController = _uiGrid_core.default.ViewController.inherit(function() {\r\n var getDefaultEditorTemplate = function(that) {\r\n return function(container, options) {\r\n var $editor = (0, _renderer.default)(\"
\").appendTo(container);\r\n that.getController(\"editorFactory\").createEditor($editor, (0, _extend.extend)({}, options.column, {\r\n value: options.value,\r\n setValue: options.setValue,\r\n row: options.row,\r\n parentType: \"dataRow\",\r\n width: null,\r\n readOnly: !options.setValue,\r\n isOnForm: options.isOnForm,\r\n id: options.id\r\n }))\r\n }\r\n };\r\n var getEditingTexts = function(options) {\r\n var editingTexts = options.component.option(\"editing.texts\") || {};\r\n return {\r\n save: editingTexts.saveRowChanges,\r\n cancel: editingTexts.cancelRowChanges,\r\n edit: editingTexts.editRow,\r\n undelete: editingTexts.undeleteRow,\r\n \"delete\": editingTexts.deleteRow,\r\n add: editingTexts.addRowToNode\r\n }\r\n };\r\n var getButtonIndex = function(buttons, name) {\r\n var result = -1;\r\n buttons.some(function(button, index) {\r\n if (getButtonName(button) === name) {\r\n result = index;\r\n return true\r\n }\r\n });\r\n return result\r\n };\r\n\r\n function getButtonName(button) {\r\n return (0, _type.isObject)(button) ? button.name : button\r\n }\r\n var getEditorType = function(item) {\r\n var column = item.column;\r\n return item.isCustomEditorType ? item.editorType : column.formItem && column.formItem.editorType\r\n };\r\n var forEachFormItems = function forEachFormItems(items, callBack) {\r\n items.forEach(function(item) {\r\n if (item.items || item.tabs) {\r\n forEachFormItems(item.items || item.tabs, callBack)\r\n } else {\r\n callBack(item)\r\n }\r\n })\r\n };\r\n return {\r\n init: function() {\r\n var that = this;\r\n that._columnsController = that.getController(\"columns\");\r\n that._dataController = that.getController(\"data\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._editForm = null;\r\n that._updateEditFormDeferred = null;\r\n that._lastOperation = null;\r\n if (that._deferreds) {\r\n that._deferreds.forEach(function(d) {\r\n return d.reject(\"cancel\")\r\n })\r\n }\r\n that._deferreds = [];\r\n if (!that._dataChangedHandler) {\r\n that._dataChangedHandler = that._handleDataChanged.bind(that);\r\n that._dataController.changed.add(that._dataChangedHandler)\r\n }\r\n if (!that._saveEditorHandler) {\r\n that.createAction(\"onInitNewRow\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onRowInserting\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onRowInserted\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onEditingStart\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onRowUpdating\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onRowUpdated\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onRowRemoving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onRowRemoved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onSaved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onSaving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onEditCanceling\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onEditCanceled\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n var $pointerDownTarget;\r\n var isResizing;\r\n that._pointerUpEditorHandler = function() {\r\n var _that$getController;\r\n isResizing = null === (_that$getController = that.getController(\"columnsResizer\")) || void 0 === _that$getController ? void 0 : _that$getController.isResizing()\r\n };\r\n that._pointerDownEditorHandler = function(e) {\r\n return $pointerDownTarget = (0, _renderer.default)(e.target)\r\n };\r\n that._saveEditorHandler = that.createAction(function(e) {\r\n var event = e.event;\r\n var $target = (0, _renderer.default)(event.target);\r\n var targetComponent = event[TARGET_COMPONENT_NAME];\r\n if ($pointerDownTarget && $pointerDownTarget.is(\"input\") && !$pointerDownTarget.is($target)) {\r\n return\r\n }\r\n\r\n function checkEditorPopup($element) {\r\n return $element && !!$element.closest(\".\".concat(DROPDOWN_EDITOR_OVERLAY_CLASS)).length\r\n }\r\n if (!_isRowEditMode(that) && !that._editCellInProgress) {\r\n var isEditorPopup = checkEditorPopup($target) || checkEditorPopup(null === targetComponent || void 0 === targetComponent ? void 0 : targetComponent.$element());\r\n var isDomElement = !!$target.closest((0, _window.getWindow)().document).length;\r\n var isAnotherComponent = targetComponent && !targetComponent._disposed && targetComponent !== that.component;\r\n var isAddRowButton = !!$target.closest(\".\".concat(that.addWidgetPrefix(ADD_ROW_BUTTON_CLASS))).length;\r\n var isFocusOverlay = $target.hasClass(that.addWidgetPrefix(FOCUS_OVERLAY_CLASS));\r\n var isCellEditMode = _getEditMode(that) === EDIT_MODE_CELL;\r\n if (!isResizing && !isEditorPopup && !isFocusOverlay && !(isAddRowButton && isCellEditMode && that.isEditing()) && (isDomElement || isAnotherComponent)) {\r\n that._closeEditItem.bind(that)($target)\r\n }\r\n }\r\n });\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), _pointer.default.up, that._pointerUpEditorHandler);\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), _pointer.default.down, that._pointerDownEditorHandler);\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), _click.name, that._saveEditorHandler)\r\n }\r\n that._updateEditColumn();\r\n that._updateEditButtons();\r\n if (!this._internalState) {\r\n this._internalState = []\r\n }\r\n this.component._optionsByReference[EDITING_EDITROWKEY_OPTION_NAME] = true;\r\n this.component._optionsByReference[EDITING_CHANGES_OPTION_NAME] = true\r\n },\r\n getChanges: function() {\r\n return this.option(EDITING_CHANGES_OPTION_NAME)\r\n },\r\n resetChanges: function() {\r\n var changes = this.getChanges();\r\n var needReset = null === changes || void 0 === changes ? void 0 : changes.length;\r\n if (needReset) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, [])\r\n }\r\n },\r\n _getInternalData: function(key) {\r\n return this._internalState.filter(function(item) {\r\n return item.key === key\r\n })[0]\r\n },\r\n _addInternalData: function(params) {\r\n var internalData = this._getInternalData(params.key);\r\n if (internalData) {\r\n return (0, _extend.extend)(internalData, params)\r\n }\r\n this._internalState.push(params);\r\n return params\r\n },\r\n _getOldData: function(key) {\r\n var _this$_getInternalDat;\r\n return null === (_this$_getInternalDat = this._getInternalData(key)) || void 0 === _this$_getInternalDat ? void 0 : _this$_getInternalDat.oldData\r\n },\r\n getUpdatedData: function(data) {\r\n var key = this._dataController.keyOf(data);\r\n var changes = this.getChanges();\r\n var editIndex = _uiGrid_core2.default.getIndexByKey(key, changes);\r\n if (changes[editIndex]) {\r\n return (0, _array_utils.createObjectWithChanges)(data, changes[editIndex].data)\r\n }\r\n return data\r\n },\r\n getInsertedData: function() {\r\n return this.getChanges().filter(function(change) {\r\n return change.data && change.type === DATA_EDIT_DATA_INSERT_TYPE\r\n }).map(function(change) {\r\n return change.data\r\n })\r\n },\r\n getRemovedData: function() {\r\n var _this = this;\r\n return this.getChanges().filter(function(change) {\r\n return _this._getOldData(change.key) && change.type === DATA_EDIT_DATA_REMOVE_TYPE\r\n }).map(function(change) {\r\n return _this._getOldData(change.key)\r\n })\r\n },\r\n _fireDataErrorOccurred: function(arg) {\r\n if (\"cancel\" === arg) {\r\n return\r\n }\r\n var $popupContent = this.getPopupContent();\r\n this._dataController.dataErrorOccurred.fire(arg, $popupContent)\r\n },\r\n _needToCloseEditableCell: function($targetElement) {\r\n var $element = this.component.$element();\r\n var result = this.isEditing();\r\n var isCurrentComponentElement = !$element || !!$targetElement.closest($element).length;\r\n if (isCurrentComponentElement) {\r\n var isDataRow = $targetElement.closest(\".\" + DATA_ROW_CLASS).length;\r\n if (isDataRow) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var $targetCell = $targetElement.closest(\".\" + ROW_CLASS + \"> td\");\r\n var rowIndex = rowsView.getRowIndex($targetCell.parent());\r\n var columnIndex = rowsView.getCellElements(rowIndex).index($targetCell);\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var allowEditing = visibleColumns[columnIndex] && visibleColumns[columnIndex].allowEditing;\r\n result = result && !allowEditing && !this.isEditCell(rowIndex, columnIndex)\r\n }\r\n }\r\n return result\r\n },\r\n _closeEditItem: function($targetElement) {\r\n if (this._needToCloseEditableCell($targetElement)) {\r\n this.closeEditCell()\r\n }\r\n },\r\n _handleDataChanged: function(args) {\r\n var editForm = this._editForm;\r\n if (\"refresh\" === args.changeType && _getEditMode(this) === EDIT_MODE_POPUP && editForm && editForm.option(\"visible\")) {\r\n this._repaintEditPopup()\r\n }\r\n },\r\n _isDefaultButtonVisible: function(button, options) {\r\n var result = true;\r\n var isRowMode = _isRowEditMode(this);\r\n var isBatchMode = _getEditMode(this) === EDIT_MODE_BATCH;\r\n var isEditRow = options.row && options.row.rowIndex === this._getVisibleEditRowIndex() && isRowMode;\r\n switch (button.name) {\r\n case \"edit\":\r\n result = !isEditRow && this.allowUpdating(options) && isRowMode;\r\n break;\r\n case \"save\":\r\n case \"cancel\":\r\n result = isEditRow;\r\n break;\r\n case \"delete\":\r\n result = !isEditRow && this.allowDeleting(options) && (!isBatchMode || !options.row.removed);\r\n break;\r\n case \"undelete\":\r\n result = isBatchMode && this.allowDeleting(options) && options.row.removed\r\n }\r\n return result\r\n },\r\n _isButtonVisible: function(button, options) {\r\n var visible = button.visible;\r\n if (!(0, _type.isDefined)(visible)) {\r\n return this._isDefaultButtonVisible(button, options)\r\n }\r\n return (0, _type.isFunction)(visible) ? visible.call(button, {\r\n component: options.component,\r\n row: options.row,\r\n column: options.column\r\n }) : visible\r\n },\r\n _getButtonConfig: function(button, options) {\r\n var _this2 = this;\r\n var config = (0, _type.isObject)(button) ? button : {};\r\n var buttonName = getButtonName(button);\r\n var editingTexts = getEditingTexts(options);\r\n var methodName = METHOD_NAMES[buttonName];\r\n var editingOptions = this.option(\"editing\");\r\n var actionName = ACTION_OPTION_NAMES[buttonName];\r\n var allowAction = actionName ? editingOptions[actionName] : true;\r\n return (0, _extend.extend)({\r\n name: buttonName,\r\n text: editingTexts[buttonName],\r\n cssClass: EDIT_LINK_CLASS[buttonName],\r\n onClick: function(e) {\r\n var event = e.event;\r\n event.stopPropagation();\r\n event.preventDefault();\r\n setTimeout(function() {\r\n options.row && allowAction && _this2[methodName] && _this2[methodName](options.row.rowIndex)\r\n })\r\n }\r\n }, config)\r\n },\r\n _getEditingButtons: function(options) {\r\n var _this3 = this;\r\n var buttonIndex;\r\n var haveCustomButtons = !!options.column.buttons;\r\n var buttons = (options.column.buttons || []).slice();\r\n if (haveCustomButtons) {\r\n buttonIndex = getButtonIndex(buttons, \"edit\");\r\n if (buttonIndex >= 0) {\r\n if (getButtonIndex(buttons, \"save\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"save\")\r\n }\r\n if (getButtonIndex(buttons, \"cancel\") < 0) {\r\n buttons.splice(getButtonIndex(buttons, \"save\") + 1, 0, \"cancel\")\r\n }\r\n }\r\n buttonIndex = getButtonIndex(buttons, \"delete\");\r\n if (buttonIndex >= 0 && getButtonIndex(buttons, \"undelete\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"undelete\")\r\n }\r\n } else {\r\n buttons = BUTTON_NAMES.slice()\r\n }\r\n return buttons.map(function(button) {\r\n return _this3._getButtonConfig(button, options)\r\n })\r\n },\r\n _renderEditingButtons: function($container, buttons, options) {\r\n var _this4 = this;\r\n buttons.forEach(function(button) {\r\n if (_this4._isButtonVisible(button, options)) {\r\n _this4._createButton($container, button, options)\r\n }\r\n })\r\n },\r\n _getEditCommandCellTemplate: function() {\r\n var _this5 = this;\r\n return function(container, options) {\r\n var $container = (0, _renderer.default)(container);\r\n if (\"data\" === options.rowType) {\r\n var buttons = _this5._getEditingButtons(options);\r\n _this5._renderEditingButtons($container, buttons, options);\r\n options.watch && options.watch(function() {\r\n return buttons.map(function(button) {\r\n return _this5._isButtonVisible(button, options)\r\n })\r\n }, function() {\r\n $container.empty();\r\n _this5._renderEditingButtons($container, buttons, options)\r\n })\r\n } else {\r\n _uiGrid_core2.default.setEmptyText($container)\r\n }\r\n }\r\n },\r\n isRowEditMode: function() {\r\n return _isRowEditMode(this)\r\n },\r\n isFormEditMode: function() {\r\n var editMode = _getEditMode(this);\r\n return FORM_BASED_MODES.indexOf(editMode) !== -1\r\n },\r\n isCellOrBatchEditMode: function() {\r\n var editMode = this.getEditMode();\r\n return CELL_BASED_MODES.indexOf(editMode) !== -1\r\n },\r\n getEditMode: function() {\r\n return _getEditMode(this)\r\n },\r\n getFirstEditableColumnIndex: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var firstFormItem = this._firstFormItem;\r\n var columnIndex;\r\n if (_getEditMode(this) === EDIT_MODE_FORM && firstFormItem) {\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var editRowIndex = this._dataController.getRowIndexByKey(editRowKey);\r\n var $editFormElements = this._rowsView.getCellElements(editRowIndex);\r\n columnIndex = this._rowsView._getEditFormEditorVisibleIndex($editFormElements, firstFormItem.column)\r\n } else {\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n (0, _iterator.each)(visibleColumns, function(index, column) {\r\n if (column.allowEditing) {\r\n columnIndex = index;\r\n return false\r\n }\r\n })\r\n }\r\n return columnIndex\r\n },\r\n getFirstEditableCellInRow: function(rowIndex) {\r\n var rowsView = this.getView(\"rowsView\");\r\n return rowsView && rowsView._getCellElement(rowIndex ? rowIndex : 0, this.getFirstEditableColumnIndex())\r\n },\r\n getFocusedCellInRow: function(rowIndex) {\r\n return this.getFirstEditableCellInRow(rowIndex)\r\n },\r\n getIndexByKey: function(key, items) {\r\n return _uiGrid_core2.default.getIndexByKey(key, items)\r\n },\r\n hasChanges: function(rowIndex) {\r\n var changes = this.getChanges();\r\n var result = false;\r\n for (var i = 0; i < (null === changes || void 0 === changes ? void 0 : changes.length); i++) {\r\n if (changes[i].type && (!(0, _type.isDefined)(rowIndex) || this._dataController.getRowIndexByKey(changes[i].key) === rowIndex)) {\r\n result = true;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._inputFocusTimeoutID);\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), _pointer.default.up, this._pointerUpEditorHandler);\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), _pointer.default.down, this._pointerDownEditorHandler);\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), _click.name, this._saveEditorHandler)\r\n },\r\n optionChanged: function(args) {\r\n if (\"editing\" === args.name) {\r\n var fullName = args.fullName;\r\n var editPopup = this._editPopup;\r\n if (fullName && 0 === fullName.indexOf(EDITING_POPUP_OPTION_NAME)) {\r\n if (editPopup) {\r\n var popupOptionName = fullName.slice(EDITING_POPUP_OPTION_NAME.length + 1);\r\n if (popupOptionName) {\r\n editPopup.option(popupOptionName, args.value)\r\n } else {\r\n editPopup.option(args.value)\r\n }\r\n }\r\n } else {\r\n if (editPopup && editPopup.option(\"visible\") && 0 === fullName.indexOf(\"editing.form\")) {\r\n this._repaintEditPopup()\r\n } else {\r\n if (fullName === EDITING_EDITROWKEY_OPTION_NAME) {\r\n this._handleEditRowKeyChange(args)\r\n } else {\r\n if (fullName === EDITING_EDITCOLUMNNAME_OPTION_NAME) {\r\n this._handleEditColumnNameChange(args)\r\n } else {\r\n if (fullName === EDITING_CHANGES_OPTION_NAME) {\r\n this._handleChangesChange(args)\r\n } else {\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n }\r\n }\r\n }\r\n }\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _handleEditRowKeyChange: function(args) {\r\n var rowIndex = this._dataController.getRowIndexByKey(args.value);\r\n var oldRowIndexCorrection = this._getEditRowIndexCorrection();\r\n var oldRowIndex = this._dataController.getRowIndexByKey(args.previousValue) + oldRowIndexCorrection;\r\n var columnIndex = this._getVisibleEditColumnIndex();\r\n if (!this.isCellOrBatchEditMode()) {\r\n if ((0, _type.isDefined)(args.value)) {\r\n if (args.value !== args.previousValue) {\r\n this._editRowFromOptionChanged(rowIndex, oldRowIndex)\r\n }\r\n } else {\r\n this.cancelEditData()\r\n }\r\n } else {\r\n if ((0, _type.isDefined)(args.value) && args.value !== args.previousValue) {\r\n this._editCellFromOptionChanged(columnIndex, columnIndex, oldRowIndex)\r\n }\r\n }\r\n },\r\n _handleEditColumnNameChange: function(args) {\r\n var oldRowIndex = this._getVisibleEditRowIndex(args.previousValue);\r\n if (this.isCellOrBatchEditMode() && oldRowIndex !== -1 && (0, _type.isDefined)(args.value) && args.value !== args.previousValue) {\r\n var columnIndex = this._columnsController.getVisibleColumnIndex(args.value);\r\n var oldColumnIndex = this._columnsController.getVisibleColumnIndex(args.previousValue);\r\n this._editCellFromOptionChanged(columnIndex, oldColumnIndex, oldRowIndex)\r\n }\r\n },\r\n _handleChangesChange: function(args) {\r\n var dataController = this._dataController;\r\n if (!args.value.length && !args.previousValue.length) {\r\n return\r\n }\r\n dataController.updateItems({\r\n repaintChangesOnly: true\r\n })\r\n },\r\n _editCellFromOptionChanged: function(columnIndex, oldColumnIndex, oldRowIndex) {\r\n var _this6 = this;\r\n var columns = this._columnsController.getVisibleColumns();\r\n if (columnIndex > -1) {\r\n (0, _common.deferRender)(function() {\r\n _this6._repaintEditCell(columns[columnIndex], columns[oldColumnIndex], oldRowIndex)\r\n })\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"addRow\", \"deleteRow\", \"undeleteRow\", \"editRow\", \"editCell\", \"closeEditCell\", \"saveEditData\", \"cancelEditData\", \"hasEditData\"]\r\n },\r\n refresh: function(isPageChanged) {\r\n var editMode = _getEditMode(this);\r\n var needResetIndexes = editMode === EDIT_MODE_BATCH || isPageChanged && \"virtual\" !== this.option(\"scrolling.mode\");\r\n if (!(0, _type.isDefined)(this._pageIndex)) {\r\n return\r\n }\r\n if (!this.isCellOrBatchEditMode()) {\r\n this.resetChanges();\r\n this.init();\r\n if ((0, _type.isDefined)(this.option(EDITING_EDITROWKEY_OPTION_NAME))) {\r\n this._resetEditRowKey()\r\n }\r\n } else {\r\n if (needResetIndexes) {\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n }\r\n },\r\n isEditing: function() {\r\n var isEditRowKeyDefined = (0, _type.isDefined)(this.option(EDITING_EDITROWKEY_OPTION_NAME));\r\n var isEditColumnNameDefined = (0, _type.isDefined)(this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME));\r\n if (this.isCellOrBatchEditMode()) {\r\n return isEditRowKeyDefined && isEditColumnNameDefined\r\n }\r\n return isEditRowKeyDefined\r\n },\r\n isEditRow: function(rowIndex) {\r\n var editMode = _getEditMode(this);\r\n return this._getVisibleEditRowIndex() === rowIndex && ROW_BASED_MODES.indexOf(editMode) !== -1\r\n },\r\n _setEditRowKey: function(value, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n } else {\r\n this.option(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n }\r\n },\r\n _setEditRowKeyByIndex: function(rowIndex, silent) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n if (void 0 === key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n this._setEditRowKey(key, silent)\r\n },\r\n getEditRowIndex: function() {\r\n return this._getVisibleEditRowIndex()\r\n },\r\n getEditFormRowIndex: function() {\r\n var editMode = _getEditMode(this);\r\n return editMode === EDIT_MODE_FORM || editMode === EDIT_MODE_POPUP ? this._getVisibleEditRowIndex() : -1\r\n },\r\n isEditCell: function(visibleRowIndex, columnIndex) {\r\n return this._getVisibleEditRowIndex() === visibleRowIndex && this._getVisibleEditColumnIndex() === columnIndex\r\n },\r\n getPopupContent: function() {\r\n var editMode = _getEditMode(this);\r\n var popupVisible = this._editPopup && this._editPopup.option(\"visible\");\r\n if (editMode === EDIT_MODE_POPUP && popupVisible) {\r\n return this._$popupContent\r\n }\r\n },\r\n getEditForm: function() {\r\n return this._editForm\r\n },\r\n _needInsertItem: function(change, changeType) {\r\n var that = this;\r\n var dataSource = that._dataController.dataSource();\r\n var scrollingMode = that.option(\"scrolling.mode\");\r\n var pageIndex = dataSource.pageIndex();\r\n var beginPageIndex = dataSource.beginPageIndex ? dataSource.beginPageIndex() : pageIndex;\r\n var endPageIndex = dataSource.endPageIndex ? dataSource.endPageIndex() : pageIndex;\r\n if (\"standard\" !== scrollingMode) {\r\n switch (changeType) {\r\n case \"append\":\r\n return change.key.pageIndex === endPageIndex;\r\n case \"prepend\":\r\n return change.key.pageIndex === beginPageIndex;\r\n case \"refresh\":\r\n change.key.rowIndex = 0;\r\n change.key.dataRowIndex = 0;\r\n change.key.pageIndex = 0;\r\n break;\r\n default:\r\n return change.key.pageIndex >= beginPageIndex && change.key.pageIndex <= endPageIndex\r\n }\r\n }\r\n return change.key.pageIndex === pageIndex\r\n },\r\n _generateNewItem: function(key) {\r\n var item = {\r\n key: key\r\n };\r\n if (key && key[INSERT_INDEX]) {\r\n item[INSERT_INDEX] = key[INSERT_INDEX]\r\n }\r\n return item\r\n },\r\n _getLoadedRowIndexByInsertKey: function(items, change, key) {\r\n var dataController = this._dataController;\r\n var loadedRowIndexOffset = dataController.getRowIndexOffset(true);\r\n var loadedRowIndex = key.dataRowIndex - loadedRowIndexOffset;\r\n if (\"append\" === change.changeType) {\r\n loadedRowIndex -= dataController.items(true).length;\r\n if (change.removeCount) {\r\n loadedRowIndex += change.removeCount\r\n }\r\n }\r\n for (var i = 0; i < loadedRowIndex; i++) {\r\n if (items[i] && items[i][INSERT_INDEX]) {\r\n loadedRowIndex++\r\n }\r\n }\r\n return loadedRowIndex\r\n },\r\n processItems: function(items, e) {\r\n var _this7 = this;\r\n var changeType = e.changeType;\r\n this.update(changeType);\r\n var changes = this.getChanges();\r\n changes.forEach(function(change) {\r\n var key = change.key;\r\n if ((0, _type.isDefined)(key) && change.type === DATA_EDIT_DATA_INSERT_TYPE) {\r\n var loadedRowIndex = _this7._getLoadedRowIndexByInsertKey(items, e, key);\r\n var item = _this7._generateNewItem(key);\r\n if (loadedRowIndex >= 0 && _this7._needInsertItem(change, changeType, items, item)) {\r\n items.splice(key.dataRowIndex ? loadedRowIndex : 0, 0, item)\r\n }\r\n }\r\n });\r\n return items\r\n },\r\n processDataItem: function(item, options, generateDataValues) {\r\n var columns = options.visibleColumns;\r\n var key = item.data[INSERT_INDEX] ? item.data.key : item.key;\r\n var changes = this.getChanges();\r\n var editIndex = _uiGrid_core2.default.getIndexByKey(key, changes);\r\n item.isEditing = false;\r\n if (editIndex >= 0) {\r\n var editMode = _getEditMode(this);\r\n var _changes$editIndex = changes[editIndex],\r\n data = _changes$editIndex.data,\r\n type = _changes$editIndex.type;\r\n switch (type) {\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n if (editMode === EDIT_MODE_POPUP) {\r\n item.visible = false\r\n }\r\n item.isNewRow = true;\r\n item.key = key;\r\n item.data = data;\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n item.modified = true;\r\n item.oldData = item.data;\r\n item.data = (0, _array_utils.createObjectWithChanges)(item.data, data);\r\n item.modifiedValues = generateDataValues(data, columns, true);\r\n break;\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n if (editMode === EDIT_MODE_BATCH) {\r\n item.data = (0, _array_utils.createObjectWithChanges)(item.data, data)\r\n }\r\n item.removed = true\r\n }\r\n }\r\n },\r\n _initNewRow: function(options) {\r\n var _this8 = this;\r\n this.executeAction(\"onInitNewRow\", options);\r\n if (options.promise) {\r\n var deferred = new _deferred.Deferred;\r\n (0, _deferred.when)((0, _deferred.fromPromise)(options.promise)).done(deferred.resolve).fail(createFailureHandler(deferred)).fail(function(arg) {\r\n return _this8._fireDataErrorOccurred(arg)\r\n });\r\n return deferred\r\n }\r\n },\r\n _getInsertKey: function(parentKey) {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var rows = dataController.items();\r\n var editMode = _getEditMode(that);\r\n var insertKey = {\r\n parentKey: parentKey,\r\n pageIndex: dataController.pageIndex(),\r\n rowIndex: that._getInsertRowIndex(parentKey)\r\n };\r\n var row = rows[insertKey.rowIndex];\r\n if (row && (!row.isEditing && \"detail\" === row.rowType || \"detailAdaptive\" === row.rowType)) {\r\n insertKey.rowIndex++\r\n }\r\n insertKey.dataRowIndex = dataController.getRowIndexOffset() + rows.filter(function(row, index) {\r\n return index < insertKey.rowIndex && (\"data\" === row.rowType && !row.isNewRow || \"group\" === row.rowType)\r\n }).length;\r\n if (editMode !== EDIT_MODE_BATCH) {\r\n this._setEditRowKey(insertKey, true)\r\n }\r\n insertKey[INSERT_INDEX] = that._getInsertIndex();\r\n return insertKey\r\n },\r\n _getInsertRowIndex: function(parentKey) {\r\n var that = this;\r\n var rowsView = that.getView(\"rowsView\");\r\n var parentRowIndex = that._dataController.getRowIndexByKey(parentKey);\r\n if (parentRowIndex >= 0) {\r\n return parentRowIndex + 1\r\n }\r\n if (rowsView) {\r\n return rowsView.getTopVisibleItemIndex(true)\r\n }\r\n return 0\r\n },\r\n _getInsertIndex: function() {\r\n var maxInsertIndex = 0;\r\n this.getChanges().forEach(function(editItem) {\r\n if (editItem.type === DATA_EDIT_DATA_INSERT_TYPE && editItem.key[INSERT_INDEX] > maxInsertIndex) {\r\n maxInsertIndex = editItem.key[INSERT_INDEX]\r\n }\r\n });\r\n return maxInsertIndex + 1\r\n },\r\n addRow: function(parentKey) {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var store = dataController.store();\r\n var key = store && store.key();\r\n var param = {\r\n data: {}\r\n };\r\n var editMode = _getEditMode(that);\r\n var oldEditRowIndex = that._getVisibleEditRowIndex();\r\n var deferred = new _deferred.Deferred;\r\n if (!store) {\r\n dataController.fireError(\"E1052\", this.component.NAME);\r\n return deferred.reject()\r\n }\r\n if (editMode === EDIT_MODE_CELL && that.hasChanges()) {\r\n that.saveEditData().done(function() {\r\n if (!that.hasChanges()) {\r\n that.addRow(parentKey).done(deferred.resolve).fail(deferred.reject)\r\n } else {\r\n deferred.reject(\"cancel\")\r\n }\r\n });\r\n return deferred.promise()\r\n }\r\n that.refresh();\r\n if (!that._allowRowAdding()) {\r\n return deferred.reject(\"cancel\")\r\n }\r\n if (!key) {\r\n param.data.__KEY__ = String(new _guid.default)\r\n }(0, _deferred.when)(that._initNewRow(param, parentKey)).done(function() {\r\n if (that._allowRowAdding()) {\r\n that._addRowCore(param.data, parentKey, oldEditRowIndex);\r\n deferred.resolve()\r\n } else {\r\n deferred.reject(\"cancel\")\r\n }\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _allowRowAdding: function() {\r\n var that = this;\r\n var editMode = _getEditMode(that);\r\n var insertIndex = that._getInsertIndex();\r\n if (editMode !== EDIT_MODE_BATCH && insertIndex > 1) {\r\n return false\r\n }\r\n return true\r\n },\r\n _addRowCore: function(data, parentKey, initialOldEditRowIndex) {\r\n var that = this;\r\n var oldEditRowIndex = that._getVisibleEditRowIndex();\r\n var insertKey = that._getInsertKey(parentKey);\r\n var editMode = _getEditMode(that);\r\n that._addChange({\r\n key: insertKey,\r\n data: data,\r\n type: DATA_EDIT_DATA_INSERT_TYPE\r\n });\r\n that._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [initialOldEditRowIndex, oldEditRowIndex, insertKey.rowIndex]\r\n });\r\n if (editMode === EDIT_MODE_POPUP) {\r\n that._showEditPopup(insertKey.rowIndex)\r\n } else {\r\n that._focusFirstEditableCellInRow(insertKey.rowIndex)\r\n }\r\n that._afterInsertRow({\r\n key: insertKey,\r\n data: data\r\n })\r\n },\r\n _focusFirstEditableCellInRow: function(rowIndex) {\r\n var that = this;\r\n var $firstCell = that.getFirstEditableCellInRow(rowIndex);\r\n that._editCellInProgress = true;\r\n that._delayedInputFocus($firstCell, function() {\r\n that._editCellInProgress = false;\r\n var $cell = that.getFirstEditableCellInRow(rowIndex);\r\n var eventToTrigger = \"dblClick\" === that.option(\"editing.startEditAction\") ? _double_click.name : _click.name;\r\n $cell && _events_engine.default.trigger($cell, eventToTrigger)\r\n })\r\n },\r\n _isEditingStart: function(options) {\r\n this.executeAction(\"onEditingStart\", options);\r\n return options.cancel\r\n },\r\n _beforeEditCell: function(rowIndex, columnIndex, item) {\r\n var that = this;\r\n if (_getEditMode(that) === EDIT_MODE_CELL && !item.isNewRow && that.hasChanges()) {\r\n var d = new _deferred.Deferred;\r\n that.saveEditData().always(function() {\r\n d.resolve(that.hasChanges())\r\n });\r\n return d\r\n }\r\n },\r\n _beforeUpdateItems: function() {},\r\n _getVisibleEditColumnIndex: function() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n if (!(0, _type.isDefined)(editColumnName)) {\r\n return -1\r\n }\r\n return this._columnsController.getVisibleColumnIndex(editColumnName)\r\n },\r\n _setEditColumnNameByIndex: function(index, silent) {\r\n var _visibleColumns$index;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n this._setEditColumnName(null === (_visibleColumns$index = visibleColumns[index]) || void 0 === _visibleColumns$index ? void 0 : _visibleColumns$index.name, silent)\r\n },\r\n _setEditColumnName: function(name, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n } else {\r\n this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n }\r\n },\r\n _resetEditColumnName: function() {\r\n this._setEditColumnName(null, true)\r\n },\r\n _getEditColumn: function() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n return this._getColumnByName(editColumnName)\r\n },\r\n _getColumnByName: function(name) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var editColumn;\r\n (0, _type.isDefined)(name) && visibleColumns.some(function(column) {\r\n if (column.name === name) {\r\n editColumn = column;\r\n return true\r\n }\r\n });\r\n return editColumn\r\n },\r\n _getVisibleEditRowIndex: function(columnName) {\r\n var dataController = this._dataController;\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var rowIndex = dataController.getRowIndexByKey(editRowKey);\r\n if (rowIndex === -1) {\r\n return rowIndex\r\n }\r\n return rowIndex + this._getEditRowIndexCorrection(columnName)\r\n },\r\n _getEditRowIndexCorrection: function(columnName) {\r\n var editColumn = columnName ? this._getColumnByName(columnName) : this._getEditColumn();\r\n var isColumnHidden = \"adaptiveHidden\" === (null === editColumn || void 0 === editColumn ? void 0 : editColumn.visibleWidth);\r\n return isColumnHidden ? 1 : 0\r\n },\r\n _resetEditRowKey: function() {\r\n this._setEditRowKey(null, true)\r\n },\r\n _resetEditIndices: function() {\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n },\r\n editRow: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var items = dataController.items();\r\n var item = items[rowIndex];\r\n var params = {\r\n data: item && item.data,\r\n cancel: false\r\n };\r\n var oldRowIndex = this._getVisibleEditRowIndex();\r\n if (!item) {\r\n return\r\n }\r\n if (rowIndex === oldRowIndex) {\r\n return true\r\n }\r\n if (void 0 === item.key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n if (!item.isNewRow) {\r\n params.key = item.key\r\n }\r\n if (this._isEditingStart(params)) {\r\n return\r\n }\r\n this.resetChanges();\r\n this.init();\r\n this._resetEditColumnName();\r\n this._pageIndex = dataController.pageIndex();\r\n this._addInternalData({\r\n key: item.key,\r\n oldData: item.data\r\n });\r\n this._setEditRowKey(item.key)\r\n },\r\n _editRowFromOptionChanged: function(rowIndex, oldRowIndex) {\r\n var rowIndices = [oldRowIndex, rowIndex];\r\n var editMode = _getEditMode(this);\r\n this._beforeUpdateItems(rowIndices, rowIndex, oldRowIndex);\r\n if (editMode === EDIT_MODE_POPUP) {\r\n this._showEditPopup(rowIndex)\r\n } else {\r\n this._needFocusEditor = true;\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndices\r\n })\r\n }\r\n },\r\n _focusEditorIfNeed: function() {\r\n var _this9 = this;\r\n var editMode = _getEditMode(this);\r\n if (this._needFocusEditor) {\r\n if (MODES_WITH_DELAYED_FOCUS.indexOf(editMode) !== -1) {\r\n var $editingCell = this.getFocusedCellInRow(this._getVisibleEditRowIndex());\r\n this._delayedInputFocus($editingCell, function() {\r\n $editingCell && _this9.component.focus($editingCell)\r\n })\r\n } else {\r\n if (CELL_BASED_MODES.indexOf(editMode) !== -1) {\r\n var _this$_rowsView;\r\n var editColumnIndex = this._getVisibleEditColumnIndex();\r\n var $cell = null === (_this$_rowsView = this._rowsView) || void 0 === _this$_rowsView ? void 0 : _this$_rowsView._getCellElement(this._getVisibleEditRowIndex(), editColumnIndex);\r\n if ($cell && !$cell.find(\":focus\").length) {\r\n this._focusEditingCell(function() {\r\n _this9._editCellInProgress = false\r\n }, $cell, true)\r\n } else {\r\n this._editCellInProgress = false\r\n }\r\n }\r\n }\r\n this._needFocusEditor = false\r\n }\r\n },\r\n _showEditPopup: function(rowIndex, repaintForm) {\r\n var that = this;\r\n var isMobileDevice = \"desktop\" !== _devices.default.current().deviceType;\r\n var popupOptions = (0, _extend.extend)({\r\n showTitle: false,\r\n fullScreen: isMobileDevice,\r\n toolbarItems: [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: that._getSaveButtonConfig()\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: that._getCancelButtonConfig()\r\n }],\r\n contentTemplate: that._getPopupEditFormTemplate(rowIndex)\r\n }, that.option(EDITING_POPUP_OPTION_NAME));\r\n if (!that._editPopup) {\r\n var $popupContainer = (0, _renderer.default)(\"
\").appendTo(that.component.$element()).addClass(that.addWidgetPrefix(EDIT_POPUP_CLASS));\r\n that._editPopup = that._createComponent($popupContainer, _popup.default, {});\r\n that._editPopup.on(\"hiding\", that._getEditPopupHiddenHandler());\r\n that._editPopup.on(\"shown\", function(e) {\r\n _events_engine.default.trigger(e.component.$content().find(FOCUSABLE_ELEMENT_SELECTOR).not(\".\" + SCROLLABLE_CONTAINER_CLASS).first(), \"focus\");\r\n if (repaintForm) {\r\n that._editForm && that._editForm.repaint()\r\n }\r\n })\r\n }\r\n that._editPopup.option(popupOptions);\r\n that._editPopup.show()\r\n },\r\n _repaintEditPopup: function() {\r\n var rowIndex = this._getVisibleEditRowIndex();\r\n if (this._editPopup && this._editPopup.option(\"visible\") && rowIndex >= 0) {\r\n var defaultAnimation = this._editPopup.option(\"animation\");\r\n this._editPopup.option(\"animation\", null);\r\n this._showEditPopup(rowIndex, true);\r\n this._editPopup.option(\"animation\", defaultAnimation)\r\n }\r\n },\r\n _getEditPopupHiddenHandler: function() {\r\n var that = this;\r\n return function(e) {\r\n if (that.isEditing()) {\r\n that.cancelEditData()\r\n }\r\n }\r\n },\r\n _getPopupEditFormTemplate: function(rowIndex) {\r\n var that = this;\r\n var row = that.component.getVisibleRows()[rowIndex];\r\n var templateOptions = {\r\n row: row,\r\n rowType: row.rowType,\r\n key: row.key\r\n };\r\n return function(container) {\r\n var formTemplate = that.getEditFormTemplate();\r\n var scrollable = that._createComponent((0, _renderer.default)(\"
\").appendTo(container), _ui.default);\r\n that._$popupContent = scrollable.$content();\r\n formTemplate(that._$popupContent, templateOptions, true)\r\n }\r\n },\r\n _getSaveButtonConfig: function() {\r\n return {\r\n text: this.option(\"editing.texts.saveRowChanges\"),\r\n onClick: this.saveEditData.bind(this)\r\n }\r\n },\r\n _getCancelButtonConfig: function() {\r\n return {\r\n text: this.option(\"editing.texts.cancelRowChanges\"),\r\n onClick: this.cancelEditData.bind(this)\r\n }\r\n },\r\n _removeInternalData: function(key) {\r\n var internalData = this._getInternalData(key);\r\n var index = this._internalState.indexOf(internalData);\r\n if (index > -1) {\r\n this._internalState.splice(index, 1)\r\n }\r\n },\r\n _removeChange: function(index) {\r\n if (index >= 0) {\r\n var changes = _toConsumableArray(this.getChanges());\r\n var key = changes[index].key;\r\n this._removeInternalData(key);\r\n changes.splice(index, 1);\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n if ((0, _common.equalByValue)(this.option(EDITING_EDITROWKEY_OPTION_NAME), key)) {\r\n this._resetEditIndices()\r\n }\r\n }\r\n },\r\n executeOperation: function(deferred, func) {\r\n var _this10 = this;\r\n this._lastOperation && this._lastOperation.reject();\r\n this._lastOperation = deferred;\r\n this.waitForDeferredOperations().done(function() {\r\n if (\"rejected\" === deferred.state()) {\r\n return\r\n }\r\n func();\r\n _this10._lastOperation = null\r\n }).fail(function() {\r\n deferred.reject();\r\n _this10._lastOperation = null\r\n })\r\n },\r\n waitForDeferredOperations: function() {\r\n return _deferred.when.apply(void 0, _toConsumableArray(this._deferreds))\r\n },\r\n editCell: function(rowIndex, columnIndex) {\r\n return this._editCell({\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n })\r\n },\r\n _editCell: function(options) {\r\n var _this11 = this;\r\n var d = new _deferred.Deferred;\r\n var coreResult;\r\n this.executeOperation(d, function() {\r\n coreResult = _this11._editCellCore(options);\r\n (0, _deferred.when)(coreResult).done(d.resolve).fail(d.reject)\r\n });\r\n return void 0 !== coreResult ? coreResult : d.promise()\r\n },\r\n _getNormalizedEditCellOptions: function(_ref) {\r\n var oldColumnIndex = _ref.oldColumnIndex,\r\n oldRowIndex = _ref.oldRowIndex,\r\n columnIndex = _ref.columnIndex,\r\n rowIndex = _ref.rowIndex;\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var items = this._dataController.items();\r\n var item = items[rowIndex];\r\n var oldColumn;\r\n if ((0, _type.isDefined)(oldColumnIndex)) {\r\n oldColumn = visibleColumns[oldColumnIndex]\r\n } else {\r\n oldColumn = this._getEditColumn()\r\n }\r\n if (!(0, _type.isDefined)(oldRowIndex)) {\r\n oldRowIndex = this._getVisibleEditRowIndex()\r\n }\r\n if ((0, _type.isString)(columnIndex)) {\r\n columnIndex = columnsController.columnOption(columnIndex, \"index\");\r\n columnIndex = columnsController.getVisibleIndex(columnIndex)\r\n }\r\n var column = visibleColumns[columnIndex];\r\n return {\r\n oldColumn: oldColumn,\r\n columnIndex: columnIndex,\r\n oldRowIndex: oldRowIndex,\r\n rowIndex: rowIndex,\r\n column: column,\r\n item: item\r\n }\r\n },\r\n _editCellCore: function(options) {\r\n var _this12 = this;\r\n var dataController = this._dataController;\r\n var isEditByOptionChanged = (0, _type.isDefined)(options.oldColumnIndex) || (0, _type.isDefined)(options.oldRowIndex);\r\n var _this$_getNormalizedE = this._getNormalizedEditCellOptions(options),\r\n columnIndex = _this$_getNormalizedE.columnIndex,\r\n rowIndex = _this$_getNormalizedE.rowIndex,\r\n column = _this$_getNormalizedE.column,\r\n item = _this$_getNormalizedE.item;\r\n var params = {\r\n data: null === item || void 0 === item ? void 0 : item.data,\r\n cancel: false,\r\n column: column\r\n };\r\n if (void 0 === item.key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n if (column && item && (\"data\" === item.rowType || \"detailAdaptive\" === item.rowType) && !item.removed && !_isRowEditMode(this)) {\r\n if (!isEditByOptionChanged && this.isEditCell(rowIndex, columnIndex)) {\r\n return true\r\n }\r\n var editRowIndex = rowIndex + dataController.getRowIndexOffset();\r\n return (0, _deferred.when)(this._beforeEditCell(rowIndex, columnIndex, item)).done(function(cancel) {\r\n if (cancel) {\r\n return\r\n }\r\n if (!_this12._prepareEditCell(params, item, columnIndex, editRowIndex)) {\r\n _this12._processCanceledEditingCell()\r\n }\r\n })\r\n }\r\n return false\r\n },\r\n _processCanceledEditingCell: function() {},\r\n _prepareEditCell: function(params, item, editColumnIndex, editRowIndex) {\r\n if (!item.isNewRow) {\r\n params.key = item.key\r\n }\r\n if (this._isEditingStart(params)) {\r\n return false\r\n }\r\n this._pageIndex = this._dataController.pageIndex();\r\n this._setEditRowKey(item.key);\r\n this._setEditColumnNameByIndex(editColumnIndex);\r\n if (!params.column.showEditorAlways) {\r\n this._addInternalData({\r\n key: item.key,\r\n oldData: item.data\r\n })\r\n }\r\n return true\r\n },\r\n _repaintEditCell: function(column, oldColumn, oldEditRowIndex) {\r\n this._needFocusEditor = true;\r\n if (!column || !column.showEditorAlways || oldColumn && !oldColumn.showEditorAlways) {\r\n this._editCellInProgress = true;\r\n this.getController(\"editorFactory\").loseFocus();\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, this._getVisibleEditRowIndex()]\r\n })\r\n } else {\r\n if (column !== oldColumn) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: []\r\n })\r\n }\r\n }\r\n },\r\n _delayedInputFocus: function($cell, beforeFocusCallback, callBeforeFocusCallbackAlways) {\r\n var that = this;\r\n\r\n function inputFocus() {\r\n if (beforeFocusCallback) {\r\n beforeFocusCallback()\r\n }\r\n if ($cell) {\r\n var $focusableElement = $cell.find(FOCUSABLE_ELEMENT_SELECTOR).first();\r\n _uiGrid_core2.default.focusAndSelectElement(that, $focusableElement)\r\n }\r\n that._beforeFocusCallback = null\r\n }\r\n if (_devices.default.real().ios || _devices.default.real().android) {\r\n inputFocus()\r\n } else {\r\n if (that._beforeFocusCallback) {\r\n that._beforeFocusCallback()\r\n }\r\n clearTimeout(that._inputFocusTimeoutID);\r\n if (callBeforeFocusCallbackAlways) {\r\n that._beforeFocusCallback = beforeFocusCallback\r\n }\r\n that._inputFocusTimeoutID = setTimeout(inputFocus)\r\n }\r\n },\r\n _focusEditingCell: function(beforeFocusCallback, $editCell, callBeforeFocusCallbackAlways) {\r\n var that = this;\r\n var rowsView = that.getView(\"rowsView\");\r\n var editColumnIndex = this._getVisibleEditColumnIndex();\r\n $editCell = $editCell || rowsView && rowsView._getCellElement(that._getVisibleEditRowIndex(), editColumnIndex);\r\n that._delayedInputFocus($editCell, beforeFocusCallback, callBeforeFocusCallbackAlways)\r\n },\r\n deleteRow: function(rowIndex) {\r\n var _this13 = this;\r\n if (\"cell\" === this.option(\"editing.mode\") && this.isEditing()) {\r\n var isNewRow = this._dataController.items()[rowIndex].isNewRow;\r\n var rowKey = this._dataController.getKeyByRowIndex(rowIndex);\r\n this.closeEditCell(null, isNewRow).always(function() {\r\n rowIndex = _this13._dataController.getRowIndexByKey(rowKey);\r\n _this13._checkAndDeleteRow(rowIndex)\r\n })\r\n } else {\r\n this._checkAndDeleteRow(rowIndex)\r\n }\r\n },\r\n _checkAndDeleteRow: function(rowIndex) {\r\n var that = this;\r\n var editingOptions = that.option(\"editing\");\r\n var editingTexts = editingOptions && editingOptions.texts;\r\n var isBatchMode = editingOptions && editingOptions.mode === EDIT_MODE_BATCH;\r\n var confirmDelete = editingOptions && editingOptions.confirmDelete;\r\n var confirmDeleteMessage = editingTexts && editingTexts.confirmDeleteMessage;\r\n var item = that._dataController.items()[rowIndex];\r\n var allowDeleting = isBatchMode || !that.isEditing() || item.isNewRow;\r\n if (item && allowDeleting) {\r\n if (isBatchMode || !confirmDelete || !confirmDeleteMessage) {\r\n that._deleteRowCore(rowIndex)\r\n } else {\r\n var confirmDeleteTitle = editingTexts && editingTexts.confirmDeleteTitle;\r\n var showDialogTitle = (0, _type.isDefined)(confirmDeleteTitle) && confirmDeleteTitle.length > 0;\r\n (0, _dialog.confirm)(confirmDeleteMessage, confirmDeleteTitle, showDialogTitle).done(function(confirmResult) {\r\n if (confirmResult) {\r\n that._deleteRowCore(rowIndex)\r\n }\r\n })\r\n }\r\n }\r\n },\r\n _deleteRowCore: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var key = item && item.key;\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n var isBatchMode = this.option(\"editing.mode\") === EDIT_MODE_BATCH;\r\n this.refresh();\r\n var changes = this.getChanges();\r\n var editIndex = _uiGrid_core2.default.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n if (changes[editIndex].type === DATA_EDIT_DATA_INSERT_TYPE) {\r\n this._removeChange(editIndex)\r\n } else {\r\n this._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n } else {\r\n this._addChange({\r\n key: key,\r\n oldData: item.data,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n if (isBatchMode) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, rowIndex]\r\n });\r\n return (new _deferred.Deferred).resolve()\r\n }\r\n return this.saveEditData()\r\n },\r\n undeleteRow: function(rowIndex) {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var oldEditRowIndex = that._getVisibleEditRowIndex();\r\n var key = item && item.key;\r\n var changes = this.getChanges();\r\n if (item) {\r\n var editIndex = _uiGrid_core2.default.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n var data = changes[editIndex].data;\r\n if ((0, _type.isEmptyObject)(data)) {\r\n that._removeChange(editIndex)\r\n } else {\r\n that._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n }\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, rowIndex]\r\n })\r\n }\r\n }\r\n },\r\n _fireOnSaving: function() {\r\n var _this14 = this;\r\n var onSavingParams = {\r\n cancel: false,\r\n promise: null,\r\n changes: _toConsumableArray(this.getChanges())\r\n };\r\n this.executeAction(\"onSaving\", onSavingParams);\r\n var d = new _deferred.Deferred;\r\n (0, _deferred.when)((0, _deferred.fromPromise)(onSavingParams.promise)).done(function() {\r\n d.resolve(onSavingParams)\r\n }).fail(function(arg) {\r\n createFailureHandler(d);\r\n _this14._fireDataErrorOccurred(arg);\r\n d.resolve({\r\n cancel: true\r\n })\r\n });\r\n return d\r\n },\r\n _executeEditingAction: function(actionName, params, func) {\r\n if (this.component._disposed) {\r\n return null\r\n }\r\n var deferred = new _deferred.Deferred;\r\n this.executeAction(actionName, params);\r\n (0, _deferred.when)((0, _deferred.fromPromise)(params.cancel)).done(function(cancel) {\r\n if (cancel) {\r\n setTimeout(function() {\r\n deferred.resolve(\"cancel\")\r\n })\r\n } else {\r\n func(params).done(deferred.resolve).fail(createFailureHandler(deferred))\r\n }\r\n }).fail(createFailureHandler(deferred));\r\n return deferred\r\n },\r\n _processChanges: function(deferreds, results, dataChanges, changes) {\r\n var _this15 = this;\r\n var store = this._dataController.store();\r\n (0, _iterator.each)(changes, function(index, change) {\r\n var oldData = _this15._getOldData(change.key);\r\n var data = change.data,\r\n type = change.type;\r\n var changeCopy = _objectSpread({}, change);\r\n var deferred;\r\n var params;\r\n if (_this15._beforeSaveEditData(change, index)) {\r\n return\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n params = {\r\n data: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = _this15._executeEditingAction(\"onRowRemoving\", params, function() {\r\n return store.remove(change.key).done(function(key) {\r\n dataChanges.push({\r\n type: \"remove\",\r\n key: key\r\n })\r\n })\r\n });\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n params = {\r\n data: data,\r\n cancel: false\r\n };\r\n deferred = _this15._executeEditingAction(\"onRowInserting\", params, function() {\r\n return store.insert(params.data).done(function(data, key) {\r\n if ((0, _type.isDefined)(key)) {\r\n changeCopy.key = key\r\n }\r\n if (data && (0, _type.isObject)(data) && data !== params.data) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"insert\",\r\n data: data,\r\n index: 0\r\n })\r\n })\r\n });\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n params = {\r\n newData: data,\r\n oldData: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = _this15._executeEditingAction(\"onRowUpdating\", params, function() {\r\n return store.update(change.key, params.newData).done(function(data, key) {\r\n if (data && (0, _type.isObject)(data) && data !== params.newData) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"update\",\r\n key: key,\r\n data: data\r\n })\r\n })\r\n })\r\n }\r\n changes[index] = changeCopy;\r\n if (deferred) {\r\n var doneDeferred = new _deferred.Deferred;\r\n deferred.always(function(data) {\r\n results.push({\r\n key: change.key,\r\n result: data\r\n })\r\n }).always(doneDeferred.resolve);\r\n deferreds.push(doneDeferred.promise())\r\n }\r\n })\r\n },\r\n _processSaveEditDataResult: function(results) {\r\n var that = this;\r\n var hasSavedData = false;\r\n var editMode = _getEditMode(that);\r\n var changes = _toConsumableArray(this.getChanges());\r\n var changesLength = changes.length;\r\n for (var i = 0; i < results.length; i++) {\r\n var arg = results[i].result;\r\n var cancel = \"cancel\" === arg;\r\n var editIndex = _uiGrid_core2.default.getIndexByKey(results[i].key, changes);\r\n var change = changes[editIndex];\r\n var isError = arg && arg instanceof Error;\r\n if (isError) {\r\n if (change) {\r\n this._addInternalData({\r\n key: change.key,\r\n error: arg\r\n })\r\n }\r\n that._fireDataErrorOccurred(arg);\r\n if (editMode !== EDIT_MODE_BATCH) {\r\n if ((null === change || void 0 === change ? void 0 : change.type) === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n }\r\n break\r\n }\r\n } else {\r\n if (!cancel || !change || editMode !== EDIT_MODE_BATCH && change.type === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n hasSavedData = !cancel\r\n }\r\n }\r\n }\r\n if (changes.length < changesLength) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes)\r\n }\r\n return hasSavedData\r\n },\r\n _fireSaveEditDataEvents: function(changes) {\r\n var that = this;\r\n (0, _iterator.each)(changes, function(_, _ref2) {\r\n var data = _ref2.data,\r\n key = _ref2.key,\r\n type = _ref2.type;\r\n var internalData = that._addInternalData({\r\n key: key\r\n });\r\n var params = {\r\n key: key,\r\n data: data\r\n };\r\n if (internalData.error) {\r\n params.error = internalData.error\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n that.executeAction(\"onRowRemoved\", (0, _extend.extend)({}, params, {\r\n data: internalData.oldData\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n that.executeAction(\"onRowInserted\", params);\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n that.executeAction(\"onRowUpdated\", params)\r\n }\r\n });\r\n this.executeAction(\"onSaved\", {\r\n changes: changes\r\n })\r\n },\r\n saveEditData: function() {\r\n var _this16 = this;\r\n var deferred = new _deferred.Deferred;\r\n this.waitForDeferredOperations().done(function() {\r\n if (_this16.isSaving()) {\r\n _this16._resolveAfterSave(deferred);\r\n return\r\n }(0, _deferred.when)(_this16._beforeSaveEditData()).done(function(cancel) {\r\n if (cancel) {\r\n _this16._resolveAfterSave(deferred, {\r\n cancel: cancel\r\n });\r\n return\r\n }\r\n _this16._saving = true;\r\n _this16._saveEditDataInner().always(function() {\r\n _this16._saving = false\r\n }).done(deferred.resolve).fail(deferred.reject)\r\n }).fail(deferred.reject)\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _resolveAfterSave: function(deferred) {\r\n var _ref3 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\r\n cancel = _ref3.cancel,\r\n error = _ref3.error;\r\n (0, _deferred.when)(this._afterSaveEditData(cancel)).done(function() {\r\n deferred.resolve(error)\r\n }).fail(deferred.reject)\r\n },\r\n _saveEditDataInner: function() {\r\n var _this17 = this;\r\n var results = [];\r\n var deferreds = [];\r\n var dataChanges = [];\r\n var dataController = this._dataController;\r\n var dataSource = dataController.dataSource();\r\n var result = new _deferred.Deferred;\r\n (0, _deferred.when)(this._fireOnSaving()).done(function(_ref4) {\r\n var cancel = _ref4.cancel,\r\n changes = _ref4.changes;\r\n if (cancel) {\r\n return result.resolve().promise()\r\n }\r\n _this17._processChanges(deferreds, results, dataChanges, changes);\r\n if (deferreds.length) {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.beginLoading();\r\n _deferred.when.apply(void 0, deferreds).done(function() {\r\n if (_this17._processSaveEditDataResult(results)) {\r\n _this17._endSaving(dataChanges, changes, result)\r\n } else {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve()\r\n }\r\n }).fail(function(error) {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve(error)\r\n });\r\n return result.always(function() {\r\n _this17._focusEditingCell()\r\n }).promise()\r\n }\r\n _this17._cancelSaving(result)\r\n }).fail(result.reject);\r\n return result.promise()\r\n },\r\n _resetModifiedClassCells: function(changes) {\r\n var _this18 = this;\r\n var editMode = _getEditMode(this);\r\n if (editMode === EDIT_MODE_BATCH) {\r\n var columnsCount = this._columnsController.getVisibleColumns().length;\r\n changes.forEach(function(_ref5) {\r\n var key = _ref5.key;\r\n var rowIndex = _this18._dataController.getRowIndexByKey(key);\r\n if (rowIndex !== -1) {\r\n for (var columnIndex = 0; columnIndex < columnsCount; columnIndex++) {\r\n _this18._rowsView._getCellElement(rowIndex, columnIndex).removeClass(CELL_MODIFIED)\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _endSaving: function(dataChanges, changes, deferred) {\r\n var _changes$;\r\n var editMode = _getEditMode(this);\r\n var dataSource = this._dataController.dataSource();\r\n if (editMode !== EDIT_MODE_CELL) {\r\n this._resetModifiedClassCells(changes);\r\n this._resetEditIndices()\r\n } else {\r\n if (\"update\" !== (null === (_changes$ = changes[0]) || void 0 === _changes$ ? void 0 : _changes$.type)) {\r\n this._resetEditIndices()\r\n }\r\n }\r\n if (editMode === EDIT_MODE_POPUP && this._editPopup) {\r\n this._editPopup.hide()\r\n }\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n this._refreshDataAfterSave(dataChanges, changes, deferred)\r\n },\r\n _cancelSaving: function(result) {\r\n var editMode = _getEditMode(this);\r\n var dataController = this._dataController;\r\n if (_isRowEditMode(this)) {\r\n if (!this.hasChanges()) {\r\n this._cancelEditDataCore()\r\n }\r\n } else {\r\n if (this.isCellOrBatchEditMode()) {\r\n if (editMode !== EDIT_MODE_CELL) {\r\n this._resetEditIndices()\r\n }\r\n dataController.updateItems()\r\n } else {\r\n this._focusEditingCell()\r\n }\r\n }\r\n this.executeAction(\"onSaved\", {\r\n changes: []\r\n });\r\n this._resolveAfterSave(result)\r\n },\r\n _refreshDataAfterSave: function(dataChanges, changes, deferred) {\r\n var _this19 = this;\r\n var dataController = this._dataController;\r\n var refreshMode = this.option(\"editing.refreshMode\");\r\n var isFullRefresh = \"reshape\" !== refreshMode && \"repaint\" !== refreshMode;\r\n if (!isFullRefresh) {\r\n dataController.push(dataChanges)\r\n }(0, _deferred.when)(dataController.refresh({\r\n selection: isFullRefresh,\r\n reload: isFullRefresh,\r\n load: \"reshape\" === refreshMode,\r\n changesOnly: this.option(\"repaintChangesOnly\")\r\n })).always(function() {\r\n _this19._fireSaveEditDataEvents(changes)\r\n }).done(function() {\r\n _this19._resolveAfterSave(deferred)\r\n }).fail(function(error) {\r\n _this19._resolveAfterSave(deferred, {\r\n error: error\r\n })\r\n })\r\n },\r\n isSaving: function() {\r\n return this._saving\r\n },\r\n _updateEditColumn: function() {\r\n var that = this;\r\n var isEditColumnVisible = that._isEditColumnVisible();\r\n var useIcons = that.option(\"editing.useIcons\");\r\n var cssClass = COMMAND_EDIT_CLASS + (useIcons ? \" \" + COMMAND_EDIT_WITH_ICONS_CLASS : \"\");\r\n that._columnsController.addCommandColumn({\r\n type: \"buttons\",\r\n command: \"edit\",\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass,\r\n width: \"auto\",\r\n alignment: \"center\",\r\n cellTemplate: that._getEditCommandCellTemplate(),\r\n fixedPosition: \"right\"\r\n });\r\n that._columnsController.columnOption(\"command:edit\", {\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass\r\n })\r\n },\r\n _isEditColumnVisible: function() {\r\n var that = this;\r\n var editingOptions = that.option(\"editing\");\r\n if (editingOptions) {\r\n var editMode = _getEditMode(that);\r\n var isVisibleWithCurrentEditMode = false;\r\n switch (editMode) {\r\n case EDIT_MODE_ROW:\r\n isVisibleWithCurrentEditMode = editingOptions.allowUpdating || editingOptions.allowAdding;\r\n break;\r\n case EDIT_MODE_FORM:\r\n case EDIT_MODE_POPUP:\r\n isVisibleWithCurrentEditMode = editingOptions.allowUpdating\r\n }\r\n return editingOptions.allowDeleting || isVisibleWithCurrentEditMode\r\n }\r\n },\r\n _updateEditButtons: function() {\r\n var that = this;\r\n var headerPanel = that.getView(\"headerPanel\");\r\n var hasChanges = that.hasChanges();\r\n if (headerPanel) {\r\n headerPanel.setToolbarItemDisabled(\"saveButton\", !hasChanges);\r\n headerPanel.setToolbarItemDisabled(\"revertButton\", !hasChanges)\r\n }\r\n },\r\n _applyModified: function($element) {\r\n $element && $element.addClass(CELL_MODIFIED)\r\n },\r\n _beforeCloseEditCellInBatchMode: function() {},\r\n cancelEditData: function() {\r\n var changes = this.getChanges();\r\n var params = {\r\n cancel: false,\r\n changes: changes\r\n };\r\n this.executeAction(\"onEditCanceling\", params);\r\n if (!params.cancel) {\r\n this._cancelEditDataCore();\r\n this.executeAction(\"onEditCanceled\", {\r\n changes: changes\r\n })\r\n }\r\n },\r\n _cancelEditDataCore: function() {\r\n var editMode = _getEditMode(this);\r\n var rowIndex = this._getVisibleEditRowIndex();\r\n var dataController = this._dataController;\r\n this._beforeCancelEditData();\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey();\r\n if (ROW_BASED_MODES.indexOf(editMode) !== -1 && rowIndex >= 0) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [rowIndex, rowIndex + 1]\r\n })\r\n } else {\r\n dataController.updateItems({\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\")\r\n })\r\n }\r\n if (editMode === EDIT_MODE_POPUP) {\r\n this._hideEditPopup()\r\n }\r\n },\r\n _hideEditPopup: function() {\r\n this._editPopup && this._editPopup.option(\"visible\", false)\r\n },\r\n hasEditData: function() {\r\n return this.hasChanges()\r\n },\r\n closeEditCell: function(isError, withoutSaveEditData) {\r\n var _this20 = this;\r\n var that = this;\r\n var result = (0, _deferred.when)();\r\n var oldEditRowIndex = that._getVisibleEditRowIndex();\r\n if (!_isRowEditMode(that)) {\r\n var deferred = new _deferred.Deferred;\r\n result = new _deferred.Deferred;\r\n this.executeOperation(deferred, function() {\r\n _this20._closeEditCellCore(isError, oldEditRowIndex, withoutSaveEditData).always(result.resolve)\r\n })\r\n }\r\n return result.promise()\r\n },\r\n _closeEditCellCore: function(isError, oldEditRowIndex, withoutSaveEditData) {\r\n var _this21 = this;\r\n var editMode = _getEditMode(this);\r\n var dataController = this._dataController;\r\n var deferred = new _deferred.Deferred;\r\n var promise = deferred.promise();\r\n if (editMode === EDIT_MODE_CELL && this.hasChanges()) {\r\n if (!withoutSaveEditData) {\r\n this.saveEditData().done(function(error) {\r\n if (!_this21.hasChanges()) {\r\n _this21.closeEditCell(!!error).always(deferred.resolve);\r\n return\r\n }\r\n deferred.resolve()\r\n });\r\n return promise\r\n }\r\n } else {\r\n if (oldEditRowIndex >= 0) {\r\n var rowIndices = [oldEditRowIndex];\r\n this._resetEditRowKey();\r\n this._resetEditColumnName();\r\n this._beforeCloseEditCellInBatchMode(rowIndices);\r\n if (!isError) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndices\r\n })\r\n }\r\n }\r\n }\r\n deferred.resolve();\r\n return promise\r\n },\r\n update: function(changeType) {\r\n var that = this;\r\n var dataController = that._dataController;\r\n if (dataController && that._pageIndex !== dataController.pageIndex()) {\r\n if (\"refresh\" === changeType) {\r\n that.refresh(true)\r\n }\r\n that._pageIndex = dataController.pageIndex()\r\n }\r\n that._updateEditButtons()\r\n },\r\n _getRowIndicesForCascadeUpdating: function(row, skipCurrentRow) {\r\n return skipCurrentRow ? [] : [row.rowIndex]\r\n },\r\n addDeferred: function(deferred) {\r\n var _this22 = this;\r\n if (this._deferreds.indexOf(deferred) < 0) {\r\n this._deferreds.push(deferred);\r\n deferred.always(function() {\r\n var index = _this22._deferreds.indexOf(deferred);\r\n if (index >= 0) {\r\n _this22._deferreds.splice(index, 1)\r\n }\r\n })\r\n }\r\n },\r\n _prepareChange: function(options, value, text) {\r\n var _options$row;\r\n var that = this;\r\n var newData = {};\r\n var oldData = null === (_options$row = options.row) || void 0 === _options$row ? void 0 : _options$row.data;\r\n var rowKey = options.key;\r\n var $cellElement = (0, _renderer.default)(options.cellElement);\r\n var editMode = _getEditMode(that);\r\n var deferred = new _deferred.Deferred;\r\n if (void 0 !== rowKey) {\r\n if (editMode === EDIT_MODE_BATCH) {\r\n that._applyModified($cellElement, options)\r\n }\r\n options.value = value;\r\n var setCellValueResult = (0, _deferred.fromPromise)(options.column.setCellValue(newData, value, (0, _extend.extend)(true, {}, oldData), text));\r\n setCellValueResult.done(function() {\r\n deferred.resolve({\r\n data: newData,\r\n key: rowKey,\r\n oldData: oldData,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n }).fail(createFailureHandler(deferred)).fail(function(arg) {\r\n return that._fireDataErrorOccurred(arg)\r\n });\r\n if ((0, _type.isDefined)(text) && options.column.displayValueMap) {\r\n options.column.displayValueMap[value] = text\r\n }\r\n that._updateRowValues(options);\r\n that.addDeferred(deferred)\r\n }\r\n return deferred\r\n },\r\n _updateRowValues: function(options) {\r\n if (options.values) {\r\n var dataController = this._dataController;\r\n var rowIndex = dataController.getRowIndexByKey(options.key);\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n if (row) {\r\n options.values = row.values\r\n }\r\n options.values[options.columnIndex] = options.value\r\n }\r\n },\r\n updateFieldValue: function(options, value, text, forceUpdateRow) {\r\n var _this23 = this;\r\n var rowKey = options.key;\r\n var deferred = new _deferred.Deferred;\r\n if (void 0 === rowKey) {\r\n this._dataController.fireError(\"E1043\")\r\n }\r\n if (options.column.setCellValue) {\r\n this._prepareChange(options, value, text).done(function(params) {\r\n (0, _deferred.when)(_this23._applyChange(options, params, forceUpdateRow)).always(function() {\r\n deferred.resolve()\r\n })\r\n })\r\n } else {\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n },\r\n _focusPreviousEditingCellIfNeed: function(options) {\r\n var that = this;\r\n if (that.hasEditData() && !that.isEditCell(options.rowIndex, options.columnIndex)) {\r\n that._focusEditingCell();\r\n that._updateEditRow(options.row, true);\r\n return true\r\n }\r\n },\r\n _needUpdateRow: function(column) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (!column) {\r\n column = this._getEditColumn()\r\n }\r\n var isCustomSetCellValue = column && column.setCellValue !== column.defaultSetCellValue;\r\n var isCustomCalculateCellValue = visibleColumns.some(function(visibleColumn) {\r\n return visibleColumn.calculateCellValue !== visibleColumn.defaultCalculateCellValue\r\n });\r\n return isCustomSetCellValue || isCustomCalculateCellValue\r\n },\r\n _applyChange: function(options, params, forceUpdateRow) {\r\n var that = this;\r\n var editMode = _getEditMode(that);\r\n var isCustomSetCellValue = options.column.setCellValue !== options.column.defaultSetCellValue;\r\n var showEditorAlways = options.column.showEditorAlways;\r\n var isUpdateInCellMode = editMode === EDIT_MODE_CELL && options.row && !options.row.isNewRow;\r\n var focusPreviousEditingCell = showEditorAlways && !forceUpdateRow && isUpdateInCellMode && that.hasEditData() && !that.isEditCell(options.rowIndex, options.columnIndex);\r\n if (focusPreviousEditingCell) {\r\n that._focusEditingCell();\r\n that._updateEditRow(options.row, true, isCustomSetCellValue);\r\n return\r\n }\r\n that._addChange(params, options.row);\r\n that._updateEditButtons();\r\n if (showEditorAlways && !forceUpdateRow) {\r\n if (isUpdateInCellMode) {\r\n that._setEditRowKey(options.row.key, true);\r\n that._setEditColumnNameByIndex(options.columnIndex, true);\r\n return that.saveEditData()\r\n } else {\r\n if (editMode === EDIT_MODE_BATCH) {\r\n forceUpdateRow = that._needUpdateRow(options.column)\r\n }\r\n }\r\n }\r\n var row = options.row;\r\n if (row) {\r\n if (forceUpdateRow || isCustomSetCellValue) {\r\n that._updateEditRow(row, forceUpdateRow, isCustomSetCellValue)\r\n } else {\r\n if (row.update) {\r\n row.update()\r\n }\r\n }\r\n }\r\n },\r\n _updateEditRowCore: function(row, skipCurrentRow, isCustomSetCellValue) {\r\n var that = this;\r\n var editForm = that._editForm;\r\n var editMode = _getEditMode(that);\r\n if (editMode === EDIT_MODE_POPUP) {\r\n if (that.option(\"repaintChangesOnly\")) {\r\n row.update && row.update(row)\r\n } else {\r\n if (editForm) {\r\n that._updateEditFormDeferred = (new _deferred.Deferred).done(function() {\r\n return editForm.repaint()\r\n });\r\n if (!that._updateLockCount) {\r\n that._updateEditFormDeferred.resolve()\r\n }\r\n }\r\n }\r\n } else {\r\n that._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: that._getRowIndicesForCascadeUpdating(row, skipCurrentRow)\r\n })\r\n }\r\n },\r\n _endUpdateCore: function() {\r\n this._updateEditFormDeferred && this._updateEditFormDeferred.resolve()\r\n },\r\n _updateEditRow: function(row, forceUpdateRow, isCustomSetCellValue) {\r\n var that = this;\r\n if (forceUpdateRow || !_isRowEditMode(that)) {\r\n that._updateEditRowCore(row, !forceUpdateRow, isCustomSetCellValue);\r\n if (!forceUpdateRow) {\r\n that._focusEditingCell()\r\n }\r\n } else {\r\n var deferred = new _deferred.Deferred;\r\n that.addDeferred(deferred);\r\n setTimeout(function() {\r\n var $focusedElement = (0, _renderer.default)(_dom_adapter.default.getActiveElement());\r\n var columnIndex = that._rowsView.getCellIndex($focusedElement, row.rowIndex);\r\n var focusedElement = $focusedElement.get(0);\r\n var selectionRange = _uiGrid_core2.default.getSelectionRange(focusedElement);\r\n that._updateEditRowCore(row, false, isCustomSetCellValue);\r\n if (columnIndex >= 0) {\r\n var $focusedItem = that._rowsView._getCellElement(row.rowIndex, columnIndex);\r\n that._delayedInputFocus($focusedItem, function() {\r\n setTimeout(function() {\r\n focusedElement = _dom_adapter.default.getActiveElement();\r\n if (selectionRange.selectionStart >= 0) {\r\n _uiGrid_core2.default.setSelectionRange(focusedElement, selectionRange)\r\n }\r\n })\r\n })\r\n }\r\n deferred.resolve()\r\n })\r\n }\r\n },\r\n _addChange: function(options, row) {\r\n var changes = _toConsumableArray(this.getChanges());\r\n var index = _uiGrid_core2.default.getIndexByKey(options.key, changes);\r\n if (index < 0) {\r\n index = changes.length;\r\n this._addInternalData({\r\n key: options.key,\r\n oldData: options.oldData\r\n });\r\n delete options.oldData;\r\n changes.push(options)\r\n }\r\n var change = _objectSpread({}, changes[index]);\r\n if (change) {\r\n if (options.data) {\r\n change.data = (0, _array_utils.createObjectWithChanges)(change.data, options.data)\r\n }\r\n if ((!change.type || !options.data) && options.type) {\r\n change.type = options.type\r\n }\r\n if (row) {\r\n row.oldData = this._getOldData(row.key);\r\n row.data = (0, _array_utils.createObjectWithChanges)(row.data, options.data)\r\n }\r\n }\r\n changes[index] = change;\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n return index\r\n },\r\n _getFormEditItemTemplate: function(cellOptions, column) {\r\n return column.editCellTemplate || getDefaultEditorTemplate(this)\r\n },\r\n renderFormEditTemplate: function(detailCellOptions, item, form, container, isReadOnly) {\r\n var that = this;\r\n var $container = (0, _renderer.default)(container);\r\n var column = item.column;\r\n var editorType = getEditorType(item);\r\n var rowData = null === detailCellOptions || void 0 === detailCellOptions ? void 0 : detailCellOptions.row.data;\r\n var cellOptions = (0, _extend.extend)({}, detailCellOptions, {\r\n data: rowData,\r\n cellElement: null,\r\n isOnForm: true,\r\n item: item,\r\n column: (0, _extend.extend)({}, column, {\r\n editorType: editorType,\r\n editorOptions: item.editorOptions\r\n }),\r\n id: form.getItemID(item.name || item.dataField),\r\n columnIndex: column.index,\r\n setValue: !isReadOnly && column.allowEditing && function(value) {\r\n that.updateFieldValue(cellOptions, value)\r\n }\r\n });\r\n cellOptions.value = column.calculateCellValue(rowData);\r\n var template = that._getFormEditItemTemplate.bind(that)(cellOptions, column);\r\n that._rowsView.renderTemplate($container, template, cellOptions, !!$container.closest((0, _window.getWindow)().document).length).done(function() {\r\n that._rowsView._updateCell($container, cellOptions)\r\n });\r\n return cellOptions\r\n },\r\n getFormEditorTemplate: function(cellOptions, item) {\r\n var that = this;\r\n var column = this.component.columnOption(item.dataField);\r\n return function(options, container) {\r\n var $container = (0, _renderer.default)(container);\r\n cellOptions.row.watch && cellOptions.row.watch(function() {\r\n return column.selector(cellOptions.row.data)\r\n }, function() {\r\n var _validator;\r\n var $editorElement = $container.find(\".dx-widget\").first();\r\n var validator = $editorElement.data(\"dxValidator\");\r\n var validatorOptions = null === (_validator = validator) || void 0 === _validator ? void 0 : _validator.option();\r\n $container.contents().remove();\r\n cellOptions = that.renderFormEditTemplate.bind(that)(cellOptions, item, options.component, $container);\r\n $editorElement = $container.find(\".dx-widget\").first();\r\n validator = $editorElement.data(\"dxValidator\");\r\n if (validatorOptions && !validator) {\r\n $editorElement.dxValidator({\r\n validationRules: validatorOptions.validationRules,\r\n validationGroup: validatorOptions.validationGroup,\r\n dataGetter: validatorOptions.dataGetter\r\n })\r\n }\r\n });\r\n cellOptions = that.renderFormEditTemplate.bind(that)(cellOptions, item, options.component, $container)\r\n }\r\n },\r\n getEditFormOptions: function(detailOptions) {\r\n var userCustomizeItem = this.option(\"editing.form.customizeItem\");\r\n var editFormItemClass = this.addWidgetPrefix(EDIT_FORM_ITEM_CLASS);\r\n var items = this.option(\"editing.form.items\");\r\n var isCustomEditorType = {};\r\n var that = this;\r\n if (!items) {\r\n var columns = this.getController(\"columns\").getColumns();\r\n items = [];\r\n (0, _iterator.each)(columns, function(_, column) {\r\n if (!column.isBand && !column.type) {\r\n items.push({\r\n column: column,\r\n name: column.name,\r\n dataField: column.dataField\r\n })\r\n }\r\n })\r\n } else {\r\n forEachFormItems(items, function(item) {\r\n var itemId = (null === item || void 0 === item ? void 0 : item.name) || (null === item || void 0 === item ? void 0 : item.dataField);\r\n if (itemId) {\r\n isCustomEditorType[itemId] = !!item.editorType\r\n }\r\n })\r\n }\r\n return {\r\n items: items,\r\n formID: \"dx-\" + new _guid.default,\r\n customizeItem: function(item) {\r\n var column;\r\n var itemId = item.name || item.dataField;\r\n if (item.column || itemId) {\r\n column = item.column || that._columnsController.columnOption(item.name ? \"name:\" + item.name : \"dataField:\" + item.dataField)\r\n }\r\n if (column) {\r\n item.label = item.label || {};\r\n item.label.text = item.label.text || column.caption;\r\n item.template = item.template || that.getFormEditorTemplate(detailOptions, item);\r\n item.column = column;\r\n item.isCustomEditorType = isCustomEditorType[itemId];\r\n if (column.formItem) {\r\n (0, _extend.extend)(item, column.formItem)\r\n }\r\n if (void 0 === item.isRequired && column.validationRules) {\r\n item.isRequired = column.validationRules.some(function(rule) {\r\n return \"required\" === rule.type\r\n });\r\n item.validationRules = []\r\n }\r\n var itemVisible = (0, _type.isDefined)(item.visible) ? item.visible : true;\r\n if (!that._firstFormItem && itemVisible) {\r\n that._firstFormItem = item\r\n }\r\n }\r\n userCustomizeItem && userCustomizeItem.call(this, item);\r\n item.cssClass = (0, _type.isString)(item.cssClass) ? item.cssClass + \" \" + editFormItemClass : editFormItemClass\r\n }\r\n }\r\n },\r\n getEditFormTemplate: function() {\r\n var that = this;\r\n return function($container, detailOptions, renderFormOnly) {\r\n var editFormOptions = that.option(\"editing.form\");\r\n var baseEditFormOptions = that.getEditFormOptions(detailOptions);\r\n that._firstFormItem = void 0;\r\n that._editForm = that._createComponent((0, _renderer.default)(\"
\").appendTo($container), _form.default, (0, _extend.extend)({}, editFormOptions, baseEditFormOptions));\r\n if (!renderFormOnly) {\r\n var $buttonsContainer = (0, _renderer.default)(\"
\").addClass(that.addWidgetPrefix(FORM_BUTTONS_CONTAINER_CLASS)).appendTo($container);\r\n that._createComponent((0, _renderer.default)(\"
\").appendTo($buttonsContainer), _button.default, that._getSaveButtonConfig());\r\n that._createComponent((0, _renderer.default)(\"
\").appendTo($buttonsContainer), _button.default, that._getCancelButtonConfig())\r\n }\r\n that._editForm.on(\"contentReady\", function() {\r\n that._editPopup && that._editPopup.repaint()\r\n })\r\n }\r\n },\r\n getColumnTemplate: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var rowIndex = options.row && options.row.rowIndex;\r\n var template;\r\n var isRowMode = _isRowEditMode(that);\r\n var isRowEditing = that.isEditRow(rowIndex);\r\n var isCellEditing = that.isEditCell(rowIndex, options.columnIndex);\r\n var editingStartOptions;\r\n if ((column.showEditorAlways || column.setCellValue && (isRowEditing && column.allowEditing || isCellEditing)) && (\"data\" === options.rowType || \"detailAdaptive\" === options.rowType) && !column.command) {\r\n var allowUpdating = that.allowUpdating(options);\r\n if (((allowUpdating || isRowEditing) && column.allowEditing || isCellEditing) && (isRowMode && isRowEditing || !isRowMode)) {\r\n if (column.showEditorAlways && !isRowMode) {\r\n editingStartOptions = {\r\n cancel: false,\r\n key: options.row.isNewRow ? void 0 : options.row.key,\r\n data: options.row.data,\r\n column: column\r\n };\r\n that._isEditingStart(editingStartOptions)\r\n }\r\n if (!editingStartOptions || !editingStartOptions.cancel) {\r\n options.setValue = function(value, text) {\r\n that.updateFieldValue(options, value, text)\r\n }\r\n }\r\n }\r\n template = column.editCellTemplate || getDefaultEditorTemplate(that)\r\n } else {\r\n if (\"detail\" === column.command && \"detail\" === options.rowType && isRowEditing) {\r\n template = that.getEditFormTemplate(options)\r\n }\r\n }\r\n return template\r\n },\r\n _createButton: function($container, button, options) {\r\n var that = this;\r\n var icon = EDIT_ICON_CLASS[button.name];\r\n var useIcons = that.option(\"editing.useIcons\");\r\n var $button = (0, _renderer.default)(\"\").attr(\"href\", \"#\").addClass(LINK_CLASS).addClass(button.cssClass);\r\n if (button.template) {\r\n that._rowsView.renderTemplate($container, button.template, options, true)\r\n } else {\r\n if (useIcons && icon || button.icon) {\r\n icon = button.icon || icon;\r\n var iconType = iconUtils.getImageSourceType(icon);\r\n if (\"image\" === iconType || \"svg\" === iconType) {\r\n $button = iconUtils.getImageContainer(icon).addClass(button.cssClass)\r\n } else {\r\n $button.addClass(\"dx-icon\" + (\"dxIcon\" === iconType ? \"-\" : \" \") + icon).attr(\"title\", button.text)\r\n }\r\n $button.addClass(\"dx-link-icon\");\r\n $container.addClass(COMMAND_EDIT_WITH_ICONS_CLASS);\r\n var localizationName = this.getButtonLocalizationNames()[button.name];\r\n localizationName && $button.attr(\"aria-label\", _message.default.format(localizationName))\r\n } else {\r\n $button.text(button.text)\r\n }\r\n if ((0, _type.isDefined)(button.hint)) {\r\n $button.attr(\"title\", button.hint)\r\n }\r\n _events_engine.default.on($button, (0, _index.addNamespace)(\"click\", EDITING_NAMESPACE), that.createAction(function(e) {\r\n button.onClick.call(button, (0, _extend.extend)({}, e, {\r\n row: options.row,\r\n column: options.column\r\n }));\r\n e.event.preventDefault();\r\n e.event.stopPropagation()\r\n }));\r\n $container.append($button, \" \")\r\n }\r\n },\r\n getButtonLocalizationNames: function() {\r\n return {\r\n edit: \"dxDataGrid-editingEditRow\",\r\n save: \"dxDataGrid-editingSaveRowChanges\",\r\n \"delete\": \"dxDataGrid-editingDeleteRow\",\r\n undelete: \"dxDataGrid-editingUndeleteRow\",\r\n cancel: \"dxDataGrid-editingCancelRowChanges\"\r\n }\r\n },\r\n prepareEditButtons: function(headerPanel) {\r\n var that = this;\r\n var editingOptions = that.option(\"editing\") || {};\r\n var editingTexts = that.option(\"editing.texts\") || {};\r\n var titleButtonTextByClassNames = {\r\n revert: editingTexts.cancelAllChanges,\r\n save: editingTexts.saveAllChanges,\r\n addRow: editingTexts.addRow\r\n };\r\n var classNameButtonByNames = {\r\n revert: \"cancel\",\r\n save: \"save\",\r\n addRow: \"addrow\"\r\n };\r\n var buttonItems = [];\r\n var prepareButtonItem = function(name, methodName, sortIndex) {\r\n var className = classNameButtonByNames[name];\r\n var onInitialized = function(e) {\r\n (0, _renderer.default)(e.element).addClass(headerPanel._getToolbarButtonClass(EDIT_BUTTON_CLASS + \" \" + that.addWidgetPrefix(className) + \"-button\"))\r\n };\r\n var hintText = titleButtonTextByClassNames[name];\r\n var isButtonDisabled = (\"save\" === className || \"cancel\" === className) && !that.hasChanges();\r\n return {\r\n widget: \"dxButton\",\r\n options: {\r\n onInitialized: onInitialized,\r\n icon: \"edit-button-\" + className,\r\n disabled: isButtonDisabled,\r\n onClick: function() {\r\n setTimeout(function() {\r\n that[methodName]()\r\n })\r\n },\r\n text: hintText,\r\n hint: hintText\r\n },\r\n showText: \"inMenu\",\r\n name: name + \"Button\",\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: sortIndex\r\n }\r\n };\r\n if (editingOptions.allowAdding) {\r\n buttonItems.push(prepareButtonItem(\"addRow\", \"addRow\", 20))\r\n }\r\n if ((editingOptions.allowUpdating || editingOptions.allowAdding || editingOptions.allowDeleting) && _getEditMode(that) === EDIT_MODE_BATCH) {\r\n buttonItems.push(prepareButtonItem(\"save\", \"saveEditData\", 21));\r\n buttonItems.push(prepareButtonItem(\"revert\", \"cancelEditData\", 22))\r\n }\r\n return buttonItems\r\n },\r\n highlightDataCell: function($cell, parameters) {\r\n var cellModified = this.isCellModified(parameters);\r\n cellModified && parameters.column.setCellValue && $cell.addClass(CELL_MODIFIED)\r\n },\r\n _afterInsertRow: function() {},\r\n _beforeSaveEditData: function(change) {\r\n if (change && !(0, _type.isDefined)(change.key) && (0, _type.isDefined)(change.type)) {\r\n return true\r\n }\r\n },\r\n _afterSaveEditData: function() {},\r\n _beforeCancelEditData: function() {},\r\n _allowEditAction: function(actionName, options) {\r\n var allowEditAction = this.option(\"editing.\" + actionName);\r\n if ((0, _type.isFunction)(allowEditAction)) {\r\n allowEditAction = allowEditAction({\r\n component: this.component,\r\n row: options.row\r\n })\r\n }\r\n return allowEditAction\r\n },\r\n allowUpdating: function(options, eventName) {\r\n var startEditAction = this.option(\"editing.startEditAction\") || DEFAULT_START_EDIT_ACTION;\r\n var needCallback = arguments.length > 1 ? startEditAction === eventName || \"down\" === eventName : true;\r\n return needCallback && this._allowEditAction(\"allowUpdating\", options)\r\n },\r\n allowDeleting: function(options) {\r\n return this._allowEditAction(\"allowDeleting\", options)\r\n },\r\n isCellModified: function(parameters) {\r\n var columnIndex = parameters.columnIndex;\r\n var modifiedValues = parameters.row && (parameters.row.isNewRow ? parameters.row.values : parameters.row.modifiedValues);\r\n return !!modifiedValues && void 0 !== modifiedValues[columnIndex]\r\n }\r\n }\r\n}());\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n editing: {\r\n mode: \"row\",\r\n refreshMode: \"full\",\r\n allowAdding: false,\r\n allowUpdating: false,\r\n allowDeleting: false,\r\n useIcons: false,\r\n selectTextOnEditStart: false,\r\n confirmDelete: true,\r\n texts: {\r\n editRow: _message.default.format(\"dxDataGrid-editingEditRow\"),\r\n saveAllChanges: _message.default.format(\"dxDataGrid-editingSaveAllChanges\"),\r\n saveRowChanges: _message.default.format(\"dxDataGrid-editingSaveRowChanges\"),\r\n cancelAllChanges: _message.default.format(\"dxDataGrid-editingCancelAllChanges\"),\r\n cancelRowChanges: _message.default.format(\"dxDataGrid-editingCancelRowChanges\"),\r\n addRow: _message.default.format(\"dxDataGrid-editingAddRow\"),\r\n deleteRow: _message.default.format(\"dxDataGrid-editingDeleteRow\"),\r\n undeleteRow: _message.default.format(\"dxDataGrid-editingUndeleteRow\"),\r\n confirmDeleteMessage: _message.default.format(\"dxDataGrid-editingConfirmDeleteMessage\"),\r\n confirmDeleteTitle: \"\"\r\n },\r\n form: {\r\n colCount: 2\r\n },\r\n popup: {},\r\n startEditAction: \"click\",\r\n editRowKey: null,\r\n editColumnName: null,\r\n changes: []\r\n }\r\n }\r\n },\r\n controllers: {\r\n editing: EditingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n this._editingController = this.getController(\"editing\");\r\n this.callBase()\r\n },\r\n reload: function(full, repaintChangesOnly) {\r\n !repaintChangesOnly && this._editingController.refresh();\r\n return this.callBase.apply(this, arguments)\r\n },\r\n repaintRows: function() {\r\n if (this.getController(\"editing\").isSaving()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateEditRow: function(items) {\r\n var editingController = this._editingController;\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var editRowIndex = _uiGrid_core2.default.getIndexByKey(editRowKey, items);\r\n var editItem = items[editRowIndex];\r\n if (editItem) {\r\n editItem.isEditing = true;\r\n if (editingController.getEditMode() === EDIT_MODE_FORM) {\r\n editItem.rowType = \"detail\"\r\n }\r\n }\r\n },\r\n _updateItemsCore: function(change) {\r\n this.callBase(change);\r\n this._updateEditRow(this.items())\r\n },\r\n _applyChangeUpdate: function(change) {\r\n this._updateEditRow(change.items);\r\n this.callBase(change)\r\n },\r\n _applyChangesOnly: function(change) {\r\n this._updateEditRow(change.items);\r\n this.callBase(change)\r\n },\r\n _processItems: function(items, change) {\r\n items = this._editingController.processItems(items, change);\r\n return this.callBase(items, change)\r\n },\r\n _processDataItem: function(dataItem, options) {\r\n this._editingController.processDataItem(dataItem, options, this.generateDataValues);\r\n return this.callBase(dataItem, options)\r\n },\r\n _processItem: function(item, options) {\r\n item = this.callBase(item, options);\r\n if (item.isNewRow) {\r\n options.dataIndex--;\r\n delete item.dataIndex\r\n }\r\n return item\r\n },\r\n _getChangedColumnIndices: function(oldItem, newItem, rowIndex, isLiveUpdate) {\r\n var editingController = this.getController(\"editing\");\r\n var isRowEditMode = editingController.isRowEditMode();\r\n if (oldItem.isNewRow !== newItem.isNewRow || oldItem.removed !== newItem.removed || isRowEditMode && oldItem.isEditing !== newItem.isEditing) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isCellChanged: function(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n var editingController = this.getController(\"editing\");\r\n var cell = oldRow.cells && oldRow.cells[columnIndex];\r\n var isEditing = editingController && editingController.isEditCell(visibleRowIndex, columnIndex);\r\n if (isLiveUpdate && isEditing) {\r\n return false\r\n }\r\n if (cell && cell.column && !cell.column.showEditorAlways && cell.isEditing !== isEditing) {\r\n return true\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n init: function() {\r\n this.callBase();\r\n this._editingController = this.getController(\"editing\")\r\n },\r\n getCellElements: function(rowIndex) {\r\n var $cellElements = this.callBase(rowIndex);\r\n var editingController = this._editingController;\r\n var editForm = editingController.getEditForm();\r\n var editFormRowIndex = editingController.getEditFormRowIndex();\r\n if (editFormRowIndex === rowIndex && $cellElements && editForm) {\r\n return editForm.$element().find(\".\" + this.addWidgetPrefix(EDIT_FORM_ITEM_CLASS) + \", .\" + BUTTON_CLASS)\r\n }\r\n return $cellElements\r\n },\r\n getCellIndex: function($cell, rowIndex) {\r\n if (!$cell.is(\"td\") && rowIndex >= 0) {\r\n var $cellElements = this.getCellElements(rowIndex);\r\n var cellIndex = -1;\r\n (0, _iterator.each)($cellElements, function(index, cellElement) {\r\n if ((0, _renderer.default)(cellElement).find($cell).length) {\r\n cellIndex = index\r\n }\r\n });\r\n return cellIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getVisibleColumnIndex: function($cells, rowIndex, columnIdentifier) {\r\n var editFormRowIndex = this._editingController.getEditFormRowIndex();\r\n if (editFormRowIndex === rowIndex && (0, _type.isString)(columnIdentifier)) {\r\n var column = this._columnsController.columnOption(columnIdentifier);\r\n return this._getEditFormEditorVisibleIndex($cells, column)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getEditFormEditorVisibleIndex: function($cells, column) {\r\n var visibleIndex = -1;\r\n (0, _iterator.each)($cells, function(index, cellElement) {\r\n var item = (0, _renderer.default)(cellElement).find(\".dx-field-item-content\").data(\"dx-form-item\");\r\n if (item && item.column && column && item.column.index === column.index) {\r\n visibleIndex = index;\r\n return false\r\n }\r\n });\r\n return visibleIndex\r\n },\r\n publicMethods: function() {\r\n return this.callBase().concat([\"cellValue\"])\r\n },\r\n _getCellTemplate: function(options) {\r\n var that = this;\r\n var template = that._editingController.getColumnTemplate(options);\r\n return template || that.callBase(options)\r\n },\r\n _isNativeClick: function() {\r\n return (_devices.default.real().ios || _devices.default.real().android) && this.option(\"editing.allowUpdating\")\r\n },\r\n _createTable: function() {\r\n var that = this;\r\n var $table = that.callBase.apply(that, arguments);\r\n if (!_isRowEditMode(that) && that.option(\"editing.allowUpdating\")) {\r\n _events_engine.default.on($table, (0, _index.addNamespace)(_hold.default.name, \"dxDataGridRowsView\"), \"td:not(.\" + EDITOR_CELL_CLASS + \")\", that.createAction(function() {\r\n var editingController = that._editingController;\r\n if (editingController.isEditing()) {\r\n editingController.closeEditCell()\r\n }\r\n }))\r\n }\r\n return $table\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (row) {\r\n var editingController = this._editingController;\r\n var isEditRow = editingController.isEditRow(row.rowIndex);\r\n var isRowRemoved = !!row.removed;\r\n var isRowInserted = !!row.isNewRow;\r\n var isRowModified = !!row.modified;\r\n if (_getEditMode(this) === EDIT_MODE_BATCH) {\r\n isRowRemoved && $row.addClass(ROW_REMOVED)\r\n } else {\r\n isEditRow && $row.addClass(EDIT_ROW)\r\n }\r\n isRowInserted && $row.addClass(ROW_INSERTED);\r\n isRowModified && $row.addClass(ROW_MODIFIED);\r\n if (isEditRow || isRowInserted || isRowRemoved) {\r\n $row.removeClass(ROW_SELECTED)\r\n }\r\n if (isEditRow && \"detail\" === row.rowType) {\r\n $row.addClass(this.addWidgetPrefix(EDIT_FORM_CLASS))\r\n }\r\n }\r\n return $row\r\n },\r\n _getColumnIndexByElement: function($element) {\r\n var $tableElement = $element.closest(\"table\");\r\n var $tableElements = this.getTableElements();\r\n while ($tableElement.length && !$tableElements.filter($tableElement).length) {\r\n $element = $tableElement.closest(\"td\");\r\n $tableElement = $element.closest(\"table\")\r\n }\r\n return this._getColumnIndexByElementCore($element)\r\n },\r\n _getColumnIndexByElementCore: function($element) {\r\n var $targetElement = $element.closest(\".\" + ROW_CLASS + \"> td:not(.dx-master-detail-cell)\");\r\n return this.getCellIndex($targetElement)\r\n },\r\n _editCellByClick: function(e, eventName) {\r\n var that = this;\r\n var editingController = that._editingController;\r\n var $targetElement = (0, _renderer.default)(e.event.target);\r\n var columnIndex = that._getColumnIndexByElement($targetElement);\r\n var row = that._dataController.items()[e.rowIndex];\r\n var allowUpdating = editingController.allowUpdating({\r\n row: row\r\n }, eventName) || row && row.isNewRow;\r\n var column = that._columnsController.getVisibleColumns()[columnIndex];\r\n var allowEditing = allowUpdating && column && (column.allowEditing || editingController.isEditCell(e.rowIndex, columnIndex));\r\n var startEditAction = that.option(\"editing.startEditAction\") || \"click\";\r\n if (\"down\" === eventName) {\r\n return column && column.showEditorAlways && allowEditing && editingController.editCell(e.rowIndex, columnIndex)\r\n }\r\n if (\"click\" === eventName && \"dblClick\" === startEditAction && !editingController.isEditCell(e.rowIndex, columnIndex)) {\r\n editingController.closeEditCell()\r\n }\r\n if (allowEditing && eventName === startEditAction) {\r\n return editingController.editCell(e.rowIndex, columnIndex) || editingController.isEditRow(e.rowIndex)\r\n }\r\n },\r\n _rowPointerDown: function(e) {\r\n var _this24 = this;\r\n this._pointerDownTimeout = setTimeout(function() {\r\n _this24._editCellByClick(e, \"down\")\r\n })\r\n },\r\n _rowClick: function(e) {\r\n var isEditForm = (0, _renderer.default)(e.rowElement).hasClass(this.addWidgetPrefix(EDIT_FORM_CLASS));\r\n e.event[TARGET_COMPONENT_NAME] = this.component;\r\n if (!this._editCellByClick(e, \"click\") && !isEditForm) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _rowDblClick: function(e) {\r\n if (!this._editCellByClick(e, \"dblClick\")) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _cellPrepared: function($cell, parameters) {\r\n var editingController = this._editingController;\r\n var isCommandCell = !!parameters.column.command;\r\n var isEditableCell = parameters.setValue;\r\n var isEditRow = editingController.isEditRow(parameters.rowIndex);\r\n var isEditing = isEditingCell(isEditRow, parameters);\r\n if (isEditingOrShowEditorAlwaysDataCell(isEditRow, parameters)) {\r\n var alignment = parameters.column.alignment;\r\n $cell.toggleClass(this.addWidgetPrefix(READONLY_CLASS), !isEditableCell).toggleClass(CELL_FOCUS_DISABLED_CLASS, !isEditableCell);\r\n if (alignment) {\r\n $cell.find(EDITORS_INPUT_SELECTOR).first().css(\"textAlign\", alignment)\r\n }\r\n }\r\n if (isEditing) {\r\n this._editCellPrepared($cell)\r\n }\r\n if (parameters.column && !isCommandCell) {\r\n editingController.highlightDataCell($cell, parameters)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _editCellPrepared: function($cell) {},\r\n _formItemPrepared: function() {},\r\n _isFormItem: function(parameters) {\r\n var isDetailRow = \"detail\" === parameters.rowType || \"detailAdaptive\" === parameters.rowType;\r\n var isPopupEditing = \"data\" === parameters.rowType && \"popup\" === _getEditMode(this);\r\n return (isDetailRow || isPopupEditing) && parameters.item\r\n },\r\n _updateCell: function($cell, parameters) {\r\n if (this._isFormItem(parameters)) {\r\n this._formItemPrepared(parameters, $cell)\r\n } else {\r\n this.callBase($cell, parameters)\r\n }\r\n },\r\n _update: function(change) {\r\n this.callBase(change);\r\n if (\"updateSelection\" === change.changeType) {\r\n this.getTableElements().children(\"tbody\").children(\".\" + EDIT_ROW).removeClass(ROW_SELECTED)\r\n }\r\n },\r\n _getCellOptions: function(options) {\r\n var cellOptions = this.callBase(options);\r\n cellOptions.isEditing = this._editingController.isEditCell(cellOptions.rowIndex, cellOptions.columnIndex);\r\n return cellOptions\r\n },\r\n _createCell: function(options) {\r\n var $cell = this.callBase(options);\r\n var isEditRow = this._editingController.isEditRow(options.rowIndex);\r\n isEditingOrShowEditorAlwaysDataCell(isEditRow, options) && $cell.addClass(EDITOR_CELL_CLASS);\r\n return $cell\r\n },\r\n _renderCellContent: function($cell, options) {\r\n if (\"data\" === options.rowType && _getEditMode(this) === EDIT_MODE_POPUP && false === options.row.visible) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n cellValue: function(rowIndex, columnIdentifier, value, text) {\r\n var cellOptions = this.getCellOptions(rowIndex, columnIdentifier);\r\n if (cellOptions) {\r\n if (void 0 === value) {\r\n return cellOptions.value\r\n } else {\r\n this._editingController.updateFieldValue(cellOptions, value, text, true)\r\n }\r\n }\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._pointerDownTimeout)\r\n },\r\n _renderCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this._editingController._focusEditorIfNeed()\r\n }\r\n },\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n var editButtonItems = this.getController(\"editing\").prepareEditButtons(this);\r\n return editButtonItems.concat(items)\r\n },\r\n optionChanged: function(args) {\r\n var fullName = args.fullName;\r\n switch (args.name) {\r\n case \"editing\":\r\n var excludedOptions = [EDITING_POPUP_OPTION_NAME, EDITING_CHANGES_OPTION_NAME, EDITING_EDITCOLUMNNAME_OPTION_NAME, EDITING_EDITROWKEY_OPTION_NAME];\r\n var shouldInvalidate = fullName && !excludedOptions.some(function(optionName) {\r\n return optionName === fullName\r\n });\r\n shouldInvalidate && this._invalidate();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isVisible: function() {\r\n var that = this;\r\n var editingOptions = that.getController(\"editing\").option(\"editing\");\r\n return that.callBase() || editingOptions && (editingOptions.allowAdding || (editingOptions.allowUpdating || editingOptions.allowDeleting) && editingOptions.mode === EDIT_MODE_BATCH)\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/menu/ui.submenu.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _element = require(\"../../core/element\");\r\nvar _position = _interopRequireDefault(require(\"../../animation/position\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _context_menu = _interopRequireDefault(require(\"../context_menu\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar Submenu = function(_ContextMenu) {\r\n _inheritsLoose(Submenu, _ContextMenu);\r\n\r\n function Submenu() {\r\n return _ContextMenu.apply(this, arguments) || this\r\n }\r\n var _proto = Submenu.prototype;\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_ContextMenu.prototype._getDefaultOptions.call(this), {\r\n orientation: \"horizontal\",\r\n tabIndex: null,\r\n onHoverStart: _common.noop\r\n })\r\n };\r\n _proto._initDataAdapter = function() {\r\n this._dataAdapter = this.option(\"_dataAdapter\");\r\n if (!this._dataAdapter) {\r\n _ContextMenu.prototype._initDataAdapter.call(this)\r\n }\r\n };\r\n _proto._renderContentImpl = function() {\r\n this._renderContextMenuOverlay();\r\n _ContextMenu.prototype._renderContentImpl.call(this);\r\n var node = this._dataAdapter.getNodeByKey(this.option(\"_parentKey\"));\r\n node && this._renderItems(this._getChildNodes(node));\r\n this._renderDelimiter()\r\n };\r\n _proto._renderDelimiter = function() {\r\n this.$contentDelimiter = (0, _renderer.default)(\"
\").appendTo(this._itemContainer()).addClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)\r\n };\r\n _proto._getOverlayOptions = function() {\r\n return (0, _extend.extend)(_ContextMenu.prototype._getOverlayOptions.call(this), {\r\n onPositioned: this._overlayPositionedActionHandler.bind(this)\r\n })\r\n };\r\n _proto._overlayPositionedActionHandler = function(arg) {\r\n this._showDelimiter(arg)\r\n };\r\n _proto._hoverEndHandler = function(e) {\r\n _ContextMenu.prototype._hoverEndHandler.call(this, e);\r\n this._toggleFocusClass(false, e.currentTarget)\r\n };\r\n _proto._isMenuHorizontal = function() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n };\r\n _proto._hoverStartHandler = function(e) {\r\n var hoverStartAction = this.option(\"onHoverStart\");\r\n hoverStartAction(e);\r\n _ContextMenu.prototype._hoverStartHandler.call(this, e);\r\n this._toggleFocusClass(true, e.currentTarget)\r\n };\r\n _proto._drawSubmenu = function($rootItem) {\r\n this._actions.onShowing({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: this\r\n });\r\n _ContextMenu.prototype._drawSubmenu.call(this, $rootItem);\r\n this._actions.onShown({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: this\r\n })\r\n };\r\n _proto._hideSubmenu = function($rootItem) {\r\n this._actions.onHiding({\r\n cancel: true,\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: this\r\n });\r\n _ContextMenu.prototype._hideSubmenu.call(this, $rootItem);\r\n this._actions.onHidden({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: this\r\n })\r\n };\r\n _proto._showDelimiter = function(arg) {\r\n if (!this.$contentDelimiter) {\r\n return\r\n }\r\n var $submenu = this._itemContainer().children(\".\".concat(DX_SUBMENU_CLASS)).eq(0);\r\n var $rootItem = this.option(\"position\").of;\r\n var position = {\r\n of: $submenu\r\n };\r\n var containerOffset = arg.position;\r\n var vLocation = containerOffset.v.location;\r\n var hLocation = containerOffset.h.location;\r\n var rootOffset = $rootItem.offset();\r\n var offsetLeft = Math.round(rootOffset.left);\r\n var offsetTop = Math.round(rootOffset.top);\r\n var rootWidth = $rootItem.width();\r\n var rootHeight = $rootItem.height();\r\n var submenuWidth = $submenu.width();\r\n var submenuHeight = $submenu.height();\r\n this.$contentDelimiter.css(\"display\", \"block\");\r\n this.$contentDelimiter.width(this._isMenuHorizontal() ? rootWidth < submenuWidth ? rootWidth - 2 : submenuWidth : 2);\r\n this.$contentDelimiter.height(this._isMenuHorizontal() ? 2 : rootHeight < submenuHeight ? rootHeight - 2 : submenuHeight);\r\n if (this._isMenuHorizontal()) {\r\n if (vLocation > offsetTop) {\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"1 -1\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"-1 -1\";\r\n position.at = position.my = \"right top\"\r\n }\r\n } else {\r\n this.$contentDelimiter.height(5);\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"1 4\";\r\n position.at = position.my = \"left bottom\"\r\n } else {\r\n position.offset = \"-1 2\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n }\r\n } else {\r\n if (hLocation > offsetLeft) {\r\n if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"-1 1\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"-1 -1\";\r\n position.at = position.my = \"left bottom\"\r\n }\r\n } else {\r\n if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"1 1\";\r\n position.at = position.my = \"right top\"\r\n } else {\r\n position.offset = \"1 -1\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n }\r\n }\r\n _position.default.setup(this.$contentDelimiter, position)\r\n };\r\n _proto._getContextMenuPosition = function() {\r\n return this.option(\"position\")\r\n };\r\n _proto.isOverlayVisible = function() {\r\n return this._overlay.option(\"visible\")\r\n };\r\n _proto.getOverlayContent = function() {\r\n return this._overlay.$content()\r\n };\r\n return Submenu\r\n}(_context_menu.default);\r\nvar _default = Submenu;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/*!\n * devextreme-vue\n * Version: 20.2.7\n * Build date: Thu Apr 22 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxItem = exports.DxValidationSummary = void 0;\nvar validation_summary_1 = require(\"devextreme/ui/validation_summary\");\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxValidationSummary = index_1.createComponent({\n props: {\n elementAttr: Object,\n hoverStateEnabled: Boolean,\n items: Array,\n itemTemplate: {},\n onContentReady: Function,\n onDisposing: Function,\n onInitialized: Function,\n onItemClick: [Function, String],\n onOptionChanged: Function,\n validationGroup: String\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:elementAttr\": null,\n \"update:hoverStateEnabled\": null,\n \"update:items\": null,\n \"update:itemTemplate\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onInitialized\": null,\n \"update:onItemClick\": null,\n \"update:onOptionChanged\": null,\n \"update:validationGroup\": null,\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = validation_summary_1.default;\n this.$_expectedChildren = {\n item: { isCollectionItem: true, optionName: \"items\" }\n };\n }\n});\nexports.DxValidationSummary = DxValidationSummary;\nvar DxItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n disabled: Boolean,\n html: String,\n template: {},\n text: String,\n visible: Boolean\n }\n});\nexports.DxItem = DxItem;\nDxItem.$_optionName = \"items\";\nDxItem.$_isCollectionItem = true;\nexports.default = DxValidationSummary;\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar accessibility = _interopRequireWildcard(require(\"../shared/accessibility\"));\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TABLE_CLASS = \"table\";\r\nvar BORDERS_CLASS = \"borders\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar IMPORTANT_MARGIN_CLASS = \"important-margin\";\r\nvar TEXT_CONTENT_CLASS = \"text-content\";\r\nvar HIDDEN_CLASS = \"dx-hidden\";\r\nvar GRIDBASE_CONTAINER_CLASS = \"dx-gridbase-container\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nvar VIEW_NAMES = [\"columnsSeparatorView\", \"blockSeparatorView\", \"trackerView\", \"headerPanel\", \"columnHeadersView\", \"rowsView\", \"footerView\", \"columnChooserView\", \"filterPanelView\", \"pagerView\", \"draggingHeaderView\", \"contextMenuView\", \"errorView\", \"headerFilterView\", \"filterBuilderView\"];\r\nvar isPercentWidth = function(width) {\r\n return (0, _type.isString)(width) && \"%\" === width.slice(-1)\r\n};\r\nvar isPixelWidth = function(width) {\r\n return (0, _type.isString)(width) && \"px\" === width.slice(-2)\r\n};\r\nvar mergeArraysByMaxValue = function(values1, values2) {\r\n var result = [];\r\n if (values1 && values2 && values1.length && values1.length === values2.length) {\r\n for (var i = 0; i < values1.length; i++) {\r\n result.push(values1[i] > values2[i] ? values1[i] : values2[i])\r\n }\r\n } else {\r\n if (values1 && values1.length) {\r\n result = values1\r\n } else {\r\n if (values2) {\r\n result = values2\r\n }\r\n }\r\n }\r\n return result\r\n};\r\nvar getContainerHeight = function($container) {\r\n var clientHeight = $container.get(0).clientHeight;\r\n var paddingTop = parseFloat($container.css(\"paddingTop\"));\r\n var paddingBottom = parseFloat($container.css(\"paddingBottom\"));\r\n return clientHeight - paddingTop - paddingBottom\r\n};\r\nvar calculateFreeWidth = function(that, widths) {\r\n var contentWidth = that._rowsView.contentWidth();\r\n var totalWidth = that._getTotalWidth(widths, contentWidth);\r\n return contentWidth - totalWidth\r\n};\r\nvar calculateFreeWidthWithCurrentMinWidth = function(that, columnIndex, currentMinWidth, widths) {\r\n return calculateFreeWidth(that, widths.map(function(width, index) {\r\n return index === columnIndex ? currentMinWidth : width\r\n }))\r\n};\r\nvar restoreFocus = function(focusedElement, selectionRange) {\r\n accessibility.hiddenFocus(focusedElement);\r\n _uiGrid_core2.default.setSelectionRange(focusedElement, selectionRange)\r\n};\r\nvar ResizingController = _uiGrid_core.default.ViewController.inherit({\r\n _initPostRenderHandlers: function() {\r\n var that = this;\r\n var dataController = that._dataController;\r\n if (!that._refreshSizesHandler) {\r\n that._refreshSizesHandler = function(e) {\r\n dataController.changed.remove(that._refreshSizesHandler);\r\n var resizeDeferred;\r\n var changeType = e && e.changeType;\r\n var isDelayed = e && e.isDelayed;\r\n var items = dataController.items();\r\n if (!e || \"refresh\" === changeType || \"prepend\" === changeType || \"append\" === changeType) {\r\n if (!isDelayed) {\r\n resizeDeferred = that.resize()\r\n }\r\n } else {\r\n if (\"update\" === changeType && e.changeTypes) {\r\n if ((items.length > 1 || \"insert\" !== e.changeTypes[0]) && !(0 === items.length && \"remove\" === e.changeTypes[0]) && !e.needUpdateDimensions) {\r\n (0, _common.deferUpdate)(function() {\r\n that._rowsView.resize()\r\n })\r\n } else {\r\n resizeDeferred = that.resize()\r\n }\r\n }\r\n }\r\n if (changeType && \"updateSelection\" !== changeType && \"updateFocusedRow\" !== changeType && !isDelayed) {\r\n (0, _deferred.when)(resizeDeferred).done(function() {\r\n that._setAriaRowColCount();\r\n that.fireContentReadyAction()\r\n })\r\n }\r\n };\r\n that._dataController.changed.add(function() {\r\n that._dataController.changed.add(that._refreshSizesHandler)\r\n })\r\n }\r\n },\r\n fireContentReadyAction: function() {\r\n this.component._fireContentReadyAction()\r\n },\r\n _setAriaRowColCount: function() {\r\n var component = this.component;\r\n component.setAria({\r\n rowCount: this._dataController.totalItemsCount(),\r\n colCount: component.columnCount()\r\n }, component.$element().children(\".\" + GRIDBASE_CONTAINER_CLASS))\r\n },\r\n _getBestFitWidths: function() {\r\n var _this$_footerView;\r\n var rowsView = this._rowsView;\r\n var columnHeadersView = this._columnHeadersView;\r\n if (!this.option(\"legacyRendering\")) {\r\n var _widths;\r\n var widths = rowsView.getColumnWidths();\r\n if (!(null !== (_widths = widths) && void 0 !== _widths && _widths.length)) {\r\n var _rowsView$getTableEle;\r\n var headersTableElement = columnHeadersView.getTableElement();\r\n columnHeadersView.setTableElement(null === (_rowsView$getTableEle = rowsView.getTableElement()) || void 0 === _rowsView$getTableEle ? void 0 : _rowsView$getTableEle.children(\".dx-header\"));\r\n widths = columnHeadersView.getColumnWidths();\r\n columnHeadersView.setTableElement(headersTableElement)\r\n }\r\n return widths\r\n }\r\n var rowsColumnWidths = rowsView.getColumnWidths();\r\n var headerColumnWidths = null === columnHeadersView || void 0 === columnHeadersView ? void 0 : columnHeadersView.getColumnWidths();\r\n var footerColumnWidths = null === (_this$_footerView = this._footerView) || void 0 === _this$_footerView ? void 0 : _this$_footerView.getColumnWidths();\r\n var resultWidths = mergeArraysByMaxValue(rowsColumnWidths, headerColumnWidths);\r\n resultWidths = mergeArraysByMaxValue(resultWidths, footerColumnWidths);\r\n return resultWidths\r\n },\r\n _setVisibleWidths: function(visibleColumns, widths) {\r\n var columnsController = this._columnsController;\r\n columnsController.beginUpdate();\r\n (0, _iterator.each)(visibleColumns, function(index, column) {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"visibleWidth\", widths[index])\r\n });\r\n columnsController.endUpdate()\r\n },\r\n _toggleBestFitModeForView: function(view, className, isBestFit) {\r\n var _this = this;\r\n if (!view || !view.isVisible()) {\r\n return\r\n }\r\n var $rowsTables = this._rowsView.getTableElements();\r\n var $viewTables = view.getTableElements();\r\n (0, _iterator.each)($rowsTables, function(index, tableElement) {\r\n var $tableBody;\r\n var $rowsTable = (0, _renderer.default)(tableElement);\r\n var $viewTable = $viewTables.eq(index);\r\n if ($viewTable && $viewTable.length) {\r\n if (isBestFit) {\r\n $tableBody = $viewTable.children(\"tbody\").appendTo($rowsTable)\r\n } else {\r\n $tableBody = $rowsTable.children(\".\" + className).appendTo($viewTable)\r\n }\r\n $tableBody.toggleClass(className, isBestFit);\r\n $tableBody.toggleClass(_this.addWidgetPrefix(\"best-fit\"), isBestFit)\r\n }\r\n })\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n var $element = this.component.$element();\r\n var that = this;\r\n if (!that.option(\"legacyRendering\")) {\r\n var $rowsTable = that._rowsView.getTableElement();\r\n var $rowsFixedTable = that._rowsView.getTableElements().eq(1);\r\n if (!$rowsTable) {\r\n return\r\n }\r\n $rowsTable.css(\"tableLayout\", isBestFit ? \"auto\" : \"fixed\");\r\n $rowsTable.children(\"colgroup\").css(\"display\", isBestFit ? \"none\" : \"\");\r\n $rowsFixedTable.toggleClass(this.addWidgetPrefix(TABLE_FIXED_CLASS), !isBestFit);\r\n that._toggleBestFitModeForView(that._columnHeadersView, \"dx-header\", isBestFit);\r\n that._toggleBestFitModeForView(that._footerView, \"dx-footer\", isBestFit);\r\n if (that._needStretch()) {\r\n $rowsTable.get(0).style.width = isBestFit ? \"auto\" : \"\"\r\n }\r\n if (_browser.default.msie && 11 === parseInt(_browser.default.version)) {\r\n $rowsTable.find(\".\" + this.addWidgetPrefix(TABLE_FIXED_CLASS)).each(function() {\r\n this.style.width = isBestFit ? \"10px\" : \"\"\r\n })\r\n }\r\n } else {\r\n $element.find(\".\" + this.addWidgetPrefix(TABLE_CLASS)).toggleClass(this.addWidgetPrefix(TABLE_FIXED_CLASS), !isBestFit);\r\n $element.find(EDITORS_INPUT_SELECTOR).toggleClass(HIDDEN_CLASS, isBestFit);\r\n $element.find(\".dx-group-cell\").toggleClass(HIDDEN_CLASS, isBestFit);\r\n $element.find(\".dx-header-row .\" + this.addWidgetPrefix(TEXT_CONTENT_CLASS)).css(\"maxWidth\", \"\")\r\n }\r\n },\r\n _synchronizeColumns: function() {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnAutoWidth = that.option(\"columnAutoWidth\");\r\n var legacyRendering = that.option(\"legacyRendering\");\r\n var needBestFit = that._needBestFit();\r\n var hasMinWidth = false;\r\n var resetBestFitMode;\r\n var isColumnWidthsCorrected = false;\r\n var resultWidths = [];\r\n var focusedElement;\r\n var selectionRange;\r\n var normalizeWidthsByExpandColumns = function() {\r\n var expandColumnWidth;\r\n (0, _iterator.each)(visibleColumns, function(index, column) {\r\n if (\"groupExpand\" === column.type) {\r\n expandColumnWidth = resultWidths[index]\r\n }\r\n });\r\n (0, _iterator.each)(visibleColumns, function(index, column) {\r\n if (\"groupExpand\" === column.type && expandColumnWidth) {\r\n resultWidths[index] = expandColumnWidth\r\n }\r\n })\r\n };\r\n !needBestFit && (0, _iterator.each)(visibleColumns, function(index, column) {\r\n if (\"auto\" === column.width || legacyRendering && column.fixed) {\r\n needBestFit = true;\r\n return false\r\n }\r\n });\r\n (0, _iterator.each)(visibleColumns, function(index, column) {\r\n if (column.minWidth) {\r\n hasMinWidth = true;\r\n return false\r\n }\r\n });\r\n that._setVisibleWidths(visibleColumns, []);\r\n if (needBestFit) {\r\n focusedElement = _dom_adapter.default.getActiveElement();\r\n selectionRange = _uiGrid_core2.default.getSelectionRange(focusedElement);\r\n that._toggleBestFitMode(true);\r\n resetBestFitMode = true\r\n }(0, _common.deferUpdate)(function() {\r\n if (needBestFit) {\r\n resultWidths = that._getBestFitWidths();\r\n (0, _iterator.each)(visibleColumns, function(index, column) {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"bestFitWidth\", resultWidths[index], true)\r\n })\r\n } else {\r\n if (hasMinWidth) {\r\n resultWidths = that._getBestFitWidths()\r\n }\r\n }(0, _iterator.each)(visibleColumns, function(index) {\r\n var width = this.width;\r\n if (\"auto\" !== width) {\r\n if ((0, _type.isDefined)(width)) {\r\n resultWidths[index] = (0, _type.isNumeric)(width) || isPixelWidth(width) ? parseFloat(width) : width\r\n } else {\r\n if (!columnAutoWidth) {\r\n resultWidths[index] = void 0\r\n }\r\n }\r\n }\r\n });\r\n if (resetBestFitMode) {\r\n that._toggleBestFitMode(false);\r\n resetBestFitMode = false;\r\n if (focusedElement && focusedElement !== _dom_adapter.default.getActiveElement()) {\r\n var isFocusOutsideWindow = (0, _position.getBoundingRect)(focusedElement).bottom < 0;\r\n if (!isFocusOutsideWindow) {\r\n if (_browser.default.msie) {\r\n setTimeout(function() {\r\n restoreFocus(focusedElement, selectionRange)\r\n })\r\n } else {\r\n restoreFocus(focusedElement, selectionRange)\r\n }\r\n }\r\n }\r\n }\r\n isColumnWidthsCorrected = that._correctColumnWidths(resultWidths, visibleColumns);\r\n if (columnAutoWidth) {\r\n normalizeWidthsByExpandColumns();\r\n if (that._needStretch()) {\r\n that._processStretch(resultWidths, visibleColumns)\r\n }\r\n }(0, _common.deferRender)(function() {\r\n if (needBestFit || isColumnWidthsCorrected) {\r\n that._setVisibleWidths(visibleColumns, resultWidths)\r\n }\r\n })\r\n })\r\n },\r\n _needBestFit: function() {\r\n return this.option(\"columnAutoWidth\")\r\n },\r\n _needStretch: function() {\r\n return this.option(\"legacyRendering\") || this._columnsController.getVisibleColumns().some(function(c) {\r\n return \"auto\" === c.width && !c.command\r\n })\r\n },\r\n _getAverageColumnsWidth: function(resultWidths) {\r\n var freeWidth = calculateFreeWidth(this, resultWidths);\r\n var columnCountWithoutWidth = resultWidths.filter(function(width) {\r\n return void 0 === width\r\n }).length;\r\n return freeWidth / columnCountWithoutWidth\r\n },\r\n _correctColumnWidths: function(resultWidths, visibleColumns) {\r\n var that = this;\r\n var i;\r\n var hasPercentWidth = false;\r\n var hasAutoWidth = false;\r\n var isColumnWidthsCorrected = false;\r\n var $element = that.component.$element();\r\n var hasWidth = that._hasWidth;\r\n var _loop = function() {\r\n var index = i;\r\n var column = visibleColumns[index];\r\n var isHiddenColumn = resultWidths[index] === HIDDEN_COLUMNS_WIDTH;\r\n var width = resultWidths[index];\r\n var minWidth = column.minWidth;\r\n if (minWidth) {\r\n if (void 0 === width) {\r\n var averageColumnsWidth = that._getAverageColumnsWidth(resultWidths);\r\n width = averageColumnsWidth\r\n } else {\r\n if (isPercentWidth(width)) {\r\n var freeWidth = calculateFreeWidthWithCurrentMinWidth(that, index, minWidth, resultWidths);\r\n if (freeWidth < 0) {\r\n width = -1\r\n }\r\n }\r\n }\r\n }\r\n var realColumnWidth = that._getRealColumnWidth(index, resultWidths.map(function(columnWidth, columnIndex) {\r\n return index === columnIndex ? width : columnWidth\r\n }));\r\n if (minWidth && !isHiddenColumn && realColumnWidth < minWidth) {\r\n resultWidths[index] = minWidth;\r\n isColumnWidthsCorrected = true;\r\n i = -1\r\n }\r\n if (!(0, _type.isDefined)(column.width)) {\r\n hasAutoWidth = true\r\n }\r\n if (isPercentWidth(column.width)) {\r\n hasPercentWidth = true\r\n }\r\n };\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n _loop()\r\n }\r\n if ($element && that._maxWidth) {\r\n delete that._maxWidth;\r\n $element.css(\"maxWidth\", \"\")\r\n }\r\n if (!hasAutoWidth && resultWidths.length) {\r\n var contentWidth = that._rowsView.contentWidth();\r\n var scrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var totalWidth = that._getTotalWidth(resultWidths, contentWidth);\r\n if (totalWidth < contentWidth) {\r\n var lastColumnIndex = _uiGrid_core2.default.getLastResizableColumnIndex(visibleColumns, resultWidths);\r\n if (lastColumnIndex >= 0) {\r\n resultWidths[lastColumnIndex] = \"auto\";\r\n isColumnWidthsCorrected = true;\r\n if (false === hasWidth && !hasPercentWidth) {\r\n that._maxWidth = totalWidth + scrollbarWidth + (that.option(\"showBorders\") ? 2 : 0);\r\n $element.css(\"maxWidth\", that._maxWidth)\r\n }\r\n }\r\n }\r\n }\r\n return isColumnWidthsCorrected\r\n },\r\n _processStretch: function(resultSizes, visibleColumns) {\r\n var groupSize = this._rowsView.contentWidth();\r\n var tableSize = this._getTotalWidth(resultSizes, groupSize);\r\n var unusedIndexes = {\r\n length: 0\r\n };\r\n if (!resultSizes.length) {\r\n return\r\n }(0, _iterator.each)(visibleColumns, function(index) {\r\n if (this.width || resultSizes[index] === HIDDEN_COLUMNS_WIDTH) {\r\n unusedIndexes[index] = true;\r\n unusedIndexes.length++\r\n }\r\n });\r\n var diff = groupSize - tableSize;\r\n var diffElement = Math.floor(diff / (resultSizes.length - unusedIndexes.length));\r\n var onePixelElementsCount = diff - diffElement * (resultSizes.length - unusedIndexes.length);\r\n if (diff >= 0) {\r\n for (var i = 0; i < resultSizes.length; i++) {\r\n if (unusedIndexes[i]) {\r\n continue\r\n }\r\n resultSizes[i] += diffElement;\r\n if (onePixelElementsCount > 0) {\r\n if (onePixelElementsCount < 1) {\r\n resultSizes[i] += onePixelElementsCount;\r\n onePixelElementsCount = 0\r\n } else {\r\n resultSizes[i]++;\r\n onePixelElementsCount--\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _getRealColumnWidth: function(columnIndex, columnWidths, groupWidth) {\r\n var ratio = 1;\r\n var width = columnWidths[columnIndex];\r\n if (!isPercentWidth(width)) {\r\n return parseFloat(width)\r\n }\r\n var percentTotalWidth = columnWidths.reduce(function(sum, width, index) {\r\n if (!isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n var pixelTotalWidth = columnWidths.reduce(function(sum, width) {\r\n if (!width || width === HIDDEN_COLUMNS_WIDTH || isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n groupWidth = groupWidth || this._rowsView.contentWidth();\r\n var freeSpace = groupWidth - pixelTotalWidth;\r\n var percentTotalWidthInPixel = percentTotalWidth * groupWidth / 100;\r\n if (pixelTotalWidth > 0 && percentTotalWidthInPixel + pixelTotalWidth >= groupWidth) {\r\n ratio = percentTotalWidthInPixel > freeSpace ? freeSpace / percentTotalWidthInPixel : 1\r\n }\r\n return parseFloat(width) * groupWidth * ratio / 100\r\n },\r\n _getTotalWidth: function(widths, groupWidth) {\r\n var result = 0;\r\n for (var i = 0; i < widths.length; i++) {\r\n var width = widths[i];\r\n if (width && width !== HIDDEN_COLUMNS_WIDTH) {\r\n result += this._getRealColumnWidth(i, widths, groupWidth)\r\n }\r\n }\r\n return Math.ceil(result)\r\n },\r\n updateSize: function($rootElement) {\r\n var that = this;\r\n var $groupElement;\r\n var width;\r\n var importantMarginClass = that.addWidgetPrefix(IMPORTANT_MARGIN_CLASS);\r\n if (void 0 === that._hasHeight && $rootElement && $rootElement.is(\":visible\") && $rootElement.width()) {\r\n $groupElement = $rootElement.children(\".\" + that.getWidgetContainerClass());\r\n if ($groupElement.length) {\r\n $groupElement.detach()\r\n }\r\n that._hasHeight = !!getContainerHeight($rootElement);\r\n width = $rootElement.width();\r\n $rootElement.addClass(importantMarginClass);\r\n that._hasWidth = $rootElement.width() === width;\r\n $rootElement.removeClass(importantMarginClass);\r\n if ($groupElement.length) {\r\n $groupElement.appendTo($rootElement)\r\n }\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"resize\", \"updateDimensions\"]\r\n },\r\n resize: function() {\r\n return !this.component._requireResize && this.updateDimensions()\r\n },\r\n updateDimensions: function(checkSize) {\r\n var that = this;\r\n that._initPostRenderHandlers();\r\n if (!that._checkSize(checkSize)) {\r\n return\r\n }\r\n var prevResult = that._resizeDeferred;\r\n var result = that._resizeDeferred = new _deferred.Deferred;\r\n (0, _deferred.when)(prevResult).always(function() {\r\n (0, _common.deferRender)(function() {\r\n if (that._dataController.isLoaded()) {\r\n that._synchronizeColumns()\r\n }\r\n that._resetGroupElementHeight();\r\n (0, _common.deferUpdate)(function() {\r\n (0, _common.deferRender)(function() {\r\n (0, _common.deferUpdate)(function() {\r\n that._updateDimensionsCore()\r\n })\r\n })\r\n })\r\n }).done(result.resolve).fail(result.reject)\r\n });\r\n return result.promise()\r\n },\r\n _resetGroupElementHeight: function() {\r\n var groupElement = this.component.$element().children().get(0);\r\n var scrollable = this._rowsView.getScrollable();\r\n if (groupElement && groupElement.style.height && (!scrollable || !scrollable.scrollTop())) {\r\n groupElement.style.height = \"\"\r\n }\r\n },\r\n _checkSize: function(checkSize) {\r\n var $rootElement = this.component.$element();\r\n if (checkSize && (this._lastWidth === $rootElement.width() && this._lastHeight === $rootElement.height() || !$rootElement.is(\":visible\"))) {\r\n return false\r\n }\r\n return true\r\n },\r\n _setScrollerSpacingCore: function(hasHeight) {\r\n var that = this;\r\n var vScrollbarWidth = hasHeight ? that._rowsView.getScrollbarWidth() : 0;\r\n var hScrollbarWidth = that._rowsView.getScrollbarWidth(true);\r\n (0, _common.deferRender)(function() {\r\n that._columnHeadersView && that._columnHeadersView.setScrollerSpacing(vScrollbarWidth);\r\n that._footerView && that._footerView.setScrollerSpacing(vScrollbarWidth);\r\n that._rowsView.setScrollerSpacing(vScrollbarWidth, hScrollbarWidth)\r\n })\r\n },\r\n _setScrollerSpacing: function(hasHeight) {\r\n var _this2 = this;\r\n if (true === this.option(\"scrolling.useNative\")) {\r\n (0, _common.deferRender)(function() {\r\n (0, _common.deferUpdate)(function() {\r\n _this2._setScrollerSpacingCore(hasHeight)\r\n })\r\n })\r\n } else {\r\n this._setScrollerSpacingCore(hasHeight)\r\n }\r\n },\r\n _updateDimensionsCore: function() {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var rowsView = that._rowsView;\r\n var $rootElement = that.component.$element();\r\n var groupElement = $rootElement.children().get(0);\r\n var rootElementHeight = $rootElement && ($rootElement.get(0).clientHeight || $rootElement.height());\r\n var maxHeight = parseInt($rootElement.css(\"maxHeight\"));\r\n var maxHeightHappened = maxHeight && rootElementHeight >= maxHeight;\r\n var height = that.option(\"height\") || $rootElement.get(0).style.height;\r\n var editorFactory = that.getController(\"editorFactory\");\r\n var isMaxHeightApplied = maxHeightHappened && groupElement.scrollHeight === groupElement.offsetHeight;\r\n var $testDiv;\r\n that.updateSize($rootElement);\r\n var hasHeight = that._hasHeight || maxHeightHappened;\r\n if (height && that._hasHeight ^ \"auto\" !== height) {\r\n $testDiv = (0, _renderer.default)(\"
\").height(height).appendTo($rootElement);\r\n that._hasHeight = !!$testDiv.height();\r\n $testDiv.remove()\r\n }(0, _common.deferRender)(function() {\r\n rowsView.height(null, hasHeight);\r\n if (maxHeightHappened && !isMaxHeightApplied) {\r\n (0, _renderer.default)(groupElement).css(\"height\", maxHeight)\r\n }\r\n if (!dataController.isLoaded()) {\r\n rowsView.setLoading(dataController.isLoading());\r\n return\r\n }(0, _common.deferUpdate)(function() {\r\n that._updateLastSizes($rootElement);\r\n that._setScrollerSpacing(hasHeight);\r\n (0, _iterator.each)(VIEW_NAMES, function(index, viewName) {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.resize()\r\n }\r\n });\r\n editorFactory && editorFactory.resize()\r\n })\r\n })\r\n },\r\n _updateLastSizes: function($rootElement) {\r\n this._lastWidth = $rootElement.width();\r\n this._lastHeight = $rootElement.height()\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.component._renderDimensions();\r\n this.resize();\r\n case \"legacyRendering\":\r\n case \"renderAsync\":\r\n args.handled = true;\r\n return;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n init: function() {\r\n var that = this;\r\n that._dataController = that.getController(\"data\");\r\n that._columnsController = that.getController(\"columns\");\r\n that._columnHeadersView = that.getView(\"columnHeadersView\");\r\n that._footerView = that.getView(\"footerView\");\r\n that._rowsView = that.getView(\"rowsView\")\r\n }\r\n});\r\nvar SynchronizeScrollingController = _uiGrid_core.default.ViewController.inherit({\r\n _scrollChangedHandler: function(views, pos, viewName) {\r\n for (var j = 0; j < views.length; j++) {\r\n if (views[j] && views[j].name !== viewName) {\r\n views[j].scrollTo({\r\n left: pos.left,\r\n top: pos.top\r\n })\r\n }\r\n }\r\n },\r\n init: function() {\r\n var views = [this.getView(\"columnHeadersView\"), this.getView(\"footerView\"), this.getView(\"rowsView\")];\r\n for (var i = 0; i < views.length; i++) {\r\n var view = views[i];\r\n if (view) {\r\n view.scrollChanged.add(this._scrollChangedHandler.bind(this, views))\r\n }\r\n }\r\n }\r\n});\r\nvar GridView = _uiGrid_core.default.View.inherit({\r\n _endUpdateCore: function() {\r\n if (this.component._requireResize) {\r\n this.component._requireResize = false;\r\n this._resizingController.resize()\r\n }\r\n },\r\n _getWidgetAriaLabel: function() {\r\n return \"dxDataGrid-ariaDataGrid\"\r\n },\r\n init: function() {\r\n var that = this;\r\n that._resizingController = that.getController(\"resizing\");\r\n that._dataController = that.getController(\"data\")\r\n },\r\n getView: function(name) {\r\n return this.component._views[name]\r\n },\r\n element: function() {\r\n return this._groupElement\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n if ((0, _type.isDefined)(that._groupElement) && \"showBorders\" === args.name) {\r\n that._groupElement.toggleClass(that.addWidgetPrefix(BORDERS_CLASS), !!args.value);\r\n args.handled = true\r\n } else {\r\n that.callBase(args)\r\n }\r\n },\r\n _renderViews: function($groupElement) {\r\n var that = this;\r\n (0, _iterator.each)(VIEW_NAMES, function(index, viewName) {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.render($groupElement)\r\n }\r\n })\r\n },\r\n _getTableRoleName: function() {\r\n return \"grid\"\r\n },\r\n render: function($rootElement) {\r\n var that = this;\r\n var isFirstRender = !that._groupElement;\r\n var $groupElement = that._groupElement || (0, _renderer.default)(\"
\").addClass(that.getWidgetContainerClass());\r\n $groupElement.addClass(GRIDBASE_CONTAINER_CLASS);\r\n $groupElement.toggleClass(that.addWidgetPrefix(BORDERS_CLASS), !!that.option(\"showBorders\"));\r\n that.setAria(\"role\", \"presentation\", $rootElement);\r\n that.component.setAria({\r\n role: this._getTableRoleName(),\r\n label: _message.default.format(that._getWidgetAriaLabel())\r\n }, $groupElement);\r\n that._rootElement = $rootElement || that._rootElement;\r\n if (isFirstRender) {\r\n that._groupElement = $groupElement;\r\n (0, _window.hasWindow)() && that.getController(\"resizing\").updateSize($rootElement);\r\n $groupElement.appendTo($rootElement)\r\n }\r\n that._renderViews($groupElement)\r\n },\r\n update: function() {\r\n var that = this;\r\n var $rootElement = that._rootElement;\r\n var $groupElement = that._groupElement;\r\n var resizingController = that.getController(\"resizing\");\r\n if ($rootElement && $groupElement) {\r\n resizingController.resize();\r\n if (that._dataController.isLoaded()) {\r\n that._resizingController.fireContentReadyAction()\r\n }\r\n }\r\n }\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n showBorders: false,\r\n renderAsync: false,\r\n legacyRendering: false\r\n }\r\n },\r\n controllers: {\r\n resizing: ResizingController,\r\n synchronizeScrolling: SynchronizeScrollingController\r\n },\r\n views: {\r\n gridView: GridView\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/drop_down_box.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _ui = _interopRequireDefault(require(\"./drop_down_editor/ui.drop_down_editor\"));\r\nvar _ui2 = _interopRequireDefault(require(\"./editor/ui.data_expression\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _selectors = require(\"./widget/selectors\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _utils = require(\"../ui/overlay/utils\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _index = require(\"../events/utils/index\");\r\nvar _short = require(\"../events/short\");\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../core/dom_adapter\"));\r\nvar _element = require(\"../core/element\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar getActiveElement = _dom_adapter.default.getActiveElement;\r\nvar DROP_DOWN_BOX_CLASS = \"dx-dropdownbox\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar realDevice = _devices.default.real();\r\nvar DropDownBox = _ui.default.inherit({\r\n _supportedKeys: function() {\r\n return (0, _extend.extend)({}, this.callBase(), {\r\n tab: function(e) {\r\n if (!this.option(\"opened\")) {\r\n return\r\n }\r\n var $tabbableElements = this._getTabbableElements();\r\n var $focusableElement = e.shiftKey ? $tabbableElements.last() : $tabbableElements.first();\r\n $focusableElement && _events_engine.default.trigger($focusableElement, \"focus\");\r\n e.preventDefault()\r\n }\r\n })\r\n },\r\n _getTabbableElements: function() {\r\n return this._getElements().filter(_selectors.tabbable)\r\n },\r\n _getElements: function() {\r\n return (0, _renderer.default)(this.content()).find(\"*\")\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n acceptCustomValue: false,\r\n contentTemplate: ANONYMOUS_TEMPLATE_NAME,\r\n openOnFieldClick: true,\r\n displayValueFormatter: function(value) {\r\n return Array.isArray(value) ? value.join(\", \") : value\r\n },\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates: function() {\r\n this.callBase()\r\n },\r\n _initMarkup: function() {\r\n this._initDataExpressions();\r\n this.$element().addClass(DROP_DOWN_BOX_CLASS);\r\n this.callBase()\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.option(\"value\");\r\n var submitValue = this._shouldUseDisplayValue(value) ? this._displayGetter(value) : value;\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _shouldUseDisplayValue: function(value) {\r\n return \"this\" === this.option(\"valueExpr\") && (0, _type.isObject)(value)\r\n },\r\n _renderInputValue: function() {\r\n var callBase = this.callBase.bind(this);\r\n var values = [];\r\n if (!this._dataSource) {\r\n callBase(values);\r\n return (new _deferred.Deferred).resolve()\r\n }\r\n var currentValue = this._getCurrentValue();\r\n var keys = (0, _common.ensureDefined)(currentValue, []);\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n var itemLoadDeferreds = (0, _iterator.map)(keys, function(key) {\r\n return this._loadItem(key).always(function(item) {\r\n var displayValue = this._displayGetter(item);\r\n values.push((0, _common.ensureDefined)(displayValue, key))\r\n }.bind(this))\r\n }.bind(this));\r\n return _deferred.when.apply(this, itemLoadDeferreds).always(function() {\r\n this.option(\"displayValue\", values);\r\n callBase(values.length && values)\r\n }.bind(this))\r\n },\r\n _loadItem: function(value) {\r\n var deferred = new _deferred.Deferred;\r\n var that = this;\r\n var selectedItem = (0, _common.grep)(this.option(\"items\") || [], function(item) {\r\n return this._isValueEquals(this._valueGetter(item), value)\r\n }.bind(this))[0];\r\n if (void 0 !== selectedItem) {\r\n deferred.resolve(selectedItem)\r\n } else {\r\n this._loadValue(value).done(function(item) {\r\n deferred.resolve(item)\r\n }).fail(function(args) {\r\n if (that.option(\"acceptCustomValue\")) {\r\n deferred.resolve(value)\r\n } else {\r\n deferred.reject()\r\n }\r\n })\r\n }\r\n return deferred.promise()\r\n },\r\n _popupElementTabHandler: function(e) {\r\n if (\"tab\" !== (0, _index.normalizeKeyName)(e)) {\r\n return\r\n }\r\n var $firstTabbable = this._getTabbableElements().first().get(0);\r\n var $lastTabbable = this._getTabbableElements().last().get(0);\r\n var $target = e.originalEvent.target;\r\n var moveBackward = !!($target === $firstTabbable && e.shift);\r\n var moveForward = !!($target === $lastTabbable && !e.shift);\r\n if (moveBackward || moveForward) {\r\n this.close();\r\n _events_engine.default.trigger(this._input(), \"focus\");\r\n if (moveBackward) {\r\n e.originalEvent.preventDefault()\r\n }\r\n }\r\n },\r\n _renderPopup: function(e) {\r\n var _this = this;\r\n this.callBase();\r\n if (this.option(\"focusStateEnabled\")) {\r\n _short.keyboard.on(this.content(), null, function(e) {\r\n return _this._popupElementTabHandler(e)\r\n })\r\n }\r\n },\r\n _renderPopupContent: function() {\r\n if (this.option(\"contentTemplate\") === ANONYMOUS_TEMPLATE_NAME) {\r\n return\r\n }\r\n var contentTemplate = this._getTemplateByOption(\"contentTemplate\");\r\n if (!(contentTemplate && this.option(\"contentTemplate\"))) {\r\n return\r\n }\r\n var $popupContent = this._popup.$content();\r\n var templateData = {\r\n value: this._fieldRenderData(),\r\n component: this\r\n };\r\n $popupContent.empty();\r\n contentTemplate.render({\r\n container: (0, _element.getPublicElement)($popupContent),\r\n model: templateData\r\n })\r\n },\r\n _canShowVirtualKeyboard: function() {\r\n return realDevice.mac\r\n },\r\n _isNestedElementActive: function() {\r\n var activeElement = getActiveElement();\r\n return activeElement && this._popup.$content().get(0).contains(activeElement)\r\n },\r\n _shouldCloseOnTargetScroll: function() {\r\n return \"desktop\" === realDevice.deviceType && this._canShowVirtualKeyboard() && this._isNestedElementActive()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n this._popupPosition = void 0\r\n },\r\n _popupPositionedHandler: function(e) {\r\n this.callBase(e);\r\n this._popupPosition = e.position\r\n },\r\n _getDefaultPopupPosition: function(isRtlEnabled) {\r\n var _this$callBase = this.callBase(isRtlEnabled),\r\n my = _this$callBase.my,\r\n at = _this$callBase.at;\r\n return {\r\n my: my,\r\n at: at,\r\n offset: {\r\n v: -1\r\n },\r\n collision: \"flipfit\"\r\n }\r\n },\r\n _popupConfig: function() {\r\n var _this2 = this;\r\n var _this$option = this.option(),\r\n focusStateEnabled = _this$option.focusStateEnabled;\r\n return (0, _extend.extend)(this.callBase(), {\r\n tabIndex: -1,\r\n dragEnabled: false,\r\n focusStateEnabled: focusStateEnabled,\r\n contentTemplate: ANONYMOUS_TEMPLATE_NAME,\r\n closeOnTargetScroll: this._shouldCloseOnTargetScroll.bind(this),\r\n position: (0, _extend.extend)(this.option(\"popupPosition\"), {\r\n of: this.$element()\r\n }),\r\n onKeyboardHandled: function(opts) {\r\n return _this2.option(\"focusStateEnabled\") && _this2._popupElementTabHandler(opts)\r\n },\r\n maxHeight: function() {\r\n var _this$_popupPosition;\r\n var popupLocation = null === (_this$_popupPosition = this._popupPosition) || void 0 === _this$_popupPosition ? void 0 : _this$_popupPosition.v.location;\r\n return (0, _utils.getElementMaxHeightByWindow)(this.$element(), popupLocation)\r\n }.bind(this)\r\n })\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n var $firstElement = this._getTabbableElements().first();\r\n _events_engine.default.trigger($firstElement, \"focus\")\r\n },\r\n _setCollectionWidgetOption: _common.noop,\r\n _optionChanged: function(args) {\r\n this._dataExpressionOptionChanged(args);\r\n switch (args.name) {\r\n case \"dataSource\":\r\n this._renderInputValue();\r\n break;\r\n case \"displayValue\":\r\n this.option(\"text\", args.value);\r\n break;\r\n case \"displayExpr\":\r\n this._renderValue();\r\n break;\r\n case \"contentTemplate\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(_ui2.default);\r\n(0, _component_registrator.default)(\"dxDropDownBox\", DropDownBox);\r\nvar _default = DropDownBox;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/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\nexports.default = void 0;\r\nvar _filter_builder = _interopRequireDefault(require(\"./filter_builder/filter_builder\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _filter_builder.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.export_mixin.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _default = {\r\n _getEmptyCell: function() {\r\n return {\r\n text: \"\",\r\n value: void 0,\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n },\r\n _defaultSetter: function(value) {\r\n return !value ? 1 : value\r\n },\r\n _cloneItem: function(item) {\r\n return (0, _extend.extend)({}, item, this._getEmptyCell())\r\n },\r\n _prepareItems: function(items) {\r\n var that = this;\r\n var resultItems = [];\r\n var cols = (items[0] || []).reduce(function(sum, item) {\r\n return sum + that._defaultSetter(item.colspan)\r\n }, 0);\r\n var getItem = function(items) {\r\n var rowIndex = 0;\r\n var cellIndex = 0;\r\n return function() {\r\n var row = items[rowIndex] || [];\r\n var item = row[cellIndex++];\r\n if (cellIndex >= row.length) {\r\n rowIndex++;\r\n cellIndex = 0\r\n }\r\n if (item) {\r\n item.colspan = that._defaultSetter(item.colspan);\r\n item.rowspan = that._defaultSetter(item.rowspan)\r\n }\r\n return item\r\n }\r\n }(items);\r\n\r\n function addItem(rowIndex, cellIndex, item) {\r\n var row = resultItems[rowIndex] = resultItems[rowIndex] || [];\r\n row[cellIndex] = item;\r\n if (item.colspan > 1 || item.rowspan > 1) {\r\n var clone = that._cloneItem(item);\r\n for (var c = 1; c < item.colspan; c++) {\r\n addItem(rowIndex, cellIndex + c, clone)\r\n }\r\n for (var r = 1; r < item.rowspan; r++) {\r\n for (var _c = 0; _c < item.colspan; _c++) {\r\n addItem(rowIndex + r, cellIndex + _c, clone)\r\n }\r\n }\r\n }\r\n }\r\n var item = getItem();\r\n var rowIndex = 0;\r\n while (item) {\r\n for (var cellIndex = 0; cellIndex < cols; cellIndex++) {\r\n if (!item) {\r\n break\r\n }\r\n if (resultItems[rowIndex] && resultItems[rowIndex][cellIndex]) {\r\n continue\r\n }\r\n addItem(rowIndex, cellIndex, item);\r\n cellIndex += item.colspan - 1;\r\n item = getItem()\r\n }\r\n rowIndex++\r\n }\r\n return resultItems\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.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 _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\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\n_uiData_grid.default.registerModule(\"stateStoring\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.utils.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.createGroupFilter = createGroupFilter;\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.utils\"));\r\nvar _utils = _interopRequireDefault(require(\"../../data/utils\"));\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 createGroupFilter(path, storeLoadOptions) {\r\n var groups = _utils.default.normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n filter.push([groups[i].selector, \"=\", path[i]])\r\n }\r\n if (storeLoadOptions.filter) {\r\n filter.push(storeLoadOptions.filter)\r\n }\r\n return _uiGrid_core.default.combineFilters(filter)\r\n}\r\n","/**\r\n * DevExtreme (ui/menu/ui.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\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _element = require(\"../../core/element\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _utils = require(\"../overlay/utils\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _hover = require(\"../../events/hover\");\r\nvar _ui = _interopRequireDefault(require(\"../context_menu/ui.menu_base\"));\r\nvar _overlay = _interopRequireDefault(require(\"../overlay\"));\r\nvar _ui2 = _interopRequireDefault(require(\"./ui.submenu\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\nvar _tree_view = _interopRequireDefault(require(\"../tree_view\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_VERTICAL_CLASS = DX_MENU_CLASS + \"-vertical\";\r\nvar DX_MENU_HORIZONTAL_CLASS = DX_MENU_CLASS + \"-horizontal\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS = DX_CONTEXT_MENU_CLASS + \"-container-border\";\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar DX_STATE_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DX_ADAPTIVE_MODE_CLASS = DX_MENU_CLASS + \"-adaptive-mode\";\r\nvar DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS = DX_MENU_CLASS + \"-hamburger-button\";\r\nvar DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS = DX_ADAPTIVE_MODE_CLASS + \"-overlay-wrapper\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar SHOW_SUBMENU_OPERATION = \"showSubmenu\";\r\nvar NEXTITEM_OPERATION = \"nextItem\";\r\nvar PREVITEM_OPERATION = \"prevItem\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nvar ACTIONS = [\"onSubmenuShowing\", \"onSubmenuShown\", \"onSubmenuHiding\", \"onSubmenuHidden\", \"onItemContextMenu\", \"onItemClick\", \"onSelectionChanged\", \"onItemRendered\"];\r\nvar Menu = function(_MenuBase) {\r\n _inheritsLoose(Menu, _MenuBase);\r\n\r\n function Menu() {\r\n return _MenuBase.apply(this, arguments) || this\r\n }\r\n var _proto = Menu.prototype;\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_MenuBase.prototype._getDefaultOptions.call(this), {\r\n orientation: \"horizontal\",\r\n submenuDirection: \"auto\",\r\n showFirstSubmenuMode: {\r\n name: \"onClick\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n hideSubmenuOnMouseLeave: false,\r\n onSubmenuShowing: null,\r\n onSubmenuShown: null,\r\n onSubmenuHiding: null,\r\n onSubmenuHidden: null,\r\n adaptivityEnabled: false\r\n })\r\n };\r\n _proto._setOptionsByReference = function() {\r\n _MenuBase.prototype._setOptionsByReference.call(this);\r\n (0, _extend.extend)(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n };\r\n _proto._itemElements = function() {\r\n var rootMenuElements = _MenuBase.prototype._itemElements.call(this);\r\n var submenuElements = this._submenuItemElements();\r\n return rootMenuElements.add(submenuElements)\r\n };\r\n _proto._submenuItemElements = function() {\r\n var elements = [];\r\n var itemSelector = \".\".concat(DX_MENU_ITEM_CLASS);\r\n var currentSubmenu = this._submenus.length && this._submenus[0];\r\n if (currentSubmenu && currentSubmenu.itemsContainer()) {\r\n elements = currentSubmenu.itemsContainer().find(itemSelector)\r\n }\r\n return elements\r\n };\r\n _proto._focusTarget = function() {\r\n return this.$element()\r\n };\r\n _proto._isMenuHorizontal = function() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n };\r\n _proto._moveFocus = function(location) {\r\n var $items = this._getAvailableItems();\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n var $activeItem = this._getActiveItem(true);\r\n var argument;\r\n var operation;\r\n var navigationAction;\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(PREVITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_DOWN:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(NEXTITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_RIGHT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(NEXTITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_LEFT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(PREVITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n default:\r\n return _MenuBase.prototype._moveFocus.call(this, location)\r\n }\r\n if ($newTarget && 0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($newTarget))\r\n }\r\n };\r\n _proto._getItemsNavigationOperation = function(operation) {\r\n var navOperation = operation;\r\n if (this.option(\"rtlEnabled\")) {\r\n navOperation = operation === PREVITEM_OPERATION ? NEXTITEM_OPERATION : PREVITEM_OPERATION\r\n }\r\n return navOperation\r\n };\r\n _proto._getKeyboardNavigationAction = function(operation, argument) {\r\n var action = _common.noop;\r\n switch (operation) {\r\n case SHOW_SUBMENU_OPERATION:\r\n if (!argument.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n action = this._showSubmenu.bind(this, argument)\r\n }\r\n break;\r\n case NEXTITEM_OPERATION:\r\n action = this._nextItem.bind(this, argument);\r\n break;\r\n case PREVITEM_OPERATION:\r\n action = this._prevItem.bind(this, argument)\r\n }\r\n return action\r\n };\r\n _proto._clean = function() {\r\n _MenuBase.prototype._clean.call(this);\r\n this.option(\"templatesRenderAsynchronously\") && clearTimeout(this._resizeEventTimer)\r\n };\r\n _proto._visibilityChanged = function(visible) {\r\n if (visible) {\r\n if (!this._menuItemsWidth) {\r\n this._updateItemsWidthCache()\r\n }\r\n this._dimensionChanged()\r\n }\r\n };\r\n _proto._isAdaptivityEnabled = function() {\r\n return this.option(\"adaptivityEnabled\") && \"horizontal\" === this.option(\"orientation\")\r\n };\r\n _proto._updateItemsWidthCache = function() {\r\n var $menuItems = this.$element().find(\"ul\").first().children(\"li\").children(\".\".concat(DX_MENU_ITEM_CLASS));\r\n this._menuItemsWidth = this._getSummaryItemsWidth($menuItems, true)\r\n };\r\n _proto._dimensionChanged = function() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n var containerWidth = this.$element().outerWidth();\r\n this._toggleAdaptiveMode(this._menuItemsWidth > containerWidth)\r\n };\r\n _proto._init = function() {\r\n _MenuBase.prototype._init.call(this);\r\n this._submenus = []\r\n };\r\n _proto._initActions = function() {\r\n var _this = this;\r\n this._actions = {};\r\n (0, _iterator.each)(ACTIONS, function(index, action) {\r\n _this._actions[action] = _this._createActionByOption(action)\r\n })\r\n };\r\n _proto._initMarkup = function() {\r\n this._visibleSubmenu = null;\r\n this.$element().addClass(DX_MENU_CLASS);\r\n _MenuBase.prototype._initMarkup.call(this);\r\n this.setAria(\"role\", \"menubar\")\r\n };\r\n _proto._render = function() {\r\n _MenuBase.prototype._render.call(this);\r\n this._initAdaptivity()\r\n };\r\n _proto._renderHamburgerButton = function() {\r\n this._hamburger = new _button.default((0, _renderer.default)(\"
\").addClass(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS), {\r\n icon: \"menu\",\r\n activeStateEnabled: false,\r\n onClick: this._toggleTreeView.bind(this)\r\n });\r\n return this._hamburger.$element()\r\n };\r\n _proto._toggleTreeView = function(state) {\r\n if ((0, _type.isPlainObject)(state)) {\r\n state = !this._overlay.option(\"visible\")\r\n }\r\n this._overlay.option(\"visible\", state);\r\n this._toggleHamburgerActiveState(state)\r\n };\r\n _proto._toggleHamburgerActiveState = function(state) {\r\n this._hamburger && this._hamburger.$element().toggleClass(DX_STATE_ACTIVE_CLASS, state)\r\n };\r\n _proto._toggleAdaptiveMode = function(state) {\r\n var $menuItemsContainer = this.$element().find(\".\".concat(DX_MENU_HORIZONTAL_CLASS));\r\n var $adaptiveElements = this.$element().find(\".\".concat(DX_ADAPTIVE_MODE_CLASS));\r\n if (state) {\r\n this._hideVisibleSubmenu()\r\n } else {\r\n this._treeView && this._treeView.collapseAll();\r\n this._overlay && this._toggleTreeView(state)\r\n }\r\n $menuItemsContainer.toggle(!state);\r\n $adaptiveElements.toggle(state)\r\n };\r\n _proto._removeAdaptivity = function() {\r\n if (!this._$adaptiveContainer) {\r\n return\r\n }\r\n this._toggleAdaptiveMode(false);\r\n this._$adaptiveContainer.remove();\r\n this._$adaptiveContainer = null;\r\n this._treeView = null;\r\n this._hamburger = null;\r\n this._overlay = null\r\n };\r\n _proto._treeviewItemClickHandler = function(e) {\r\n this._actions.onItemClick(e);\r\n if (!e.node.children.length) {\r\n this._toggleTreeView(false)\r\n }\r\n };\r\n _proto._getAdaptiveOverlayOptions = function() {\r\n var _this2 = this;\r\n var rtl = this.option(\"rtlEnabled\");\r\n var position = rtl ? \"right\" : \"left\";\r\n return {\r\n maxHeight: function() {\r\n return (0, _utils.getElementMaxHeightByWindow)(_this2.$element())\r\n },\r\n deferRendering: false,\r\n shading: false,\r\n animation: false,\r\n closeOnTargetScroll: true,\r\n onHidden: function() {\r\n _this2._toggleHamburgerActiveState(false)\r\n },\r\n height: \"auto\",\r\n closeOnOutsideClick: function(e) {\r\n return !(0, _renderer.default)(e.target).closest(\".\".concat(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS)).length\r\n },\r\n position: {\r\n collision: \"flipfit\",\r\n at: \"bottom \" + position,\r\n my: \"top \" + position,\r\n of: this._hamburger.$element()\r\n }\r\n }\r\n };\r\n _proto._getTreeViewOptions = function() {\r\n var _this3 = this;\r\n var menuOptions = {};\r\n var optionsToTransfer = [\"rtlEnabled\", \"width\", \"accessKey\", \"activeStateEnabled\", \"animation\", \"dataSource\", \"disabled\", \"displayExpr\", \"displayExpr\", \"focusStateEnabled\", \"hint\", \"hoverStateEnabled\", \"itemsExpr\", \"items\", \"itemTemplate\", \"selectedExpr\", \"selectionMode\", \"tabIndex\", \"visible\"];\r\n var actionsToTransfer = [\"onItemContextMenu\", \"onSelectionChanged\"];\r\n (0, _iterator.each)(optionsToTransfer, function(_, option) {\r\n menuOptions[option] = _this3.option(option)\r\n });\r\n (0, _iterator.each)(actionsToTransfer, function(_, actionName) {\r\n menuOptions[actionName] = function(e) {\r\n _this3._actions[actionName](e)\r\n }\r\n });\r\n return (0, _extend.extend)(menuOptions, {\r\n dataSource: this.getDataSource(),\r\n animationEnabled: !!this.option(\"animation\"),\r\n onItemClick: this._treeviewItemClickHandler.bind(this),\r\n onItemExpanded: function(e) {\r\n _this3._overlay.repaint();\r\n _this3._actions.onSubmenuShown(e)\r\n },\r\n onItemCollapsed: function(e) {\r\n _this3._overlay.repaint();\r\n _this3._actions.onSubmenuHidden(e)\r\n },\r\n selectNodesRecursive: false,\r\n selectByClick: this.option(\"selectByClick\"),\r\n expandEvent: \"click\"\r\n })\r\n };\r\n _proto._initAdaptivity = function() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n this._$adaptiveContainer = (0, _renderer.default)(\"
\").addClass(DX_ADAPTIVE_MODE_CLASS);\r\n var $hamburger = this._renderHamburgerButton();\r\n this._treeView = this._createComponent((0, _renderer.default)(\"
\"), _tree_view.default, this._getTreeViewOptions());\r\n this._overlay = this._createComponent((0, _renderer.default)(\"
\"), _overlay.default, this._getAdaptiveOverlayOptions());\r\n this._overlay.$content().append(this._treeView.$element()).addClass(DX_ADAPTIVE_MODE_CLASS).addClass(this.option(\"cssClass\"));\r\n this._overlay._wrapper().addClass(DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS);\r\n this._$adaptiveContainer.append($hamburger);\r\n this._$adaptiveContainer.append(this._overlay.$element());\r\n this.$element().append(this._$adaptiveContainer);\r\n this._updateItemsWidthCache();\r\n this._dimensionChanged()\r\n };\r\n _proto._getDelay = function(delayType) {\r\n var delay = this.option(\"showFirstSubmenuMode\").delay;\r\n if (!(0, _type.isDefined)(delay)) {\r\n return DEFAULT_DELAY[delayType]\r\n } else {\r\n return (0, _type.isObject)(delay) ? delay[delayType] : delay\r\n }\r\n };\r\n _proto._keyboardHandler = function(e) {\r\n return _MenuBase.prototype._keyboardHandler.call(this, e, !!this._visibleSubmenu)\r\n };\r\n _proto._renderContainer = function() {\r\n var $wrapper = (0, _renderer.default)(\"
\");\r\n $wrapper.appendTo(this.$element()).addClass(this._isMenuHorizontal() ? DX_MENU_HORIZONTAL_CLASS : DX_MENU_VERTICAL_CLASS);\r\n return _MenuBase.prototype._renderContainer.call(this, $wrapper)\r\n };\r\n _proto._renderSubmenuItems = function(node, $itemFrame) {\r\n var submenu = this._createSubmenu(node, $itemFrame);\r\n this._submenus.push(submenu);\r\n this._renderBorderElement($itemFrame);\r\n return submenu\r\n };\r\n _proto._getKeyboardListeners = function() {\r\n return _MenuBase.prototype._getKeyboardListeners.call(this).concat(this._visibleSubmenu)\r\n };\r\n _proto._createSubmenu = function(node, $rootItem) {\r\n var $submenuContainer = (0, _renderer.default)(\"
\").addClass(DX_CONTEXT_MENU_CLASS).appendTo($rootItem);\r\n var items = this._getChildNodes(node);\r\n var result = this._createComponent($submenuContainer, _ui2.default, (0, _extend.extend)(this._getSubmenuOptions(), {\r\n _dataAdapter: this._dataAdapter,\r\n _parentKey: node.internalFields.key,\r\n items: items,\r\n onHoverStart: this._clearTimeouts.bind(this),\r\n position: this.getSubmenuPosition($rootItem)\r\n }));\r\n this._attachSubmenuHandlers($rootItem, result);\r\n return result\r\n };\r\n _proto._getSubmenuOptions = function() {\r\n var _this4 = this;\r\n var $submenuTarget = (0, _renderer.default)(\"
\");\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n return {\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n target: $submenuTarget,\r\n orientation: this.option(\"orientation\"),\r\n selectionMode: this.option(\"selectionMode\"),\r\n cssClass: this.option(\"cssClass\"),\r\n selectByClick: this.option(\"selectByClick\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n showSubmenuMode: this.option(\"showSubmenuMode\"),\r\n displayExpr: this.option(\"displayExpr\"),\r\n disabledExpr: this.option(\"disabledExpr\"),\r\n selectedExpr: this.option(\"selectedExpr\"),\r\n itemsExpr: this.option(\"itemsExpr\"),\r\n onFocusedItemChanged: function(e) {\r\n if (!e.component.option(\"visible\")) {\r\n return\r\n }\r\n _this4.option(\"focusedElement\", e.component.option(\"focusedElement\"))\r\n },\r\n onSelectionChanged: this._nestedItemOnSelectionChangedHandler.bind(this),\r\n onItemClick: this._nestedItemOnItemClickHandler.bind(this),\r\n onItemRendered: this._nestedItemOnItemRenderedHandler.bind(this),\r\n onLeftFirstItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, PREVITEM_OPERATION),\r\n onLeftLastItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION),\r\n onCloseRootSubmenu: this._moveMainMenuFocus.bind(this, isMenuHorizontal ? PREVITEM_OPERATION : null),\r\n onExpandLastSubmenu: isMenuHorizontal ? this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION) : null\r\n }\r\n };\r\n _proto._getShowFirstSubmenuMode = function() {\r\n if (!this._isDesktopDevice()) {\r\n return \"onClick\"\r\n }\r\n var optionValue = this.option(\"showFirstSubmenuMode\");\r\n return (0, _type.isObject)(optionValue) ? optionValue.name : optionValue\r\n };\r\n _proto._moveMainMenuFocus = function(direction) {\r\n var $items = this._getAvailableItems();\r\n var itemCount = $items.length;\r\n var $currentItem = $items.filter(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).eq(0);\r\n var itemIndex = $items.index($currentItem);\r\n this._hideSubmenu(this._visibleSubmenu);\r\n itemIndex += direction === PREVITEM_OPERATION ? -1 : 1;\r\n if (itemIndex >= itemCount) {\r\n itemIndex = 0\r\n } else {\r\n if (itemIndex < 0) {\r\n itemIndex = itemCount - 1\r\n }\r\n }\r\n var $newItem = $items.eq(itemIndex);\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($newItem))\r\n };\r\n _proto._nestedItemOnSelectionChangedHandler = function(args) {\r\n var selectedItem = args.addedItems.length && args.addedItems[0];\r\n var submenu = _ui2.default.getInstance(args.element);\r\n var onSelectionChanged = this._actions.onSelectionChanged;\r\n onSelectionChanged(args);\r\n selectedItem && this._clearSelectionInSubmenus(selectedItem[0], submenu);\r\n this._clearRootSelection();\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem)\r\n };\r\n _proto._clearSelectionInSubmenus = function(item, targetSubmenu) {\r\n var _this5 = this;\r\n var cleanAllSubmenus = !arguments.length;\r\n (0, _iterator.each)(this._submenus, function(index, submenu) {\r\n var $submenu = submenu._itemContainer();\r\n var isOtherItem = !$submenu.is(targetSubmenu && targetSubmenu._itemContainer());\r\n var $selectedItem = $submenu.find(\".\".concat(_this5._selectedItemClass()));\r\n if (isOtherItem && $selectedItem.length || cleanAllSubmenus) {\r\n $selectedItem.removeClass(_this5._selectedItemClass());\r\n var selectedItemData = _this5._getItemData($selectedItem);\r\n if (selectedItemData) {\r\n selectedItemData.selected = false\r\n }\r\n submenu._clearSelectedItems()\r\n }\r\n })\r\n };\r\n _proto._clearRootSelection = function() {\r\n var $prevSelectedItem = this.$element().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).first().children().children().filter(\".\".concat(this._selectedItemClass()));\r\n if ($prevSelectedItem.length) {\r\n var prevSelectedItemData = this._getItemData($prevSelectedItem);\r\n prevSelectedItemData.selected = false;\r\n $prevSelectedItem.removeClass(this._selectedItemClass())\r\n }\r\n };\r\n _proto._nestedItemOnItemClickHandler = function(e) {\r\n this._actions.onItemClick(e)\r\n };\r\n _proto._nestedItemOnItemRenderedHandler = function(e) {\r\n this._actions.onItemRendered(e)\r\n };\r\n _proto._attachSubmenuHandlers = function($rootItem, submenu) {\r\n var _this6 = this;\r\n var $submenuOverlayContent = submenu.getOverlayContent();\r\n var submenus = $submenuOverlayContent.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuMouseLeaveName = (0, _index.addNamespace)(_hover.end, this.NAME + \"_submenu\");\r\n submenu.option({\r\n onShowing: this._submenuOnShowingHandler.bind(this, $rootItem, submenu),\r\n onShown: this._submenuOnShownHandler.bind(this, $rootItem, submenu),\r\n onHiding: this._submenuOnHidingHandler.bind(this, $rootItem, submenu),\r\n onHidden: this._submenuOnHiddenHandler.bind(this, $rootItem, submenu)\r\n });\r\n (0, _iterator.each)(submenus, function(index, submenu) {\r\n _events_engine.default.off(submenu, submenuMouseLeaveName);\r\n _events_engine.default.on(submenu, submenuMouseLeaveName, null, _this6._submenuMouseLeaveHandler.bind(_this6, $rootItem))\r\n })\r\n };\r\n _proto._submenuOnShowingHandler = function($rootItem, submenu) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n this._actions.onSubmenuShowing({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: submenu\r\n });\r\n $border.show();\r\n $rootItem.addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n };\r\n _proto._submenuOnShownHandler = function($rootItem, submenu) {\r\n this._actions.onSubmenuShown({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: submenu\r\n })\r\n };\r\n _proto._submenuOnHidingHandler = function($rootItem, submenu, eventArgs) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n var args = eventArgs;\r\n args.rootItem = (0, _element.getPublicElement)($rootItem);\r\n args.submenu = submenu;\r\n this._actions.onSubmenuHiding(args);\r\n eventArgs = args;\r\n if (!eventArgs.cancel) {\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n $border.hide();\r\n $rootItem.removeClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n };\r\n _proto._submenuOnHiddenHandler = function($rootItem, submenu) {\r\n this._actions.onSubmenuHidden({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: submenu\r\n })\r\n };\r\n _proto._submenuMouseLeaveHandler = function($rootItem, eventArgs) {\r\n var target = (0, _renderer.default)(eventArgs.relatedTarget).parents(\".\".concat(DX_CONTEXT_MENU_CLASS))[0];\r\n var contextMenu = this._getSubmenuByRootElement($rootItem).getOverlayContent()[0];\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && target !== contextMenu) {\r\n this._clearTimeouts();\r\n setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"))\r\n }\r\n };\r\n _proto._hideSubmenuAfterTimeout = function() {\r\n if (!this._visibleSubmenu) {\r\n return\r\n }\r\n var isRootItemHovered = (0, _renderer.default)(this._visibleSubmenu.$element().context).hasClass(DX_STATE_HOVER_CLASS);\r\n var isSubmenuItemHovered = this._visibleSubmenu.getOverlayContent().find(\".\".concat(DX_STATE_HOVER_CLASS)).length;\r\n var hoveredElementFromSubMenu = this._visibleSubmenu.getOverlayContent().get(0).querySelector(\":hover\");\r\n if (!hoveredElementFromSubMenu && !isSubmenuItemHovered && !isRootItemHovered) {\r\n this._visibleSubmenu.hide()\r\n }\r\n };\r\n _proto._getSubmenuByRootElement = function($rootItem) {\r\n if (!$rootItem) {\r\n return false\r\n }\r\n var $submenu = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CLASS));\r\n return $submenu.length && _ui2.default.getInstance($submenu)\r\n };\r\n _proto.getSubmenuPosition = function($rootItem) {\r\n var isHorizontalMenu = this._isMenuHorizontal();\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var submenuPosition = {\r\n collision: \"flip\",\r\n of: $rootItem\r\n };\r\n switch (submenuDirection) {\r\n case \"leftortop\":\r\n submenuPosition.at = \"left top\";\r\n submenuPosition.my = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n break;\r\n case \"rightorbottom\":\r\n submenuPosition.at = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n submenuPosition.my = \"left top\";\r\n break;\r\n default:\r\n if (isHorizontalMenu) {\r\n submenuPosition.at = rtlEnabled ? \"right bottom\" : \"left bottom\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n } else {\r\n submenuPosition.at = rtlEnabled ? \"left top\" : \"right top\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n }\r\n }\r\n return submenuPosition\r\n };\r\n _proto._renderBorderElement = function($item) {\r\n (0, _renderer.default)(\"
\").appendTo($item).addClass(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS).hide()\r\n };\r\n _proto._itemPointerDownHandler = function(e) {\r\n var $target = (0, _renderer.default)(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n if ($closestItem.hasClass(\"dx-menu-item-has-submenu\")) {\r\n this.option(\"focusedElement\", null);\r\n return\r\n }\r\n _MenuBase.prototype._itemPointerDownHandler.call(this, e)\r\n };\r\n _proto._hoverStartHandler = function(e) {\r\n var mouseMoveEventName = (0, _index.addNamespace)(_pointer.default.move, this.NAME);\r\n var $item = this._getItemElementByEventArgs(e);\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n var isSelectionActive = (0, _type.isDefined)(e.buttons) && 1 === e.buttons || !(0, _type.isDefined)(e.buttons) && 1 === e.which;\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n _events_engine.default.off($item, mouseMoveEventName);\r\n if (!this._hasChildren(node)) {\r\n this._showSubmenuTimer = setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"));\r\n return\r\n }\r\n if (\"onHover\" === this._getShowFirstSubmenuMode() && !isSelectionActive) {\r\n var submenu = this._getSubmenuByElement($item);\r\n this._clearTimeouts();\r\n if (!submenu.isOverlayVisible()) {\r\n _events_engine.default.on($item, mouseMoveEventName, this._itemMouseMoveHandler.bind(this));\r\n this._showSubmenuTimer = this._getDelay(\"hide\")\r\n }\r\n }\r\n };\r\n _proto._hoverEndHandler = function(eventArg) {\r\n var _this7 = this;\r\n var $item = this._getItemElementByEventArgs(eventArg);\r\n var relatedTarget = (0, _renderer.default)(eventArg.relatedTarget);\r\n _MenuBase.prototype._hoverEndHandler.call(this, eventArg);\r\n this._clearTimeouts();\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n if (relatedTarget.hasClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)) {\r\n return\r\n }\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && !relatedTarget.hasClass(DX_MENU_ITEMS_CONTAINER_CLASS)) {\r\n this._hideSubmenuTimer = setTimeout(function() {\r\n _this7._hideSubmenuAfterTimeout()\r\n }, this._getDelay(\"hide\"))\r\n }\r\n };\r\n _proto._hideVisibleSubmenu = function() {\r\n if (!this._visibleSubmenu) {\r\n return false\r\n }\r\n this._hideSubmenu(this._visibleSubmenu);\r\n return true\r\n };\r\n _proto._showSubmenu = function($itemElement) {\r\n var submenu = this._getSubmenuByElement($itemElement);\r\n if (this._visibleSubmenu !== submenu) {\r\n this._hideVisibleSubmenu()\r\n }\r\n if (submenu) {\r\n this._clearTimeouts();\r\n submenu.show();\r\n this.option(\"focusedElement\", submenu.option(\"focusedElement\"))\r\n }\r\n this._visibleSubmenu = submenu;\r\n this._hoveredRootItem = $itemElement\r\n };\r\n _proto._hideSubmenu = function(submenu) {\r\n submenu && submenu.hide();\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n this._hoveredRootItem = null\r\n };\r\n _proto._itemMouseMoveHandler = function(e) {\r\n var _this8 = this;\r\n if (e.pointers && e.pointers.length) {\r\n return\r\n }\r\n var $item = (0, _renderer.default)(e.currentTarget);\r\n if (!(0, _type.isDefined)(this._showSubmenuTimer)) {\r\n return\r\n }\r\n this._clearTimeouts();\r\n this._showSubmenuTimer = setTimeout(function() {\r\n var submenu = _this8._getSubmenuByElement($item);\r\n if (submenu && !submenu.isOverlayVisible()) {\r\n _this8._showSubmenu($item)\r\n }\r\n }, this._getDelay(\"show\"))\r\n };\r\n _proto._clearTimeouts = function() {\r\n clearTimeout(this._hideSubmenuTimer);\r\n clearTimeout(this._showSubmenuTimer)\r\n };\r\n _proto._getSubmenuByElement = function($itemElement, itemData) {\r\n var submenu = this._getSubmenuByRootElement($itemElement);\r\n if (submenu) {\r\n return submenu\r\n } else {\r\n itemData = itemData || this._getItemData($itemElement);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n return this._hasChildren(node) && this._renderSubmenuItems(node, $itemElement)\r\n }\r\n };\r\n _proto._updateSubmenuVisibilityOnClick = function(actionArgs) {\r\n var args = actionArgs.args.length && actionArgs.args[0];\r\n if (!args || this._disabledGetter(args.itemData)) {\r\n return\r\n }\r\n var $itemElement = (0, _renderer.default)(args.itemElement);\r\n var currentSubmenu = this._getSubmenuByElement($itemElement, args.itemData);\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (this._visibleSubmenu) {\r\n if (this._visibleSubmenu === currentSubmenu) {\r\n if (\"onClick\" === this.option(\"showFirstSubmenuMode\")) {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n return\r\n } else {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n }\r\n if (!currentSubmenu) {\r\n return\r\n }\r\n if (!currentSubmenu.isOverlayVisible()) {\r\n this._showSubmenu($itemElement);\r\n return\r\n }\r\n };\r\n _proto._optionChanged = function(args) {\r\n if (ACTIONS.indexOf(args.name) >= 0) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"orientation\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"showFirstSubmenuMode\":\r\n case \"hideSubmenuOnMouseLeave\":\r\n break;\r\n case \"showSubmenuMode\":\r\n this._changeSubmenusOption(args.name, args.value);\r\n break;\r\n case \"adaptivityEnabled\":\r\n args.value ? this._initAdaptivity() : this._removeAdaptivity();\r\n break;\r\n case \"width\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(args.name, args.value);\r\n this._overlay.option(args.name, args.value)\r\n }\r\n _MenuBase.prototype._optionChanged.call(this, args);\r\n this._dimensionChanged();\r\n break;\r\n case \"animation\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(\"animationEnabled\", !!args.value)\r\n }\r\n _MenuBase.prototype._optionChanged.call(this, args);\r\n break;\r\n default:\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(args.name, args.value)\r\n }\r\n _MenuBase.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto._changeSubmenusOption = function(name, value) {\r\n (0, _iterator.each)(this._submenus, function(index, submenu) {\r\n submenu.option(name, value)\r\n })\r\n };\r\n _proto.selectItem = function(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n _MenuBase.prototype.selectItem.call(this, itemElement)\r\n };\r\n _proto.unselectItem = function(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n _MenuBase.prototype.selectItem.call(this, itemElement)\r\n };\r\n return Menu\r\n}(_ui.default);\r\n(0, _component_registrator.default)(\"dxMenu\", Menu);\r\nvar _default = Menu;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.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 _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.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_uiData_grid.default.registerModule(\"rowDragging\", _uiGrid_core.default);\r\n","/*!\n * devextreme-vue\n * Version: 20.2.7\n * Build date: Thu Apr 22 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxOptions = exports.DxFormat = exports.DxButton = exports.DxNumberBox = void 0;\nvar number_box_1 = require(\"devextreme/ui/number_box\");\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxNumberBox = index_1.createComponent({\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n buttons: Array,\n disabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n format: [Object, Function, String],\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n inputAttr: Object,\n invalidValueMessage: String,\n isValid: Boolean,\n max: Number,\n min: Number,\n mode: String,\n name: String,\n onChange: Function,\n onContentReady: Function,\n onCopy: Function,\n onCut: Function,\n onDisposing: Function,\n onEnterKey: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onInput: Function,\n onKeyDown: Function,\n onKeyUp: Function,\n onOptionChanged: Function,\n onPaste: Function,\n onValueChanged: Function,\n placeholder: String,\n readOnly: Boolean,\n rtlEnabled: Boolean,\n showClearButton: Boolean,\n showSpinButtons: Boolean,\n step: Number,\n stylingMode: String,\n tabIndex: Number,\n text: String,\n useLargeSpinButtons: Boolean,\n validationError: Object,\n validationErrors: Array,\n validationMessageMode: String,\n validationStatus: String,\n value: Number,\n valueChangeEvent: String,\n visible: Boolean,\n width: [Function, Number, String]\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:buttons\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:format\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:inputAttr\": null,\n \"update:invalidValueMessage\": null,\n \"update:isValid\": null,\n \"update:max\": null,\n \"update:min\": null,\n \"update:mode\": null,\n \"update:name\": null,\n \"update:onChange\": null,\n \"update:onContentReady\": null,\n \"update:onCopy\": null,\n \"update:onCut\": null,\n \"update:onDisposing\": null,\n \"update:onEnterKey\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onInput\": null,\n \"update:onKeyDown\": null,\n \"update:onKeyUp\": null,\n \"update:onOptionChanged\": null,\n \"update:onPaste\": null,\n \"update:onValueChanged\": null,\n \"update:placeholder\": null,\n \"update:readOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:showClearButton\": null,\n \"update:showSpinButtons\": null,\n \"update:step\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:text\": null,\n \"update:useLargeSpinButtons\": null,\n \"update:validationError\": null,\n \"update:validationErrors\": null,\n \"update:validationMessageMode\": null,\n \"update:validationStatus\": null,\n \"update:value\": null,\n \"update:valueChangeEvent\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n model: { prop: \"value\", event: \"update:value\" },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = number_box_1.default;\n this.$_expectedChildren = {\n button: { isCollectionItem: true, optionName: \"buttons\" },\n format: { isCollectionItem: false, optionName: \"format\" }\n };\n }\n});\nexports.DxNumberBox = DxNumberBox;\nvar DxButton = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:location\": null,\n \"update:name\": null,\n \"update:options\": null,\n },\n props: {\n location: String,\n name: String,\n options: Object\n }\n});\nexports.DxButton = DxButton;\nDxButton.$_optionName = \"buttons\";\nDxButton.$_isCollectionItem = true;\nDxButton.$_expectedChildren = {\n options: { isCollectionItem: false, optionName: \"options\" }\n};\nvar DxFormat = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:currency\": null,\n \"update:formatter\": null,\n \"update:parser\": null,\n \"update:precision\": null,\n \"update:type\": null,\n },\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String\n }\n});\nexports.DxFormat = DxFormat;\nDxFormat.$_optionName = \"format\";\nvar DxOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:bindingOptions\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:icon\": null,\n \"update:onClick\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:rtlEnabled\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:type\": null,\n \"update:useSubmitBehavior\": null,\n \"update:validationGroup\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n bindingOptions: Object,\n disabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n icon: String,\n onClick: Function,\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n rtlEnabled: Boolean,\n stylingMode: String,\n tabIndex: Number,\n template: {},\n text: String,\n type: String,\n useSubmitBehavior: Boolean,\n validationGroup: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxOptions = DxOptions;\nDxOptions.$_optionName = \"options\";\nexports.default = DxNumberBox;\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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 _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _query = _interopRequireDefault(require(\"../../data/query\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SEARCH_PANEL_CLASS = \"search-panel\";\r\nvar SEARCH_TEXT_CLASS = \"search-text\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar FILTERING_TIMEOUT = 700;\r\n\r\nfunction allowSearch(column) {\r\n return (0, _type.isDefined)(column.allowSearch) ? column.allowSearch : column.allowFiltering\r\n}\r\n\r\nfunction parseValue(column, text) {\r\n var lookup = column.lookup;\r\n if (!column.parseValue) {\r\n return text\r\n }\r\n if (lookup) {\r\n return column.parseValue.call(lookup, text)\r\n }\r\n return column.parseValue(text)\r\n}\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n searchPanel: {\r\n visible: false,\r\n width: 160,\r\n placeholder: _message.default.format(\"dxDataGrid-searchPanelPlaceholder\"),\r\n highlightSearchText: true,\r\n highlightCaseSensitive: false,\r\n text: \"\",\r\n searchVisibleColumnsOnly: false\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n data: function() {\r\n var calculateSearchFilter = function(that, text) {\r\n var i;\r\n var column;\r\n var columns = that._columnsController.getColumns();\r\n var searchVisibleColumnsOnly = that.option(\"searchPanel.searchVisibleColumnsOnly\");\r\n var lookup;\r\n var filters = [];\r\n if (!text) {\r\n return null\r\n }\r\n\r\n function onQueryDone(items) {\r\n var valueGetter = (0, _data.compileGetter)(lookup.valueExpr);\r\n for (var _i = 0; _i < items.length; _i++) {\r\n var value = valueGetter(items[_i]);\r\n filters.push(column.createFilterExpression(value, null, \"search\"))\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n if (searchVisibleColumnsOnly && !column.visible) {\r\n continue\r\n }\r\n if (allowSearch(column) && column.calculateFilterExpression) {\r\n lookup = column.lookup;\r\n var filterValue = parseValue(column, text);\r\n if (lookup && lookup.items) {\r\n (0, _query.default)(lookup.items).filter(column.createFilterExpression.call({\r\n dataField: lookup.displayExpr,\r\n dataType: lookup.dataType,\r\n calculateFilterExpression: column.calculateFilterExpression\r\n }, filterValue, null, \"search\")).enumerate().done(onQueryDone)\r\n } else {\r\n if (void 0 !== filterValue) {\r\n filters.push(column.createFilterExpression(filterValue, null, \"search\"))\r\n }\r\n }\r\n }\r\n }\r\n return _uiGrid_core.default.combineFilters(filters, \"or\")\r\n };\r\n return {\r\n publicMethods: function() {\r\n return this.callBase().concat([\"searchByText\"])\r\n },\r\n _calculateAdditionalFilter: function() {\r\n var that = this;\r\n var filter = that.callBase();\r\n var searchFilter = calculateSearchFilter(that, that.option(\"searchPanel.text\"));\r\n return _uiGrid_core.default.combineFilters([filter, searchFilter])\r\n },\r\n searchByText: function(text) {\r\n this.option(\"searchPanel.text\", text)\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n switch (args.fullName) {\r\n case \"searchPanel.text\":\r\n case \"searchPanel\":\r\n that._applyFilter();\r\n args.handled = true;\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n }\r\n }\r\n }()\r\n },\r\n views: {\r\n headerPanel: function() {\r\n var getSearchPanelOptions = function(that) {\r\n return that.option(\"searchPanel\")\r\n };\r\n return {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._prepareSearchItem(items)\r\n },\r\n _prepareSearchItem: function(items) {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n var searchPanelOptions = getSearchPanelOptions(that);\r\n if (searchPanelOptions && searchPanelOptions.visible) {\r\n var toolbarItem = {\r\n template: function(data, index, container) {\r\n var $search = (0, _renderer.default)(\"
\").addClass(that.addWidgetPrefix(SEARCH_PANEL_CLASS)).appendTo(container);\r\n that.getController(\"editorFactory\").createEditor($search, {\r\n width: searchPanelOptions.width,\r\n placeholder: searchPanelOptions.placeholder,\r\n parentType: \"searchPanel\",\r\n value: that.option(\"searchPanel.text\"),\r\n updateValueTimeout: FILTERING_TIMEOUT,\r\n setValue: function(value) {\r\n dataController.searchByText(value)\r\n },\r\n editorOptions: {\r\n inputAttr: {\r\n \"aria-label\": _message.default.format(\"\".concat(that.component.NAME, \"-ariaSearchInGrid\"))\r\n }\r\n }\r\n });\r\n that.resize()\r\n },\r\n name: \"searchPanel\",\r\n location: \"after\",\r\n locateInMenu: \"never\",\r\n sortIndex: 40\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n getSearchTextEditor: function() {\r\n var that = this;\r\n var $element = that.element();\r\n var $searchPanel = $element.find(\".\" + that.addWidgetPrefix(SEARCH_PANEL_CLASS)).filter(function() {\r\n return (0, _renderer.default)(this).closest(\".\" + that.addWidgetPrefix(HEADER_PANEL_CLASS)).is($element)\r\n });\r\n if ($searchPanel.length) {\r\n return $searchPanel.dxTextBox(\"instance\")\r\n }\r\n return null\r\n },\r\n isVisible: function() {\r\n var searchPanelOptions = getSearchPanelOptions(this);\r\n return this.callBase() || searchPanelOptions && searchPanelOptions.visible\r\n },\r\n optionChanged: function(args) {\r\n if (\"searchPanel\" === args.name) {\r\n if (\"searchPanel.text\" === args.fullName) {\r\n var editor = this.getSearchTextEditor();\r\n if (editor) {\r\n editor.option(\"value\", args.value)\r\n }\r\n } else {\r\n this._invalidate()\r\n }\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n }(),\r\n rowsView: {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._searchParams = []\r\n },\r\n _getFormattedSearchText: function(column, searchText) {\r\n var value = parseValue(column, searchText);\r\n var formatOptions = _uiGrid_core.default.getFormatOptionsByColumn(column, \"search\");\r\n return _uiGrid_core.default.formatValue(value, formatOptions)\r\n },\r\n _getStringNormalizer: function() {\r\n var isCaseSensitive = this.option(\"searchPanel.highlightCaseSensitive\");\r\n return function(str) {\r\n return isCaseSensitive ? str : str.toLowerCase()\r\n }\r\n },\r\n _findHighlightingTextNodes: function(column, cellElement, searchText) {\r\n var _$items;\r\n var that = this;\r\n var $parent = cellElement.parent();\r\n var $items;\r\n var stringNormalizer = this._getStringNormalizer();\r\n var normalizedSearchText = stringNormalizer(searchText);\r\n if (!$parent.length) {\r\n $parent = (0, _renderer.default)(\"
\").append(cellElement)\r\n } else {\r\n if (column) {\r\n if (column.groupIndex >= 0 && !column.showWhenGrouped) {\r\n $items = cellElement\r\n } else {\r\n var columnIndex = that._columnsController.getVisibleIndex(column.index);\r\n $items = $parent.children(\"td\").eq(columnIndex).find(\"*\")\r\n }\r\n }\r\n }\r\n $items = null !== (_$items = $items) && void 0 !== _$items && _$items.length ? $items : $parent.find(\"*\");\r\n $items = $items.filter(function(_, element) {\r\n var $contents = (0, _renderer.default)(element).contents();\r\n for (var i = 0; i < $contents.length; i++) {\r\n var node = $contents.get(i);\r\n if (3 === node.nodeType) {\r\n return stringNormalizer(node.textContent || node.nodeValue).indexOf(normalizedSearchText) > -1\r\n }\r\n return false\r\n }\r\n });\r\n return $items\r\n },\r\n _highlightSearchTextCore: function($textNode, searchText) {\r\n var that = this;\r\n var $searchTextSpan = (0, _renderer.default)(\"\").addClass(that.addWidgetPrefix(SEARCH_TEXT_CLASS));\r\n var text = $textNode.text();\r\n var firstContentElement = $textNode[0];\r\n var stringNormalizer = this._getStringNormalizer();\r\n var index = stringNormalizer(text).indexOf(stringNormalizer(searchText));\r\n if (index >= 0) {\r\n if (firstContentElement.textContent) {\r\n firstContentElement.textContent = text.substr(0, index)\r\n } else {\r\n firstContentElement.nodeValue = text.substr(0, index)\r\n }\r\n $textNode.after($searchTextSpan.text(text.substr(index, searchText.length)));\r\n $textNode = (0, _renderer.default)(_dom_adapter.default.createTextNode(text.substr(index + searchText.length))).insertAfter($searchTextSpan);\r\n return that._highlightSearchTextCore($textNode, searchText)\r\n }\r\n },\r\n _highlightSearchText: function(cellElement, isEquals, column) {\r\n var that = this;\r\n var stringNormalizer = this._getStringNormalizer();\r\n var searchText = that.option(\"searchPanel.text\");\r\n if (isEquals && column) {\r\n searchText = searchText && that._getFormattedSearchText(column, searchText)\r\n }\r\n if (searchText && that.option(\"searchPanel.highlightSearchText\")) {\r\n var textNodes = that._findHighlightingTextNodes(column, cellElement, searchText);\r\n (0, _iterator.each)(textNodes, function(_, element) {\r\n (0, _iterator.each)((0, _renderer.default)(element).contents(), function(_, textNode) {\r\n if (isEquals) {\r\n if (stringNormalizer((0, _renderer.default)(textNode).text()) === stringNormalizer(searchText)) {\r\n (0, _renderer.default)(this).replaceWith((0, _renderer.default)(\"\").addClass(that.addWidgetPrefix(SEARCH_TEXT_CLASS)).text((0, _renderer.default)(textNode).text()))\r\n }\r\n } else {\r\n that._highlightSearchTextCore((0, _renderer.default)(textNode), searchText)\r\n }\r\n })\r\n })\r\n }\r\n },\r\n _renderCore: function() {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"rowTemplate\")) {\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n clearTimeout(this._highlightTimer);\r\n this._highlightTimer = setTimeout(function() {\r\n this._highlightSearchText(this.getTableElement())\r\n }.bind(this))\r\n } else {\r\n this._highlightSearchText(this.getTableElement())\r\n }\r\n }\r\n },\r\n _updateCell: function($cell, parameters) {\r\n var column = parameters.column;\r\n var dataType = column.lookup && column.lookup.dataType || column.dataType;\r\n var isEquals = \"string\" !== dataType;\r\n if (allowSearch(column) && !parameters.isOnForm) {\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n if (!this._searchParams.length) {\r\n clearTimeout(this._highlightTimer);\r\n this._highlightTimer = setTimeout(function() {\r\n this._searchParams.forEach(function(params) {\r\n this._highlightSearchText.apply(this, params)\r\n }.bind(this));\r\n this._searchParams = []\r\n }.bind(this))\r\n }\r\n this._searchParams.push([$cell, isEquals, column])\r\n } else {\r\n this._highlightSearchText($cell, isEquals, column)\r\n }\r\n }\r\n this.callBase($cell, parameters)\r\n },\r\n dispose: function() {\r\n clearTimeout(this._highlightTimer);\r\n this.callBase()\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.cell_alignment_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar cellAlignmentHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if ((0, _type.isDefined)(sourceObj)) {\r\n result = {\r\n vertical: sourceObj.vertical,\r\n wrapText: sourceObj.wrapText,\r\n horizontal: sourceObj.horizontal\r\n };\r\n if (cellAlignmentHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if ((0, _type.isDefined)(source)) {\r\n result = {};\r\n if (void 0 !== source.horizontal) {\r\n result.horizontal = source.horizontal\r\n }\r\n if (void 0 !== source.vertical) {\r\n result.vertical = source.vertical\r\n }\r\n if (void 0 !== source.wrapText) {\r\n result.wrapText = source.wrapText\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return cellAlignmentHelper.isEmpty(leftTag) && cellAlignmentHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && leftTag.vertical === rightTag.vertical && leftTag.wrapText === rightTag.wrapText && leftTag.horizontal === rightTag.horizontal\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || !(0, _type.isDefined)(tag.vertical) && !(0, _type.isDefined)(tag.wrapText) && !(0, _type.isDefined)(tag.horizontal)\r\n },\r\n toXml: function(tag) {\r\n return _excel.default.toXml(\"alignment\", {\r\n vertical: tag.vertical,\r\n wrapText: (0, _type.isDefined)(tag.wrapText) ? Number(tag.wrapText) : void 0,\r\n horizontal: tag.horizontal\r\n })\r\n }\r\n};\r\nvar _default = cellAlignmentHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/toolbar/ui.toolbar.strategy.drop_down_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\nexports.default = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiToolbar = _interopRequireDefault(require(\"./ui.toolbar.strategy\"));\r\nvar _uiToolbar2 = _interopRequireDefault(require(\"./ui.toolbar.menu\"));\r\nvar _drop_down_menu = _interopRequireDefault(require(\"../drop_down_menu\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar MENU_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar DropDownMenuStrategy = _uiToolbar.default.inherit({\r\n NAME: \"dropDownMenu\",\r\n render: function() {\r\n if (!this._hasVisibleMenuItems()) {\r\n return\r\n }\r\n this._renderMenuButtonContainer();\r\n this._renderWidget()\r\n },\r\n renderMenuItems: function() {\r\n if (!this._menu) {\r\n this.render()\r\n }\r\n this.callBase();\r\n if (this._menu && !this._menu.option(\"items\").length) {\r\n this._menu.close()\r\n }\r\n },\r\n _menuWidgetClass: function() {\r\n return _drop_down_menu.default\r\n },\r\n _widgetOptions: function() {\r\n var that = this;\r\n return (0, _extend.extend)(this.callBase(), {\r\n deferRendering: true,\r\n container: that._toolbar.option(\"menuContainer\"),\r\n menuWidget: _uiToolbar2.default,\r\n onOptionChanged: function(e) {\r\n if (\"items\" === e.name) {\r\n that._updateMenuVisibility(e.value)\r\n }\r\n },\r\n popupPosition: {\r\n at: \"bottom right\",\r\n my: \"top right\"\r\n }\r\n })\r\n },\r\n _updateMenuVisibility: function(menuItems) {\r\n var items = menuItems || this._getMenuItems();\r\n var isMenuVisible = items.length && this._hasVisibleMenuItems(items);\r\n this._toggleMenuVisibility(isMenuVisible)\r\n },\r\n _toggleMenuVisibility: function(value) {\r\n if (!this._menuContainer()) {\r\n return\r\n }\r\n this._menuContainer().toggleClass(MENU_INVISIBLE_CLASS, !value)\r\n },\r\n _menuContainer: function() {\r\n return this._$menuButtonContainer\r\n }\r\n});\r\nvar _default = DropDownMenuStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.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.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\nvar _variable_wrapper = _interopRequireDefault(require(\"../../core/utils/variable_wrapper\"));\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _config = _interopRequireDefault(require(\"../../core/config\"));\r\nvar _object = require(\"../../core/utils/object\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _inflector = require(\"../../core/utils/inflector\");\r\nvar _date_serialization = _interopRequireDefault(require(\"../../core/utils/date_serialization\"));\r\nvar _number = _interopRequireDefault(require(\"../../localization/number\"));\r\nvar _date = _interopRequireDefault(require(\"../../localization/date\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _abstract_store = _interopRequireDefault(require(\"../../data/abstract_store\"));\r\nvar _data_source = require(\"../../data/data_source/data_source\");\r\nvar _utils = require(\"../../data/data_source/utils\");\r\nvar _filtering = _interopRequireDefault(require(\"../shared/filtering\"));\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 ownKeys(object, enumerableOnly) {\r\n var keys = Object.keys(object);\r\n if (Object.getOwnPropertySymbols) {\r\n var symbols = Object.getOwnPropertySymbols(object);\r\n if (enumerableOnly) {\r\n symbols = symbols.filter(function(sym) {\r\n return Object.getOwnPropertyDescriptor(object, sym).enumerable\r\n })\r\n }\r\n keys.push.apply(keys, symbols)\r\n }\r\n return keys\r\n}\r\n\r\nfunction _objectSpread(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = null != arguments[i] ? arguments[i] : {};\r\n if (i % 2) {\r\n ownKeys(Object(source), true).forEach(function(key) {\r\n _defineProperty(target, key, source[key])\r\n })\r\n } else {\r\n if (Object.getOwnPropertyDescriptors) {\r\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source))\r\n } else {\r\n ownKeys(Object(source)).forEach(function(key) {\r\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\r\n })\r\n }\r\n }\r\n }\r\n return target\r\n}\r\n\r\nfunction _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\nvar USER_STATE_FIELD_NAMES_15_1 = [\"filterValues\", \"filterType\", \"fixed\", \"fixedPosition\"];\r\nvar USER_STATE_FIELD_NAMES = [\"visibleIndex\", \"dataField\", \"name\", \"dataType\", \"width\", \"visible\", \"sortOrder\", \"lastSortOrder\", \"sortIndex\", \"groupIndex\", \"filterValue\", \"selectedFilterOperation\", \"added\"].concat(USER_STATE_FIELD_NAMES_15_1);\r\nvar IGNORE_COLUMN_OPTION_NAMES = {\r\n visibleWidth: true,\r\n bestFitWidth: true,\r\n bufferedFilterValue: true\r\n};\r\nvar COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\nvar GROUP_COMMAND_COLUMN_NAME = \"groupExpand\";\r\nvar regExp = /columns\\[(\\d+)\\]\\.?/gi;\r\nvar globalColumnId = 1;\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n commonColumnSettings: {\r\n allowFiltering: true,\r\n allowHiding: true,\r\n allowSorting: true,\r\n allowEditing: true,\r\n encodeHtml: true,\r\n trueText: _message.default.format(\"dxDataGrid-trueText\"),\r\n falseText: _message.default.format(\"dxDataGrid-falseText\")\r\n },\r\n allowColumnReordering: false,\r\n allowColumnResizing: false,\r\n columnResizingMode: \"nextColumn\",\r\n columnMinWidth: void 0,\r\n columnWidth: void 0,\r\n adaptColumnWidthByRatio: true,\r\n columns: void 0,\r\n regenerateColumnsByVisibleItems: false,\r\n customizeColumns: null,\r\n dateSerializationFormat: void 0\r\n }\r\n },\r\n controllers: {\r\n columns: _uiGrid_core.default.Controller.inherit(function() {\r\n var DEFAULT_COLUMN_OPTIONS = {\r\n visible: true,\r\n showInColumnChooser: true\r\n };\r\n var DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"]\r\n };\r\n var COLUMN_INDEX_OPTIONS = {\r\n visibleIndex: true,\r\n groupIndex: true,\r\n grouped: true,\r\n sortIndex: true,\r\n sortOrder: true\r\n };\r\n var GROUP_LOCATION = \"group\";\r\n var COLUMN_CHOOSER_LOCATION = \"columnChooser\";\r\n var setFilterOperationsAsDefaultValues = function(column) {\r\n column.filterOperations = column.defaultFilterOperations\r\n };\r\n var createColumn = function(that, columnOptions, userStateColumnOptions, bandColumn) {\r\n var commonColumnOptions = {};\r\n if (columnOptions) {\r\n if ((0, _type.isString)(columnOptions)) {\r\n columnOptions = {\r\n dataField: columnOptions\r\n }\r\n }\r\n that.setName(columnOptions);\r\n var result = {};\r\n if (columnOptions.command) {\r\n result = (0, _object.deepExtendArraySafe)(commonColumnOptions, columnOptions)\r\n } else {\r\n commonColumnOptions = that.getCommonSettings(columnOptions);\r\n if (userStateColumnOptions && userStateColumnOptions.name && userStateColumnOptions.dataField) {\r\n columnOptions = (0, _extend.extend)({}, columnOptions, {\r\n dataField: userStateColumnOptions.dataField\r\n })\r\n }\r\n var calculatedColumnOptions = that._createCalculatedColumnOptions(columnOptions, bandColumn);\r\n if (!columnOptions.type) {\r\n result = {\r\n headerId: \"dx-col-\".concat(globalColumnId++)\r\n }\r\n }\r\n result = (0, _object.deepExtendArraySafe)(result, DEFAULT_COLUMN_OPTIONS);\r\n (0, _object.deepExtendArraySafe)(result, commonColumnOptions);\r\n (0, _object.deepExtendArraySafe)(result, calculatedColumnOptions);\r\n (0, _object.deepExtendArraySafe)(result, columnOptions);\r\n (0, _object.deepExtendArraySafe)(result, {\r\n selector: null\r\n })\r\n }\r\n if (columnOptions.filterOperations === columnOptions.defaultFilterOperations) {\r\n setFilterOperationsAsDefaultValues(result)\r\n }\r\n return result\r\n }\r\n };\r\n var createColumnsFromOptions = function createColumnsFromOptions(that, columnsOptions, bandColumn) {\r\n var result = [];\r\n if (columnsOptions) {\r\n (0, _iterator.each)(columnsOptions, function(index, columnOptions) {\r\n var userStateColumnOptions = that._columnsUserState && checkUserStateColumn(columnOptions, that._columnsUserState[index]) && that._columnsUserState[index];\r\n var column = createColumn(that, columnOptions, userStateColumnOptions, bandColumn);\r\n if (column) {\r\n if (bandColumn) {\r\n column.ownerBand = bandColumn\r\n }\r\n result.push(column);\r\n if (column.columns) {\r\n result = result.concat(createColumnsFromOptions(that, column.columns, column));\r\n delete column.columns;\r\n column.hasColumns = true\r\n }\r\n }\r\n })\r\n }\r\n return result\r\n };\r\n var getParentBandColumns = function(columnIndex, columnParentByIndex) {\r\n var result = [];\r\n var parent = columnParentByIndex[columnIndex];\r\n while (parent) {\r\n result.unshift(parent);\r\n columnIndex = parent.index;\r\n parent = columnParentByIndex[columnIndex]\r\n }\r\n return result\r\n };\r\n var _getChildrenByBandColumn = function(columnIndex, columnChildrenByIndex, recursive) {\r\n var result = [];\r\n var children = columnChildrenByIndex[columnIndex];\r\n if (children) {\r\n for (var i = 0; i < children.length; i++) {\r\n var column = children[i];\r\n if (!(0, _type.isDefined)(column.groupIndex) || column.showWhenGrouped) {\r\n result.push(column);\r\n if (recursive && column.isBand) {\r\n result = result.concat(_getChildrenByBandColumn(column.index, columnChildrenByIndex, recursive))\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n };\r\n var getColumnByIndexes = function(that, columnIndexes) {\r\n var result;\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(column) {\r\n var ownerBand = result ? result.index : void 0;\r\n return column.ownerBand === ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n result = that._columns[columnIndexes[0]]\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n for (var i = 0; i < columnIndexes.length; i++) {\r\n result = columns[columnIndexes[i]];\r\n if (result) {\r\n columns = that._columns.filter(callbackFilter)\r\n }\r\n }\r\n }\r\n return result\r\n };\r\n var getColumnFullPath = function(that, column) {\r\n var result = [];\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(item) {\r\n return item.ownerBand === column.ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n var columnIndex = that._columns.indexOf(column);\r\n if (columnIndex >= 0) {\r\n result = [\"columns[\".concat(columnIndex, \"]\")]\r\n }\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n while (columns.length && columns.indexOf(column) !== -1) {\r\n result.unshift(\"columns[\".concat(columns.indexOf(column), \"]\"));\r\n column = bandColumnsCache.columnParentByIndex[column.index];\r\n columns = column ? that._columns.filter(callbackFilter) : []\r\n }\r\n }\r\n return result.join(\".\")\r\n };\r\n var calculateColspan = function calculateColspan(that, columnID) {\r\n var colspan = 0;\r\n var columns = that.getChildrenByBandColumn(columnID, true);\r\n (0, _iterator.each)(columns, function(_, column) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index);\r\n colspan += column.colspan || 1\r\n } else {\r\n colspan += 1\r\n }\r\n });\r\n return colspan\r\n };\r\n var processBandColumns = function(that, columns, bandColumnsCache) {\r\n var rowspan;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (column.visible || column.command) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index)\r\n }\r\n if (!column.isBand || !column.colspan) {\r\n rowspan = that.getRowCount();\r\n if (!column.command && (!(0, _type.isDefined)(column.groupIndex) || column.showWhenGrouped)) {\r\n rowspan -= getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex).length\r\n }\r\n if (rowspan > 1) {\r\n column.rowspan = rowspan\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var getValueDataType = function(value) {\r\n var dataType = (0, _type.type)(value);\r\n if (\"string\" !== dataType && \"boolean\" !== dataType && \"number\" !== dataType && \"date\" !== dataType && \"object\" !== dataType) {\r\n dataType = void 0\r\n }\r\n return dataType\r\n };\r\n var getSerializationFormat = function(dataType, value) {\r\n switch (dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n return _date_serialization.default.getDateSerializationFormat(value);\r\n case \"number\":\r\n if ((0, _type.isString)(value)) {\r\n return \"string\"\r\n }\r\n if ((0, _type.isNumeric)(value)) {\r\n return null\r\n }\r\n }\r\n };\r\n var updateSerializers = function(options, dataType) {\r\n if (!options.deserializeValue) {\r\n if (_uiGrid_core2.default.isDateType(dataType)) {\r\n options.deserializeValue = function(value) {\r\n return _date_serialization.default.deserializeDate(value)\r\n };\r\n options.serializeValue = function(value) {\r\n return (0, _type.isString)(value) ? value : _date_serialization.default.serializeDate(value, this.serializationFormat)\r\n }\r\n }\r\n if (\"number\" === dataType) {\r\n options.deserializeValue = function(value) {\r\n var parsedValue = parseFloat(value);\r\n return isNaN(parsedValue) ? value : parsedValue\r\n };\r\n options.serializeValue = function(value, target) {\r\n if (\"filter\" === target) {\r\n return value\r\n }\r\n return (0, _type.isDefined)(value) && \"string\" === this.serializationFormat ? value.toString() : value\r\n }\r\n }\r\n }\r\n };\r\n var getAlignmentByDataType = function(dataType, isRTL) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"right\";\r\n case \"boolean\":\r\n return \"center\";\r\n default:\r\n return (0, _position.getDefaultAlignment)(isRTL)\r\n }\r\n };\r\n var customizeTextForBooleanDataType = function(e) {\r\n if (true === e.value) {\r\n return this.trueText || \"true\"\r\n } else {\r\n if (false === e.value) {\r\n return this.falseText || \"false\"\r\n } else {\r\n return e.valueText || \"\"\r\n }\r\n }\r\n };\r\n var getCustomizeTextByDataType = function(dataType) {\r\n if (\"boolean\" === dataType) {\r\n return customizeTextForBooleanDataType\r\n }\r\n };\r\n var createColumnsFromDataSource = function(that, dataSource) {\r\n var firstItems = that._getFirstItems(dataSource);\r\n var fieldName;\r\n var processedFields = {};\r\n var result = [];\r\n for (var i = 0; i < firstItems.length; i++) {\r\n if (firstItems[i]) {\r\n for (fieldName in firstItems[i]) {\r\n if (!(0, _type.isFunction)(firstItems[i][fieldName]) || _variable_wrapper.default.isWrapped(firstItems[i][fieldName])) {\r\n processedFields[fieldName] = true\r\n }\r\n }\r\n }\r\n }\r\n for (fieldName in processedFields) {\r\n if (0 !== fieldName.indexOf(\"__\")) {\r\n var column = createColumn(that, fieldName);\r\n result.push(column)\r\n }\r\n }\r\n return result\r\n };\r\n var updateColumnIndexes = function(that) {\r\n (0, _iterator.each)(that._columns, function(index, column) {\r\n column.index = index\r\n });\r\n (0, _iterator.each)(that._columns, function(index, column) {\r\n if ((0, _type.isObject)(column.ownerBand)) {\r\n column.ownerBand = column.ownerBand.index\r\n }\r\n });\r\n (0, _iterator.each)(that._commandColumns, function(index, column) {\r\n column.index = -(index + 1)\r\n })\r\n };\r\n var updateColumnGroupIndexes = function(that, currentColumn) {\r\n (0, _array.normalizeIndexes)(that._columns, \"groupIndex\", currentColumn, function(column) {\r\n var grouped = column.grouped;\r\n delete column.grouped;\r\n return grouped\r\n })\r\n };\r\n var updateColumnSortIndexes = function(that, currentColumn) {\r\n (0, _iterator.each)(that._columns, function(index, column) {\r\n if ((0, _type.isDefined)(column.sortIndex) && !isSortOrderValid(column.sortOrder)) {\r\n delete column.sortIndex\r\n }\r\n });\r\n (0, _array.normalizeIndexes)(that._columns, \"sortIndex\", currentColumn, function(column) {\r\n return !(0, _type.isDefined)(column.groupIndex) && isSortOrderValid(column.sortOrder)\r\n })\r\n };\r\n var updateColumnVisibleIndexes = function(that, currentColumn) {\r\n var key;\r\n var column;\r\n var bandColumns = {};\r\n var result = [];\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var columns = that._columns.filter(function(column) {\r\n return !column.command\r\n });\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n var parentBandColumns = getParentBandColumns(i, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns.length) {\r\n var bandColumnIndex = parentBandColumns[parentBandColumns.length - 1].index;\r\n bandColumns[bandColumnIndex] = bandColumns[bandColumnIndex] || [];\r\n bandColumns[bandColumnIndex].push(column)\r\n } else {\r\n result.push(column)\r\n }\r\n }\r\n for (key in bandColumns) {\r\n (0, _array.normalizeIndexes)(bandColumns[key], \"visibleIndex\", currentColumn)\r\n }(0, _array.normalizeIndexes)(result, \"visibleIndex\", currentColumn)\r\n };\r\n var getColumnIndexByVisibleIndex = function(that, visibleIndex, location) {\r\n var rowIndex = (0, _type.isObject)(visibleIndex) ? visibleIndex.rowIndex : null;\r\n var columns = location === GROUP_LOCATION ? that.getGroupColumns() : location === COLUMN_CHOOSER_LOCATION ? that.getChooserColumns() : that.getVisibleColumns(rowIndex);\r\n var column;\r\n visibleIndex = (0, _type.isObject)(visibleIndex) ? visibleIndex.columnIndex : visibleIndex;\r\n column = columns[visibleIndex];\r\n if (column && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n column = that._columns.filter(function(col) {\r\n return column.type === col.type\r\n })[0] || column\r\n }\r\n return column && (0, _type.isDefined)(column.index) ? column.index : -1\r\n };\r\n var moveColumnToGroup = function(that, column, groupIndex) {\r\n var groupColumns = that.getGroupColumns();\r\n var i;\r\n if (groupIndex >= 0) {\r\n for (i = 0; i < groupColumns.length; i++) {\r\n if (groupColumns[i].groupIndex >= groupIndex) {\r\n groupColumns[i].groupIndex++\r\n }\r\n }\r\n } else {\r\n groupIndex = 0;\r\n for (i = 0; i < groupColumns.length; i++) {\r\n groupIndex = Math.max(groupIndex, groupColumns[i].groupIndex + 1)\r\n }\r\n }\r\n return groupIndex\r\n };\r\n\r\n function checkUserStateColumn(column, userStateColumn) {\r\n return column && userStateColumn && (userStateColumn.name === column.name || !column.name) && (userStateColumn.dataField === column.dataField || column.name)\r\n }\r\n var applyUserState = function(that) {\r\n var columnsUserState = that._columnsUserState;\r\n var ignoreColumnOptionNames = that._ignoreColumnOptionNames || [];\r\n var columns = that._columns;\r\n var columnCountById = {};\r\n var resultColumns = [];\r\n var allColumnsHaveState = true;\r\n var userStateColumnIndexes = [];\r\n var column;\r\n var userStateColumnIndex;\r\n var i;\r\n\r\n function applyFieldsState(column, userStateColumn) {\r\n if (!userStateColumn) {\r\n return\r\n }\r\n for (var index = 0; index < USER_STATE_FIELD_NAMES.length; index++) {\r\n var fieldName = USER_STATE_FIELD_NAMES[index];\r\n if ((0, _array.inArray)(fieldName, ignoreColumnOptionNames) >= 0) {\r\n continue\r\n }\r\n if (\"dataType\" === fieldName) {\r\n column[fieldName] = column[fieldName] || userStateColumn[fieldName]\r\n } else {\r\n if ((0, _array.inArray)(fieldName, USER_STATE_FIELD_NAMES_15_1) >= 0) {\r\n if (fieldName in userStateColumn) {\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n } else {\r\n if (\"selectedFilterOperation\" === fieldName && userStateColumn[fieldName]) {\r\n column.defaultSelectedFilterOperation = column[fieldName] || null\r\n }\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n }\r\n }\r\n }\r\n\r\n function findUserStateColumn(columnsUserState, column) {\r\n var id = column.name || column.dataField;\r\n var count = columnCountById[id] || 0;\r\n for (var j = 0; j < columnsUserState.length; j++) {\r\n if (checkUserStateColumn(column, columnsUserState[j])) {\r\n if (count) {\r\n count--\r\n } else {\r\n columnCountById[id] = columnCountById[id] || 0;\r\n columnCountById[id]++;\r\n return j\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n if (columnsUserState) {\r\n for (i = 0; i < columns.length; i++) {\r\n userStateColumnIndex = findUserStateColumn(columnsUserState, columns[i]);\r\n allColumnsHaveState = allColumnsHaveState && userStateColumnIndex >= 0;\r\n userStateColumnIndexes.push(userStateColumnIndex)\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n userStateColumnIndex = userStateColumnIndexes[i];\r\n if (that._hasUserState || allColumnsHaveState) {\r\n applyFieldsState(column, columnsUserState[userStateColumnIndex])\r\n }\r\n if (userStateColumnIndex >= 0 && (0, _type.isDefined)(columnsUserState[userStateColumnIndex].initialIndex)) {\r\n resultColumns[userStateColumnIndex] = column\r\n } else {\r\n resultColumns.push(column)\r\n }\r\n }\r\n var hasAddedBands = false;\r\n for (i = 0; i < columnsUserState.length; i++) {\r\n var columnUserState = columnsUserState[i];\r\n if (columnUserState.added && findUserStateColumn(columns, columnUserState) < 0) {\r\n column = createColumn(that, columnUserState.added);\r\n applyFieldsState(column, columnUserState);\r\n resultColumns.push(column);\r\n if (columnUserState.added.columns) {\r\n hasAddedBands = true\r\n }\r\n }\r\n }\r\n if (hasAddedBands) {\r\n updateColumnIndexes(that);\r\n resultColumns = createColumnsFromOptions(that, resultColumns)\r\n }\r\n assignColumns(that, resultColumns)\r\n }\r\n };\r\n var updateIndexes = function(that, column) {\r\n updateColumnIndexes(that);\r\n updateColumnGroupIndexes(that, column);\r\n updateColumnSortIndexes(that, column);\r\n resetBandColumnsCache(that);\r\n updateColumnVisibleIndexes(that, column)\r\n };\r\n var resetColumnsCache = function(that) {\r\n that.resetColumnsCache()\r\n };\r\n\r\n function assignColumns(that, columns) {\r\n that._columns = columns;\r\n resetColumnsCache(that);\r\n that.updateColumnDataTypes()\r\n }\r\n var updateColumnChanges = function(that, changeType, optionName, columnIndex) {\r\n var columnChanges = that._columnChanges || {\r\n optionNames: {\r\n length: 0\r\n },\r\n changeTypes: {\r\n length: 0\r\n },\r\n columnIndex: columnIndex\r\n };\r\n optionName = optionName || \"all\";\r\n optionName = optionName.split(\".\")[0];\r\n var changeTypes = columnChanges.changeTypes;\r\n if (changeType && !changeTypes[changeType]) {\r\n changeTypes[changeType] = true;\r\n changeTypes.length++\r\n }\r\n var optionNames = columnChanges.optionNames;\r\n if (optionName && !optionNames[optionName]) {\r\n optionNames[optionName] = true;\r\n optionNames.length++\r\n }\r\n if (void 0 === columnIndex || columnIndex !== columnChanges.columnIndex) {\r\n delete columnChanges.columnIndex\r\n }\r\n that._columnChanges = columnChanges;\r\n resetColumnsCache(that)\r\n };\r\n var fireColumnsChanged = function(that) {\r\n var onColumnsChanging = that.option(\"onColumnsChanging\");\r\n var columnChanges = that._columnChanges;\r\n var reinitOptionNames = [\"dataField\", \"lookup\", \"dataType\", \"columns\"];\r\n var needReinit = function(options) {\r\n return options && reinitOptionNames.some(function(name) {\r\n return options[name]\r\n })\r\n };\r\n if (that.isInitialized() && !that._updateLockCount && columnChanges) {\r\n if (onColumnsChanging) {\r\n that._updateLockCount++;\r\n onColumnsChanging((0, _extend.extend)({\r\n component: that.component\r\n }, columnChanges));\r\n that._updateLockCount--\r\n }\r\n that._columnChanges = void 0;\r\n if (needReinit(columnChanges.optionNames)) {\r\n that.reinit()\r\n } else {\r\n that.columnsChanged.fire(columnChanges)\r\n }\r\n }\r\n };\r\n var updateSortOrderWhenGrouping = function(that, column, groupIndex, prevGroupIndex) {\r\n var columnWasGrouped = prevGroupIndex >= 0;\r\n if (groupIndex >= 0) {\r\n if (!columnWasGrouped) {\r\n column.lastSortOrder = column.sortOrder\r\n }\r\n } else {\r\n var sortMode = that.option(\"sorting.mode\");\r\n var sortOrder = column.lastSortOrder;\r\n if (\"single\" === sortMode) {\r\n var sortedByAnotherColumn = that._columns.some(function(col) {\r\n return col !== column && (0, _type.isDefined)(col.sortIndex)\r\n });\r\n if (sortedByAnotherColumn) {\r\n sortOrder = void 0\r\n }\r\n }\r\n column.sortOrder = sortOrder\r\n }\r\n };\r\n var fireOptionChanged = function(that, options) {\r\n var value = options.value;\r\n var optionName = options.optionName;\r\n var prevValue = options.prevValue;\r\n var fullOptionName = options.fullOptionName;\r\n var fullOptionPath = \"\".concat(fullOptionName, \".\").concat(optionName);\r\n if (!IGNORE_COLUMN_OPTION_NAMES[optionName] && that._skipProcessingColumnsChange !== fullOptionPath) {\r\n that._skipProcessingColumnsChange = fullOptionPath;\r\n that.component._notifyOptionChanged(fullOptionPath, value, prevValue);\r\n that._skipProcessingColumnsChange = false\r\n }\r\n };\r\n var columnOptionCore = function(that, column, optionName, value, notFireEvent) {\r\n var optionGetter = (0, _data.compileGetter)(optionName);\r\n var columnIndex = column.index;\r\n var columns;\r\n var changeType;\r\n var initialColumn;\r\n if (3 === arguments.length) {\r\n return optionGetter(column, {\r\n functionsAsIs: true\r\n })\r\n }\r\n var prevValue = optionGetter(column, {\r\n functionsAsIs: true\r\n });\r\n if (prevValue !== value) {\r\n if (\"groupIndex\" === optionName || \"calculateGroupValue\" === optionName) {\r\n changeType = \"grouping\";\r\n updateSortOrderWhenGrouping(that, column, value, prevValue)\r\n } else {\r\n if (\"sortIndex\" === optionName || \"sortOrder\" === optionName || \"calculateSortValue\" === optionName) {\r\n changeType = \"sorting\"\r\n } else {\r\n changeType = \"columns\"\r\n }\r\n }\r\n var optionSetter = (0, _data.compileSetter)(optionName);\r\n optionSetter(column, value, {\r\n functionsAsIs: true\r\n });\r\n var fullOptionName = getColumnFullPath(that, column);\r\n if (COLUMN_INDEX_OPTIONS[optionName]) {\r\n updateIndexes(that, column);\r\n value = optionGetter(column)\r\n }\r\n if (\"name\" === optionName || \"allowEditing\" === optionName) {\r\n that._checkColumns()\r\n }\r\n fullOptionName && fireOptionChanged(that, {\r\n fullOptionName: fullOptionName,\r\n optionName: optionName,\r\n value: value,\r\n prevValue: prevValue\r\n });\r\n if (!(0, _type.isDefined)(prevValue) && !(0, _type.isDefined)(value) && 0 !== optionName.indexOf(\"buffer\")) {\r\n notFireEvent = true\r\n }\r\n if (!notFireEvent) {\r\n if ((0, _array.inArray)(optionName, USER_STATE_FIELD_NAMES) < 0 && \"visibleWidth\" !== optionName) {\r\n columns = that.option(\"columns\");\r\n initialColumn = that.getColumnByPath(fullOptionName, columns);\r\n if ((0, _type.isString)(initialColumn)) {\r\n initialColumn = columns[columnIndex] = {\r\n dataField: initialColumn\r\n }\r\n }\r\n if (initialColumn && checkUserStateColumn(initialColumn, column)) {\r\n optionSetter(initialColumn, value, {\r\n functionsAsIs: true\r\n })\r\n }\r\n }\r\n updateColumnChanges(that, changeType, optionName, columnIndex)\r\n } else {\r\n resetColumnsCache(that)\r\n }\r\n }\r\n };\r\n\r\n function isSortOrderValid(sortOrder) {\r\n return \"asc\" === sortOrder || \"desc\" === sortOrder\r\n }\r\n var addExpandColumn = function(that) {\r\n var options = that._getExpandColumnOptions();\r\n that.addCommandColumn(options)\r\n };\r\n var defaultSetCellValue = function(data, value) {\r\n var path = this.dataField.split(\".\");\r\n var dotCount = path.length - 1;\r\n if (this.serializeValue) {\r\n value = this.serializeValue(value)\r\n }\r\n for (var i = 0; i < dotCount; i++) {\r\n var name = path[i];\r\n data = data[name] = data[name] || {}\r\n }\r\n data[path[dotCount]] = value\r\n };\r\n var getDataColumns = function getDataColumns(columns, rowIndex, bandColumnID) {\r\n var result = [];\r\n rowIndex = rowIndex || 0;\r\n columns[rowIndex] && (0, _iterator.each)(columns[rowIndex], function(_, column) {\r\n if (column.ownerBand === bandColumnID || column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (!column.isBand || !column.colspan) {\r\n if (!column.command || rowIndex < 1) {\r\n result.push(column)\r\n }\r\n } else {\r\n result.push.apply(result, getDataColumns(columns, rowIndex + 1, column.index))\r\n }\r\n }\r\n });\r\n return result\r\n };\r\n var _getRowCount = function(that) {\r\n var rowCount = 1;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var columnParentByIndex = bandColumnsCache.columnParentByIndex;\r\n that._columns.forEach(function(column) {\r\n var parents = getParentBandColumns(column.index, columnParentByIndex);\r\n var invisibleParents = parents.filter(function(column) {\r\n return !column.visible\r\n });\r\n if (column.visible && !invisibleParents.length) {\r\n rowCount = Math.max(rowCount, parents.length + 1)\r\n }\r\n });\r\n return rowCount\r\n };\r\n var isCustomCommandColumn = function(that, commandColumn) {\r\n return !!that._columns.filter(function(column) {\r\n return column.type === commandColumn.type\r\n }).length\r\n };\r\n var getFixedPosition = function(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n if (column.command && !isCustomCommandColumn(that, column) || !column.fixedPosition) {\r\n return rtlEnabled ? \"right\" : \"left\"\r\n }\r\n return column.fixedPosition\r\n };\r\n var processExpandColumns = function(columns, expandColumns, type, columnIndex) {\r\n var customColumnIndex;\r\n var rowCount = this.getRowCount();\r\n var rowspan = columns[columnIndex] && columns[columnIndex].rowspan;\r\n var expandColumnsByType = expandColumns.filter(function(column) {\r\n return column.type === type\r\n });\r\n columns.forEach(function(column, index) {\r\n if (column.type === type) {\r\n customColumnIndex = index;\r\n rowspan = columns[index + 1] ? columns[index + 1].rowspan : rowCount\r\n }\r\n });\r\n if (rowspan > 1) {\r\n expandColumnsByType = (0, _iterator.map)(expandColumnsByType, function(expandColumn) {\r\n return (0, _extend.extend)({}, expandColumn, {\r\n rowspan: rowspan\r\n })\r\n })\r\n }\r\n expandColumnsByType.unshift.apply(expandColumnsByType, (0, _type.isDefined)(customColumnIndex) ? [customColumnIndex, 1] : [columnIndex, 0]);\r\n columns.splice.apply(columns, expandColumnsByType);\r\n return rowspan || 1\r\n };\r\n var digitsCount = function(number) {\r\n var i;\r\n for (i = 0; number > 1; i++) {\r\n number /= 10\r\n }\r\n return i\r\n };\r\n var numberToString = function(number, digitsCount) {\r\n var str = number ? number.toString() : \"0\";\r\n while (str.length < digitsCount) {\r\n str = \"0\" + str\r\n }\r\n return str\r\n };\r\n var mergeColumns = function(that, columns, commandColumns, needToExtend) {\r\n var column;\r\n var commandColumnIndex;\r\n var result = columns.slice().map(function(column) {\r\n return (0, _extend.extend)({}, column)\r\n });\r\n var isColumnFixing = that._isColumnFixing();\r\n var defaultCommandColumns = commandColumns.slice().map(function(column) {\r\n return (0, _extend.extend)({\r\n fixed: isColumnFixing\r\n }, column)\r\n });\r\n var getCommandColumnIndex = function(column) {\r\n return commandColumns.reduce(function(result, commandColumn, index) {\r\n var columnType = needToExtend && column.type === GROUP_COMMAND_COLUMN_NAME ? \"expand\" : column.type;\r\n return commandColumn.type === columnType || commandColumn.command === column.command ? index : result\r\n }, -1)\r\n };\r\n var callbackFilter = function(commandColumn) {\r\n return commandColumn.command !== commandColumns[commandColumnIndex].command\r\n };\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n commandColumnIndex = column && (column.type || column.command) ? getCommandColumnIndex(column) : -1;\r\n if (commandColumnIndex >= 0) {\r\n if (needToExtend) {\r\n result[i] = (0, _extend.extend)({\r\n fixed: isColumnFixing\r\n }, commandColumns[commandColumnIndex], column);\r\n if (column.type !== GROUP_COMMAND_COLUMN_NAME) {\r\n defaultCommandColumns = defaultCommandColumns.filter(callbackFilter)\r\n }\r\n } else {\r\n var columnOptions = {\r\n visibleIndex: column.visibleIndex,\r\n index: column.index,\r\n headerId: column.headerId,\r\n allowFixing: 0 === column.groupIndex,\r\n allowReordering: 0 === column.groupIndex,\r\n groupIndex: column.groupIndex\r\n };\r\n result[i] = (0, _extend.extend)({}, column, commandColumns[commandColumnIndex], column.type === GROUP_COMMAND_COLUMN_NAME && columnOptions)\r\n }\r\n }\r\n }\r\n if (columns.length && needToExtend && defaultCommandColumns.length) {\r\n result = result.concat(defaultCommandColumns)\r\n }\r\n return result\r\n };\r\n var isColumnFixed = function(that, column) {\r\n return (0, _type.isDefined)(column.fixed) || !column.type ? column.fixed : that._isColumnFixing()\r\n };\r\n var convertOwnerBandToColumnReference = function(columns) {\r\n columns.forEach(function(column) {\r\n if ((0, _type.isDefined)(column.ownerBand)) {\r\n column.ownerBand = columns[column.ownerBand]\r\n }\r\n })\r\n };\r\n var resetBandColumnsCache = function(that) {\r\n that._bandColumnsCache = void 0\r\n };\r\n var findColumn = function(columns, identifier) {\r\n var identifierOptionName = (0, _type.isString)(identifier) && identifier.substr(0, identifier.indexOf(\":\"));\r\n var column;\r\n if (void 0 === identifier) {\r\n return\r\n }\r\n if (identifierOptionName) {\r\n identifier = identifier.substr(identifierOptionName.length + 1)\r\n }\r\n if (identifierOptionName) {\r\n column = columns.filter(function(column) {\r\n return \"\" + column[identifierOptionName] === identifier\r\n })[0]\r\n } else {\r\n [\"index\", \"name\", \"dataField\", \"caption\"].some(function(optionName) {\r\n column = columns.filter(function(column) {\r\n return column[optionName] === identifier\r\n })[0];\r\n return !!column\r\n })\r\n }\r\n return column\r\n };\r\n return {\r\n _getExpandColumnOptions: function() {\r\n return {\r\n type: \"expand\",\r\n command: \"expand\",\r\n width: \"auto\",\r\n cssClass: COMMAND_EXPAND_CLASS,\r\n allowEditing: false,\r\n allowGrouping: false,\r\n allowSorting: false,\r\n allowResizing: false,\r\n allowReordering: false,\r\n allowHiding: false\r\n }\r\n },\r\n _getFirstItems: function(dataSource) {\r\n var groupsCount;\r\n var items = [];\r\n var getFirstItemsCore = function getFirstItemsCore(items, groupsCount) {\r\n if (!items || !groupsCount) {\r\n return items\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var childItems = getFirstItemsCore(items[i].items || items[i].collapsedItems, groupsCount - 1);\r\n if (childItems && childItems.length) {\r\n return childItems\r\n }\r\n }\r\n };\r\n if (dataSource && dataSource.items().length > 0) {\r\n groupsCount = _uiGrid_core2.default.normalizeSortingInfo(dataSource.group()).length;\r\n items = getFirstItemsCore(dataSource.items(), groupsCount) || []\r\n }\r\n return items\r\n },\r\n _endUpdateCore: function() {\r\n !this._skipProcessingColumnsChange && fireColumnsChanged(this)\r\n },\r\n init: function() {\r\n var that = this;\r\n var columns = that.option(\"columns\");\r\n that._commandColumns = that._commandColumns || [];\r\n that._columns = that._columns || [];\r\n that._isColumnsFromOptions = !!columns;\r\n if (that._isColumnsFromOptions) {\r\n assignColumns(that, columns ? createColumnsFromOptions(that, columns) : []);\r\n applyUserState(that)\r\n } else {\r\n assignColumns(that, that._columnsUserState ? createColumnsFromOptions(that, that._columnsUserState) : that._columns)\r\n }\r\n addExpandColumn(that);\r\n if (that._dataSourceApplied) {\r\n that.applyDataSource(that._dataSource, true)\r\n } else {\r\n updateIndexes(that)\r\n }\r\n that._checkColumns()\r\n },\r\n callbackNames: function() {\r\n return [\"columnsChanged\"]\r\n },\r\n getColumnByPath: function(path, columns) {\r\n var that = this;\r\n var column;\r\n var columnIndexes = [];\r\n path.replace(regExp, function(_, columnIndex) {\r\n columnIndexes.push(parseInt(columnIndex));\r\n return \"\"\r\n });\r\n if (columnIndexes.length) {\r\n if (columns) {\r\n column = columnIndexes.reduce(function(column, index) {\r\n return column && column.columns && column.columns[index]\r\n }, {\r\n columns: columns\r\n })\r\n } else {\r\n column = getColumnByIndexes(that, columnIndexes)\r\n }\r\n }\r\n return column\r\n },\r\n optionChanged: function(args) {\r\n var needUpdateRequireResize;\r\n switch (args.name) {\r\n case \"adaptColumnWidthByRatio\":\r\n args.handled = true;\r\n break;\r\n case \"dataSource\":\r\n if (args.value !== args.previousValue && !this.option(\"columns\") && (!Array.isArray(args.value) || !Array.isArray(args.previousValue))) {\r\n this._columns = []\r\n }\r\n break;\r\n case \"columns\":\r\n needUpdateRequireResize = this._skipProcessingColumnsChange;\r\n args.handled = true;\r\n if (!this._skipProcessingColumnsChange) {\r\n if (args.name === args.fullName) {\r\n this._columnsUserState = null;\r\n this._ignoreColumnOptionNames = null;\r\n this.init()\r\n } else {\r\n this._columnOptionChanged(args);\r\n needUpdateRequireResize = true\r\n }\r\n }\r\n if (needUpdateRequireResize) {\r\n this._updateRequireResize(args)\r\n }\r\n break;\r\n case \"commonColumnSettings\":\r\n case \"columnAutoWidth\":\r\n case \"allowColumnResizing\":\r\n case \"allowColumnReordering\":\r\n case \"columnFixing\":\r\n case \"grouping\":\r\n case \"groupPanel\":\r\n case \"regenerateColumnsByVisibleItems\":\r\n case \"customizeColumns\":\r\n case \"editing\":\r\n case \"columnHidingEnabled\":\r\n case \"dateSerializationFormat\":\r\n case \"columnResizingMode\":\r\n case \"columnMinWidth\":\r\n case \"columnWidth\":\r\n var _args$fullName, _args$fullName2, _args$fullName3, _args$fullName4, _args$fullName5;\r\n args.handled = true;\r\n var ignoreColumnOptionNames = \"columnWidth\" === args.fullName && [\"width\"];\r\n var isEditingPopup = 0 === (null === (_args$fullName = args.fullName) || void 0 === _args$fullName ? void 0 : _args$fullName.indexOf(\"editing.popup\"));\r\n var isEditingForm = 0 === (null === (_args$fullName2 = args.fullName) || void 0 === _args$fullName2 ? void 0 : _args$fullName2.indexOf(\"editing.form\"));\r\n var isEditRowKey = 0 === (null === (_args$fullName3 = args.fullName) || void 0 === _args$fullName3 ? void 0 : _args$fullName3.indexOf(\"editing.editRowKey\"));\r\n var isEditColumnName = 0 === (null === (_args$fullName4 = args.fullName) || void 0 === _args$fullName4 ? void 0 : _args$fullName4.indexOf(\"editing.editColumnName\"));\r\n var isChanges = 0 === (null === (_args$fullName5 = args.fullName) || void 0 === _args$fullName5 ? void 0 : _args$fullName5.indexOf(\"editing.changes\"));\r\n var needReinit = !isEditingPopup && !isEditingForm && !isEditRowKey && !isChanges && !isEditColumnName;\r\n if (needReinit) {\r\n this.reinit(ignoreColumnOptionNames)\r\n }\r\n break;\r\n case \"rtlEnabled\":\r\n this.reinit();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _columnOptionChanged: function(args) {\r\n var columnOptionValue = {};\r\n var column = this.getColumnByPath(args.fullName);\r\n var columnOptionName = args.fullName.replace(regExp, \"\");\r\n if (column) {\r\n if (columnOptionName) {\r\n columnOptionValue[columnOptionName] = args.value\r\n } else {\r\n columnOptionValue = args.value\r\n }\r\n this._skipProcessingColumnsChange = args.fullName;\r\n this.columnOption(column.index, columnOptionValue);\r\n this._skipProcessingColumnsChange = false\r\n }\r\n },\r\n _updateRequireResize: function(args) {\r\n var component = this.component;\r\n if (\"width\" === args.fullName.replace(regExp, \"\") && component._updateLockCount) {\r\n component._requireResize = true\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"addColumn\", \"deleteColumn\", \"columnOption\", \"columnCount\", \"clearSorting\", \"clearGrouping\", \"getVisibleColumns\", \"getVisibleColumnIndex\"]\r\n },\r\n applyDataSource: function(dataSource, forceApplying) {\r\n var that = this;\r\n var isDataSourceLoaded = dataSource && dataSource.isLoaded();\r\n that._dataSource = dataSource;\r\n if (!that._dataSourceApplied || 0 === that._dataSourceColumnsCount || forceApplying || that.option(\"regenerateColumnsByVisibleItems\")) {\r\n if (isDataSourceLoaded) {\r\n if (!that._isColumnsFromOptions) {\r\n var columnsFromDataSource = createColumnsFromDataSource(that, dataSource);\r\n if (columnsFromDataSource.length) {\r\n assignColumns(that, columnsFromDataSource);\r\n that._dataSourceColumnsCount = that._columns.length;\r\n applyUserState(that)\r\n }\r\n }\r\n return that.updateColumns(dataSource, forceApplying)\r\n } else {\r\n that._dataSourceApplied = false\r\n }\r\n } else {\r\n if (isDataSourceLoaded && !that.isAllDataTypesDefined(true) && that.updateColumnDataTypes(dataSource)) {\r\n updateColumnChanges(that, \"columns\");\r\n fireColumnsChanged(that);\r\n return (new _deferred.Deferred).reject().promise()\r\n }\r\n }\r\n },\r\n reset: function() {\r\n this._dataSourceApplied = false;\r\n this._dataSourceColumnsCount = void 0;\r\n this.reinit()\r\n },\r\n resetColumnsCache: function() {\r\n var that = this;\r\n that._visibleColumns = void 0;\r\n that._fixedColumns = void 0;\r\n that._rowCount = void 0;\r\n resetBandColumnsCache(that)\r\n },\r\n reinit: function(ignoreColumnOptionNames) {\r\n this._columnsUserState = this.getUserState();\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames || null;\r\n this.init();\r\n if (ignoreColumnOptionNames) {\r\n this._ignoreColumnOptionNames = null\r\n }\r\n },\r\n isInitialized: function() {\r\n return !!this._columns.length || !!this.option(\"columns\")\r\n },\r\n isDataSourceApplied: function() {\r\n return this._dataSourceApplied\r\n },\r\n getCommonSettings: function(column) {\r\n var commonColumnSettings = (!column || !column.type) && this.option(\"commonColumnSettings\") || {};\r\n var groupingOptions = this.option(\"grouping\") || {};\r\n var groupPanelOptions = this.option(\"groupPanel\") || {};\r\n return (0, _extend.extend)({\r\n allowFixing: this.option(\"columnFixing.enabled\"),\r\n allowResizing: this.option(\"allowColumnResizing\") || void 0,\r\n allowReordering: this.option(\"allowColumnReordering\"),\r\n minWidth: this.option(\"columnMinWidth\"),\r\n width: this.option(\"columnWidth\"),\r\n autoExpandGroup: groupingOptions.autoExpandAll,\r\n allowCollapsing: groupingOptions.allowCollapsing,\r\n allowGrouping: groupPanelOptions.allowColumnDragging && groupPanelOptions.visible || groupingOptions.contextMenuEnabled\r\n }, commonColumnSettings)\r\n },\r\n isColumnOptionUsed: function(optionName) {\r\n for (var i = 0; i < this._columns.length; i++) {\r\n if (this._columns[i][optionName]) {\r\n return true\r\n }\r\n }\r\n },\r\n isAllDataTypesDefined: function(checkSerializers) {\r\n var columns = this._columns;\r\n if (!columns.length) {\r\n return false\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].dataField && columns[i].calculateCellValue === columns[i].defaultCalculateCellValue) {\r\n continue\r\n }\r\n if (!columns[i].dataType || checkSerializers && columns[i].deserializeValue && void 0 === columns[i].serializationFormat) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n getColumns: function() {\r\n return this._columns\r\n },\r\n isBandColumnsUsed: function() {\r\n return this.getColumns().some(function(column) {\r\n return column.isBand\r\n })\r\n },\r\n getGroupColumns: function() {\r\n var result = [];\r\n (0, _iterator.each)(this._columns, function() {\r\n var column = this;\r\n if ((0, _type.isDefined)(column.groupIndex)) {\r\n result[column.groupIndex] = column\r\n }\r\n });\r\n return result\r\n },\r\n getVisibleColumns: function(rowIndex) {\r\n this._visibleColumns = this._visibleColumns || this._getVisibleColumnsCore();\r\n rowIndex = (0, _type.isDefined)(rowIndex) ? rowIndex : this._visibleColumns.length - 1;\r\n return this._visibleColumns[rowIndex] || []\r\n },\r\n getFixedColumns: function(rowIndex) {\r\n this._fixedColumns = this._fixedColumns || this._getFixedColumnsCore();\r\n rowIndex = (0, _type.isDefined)(rowIndex) ? rowIndex : this._fixedColumns.length - 1;\r\n return this._fixedColumns[rowIndex] || []\r\n },\r\n getFilteringColumns: function() {\r\n return this.getColumns().filter(function(item) {\r\n return (item.dataField || item.name) && (item.allowFiltering || item.allowHeaderFiltering)\r\n }).map(function(item) {\r\n var field = (0, _extend.extend)(true, {}, item);\r\n if (!(0, _type.isDefined)(field.dataField)) {\r\n field.dataField = field.name\r\n }\r\n field.filterOperations = item.filterOperations !== item.defaultFilterOperations ? field.filterOperations : null;\r\n return field\r\n })\r\n },\r\n getColumnIndexOffset: function() {\r\n return 0\r\n },\r\n _getFixedColumnsCore: function() {\r\n var that = this;\r\n var result = [];\r\n var rowCount = that.getRowCount();\r\n var isColumnFixing = that._isColumnFixing();\r\n var transparentColumn = {\r\n command: \"transparent\"\r\n };\r\n var transparentColspan = 0;\r\n var notFixedColumnCount;\r\n var transparentColumnIndex;\r\n var lastFixedPosition;\r\n if (isColumnFixing) {\r\n for (var i = 0; i <= rowCount; i++) {\r\n notFixedColumnCount = 0;\r\n lastFixedPosition = null;\r\n transparentColumnIndex = null;\r\n var visibleColumns = that.getVisibleColumns(i, true);\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var prevColumn = visibleColumns[j - 1];\r\n var column = visibleColumns[j];\r\n if (!column.fixed) {\r\n if (0 === i) {\r\n if (column.isBand && column.colspan) {\r\n transparentColspan += column.colspan\r\n } else {\r\n transparentColspan++\r\n }\r\n }\r\n notFixedColumnCount++;\r\n if (!(0, _type.isDefined)(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else {\r\n if (prevColumn && prevColumn.fixed && getFixedPosition(that, prevColumn) !== getFixedPosition(that, column)) {\r\n if (!(0, _type.isDefined)(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else {\r\n lastFixedPosition = column.fixedPosition\r\n }\r\n }\r\n }\r\n if (0 === i && (0 === notFixedColumnCount || notFixedColumnCount >= visibleColumns.length)) {\r\n return []\r\n }\r\n if (!(0, _type.isDefined)(transparentColumnIndex)) {\r\n transparentColumnIndex = \"right\" === lastFixedPosition ? 0 : visibleColumns.length\r\n }\r\n result[i] = visibleColumns.slice(0);\r\n if (!transparentColumn.colspan) {\r\n transparentColumn.colspan = transparentColspan\r\n }\r\n result[i].splice(transparentColumnIndex, notFixedColumnCount, transparentColumn)\r\n }\r\n }\r\n return result.map(function(columns) {\r\n return columns.map(function(column) {\r\n var newColumn = _objectSpread({}, column);\r\n if (newColumn.headerId) {\r\n newColumn.headerId += \"-fixed\"\r\n }\r\n return newColumn\r\n })\r\n })\r\n },\r\n _isColumnFixing: function() {\r\n var isColumnFixing = this.option(\"columnFixing.enabled\");\r\n !isColumnFixing && (0, _iterator.each)(this._columns, function(_, column) {\r\n if (column.fixed) {\r\n isColumnFixing = true;\r\n return false\r\n }\r\n });\r\n return isColumnFixing\r\n },\r\n _getExpandColumnsCore: function() {\r\n return this.getGroupColumns()\r\n },\r\n getExpandColumns: function() {\r\n var expandColumns = this._getExpandColumnsCore();\r\n var expandColumn;\r\n var firstGroupColumn = expandColumns.filter(function(column) {\r\n return 0 === column.groupIndex\r\n })[0];\r\n var isFixedFirstGroupColumn = firstGroupColumn && firstGroupColumn.fixed;\r\n var isColumnFixing = this._isColumnFixing();\r\n if (expandColumns.length) {\r\n expandColumn = this.columnOption(\"command:expand\")\r\n }\r\n expandColumns = (0, _iterator.map)(expandColumns, function(column) {\r\n return (0, _extend.extend)({}, column, {\r\n visibleWidth: null,\r\n minWidth: null,\r\n cellTemplate: !(0, _type.isDefined)(column.groupIndex) ? column.cellTemplate : null,\r\n headerCellTemplate: null,\r\n fixed: !(0, _type.isDefined)(column.groupIndex) || !isFixedFirstGroupColumn ? isColumnFixing : true\r\n }, expandColumn, {\r\n index: column.index,\r\n type: column.type || GROUP_COMMAND_COLUMN_NAME\r\n })\r\n });\r\n return expandColumns\r\n },\r\n getBandColumnsCache: function() {\r\n if (!this._bandColumnsCache) {\r\n var columns = this._columns;\r\n var columnChildrenByIndex = {};\r\n var columnParentByIndex = {};\r\n var isPlain = true;\r\n columns.forEach(function(column) {\r\n var parentIndex = column.ownerBand;\r\n var parent = columns[parentIndex];\r\n if (column.hasColumns) {\r\n isPlain = false\r\n }\r\n if (column.colspan) {\r\n column.colspan = void 0\r\n }\r\n if (column.rowspan) {\r\n column.rowspan = void 0\r\n }\r\n if (parent) {\r\n columnParentByIndex[column.index] = parent\r\n } else {\r\n parentIndex = -1\r\n }\r\n columnChildrenByIndex[parentIndex] = columnChildrenByIndex[parentIndex] || [];\r\n columnChildrenByIndex[parentIndex].push(column)\r\n });\r\n this._bandColumnsCache = {\r\n isPlain: isPlain,\r\n columnChildrenByIndex: columnChildrenByIndex,\r\n columnParentByIndex: columnParentByIndex\r\n }\r\n }\r\n return this._bandColumnsCache\r\n },\r\n _isColumnVisible: function(column) {\r\n return column.visible && this.isParentColumnVisible(column.index)\r\n },\r\n _getVisibleColumnsCore: function() {\r\n var that = this;\r\n var i;\r\n var result = [];\r\n var rowspanGroupColumns = 0;\r\n var rowspanExpandColumns = 0;\r\n var rowCount = that.getRowCount();\r\n var positiveIndexedColumns = [];\r\n var negativeIndexedColumns = [];\r\n var notGroupedColumnsCount = 0;\r\n var isFixedToEnd;\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var expandColumns = mergeColumns(that, that.getExpandColumns(), that._columns);\r\n var columns = mergeColumns(that, that._columns, that._commandColumns, true);\r\n var columnDigitsCount = digitsCount(columns.length);\r\n processBandColumns(that, columns, bandColumnsCache);\r\n for (i = 0; i < rowCount; i++) {\r\n result[i] = [];\r\n negativeIndexedColumns[i] = [{}];\r\n positiveIndexedColumns[i] = [{}, {}, {}]\r\n }(0, _iterator.each)(columns, function() {\r\n var column = this;\r\n var visibleIndex = column.visibleIndex;\r\n var indexedColumns;\r\n var parentBandColumns = getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex);\r\n var visible = that._isColumnVisible(column);\r\n if (visible && (!(0, _type.isDefined)(column.groupIndex) || column.showWhenGrouped)) {\r\n var rowIndex = parentBandColumns.length;\r\n if (visibleIndex < 0) {\r\n visibleIndex = -visibleIndex;\r\n indexedColumns = negativeIndexedColumns[rowIndex]\r\n } else {\r\n column.fixed = parentBandColumns.length ? parentBandColumns[0].fixed : column.fixed;\r\n column.fixedPosition = parentBandColumns.length ? parentBandColumns[0].fixedPosition : column.fixedPosition;\r\n if (column.fixed) {\r\n isFixedToEnd = \"right\" === column.fixedPosition;\r\n if (rtlEnabled && (!column.command || isCustomCommandColumn(that, column))) {\r\n isFixedToEnd = !isFixedToEnd\r\n }\r\n if (isFixedToEnd) {\r\n indexedColumns = positiveIndexedColumns[rowIndex][2]\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][0]\r\n }\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][1]\r\n }\r\n }\r\n if (parentBandColumns.length) {\r\n visibleIndex = numberToString(visibleIndex, columnDigitsCount);\r\n for (i = parentBandColumns.length - 1; i >= 0; i--) {\r\n visibleIndex = numberToString(parentBandColumns[i].visibleIndex, columnDigitsCount) + visibleIndex\r\n }\r\n }\r\n indexedColumns[visibleIndex] = indexedColumns[visibleIndex] || [];\r\n indexedColumns[visibleIndex].push(column);\r\n notGroupedColumnsCount++\r\n }\r\n });\r\n (0, _iterator.each)(result, function(rowIndex) {\r\n (0, _object.orderEach)(negativeIndexedColumns[rowIndex], function(_, columns) {\r\n result[rowIndex].unshift.apply(result[rowIndex], columns)\r\n });\r\n var firstPositiveIndexColumn = result[rowIndex].length;\r\n (0, _iterator.each)(positiveIndexedColumns[rowIndex], function(index, columnsByFixing) {\r\n (0, _object.orderEach)(columnsByFixing, function(_, columnsByVisibleIndex) {\r\n result[rowIndex].push.apply(result[rowIndex], columnsByVisibleIndex)\r\n })\r\n });\r\n if (rowspanExpandColumns < rowIndex + 1) {\r\n rowspanExpandColumns += processExpandColumns.call(that, result[rowIndex], expandColumns, \"detailExpand\", firstPositiveIndexColumn)\r\n }\r\n if (rowspanGroupColumns < rowIndex + 1) {\r\n rowspanGroupColumns += processExpandColumns.call(that, result[rowIndex], expandColumns, GROUP_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n });\r\n result.push(getDataColumns(result));\r\n if (!notGroupedColumnsCount && that._columns.length) {\r\n result[rowCount].push({\r\n command: \"empty\"\r\n })\r\n }\r\n return result\r\n },\r\n getInvisibleColumns: function(columns, bandColumnIndex) {\r\n var that = this;\r\n var result = [];\r\n var hiddenColumnsByBand;\r\n columns = columns || that._columns;\r\n (0, _iterator.each)(columns, function(_, column) {\r\n if (column.ownerBand !== bandColumnIndex) {\r\n return\r\n }\r\n if (column.isBand) {\r\n if (!column.visible) {\r\n hiddenColumnsByBand = that.getChildrenByBandColumn(column.index)\r\n } else {\r\n hiddenColumnsByBand = that.getInvisibleColumns(that.getChildrenByBandColumn(column.index), column.index)\r\n }\r\n if (hiddenColumnsByBand.length) {\r\n result.push(column);\r\n result = result.concat(hiddenColumnsByBand)\r\n }\r\n return\r\n }\r\n if (!column.visible) {\r\n result.push(column)\r\n }\r\n });\r\n return result\r\n },\r\n getChooserColumns: function(getAllColumns) {\r\n var columns = getAllColumns ? this.getColumns() : this.getInvisibleColumns();\r\n return (0, _common.grep)(columns, function(column) {\r\n return column.showInColumnChooser\r\n })\r\n },\r\n allowMoveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var that = this;\r\n var columnIndex = getColumnIndexByVisibleIndex(that, fromVisibleIndex, sourceLocation);\r\n var sourceColumn = that._columns[columnIndex];\r\n if (sourceColumn && (sourceColumn.allowReordering || sourceColumn.allowGrouping || sourceColumn.allowHiding)) {\r\n if (sourceLocation === targetLocation) {\r\n if (sourceLocation === COLUMN_CHOOSER_LOCATION) {\r\n return false\r\n }\r\n fromVisibleIndex = (0, _type.isObject)(fromVisibleIndex) ? fromVisibleIndex.columnIndex : fromVisibleIndex;\r\n toVisibleIndex = (0, _type.isObject)(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n return fromVisibleIndex !== toVisibleIndex && fromVisibleIndex + 1 !== toVisibleIndex\r\n } else {\r\n if (sourceLocation === GROUP_LOCATION && targetLocation !== COLUMN_CHOOSER_LOCATION || targetLocation === GROUP_LOCATION) {\r\n return sourceColumn && sourceColumn.allowGrouping\r\n } else {\r\n if (sourceLocation === COLUMN_CHOOSER_LOCATION || targetLocation === COLUMN_CHOOSER_LOCATION) {\r\n return sourceColumn && sourceColumn.allowHiding\r\n }\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n },\r\n moveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var that = this;\r\n var options = {};\r\n var prevGroupIndex;\r\n var fromIndex = getColumnIndexByVisibleIndex(that, fromVisibleIndex, sourceLocation);\r\n var toIndex = getColumnIndexByVisibleIndex(that, toVisibleIndex, targetLocation);\r\n var targetGroupIndex;\r\n if (fromIndex >= 0) {\r\n var column = that._columns[fromIndex];\r\n toVisibleIndex = (0, _type.isObject)(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n targetGroupIndex = toIndex >= 0 ? that._columns[toIndex].groupIndex : -1;\r\n if ((0, _type.isDefined)(column.groupIndex) && sourceLocation === GROUP_LOCATION) {\r\n if (targetGroupIndex > column.groupIndex) {\r\n targetGroupIndex--\r\n }\r\n if (targetLocation !== GROUP_LOCATION) {\r\n options.groupIndex = void 0\r\n } else {\r\n prevGroupIndex = column.groupIndex;\r\n delete column.groupIndex;\r\n updateColumnGroupIndexes(that)\r\n }\r\n }\r\n if (targetLocation === GROUP_LOCATION) {\r\n options.groupIndex = moveColumnToGroup(that, column, targetGroupIndex);\r\n column.groupIndex = prevGroupIndex\r\n } else {\r\n if (toVisibleIndex >= 0) {\r\n var targetColumn = that._columns[toIndex];\r\n if (!targetColumn || column.ownerBand !== targetColumn.ownerBand) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else {\r\n if (isColumnFixed(that, column) ^ isColumnFixed(that, targetColumn)) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else {\r\n options.visibleIndex = targetColumn.visibleIndex\r\n }\r\n }\r\n }\r\n }\r\n var isVisible = targetLocation !== COLUMN_CHOOSER_LOCATION;\r\n if (column.visible !== isVisible) {\r\n options.visible = isVisible\r\n }\r\n that.columnOption(column.index, options)\r\n }\r\n },\r\n changeSortOrder: function(columnIndex, sortOrder) {\r\n var that = this;\r\n var options = {};\r\n var sortingOptions = that.option(\"sorting\");\r\n var sortingMode = sortingOptions && sortingOptions.mode;\r\n var needResetSorting = \"single\" === sortingMode || !sortOrder;\r\n var allowSorting = \"single\" === sortingMode || \"multiple\" === sortingMode;\r\n var column = that._columns[columnIndex];\r\n var nextSortOrder = function(column) {\r\n if (\"ctrl\" === sortOrder) {\r\n if (!(\"sortOrder\" in column && \"sortIndex\" in column)) {\r\n return false\r\n }\r\n options.sortOrder = void 0;\r\n options.sortIndex = void 0\r\n } else {\r\n if ((0, _type.isDefined)(column.groupIndex) || (0, _type.isDefined)(column.sortIndex)) {\r\n options.sortOrder = \"desc\" === column.sortOrder ? \"asc\" : \"desc\"\r\n } else {\r\n options.sortOrder = \"asc\"\r\n }\r\n }\r\n return true\r\n };\r\n if (allowSorting && column && column.allowSorting) {\r\n if (needResetSorting && !(0, _type.isDefined)(column.groupIndex)) {\r\n (0, _iterator.each)(that._columns, function(index) {\r\n if (index !== columnIndex && this.sortOrder) {\r\n if (!(0, _type.isDefined)(this.groupIndex)) {\r\n delete this.sortOrder\r\n }\r\n delete this.sortIndex\r\n }\r\n })\r\n }\r\n if (isSortOrderValid(sortOrder)) {\r\n if (column.sortOrder !== sortOrder) {\r\n options.sortOrder = sortOrder\r\n }\r\n } else {\r\n if (\"none\" === sortOrder) {\r\n if (column.sortOrder) {\r\n options.sortIndex = void 0;\r\n options.sortOrder = void 0\r\n }\r\n } else {\r\n nextSortOrder(column)\r\n }\r\n }\r\n }\r\n that.columnOption(column.index, options)\r\n },\r\n getSortDataSourceParameters: function(useLocalSelector) {\r\n var that = this;\r\n var sortColumns = [];\r\n var sort = [];\r\n (0, _iterator.each)(that._columns, function() {\r\n if ((this.dataField || this.selector || this.calculateCellValue) && (0, _type.isDefined)(this.sortIndex) && !(0, _type.isDefined)(this.groupIndex)) {\r\n sortColumns[this.sortIndex] = this\r\n }\r\n });\r\n (0, _iterator.each)(sortColumns, function() {\r\n var sortOrder = this && this.sortOrder;\r\n if (isSortOrderValid(sortOrder)) {\r\n var sortItem = {\r\n selector: this.calculateSortValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue,\r\n desc: \"desc\" === this.sortOrder\r\n };\r\n if (this.sortingMethod) {\r\n sortItem.compare = this.sortingMethod.bind(this)\r\n }\r\n sort.push(sortItem)\r\n }\r\n });\r\n return sort.length > 0 ? sort : null\r\n },\r\n getGroupDataSourceParameters: function(useLocalSelector) {\r\n var group = [];\r\n (0, _iterator.each)(this.getGroupColumns(), function() {\r\n var selector = this.calculateGroupValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue;\r\n if (selector) {\r\n var groupItem = {\r\n selector: selector,\r\n desc: \"desc\" === this.sortOrder,\r\n isExpanded: !!this.autoExpandGroup\r\n };\r\n if (this.sortingMethod) {\r\n groupItem.compare = this.sortingMethod.bind(this)\r\n }\r\n group.push(groupItem)\r\n }\r\n });\r\n return group.length > 0 ? group : null\r\n },\r\n refresh: function(updateNewLookupsOnly) {\r\n var deferreds = [];\r\n (0, _iterator.each)(this._columns, function() {\r\n var lookup = this.lookup;\r\n if (lookup && !this.calculateDisplayValue) {\r\n if (updateNewLookupsOnly && lookup.valueMap) {\r\n return\r\n }\r\n if (lookup.update) {\r\n deferreds.push(lookup.update())\r\n }\r\n }\r\n });\r\n return _deferred.when.apply(_renderer.default, deferreds).done(resetColumnsCache.bind(null, this))\r\n },\r\n _updateColumnOptions: function(column, columnIndex) {\r\n column.selector = column.selector || function(data) {\r\n return column.calculateCellValue(data)\r\n };\r\n (0, _iterator.each)([\"calculateSortValue\", \"calculateGroupValue\", \"calculateDisplayValue\"], function(_, calculateCallbackName) {\r\n var calculateCallback = column[calculateCallbackName];\r\n if ((0, _type.isFunction)(calculateCallback) && !calculateCallback.originalCallback) {\r\n column[calculateCallbackName] = function(data) {\r\n return calculateCallback.call(column, data)\r\n };\r\n column[calculateCallbackName].originalCallback = calculateCallback;\r\n column[calculateCallbackName].columnIndex = columnIndex\r\n }\r\n });\r\n if ((0, _type.isString)(column.calculateDisplayValue)) {\r\n column.displayField = column.calculateDisplayValue;\r\n column.calculateDisplayValue = (0, _data.compileGetter)(column.displayField)\r\n }\r\n if (column.calculateDisplayValue) {\r\n column.displayValueMap = column.displayValueMap || {}\r\n }\r\n updateSerializers(column, column.dataType);\r\n var lookup = column.lookup;\r\n if (lookup) {\r\n updateSerializers(lookup, lookup.dataType)\r\n }\r\n var dataType = lookup ? lookup.dataType : column.dataType;\r\n if (dataType) {\r\n column.alignment = column.alignment || getAlignmentByDataType(dataType, this.option(\"rtlEnabled\"));\r\n column.format = column.format || _uiGrid_core2.default.getFormatByDataType(dataType);\r\n column.customizeText = column.customizeText || getCustomizeTextByDataType(dataType);\r\n column.defaultFilterOperations = column.defaultFilterOperations || !lookup && DATATYPE_OPERATIONS[dataType] || [];\r\n if (!(0, _type.isDefined)(column.filterOperations)) {\r\n setFilterOperationsAsDefaultValues(column)\r\n }\r\n column.defaultFilterOperation = column.filterOperations && column.filterOperations[0] || \"=\";\r\n column.showEditorAlways = (0, _type.isDefined)(column.showEditorAlways) ? column.showEditorAlways : \"boolean\" === dataType && !column.cellTemplate\r\n }\r\n },\r\n updateColumnDataTypes: function(dataSource) {\r\n var that = this;\r\n var dateSerializationFormat = that.option(\"dateSerializationFormat\");\r\n var firstItems = that._getFirstItems(dataSource);\r\n var isColumnDataTypesUpdated = false;\r\n (0, _iterator.each)(that._columns, function(index, column) {\r\n var i;\r\n var value;\r\n var dataType;\r\n var lookupDataType;\r\n var valueDataType;\r\n var lookup = column.lookup;\r\n if (_uiGrid_core2.default.isDateType(column.dataType) && void 0 === column.serializationFormat) {\r\n column.serializationFormat = dateSerializationFormat\r\n }\r\n if (lookup && _uiGrid_core2.default.isDateType(lookup.dataType) && void 0 === column.serializationFormat) {\r\n lookup.serializationFormat = dateSerializationFormat\r\n }\r\n if (column.calculateCellValue && firstItems.length) {\r\n if (!column.dataType || lookup && !lookup.dataType) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i]);\r\n if (!column.dataType) {\r\n valueDataType = getValueDataType(value);\r\n dataType = dataType || valueDataType;\r\n if (dataType && valueDataType && dataType !== valueDataType) {\r\n dataType = \"string\"\r\n }\r\n }\r\n if (lookup && !lookup.dataType) {\r\n valueDataType = getValueDataType(_uiGrid_core2.default.getDisplayValue(column, value, firstItems[i]));\r\n lookupDataType = lookupDataType || valueDataType;\r\n if (lookupDataType && valueDataType && lookupDataType !== valueDataType) {\r\n lookupDataType = \"string\"\r\n }\r\n }\r\n }\r\n if (dataType || lookupDataType) {\r\n if (dataType) {\r\n column.dataType = dataType\r\n }\r\n if (lookup && lookupDataType) {\r\n lookup.dataType = lookupDataType\r\n }\r\n isColumnDataTypesUpdated = true\r\n }\r\n }\r\n if (void 0 === column.serializationFormat || lookup && void 0 === lookup.serializationFormat) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i], true);\r\n if (void 0 === column.serializationFormat) {\r\n column.serializationFormat = getSerializationFormat(column.dataType, value)\r\n }\r\n if (lookup && void 0 === lookup.serializationFormat) {\r\n lookup.serializationFormat = getSerializationFormat(lookup.dataType, lookup.calculateCellValue(value, true))\r\n }\r\n }\r\n }\r\n }\r\n that._updateColumnOptions(column, index)\r\n });\r\n return isColumnDataTypesUpdated\r\n },\r\n _customizeColumns: function(columns) {\r\n var that = this;\r\n var customizeColumns = that.option(\"customizeColumns\");\r\n if (customizeColumns) {\r\n var hasOwnerBand = columns.some(function(column) {\r\n return (0, _type.isObject)(column.ownerBand)\r\n });\r\n if (hasOwnerBand) {\r\n updateIndexes(that)\r\n }\r\n customizeColumns(columns);\r\n assignColumns(that, createColumnsFromOptions(that, columns))\r\n }\r\n },\r\n updateColumns: function(dataSource, forceApplying) {\r\n var _this = this;\r\n if (!forceApplying) {\r\n this.updateSortingGrouping(dataSource)\r\n }\r\n if (!dataSource || dataSource.isLoaded()) {\r\n var sortParameters = dataSource ? dataSource.sort() || [] : this.getSortDataSourceParameters();\r\n var groupParameters = dataSource ? dataSource.group() || [] : this.getGroupDataSourceParameters();\r\n var filterParameters = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions().filter;\r\n this._customizeColumns(this._columns);\r\n updateIndexes(this);\r\n var columns = this._columns;\r\n return (0, _deferred.when)(this.refresh(true)).always(function() {\r\n if (_this._columns !== columns) {\r\n return\r\n }\r\n _this._updateChanges(dataSource, {\r\n sorting: sortParameters,\r\n grouping: groupParameters,\r\n filtering: filterParameters\r\n });\r\n fireColumnsChanged(_this)\r\n })\r\n }\r\n },\r\n _updateChanges: function(dataSource, parameters) {\r\n if (dataSource) {\r\n this.updateColumnDataTypes(dataSource);\r\n this._dataSourceApplied = true\r\n }\r\n if (!_uiGrid_core2.default.equalSortParameters(parameters.sorting, this.getSortDataSourceParameters())) {\r\n updateColumnChanges(this, \"sorting\")\r\n }\r\n if (!_uiGrid_core2.default.equalSortParameters(parameters.grouping, this.getGroupDataSourceParameters())) {\r\n updateColumnChanges(this, \"grouping\")\r\n }\r\n var dataController = this.getController(\"data\");\r\n if (dataController && !_uiGrid_core2.default.equalFilterParameters(parameters.filtering, dataController.getCombinedFilter())) {\r\n updateColumnChanges(this, \"filtering\")\r\n }\r\n updateColumnChanges(this, \"columns\")\r\n },\r\n updateSortingGrouping: function(dataSource, fromDataSource) {\r\n var that = this;\r\n var sortParameters;\r\n var isColumnsChanged;\r\n var updateSortGroupParameterIndexes = function(columns, sortParameters, indexParameterName) {\r\n (0, _iterator.each)(columns, function(index, column) {\r\n delete column[indexParameterName];\r\n if (sortParameters) {\r\n for (var i = 0; i < sortParameters.length; i++) {\r\n var selector = sortParameters[i].selector;\r\n var isExpanded = sortParameters[i].isExpanded;\r\n if (selector === column.dataField || selector === column.name || selector === column.selector || selector === column.calculateCellValue || selector === column.calculateGroupValue || selector === column.calculateDisplayValue) {\r\n column.sortOrder = column.sortOrder || (sortParameters[i].desc ? \"desc\" : \"asc\");\r\n if (void 0 !== isExpanded) {\r\n column.autoExpandGroup = isExpanded\r\n }\r\n column[indexParameterName] = i;\r\n break\r\n }\r\n }\r\n }\r\n })\r\n };\r\n if (dataSource) {\r\n sortParameters = _uiGrid_core2.default.normalizeSortingInfo(dataSource.sort());\r\n var groupParameters = _uiGrid_core2.default.normalizeSortingInfo(dataSource.group());\r\n var columnsGroupParameters = that.getGroupDataSourceParameters();\r\n var columnsSortParameters = that.getSortDataSourceParameters();\r\n if (!that._columns.length) {\r\n (0, _iterator.each)(groupParameters, function(index, group) {\r\n that._columns.push(group.selector)\r\n });\r\n (0, _iterator.each)(sortParameters, function(index, sort) {\r\n that._columns.push(sort.selector)\r\n });\r\n assignColumns(that, createColumnsFromOptions(that, that._columns))\r\n }\r\n if ((fromDataSource || !columnsGroupParameters && !that._hasUserState) && !_uiGrid_core2.default.equalSortParameters(groupParameters, columnsGroupParameters)) {\r\n updateSortGroupParameterIndexes(that._columns, groupParameters, \"groupIndex\");\r\n if (fromDataSource) {\r\n updateColumnChanges(that, \"grouping\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if ((fromDataSource || !columnsSortParameters && !that._hasUserState) && !_uiGrid_core2.default.equalSortParameters(sortParameters, columnsSortParameters)) {\r\n updateSortGroupParameterIndexes(that._columns, sortParameters, \"sortIndex\");\r\n if (fromDataSource) {\r\n updateColumnChanges(that, \"sorting\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if (isColumnsChanged) {\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n },\r\n updateFilter: function(filter, remoteFiltering, columnIndex, filterValue) {\r\n var that = this;\r\n if (!Array.isArray(filter)) {\r\n return filter\r\n }\r\n filter = (0, _extend.extend)([], filter);\r\n columnIndex = void 0 !== filter.columnIndex ? filter.columnIndex : columnIndex;\r\n filterValue = void 0 !== filter.filterValue ? filter.filterValue : filterValue;\r\n if ((0, _type.isString)(filter[0]) && \"!\" !== filter[0]) {\r\n var column = that.columnOption(filter[0]);\r\n if (remoteFiltering) {\r\n if ((0, _config.default)().forceIsoDateParsing && column && column.serializeValue && filter.length > 1) {\r\n filter[filter.length - 1] = column.serializeValue(filter[filter.length - 1], \"filter\")\r\n }\r\n } else {\r\n if (column && column.selector) {\r\n filter[0] = column.selector;\r\n filter[0].columnIndex = column.index\r\n }\r\n }\r\n } else {\r\n if ((0, _type.isFunction)(filter[0])) {\r\n filter[0].columnIndex = columnIndex;\r\n filter[0].filterValue = filterValue\r\n }\r\n }\r\n for (var i = 0; i < filter.length; i++) {\r\n filter[i] = that.updateFilter(filter[i], remoteFiltering, columnIndex, filterValue)\r\n }\r\n return filter\r\n },\r\n columnCount: function() {\r\n return this._columns ? this._columns.length : 0\r\n },\r\n columnOption: function(identifier, option, value, notFireEvent) {\r\n var that = this;\r\n var columns = that._columns.concat(that._commandColumns);\r\n var column = findColumn(columns, identifier);\r\n if (column) {\r\n if (1 === arguments.length) {\r\n return (0, _extend.extend)({}, column)\r\n }\r\n if ((0, _type.isString)(option)) {\r\n if (2 === arguments.length) {\r\n return columnOptionCore(that, column, option)\r\n } else {\r\n columnOptionCore(that, column, option, value, notFireEvent)\r\n }\r\n } else {\r\n if ((0, _type.isObject)(option)) {\r\n (0, _iterator.each)(option, function(optionName, value) {\r\n columnOptionCore(that, column, optionName, value, notFireEvent)\r\n })\r\n }\r\n }\r\n fireColumnsChanged(that)\r\n }\r\n },\r\n clearSorting: function() {\r\n var that = this;\r\n var columnCount = this.columnCount();\r\n that.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n that.columnOption(i, \"sortOrder\", void 0)\r\n }\r\n that.endUpdate()\r\n },\r\n clearGrouping: function() {\r\n var that = this;\r\n var columnCount = this.columnCount();\r\n that.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n that.columnOption(i, \"groupIndex\", void 0)\r\n }\r\n that.endUpdate()\r\n },\r\n getVisibleIndex: function(index, rowIndex) {\r\n var columns = this.getVisibleColumns(rowIndex);\r\n for (var i = columns.length - 1; i >= 0; i--) {\r\n if (columns[i].index === index) {\r\n return i\r\n }\r\n }\r\n return -1\r\n },\r\n getVisibleIndexByColumn: function(column, rowIndex) {\r\n var visibleColumns = this.getVisibleColumns(rowIndex);\r\n var visibleColumn = visibleColumns.filter(function(col) {\r\n return col.index === column.index && col.command === column.command\r\n })[0];\r\n return visibleColumns.indexOf(visibleColumn)\r\n },\r\n getVisibleColumnIndex: function(id, rowIndex) {\r\n var index = this.columnOption(id, \"index\");\r\n return this.getVisibleIndex(index, rowIndex)\r\n },\r\n addColumn: function(options) {\r\n var that = this;\r\n var column = createColumn(that, options);\r\n var index = that._columns.length;\r\n that._columns.push(column);\r\n if (column.isBand) {\r\n that._columns = createColumnsFromOptions(that, that._columns);\r\n column = that._columns[index]\r\n }\r\n column.added = options;\r\n updateIndexes(that, column);\r\n that.updateColumns(that._dataSource);\r\n that._checkColumns()\r\n },\r\n deleteColumn: function(id) {\r\n var that = this;\r\n var column = that.columnOption(id);\r\n if (column && column.index >= 0) {\r\n convertOwnerBandToColumnReference(that._columns);\r\n that._columns.splice(column.index, 1);\r\n if (column.isBand) {\r\n var childIndexes = that.getChildrenByBandColumn(column.index).map(function(column) {\r\n return column.index\r\n });\r\n that._columns = that._columns.filter(function(column) {\r\n return childIndexes.indexOf(column.index) < 0\r\n })\r\n }\r\n updateIndexes(that);\r\n that.updateColumns(that._dataSource)\r\n }\r\n },\r\n addCommandColumn: function(options) {\r\n var commandColumn = this._commandColumns.filter(function(column) {\r\n return column.command === options.command\r\n })[0];\r\n if (!commandColumn) {\r\n commandColumn = options;\r\n this._commandColumns.push(commandColumn)\r\n }\r\n },\r\n getUserState: function() {\r\n var columns = this._columns;\r\n var result = [];\r\n var i;\r\n\r\n function handleStateField(index, value) {\r\n if (void 0 !== columns[i][value]) {\r\n result[i][value] = columns[i][value]\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n result[i] = {};\r\n (0, _iterator.each)(USER_STATE_FIELD_NAMES, handleStateField)\r\n }\r\n return result\r\n },\r\n setName: function(column) {\r\n var dataField = column.dataField;\r\n if (!(0, _type.isDefined)(column.name) && (0, _type.isDefined)(dataField)) {\r\n column.name = dataField\r\n }\r\n },\r\n setUserState: function(state) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var ignoreColumnOptionNames = that.option(\"stateStoring.ignoreColumnOptionNames\");\r\n null === state || void 0 === state ? void 0 : state.forEach(this.setName);\r\n if (!ignoreColumnOptionNames) {\r\n ignoreColumnOptionNames = [];\r\n var commonColumnSettings = that.getCommonSettings();\r\n if (!that.option(\"columnChooser.enabled\")) {\r\n ignoreColumnOptionNames.push(\"visible\")\r\n }\r\n if (\"none\" === that.option(\"sorting.mode\")) {\r\n ignoreColumnOptionNames.push(\"sortIndex\", \"sortOrder\")\r\n }\r\n if (!commonColumnSettings.allowGrouping) {\r\n ignoreColumnOptionNames.push(\"groupIndex\")\r\n }\r\n if (!commonColumnSettings.allowFixing) {\r\n ignoreColumnOptionNames.push(\"fixed\", \"fixedPosition\")\r\n }\r\n if (!commonColumnSettings.allowResizing) {\r\n ignoreColumnOptionNames.push(\"width\", \"visibleWidth\")\r\n }\r\n var isFilterPanelHidden = !that.option(\"filterPanel.visible\");\r\n if (!that.option(\"filterRow.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValue\", \"selectedFilterOperation\")\r\n }\r\n if (!that.option(\"headerFilter.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValues\", \"filterType\")\r\n }\r\n }\r\n that._columnsUserState = state;\r\n that._ignoreColumnOptionNames = ignoreColumnOptionNames;\r\n that._hasUserState = !!state;\r\n updateColumnChanges(that, \"filtering\");\r\n that.init();\r\n if (dataSource) {\r\n dataSource.sort(that.getSortDataSourceParameters());\r\n dataSource.group(that.getGroupDataSourceParameters())\r\n }\r\n },\r\n _checkColumns: function() {\r\n var usedNames = {};\r\n var hasEditableColumnWithoutName = false;\r\n var duplicatedNames = [];\r\n this._columns.forEach(function(column) {\r\n var _column$columns;\r\n var name = column.name;\r\n var isBand = null === (_column$columns = column.columns) || void 0 === _column$columns ? void 0 : _column$columns.length;\r\n var isEditable = column.allowEditing && (column.dataField || column.setCellValue) && !isBand;\r\n if (name) {\r\n if (usedNames[name]) {\r\n duplicatedNames.push('\"'.concat(name, '\"'))\r\n }\r\n usedNames[name] = true\r\n } else {\r\n if (isEditable) {\r\n hasEditableColumnWithoutName = true\r\n }\r\n }\r\n });\r\n if (duplicatedNames.length) {\r\n _ui.default.log(\"E1059\", duplicatedNames.join(\", \"))\r\n }\r\n if (hasEditableColumnWithoutName) {\r\n _ui.default.log(\"E1060\")\r\n }\r\n },\r\n _createCalculatedColumnOptions: function(columnOptions, bandColumn) {\r\n var calculatedColumnOptions = {};\r\n var dataField = columnOptions.dataField;\r\n if (Array.isArray(columnOptions.columns) && columnOptions.columns.length || columnOptions.isBand) {\r\n calculatedColumnOptions.isBand = true;\r\n dataField = null\r\n }\r\n if (dataField) {\r\n if ((0, _type.isString)(dataField)) {\r\n var getter = (0, _data.compileGetter)(dataField);\r\n calculatedColumnOptions = {\r\n caption: (0, _inflector.captionize)(dataField),\r\n calculateCellValue: function(data, skipDeserialization) {\r\n var value = getter(data);\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n setCellValue: defaultSetCellValue,\r\n parseValue: function(text) {\r\n var column = this;\r\n var result;\r\n var parsedValue;\r\n if (\"number\" === column.dataType) {\r\n if ((0, _type.isString)(text) && column.format) {\r\n parsedValue = _number.default.parse(text);\r\n if ((0, _type.isNumeric)(parsedValue)) {\r\n result = parsedValue\r\n }\r\n } else {\r\n if ((0, _type.isDefined)(text) && (0, _type.isNumeric)(text)) {\r\n result = Number(text)\r\n }\r\n }\r\n } else {\r\n if (\"boolean\" === column.dataType) {\r\n if (text === column.trueText) {\r\n result = true\r\n } else {\r\n if (text === column.falseText) {\r\n result = false\r\n }\r\n }\r\n } else {\r\n if (_uiGrid_core2.default.isDateType(column.dataType)) {\r\n parsedValue = _date.default.parse(text, column.format);\r\n if (parsedValue) {\r\n result = parsedValue\r\n }\r\n } else {\r\n result = text\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.allowFiltering = true\r\n } else {\r\n calculatedColumnOptions.allowFiltering = !!columnOptions.calculateFilterExpression\r\n }\r\n calculatedColumnOptions.calculateFilterExpression = function() {\r\n return _filtering.default.defaultCalculateFilterExpression.apply(this, arguments)\r\n };\r\n calculatedColumnOptions.createFilterExpression = function(filterValue) {\r\n var result;\r\n if (this.calculateFilterExpression) {\r\n result = this.calculateFilterExpression.apply(this, arguments)\r\n }\r\n if ((0, _type.isFunction)(result)) {\r\n result = [result, \"=\", true]\r\n }\r\n if (result) {\r\n result.columnIndex = this.index;\r\n result.filterValue = filterValue\r\n }\r\n return result\r\n };\r\n if (!dataField || !(0, _type.isString)(dataField)) {\r\n (0, _extend.extend)(true, calculatedColumnOptions, {\r\n allowSorting: false,\r\n allowGrouping: false,\r\n calculateCellValue: function() {\r\n return null\r\n }\r\n })\r\n }\r\n if (bandColumn) {\r\n calculatedColumnOptions.allowFixing = false\r\n }\r\n if (columnOptions.dataType) {\r\n calculatedColumnOptions.userDataType = columnOptions.dataType\r\n }\r\n if (columnOptions.selectedFilterOperation && !(\"defaultSelectedFilterOperation\" in calculatedColumnOptions)) {\r\n calculatedColumnOptions.defaultSelectedFilterOperation = columnOptions.selectedFilterOperation\r\n }\r\n if (columnOptions.lookup) {\r\n calculatedColumnOptions.lookup = {\r\n calculateCellValue: function(value, skipDeserialization) {\r\n if (this.valueExpr) {\r\n value = this.valueMap && this.valueMap[value]\r\n }\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n updateValueMap: function() {\r\n this.valueMap = {};\r\n if (this.items) {\r\n var calculateValue = (0, _data.compileGetter)(this.valueExpr);\r\n var calculateDisplayValue = (0, _data.compileGetter)(this.displayExpr);\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n var displayValue = calculateDisplayValue(item);\r\n this.valueMap[calculateValue(item)] = displayValue;\r\n this.dataType = this.dataType || getValueDataType(displayValue);\r\n }\r\n }\r\n },\r\n update: function() {\r\n var that = this;\r\n var dataSource = that.dataSource;\r\n if (dataSource) {\r\n if ((0, _type.isFunction)(dataSource) && !_variable_wrapper.default.isWrapped(dataSource)) {\r\n dataSource = dataSource({})\r\n }\r\n if ((0, _type.isPlainObject)(dataSource) || dataSource instanceof _abstract_store.default || Array.isArray(dataSource)) {\r\n if (that.valueExpr) {\r\n var dataSourceOptions = (0, _utils.normalizeDataSourceOptions)(dataSource);\r\n dataSourceOptions.paginate = false;\r\n dataSource = new _data_source.DataSource(dataSourceOptions);\r\n return dataSource.load().done(function(data) {\r\n that.items = data;\r\n that.updateValueMap && that.updateValueMap()\r\n })\r\n }\r\n } else {\r\n _ui.default.log(\"E1016\")\r\n }\r\n } else {\r\n that.updateValueMap && that.updateValueMap()\r\n }\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.resizedCallbacks = (0, _callbacks.default)();\r\n if (columnOptions.resized) {\r\n calculatedColumnOptions.resizedCallbacks.add(columnOptions.resized.bind(columnOptions))\r\n }(0, _iterator.each)(calculatedColumnOptions, function(optionName) {\r\n if ((0, _type.isFunction)(calculatedColumnOptions[optionName]) && 0 !== optionName.indexOf(\"default\")) {\r\n var defaultOptionName = \"default\" + optionName.charAt(0).toUpperCase() + optionName.substr(1);\r\n calculatedColumnOptions[defaultOptionName] = calculatedColumnOptions[optionName]\r\n }\r\n });\r\n return calculatedColumnOptions\r\n },\r\n getRowCount: function() {\r\n this._rowCount = this._rowCount || _getRowCount(this);\r\n return this._rowCount\r\n },\r\n getRowIndex: function(columnIndex, alwaysGetRowIndex) {\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n return column && (alwaysGetRowIndex || column.visible && !(column.command || (0, _type.isDefined)(column.groupIndex))) ? getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex).length : 0\r\n },\r\n getChildrenByBandColumn: function(bandColumnIndex, onlyVisibleDirectChildren) {\r\n var that = this;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var result = _getChildrenByBandColumn(bandColumnIndex, bandColumnsCache.columnChildrenByIndex, !onlyVisibleDirectChildren);\r\n if (onlyVisibleDirectChildren) {\r\n return result.filter(function(column) {\r\n return column.visible && !column.command\r\n }).sort(function(column1, column2) {\r\n return column1.visibleIndex - column2.visibleIndex\r\n })\r\n }\r\n return result\r\n },\r\n isParentBandColumn: function(columnIndex, bandColumnIndex) {\r\n var result = false;\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var parentBandColumns = column && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns) {\r\n (0, _iterator.each)(parentBandColumns, function(_, bandColumn) {\r\n if (bandColumn.index === bandColumnIndex) {\r\n result = true;\r\n return false\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n isParentColumnVisible: function(columnIndex) {\r\n var result = true;\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var bandColumns = columnIndex >= 0 && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n bandColumns && (0, _iterator.each)(bandColumns, function(_, bandColumn) {\r\n result = result && bandColumn.visible;\r\n return result\r\n });\r\n return result\r\n },\r\n getColumnId: function(column) {\r\n if (column.command && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (isCustomCommandColumn(this, column)) {\r\n return \"type:\" + column.type\r\n }\r\n return \"command:\" + column.command\r\n }\r\n return column.index\r\n },\r\n getCustomizeTextByDataType: getCustomizeTextByDataType,\r\n getHeaderContentAlignment: function(columnAlignment) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n return \"left\" === columnAlignment ? \"right\" : \"left\"\r\n }\r\n return columnAlignment\r\n }\r\n }\r\n }())\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/text_area.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _window = require(\"../core/utils/window\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _index = require(\"../events/utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../events/pointer\"));\r\nvar _uiEventsEmitterGesture = _interopRequireDefault(require(\"../ui/scroll_view/ui.events.emitter.gesture.scroll\"));\r\nvar _size = require(\"../core/utils/size\");\r\nvar _utils = require(\"./text_box/utils.scroll\");\r\nvar _text_box = _interopRequireDefault(require(\"./text_box\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TEXTAREA_CLASS = \"dx-textarea\";\r\nvar TEXTEDITOR_INPUT_CLASS = \"dx-texteditor-input\";\r\nvar TEXTEDITOR_INPUT_CLASS_AUTO_RESIZE = \"dx-texteditor-input-auto-resize\";\r\nvar TextArea = _text_box.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n spellcheck: true,\r\n minHeight: void 0,\r\n maxHeight: void 0,\r\n autoResizeEnabled: false\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTAREA_CLASS);\r\n this.callBase();\r\n this.setAria(\"multiline\", \"true\")\r\n },\r\n _renderContentImpl: function() {\r\n this._updateInputHeight();\r\n this.callBase()\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._renderScrollHandler()\r\n },\r\n _createInput: function() {\r\n var $input = (0, _renderer.default)(\"