{"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:///./src/views/plantillas/formulario/plantillaFormulario.html","webpack:///./src/views/plantillas/formulario/plantillaFormulario.ts","webpack:///./src/views/plantillas/formulario/plantillaFormulario.ts?72f0","webpack:///./src/views/plantillas/formulario/plantillaFormulario.vue","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:///./src/shared/dtos/categories.ts","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:///./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:///./src/shared/dtos/formatted-category.ts","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:///./src/views/plantillas/formulario/plantillaFormulario.css?a98d","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","_vm","_h","$createElement","_c","_self","staticClass","attrs","ref","$event","saveTemplate","_v","_s","$t","templateTitle","editTemplate","$$v","$set","expression","categories","scopedSlots","_u","fn","treeViewName","treeView_itemSelectionChanged","onTreeItemClick","treeBoxValue","cancelTemplate","_e","staticRenderFns","loading","search","beforeTreeBoxValue","selectedCategory","categoriesDescription","offerOrDemand","withWidth","selectedTemplate","offer","demand","formattedCategoriesList","templateFields","templateEditMode","hasPermission","updateTemplates","isNaN","getTemplateById","then","assignCategoryDescriptionsToLabel","assignOfferOrDemandToLabel","setTemplateEditMode","getFormattedCategories","confirm","$tc","res","toast","assignCategoryToTemplate","$router","catch","err","level","categoryFirstLevelId","categorySecondLevelId","categoryThirdLevelId","categoryFourthLevelId","categoryFirstLevelDescription","categorySecondLevelDescription","categoryThirdLevelDescription","categoryFourthLevelDescription","showSelectedCategoryExpanded","contenido","substring","getSelectedNodeKeys","categoryId","expanded","active","components","ValidationProvider","ItiIconButton","DxTextBox","DxNumberBox","DxTextArea","DxValidationSummary","DxDropDownBox","DxTreeView","DxCheckBox","DxDataGrid","DxSelection","DxPaging","DxFilterRow","DxScrolling","VCard","VCardText","VCardTitle","VContainer","VFlex","VForm","VLayout","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","Categories","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","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","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","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","idSelectedTemplate","selectedTemplateVersion","lerCodes","sectors","cnaeCodes","categoriesFirstLevel","selectedField","fieldTypes","unitTypes","removeValues","idLastFieldCreated","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","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","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","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","label","_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","_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","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","code","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","race","immediate","38","assign","39","chunkSize","windowBits","memLevel","gzip","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","FormattedCategory","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,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,aAAc,MACd,QAAS,MACT,QAAS,MACT,QAAS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","file":"js/chunk-9d752370.7ba893b6.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","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)+\" \")])]),_c('v-card-text',[_c('v-container',{staticClass:\"pt-0\"},[_c('v-layout',{attrs:{\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"xs12\":\"\",\"mb-3\":\"\"}},[_c('div',[_vm._v(_vm._s(_vm.$t('plantillas.title')))]),_c('DxTextBox',{attrs:{\"placeholder\":_vm.$t('plantillas.title'),\"max-length\":\"50\",\"color\":\"#f3f3f3\"},model:{value:(_vm.editTemplate.title),callback:function ($$v) {_vm.$set(_vm.editTemplate, \"title\", $$v)},expression:\"editTemplate.title\"}},[_c('DxValidator',[_c('DxRequiredRule',{attrs:{\"message\":_vm.$t('vee-validate.required')}})],1)],1)],1),_c('v-flex',{attrs:{\"xs12\":\"\",\"mb-3\":\"\"}},[_c('div',[_vm._v(_vm._s(_vm.$t('plantillas.description')))]),_c('DxTextArea',{attrs:{\"placeholder\":_vm.$t('plantillas.description'),\"max-length\":\"150\"},model:{value:(_vm.editTemplate.description),callback:function ($$v) {_vm.$set(_vm.editTemplate, \"description\", $$v)},expression:\"editTemplate.description\"}},[_c('DxValidator',[_c('DxRequiredRule',{attrs:{\"message\":_vm.$t('vee-validate.required')}})],1)],1)],1),_c('v-flex',{attrs:{\"xs9\":\"\",\"mb-3\":\"\"}},[_c('div',[_vm._v(_vm._s(_vm.$t('plantillas.category')))]),_c('DxDropDownBox',{attrs:{\"show-clear-button\":true,\"data-source\":_vm.categories,\"value-expr\":\"categoryId\",\"display-expr\":\"description\",\"placeholder\":_vm.$t('mensajes-plantillas.info-category')},scopedSlots:_vm._u([{key:\"content\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('DxTreeView',{ref:_vm.treeViewName,attrs:{\"data-source\":_vm.categories,\"select-by-click\":true,\"data-structure\":\"plain\",\"key-expr\":\"categoryId\",\"parent-id-expr\":\"nodeParentId\",\"selection-mode\":\"single\",\"display-expr\":\"description\",\"height\":\"300\"},on:{\"selection-changed\":function($event){return _vm.treeView_itemSelectionChanged($event)},\"item-click\":function($event){return _vm.onTreeItemClick($event)}}})]}}],null,false,75397688),model:{value:(_vm.treeBoxValue),callback:function ($$v) {_vm.treeBoxValue=$$v},expression:\"treeBoxValue\"}},[_c('DxValidator',[_c('DxRequiredRule',{attrs:{\"message\":_vm.$t('vee-validate.required')}})],1)],1)],1),_c('v-flex',{attrs:{\"xs9\":\"\",\"mb-3\":\"\"}},[_c('DxCheckBox',{attrs:{\"id\":\"checkActive\",\"text\":_vm.$t('activo')},model:{value:(_vm.editTemplate.active),callback:function ($$v) {_vm.$set(_vm.editTemplate, \"active\", $$v)},expression:\"editTemplate.active\"}})],1),_c('v-flex',{attrs:{\"xs9\":\"\",\"mb-3\":\"\"}},[_c('DxCheckBox',{attrs:{\"id\":\"checkOffer\",\"text\":_vm.$t('plantillas.oferta')},model:{value:(_vm.editTemplate.offer),callback:function ($$v) {_vm.$set(_vm.editTemplate, \"offer\", $$v)},expression:\"editTemplate.offer\"}})],1),_c('v-flex',{attrs:{\"xs7\":\"\",\"mb-3\":\"\"}},[_c('DxCheckBox',{attrs:{\"id\":\"checkDemand\",\"text\":_vm.$t('plantillas.demanda')},model:{value:(_vm.editTemplate.demand),callback:function ($$v) {_vm.$set(_vm.editTemplate, \"demand\", $$v)},expression:\"editTemplate.demand\"}})],1),_c('v-flex',{attrs:{\"xs7\":\"\"}},[_c('DxValidationSummary',{attrs:{\"id\":\"summary\"}})],1),_c('v-flex',{attrs:{\"xs12\":\"\",\"d-flex\":\"\",\"flex-row-reverse\":\"\"}},[_c('DxButton',{attrs:{\"use-submit-behavior\":true,\"text\":_vm.$t('botones.guardar'),\"type\":\"default\"}}),_c('DxButton',{attrs:{\"text\":_vm.$t('botones.cancelar'),\"type\":\"default\"},on:{\"click\":_vm.cancelTemplate}})],1)],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 { FormattedCategory } from '@/shared/dtos/formatted-category';\nimport { Categories } from '@/shared/dtos/categories';\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() id !: number;\n public loading = false;\n public search = \"\";\n public treeBoxValue: any = null;\n public beforeTreeBoxValue: any = null;\n public treeViewName = 'tree-view';\n public selectedCategory = new FormattedCategory();\n public categoriesDescription = \"\";\n public offerOrDemand = \"\";\n\n\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 editTemplate() {\n if (!templatesModule.selectedTemplate.offer) templatesModule.selectedTemplate.offer = false;\n if (!templatesModule.selectedTemplate.demand) templatesModule.selectedTemplate.demand = false;\n return templatesModule.selectedTemplate;\n }\n\n public get categories() {\n return templatesModule.formattedCategoriesList;\n }\n\n public get fields() {\n return templatesModule.templateFields;\n }\n\n public get templateEditMode() {\n return templatesModule.templateEditMode;\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 created() {\n if (!isNaN(this.id) && this.id != 0) {\n templatesModule.getTemplateById(this.id).then(() => {\n this.assignCategoryDescriptionsToLabel();\n this.assignOfferOrDemandToLabel();\n this.beforeTreeBoxValue = this.treeBoxValue;\n });\n templatesModule.setTemplateEditMode(true);\n }\n }\n\n public mounted() {\n templatesModule.getFormattedCategories();\n }\n\n public async saveTemplate() {\n itiMessageService.confirm(this.$tc('mensajes-plantillas.pregunta-guardar'), this.$tc('mensajes.confirmar'), (res) => {\n if (res) {\n if (!this.editTemplate.offer && !this.editTemplate.demand) {\n itiMessageService.toast(this.$tc('mensajes-plantillas.info-error-oferta-demanda'), 'error', 2000);\n return;\n }\n this.assignCategoryToTemplate();\n this.assignOfferOrDemandToLabel();\n templatesModule.saveTemplate(this.editTemplate)\n .then(async () => {\n await templatesModule.getTemplateById(this.editTemplate.id);\n this.assignCategoryDescriptionsToLabel();\n if (this.id == 0) this.$router.push({ name: 'PlantillaFormulario', params: { id: templatesModule.selectedTemplate.id.toString() } });\n templatesModule.setTemplateEditMode(true);\n itiMessageService.toast(this.$tc('mensajes-plantillas.ok'), 'success', 3000);\n this.$router.push({ name: 'ListaPlantillas' });\n })\n .catch((err) => {\n itiMessageService.toast(this.$tc('mensajes-plantillas.info-error'), 'error', 2000);\n });\n }\n\n });\n }\n\n public cancelTemplate() {\n itiMessageService.confirm(this.$tc('mensajes-plantillas.pregunta-salir'), this.$tc('mensajes.confirmar'), (res) => {\n if (res) {\n // if (this.editTemplate.version != null) {\n templatesModule.getTemplateById(templatesModule.selectedTemplate.id);\n this.treeBoxValue = this.beforeTreeBoxValue;\n this.$router.push({ name: 'ListaPlantillas' });\n // } else {\n // this.$router.push({ name: 'ListaPlantillas' });\n // }\n }\n });\n }\n\n public assignCategoryToTemplate() {\n if (!this.editTemplate.categories) {\n this.editTemplate.categories = new Categories();\n this.editTemplate.categories.id = 0;\n }\n\n switch (this.selectedCategory.level) {\n case 1: {\n this.editTemplate.categories.categoryFirstLevelId = this.selectedCategory.id;\n this.editTemplate.categories.categorySecondLevelId = 0;\n this.editTemplate.categories.categoryThirdLevelId = 0;\n this.editTemplate.categories.categoryFourthLevelId = 0;\n break;\n }\n case 2: {\n this.editTemplate.categories.categorySecondLevelId = this.selectedCategory.id;\n this.editTemplate.categories.categoryThirdLevelId = 0;\n this.editTemplate.categories.categoryFourthLevelId = 0;\n break;\n }\n case 3: {\n this.editTemplate.categories.categoryThirdLevelId = this.selectedCategory.id;\n this.editTemplate.categories.categoryFourthLevelId = 0;\n break;\n }\n case 4: {\n this.editTemplate.categories.categoryFourthLevelId = this.selectedCategory.id;\n break;\n }\n }\n }\n\n public async assignOfferOrDemandToLabel() {\n this.offerOrDemand = \"\";\n if (this.editTemplate.offer) {\n this.offerOrDemand = this.$tc('plantillas.oferta');\n if (this.editTemplate.demand) {\n this.offerOrDemand = this.offerOrDemand + \", \" + this.$tc('plantillas.demanda');\n }\n } else if (this.editTemplate.demand) {\n this.offerOrDemand = this.$tc('plantillas.demanda');\n }\n }\n public async assignCategoryDescriptionsToLabel() {\n if (this.editTemplate.categories.categoryFourthLevelId != null) {\n this.categoriesDescription = this.editTemplate.categories.categoryFirstLevelDescription + \" - \" + this.editTemplate.categories.categorySecondLevelDescription + \" - \"\n + this.editTemplate.categories.categoryThirdLevelDescription + \" - \" + this.editTemplate.categories.categoryFourthLevelDescription;\n this.treeBoxValue = \"4_\" + this.editTemplate.categories.categoryFourthLevelId;\n } else if (this.editTemplate.categories.categoryThirdLevelId != null) {\n this.categoriesDescription = this.editTemplate.categories.categoryFirstLevelDescription + \" - \" + this.editTemplate.categories.categorySecondLevelDescription + \" - \"\n + this.editTemplate.categories.categoryThirdLevelDescription;\n this.treeBoxValue = \"3_\" + this.editTemplate.categories.categoryThirdLevelId;\n } else if (this.editTemplate.categories.categorySecondLevelId != null) {\n this.categoriesDescription = this.editTemplate.categories.categoryFirstLevelDescription + \" - \" + this.editTemplate.categories.categorySecondLevelDescription;\n this.treeBoxValue = \"2_\" + this.editTemplate.categories.categorySecondLevelId;\n } else if (this.editTemplate.categories.categoryFirstLevelId != null) {\n this.categoriesDescription = this.editTemplate.categories.categoryFirstLevelDescription;\n this.treeBoxValue = \"1_\" + this.editTemplate.categories.categoryFirstLevelId;\n }\n this.showSelectedCategoryExpanded();\n }\n\n public editTemplateParams() {\n templatesModule.getTemplateById(templatesModule.selectedTemplate.id);\n templatesModule.setTemplateEditMode(false);\n this.beforeTreeBoxValue = this.treeBoxValue;\n }\n\n // public async createNewField() {\n // templatesModule.newField();\n // if ((!isNaN(templatesModule.selectedTemplate.id) && templatesModule.selectedTemplate.id != 0)) {\n // this.$router.push({ name: 'NuevoCampoFormulario', params: { idTemplate: templatesModule.selectedTemplate.id.toString(), idField: '0' } });\n // } else {\n // this.$router.push({ name: 'NuevoCampoFormulario', params: { idTemplate: '0', idField: '0' } });\n // }\n // }\n\n // public deleteField(field: Field) {\n // itiMessageService.confirm(this.$tc('mensajes-plantillas.pregunta-borrar-campo'), this.$tc('mensajes.confirmar'), (res) => {\n // if (res) {\n // templatesModule.deleteFieldFromTemplate(field);\n // templatesModule.getValuesByFieldId(field.id) //Eliminar cada uno de los valores de ListValours\n // .then(() => {\n // templatesModule.values.forEach(element => {\n // templatesModule.deleteValues(element);\n // });\n // });\n // templatesModule.saveTemplate(this.editTemplate)\n // .then(() => {\n // itiMessageService.toast(this.$tc('mensajes-plantillas.info-eliminar'), 'success', 3000);\n // })\n // .catch(() => {\n // itiMessageService.toast(this.$tc('mensajes-plantillas.info-error'), 'error', 2000);\n // });\n // }\n // });\n // }\n\n // public editFieldParams(field: Field) {\n // templatesModule.setFieldToEdit(field);\n // if (field.id) {\n // this.$router.push({ name: 'NuevoCampoFormulario', params: { idTemplate: templatesModule.selectedTemplate.id.toString(), idField: field.id.toString() } });\n // } else {\n // this.$router.push({ name: 'NuevoCampoFormulario' });\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 treeView_itemSelectionChanged(e: any) {\n this.treeBoxValue = e.component.getSelectedNodeKeys();\n }\n\n public onTreeItemClick(e: any) {\n this.selectedCategory = e.itemData;\n }\n\n public showSelectedCategoryExpanded() {\n this.categories.forEach(element => {\n if (element.categoryId == this.treeBoxValue) {\n element.expanded = true;\n return;\n }\n });\n }\n\n public translateState(active: boolean) {\n return this.$tc(active.toString());\n\n }\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!./plantillaFormulario.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!./plantillaFormulario.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./plantillaFormulario.html?vue&type=template&id=88d8f9f0&scoped=true&\"\nimport script from \"./plantillaFormulario.ts?vue&type=script&lang=ts&\"\nexport * from \"./plantillaFormulario.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./plantillaFormulario.css?vue&type=style&index=0&id=88d8f9f0&scoped=true&lang=css&\"\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 \"88d8f9f0\",\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 { 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 { VFlex } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCardTitle,VContainer,VFlex,VForm,VLayout})\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","import { ItiBaseDto } from '@/iti-core-vue';\n\nexport class Categories extends ItiBaseDto {\n public id !: number;\n public categoryFirstLevelId !: number; \n public categoryFirstLevelCode !: string; \n public categoryFirstLevelDescription !: string; \n public categorySecondLevelId !: number; \n public categorySecondLevelCode !: string; \n public categorySecondLevelDescription !: string;\n public categoryThirdLevelId !: number; \n public categoryThirdLevelCode !: string;\n public categoryThirdLevelDescription !: string;\n public categoryFourthLevelId !: number; \n public categoryFourthLevelCode !: string; \n public categoryFourthLevelDescription !: string; \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","/**\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)(\"