{"version":3,"sources":["webpack:///./src/views/dashboard/extraDegree.vue?7294","webpack:///./node_modules/whatwg-fetch/fetch.js","webpack:///src/views/dashboard/extraDegree.vue","webpack:///./src/views/dashboard/extraDegree.vue?19c0","webpack:///./src/views/dashboard/extraDegree.vue?9a15","webpack:///./node_modules/devextreme-vue/data-grid.js","webpack:///./node_modules/devextreme/esm/ui/shared/accessibility.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/m_accessibility.js","webpack:///./node_modules/devextreme/esm/events/double_click.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/column_state_mixin/m_column_state_mixin.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/m_modules.js","webpack:///./node_modules/devextreme/esm/format_helper.js","webpack:///./node_modules/devextreme/esm/ui/shared/filtering.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/m_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/views/m_columns_view.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/column_headers/m_column_headers.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_headers.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/const.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/m_columns_controller_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/m_columns_controller.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_columns_controller.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/data_controller/m_data_controller.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_data_controller.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/data_source_adapter/m_data_source_adapter.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_data_source_adapter.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/sorting/m_sorting_mixin.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/sorting/m_sorting.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/sorting.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/views/m_rows_view.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/rows.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/context_menu/m_context_menu.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/context_menu.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/error_handling/m_error_handling.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/error_handling.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/views/m_grid_view.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/grid_view.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/header_panel/m_header_panel.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/header_panel.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_widget_base.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/state_storing/m_state_storing_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/state_storing/m_state_storing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/state_storing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/selection/m_selection.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/selection.js","webpack:///./node_modules/devextreme/esm/ui/tree_view/ui.tree_view.base.js","webpack:///./node_modules/devextreme/esm/ui/tree_view/ui.tree_view.search.js","webpack:///./node_modules/devextreme/esm/ui/tree_view.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/column_chooser/m_column_chooser.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_chooser.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_collapsed.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_expanded.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/master_detail/m_master_detail.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/master_detail.js","webpack:///./node_modules/devextreme/esm/ui/shared/ui.editor_factory_mixin.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editor_factory/m_editor_factory.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editor_factory.js","webpack:///./node_modules/devextreme/esm/ui/dialog.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/const.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_editing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_row_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_row_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_form_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_form_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_cell_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_cell_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/validating/m_validating.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/validating.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_data_loader/m_virtual_data_loader.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_scrolling/m_virtual_scrolling_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_scrolling/m_virtual_scrolling.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/virtual_scrolling.js","webpack:///./node_modules/devextreme/esm/ui/overlay/utils.js","webpack:///./node_modules/devextreme/esm/ui/menu/ui.submenu.js","webpack:///./node_modules/devextreme/esm/ui/menu/ui.menu.js","webpack:///./node_modules/devextreme/esm/ui/menu.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_row.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_row.js","webpack:///./node_modules/devextreme/esm/ui/list/modules/search.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/header_filter/m_header_filter_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/header_filter/m_header_filter.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/header_filter.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/between.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/ui.filter_operations_dictionary.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_custom_operations.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_sync.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_sync.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_builder.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_builder.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_panel.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_panel.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/search/m_search.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/search.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/grid_pager.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/utils/get_element_width.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/resizable_container.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/base_pager_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/pager_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/info.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/keyboard_action_context.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/light_button.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/consts.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/page.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/large.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/common/editor_state_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/common/editor_label_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/number_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/utils/calculate_values_fitted_width.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/small.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/page_index_selector.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/drop_down_editors/select_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/small.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/large.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/selector.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/content.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pager.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pager.j.js","webpack:///./node_modules/devextreme/esm/ui/pager.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/pager/m_pager.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/pager.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/columns_resizing_reordering/m_columns_resizing_reordering.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/columns_resizing_reordering.js","webpack:///./node_modules/devextreme/esm/__internal/utils/memoize.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/const.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/dom.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_aggregate_calculator.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/keyboard_navigation.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/summary/m_summary.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/column_fixing/m_column_fixing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_fixing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/adaptivity/m_adaptivity.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_columns/m_virtual_columns_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/adaptivity.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_columns/m_virtual_columns.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/virtual_columns.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_button.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/m_export.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/export/m_export.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/focus/m_focus_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/focus/m_focus.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/focus/m_focus.js","webpack:///./node_modules/devextreme/esm/__internal/m_sortable.js","webpack:///./node_modules/devextreme/esm/ui/sortable.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/const.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/dom.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/m_row_dragging.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/row_dragging.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_widget.js","webpack:///./node_modules/devextreme/esm/ui/data_grid.js","webpack:///./src/views/dashboard/extraDegree.vue?83b9"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","on","$event","back","_v","_s","$t","$i18n","locale","degree","showColumnLines","showRowLines","showBorders","rowAlternationEnabled","onSaving","pageSizes","placeholder","staticRenderFns","global","globalThis","self","support","searchParams","iterable","Symbol","blob","Blob","e","formData","arrayBuffer","isDataView","obj","DataView","prototype","isPrototypeOf","viewClasses","isArrayBufferView","ArrayBuffer","isView","indexOf","Object","toString","call","normalizeName","name","String","test","TypeError","toLowerCase","normalizeValue","value","iteratorFor","items","iterator","next","shift","done","undefined","Headers","headers","map","forEach","append","Array","isArray","header","getOwnPropertyNames","consumed","body","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","onload","result","onerror","error","readBlobAsArrayBuffer","FileReader","promise","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","Uint8Array","chars","length","i","fromCharCode","join","bufferClone","slice","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","get","type","rejected","Error","isConsumed","byteOffset","then","text","decode","json","JSON","parse","oldValue","has","hasOwnProperty","callback","thisArg","keys","push","values","entries","methods","normalizeMethod","method","upcased","toUpperCase","Request","input","options","url","credentials","mode","signal","referrer","cache","reParamSearch","replace","Date","getTime","reQueryString","form","trim","split","bytes","decodeURIComponent","parseHeaders","rawHeaders","preProcessedHeaders","substr","line","parts","key","Response","bodyInit","status","ok","statusText","clone","response","redirectStatuses","redirect","RangeError","location","DOMException","err","message","stack","create","constructor","fetch","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","fixUrl","href","getAllResponseHeaders","responseURL","responseText","setTimeout","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","props","components","DxDataGrid","DxColumn","DxEditing","DxSearchPanel","DxPager","DxPaging","DxColumnChooser","DxLoadPanel","DxRequiredRule","DxNumericRule","DxRangeRule","dialog","rtlEnabled","overlay","dataUpdata","getDegree","changes","data","StudentGuid","studentGuid","Note","notex","Degree","extraDegree","axios","put","examGuid","id","extraDegrees","res","$swal","fire","title","icon","confirmButtonText","toast","position","showConfirmButton","timer","timerProgressBar","didOpen","stopTimer","resumeTimer","catch","finally","$router","go","component","VBtn","VCard","VCol","VContainer","VIcon","VRow","VSpacer","__importDefault","mod","__esModule","defineProperty","exports","DxHide","DxHeaderFilter","DxGroupPanel","DxGroupOperationDescriptions","DxGroupItem","DxGroupingTexts","DxGrouping","DxFrom","DxFormItem","DxFormat","DxForm","DxFilterRow","DxFilterPanelTexts","DxFilterPanel","DxFilterOperationDescriptions","DxFilterBuilderPopup","DxFilterBuilder","DxFieldLookup","DxField","DxExportTexts","DxExport","DxEmailRule","DxEditingTexts","DxDataGridSelection","DxDataGridHeaderFilterTexts","DxDataGridHeaderFilterSearch","DxDataGridHeaderFilter","DxCustomRule","DxCustomOperation","DxCursorOffset","DxCompareRule","DxColumnLookup","DxColumnHeaderFilterSearch","DxColumnHeaderFilter","DxColumnFixingTexts","DxColumnFixing","DxColumnChooserSelection","DxColumnChooserSearch","DxCollision","DxColCountByScreen","DxChange","DxButton","DxBoundaryOffset","DxAt","DxAsyncRule","DxAnimation","DxValueFormat","DxValidationRule","DxTotalItem","DxToolbarItem","DxToolbar","DxTo","DxTexts","DxSummaryTexts","DxSummary","DxStringLengthRule","DxStateStoring","DxSorting","DxSortByGroupSummaryInfo","DxShow","DxSelection","DxSearch","DxScrolling","DxRowDragging","DxRemoteOperations","DxPosition","DxPopup","DxPatternRule","DxOperationDescriptions","DxOffset","DxMy","DxMasterDetail","DxLookup","DxLabel","DxKeyboardNavigation","DxItem","data_grid_1","index_1","index_2","createComponent","accessKey","activeStateEnabled","Boolean","allowColumnReordering","allowColumnResizing","autoNavigateToFocusedRow","cacheEnabled","cellHintEnabled","columnAutoWidth","columnChooser","columnFixing","columnHidingEnabled","columnMinWidth","Number","columnResizingMode","columns","columnWidth","customizeColumns","Function","dataRowTemplate","dataSource","dateSerializationFormat","disabled","editing","elementAttr","errorRowEnabled","export","filterBuilder","filterBuilderPopup","filterPanel","filterRow","filterSyncEnabled","filterValue","focusedColumnIndex","focusedRowEnabled","focusedRowIndex","focusedRowKey","grouping","groupPanel","headerFilter","height","highlightChanges","hint","hoverStateEnabled","keyboardNavigation","keyExpr","loadPanel","masterDetail","noDataText","onAdaptiveDetailRowPreparing","onCellClick","onCellDblClick","onCellHoverChanged","onCellPrepared","onContentReady","onContextMenuPreparing","onDataErrorOccurred","onDisposing","onEditCanceled","onEditCanceling","onEditingStart","onEditorPrepared","onEditorPreparing","onExporting","onFocusedCellChanged","onFocusedCellChanging","onFocusedRowChanged","onFocusedRowChanging","onInitialized","onInitNewRow","onKeyDown","onOptionChanged","onRowClick","onRowCollapsed","onRowCollapsing","onRowDblClick","onRowExpanded","onRowExpanding","onRowInserted","onRowInserting","onRowPrepared","onRowRemoved","onRowRemoving","onRowUpdated","onRowUpdating","onRowValidating","onSaved","onSelectionChanged","onToolbarPreparing","pager","paging","remoteOperations","renderAsync","repaintChangesOnly","rowDragging","rowTemplate","scrolling","searchPanel","selectedRowKeys","selection","selectionFilter","showColumnHeaders","sortByGroupSummaryInfo","sorting","stateStoring","summary","syncLookupFilterValues","tabIndex","toolbar","twoWayBindingEnabled","visible","width","wordWrapEnabled","emits","computed","instance","$_instance","beforeCreate","$_WidgetClass","default","$_hasAsyncTemplate","$_expectedChildren","column","isCollectionItem","optionName","dataGridHeaderFilter","dataGridSelection","createConfigurationComponent","hide","show","$_optionName","ignoreEmptyValue","reevaluate","validationCallback","$_isCollectionItem","$_predefinedProps","x","y","cssClass","onClick","template","insertAfterKey","insertBeforeKey","lg","md","sm","xs","alignment","allowEditing","allowExporting","allowFiltering","allowFixing","allowGrouping","allowHeaderFiltering","allowHiding","allowReordering","allowResizing","allowSearch","allowSorting","autoExpandGroup","buttons","calculateCellValue","calculateDisplayValue","calculateFilterExpression","calculateGroupValue","calculateSortValue","caption","cellTemplate","customizeText","dataField","dataType","editCellTemplate","editorOptions","encodeHtml","falseText","filterOperations","filterType","filterValues","fixed","fixedPosition","format","formItem","groupCellTemplate","groupIndex","headerCellTemplate","hidingPriority","isBand","lookup","minWidth","ownerBand","selectedFilterOperation","setCellValue","showEditorAlways","showInColumnChooser","showWhenGrouped","sortIndex","sortingMethod","sortOrder","trueText","validationRules","visibleIndex","AsyncRule","button","columnHeaderFilter","columnLookup","CompareRule","CustomRule","EmailRule","NumericRule","PatternRule","RangeRule","RequiredRule","StringLengthRule","validationRule","emptyPanelText","enabled","search","searchTimeout","columnChooserSearch","columnChooserSelection","timeout","allowSelectAll","recursive","selectByClick","texts","columnFixingTexts","fix","leftPosition","rightPosition","unfix","groupInterval","searchMode","columnHeaderFilterSearch","searchExpr","allowClearing","displayExpr","valueExpr","comparisonTarget","comparisonType","dataTypes","editorTemplate","hasValue","dataGridHeaderFilterSearch","dataGridHeaderFilterTexts","cancel","emptyValue","deferred","selectAllMode","showCheckBoxesMode","allowAdding","allowDeleting","allowUpdating","confirmDelete","editColumnName","editRowKey","newRowPosition","popup","refreshMode","selectTextOnEditStart","startEditAction","useIcons","change","editingTexts","addRow","cancelAllChanges","cancelRowChanges","confirmDeleteMessage","confirmDeleteTitle","deleteRow","editRow","saveAllChanges","saveRowChanges","undeleteRow","validationCancelChanges","allowExportSelectedData","formats","exportTexts","exportAll","exportSelectedRows","exportTo","fieldLookup","allowHierarchicalFields","bindingOptions","customOperations","fields","filterOperationDescriptions","focusStateEnabled","groupOperationDescriptions","groupOperations","maxGroupLevel","onValueChanged","customOperation","field","animation","closeOnOutsideClick","container","contentTemplate","copyRootClassesToWrapper","deferRendering","dragAndResizeArea","dragEnabled","dragOutsideBoundary","enableBodyScroll","fullScreen","hideOnOutsideClick","hideOnParentScroll","maxHeight","maxWidth","minHeight","onHidden","onHiding","onResize","onResizeEnd","onResizeStart","onShowing","onShown","onTitleRendered","resizeEnabled","restorePosition","shading","shadingColor","showCloseButton","showTitle","titleTemplate","toolbarItems","wrapperAttr","between","contains","endsWith","equal","greaterThan","greaterThanOrEqual","isBlank","isNotBlank","lessThan","lessThanOrEqual","notContains","notEqual","startsWith","filterEnabled","filterPanelTexts","clearFilter","createFilter","filterEnabledHint","applyFilter","applyFilterText","betweenEndText","betweenStartText","operationDescriptions","resetOperationText","showAllText","showOperationChooser","alignItemLabels","alignItemLabelsInAllGroups","colCount","colCountByScreen","customizeItem","labelLocation","labelMode","minColWidth","onEditorEnterKey","onFieldDataChanged","optionalMark","readOnly","requiredMark","requiredMessage","screenByWidth","scrollingEnabled","showColonAfterLabel","showOptionalMark","showRequiredMark","showValidationSummary","validationGroup","currency","formatter","parser","precision","useCurrencyAccountingStyle","colSpan","editorType","helpText","isRequired","itemType","label","left","opacity","scale","top","allowCollapsing","autoExpandAll","contextMenuEnabled","expandMode","groupingTexts","groupByThisColumn","groupContinuedMessage","groupContinuesMessage","ungroup","ungroupAll","alignByColumn","displayFormat","showInColumn","showInGroupFooter","skipEmptyValues","summaryType","valueFormat","and","notAnd","notOr","or","allowColumnDragging","complete","delay","direction","duration","easing","from","staggerDelay","start","to","html","locateInMenu","menuItemTemplate","showText","widget","editOnKeyPress","enterKeyAction","enterKeyDirection","showColon","indicatorSrc","showIndicator","showPane","allowedPageSizes","displayMode","infoText","showInfo","showNavigationButtons","showPageSizeSelector","pageIndex","pageSize","pattern","toolbarItem","at","boundary","boundaryOffset","collision","my","of","offset","max","min","filtering","groupPaging","allowDropInsideItem","autoScroll","cursorOffset","dragDirection","dragTemplate","dropFeedbackMode","filter","group","handle","onAdd","onDragChange","onDragEnd","onDragMove","onDragStart","onRemove","onReorder","scrollSensitivity","scrollSpeed","showDragIcons","columnRenderingMode","preloadEnabled","rowRenderingMode","scrollByContent","scrollByThumb","showScrollbar","useNative","highlightCaseSensitive","highlightSearchText","searchVisibleColumnsOnly","groupColumn","summaryItem","ascendingText","clearText","descendingText","showSortIndexes","customLoad","customSave","savingTimeout","storageKey","calculateCustomSummary","groupItems","recalculateWhileEditing","totalItems","groupItem","summaryTexts","totalItem","avg","avgOtherColumn","count","maxOtherColumn","minOtherColumn","sum","sumOtherColumn","item","FOCUS_STATE_CLASS","FOCUS_DISABLED_CLASS","FOCUSED_ROW_SELECTOR","GRID_ROW_SELECTOR","GRID_CELL_SELECTOR","concat","TREELIST_ROW_SELECTOR","TREELIST_CELL_SELECTOR","viewItemSelectorMap","columnHeaders","rowsView","footer","isMouseDown","isHiddenFocusing","focusedElementInfo","processKeyDown","viewName","event","action","$mainElement","executeKeyDown","isHandled","fireKeyDownEvent","originalEvent","keyName","saveFocusedElementInfo","target","addClass","selectView","$target","ariaLabel","attr","$activeElements","getActiveAccessibleElements","element","targetIndex","index","extend","viewInstance","viewElement","$viewElement","find","findFocusedViewElement","viewSelectors","root","getRootNode","getDocument","selector","$focusViewElement","first","executeAction","args","handled","_createActionByOption","onDocumentVisibilityChange","visibilityState","subscribeVisibilityChange","unsubscribeVisibilityChange","off","hiddenFocus","preventScroll","focus","registerKeyboardAction","$element","option","getMainElement","keyDownHandler","mouseDownHandler","removeClass","focusinHandler","needShowOverlay","$targetElement","eq","trigger","ctrlKey","viewNames","viewItemIndex","_viewName","setTabIndex","keyboardController","getController","isKeyboardEnabled","createAction","DBLCLICK_EVENT_NAME","DBLCLICK_NAMESPACE","NAMESPACED_CLICK_EVENT","DBLCLICK_TIMEOUT","DblClick","inherit","ctor","_handlerCount","_forgetLastClick","_firstClickTarget","_lastClickTimeStamp","add","_clickHandler","bind","timeStamp","now","timeBetweenClicks","isSimulated","isDouble","remove","COLUMN_INDICATORS_CLASS","GROUP_PANEL_ITEM_CLASS","_a","columnAlignment","_getColumnAlignment","parameters","isGroupPanelItem","rootElement","hasClass","$indicatorsContainer","_createIndicatorContainer","$span","_getIndicatorClassName","columnsController","indicatorAlignment","getHeaderContentAlignment","indicator","_renderIndicator","ignoreIndicatorAlignment","_getIndicatorContainer","setAria","css","$cell","$indicatorContainer","children","$container","$indicator","indicatorName","getColumns","$cells","getColumnElements","_updateIndicator","rowOptions","parent","cells","command","_applyColumnState","WIDGET_WITH_LEGACY_CONTAINER_NAME","ModuleItem","that","_updateLockCount","_actions","_actionConfigs","callbackNames","flags","callbackFlags","unique","syncStrategy","_endUpdateCore","optionCache","_optionCache","arguments","apply","_setOptionWithoutOptionChange","actionName","prefix","setAttribute","_createComponent","_controllers","config","_createAction","empty","className","componentName","NAME","containerName","addWidgetPrefix","$gridElement","closest","getWidgetContainerClass","is","Controller","ViewController","_views","View","isReady","callBase","_isReady","_requireReady","_requireRender","_requireResize","_$parent","requireResize","requireReady","renderCompleted","resizeCompleted","_$element","marginTop","parseFloat","marginBottom","offsetHeight","isVisible","_getTemplate","$parent","appendTo","toggleClass","_renderCore","isResizing","_resizeCore","MODULES_ORDER_MAX_INDEX","getExtendedTypes","types","moduleExtenders","extendTypes","_ref","extender","currentType","classType","registerPublicMethods","componentInstance","moduleItem","publicMethods","_","methodName","processModules","componentClass","modules","modulesOrder","createModuleItems","moduleTypes","moduleItems","moduleType","sort","module1","module2","orderIndex1","orderIndex2","rootControllerTypes","rootViewTypes","_ref2","moduleName","controllers","views","_ref3","subclassOf","_ref4","_ref5","extenders","controllerTypes","reduce","_ref6","viewTypes","_ref7","callModuleItemsMethod","module","moduleNames","_format","formatIsValid","valueIsValid","number","getTimeFormat","showSecond","_normalizeFormat","date","formatPart","getDateFormatByDifferences","dateDifferences","intervalFormat","resultFormat","needSpecialSecondFormatter","millisecond","year","month","day","getSeconds","getMilliseconds","hour","minute","second","unshift","quarter","getMonthNames","getMonth","getDateFormatByTicks","ticks","maxDiff","currentDiff","getDatesDifferences","getHours","getMinutes","getDateFormatByTickInterval","startValue","endValue","tickInterval","dateUnitInterval","correctDateDifferences","differences","minDate","maxDate","getDate","getFullYear","getDateUnitInterval","week","DEFAULT_DATE_INTERVAL","DEFAULT_DATETIME_INTERVAL","isDateType","getGroupInterval","dateIntervals","interval","getFilterSelector","displayField","getFilterExpressionByRange","endFilterValue","startFilterExpression","endFilterExpression","setDate","getFilterExpressionForDate","dateStart","dateEnd","dateInterval","dateValue","getFilterExpressionForNumber","startFilterValue","condition","defaultCalculateFilterExpression","isSearchByDisplayValue","DATAGRID_SELECTION_DISABLED_CLASS","DATAGRID_GROUP_OPENED_CLASS","DATAGRID_GROUP_CLOSED_CLASS","DATAGRID_EXPAND_CLASS","NO_DATA_CLASS","SCROLLING_MODE_INFINITE","SCROLLING_MODE_VIRTUAL","LEGACY_SCROLLING_MODE","SCROLLING_MODE_OPTION","ROW_RENDERING_MODE_OPTION","DATE_INTERVAL_SELECTORS","Math","floor","getIntervalSelector","nameIntervalSelector","equalSelectors","selector1","selector2","originalCallback","columnIndex","setEmptyText","textContent","normalizeSortingInfo","isExpanded","formatValue","valueText","formatObject","getDisplayFormat","getSummaryText","columnCaption","getWidgetInstance","editorData","dxComponents","widgetName","equalFilterParameters","filter1","filter2","normalizeGroupingLoadOptions","noDataClass","noDataElement","last","_dataController","isEmpty","isLoading","_getNoDataText","isLocalStore","loadPanelOptions","_loadPanel","$window","filters","operation","resultFilter","changeNames","changesWithChangeNamesCount","defaultResult","_dataSource","getFormatOptionsByColumn","rowType","displayValueMap","summaryItems","remoteGrouping","compare","sortParameters1","sortParameters2","ignoreIsExpanded","desc","pointCreated","isVertical","startColumnIndex","cellsLength","notCreatePoint","point","prevItemOffset","getExpandCellTemplate","allowRenderToDetachedContainer","isContinuation","row","isNewRow","getView","localize","focusedElement","selectionStart","selectionEnd","selectionRange","setSelectionRange","isFocused","isSelectTextOnEditingStart","editor","_loadItemDeferred","select","resultWidths","lastColumnIndex","hasResizableColumns","some","controller","$grid","isVirtualMode","isAppendMode","getPixelRatio","window","devicePixelRatio","browser","mozilla","lookupDataSourceOptions","isWrapped","normalizeLookupDataSource","defaultCalculateCellValue","cachedUniqueRelevantItems","previousTake","previousSkip","hasGroupPaging","hasLookupOptimization","sliceItems","loadOptions","skip","end","take","lookupDataSource","__dataGridSourceFilter","load","d","canUseCache","fail","combineFilters","flatMap","newDataSource","paginate","arr","logWarning","_logDeprecatedOptionWarning","since","alias","specificName","logSpecificDeprecatedWarningIfNeed","SCROLL_CONTAINER_CLASS","SCROLLABLE_SIMULATED_CLASS","GROUP_SPACE_CLASS","CONTENT_CLASS","TABLE_CLASS","TABLE_FIXED_CLASS","CONTENT_FIXED_CLASS","ROW_CLASS","GROUP_ROW_CLASS","GROUP_CELL_CLASS","DETAIL_ROW_CLASS","FILTER_ROW_CLASS","ERROR_ROW_CLASS","CELL_UPDATED_ANIMATION_CLASS","HIDDEN_COLUMNS_WIDTH","CELL_HINT_VISIBLE","FORM_FIELD_ITEM_CONTENT_CLASS","appendElementTemplate","content","subscribeToRowEvents","$table","touchTarget","touchCurrentTarget","timeoutId","clearTouchTargets","clearTimeout","currentTarget","pointer","down","rowIndex","getRowIndex","rowElement","_rowPointerDown","_rowClick","_rowDblClick","getWidthStyle","setCellWidth","cell","style","copyAttributes","newElement","oldAttributes","attributes","newAttributes","nodeName","hasAttribute","removeAttribute","nodeValue","removeHandler","templateDeferred","normalizeWidth","toFixed","viewWithColumnStateMixin","$tableElement","scrollingOptions","useNativeScrolling","bounceEnabled","useKeyboard","useSimulatedScrollbar","_cellPrepared","createElement","textAlign","headerId","colspan","visibleWidth","rowObject","tagName","dataIndex","isAppend","_createColGroup","safari","setTableRole","preventDefault","$row","visibleColumns","_columnsController","getVisibleColumns","cellOptions","isHeaderRow","isDataRow","isMasterDetailRow","isGroupRow","isFilterRow","isDataRowWithTemplate","isEditorShown","isEditing","isHeaderRowWithTemplate","isGroupCellWithTemplate","shouldShowHint","removeAttr","difference","scrollWidth","clientWidth","getOptions","$fieldItemContent","delegateTarget","resultOptions","cellElement","eventType","formItemOptions","getVisibleIndex","colgroupElement","j","_createCol","col","delayedTemplates","_delayedTemplates","syncTemplates","async","asyncTemplates","_renderDelayedTemplatesCore","_renderDelayedTemplatesCoreAsync","templates","templateTimeout","_templateTimeouts","delete","isAsync","templateParameters","doc","needWaitAsyncTemplates","renderDelayedTemplates","renderingTemplate","model","renderedTemplate","nodeType","templateID","_templatesCache","getTemplate","_processTemplate","templateOptions","onRendered","isDisposed","columnAsync","_templateDeferreds","always","tableElement","not","hasRowTemplate","_getBodies","isRefreshing","_tableElement","needWrapRow","_needWrapRow","$tbody","appendTemplate","scrollLeft","_scrollLeft","scrollTo","$root","changeType","_createTable","_renderRows","rows","_getRows","columnIndices","changeTypes","_renderRow","_createRow","$wrappedRow","_wrapRowIfNeed","_renderCells","_appendRow","_addWatchMethod","_rowPrepared","_needRenderCell","_renderCell","oldValues","$rowElement","$newRowElement","$newCells","cellUpdatedClass","$newCell","replaceWith","columnIndexOffset","getColumnIndexOffset","ariaColIndex","_getCellOptions","cellIndex","findIndex","_createCell","_setCellAriaAttributes","_renderCellContent","appendChild","renderOptions","_getCellTemplate","renderTemplate","_updateCell","isAltRow","_isAltRow","source","watchers","watch","getter","updateValueFunc","updateRowFunc","watcher","newValue","stringify","splice","update","keepRow","optionNames","checkChanges","widths","setColumnWidths","isFixedTableRendering","super","optionChanged","_invalidate","Set","excludeValidators","category","afterExecute","_afterRowPrepared","columnsChanged","_columnOptionChanged","changed","_handleDataChanged","pos","$scrollContainer","_getContent","scrollChanged","forceWaiting","waitTemplatesRecursion","size","$newTableElement","waitAsyncTemplates","_removeContent","setTableElement","_wrapTableInScrollContainer","$cellElements","cellElements","toArray","offsetWidth","getBoundingClientRect","rect","getTableElement","$rows","isDetailRow","isErrorRow","isRowVisible","display","isRelevantRow","_getWidths","$cols","getVisibleColumnIndex","colWidth","_getCellElementsCore","_getRowElements","columnIdentifier","getCellElements","columnVisibleIndex","_getVisibleColumnIndex","$tableElements","getTableElements","_getCellElement","_getRowElement","elements","columnOption","cellPosition","tBodies","_getRowElementsCore","paddingLeft","paddingRight","isHorizontal","_disposed","_b","clear","CELL_CONTENT_CLASS","HEADERS_CLASS","NOWRAP_CLASS","ROW_CLASS_SELECTOR","HEADER_ROW_CLASS","COLUMN_LINES_CLASS","CONTEXT_MENU_SORT_ASC_ICON","CONTEXT_MENU_SORT_DESC_ICON","CONTEXT_MENU_SORT_NONE_ICON","CELL_FOCUS_DISABLED_CLASS","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","LINK","columnHeadersModule","defaultOptions","columnHeadersView","createCellContent","$cellContent","addCssClassesToCellContent","contentAlignment","$indicatorElements","_getIndicatorElements","$visibleIndicatorElements","indicatorCount","sortIndicatorClassName","sortIndexIndicatorClassName","$sortIndicator","$sortIndexIndicator","members","shiftKey","needCellContent","_renderEmptyMessage","$content","textEmpty","_getEmptyHeaderText","needSplit","includes","leftPart","rightPart","columnChooserTitle","columnChooserView","$link","showColumnChooser","createTextNode","hasHiddenColumns","hasGroupedColumns","_getDefaultTemplate","resultTemplate","_isGroupingChanged","_isLegacyKeyboardNavigation","_handleActionKeyDown","_lastActionElement","headerFilterController","$column","getColumnIndexByElement","showHeaderFilterMenu","_processHeaderAction","isLoaded","_hasRowElements","_updateContent","_renderTable","getRowCount","$cellElement","rowspan","rowCount","_getHeaderTemplate","groupExpanding","_isElementVisible","elementOptions","insertBefore","_alignCaptionByCenter","$indicatorElement","returnAll","_isSortableElement","$headerRows","headerRow","columnElements","bandColumnIndex","getChildrenByBandColumn","getCellIndex","$columnElements","isReorderingEnabled","isColumnOptionUsed","getName","getElementHeight","sortingOptions","onItemClick","params","changeSortOrder","itemData","columnID","setColumnOpacity","setRowsOpacity","rowColumns","registerModule","USER_STATE_FIELD_NAMES_15_1","USER_STATE_FIELD_NAMES","IGNORE_COLUMN_OPTION_NAMES","bestFitWidth","bufferedFilterValue","COMMAND_EXPAND_CLASS","MAX_SAFE_INTEGER","GROUP_COMMAND_COLUMN_NAME","DETAIL_COMMAND_COLUMN_NAME","COLUMN_OPTION_REGEXP","DEFAULT_COLUMN_OPTIONS","DATATYPE_OPERATIONS","string","datetime","COLUMN_INDEX_OPTIONS","grouped","GROUP_LOCATION","COLUMN_CHOOSER_LOCATION","setFilterOperationsAsDefaultValues","defaultFilterOperations","globalColumnId","createColumn","columnOptions","userStateColumnOptions","bandColumn","commonColumnOptions","setName","getCommonSettings","calculatedColumnOptions","_createCalculatedColumnOptions","createColumnsFromOptions","columnsOptions","_columnsUserState","checkUserStateColumn","hasColumns","getParentBandColumns","columnParentByIndex","columnChildrenByIndex","getColumnByIndexes","columnIndexes","bandColumnsCache","getBandColumnsCache","callbackFilter","isPlain","_columns","getColumnFullPath","calculateColspan","processBandColumns","getValueDataType","getSerializationFormat","getDateSerializationFormat","updateSerializers","deserializeValue","deserializeDate","serializeValue","serializeDate","serializationFormat","parsedValue","isNaN","getAlignmentByDataType","isRTL","customizeTextForBooleanDataType","getCustomizeTextByDataType","createColumnsFromDataSource","fieldName","firstItems","_getFirstItems","processedFields","updateColumnIndexes","_commandColumns","updateColumnGroupIndexes","currentColumn","updateColumnSortIndexes","isSortOrderValid","updateColumnVisibleIndexes","bandedColumns","parentBandColumns","getColumnIndexByVisibleIndex","getGroupColumns","getChooserColumns","moveColumnToGroup","groupColumns","userStateColumn","applyUserState","userStateColumnIndex","columnsUserState","ignoreColumnOptionNames","_ignoreColumnOptionNames","columnCountById","resultColumns","allColumnsHaveState","userStateColumnIndexes","applyFieldsState","defaultSelectedFilterOperation","findUserStateColumn","_hasUserState","initialIndex","hasAddedBands","columnUserState","added","assignColumns","updateIndexes","resetBandColumnsCache","resetColumnsCache","_previousColumns","updateColumnDataTypes","updateColumnChanges","columnChanges","_columnChanges","fireColumnsChanged","onColumnsChanging","reinitOptionNames","isInitialized","_reinitAfterLookupChanges","reinit","updateSortOrderWhenGrouping","prevGroupIndex","columnWasGrouped","lastSortOrder","sortMode","sortedByAnotherColumn","fireOptionChanged","prevValue","fullOptionName","fullOptionPath","_skipProcessingColumnsChange","_notifyOptionChanged","columnOptionCore","notFireEvent","initialColumn","optionGetter","functionsAsIs","maxDepth","optionSetter","_checkColumns","getColumnByPath","addExpandColumn","_getExpandColumnOptions","addCommandColumn","defaultSetCellValue","path","dotCount","getDataColumns","bandColumnID","parents","invisibleParents","isCustomCommandColumn","commandColumn","customCommandColumns","getFixedPosition","processExpandColumns","expandColumns","customColumnIndex","expandColumnsByType","expandColumn","digitsCount","numberToString","str","mergeColumns","commandColumns","needToExtend","commandColumnIndex","isColumnFixing","_isColumnFixing","defaultCommandColumns","getCommandColumnIndex","columnType","isColumnFixed","convertOwnerBandToColumnReference","_bandColumnsCache","findColumn","identifier","identifierOptionName","sign","column1","column2","caption1","caption2","localeCompare","strictParseNumber","formattedValue","formattedValueWithDefaultFormat","groupsCount","getFirstItemsCore","childItems","collapsedItems","isApplyingUserState","_isColumnsFromOptions","_dataSourceApplied","applyDataSource","parseInt","needUpdateRequireResize","previousValue","fullName","_updateRequireResize","columnOptionValue","columnOptionName","forceApplying","isDataSourceLoaded","_dataSourceColumnsCount","columnsFromDataSource","updateColumns","isAllDataTypesDefined","_visibleColumns","_fixedColumns","_rowCount","getUserState","commonColumnSettings","groupingOptions","groupPanelOptions","checkSerializers","_compileVisibleColumnsCore","isBase","_shouldReturnVisibleColumns","_compileVisibleColumns","_getFixedColumnsCore","notFixedColumnCount","transparentColumnIndex","lastFixedPosition","transparentColumn","transparentColspan","prevColumn","newColumn","_getExpandColumnsCore","firstGroupColumn","isFixedFirstGroupColumn","parentIndex","isParentColumnVisible","_isColumnVisible","isInGroupPanel","_isColumnInGroupPanel","isCommand","indexedColumns","_getIndexedColumns","_getVisibleColumnsFromIndexed","isDataColumnsInvisible","hasVisibleDataColumns","columnDigitsCount","positiveIndexedColumns","negativeIndexedColumns","_d","isDefaultCommandColumn","isFixedToEnd","_i","_this","getExpandColumns","rowspanGroupColumns","rowspanExpandColumns","_loop","firstPositiveIndexColumn","positiveIndexedRowColumns","columnsByFixing","columnsByVisibleIndex","hiddenColumnsByBand","getInvisibleColumns","getAllColumns","columnChooserColumns","fromVisibleIndex","toVisibleIndex","sourceLocation","targetLocation","sourceColumn","targetGroupIndex","fromIndex","toIndex","targetColumn","sortingMode","needResetSorting","useLocalSelector","sortColumns","sortItem","updateNewLookupsOnly","deferreds","valueMap","calculateCallbackName","calculateCallback","context","getFormatByDataType","defaultFilterOperation","isColumnDataTypesUpdated","lookupDataType","valueDataType","getDisplayValue","_updateColumnOptions","hasOwnerBand","updateSortingGrouping","sortParameters","getSortDataSourceParameters","groupParameters","getGroupDataSourceParameters","filterParameters","lastLoadOptions","_customizeColumns","refresh","_updateChanges","equalSortParameters","dataController","getCombinedFilter","fromDataSource","isColumnsChanged","updateSortGroupParameterIndexes","indexParameterName","columnsGroupParameters","columnsSortParameters","groupingChanged","groupExpandingChanged","remoteFiltering","forceIsoDateParsing","updateFilter","columnCount","beginUpdate","endUpdate","visibleColumn","childIndexes","handleStateField","state","isFilterPanelHidden","usedNames","hasEditableColumnWithoutName","duplicatedNames","isEditable","log","skipDeserialization","createFilterExpression","userDataType","calculateValue","displayValue","dataSourceOptions","updateValueMap","resizedCallbacks","resized","defaultOptionName","charAt","alwaysGetRowIndex","onlyVisibleDirectChildren","bandColumns","columnsControllerModule","adaptColumnWidthByRatio","regenerateColumnsByVisibleItems","changePaging","_getPagingOptionValue","_skipProcessingPagingChange","_isPaging","pageChanged","ControllerWithDataMixin","_items","_cachedProcessedItems","_currentOperationTypes","_dataChangedHandler","operationTypes","_columnsChangedHandler","_handleColumnsChanged","_loadingChangedHandler","_handleLoadingChanged","_loadErrorHandler","_handleLoadError","_customizeStoreLoadOptionsHandler","_handleCustomizeStoreLoadOptions","_changingHandler","_handleChanging","_dataPushedHandler","_handleDataPushed","_isLoading","_isCustomLoading","_repaintChangesOnly","_changes","dataErrorOccurred","_refreshDataSource","stopOnFalse","reset","isValueChanged","store","_array","needToRefreshOnDataSourceChange","changedPagingOptions","_handleDataSourceChange","_setPagingOptions","isPageIndexChanged","_useSortingGroupingFromColumns","returnDataField","combinedFilter","isColumnsTypesDefined","isDataSourceApplied","additionalFilter","_calculateAdditionalFilter","isRemoteFiltering","_readyDeferred","every","updateItems","storeLoadOptions","isCustomLoading","isLoadingAll","extra","totalCount","_columnsUpdating","filterApplied","reload","_applyFilter","_needApplyFilter","updateItemsHandler","virtualColumnsScrolling","isAsyncDataSourceApplying","_isDataSourceApplying","isDelayed","needApplyFilter","_isAllDataTypesDefined","_fireLoadingChanged","pushed","_len","_key","pagingEnabled","scrollingMode","appendMode","virtualMode","isPaginateChanged","isPageSizeChanged","requireTotalCount","oldDataSource","_initDataSource","setDataSource","visibleItems","lastVisibleItem","rowIndexDelta","getRowIndexDelta","getDataIndex","_processItem","_generateDataItem","_processDataItem","keyOf","dataItem","generateDataValues","isModified","_applyChangeUpdate","_applyChangesOnly","_applyChangeFull","rowIndices","a","b","correctedRowIndex","allowInvisibleRowIndices","_getRowIndices","prevIndex","rowIndexCorrection","equalItems","item1","item2","strict","oldItem","oldNextItem","newItem","newNextItem","isFullUpdate","_partialUpdateRow","oldRow","newRow","visibleRowIndex","isLiveUpdate","isCellModified","modifiedValues","_isCellChanged","changedColumnIndices","_getChangedColumnIndices","isCellChanged","expandedMatch","summaryCellsMatch","summaryCells","continuationMatch","isContinuationOnNextPage","newIndexByKey","getRowKey","currentItems","oldItems","_isItemEquals","_correctRowIndices","oldRowIndexOffset","_rowIndexOffset","rowIndexOffset","getRowIndexOffset","newVisibleRowIndex","cachedProcessedItems","useProcessedItemsCache","_beforeProcessItems","_processItems","_afterProcessItems","_applyChange","loadIndex","getVisibleRows","isDataChanged","needUpdateDimensions","_needUpdateDimensions","_updateItemsCore","_fireChanged","loadingOperationTypes","loadingChanged","_loadingText","_isFilterApplying","filterExpr","filterName","clearColumnOption","searchByText","changedHandler","dataSourceChanged","dataSourceAdapterProvider","_getDataSourceAdapter","dataSourceAdapter","enabledRemoteOperations","isCustomStore","_createDataSourceAdapterCore","cancelAll","loadError","customizeStoreLoadOptions","changing","dispose","_isSharedDataSource","_createDataSourceAdapter","_fireDataSourceChanged","byLoaded","pageCount","skipFilter","_handleDataLoaded","getIndexByKey","getRowIndexByKey","byKey","byLoadedRows","rowKeys","keyData","messageText","changesOnly","getDataSource","customizeLoadResult","_disposeDataSource","rowIndexes","searchText","getCachedStoreData","itemsCount","totalItemsCount","hasKnownLastPage","dataControllerModule","loadingTimeout","cloneItems","groupCount","calculateOperationTypes","isFullReload","fullReload","groupExpand","getPageDataFromCache","updatePaging","fillItemsFromCache","cacheItemsFromBegin","cacheItemBeginCount","cacheItemsFromEnd","cacheItemEndCount","cachedDataPartBegin","cachedDataPartEnd","reverse","fromEnd","_e","cachedItems","cachedData","localIndex","cacheItemIndex","cacheItem","getItemFromCache","skips","takes","getGroupItemFromCache","childCacheItem","isLast","getCacheItem","loadedItem","globalIndex","childSkips","_remoteOperations","_isLastPage","isLastPage","_hasLastPage","_currentTotalCount","_cachedData","_lastOperationTypes","_eventsStrategy","_totalCountCorrection","_isLoadingAll","_dataLoadedHandler","_pushHandler","_handlePush","memberName","member","isSharedDataSource","resetCurrentTotalCount","_cachedStoreData","_cachedPagingData","_lastLoadOptions","isLocalOperations","operationName","fromStore","_needClearStoreDataCache","resetPagesCache","keyInfo","_applyBatch","_dataIndexGetter","indexByKey","storeData","isCacheUpdated","_needToCopyDataObject","_getKeyInfo","isReshapeMode","getItemCount","oldItemCount","useInsertIndex","skipCopying","needUpdateTotalCountCorrection","operationType","operationTypesByOrder","operationTypeIndex","currentOperationTypes","cachedStoreData","cachedPagingData","_needCleanCacheByOperation","_handleDataLoading","originalStoreLoadOptions","_isRefreshing","_customizeRemoteOperations","_loadingOperationTypes","_isRefreshed","_lastOperationId","operationId","_handleDataLoadingCore","cachedExtra","localLoadOptionNames","langParams","optionValue","localPaging","needCache","needPageCache","needPagingCache","needStoreCache","mergeStoreLoadData","_handleDataLoadedCore","cacheItems","currentTotalCount","isDataLoading","_loadPageSize","_operationTypes","_dataSourceTotalCount","ceil","dataSourceLoadOptions","loadResult","_customLoadOptions","_scheduleCustomLoadCallbacks","_scheduleLoadCallbacks","loadFromStore","fireEvent","full","dataSourceAdapterType","SORT_CLASS","SORT_NONE_CLASS","SORTUP_CLASS","SORTDOWN_CLASS","SORT_INDEX_CLASS","SORT_INDEX_ICON_CLASS","HEADERS_ACTION_CLASS","ariaSortState","isSortingAllowed","hasSeveralSortIndexes","prepend","COLUMN_HEADERS_VIEW_NAMESPACE","ColumnHeadersViewSortingExtender","$cellElementFromEvent","editingController","editingMode","isCellEditing","_updateIndicators","HeaderPanelSortingExtender","$rootElement","$item","_processGroupItemAction","groupColumnIndex","sortingModule","headerPanel","ROWS_VIEW_CLASS","DATA_ROW_CLASS","FREE_SPACE_CLASS","ROW_LINES_CLASS","ROW_ALTERNATION_CLASS","LAST_ROW_BORDER","EMPTY_CLASS","ROW_INSERTED_ANIMATION_CLASS","LOADPANEL_HIDE_TIMEOUT","getMaxHorizontalScrollOffset","scrollable","round","defaultCellTemplate","isDataTextEmpty","innerHTML","getScrollableBottomPadding","getScrollable","getGroupRowSummaryText","_getDefaultGroupTemplate","tag","isGroup","isRowExpanded","_setAriaRowIndex","isPagerMode","isVirtualRowRendering","arg","repaintRows","deep","skipImmediate","force","_renderLoadPanel","allColumnsHasWidth","_hasHeight","_renderScrollableCore","isNativeScrolling","_scrollTop","scrollOffset","_scrollRight","isScrollbarVisible","dxScrollableOptions","_createScrollableOptions","scrollHandler","_handleScroll","onScroll","_scrollable","_scrollableContainer","renderLoadPanel","contentElement","_findContentElement","newTableElement","_contentChanges","contentChanges","executors","rowInsertedClass","dataChangeType","$rowElements","toggle","_updateCells","insertAfter","prependTo","_renderContent","isFixed","getFixedColumns","$emptyRow","$tBodies","isTableContainer","$colgroup","$freeSpaceRowElement","_createEmptyRow","_appendEmptyRow","fireError","_rowHeight","_needUpdateRowHeight","rowsHeight","_getRowsHeight","tableElements","expr","columnsCountBeforeGroups","_getColumnsCountBeforeGroups","_renderGroupedCells","groupCellOptions","_getGroupCellOptions","groupColumnAlignment","_checkRowKeys","_renderFreeSpaceRow","updateFreeSpaceRowHeight","_renderDataRowByTemplate","_renderScrollable","resizeCompletedHandler","scrollableInstance","document","_visibilityChanged","_lastColumnWidths","groupingTextsOptions","isParentBandColumn","renderNoDataText","itemCount","freeSpaceRowElements","_getFreeSpaceRowElements","isFreeSpaceRowVisible","scrollbarWidth","getScrollbarWidth","elementHeightWithoutScrollbar","contentHeight","showFreeSpaceRow","borderTopWidth","heightCorrection","_getHeightCorrection","resultHeight","_updateLastRowBorder","freeSpaceRowCount","isZoomedWebkit","webkit","_getDevicePixelRatio","isChromeLatest","chrome","version","hasExtraBorderTop","_fireColumnResizedCallbacks","_editorFactoryController","setLoading","forceUpdateScrollPosition","_update","scrollableContainer","clientHeight","lastColumnWidths","columnWidths","getInstance","isRenovated","_updateHorizontalScrollPosition","maxHorizontalScrollOffset","scrollRight","_updateRowHeight","_updateScrollable","dxScrollable","hasHeight","visibilityOptions","calculateLoadPanelPosition","_hideLoadingTimeoutID","_setRowsOpacityCore","groupCellIndex","isTop","isFloor","itemIndex","prevOffset","viewportBoundary","$contentElement","contentElementOffsetTop","rowElements","_getBoundaryVisibleItemIndex","getTopVisibleItemIndex","scrollToElement","rowsModule","CONTEXT_MENU","footerView","VIEW_NAMES","ContextMenuController","dxEvent","$targetRowElement","$targetCellElement","menuItems","targetElement","getContextMenuItems","_contextMenuPrepared","ContextMenuView","actionArgs","contextMenuInstance","stopPropagation","contextMenuModule","contextMenu","contextMenuView","ERROR_MESSAGE_CLASS","ERROR_CLOSEBUTTON_CLASS","ACTION_CLASS","ErrorHandlingController","_columnHeadersView","_rowsView","$errorRow","$closeButton","$errorMessage","_renderErrorMessage","errorRowIndex","removeErrorRow","fireContentReadyAction","role","$message","$popupContent","$errorMessageElement","$firstErrorRow","_createErrorRow","resizingController","$columnHeaders","$rowsViewElement","errorHandlingModule","errorHandling","errorHandlingController","renderErrorRow","hasChanges","BORDERS_CLASS","IMPORTANT_MARGIN_CLASS","GRIDBASE_CONTAINER_CLASS","GROUP_ROW_SELECTOR","isPixelWidth","calculateFreeWidth","contentWidth","totalWidth","_getTotalWidth","calculateFreeWidthWithCurrentMinWidth","currentMinWidth","resizingControllerMembers","_refreshSizesHandler","resizeDeferred","needFireContentReady","_checkSize","_refreshSizes","_setAriaLabel","resize","_waitAsyncTemplates","_setScrollerSpacing","_fireContentReadyAction","_getWidgetAriaLabel","getColumnWidths","headersTableElement","columnId","getColumnId","isBestFit","$rowsTables","$viewTables","$tableBody","$rowsTable","$viewTable","$rowsFixedTable","idx","_toggleBestFitModeForView","_footerView","_needStretch","getContentHeightLimit","resetBestFitMode","hasUndefinedColumnWidth","needBestFit","_needBestFit","hasMinWidth","isColumnWidthsCorrected","_setVisibleWidths","getActiveElement","getSelectionRange","_toggleBestFitMode","_toggleContentMinHeight","_maxWidth","_getBestFitWidths","isFocusOutsideWindow","bottom","_correctColumnWidths","expandColumnWidth","_processStretch","c","freeWidth","columnCountWithoutWidth","hasPercentWidth","hasAutoWidth","hasWidth","_hasWidth","isHiddenColumn","averageColumnsWidth","_getAverageColumnsWidth","realColumnWidth","_getRealColumnWidth","getLastResizableColumnIndex","borderWidth","resultSizes","groupSize","tableSize","unusedIndexes","diff","diffElement","onePixelElementsCount","groupWidth","ratio","percentTotalWidth","pixelTotalWidth","freeSpace","percentTotalWidthInPixel","importantMarginClass","$groupElement","detach","updateDimensions","checkSize","_initPostRenderHandlers","prevResult","_resizeDeferred","_synchronizeColumns","_resetGroupElementHeight","_updateDimensionsCore","groupElement","_getGroupElement","scrollTop","isWidgetVisible","isGridSizeChanged","_lastWidth","_lastHeight","_devicePixelRatio","vScrollbarWidth","hScrollbarWidth","setScrollerSpacing","_setScrollerSpacingCore","editorFactory","rootElementHeight","isHeightSpecified","maxHeightHappened","isMaxHeightApplied","scrollHeight","updateSize","_updateLastSizes","_renderDimensions","ResizingController","SynchronizeScrollingController","_scrollChangedHandler","GridView","_resizingController","_groupElement","_getTableRoleName","isFirstRender","_rootElement","_renderViews","gridViewModule","resizing","synchronizeScrolling","gridView","HEADER_PANEL_CLASS","TOOLBAR_BUTTON_CLASS","TOOLBAR_ARIA_LABEL","DEFAULT_TOOLBAR_ITEM_NAMES","specificClass","secondClass","userToolbarOptions","toolbarOptions","_getToolbarItems","itemRenderedCallback","onItemRendered","userItems","_normalizeToolbarItems","defaultItems","defaultProps","defaultButtonsByNames","normalizedItems","_toolbar","_toolbarOptions","$headerPanel","$toolbar","userItem","_getToolbarOptions","isDefinedByUser","_isDisabledDefinedByUser","normalizedItem","headerPanelModule","updateToolbarDimensions","DATAGRID_ROW_SELECTOR","DATAGRID_DEPRECATED_TEMPLATE_WARNING","registerModulesOrder","DataGrid","_activeStateUnit","_deprecatedOptions","device","platform","deviceType","logHeaderFilterDeprecatedWarningIfNeed","_clean","_renderContentImpl","templateName","warn","DATE_REGEX","parseDates","exec","UTC","StateStoringController","getStorage","storage","localStorage","getUniqueStorageKey","getItem","setItem","_state","_isLoaded","_windowUnloadHandler","_savingTimeoutID","_saveState","_loadState","isEnabled","getDataState","pagerView","getPageSizes","processLoadState","selectionController","exportController","updateState","selectionChanged","_initialPageSize","_initialFilterValue","selectionOnlyChanged","exportSelectionOnly","selectionOnly","DEFAULT_FILTER_VALUE","filterSyncController","hasFilterState","getFilterValueFromColumns","stateStoringModule","stateLoaded","isStateLoading","applyState","oldState","newState","oldStateHash","newStateHash","save","isVirtualScrollingMode","setUserState","stateStoringController","_restoreStateTimeoutID","isDeferredSelection","EDITOR_CELL_CLASS","ROW_SELECTION_CLASS","SELECT_CHECKBOX_CLASS","CHECKBOXES_HIDDEN_CLASS","COMMAND_SELECT_CLASS","SELECTION_DISABLED_CLASS","SHOW_CHECKBOXES_MODE","SELECTION_MODE","processLongTap","isSelectionWithCheckboxes","stopSelectionWithCheckboxes","startSelectionWithCheckboxes","changeItemSelection","control","isSeveralRowsSelected","keyIndex","isComplexKey","selectionCellTemplate","isRowSelected","renderSelectCheckBoxContainer","selectionHeaderTemplate","_renderSelectAllCheckBox","_attachSelectAllCheckBoxClickEvent","_selectionMode","_isSelectionWithCheckboxes","_selection","_createSelection","_updateSelectColumn","_deselectRemovedOnPush","_updateSelectedOnPush","removedKeys","selectedKeys","isSelected","selectedKey","deselectRows","updateChanges","getSelectedRowsData","selectionOptions","virtualPaging","legacyScrollingMode","maxFilterLengthInRequest","ignoreDisabledItems","hasGroupColumns","plainItems","isItemSelected","selected","isSelectableItem","getItemData","oldData","loadItemIndex","focusedItemIndex","shiftItemIndex","minIndex","maxIndex","_updateSelectedItems","isSelectColumnVisible","_getSelectionConfig","argument","isDeferredMode","selectedItemKeys","removedItemKeys","selectionChangedOptions","changedItemIndexes","getChangedItemIndexes","visibleChangedItemIndexes","_updateCheckboxesState","itemIndexes","addedItemKeys","_selectedItemsInternalChange","selectedRowsData","selectedItems","currentSelectedRowKeys","currentDeselectedRowKeys","_fireSelectionChanged","isDataItem","oldSelectionMode","selectionMode","selectRows","getSelectAllState","_isOnePageSelectAll","selectAll","deselectAll","preserve","isDeselect","isSelectAll","getSelectedItemKeys","indexes","getSelectedItems","loadSelectedItemsWithFilter","visibleItemIndex","setFocusOnly","loadedItemIndex","_focusedItemIndex","selectionModule","hasSelectColumn","currentItem","isUpdateSelection","_updateSelectAllValue","$editor","selectAllValue","hasSelection","dxCheckBox","isEmptyData","createEditor","parentType","_attachCheckBoxClickEvent","_renderSelectCheckBox","_updateCheckboxesClass","hold","isSelectionDisabled","isClickableElement","isCommandSelect","isCheckBoxesHidden","WIDGET_CLASS","NODE_CLASS","NODE_CONTAINER_CLASS","NODE_LOAD_INDICATOR_CLASS","OPENED_NODE_CONTAINER_CLASS","IS_LEAF","ITEM_CLASS","ITEM_WITH_CHECKBOX_CLASS","ITEM_WITH_CUSTOM_EXPANDER_ICON_CLASS","CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS","ITEM_WITHOUT_CHECKBOX_CLASS","ITEM_DATA_KEY","TOGGLE_ITEM_VISIBILITY_CLASS","CUSTOM_COLLAPSE_ICON_CLASS","CUSTOM_EXPAND_ICON_CLASS","LOAD_INDICATOR_CLASS","LOAD_INDICATOR_WRAPPER_CLASS","TOGGLE_ITEM_VISIBILITY_OPENED_CLASS","SELECT_ALL_ITEM_CLASS","INVISIBLE_STATE_CLASS","DISABLED_STATE_CLASS","SELECTED_ITEM_CLASS","EXPAND_EVENT_NAMESPACE","DATA_ITEM_ID","ITEM_URL_CLASS","TreeViewBase","_supportedKeys","click","$itemElement","_itemClickHandler","expandEventName","_getEventNameByOption","expandByClick","_expandEventHandler","$focusedElement","checkboxInstance","_getCheckBoxInstance","currentState","_updateItemSelection","toggleExpandedNestedItems","rootItem","_getItemData","_toggleExpandedNestedItems","enter","_showCheckboxes","space","asterisk","minus","len","node","_dataAdapter","getNodeByItem","_toggleExpandedState","_getNodeElement","_encodeString","internalFields","$nodeByKey","each","$node","querySelector","_widgetClass","_getDefaultOptions","animationEnabled","dataStructure","expandAllEnabled","hasItemsExpr","selectNodesRecursive","expandNodesRecursive","expandIcon","collapseIcon","selectAllText","onItemSelectionChanged","onItemExpanded","onItemCollapsed","scrollDirection","virtualModeEnabled","rootValue","expandEvent","createChildren","onSelectAllValueChanged","integrationOptions","useDeferUpdateForTemplates","_defaultOptionsRules","_initSelectedItems","_syncSelectionOptions","selectionChangePromise","_selectionChangePromise","_createSelectAllValueChangedAction","_selectAllValueChangedAction","_fireSelectAllValueChanged","_checkBoxModeChange","searchEnabled","previousSelectAllEnabled","_selectAllEnabled","previousItemsContainer","_itemContainer","_detachClickEvent","_detachExpandEvent","selectAllExists","_$selectAllItem","_renderSelectAllItem","_removeSelection","getFullData","_hasChildren","toggleSelection","_optionChanged","_initDataAdapter","_filter","_initAccessors","repaint","_attachExpandEvent","setOption","_useCustomChildrenLoader","_loadChildrenByCustomLoader","newItems","_isVirtualMode","_initVirtualMode","custom","internal","_isDataStructurePlain","parentNode","invocationResult","_combineFilter","_dataSourceLoadErrorHandler","_init","_initStoreChangeHandlers","_dataSourceChangedHandler","_initialized","_removeTreeViewLoadIndicator","_treeViewLoadIndicator","_createTreeViewLoadIndicator","_dataSourceLoadingChangedHandler","$wrapper","itemsContainer","addItem","isFiltered","_updateLevel","_parentIdGetter","removedKey","getNodeByKey","_markChildrenItemsToRemove","_removeItems","removeItem","childrenKeys","counter","parentId","_getContainerByParentKey","_renderItems","getChildrenNodes","_getOldContainer","_renderNodeContainer","_isRootLevel","_renderScrollableContainer","_getAccessors","accessors","_getDataAdapterOptions","_this$_dataSource","_this$_dataSource$loa","_this$_dataSource$loa2","multipleSelection","_isSingleSelection","recursiveSelection","_isRecursiveSelection","recursiveExpansion","selectionRequired","_initMarkup","getRootNodes","$nodeContainer","skipContentReadyAction","_skipContentReadyAndItemExpanded","_expandedGetter","_createDOMElement","_node$internalFields","_node$internalFields$","_displayGetter","level","_getLevel","hasChildNodes","expanded","_hasCustomExpanderIcons","nodes","_renderItem","_renderedItemsCount","nodeIndex","nodeData","showCheckBox","_renderCheckBox","_toggleSelectedClass","_renderChildren","_setAriaSelectionAttribute","_renderCustomExpanderIcons","_renderDefaultExpanderIcons","_loadSublevel","childNodes","_renderSublevel","_getActualNode","_addLeafClass","cachedNode","_hasItemsGetter","childrenNodes","_getChildNodes","_loadNestedItems","getNodesByItems","_getItemExtraPropNames","_addContent","link","_getLinkContainer","_getIconContainer","_getTextContainer","$nestedNodeContainer","childNodesByChildrenKeys","childNode","firstChild","_updateParentsState","_normalizeIconState","_executeItemRenderAction","itemElement","_getNode","_getItemRenderAction","getPublicNode","$nodeElement","expandedEventName","$itemsContainer","_itemSelector","isElementNode","_getNodeByElement","_decodeString","_nodeHasRenderedChildren","_createLoadIndicator","toggleExpansion","_updateExpandedItemsUI","$icon","_renderExpanderIcon","iconClass","_renderToggleItemVisibilityIconClick","$expandIcon","$collapseIcon","isNodeExpanded","_toggleCustomExpanderIcons","eventName","isHiddenNode","parentKey","$childExpandIcons","$childCollapseIcons","nodeContainerExists","completionCallback","_animateNodeContainer","_loadNestedItemsWithUpdate","actualNodeData","publicNode","_areNodesExists","_appendItems","keyOfRootItem","fullData","nodeHeight","fx","stop","animate","_fireExpandedStateUpdatedEvent","_itemDXEventHandler","_itemEventHandler","hasNewItems","_LoadIndicator$getIns","$loadIndicator","$toggleItem","_emptyMessageContainer","_contentAlreadyRendered","isAllSelected","_onSelectAllCheckboxValueChanged","before","_toggleSelectAll","toggleSelectAll","_updateItemsUI","$checkbox","_changeCheckboxValue","_disabledGetter","_toggleNodeDisabledState","toggleNodeDisabledState","checkbox","_itemOptionChanged","property","_isLastSelectedBranch","selectedNodesKeys","_isLastRequired","isSingleMode","getSelectedNodeKeys","_fireItemSelectionChanged","needFireSelectAllChanged","initiator","_findItemElementByItem","handler","getData","nodeSelection","selectAllCheckbox","$parentNode","parentValue","_itemEventHandlerImpl","_extendActionArgs","_itemContextMenuHandler","_createEventHandler","_itemHoldHandler","_itemClass","_itemDataKey","_attachClickEvent","$itemContainer","clickEventNamespace","itemSelector","pointerDownEventNamespace","nodeSelector","_getItemClickEventData","_itemPointerDownHandler","_itemClick","getElementsByClassName","beforeExecute","isDefaultPrevented","_updateSelectionToFirstItem","$items","startIndex","_updateSelectionToLastItem","_focusInHandler","_updateFocusState","isSelectAllItem","_setFocusedItemTimeout","_setFocusedItem","$activeItem","_getActiveItem","_findNonDisabledNodes","$nodes","_moveFocus","FOCUS_UP","FOCUS_DOWN","FOCUS_FIRST","FOCUS_LAST","FOCUS_LEFT","FOCUS_RIGHT","_nodeElements","$prevItem","_prevItem","prevItemElement","_getNodeItemElement","$nextItem","_nextItem","nextItemElement","$firstItem","$lastItem","_expandFocusedContainer","_collapseFocusedContainer","$focusedNode","_getClosestNonDisabledNode","nodeElement","collapsedNode","encodeURI","decodeURI","resolveWith","selectItem","unselectItem","expandItem","collapseItem","getNodes","getTreeNodes","getSelectedNodes","getSelectedNodesKeys","unselectAll","_allItemsExpandedHandler","expandAll","expandingPromises","allSettled","_this$_allItemsExpand","_allItemsExpanded","collapseAll","getExpandedNodesKeys","scrollToItem","keyOrItemOrElement","nodeKeysToExpand","scrollCallback","_expandNodes","scrollToElementTopLeft","relativeOffset","containerElement","keysToExpand","resultCallback","callbacksByNodes","_dispose","setEditorClass","TreeViewSearch","_addWidgetPrefix","_updateSearch","_repaintContainer","_updateDataAdapter","searchValue","_getNodeContainer","_searchEditor","_getSearchEditorOptions","rootNodes","_focusTarget","_cleanItemContainer","isSearchMode","selectAllEnabled","_addWidgetClass","_removeSearchBox","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","COLUMN_OPTIONS_USED_IN_ITEMS","processItems","chooserColumns","isSelectMode","isRecursive","isRecursiveWithColumns","columnChooserControllerMembers","$columnChooserButton","columnChooserButtonClass","columnChooserEnabled","$showColumnChooserButton","ColumnChooserController","columnChooserMembers","_isWinDevice","devices","real","win","columnChooserClass","columnChooserOptions","themeName","isGenericTheme","isMaterial","dxPopupOptions","class","getPosition","shortcut","_popupContainer","setPopupAttributes","isBandColumnsUsed","isDragMode","_columnChooserList","_updateItems","_renderTreeView","treeViewConfig","itemTemplate","searchEditorOptions","_prepareSelectModeConfig","_prepareDragModeConfig","isUpdatingSelection","addNodesToArray","flatNodesArray","_isUpdatingColumnVisibility","changedColumns","onlyVisibleChanged","needUpdate","all","_updateItemsSelection","_initializePopupContainer","isColumnHidden","isColumnChooserVisible","$overlayContent","right","popupContainer","hiddenColumns","ColumnChooserView","columnChooserModule","_appendColumnChooserItem","hintText","_getToolbarButtonClass","isMoveColumnDisallowed","createGroupFilter","groups","createOffsetFilter","lastLevelOnly","filterElement","currentFilter","GroupingHelper","findGroupInfoByKey","groupsInfo","hash","getGroupInfoIndexByOffset","leftIndex","rightIndex","middleIndex","_groupsInfo","totalCountCorrection","_isVirtualPaging","calculateItemsCount","isGroupItemCountable","childrenAtFirst","foreachCollapsedGroups","updateOffsets","updateParentOffsets","foreachGroupsCore","callbackResults","executeCallback","callbackResult","pop","currentParents","_updateGroupInfoOffsets","groupInfo","pathIndex","groupInfoData","allowCollapseAll","oldGroups","_group","cleanGroupsInfo","getContinuationGroupCount","groupOffset","pageOffset","foreachExpandedGroups","updateGroups","foreachGroups","processGroupItems","expandedInfo","isLastGroupExpanded","paths","lastCount","findGroupInfo","updateGroupInfoItem","isLastGroupLevel","addGroupInfo","_isGroupExpanded","updateGroupInfos","loadedGroupCount","remotePaging","isGroupExpanded","getTotalOffset","groupInfos","totalOffset","childrenTotalCount","applyContinuationToGroupItem","groupLevel","expandedItemIndex","isLastExpandedItem","isFirstExpandedItem","lastExpandedItemSkip","isItemsTruncatedByTake","isDataDeferred","makeDataDeferred","loadGroupItems","currentGroupCount","currentGroupIndex","currentGroup","requireGroupCount","groupSummary","expandedFilters","expandedPath","isPagingLocal","isLastLevelGroupItemsPagingLocal","sortLastLevelGroupItems","expandedItems","loadGroupTotalCount","isGrouping","isFinite","isVirtualPaging","skipChildrenTotalCount","takeCorrection","parentTakeCorrection","continuationGroupCount","skipContinuationGroupCount","groupInfoCount","childrenGroupInfoCount","remoteGroupPaging","isLastGroup","_updatePagingOptions","updateTotalItemsCount","_processPaging","firstItem","_processSkips","lastItem","maxTakeCount","_processTakes","handleGroup","groupCountQuery","groupOffsetQuery","loadTotalCount","correctSkipLoadOption","skipCorrection","resultSkip","pathEquals","path1","path2","updateGroupOffsets","additionalGroupInfo","getGroupCount","collapsedGroups","collapsedItemsCount","skipFirstItem","sorts","arrangeSortingInfo","appendCollapsedPath","collapsedGroup","keyValue","pathValue","_totalCountWasIncreasedByCollapsedItems","query","multiLevelGroup","enumerate","groupedData","removeLastItemsCount","needRemoveFirstItem","offsetInfo","itemsCountCorrection","beginPageIndex","dataSourceItems","DATAGRID_GROUP_PANEL_CLASS","DATAGRID_GROUP_PANEL_MESSAGE_CLASS","DATAGRID_GROUP_PANEL_ITEM_CLASS","DATAGRID_GROUP_PANEL_LABEL_CLASS","DATAGRID_GROUP_PANEL_CONTAINER_CLASS","DATAGRID_GROUP_ROW_CLASS","GroupingDataSourceAdapterExtender","_initGroupingHelper","_grouping","isAutoExpandAll","isFocusedRowEnabled","isODataRemoteOperations","_collapseExpandAll","isExpand","beginLoading","_changeRowExpandCore","endLoading","changeRowExpand","_hasGroupLevelsExpandState","resetCache","handleDataLoading","handleDataLoaded","handleDataLoadedCore","GroupingDataControllerExtender","_processGroupItems","_processGroupItem","groupedColumns","collectContinuationItems","resultItems","onGroupingMenuItemClick","clearGrouping","isGroupPanelVisible","current","allowDragging","canDrag","GroupingHeaderPanelExtender","_appendGroupingItem","_isGroupPanelVisible","isRendered","$groupPanel","_updateGroupPanelContent","_createGroupPanelItem","$groupPanelItem","$toolbarElement","_renderGroupPanelItems","$groupedColumnElement","isGroupingAllowed","isColumnGrouped","GroupingRowsViewExtender","isGroupRowStateChanged","isExpandButtonClicked","_changeGroupRowState","columnHeadersViewExtender","beginGroup","_isProcessedItem","MASTER_DETAIL_CELL_CLASS","MASTER_DETAIL_ROW_CLASS","masterDetailModule","initMasterDetail","_expandedItems","_isExpandAll","expandIndex","_getRowIndicesForExpand","detailColumnIndex","isEnabledChanged","isAutoExpandAllChanged","_updateParentDataGrids","$masterDetailRow","_updateMasterDataGrid","$detailElement","masterRowOptions","masterDataGrid","_updateMasterDataGridCore","isFixedColumns","_updateFixedMasterDetailGrids","masterRowIndex","getRowElement","$tables","rowsNotEqual","tablesNotEqual","detailElementWidth","isDetailHorizontalScrollCanBeShown","isDetailGridWidthChanged","isEditRow","_isDetailRow","$detailCell","CHECKBOX_SIZE_CLASS","EDITOR_INLINE_BLOCK","EditorFactoryMixin","getResultConfig","inputAttr","checkEnterBug","ios","getTextEditorConfig","isEnterBug","sharedData","needDelayedUpdate","isInputOrKeyUpEvent","updateValue","setValue","valueChangeTimeout","updateValueTimeout","_input","valueChangeEvent","prepareDateBox","editorName","useMaskBehavior","blur","prepareTextBox","isSearching","prepareNumberBox","prepareLookupEditor","displayGetter","postProcess","_options$editorType","selectBox","stopWatch","showClearButton","prepareCheckBox","prepareCustomEditor","prepareEditor","prepareDefaultEditor","dxDateBox","dxNumberBox","dxTextBox","_prepareDefaultEditor","editorElement","isOnForm","showValidationMark","$editorElement","dateBox","defaultEnterKeyHandler","registerKeyHandler","dxTextArea","FOCUS_OVERLAY_CLASS","FOCUSED_ELEMENT_CLASS","MODULE_NAMESPACE","UPDATE_FOCUS_EVENTS","DX_HIDDEN","ViewControllerWithMixin","$dataGridElement","rowSelector","focusedElementSelector","elementIsInsideGrid","$focus","_getFocusedElement","isHideBorder","$focusCell","_getFocusCellSelector","_needHideBorder","loseFocus","isFocusOverlay","_isFocusOverlay","_updateFocusTimeoutID","_updateFocusCore","calculate","h","oversize","v","_$focusedElement","_focusTimeoutID","renderFocusOverlay","focused","isElementInCurrentGrid","_$focusOverlay","align","elemCoord","focusOverlayPosition","precise","_updateFocusOverlaySize","setup","_updateFocusHandler","_updateFocus","_subscribedContainerRoot","_getContainerRoot","_attachContainerEventHandlers","Node","DOCUMENT_FRAGMENT_NODE","host","editorFactoryModule","DEFAULT_BUTTON","DX_DIALOG_CLASSNAME","DX_DIALOG_WRAPPER_CLASSNAME","DX_DIALOG_ROOT_CLASSNAME","DX_DIALOG_CONTENT_CLASSNAME","DX_DIALOG_MESSAGE_CLASSNAME","DX_DIALOG_BUTTONS_CLASSNAME","DX_DIALOG_BUTTON_CLASSNAME","DX_BUTTON_CLASSNAME","_options$title","isMessageDefined","isMessageHtmlDefined","messageHtml","messageId","popupToolbarItems","popupInstance","android","execute","ignoreChildEvents","visualContainer","bottomToolbar","$firstButton","popupOptions","isPortrait","CELL_MODIFIED_CLASS","ROW_SELECTED_CLASS","EDIT_FORM_CLASS","DATA_EDIT_DATA_INSERT_TYPE","DATA_EDIT_DATA_REMOVE_TYPE","EDITING_POPUP_OPTION_NAME","EDITING_FORM_OPTION_NAME","EDITING_EDITROWKEY_OPTION_NAME","EDITING_EDITCOLUMNNAME_OPTION_NAME","TARGET_COMPONENT_NAME","EDITORS_INPUT_SELECTOR","FOCUSABLE_ELEMENT_SELECTOR","EDIT_MODE_BATCH","EDIT_MODE_ROW","EDIT_MODE_CELL","EDIT_MODE_FORM","EDIT_MODE_POPUP","FIRST_NEW_ROW_POSITION","LAST_NEW_ROW_POSITION","PAGE_BOTTOM_NEW_ROW_POSITION","PAGE_TOP_NEW_ROW_POSITION","VIEWPORT_BOTTOM_NEW_ROW_POSITION","VIEWPORT_TOP_NEW_ROW_POSITION","EDIT_MODES","ROW_BASED_MODES","REQUIRED_EDITOR_LABELLEDBY_MODES","MODES_WITH_DELAYED_FOCUS","READONLY_CLASS","LINK_CLASS","LINK_ICON_CLASS","ROW_SELECTED","EDIT_BUTTON_CLASS","COMMAND_EDIT_CLASS","COMMAND_EDIT_WITH_ICONS_CLASS","INSERT_INDEX","ROW_INSERTED","ROW_MODIFIED","CELL_MODIFIED","EDITING_NAMESPACE","DATA_EDIT_DATA_UPDATE_TYPE","DEFAULT_START_EDIT_ACTION","EDIT_LINK_CLASS","edit","undelete","EDIT_ICON_CLASS","METHOD_NAMES","ACTION_OPTION_NAMES","BUTTON_NAMES","EDITING_CHANGES_OPTION_NAME","ADD_ROW_BUTTON_CLASS","DROPDOWN_EDITOR_OVERLAY_CLASS","ROW_REMOVED","isRenovatedScrollable","IS_RENOVATED_WIDGET","EDIT_FORM_ITEM_CLASS","EDIT_POPUP_CLASS","EDIT_POPUP_FORM_CLASS","FOCUSABLE_ELEMENT_CLASS","BUTTON_CLASS","FORM_BUTTONS_CONTAINER_CLASS","EDIT_ROW","NEW_ROW_TEMP_KEY_PREFIX","GUID_LENGTH","createFailureHandler","isEditingOrShowEditorAlwaysDataCell","isCommandCell","isEditorCell","getEditingTexts","addRowToNode","generateNewRowTempKey","isNewRowTempKey","getButtonIndex","getButtonName","getEditorType","isCustomEditorType","forEachFormItems","callBack","tabs","_lastOperation","_deferreds","_saveEditorHandler","_updateEditColumn","_updateEditButtons","_internalState","_optionsByReference","editMode","needLabel","getEditMode","getChanges","needReset","_silentOption","internalData","_getInternalData","editIndex","_getOldData","getPopupContent","_isDefaultButtonVisible","buttonName","editingOptions","allowAction","buttonIndex","haveCustomButtons","_getButtonConfig","_isButtonVisible","_createButton","_getEditingButtons","_renderEditingButtons","_isButtonDisabled","getFirstEditableColumnIndex","getFirstEditableCellInRow","_inputFocusTimeoutID","up","_pointerUpEditorHandler","_pointerDownEditorHandler","_handleEditRowKeyChange","isEqual","_handleChangesChange","resetChanges","_resetEditColumnName","_resetEditRowKey","oldRowIndexCorrection","_getEditRowIndexCorrection","oldRowIndex","_editRowFromOptionChanged","cancelEditData","_addInsertInfo","_addInternalData","isOptionChanged","_pageIndex","_refreshCore","isEditRowKeyDefined","silent","_refocusEditCell","_focusEditingCell","getKeyByRowIndex","_setEditRowKey","_getVisibleEditRowIndex","isKeyEqual","isEditRowByIndex","_getVisibleEditColumnIndex","isProcessedItems","_getInsertAfterOrBeforeKey","isProcessedItem","nextItem","insertInfo","loadedRowIndex","_getInsertRowIndex","_getNewRowPosition","insertAfterOrBeforeKey","isLastPageLoaded","isInsert","_getLoadedRowIndex","_generateNewItem","_processDataItemCore","modified","removed","_fireDataErrorOccurred","_getInsertIndex","getChangeKeyValue","_createInsertInfo","_setInsertAfterOrBeforeKey","allItems","isViewportBottom","getBottomVisibleItemIndex","insertKey","maxInsertIndex","editItem","insertChange","lastPageIndex","_addRow","param","oldEditRowIndex","allowCancelEditing","_allowRowAdding","__KEY__","_initNewRow","_addRowCore","_navigateToNewRow","insertIndex","initialOldEditRowIndex","editRowIndex","_addChange","focusController","pageIndexToInsertRow","_getPageIndexToInsertRow","navigateToRowByKey","navigateToRow","_showAddedRow","_afterInsertRow","_focusFirstEditableCellInRow","$firstCell","_editCellInProgress","_delayedInputFocus","_beforeFocusElementInRow","_setEditColumnName","_getColumnByName","editColumn","columnName","_getEditColumn","_isEditingStart","_beforeUpdateItems","_editRowFromOptionChangedCore","preventRendering","_needFocusEditor","repaintForm","saveEditData","removeChange","_removeInternalData","_updateInsertAfterOrBeforeKeys","_resetEditIndices","func","waitForDeferredOperations","oldColumn","beforeFocusCallback","callBeforeFocusCallbackAlways","inputFocus","$focusableElement","focusAndSelectElement","_beforeFocusCallback","$editCell","editColumnIndex","_checkAndDeleteRow","showDialogTitle","confirmResult","_deleteRowCore","_removeChange","_afterDeleteRow","onSavingParams","results","dataChanges","changeCopy","_beforeSaveEditData","_executeEditingAction","insert","newData","doneDeferred","_processRemoveCore","processIfBatch","hasSavedData","changesLength","isError","_processRemoveIfError","_processRemove","isSaving","_resolveAfterSave","_saving","_saveEditDataInner","_afterSaveEditData","_fireOnSaving","_processChanges","_processSaveEditDataResult","_endSaving","_cancelSaving","_beforeEndSaving","_refreshDataAfterSave","isFullRefresh","_fireSaveEditDataEvents","isEditColumnVisible","_isEditColumnVisible","_getEditCommandCellTemplate","isEditRowDefined","isButtonDisabled","_isEditButtonDisabled","setToolbarItemDisabled","_cancelEditDataCore","_beforeCancelEditData","_afterCancelEditData","isPageChanged","skipCurrentRow","rowKey","setCellValueResult","_updateRowValues","addDeferred","forceUpdateRow","_prepareChange","hasEditData","isEditCell","_updateEditRow","isCustomSetCellValue","isCustomCalculateCellValue","changeOptions","_applyChangeCore","_getRowIndicesForCascadeUpdating","_updateRowImmediately","_updateRowWithDelay","_updateEditRowCore","_validateEditFormAfterUpdate","elementContainer","_editForm","$focusedItem","changeParams","_getDefaultEditorTemplate","editingStartOptions","isRowMode","isRowBasedEditMode","isRowEditing","getEditFormTemplate","updateFieldValue","useLegacyColumnButtonTemplate","$button","iconType","localizationName","getButtonLocalizationNames","titleButtonTextByClassNames","revert","buttonItems","prepareButtonItem","shouldHighlightCell","allowEditAction","needCallback","_allowEditAction","modifiedValue","visibleEditRowIndex","cellModified","editingModule","_editingController","_updateEditItem","processDataItem","isParasiteChange","dataSourceKeys","newChanges","isEditNewItem","getColumnTemplate","isRowRemoved","isRowInserted","isRowModified","_getColumnIndexByElementCore","_getColumnIndexByElement","isEditedCell","isShowEditorAlways","editCell","withoutSaveEditData","closeEditCell","_pointerDownTimeout","_editCellByClick","isEditForm","isEditableCell","_editCellPrepared","hasTemplate","highlightDataCell","_formItemPrepared","getCellOptions","_focusEditorIfNeed","editButtonItems","prepareEditButtons","excludedOptions","shouldInvalidate","editingControllerExtender","Base","hasUpdateChanges","it","isRowEditMode","isVisibleInRowEditMode","$editingCell","getFocusedCellInRow","editingRowBasedModule","_updateEditFormDeferred","isPopupEditMode","isFormEditMode","firstFormItem","_firstFormItem","$editFormElements","_getEditFormEditorVisibleIndex","isFormOrPopupEditMode","getEditFormRowIndex","hasEditRow","onlyInsertChanges","_repaintEditPopup","popupVisible","_editPopup","_$popupContent","_showEditPopup","_hideEditPopup","editForm","isMobileDevice","editPopupClass","_getSaveButtonConfig","_getCancelButtonConfig","_getPopupEditFormTemplate","$popupContainer","_getEditPopupHiddenHandler","formTemplate","isPopupForm","defaultAnimation","_handleFormOptionChange","_handlePopupOptionChange","editPopup","popupOptionName","detailCellOptions","formTemplateOptions","isReadOnly","rowData","labelMark","getItemID","_getFormEditItemTemplate","validator","validatorOptions","contents","renderFormEditorTemplate","dxValidator","dataGetter","detailOptions","editFormOptions","_getValidationGroupsInForm","userCustomizeItem","editFormItemClass","itemId","formID","getFormEditorTemplate","rule","itemVisible","baseEditFormOptions","getEditFormOptions","$formContainer","$buttonsContainer","editingFormBasedModule","getEditForm","editFormRowIndex","isPopupEditing","_isFormItem","$pointerDownTarget","needCreateHandlers","targetComponent","isCellOrBatchEditMode","isEditorPopup","checkEditorPopup","isAnotherComponent","isAddRowButton","isCellEditMode","_closeEditItem","$dropDownEditorOverlay","$componentElement","isBatchEditMode","isCurrentComponentElement","$targetCell","isEditingCell","_needToCloseEditableCell","isEditColumnNameDefined","oldColumnIndex","_editCellFromOptionChanged","_editCell","coreResult","executeOperation","_editCellCore","isEditByOptionChanged","_getNormalizedEditCellOptions","_beforeEditCell","_prepareEditCell","_processCanceledEditingCell","_setEditColumnNameByIndex","_closeEditCellCore","_beforeCloseEditCellInBatchMode","columnsCount","_applyModified","_handleEditColumnNameChange","_repaintEditCell","needResetIndexes","isBatchMode","callBaseResult","_isRowDeleteAllowed","_resetModifiedClassCells","needEditingButtons","getEditRowIndex","isUpdateInCellMode","focusPreviousEditingCell","_needUpdateRow","editingCellBasedModule","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","FORM_BASED_MODES","COMMAND_TRANSPARENT","VALIDATION_STATUS","valid","invalid","pending","EDIT_DATA_INSERT_TYPE","EDIT_DATA_REMOVE_TYPE","VALIDATION_CANCELLED","validationResultIsValid","cellValueShouldBeValidated","ValidatingController","_validationState","initValidationState","_validationStateCache","validationData","_getValidationData","validated","keyHash","isObjectKeyHash","isValid","validationResults","brokenRules","brokenRule","getChangeByKey","_getBrokenRules","errorText","getHiddenValidatorsErrorText","brokenRulesMessages","isGroupExpandColumn","isVisibleColumn","isFull","completeList","_isValidationInProgress","validationResult","validateGroup","_currentCellValidator","_findGroup","getGroupConfig","validators","resetRowValidationResults","_rowValidating","isRowDataModified","setDisableApplyValidationResults","groupConfig","updateCellValidationResult","validationStatusChanged","getCellValidationResult","cancelCellValidationResult","requestIsDisabled","disabledPendingId","_disableApplyValidationResults","getEditorInstance","renderCellPendingIndicator","disposeCellPendingIndicator","oldDataFromState","needCreateValidator","isCellOrBatchEditingAllowed","_syncInternalEditingData","getValue","useDefaultValidator","adapter","applyValidationResults","applyValidationResult","validatorInitialized","validatorDisposing","originBypass","bypass","defaultAdapterBypass","validationRequestsCallbacks","flag","cellParams","stateRestored","currentCellValue","validate","_ref8","validationStatus","validatingModule","validating","validatingController","updateValidationState","startInsertIndex","_ref9","isNotCanceled","addInValidItem","isInserted","invisibleColumns","invisibleColumnValidators","isCellVisible","createValidator","disposeValidators","_createInvisibleColumnValidators","isFullValid","_updateRowAndPageIndices","validateCell","_showErrorRow","shouldResetValidationState","columnsWithValidatingEditors","validationState","resetRowAndPageIndices","removeCellValidationResult","currentValidator","getCellValidator","refocus","setCellValidationStatus","isValidated","needValidation","isCellInvalid","isInvalidCell","_rowIsValidated","$tooltipElement","_revertTooltip","$overlayContainer","revertTooltipClass","tooltipOptions","propagateOutsideClick","$buttonElement","buttonOptions","onPositioned","_positionedHandler","overlayOptions","$nextFixedRowElement","$groupCellElement","nextRowOptions","visibility","isOverlayVisible","__skipPositionProcessing","isRevertButton","needRepaint","normalizedPosition","_normalizeValidationMessagePositionAndMaxWidth","messages","editorPopup","myPosition","atPosition","hasFixedColumns","errorMessageText","invalidMessageClass","$overlayElement","_shiftValidationMessageIfNeed","_hideFixedGroupCell","validationMessages","_getValidationMessagesSelector","fixedColumns","visibleTableWidth","w1","w2","$overlayContentElement","validationMessageWidth","needMaxWidth","boundaryNonFixedColumnsInfo","firstNonFixedColumnIndex","lastNonFixedColumnIndex","endColumnIndex","$revertContent","contentOffset","revertContentOffset","skipValidator","setValidator","_showRevertButton","showValidationMessage","errorMessages","_showValidationMessage","_hideValidationMessage","isCurrentValidatorProcessing","updateCellState","oldValidationStatus","_getValidationStatus","newValidationStatus","rowIsModified","cellIsMarkedAsInvalid","hasValidationRules","rowEditStateChanged","cellValidationStateChanged","$freeSpaceRowElements","$tooltipContent","isEditorDisposed","contentTable","needTwoPagesLoading","_controller","isVirtual","getViewportItemIndex","getBeginPageIndex","_cache","getEndPageIndex","fireChanged","_isChangedFiring","processDelayChanged","_isDelayChanged","getViewportPageCount","_dataOptions","preventPreload","realViewportSize","viewportSize","viewportItemSize","getContentOffset","getViewportPosition","virtualItemsCount","begin","itemSize","getItemSizes","getPreloadPageCount","previous","getPageIndexForLoad","dataOptions","needToLoadPageBeforeLast","needToLoadPrevPage","needToLoadNextPage","_loadingPageIndexes","loadCore","processChanged","isDelayChanged","removeCacheItem","isPrepend","viewportItems","removeCount","correctCount","removeItemCount","itemsLength","updateLoading","_lastPageIndex","newPageIndex","lastPageSize","maxPageIndex","defaultPageIndex","endPageIndex","pageIndexForLoad","delayDeferred","_delayDeferred","onChanged","_setViewportPositionCore","removeInvisiblePages","lastCacheLength","beginItemsCount","endItemsCount","_isVirtual","subscribeToExternalScrollers","scrollChangedHandler","$scrollElement","scrollableArray","scrollToArray","disposeArray","getElementOffset","$scrollableElement","scrollableOffset","widgetScrollStrategy","subscribeToScrollEvents","isDocument","isElement","ELEMENT_NODE","eventsStrategy","topOffset","scrollMethod","getScrollElementParent","VirtualScrollController","_viewportSize","_viewportItemSize","_viewportItemIndex","_position","_isScrollingBack","_contentSize","_itemSizes","_sizeRatio","positionChanged","_dataLoader","viewportParams","getViewportParams","loadedOffset","loadedItemCount","scrollingTimeout","changingDuration","getScrollingTimeout","_scrollTimeoutID","viewportItemIndex","defaultItemSize","getItemSize","itemOffset","itemOffsetsWithSize","itemOffsetWithSize","itemOffsetDiff","prevPosition","getItemIndexByPosition","setViewportItemIndex","sizes","virtualContentSize","contentHeightLimit","isEnd","currentItemIndex","getItemOffset","viewportItemIndexChanged","isRefresh","_windowScroll","setViewportPosition","topIndex","bottomIndex","maxGap","isScrollingBack","minGap","topMinGap","bottomMinGap","remainedItems","BOTTOM_LOAD_PANEL_CLASS","FREESPACE_CLASS","VIRTUAL_ROW_CLASS","LOAD_TIMEOUT","VISIBLE_PAGE_INDEX","isItemCountableFunc","isItemCountableByDataSource","updateItemIndices","VirtualScrollingDataSourceAdapterExtender","_virtualScrollController","_totalCount","_loadPageCount","_getVirtualScrollDataOptions","_renderTime","_startLoadTime","handleDataChanged","newMode","virtualScrollController","r","getDelayDeferred","loadPageCount","takeIsDefined","VirtualScrollingRowsViewExtender","removeEmptyRows","$emptyRows","scrollToPage","updateViewport","_scrollToCurrentPageOnResize","resizeHandler","scrollPosition","itemSizes","_updateContentPosition","startRenderTime","throwHeightWarningIfNeed","_removeRowsElements","_restoreErrorRow","_updateBottomLoading","$virtualRow","rowHeights","_getRowHeights","correctedRowHeights","_correctRowHeights","setContentItemSizes","viewportHeight","visibleRows","firstCountableItem","lastLoadIndex","isRender","rowHeight","_updateContentItemSizes","$virtualRows","prevFixed","_isFixedTableRendering","_addVirtualRow","table","hasColumnLines","$columns","$virtualColumns","classes","isExpandColumn","$bottomLoadPanel","showBottomLoading","bottomLoadPanelElement","_findBottomLoadPanel","zeroTopPosition","isScrollTopChanged","hasScrolled","isValidScrollTarget","_updateViewportSize","hasBottomLoadPanel","isViewportChanging","needToThrow","_heightWarningIsThrown","scrollPos","loadIfNeed","virtualScrollingModule","updateTimeout","minTimeout","renderingThreshold","rowPageSize","prerenderedRowChunkSize","loadTwoPagesOnStart","legacyMode","prerenderedRowCount","baseResult","initVirtualRows","_rowsScrollController","_loadViewportParams","getLoadPageParams","rowsScrollController","isSortingOperation","allowedTopOffset","virtualRowsRendering","_allItems","_visibleItems","_rowPageIndex","getRowPageSize","_viewportChanging","_needUpdateViewportAfterLoading","_getRowsScrollDataOptions","loadViewport","_updateLoadViewportParams","isItemCountable","_itemCount","isNextAfterLast","countableOnly","delta","cancelEmptyChanges","prevCountable","prevRowType","isPrevRowNew","currentIndex","wasCountableItem","newRows","itemCountable","isNextGroupItem","isNextDataItem","isPrevNewRowFirst","skipForCurrentPage","isNewRowInEmptyData","isLoadIndexGreaterStart","isLoadIndexLessEnd","firstLoadIndex","preloadCount","byLoadedPage","loadedPageIndex","loadedTake","topPreloadCount","getPreloadedRowCount","bottomPreloadCount","skipWithPreload","loadingTake","currentPageIndex","viewPortItemIndex","loadedPageParams","pageIndexIsValid","_pageIndexIsValid","checkLoading","viewportIsFilled","changedParams","_getChangedLoadParams","currentLoadPageCount","lastRequiredItemCount","pageIndexNotChanged","allLoadedInAppendMode","isRepaintMode","pageIndexIncreased","viewportChanging","_updateVisiblePageIndex","checkLoadedParamsOnly","viewportIsNotFilled","loadingItemsStarted","_loadItems","needToUpdateItems","noPendingChangesInEditing","currentTake","newTake","proxyMethod","masterDataGridUpdated","isNewVirtualMode","_resizeTimeout","_lastTime","WINDOW_HEIGHT_PERCENT","getElementMaxHeightByWindow","startLocation","actualOffset","elementOffset","offsetTop","offsetBottom","DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS","DX_SUBMENU_CLASS","orientation","onHoverStart","_renderContextMenuOverlay","_renderDelimiter","$contentDelimiter","_getOverlayOptions","_overlayPositionedActionHandler","_showDelimiter","_hoverEndHandler","_toggleFocusClass","hoverStartAction","_hoverStartHandler","$rootItem","submenu","_drawSubmenu","_hideSubmenu","$submenu","containerOffset","vLocation","hLocation","rootOffset","offsetLeft","rootWidth","rootHeight","submenuWidth","submenuHeight","_isMenuHorizontal","_overlay","DX_MENU_CLASS","DX_MENU_VERTICAL_CLASS","DX_MENU_HORIZONTAL_CLASS","DX_MENU_ITEM_CLASS","DX_MENU_ITEMS_CONTAINER_CLASS","DX_MENU_ITEM_EXPANDED_CLASS","DX_CONTEXT_MENU_CLASS","DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS","DX_STATE_DISABLED_CLASS","DX_STATE_HOVER_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","ACTIONS","submenuDirection","showFirstSubmenuMode","hideSubmenuOnMouseLeave","onSubmenuShowing","onSubmenuShown","onSubmenuHiding","onSubmenuHidden","adaptivityEnabled","_setOptionsByReference","selectedItem","rootMenuElements","_itemElements","submenuElements","_submenuItemElements","currentSubmenu","_submenus","navigationAction","$newTarget","_getAvailableItems","isMenuHorizontal","_getItemsNavigationOperation","_getKeyboardNavigationAction","navOperation","_showSubmenu","_resizeEventTimer","_menuItemsWidth","_updateItemsWidthCache","_dimensionChanged","$menuItems","_getSummaryItemsWidth","_isAdaptivityEnabled","containerWidth","_toggleAdaptiveMode","_visibleSubmenu","_addCustomCssClass","_render","_initAdaptivity","_hamburger","_toggleTreeView","_toggleHamburgerActiveState","$menuItemsContainer","$adaptiveElements","_hideVisibleSubmenu","_treeView","_$adaptiveContainer","rtl","_ignoreFunctionValueDeprecation","menuOptions","_treeviewItemClickHandler","$hamburger","_renderHamburgerButton","_getTreeViewOptions","_getAdaptiveOverlayOptions","delayType","_keyboardHandler","_renderContainer","$itemFrame","_createSubmenu","_renderBorderElement","_getKeyboardListeners","$submenuContainer","subMenu","_getSubmenuOptions","_parentKey","_clearTimeouts","getSubmenuPosition","_attachSubmenuHandlers","$submenuTarget","showSubmenuMode","disabledExpr","selectedExpr","itemsExpr","onFocusedItemChanged","_nestedItemOnSelectionChangedHandler","_nestedItemOnItemClickHandler","_nestedItemOnItemRenderedHandler","onLeftFirstItem","_moveMainMenuFocus","onLeftLastItem","onCloseRootSubmenu","onExpandLastSubmenu","_isDesktopDevice","$currentItem","$newItem","addedItems","_clearSelectionInSubmenus","_clearRootSelection","targetSubmenu","cleanAllSubmenus","isOtherItem","$selectedItem","_selectedItemClass","selectedItemData","_clearSelectedItems","$prevSelectedItem","prevSelectedItemData","$submenuOverlayContent","getOverlayContent","submenus","submenuMouseLeaveName","hover","_submenuOnShowingHandler","_submenuOnShownHandler","_submenuOnHidingHandler","_submenuOnHiddenHandler","_submenuMouseLeaveHandler","$border","eventArgs","relatedTarget","_getSubmenuByRootElement","_hideSubmenuAfterTimeout","_getDelay","isRootItemHovered","isSubmenuItemHovered","hoveredElementFromSubMenu","isHorizontalMenu","submenuPosition","$closestItem","mouseMoveEventName","move","_getItemElementByEventArgs","isSelectionActive","which","_isItemDisabled","_getShowFirstSubmenuMode","_getSubmenuByElement","_itemMouseMoveHandler","_showSubmenuTimer","eventArg","_hideSubmenuTimer","_hoveredRootItem","pointers","_renderSubmenuItems","_updateSelectedItemOnClick","_initActions","_changeSubmenusOption","_removeAdaptivity","OPERATION_ICONS","notcontains","startswith","endswith","OPERATION_DESCRIPTORS","FILTERING_TIMEOUT","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","ARIA_SEARCH_BOX","isOnClickApplyFilterMode","$editorContainer","componentNames","ColumnHeadersViewFilterRowExtender","getRangeTextByFilterValue","rangeEnd","getColumnFilterValue","formatOptions","getColumnSelectedFilterOperation","bufferedSelectedFilterOperation","getFilterValue","isFilterRange","isRangeStart","updateFilterValue","_applyFilterViewController","setHighLight","normalizedValue","columnFilterValue","isBetween","$editorRangeElements","$menu","_updateEditorValue","overlayInstance","_updateFilterRangeContent","_updateFilterOperationChooser","_renderFilterRangeContent","_renderEditor","_getEditorOptions","_hideFilterRange","_filterRangeOverlayInstance","isFilterRowVisible","filterRangeOverlayClass","$overlay","$prevElement","prev","_initFilterRangeOverlay","_updateFilterRangeOverlay","_renderFilterOperationChooser","_renderFilterCell","accessibilityOptions","_getFilterInputAccessibilityAttributes","columnAriaLabel","editorController","filterRowController","setCurrentColumnForFiltering","getWrappedLookupDataSource","lookupOptions","$filterRangeContent","_showFilterRange","isCellWasFocused","restoreFocus","menu","_focusEditor","selectable","_getFilterOperationMenuItems","properties","columnSelectedFilterOperation","notFocusEditor","isOnClickMode","_isEditorFocused","filterRowOptions","availableFilterOperations","descriptionName","updateLookupDataSource","filterChanged","applyFilterViewController","editorDataSource","shouldUpdateFilter","DataControllerFilterRowExtender","skipCalculateColumnFilters","shouldSkip","getCurrentColumnForFiltering","ApplyFilterViewController","_headerPanel","_getHeaderPanel","enableApplyButton","removeHighLights","columnHeadersViewElement","_currentColumn","filterRowModule","columnsResizer","getFilterRangeOverlayInstance","_targetPoint","_needUpdateLookupDataSource","filterItem","_prepareFilterItem","_isShowApplyFilterButton","HEADER_FILTER_CLASS","HEADER_FILTER_MENU_CLASS","DEFAULT_SEARCH_EXPRESSION","resetChildrenItemSelection","getSelectAllCheckBox","listComponent","updateListSelectAllState","selectAllCheckBox","updateHeaderFilterItemSelectionState","filterValuesMatch","isExcludeFilter","HeaderFilterView","_listComponent","list","getListComponent","isFilterBuilder","fillSelectedItemKeys","isExclude","hasChildren","hasChildrenWithSelection","hideHeaderFilterMenu","$columnElement","getPopupContainer","updatePopup","headerFilterMenu","_cleanPopupContent","headerFilterOptions","useDefaultSearchExpr","headerFilterDataSource","filterSearchExpr","_normalizeHeaderFilterOptions","applyHeaderFilter","_initializeListContainer","needShowSelectAllCheckbox","widgetOptions","_getSearchExpr","pageLoadMode","showSelectionControls","_selectedItemsUpdating","oldSelected","filterValueIndex","isExcludeFilterType","generalHeaderFilter","specificHeaderFilter","generalDeprecated","specificDeprecated","headerFilterMixin","$headerFilterIndicator","_isHeaderFilterEmpty","indicatorLabel","DATE_INTERVAL_FORMATS","ungroupUTCDates","dateParts","dates","isMonthPart","convertDataFromUTCToLocal","getHeaderFilterGroupParameters","queryByOptions","isUTCFormat","HeaderFilterController","_headerFilterView","_updateSelectedState","currentLevel","valueSelector","displaySelector","getHeaderItemText","firstValueText","secondValue","secondValueText","_normalizeGroupItem","isLookup","cutoffLevel","useDefaultSearch","convertUTCDates","origPostProcess","isGroupPanel","showHeaderFilterMenuBase","columnElement","previousOnHidden","dxResizableInstance","dxResizable","headerFilterByColumn","ColumnHeadersViewHeaderFilterExtender","_subscribeToIndicatorEvent","_needUpdateFilterIndicators","_updateHeaderFilterIndicators","HeaderPanelHeaderFilterExtender","getCurrentColumn","headerFilterModule","headerFilterView","FILTER_BUILDER_RANGE_CLASS","FILTER_BUILDER_RANGE_START_CLASS","FILTER_BUILDER_RANGE_END_CLASS","FILTER_BUILDER_RANGE_SEPARATOR_CLASS","SEPARATOR","conditionInfo","$editorStart","$editorEnd","getStartValue","getEndValue","_editorFactory","getConfig","valueSeparator","notForLookup","isblank","isnotblank","OPERATION_NAME","getIconByFilterOperation","filterOperation","getNameByFilterOperation","DEFAULT_DATA_TYPE","EMPTY_MENU_ICON","AND_GROUP_OPERATION","EQUAL_OPERATION","NOT_EQUAL_OPERATION","boolean","object","DEFAULT_FORMAT","LOOKUP_OPERATIONS","AVAILABLE_FIELD_PROPERTIES","FILTER_BUILDER_CLASS","FILTER_BUILDER_ITEM_TEXT_CLASS","FILTER_BUILDER_ITEM_TEXT_PART_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS","getFormattedValueText","fieldFormat","isNegationGroup","isCondition","getGroupCriteria","setGroupCriteria","criteria","convertGroupToNewStructure","setGroupValue","substring","getGroupMenuItem","availableGroups","groupValue","getGroupValue","getCriteriaOperation","getDefaultFilterOperations","containItems","entity","getFilterOperations","getCaptionByOperation","getOperationFromAvailable","availableOperations","getCustomOperation","filteredOperations","getAvailableOperations","isLookupField","isOperationForbidden","isCustom","getDefaultOperation","createCondition","updateConditionByOperation","createEmptyGroup","isNegation","isNegationGroupOperation","groupOperation","getGroupOperationFromNegationOperation","getField","extendedFields","getItems","convertToInnerGroup","defaultGroupOperation","innerGroup","convertToInnerStructure","appendGroupOperationToGroup","convertToInnerCondition","conditionHasCustomOperation","appendGroupOperationToCriteria","getNormalizedFields","normalizedField","getConditionFilterExpression","filterExpression","getFilterExpression","_filterExpression","getNormalizedFilter","itemsForRemove","normalizedGroupValue","isValidCondition","getCurrentLookupValueText","loadSingle","getPrimitiveValueText","getArrayValueText","checkDefaultValue","getCurrentValueText","itemExists","pushItemAndCheckParent","originalItems","hasParent","getParentIdFromItemDataField","generateCaptionByDataField","lastIndexOf","getCaptionWithParents","getOperationValue","getMergedOperations","betweenCaption","betweenIndex","isMatchedCondition","addedFilterDataField","removeFieldConditionsFromFilter","hasMatchedCondition","syncConditionIntoGroup","addedFilter","canPush","syncFilters","getMatchedConditions","filterHasField","renderValueText","lastItemIndex","t","baseOperation","grid","getFullText","itemText","parentText","lastIndex","div","closeEditor","fieldInfo","itemsDeferred","_values","getSelectedItemsTexts","selectedItemsTexts","anyOf","noneOf","baseOp","baseFilter","FILTER_ROW_OPERATIONS","FILTER_TYPES_INCLUDE","FILTER_TYPES_EXCLUDE","getColumnIdentifier","checkForErrors","FilterSyncController","getEmptyFilterValues","canSyncHeaderFilterWithFilterRow","getConditionFromFilterRow","getConditionFromHeaderFilter","selectedOperation","updateHeaderFilterCondition","headerFilterCondition","hasArrayValue","updateFilterRowCondition","getFilteringColumns","_skipSyncColumnOptions","filterConditions","filterCondition","filteringColumns","syncFilterValue","isFilterSyncActive","_initSync","_getSyncFilterRow","_getSyncHeaderFilter","filterBuilderCustomOperations","DataControllerFilterSyncExtender","filterSyncEnabledValue","currentColumnForHeaderFilter","currentColumnForFilterRow","needRemoveCurrentColumnFilter","getCustomFilterOperations","calculatedFilterValue","matched","match","propertyName","_parseColumnPropertyName","syncHeaderFilter","syncFilterRow","ColumnHeadersViewFilterSyncExtender","filterSyncModule","filterSync","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_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","TAB_KEY","ENTER_KEY","ESCAPE_KEY","OPERATORS","FilterBuilder","closePopupOnTargetScroll","_initCustomOperations","disableInvalidateForValue","_disableInvalidateForValue","_initModel","_getNormalizedFields","_model","_customOperations","_updateFilter","_getModel","_initEditorFactory","_getDefaultGroupOperation","_this$option$","_this$option","actionConfig","_createGroupElementByCriteria","_createConditionElement","_createConditionItem","$group","_createGroupElement","$groupContent","groupCriteria","innerCriteria","$groupItem","_createRemoveButton","_createGroupOperationButton","_createAddButton","newGroup","newCondition","_getGroupOperations","groupMenuItem","$operationButton","_createButtonWithMenu","removeMenu","info","treeViewElement","treeView","dxTreeView","_subscribeOnClickAndEnterKey","_createPopupWithTreeView","_hasValueButton","_createOperationButtonWithMenu","currentOperation","$valueButton","siblings","_createValueButton","_createOperationAndValueButtons","_createFieldButtonWithMenu","getFullCaption","$fieldButton","isSingleChild","$removeButton","addGroupHandler","addConditionHandler","_createValueText","$text","_createValueEditorWithEvents","_updateConditionValue","areValuesDifferent","_addDocumentKeyUp","isComposing","hasCompositionJustEnded","documentKeyUpHandler","_documentKeyUpHandler","_addDocumentClick","closeEditorFunc","documentClickHandler","_isFocusOnEditorParts","_documentClickHandler","activeElement","_removeEvents","createValueText","_createValueEditor","$popup","$menuContainer","_wrapperClassExternal","FilterBuilderView","_updatePopupOptions","_initPopup","_filterBuilderPopup","_filterBuilder","_disposePopup","_getPopupContentTemplate","_getPopupToolbarItems","$filterBuilderContainer","filterBuilderModule","filterBuilderView","FILTER_PANEL_CLASS","FILTER_PANEL_TEXT_CLASS","FILTER_PANEL_CHECKBOX_CLASS","FILTER_PANEL_CLEAR_FILTER_CLASS","FILTER_PANEL_LEFT_CONTAINER","FILTER_PANEL_TARGET","FilterPanelView","isColumnsDefined","$leftContainer","_renderFilterBuilderText","$filterElement","_getFilterElement","$textElement","_getTextElement","_filterValueBuffer","$checkElement","_getCheckElement","$removeButtonElement","_getRemoveButtonElement","_showFilterBuilder","_addTabIndexToElement","filterText","getFilterText","customText","clearFilterValue","tabindex","fieldText","operationText","_getValueMaskedText","hasCustomOperation","_getValueText","_getConditionText","isInnerGroup","textParts","getConditionText","getGroupText","groupText","filterPanelModule","filterPanelView","SEARCH_PANEL_CLASS","SEARCH_TEXT_CLASS","parseValue","searchModule","searchFilter","onQueryDone","valueGetter","getSearchPanelOptions","_prepareSearchItem","searchPanelOptions","$search","$searchPanel","getSearchTextEditor","_searchParams","isCaseSensitive","stringNormalizer","_getStringNormalizer","normalizedSearchText","resultTextNodes","$contents","normalizedText","$textNode","$searchTextSpan","firstContentElement","after","_highlightSearchTextCore","isEquals","_getFormattedSearchText","textNodes","_findHighlightingTextNodes","textNode","_highlightTimer","_highlightSearchText","pageIndexChanged","pageSizeChanged","getElementStyle","_getElementComputedSt","computedStyle","getElementContentWidth","padding","getElementWidth","margin","getElementMinWidth","_excluded","viewFunction","contentAttributes","infoTextRef","infoTextVisible","isLargeDisplayMode","pageSizesRef","pagesRef","parentRef","Content","rootElementRef","calculateLargeDisplayMode","pageSizesWidth","pages","pagesWidth","parentWidth","calculateInfoTextVisible","infoWidth","minimalWidth","getElementsWidth","pagesHtmlWidth","ResizableContainerProps","TemplateProp","actualIsLargeDisplayMode","actualInfoTextVisible","subscribeToResize","effectUpdateChildProps","updateAdaptivityProps","pagerProps","_this$_effects$","_this$_effects$2","_effects","gridCompatibility","lightModeEnabled","maxPagesCount","pageIndexChange","pageSizeChange","pagesCountText","pagesNavigatorVisible","showPageSizes","restAttributes","currentElementsWidth","elementsWidth","setState","__state_argument","_this$props","restProps","BasePagerProps","freeze","PagerProps","getOwnPropertyDescriptors","defaultPageSize","InternalPagerProps","PAGER_INFO_CLASS","InfoTextPropsType","_this$props$infoText","getFormatter","KeyboardActionContext","widgetRef","LightButtonProps","keyboardEffect","subscribeToClick","defaultValue","keyboardContext","PAGER_CLASS","LIGHT_MODE_CLASS","PAGER_PAGES_CLASS","PAGER_PAGE_INDEXES_CLASS","PAGER_PAGE_CLASS","PAGER_SELECTION_CLASS","PAGER_PAGE_SIZE_CLASS","PAGER_PAGE_SIZES_CLASS","PAGER_SELECTED_PAGE_SIZE_CLASS","FIRST_CHILD_CLASS","PageProps","_excluded2","PAGER_PAGE_SEPARATOR_CLASS","PagesMarkup","pageProps","PAGES_LIMITER","getDelimiterType","slidingWindowSize","createPageIndexesBySlidingWindowIndexes","slidingWindowIndexes","delimiter","pageIndexes","indexesForReuse","createPageIndexes","PagesLargePropsType","canReuseSlidingWindow","generatePageIndexes","isSlidingWindowMode","onPageClick","slidingWindowState","slidingWindowStateHolder","currentPageCount","lastPageIsFartherThanWindow","pageIndexExistInIndexes","_createPageIndexes","_this$config","createPage","rtlPageIndexes","EditorStateProps","isSimulator","EditorLabelProps","DEFAULT_VALUE","componentProps","componentType","templateNames","NumberBoxProps","isReactComponentWrapper","NumberBoxPropsType","validationError","validationErrors","validationMessageMode","validationMessagePosition","_this$props$value","oneDigitWidth","calculateValuesFittedWidth","PAGER_INFO_TEXT_CLASS","PAGER_PAGE_INDEX_CLASS","LIGHT_PAGES_CLASS","PAGER_PAGES_COUNT_CLASS","pageIndexRef","selectLastPageIndex","valueChange","PagerSmallProps","PagerSmallPropsType","updateWidth","_this$pageIndexRef$cu","el","_this$props$pagesCoun","PAGER_NAVIGATE_BUTTON","PAGER_PREV_BUTTON_CLASS","PAGER_NEXT_BUTTON_CLASS","PAGER_BUTTON_DISABLE_CLASS","getNextButtonLabel","getPrevButtonLabel","classNames","nextEnabledClass","prevEnabledClass","nextDisabledClass","prevDisabledClass","reverseDirections","nextButtonProps","prevButtonProps","renderNextButton","renderPrevButton","navigate","getIncrement","PageIndexSelectorProps","PageIndexSelectorPropsType","__getterCache","getButtonProps","canNavigateToPage","getNextPageIndex","canNavigateTo","navigateToPage","rtlAwareDirection","canNavigate","nextProps","nextState","SelectBoxProps","SelectBoxPropsType","PageSizeSmallProps","PageSizeSmallPropsType","p","pageSizesText","PageSizeLargePropsType","onPageSizeChange","processedPageSize","htmlRef","normalizedPageSizes","getAllText","PageSizeSelectorProps","PageSizeSelectorPropsType","setRootElementRef","componentWillUpdate","aria","infoVisible","pageIndexSelectorVisible","pagesContainerVisibility","pagesContainerVisible","widgetRootElementRef","PagerContentProps","createFakeInstance","keyboardAction","_this$props$onKeyDown","fakePagerInstance","normalizedDisplayMode","classesMap","_this$props2","__newValue","_newValue","newPageSize","_this$props$pageSize$","getProps","_wrapKeyDownHandler","twoWay","allowNull","MAX_PAGES_COUNT","getPageIndex","PagerView","_pager","pagerOptions","useLegacyKeyboardNavigation","_pageSizes","pagerVisible","isPager","isPaging","isDataSource","isScrolling","skipProcessingPagingChange","pagerModule","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","_positionChanged","_tablePositionController","_unsubscribeFromCallback","_subscribeToCallback","_isShown","_renderSeparator","_isTransparent","columnsSeparatorTransparent","outerX","_parentElement","cursorName","startAnimate","toOptions","_isDragging","_dragOptions","draggingPanels","draggingPanel","boundingRect","getBoundingRect","_dropOptions","targetColumnIndex","targetColumnElement","posX","posY","_columnsResizerViewController","isCommandColumn","sourceIndex","sourceColumnIndex","_getVisibleIndexObject","sourceColumnElement","_onSelectStart","onselectstart","drag","whiteSpace","getSwatchContainer","eventData","dragOptions","moveDeltaX","abs","deltaX","moveDeltaY","deltaY","newLeft","newTop","dockHeader","targetDraggingPanel","_getDraggingPanelByPos","isVerticalOrientation","axisName","pointsByTarget","pointsByColumns","_generatePointsByColumns","centerPosition","dock","_resetTargetColumnOptions","drop","isNextColumnResizingMode","headersRowHeight","getHeadersRowHeight","_$parentContainer","isNextColumnMode","isRtlParentStyle","_isRtlParentStyle","firstPointColumnIndex","nextColumn","currentX","columnsSeparatorWidth","_columnsSeparatorView","parentOffset","parentOffsetLeft","isDragging","_draggingHeaderView","_isResizing","_resizingInfo","_updateColumnsWidthIfNeeded","currentColumnIndex","outerWidth","moveByX","_isHeadersRowArea","_previousParentOffset","_getTargetPoint","_isReadyResizing","changeCursor","_trackerView","nextColumnIndex","_getNextColumnIndex","currentHeader","getHeaderElement","nextHeader","startPosX","currentColumnWidth","nextColumnWidth","_setupResizingInfo","getPointsByColumns","_pointCreated","_pointsByColumns","_moveSeparatorHandler","_startResizingHandler","_endResizingHandler","_moveSeparator","_startResizing","_endResizing","resizingInfo","isPercentWidth","setColumnWidth","oldColumnWidth","cellWidth","nextCellWidth","nextMinWidth","needCorrectionNextCellWidth","allColumnsHaveWidth","totalPercent","hasScroll","_subscribesToCallbacks","subscribe","_unsubscribeFromEvents","_unsubscribeFromCallbacks","generatePointsByColumnsHandler","generatePointsByColumnsScrollHandler","_subscribeToEvents","previousScrollbarVisibility","previousTableHeight","scrollbarVisibility","_unsubscribes","diffOffsetTop","columnsHeadersHeight","getHeight","scrollBarWidth","columnsResizerController","draggingHeaderView","isDraggingOrResizing","_pagerView","targetPoint","isCustomGroupColumnPosition","checkIsCustomGroupColumnPosition","wasOnlyCommandColumns","isColumnAfterExpandColumn","isFirstExpandColumn","sourceColumnReorderingDisabled","otherColumnReorderingDisabled","draggingHeader","nameDraggingPanel","subscribeToEvents","dragHeader","moveHeader","dropHeader","_blockSeparatorView","blockSeparator","columnsSeparator","_animationColumnIndex","_headerPanelView","_columnChooserView","allowMoveColumn","headersView","separator","_getSeparator","hasTargetVisibleIndex","allowDrop","hideSeparators","moveColumn","columnsResizingReorderingModule","columnsSeparatorView","blockSeparatorView","trackerView","tablePosition","compareByReference","lastArgs","compareByValue","createCacheFunc","firstArgs","firstResult","originFunc","compareFunc","lastResult","argsEquals","MEMOIZE_DEFAULT_OPTIONS","compareType","memoize","cachedFunc","_len2","_key2","ATTRIBUTES","dragCell","FREESPACE_ROW_CLASS","COMMAND_CELL_SELECTOR","DATEBOX_WIDGET_NAME","FAST_EDITING_DELETE_KEY","INTERACTIVE_ELEMENTS_SELECTOR","NON_FOCUSABLE_ELEMENTS_SELECTOR","FOCUS_TYPE_ROW","FOCUS_TYPE_CELL","COLUMN_HEADERS_VIEW","FUNCTIONAL_KEYS","getCellToFocus","GridCoreKeyboardNavigationDom","isDragCell","DATAGRID_GROUP_FOOTER_CLASS","isGroupFooterRow","isNotFocusedRow","_isRowEditMode","isElementDefined","isMobile","isCellInHeaderRow","isFixedColumnIndexOffsetRequired","shouldPreventScroll","_isVirtualScrolling","_selectionController","_focusController","_memoFireFocusedCellChanged","_memoFireFocusedRowChanged","focusedHandlerWithContext","focusedHandler","renderCompletedWithContext","rowsViewFocusHandlerContext","rowsViewFocusHandler","_updateFocusTimeout","_fastEditingStarted","_focusedCellPosition","_canceledCellPosition","initViewHandlers","initDocumentHandlers","setupFocusedView","_isNeedScroll","_focusedView","_scrollToElement","isRelatedTargetInRowsView","isLink","_isEventInCurrentGrid","$focusedCell","_getFocusedCell","isCell","needSetFocusPosition","_updateFocusedCellPosition","$rowsView","isFocusedViewCorrect","needUpdateFocus","isFocusedElementCorrect","unsubscribeFromRowsViewFocusEvent","subscribeToRowsViewFocusEvent","initPointerEventHandler","initKeyDownHandler","_setRowsViewAttributes","_isNeedFocus","_isHiddenFocus","unsubscribeFromPointerEvent","unsubscribeFromKeyDownEvent","isCurrentRowsViewClick","isEditorOverlay","isColumnResizing","targetInsideFocusedView","_resetFocusedCell","_resetFocusedView","_getRowsViewElement","isGridEmpty","_applyTabIndexToElement","pointerEventName","_pointerEventAction","clickSelector","_pointerEventHandler","subscribeToPointerEvent","_keyDownListener","_keyDownHandler","subscribeToKeyDownEvent","focusType","needStopPropagation","_processOnKeyDown","_updateFocusedCellPositionByTarget","_leftRightKeysHandler","ctrl","_upDownKeysHandler","_pageUpDownKeyHandler","_spaceKeyHandler","_ctrlAKeyHandler","_beginFastEditing","_tabKeyHandler","_enterKeyHandler","_escapeKeyHandler","_ctrlFKeyHandler","_f2KeyHandler","_isFastEditingAllowed","_isFastEditingStarted","alt","altKey","getVisibleRowIndex","getRow","directionCode","_getDirectionCodeByKey","isEditingNavigationMode","allowNavigate","setCellFocusType","_closeEditCell","_isVirtualColumnRender","_processVirtualHorizontalPosition","_getNextCell","_arrowKeysHandlerFocusCell","isUpArrow","isRowEditingInCurrentRow","_navigateNextCell","_isVirtualRowRender","_scrollBy","isPageUp","pageStep","isFocusedRowElement","_getElementType","isRowFocusType","isFocusedSelectionCell","isCellPositionDefined","isOriginalHandlerRequired","_isLastValidCell","_isFirstValidCell","eventTarget","focusedViewElement","_handleTabKeyOnMasterDetailCell","_editingCellTabHandler","_targetCellTabHandler","allVisibleColumns","renderedVisibleColumns","localColumnIndex","getColumnIndex","horizontalScrollPosition","needToScroll","_getVisibleColumnCount","_getMaxHorizontalOffset","_isFixedColumn","_isColumnRendered","leftEdgePosition","_isColumnVirtual","_getHorizontalScrollPositionOffset","scrollBy","positionOffset","$currentCell","_getCell","currentCellWidth","rtlMultiplier","isEditingAllowed","_getCellElementFromTarget","elementType","nextCellInfo","_getNextCellByTabKey","_getRowIndex","_isDataRow","_focusCell","isHighlighted","_editFocusedCell","_focusInteractiveElement","$lastInteractiveElement","_getInteractiveElement","getFirstValidCellInRow","_checkNewLineTransition","_fireFocusedCellChanging","$newCellElement","_getCellPosition","_fireFocusedRowChanging","rowIndexChanged","setFocusedColumnIndex","_processEnterKeyForDataCell","_getEnterKeyDirection","allowEditingOnEnterKey","_allowEditingOnEnterKey","_handleEnterKeyEditingCell","_startEditing","isShift","_focusEditFormCell","searchTextEditor","keyCode","isCellValid","_isCellValid","$nextCell","isVerticalDirection","_fireFocusChangingEvents","_focus","isDeleting","fastEditingKey","isInteractiveElement","isExpandCommandCell","_isInsideEditForm","_focusView","_isMasterDetailCell","_clickTargetCellHandler","_isCellEditMode","setRowFocusType","setFocusedRowIndex","prevRowIndex","resetFocusedRow","_resetFocusedRow","_allowRowUpdating","skipFocusEvent","isEditor","isDisabled","activeElementSelector","_isCellElement","_focusElement","rowsViewElement","$focusedView","getFocusedView","$view","disableFocus","$focusElement","focusedView","isRowFocus","one","isRenderView","_needFocusEditingCell","_hasSkipRow","$focusedElementInsideCell","isFocusedElementDefined","cellEditModeHasChanges","isNewRowBatchEditMode","isNewRowInEditMode","setFocusedCellPosition","_getFixedColumnIndexOffset","_getFocusedColumnIndexOffset","_applyColumnIndexBoundaries","renderFocusState","newRowIndex","code","visibleColumnsCount","_hasValidCellAfterPosition","_isLastRow","_hasValidCellBeforePosition","getMaxRowIndex","lastVisibleIndex","isFirstValidCell","hasValidCells","checkingPosition","_isCellByPositionValid","visibleColumnCount","isLastRow","isClick","isShowWhenGrouped","isDataCell","rowItems","_isLegacyNavigation","$result","focusedCellPosition","includeCommandCells","newFocusedCellPosition","_getNewPositionByCode","isLastCellOnDirection","_isCellInRow","visibleColumnIndex","_isAllowEditing","_startEditCell","colIndex","editResult","isEditResultDeferred","isFastEditingStarted","editorValue","editResultDeferred","waitTemplatesDeferred","_editingCellHandler","$input","$inputElement","keyDownEvent","keyPressEvent","inputEvent","val","$widgetContainer","fireRowEvent","isCellFocusType","newColumnIndex","prevColumnIndex","localRowIndex","$newFocusedRow","prevFocusedRowIndex","getFocusedRowIndexByKey","getCell","restoreFocusableElement","$editForm","$masterDetailCell","_$cell","_processNextCellInMasterDetail","isCanceled","keyboardNavigationModule","needTriggerPointerEventHandler","_triggerPointerDownEventHandler","updateFocusedRowIndex","updateFocusElementTabIndex","_updateFocusedCellTabIndex","cellElementsLength","updateCellTabIndex","isMasterDetailCell","isValidCell","_renderFocusByChange","editorInstance","_getEditorInstance","_handleEditingNavigationMode","originalKeyHandler","isDropDownOpened","isDateBoxWithMask","_processCanceledEditCellPosition","keyboardNavigationController","_keyboardNavigationController","getRowIndexCorrection","focusedRowIndexCorrection","adaptiveColumns","depthFirstSearch","depth","array","isCount","aggregator","normalizeAggregate","aggregate","errors","_data","_groupLevel","_totalAggregates","totalAggregates","_groupAggregates","groupAggregates","_totals","_calculateTotals","_calculateGroups","aggregates","_accumulate","_seed","_aggregate","_finalize","maxLevel","seedFn","stepFn","finalizeFn","innerNode","seed","NaN","aggregateIndex","step","fin","finalize","DATAGRID_TOTAL_FOOTER_CLASS","DATAGRID_SUMMARY_ITEM_CLASS","DATAGRID_TEXT_CONTENT_CLASS","DATAGRID_GROUP_TEXT_CONTENT_CLASS","DATAGRID_NOWRAP_CLASS","DATAGRID_FOOTER_ROW_CLASS","DATAGRID_GROUP_FOOTER_ROW_TYPE","DATAGRID_TOTAL_FOOTER_ROW_TYPE","renderSummaryCell","$summaryItems","getSummaryCellOptions","getGroupAggregates","FooterView","footerItems","needUpdateScrollLeft","_updateScrollLeftPosition","$newTable","$newRow","totalColumnIndices","SummaryDataSourceAdapterExtender","_summaryGetter","summaryGetter","sortByGroupsInfo","sortByGroups","groupedItems","forEachGroup","itemsPath","SummaryDataSourceAdapterClientExtender","calculateAggregates","calculator","insertedData","getInsertedData","applyAddedData","removedData","getRemovedData","applyRemovedData","updatedData","updatedItems","sortGroupsBySummary","sortGroupsBySummaryCore","sortBy","thenBy","sortedItems","totalSummary","hasOperations","_isDataColumn","isGroupFooterVisible","_isGroupFooterVisible","summaryGroupItems","afterGroupColumnIndex","_calculateSummaryCells","calculateTargetColumnIndex","summaryCellsByColumns","summaryIndex","summaryTotalItems","_footerItems","oldSummaryCells","_getSummaryCells","summaryCell","getUpdatedData","_prepareUnsavedDataSelector","commonSkipEmptyValues","_prepareAggregateSelector","summaryProcess","totalValue","summaryItemIndex","groupSummaryItems","_findSummaryItem","_addSortInfo","currentRemoteOperations","_getSummaryOptions","totalSummaryItems","_getAggregates","_getSummarySortByGroups","summaryItemName","_refreshSummary","_renderGroupSummaryCells","_hasAlignByColumnSummaryItems","groupCellColSpan","alignByColumnCellCount","$groupCell","_getAlignByColumnCellCount","_renderGroupSummaryCellsCore","_getSummaryCellIndex","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","fixedTableElement","_fixedTableElement","_partialUpdateFixedRow","needUpdateColspan","$fixedTable","$fixedDataRows","needPartialUpdate","_partialUpdateFixedTable","_correctColumnIndicesForFixedColumns","fixedCorrection","fixedCells","prevFixedColumn","columnCommand","isRowAltStyle","isSelectAllCell","isEmptyCell","isGroupCell","alignByFixedColumnCellCount","headerRowIndex","fixedCellElements","fixedColumn","getVisibleIndexByColumn","$transparentColumn","getTransparentColumnElement","positionTransparentColumn","synchronizeRows","isColumnWidthsSynced","isColumnWidthChanged","needVisibleColumns","setFixedTableColumnWidths","needSynchronizeRows","boundingClientRectElement","$fixedRowElements","fixedRowHeights","heightTable","_getClientHeight","heightFixedTable","fixedRowHeight","ColumnHeadersViewFixedColumnsExtender","columnFixingOptions","$transparentColumnElement","$fixedColumnElements","getFixedColumnElements","RowsViewFixedColumnsExtender","isHover","hasResizeTimeout","contentClass","scrollDelay","_getScrollDelay","_fixedScrollTimeout","wheel","$nearestScrollable","shouldScroll","nearestScrollableInstance","nearestScrollableHasVerticalScrollbar","scrollableTop","scrollableHeight","isPreventDefault","_updateFixedTablePosition","_detachHoverEvents","_attachHoverEvents","needFocus","vWidth","hWidth","styles","$fixedContent","elasticScrollTop","reachedBottom","$scrollableContent","$scrollableContainer","maxScrollTop","_getElasticScrollTop","_applyElasticScrolling","getFixedColumnsOffset","FooterViewFixedColumnsExtender","columnFixingModule","correctIndex","_pointsByFixedColumns","ROWS_VIEW","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","focusCellHandler","adaptiveColumnsControllerMembers","_getEditMode","focusAction","_isItemModified","renderFormTemplate","isItemEdited","_isItemEdited","_renderFormViewTemplate","percentWidths","_getItemPercentWidth","_isPercentWidth","_hiddenColumns","hiddenColumn","columnsCanFit","fixedColumnsWidth","columnsWithoutFixedWidthCount","_isColumnHidden","_calculatePercentWidth","contentColumns","widthOption","columnFitted","partialWidth","resultWidth","_calculateColumnWidth","adaptiveExpandedKey","_getAdaptiveColumnVisibleIndex","_hideVisibleColumn","cssClassNameToRemove","$hiddenCommandCells","_showHiddenCellsInView","$hiddenCells","_hideVisibleColumnInView","rowsCount","getRowsCount","cancelClassAdding","currentVisibleIndex","_findCellElementInRow","_hideVisibleCellInView","$rowCells","cellIsInsideGroup","groupCellLength","endGroupIndex","cssClassNameToAdd","hiddenQueue","_isVisibleColumnsValid","needHideColumn","rootElementWidth","_getCommandColumnsWidth","getVisibleContentColumns","visibleContentColumns","contentColumnsCount","_calculatePercentWidths","_getNotTruncatedColumnWidth","columnBestFitWidth","_hideAdaptiveColumn","_$itemContents","$itemContent","alwaysExpanded","userFormOptions","_getFormItemsByHiddenColumns","defaultFormOptions","formOptions","_form","updateForm","hasAdaptiveDetailRowExpanded","_contentReadyAction","columnsHasHidingPriority","hideableColumns","_hidingColumnsQueue","adaptiveHidden","isAdaptiveVisible","updateHidingQueue","setCommandAdaptiveAriaLabel","labelName","$adaptiveCommand","AdaptiveColumnsController","isCellOrBatchMode","_adaptiveController","adaptivityModule","_adaptiveColumnsController","createFormByHiddenColumns","hidingColumnsQueueLength","getHidingColumnsQueue","hiddenColumnsLength","getHiddenColumns","$adaptiveDetailItems","getAdaptiveDetailItems","getItemContentByColumnIndex","isClickable","hasHiddenColumnsOnly","hasAdaptiveHiddenWidth","$itemContents","oldExpandRowIndex","_isForceRowAdaptiveExpand","collapseAdaptiveDetailRow","_collapseAdaptiveDetailRow","_cancelEditAdaptiveDetailRow","isAdaptiveDetailRowExpanded","expandedKey","_adaptiveExpandedKey","adaptiveController","oldHiddenColumns","hidingColumnsQueue","hideRedundantColumns","_showHiddenColumns","_updateScrollableTimeoutID","expandRowIndex","lastRowIndex","oldExpandLoadedRowIndex","newExpandLoadedRowIndex","oldKey","updateCommandAdaptiveAriaLabel","foreachColumnInfo","offsets","lastProcessedIndexes","processedColumnCount","createColumnsInfo","endIndex","newInfo","columnInfo","cellColspan","DEFAULT_COLUMN_WIDTH","setScrollPosition","_restoreScrollTop","HeaderViewExtender","ColumnsControllerExtender","getWidths","_beginPageIndex","_endPageIndex","_virtualVisibleColumns","currentPosition","getColumnPageSize","getTotalWidth","_changedTimeout","_setScrollPositionCore","needColumnsChanged","_fireColumnsChanged","visibleColumnsHash","beginFixedColumnCount","beginFixedColumns","beginColumns","beginWidth","endFixedColumnCount","endFixedColumns","endColumns","endWidth","columnsInfo","leftFixedColumnCount","virtualColumnsModule","columnPageSize","columnRenderingThreshold","DROP_DOWN_BUTTON_CLASS","DROP_DOWN_BUTTON_CONTENT","DROP_DOWN_BUTTON_ACTION_CLASS","DROP_DOWN_BUTTON_TOGGLE_CLASS","DROP_DOWN_BUTTON_HAS_ARROW_CLASS","DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS","DROP_DOWN_EDITOR_OVERLAY_CLASS","DX_BUTTON_CLASS","DX_BUTTON_TEXT_CLASS","DX_ICON_RIGHT_CLASS","DropDownButton","selectedItemKey","stylingMode","useSelectMode","splitButton","showArrowIcon","onButtonClick","opened","dropDownOptions","dropDownContentTemplate","wrapItemText","useItemTextAsTitle","groupTemplate","buttonGroupOptions","_createItemClickAction","_createActionClickAction","_createSelectionChangedAction","_compileKeyGetter","_compileDisplayGetter","_itemsToDataSource","_options","_templateManager","addDefaultTemplates","$listContainer","_list","_listOptions","_escHandler","_getKey","storeKey","_keyGetter","_renderButtonGroup","_updateArrowClass","_loadSelectedItem","_updateActionButton","_renderFocusTarget","_renderPopup","_popup","_renderPopupContent","_this$_loadSingleDefe","_loadSingleDeferred","_lastSelectedItemData","cachedResult","_loadSingle","_actionClickAction","_selectionChangedAction","_itemClickAction","previousItem","_actionItem","_actionButtonConfig","isActionButton","isToggleButton","buttonTemplate","buttonContent","$firstIcon","$textContainer","$secondIcon","_getButtonGroupItems","_buttonGroupItemClick","onKeyboardHandled","_getTemplateByOption","_popupContentId","horizontalAlignment","$buttonClicked","actionResult","_fireItemClickAction","_buttonGroup","close","_popupOptions","_popupHidingHandler","_popupShowingHandler","_bindInnerWidgetOptions","_updateAriaAttributes","_popupOptionChanged","getOptionsFromContainer","_setPopupOption","optionsKeys","popupWidth","_setWidgetOption","elementAria","owns","commonButtonAria","haspopup","firstButtonAria","_getButtons","_setElementAria","_setButtonsAria","$buttonGroup","_buttonGroupOptions","_upDownKeyHandler","_tabHandler","hasArrow","isPrimitiveItem","_getDisplayValue","_setListOption","_fireSelectionChangedAction","newConfig","_updateButtonGroup","_selectedItemKeyChanged","_actionButtonOptionChanged","_updateDataSource","_updateKeyExpr","_this$_popup","_selectModeChanged","_innerWidgetOptionChanged","_updateItemCollection","include","prepareItems","emptyCell","defaultSetter","cols","DATAGRID_EXPORT_MENU_CLASS","DATAGRID_EXPORT_BUTTON_CLASS","DATAGRID_EXPORT_TOOLBAR_BUTTON_NAME","DATAGRID_EXPORT_ICON","DATAGRID_EXPORT_EXCEL_ICON","DATAGRID_EXPORT_SELECTED_ICON","DATAGRID_PDF_EXPORT_ICON","initialColumnWidthsByColumnIndex","selectedRowsOnly","_exportController","_initialColumnWidthsByColumnIndex","_selectedRowsOnly","_getColumns","_selectionOnly","_getSelectedItems","_getAllItems","isHeadersVisible","bold","columnStyles","getHeaderStyles","getColumnStyles","getGroupRowStyle","getHeaderRowCount","isTotalCell","_getTotalCellStyleId","getColumnsByAllRows","_correctCellIndex","_initOptions","gridGroupSummaryItems","isExcelJS","cellSourceData","correctedCellIndex","columnsRow","gridColumn","itemValues","totalSummaryItemName","_convertFromGridGroupSummaryItems","_getGroupValue","_value","correctCellIndex","isSummaryAlignByColumn","exportColspan","currentHeaderRow","columnWidthsByColumnIndex","_getColumnWidths","_headersView","_needColumnExporting","currentColspan","_calculateExportColspan","_updateColumnWidth","_getEmptyCell","childColumns","childColumn","isTotal","estimatedItemsCount","sourceItems","beforeGroupFooterItems","groupFooterItems","_getFooterSummaryItems","summaryValues","groupColumnCount","k","loadAll","_updateGroupValuesWithSummaryByColumn","_hasSummaryGroupFooters","_getItemsWithSummaryGroupFooters","_processUnExportedItems","needLoadItemsOnExportingSelectedItems","hasOnExporting","hasActionSubscription","throwWarningIfNoOnExportingEvent","columnsLastRowVisibleColumns","getAction","fileName","_isSelectedRows","callbackList","editingButtonsUpdated","exportButton","_getExportToolbarButton","_correctItemsPosition","_getExportToolbarItems","_needDisableExportButton","toolbarButtonOptions","_widgetOptions","_index","exportOptions","formatType","formatName","exportAllIcon","exportSelectedIcon","itemA","itemB","hasUnsavedChanges","isColumnLocationChanged","_isExportButtonVisible","getSortFilterValue","sortInfo","getSelector","rawValue","safeValue","UiGridCoreFocusUtils","ROW_FOCUSED_CLASS","TABLE_POSTFIX_CLASS","FocusController","_keyboardController","_focusRowByIndex","_fireFocusedRowChanged","_focusRowByKey","isAutoNavigateToFocusedRow","_focusRowByIndexCore","setKeyByIndex","_isValidFocusedRowIndex","_getLastItemIndex","isRowFocused","_isLocalRowIndex","waitReady","isVirtualScrolling","virtualItems","virtualItemsBegin","visibleRowsCount","visiblePagesCount","_navigateToRow","isFocusedRowKeyDefined","needFocusRow","isAutoNavigate","rowIndexByKey","_navigateTo","getPageIndexByKey","isVirtualRowRenderingMode","_navigateToVirtualRow","_navigateToVisibleRow","_triggerUpdateFocusedRow","scrollToRowElement","triggerUpdateFocusedRow","scrollTopPosition","currentFocusedRowIndex","$mainRow","isMainTable","_clearPreviousFocusedRow","_prepareFocusedRow","changedItem","scrollToElementVertically","$prevRowFocusedElement","focusedRow","$focusedRowTable","$firstRow","focusModule","_fireFocusedCellChanged","isRowElement","sortByKey","notSortedKeys","getDataIndexGetter","notSortedKey","isPartialUpdate","isPartialUpdateWithDeleting","_updatePageIndexes","_updateFocusedRow","prevRenderingPageIndex","_lastRenderingPageIndex","renderingPageIndex","_isPagingByRendering","pagingWithoutVirtualScrolling","isReload","isValidRowIndexByKey","isValidFocusedRowIndex","isSameRowIndex","_focusRowByKeyOrIndex","getGlobalRowIndexByKey","_calculateGlobalRowIndexByGroupedData","_calculateGlobalRowIndexByFlatData","groupFilter","useGroup","_generateFilterByKey","_concatWithCombinedFilter","_generateOperationFilterByKey","booleanFilter","_generateBooleanFilter","sortFilter","dataSourceKey","keyPart","updateFocusedRow","_setFocusedRowElementTabIndex","_findRowElementForTabIndex","_scrollToFocusOnResize","isPagingByRendering","getScrollElementPosition","currentScrollTop","resetFilterApplying","isRowClick","_isFocusedRowInsideGroup","groupPath","expandRow","_expandGroupByPath","isGroupKey","_getGroupPath","_calculateExpandedRowGlobalIndex","dataOffset","groupContinuationCount","currentPageOffset","SORTABLE","PLACEHOLDER_CLASS","CLONE_CLASS","isElementVisible","transform","transition","stopAnimation","getScrollableBoundary","$scrollable","paddingTop","Sortable","_sourceScrollHandler","_handleSourceScroll","_sourceScrollableInfo","itemOrientation","moveItemOnDrop","onPlaceholderPrepared","dropInsideItem","itemPoints","fromIndexOffset","autoUpdate","draggableElementSize","_$placeholderElement","_isIndicateMode","_$modifiedItem","_modifiedItemMargin","_getPrevVisibleItem","$sourceElement","_getSourceElement","_updateItemPoints","_subscribeToSourceScroll","_getElementIndex","_getScrollable","sourceScrollableInfo","scrollProp","_correctItemPoints","_movePlaceholder","_getSourceDraggable","lastItemPoint","_isVerticalOrientation","sourceElementSize","scrollSize","positionProp","lastPointPosition","elementPosition","freeSize","_getItems","$sortable","sortable","_unsubscribeFromSourceScroll","_getTargetDraggable","targetDraggable","$targetDraggable","itemPoint","sourceEvent","cancelAdd","cancelRemove","sourceDraggable","isSourceDraggable","_allowDrop","_fireAddEvent","_fireRemoveEvent","_moveItem","_fireReorderEvent","cursorPosition","pageY","pageX","_updatePlaceholderPosition","_verticalScrollHelper","$placeholderContainer","_$dragElement","itemsSelector","_getItemsSelector","_$content","draggableVisibleIndex","_allowReordering","itemWidth","itemElements","visibleItemElements","visibleItemCount","$draggableItem","_getDraggableElement","needCorrectLeftPosition","needCorrectTopPosition","_isValidPoint","points","forceUpdate","_getItemPoints","positionPropName","skipOffsetting","isAnotherDraggable","_getActualFromIndex","_normalizeToIndex","_getEventArgs","_getAction","placeholderElement","dragElement","_$scrollable","scrollableWidth","overflowLeft","overflowRight","$placeholderElement","_makeWidthCorrection","$prevTargetItemElement","$itemElements","$targetItemElement","_toggleDragSourceClass","_moveItemCore","$targetItem","prevItem","isDragSource","$fromElement","_optionChangedDropInsideItem","_optionChangedToIndex","scrollContainer","clientRect","pageYOffset","pageXOffset","showPlaceholder","_togglePlaceholder","_moveItems","fullUpdate","_updateDragSourceClass","_$sourceElement","_createPlaceholder","prevVisibleItemElement","_updatePlaceholderSizes","_isPositionVisible","isLastVerticalPosition","outerPlaceholderHeight","_makeLeftCorrection","_move","elementSize","positions","prevToIndex","_getDraggableElementSize","prevPositions","_getPositions","animationConfig","CLASSES","cellFocusDisabled","handleIcon","commandDrag","sortableWithoutHandle","createHandleTemplateFunc","GridCoreRowDraggingDom","RowDraggingExtender","_updateHandleColumn","isHandleColumnVisible","_getHandleTemplate","currentSortableName","anotherSortableName","togglePointerEventsStyle","_sortableFixed","rowsViewOffset","onDraggableElementShown","$dragElement","gridInstance","_synchronizeScrollLeftPosition","_getDraggableRowTemplate","onDragEnter","onDragLeave","hasFixedSortable","_updateSortable","_sortable","gridOptions","$dataGridContainer","_getDraggableGridOptions","rowDraggingModule"],"mappings":"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","file":"js/chunk-210bedb0.a70ed70c.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pt-4\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('v-card',{staticClass:\"d-flex align-center rounded-lg pa-2\",attrs:{\"flat\":\"\"}},[_c('v-spacer'),_c('v-btn',{staticClass:\"rounded-xl\",attrs:{\"tile\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.back()}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('back'))+\"\\n \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-arrow-left \")])],1)],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('v-card',{staticClass:\"d-flex align-center rounded-lg pa-2 pb-0\",attrs:{\"flat\":\"\"}},[_c('DxDataGrid',{attrs:{\"column-hiding-enabled\":true,\"id\":\"gridContainer\",\"rtl-enabled\":_vm.$i18n.locale == 'ar' ? true : false,\"data-source\":_vm.degree,\"show-column-lines\":_vm.showColumnLines,\"show-row-lines\":_vm.showRowLines,\"show-borders\":_vm.showBorders,\"row-alternation-enabled\":_vm.rowAlternationEnabled,\"remote-operations\":true,\"repaint-changes-only\":true,\"allow-column-resizing\":false,\"column-min-width\":50},on:{\"saving\":_vm.onSaving}},[_c('DxPaging',{attrs:{\"page-size\":10}}),_c('DxPager',{attrs:{\"show-page-size-selector\":true,\"allowed-page-sizes\":_vm.pageSizes,\"show-info\":false,\"show-navigation-buttons\":true,\"visible\":true}}),_c('DxEditing',{staticClass:\"txtRight\",attrs:{\"mode\":\"batch\",\"allow-adding\":false,\"allow-deleting\":false,\"allow-updating\":true}}),_c('DxSearchPanel',{attrs:{\"visible\":true,\"placeholder\":_vm.placeholder}}),_c('DxColumn',{attrs:{\"data-field\":\"studentName\",\"allow-editing\":false,\"id\":\"txtRight\",\"caption\":_vm.$t('name')}}),_c('DxColumn',{attrs:{\"data-field\":\"extraDegree\",\"width\":100,\"caption\":_vm.$t('degrees.theDegree')}},[_c('DxRequiredRule',{attrs:{\"message\":_vm.$t('degrees.ThisFieldIsRequired')}}),_c('DxNumericRule',{attrs:{\"message\":_vm.$t('degrees.ItShouldBeANumber')}}),_c('DxRangeRule',{attrs:{\"message\":_vm.$t('degrees.TheScoreMustBeetween0And100'),\"max\":\"100\",\"min\":\"0\"}})],1),_c('DxColumn',{attrs:{\"data-field\":\"notex\",\"caption\":_vm.$t('Notes')}})],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global)\n\nvar support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : ''\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = global.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!global.fetch) {\n global.fetch = fetch\n global.Headers = Headers\n global.Request = Request\n global.Response = Response\n}\n","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./extraDegree.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./extraDegree.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./extraDegree.vue?vue&type=template&id=10a357c2&\"\nimport script from \"./extraDegree.vue?vue&type=script&lang=js&\"\nexport * from \"./extraDegree.vue?vue&type=script&lang=js&\"\nimport style0 from \"./extraDegree.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCol,VContainer,VIcon,VRow,VSpacer})\n","/*!\n * devextreme-vue\n * Version: 23.1.6\n * Build date: Fri Oct 13 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxHide = exports.DxHeaderFilter = exports.DxGroupPanel = exports.DxGroupOperationDescriptions = exports.DxGroupItem = exports.DxGroupingTexts = exports.DxGrouping = exports.DxFrom = exports.DxFormItem = exports.DxFormat = exports.DxForm = exports.DxFilterRow = exports.DxFilterPanelTexts = exports.DxFilterPanel = exports.DxFilterOperationDescriptions = exports.DxFilterBuilderPopup = exports.DxFilterBuilder = exports.DxFieldLookup = exports.DxField = exports.DxExportTexts = exports.DxExport = exports.DxEmailRule = exports.DxEditingTexts = exports.DxEditing = exports.DxDataGridSelection = exports.DxDataGridHeaderFilterTexts = exports.DxDataGridHeaderFilterSearch = exports.DxDataGridHeaderFilter = exports.DxCustomRule = exports.DxCustomOperation = exports.DxCursorOffset = exports.DxCompareRule = exports.DxColumnLookup = exports.DxColumnHeaderFilterSearch = exports.DxColumnHeaderFilter = exports.DxColumnFixingTexts = exports.DxColumnFixing = exports.DxColumnChooserSelection = exports.DxColumnChooserSearch = exports.DxColumnChooser = exports.DxColumn = exports.DxCollision = exports.DxColCountByScreen = exports.DxChange = exports.DxButton = exports.DxBoundaryOffset = exports.DxAt = exports.DxAsyncRule = exports.DxAnimation = exports.DxDataGrid = void 0;\nexports.DxValueFormat = exports.DxValidationRule = exports.DxTotalItem = exports.DxToolbarItem = exports.DxToolbar = exports.DxTo = exports.DxTexts = exports.DxSummaryTexts = exports.DxSummary = exports.DxStringLengthRule = exports.DxStateStoring = exports.DxSorting = exports.DxSortByGroupSummaryInfo = exports.DxShow = exports.DxSelection = exports.DxSearchPanel = exports.DxSearch = exports.DxScrolling = exports.DxRowDragging = exports.DxRequiredRule = exports.DxRemoteOperations = exports.DxRangeRule = exports.DxPosition = exports.DxPopup = exports.DxPatternRule = exports.DxPaging = exports.DxPager = exports.DxOperationDescriptions = exports.DxOffset = exports.DxNumericRule = exports.DxMy = exports.DxMasterDetail = exports.DxLookup = exports.DxLoadPanel = exports.DxLabel = exports.DxKeyboardNavigation = exports.DxItem = void 0;\nvar data_grid_1 = __importDefault(require(\"devextreme/ui/data_grid\"));\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxDataGrid = (0, index_1.createComponent)({\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n allowColumnReordering: Boolean,\n allowColumnResizing: Boolean,\n autoNavigateToFocusedRow: Boolean,\n cacheEnabled: Boolean,\n cellHintEnabled: Boolean,\n columnAutoWidth: Boolean,\n columnChooser: Object,\n columnFixing: Object,\n columnHidingEnabled: Boolean,\n columnMinWidth: Number,\n columnResizingMode: String,\n columns: Array,\n columnWidth: [Number, String],\n customizeColumns: Function,\n dataRowTemplate: {},\n dataSource: {},\n dateSerializationFormat: String,\n disabled: Boolean,\n editing: Object,\n elementAttr: Object,\n errorRowEnabled: Boolean,\n export: Object,\n filterBuilder: Object,\n filterBuilderPopup: Object,\n filterPanel: Object,\n filterRow: Object,\n filterSyncEnabled: [Boolean, String],\n filterValue: [Array, Function, String],\n focusedColumnIndex: Number,\n focusedRowEnabled: Boolean,\n focusedRowIndex: Number,\n focusedRowKey: {},\n grouping: Object,\n groupPanel: Object,\n headerFilter: Object,\n height: [Function, Number, String],\n highlightChanges: Boolean,\n hint: String,\n hoverStateEnabled: Boolean,\n keyboardNavigation: Object,\n keyExpr: [Array, String],\n loadPanel: Object,\n masterDetail: Object,\n noDataText: String,\n onAdaptiveDetailRowPreparing: Function,\n onCellClick: Function,\n onCellDblClick: Function,\n onCellHoverChanged: Function,\n onCellPrepared: Function,\n onContentReady: Function,\n onContextMenuPreparing: Function,\n onDataErrorOccurred: Function,\n onDisposing: Function,\n onEditCanceled: Function,\n onEditCanceling: Function,\n onEditingStart: Function,\n onEditorPrepared: Function,\n onEditorPreparing: Function,\n onExporting: Function,\n onFocusedCellChanged: Function,\n onFocusedCellChanging: Function,\n onFocusedRowChanged: Function,\n onFocusedRowChanging: Function,\n onInitialized: Function,\n onInitNewRow: Function,\n onKeyDown: Function,\n onOptionChanged: Function,\n onRowClick: Function,\n onRowCollapsed: Function,\n onRowCollapsing: Function,\n onRowDblClick: Function,\n onRowExpanded: Function,\n onRowExpanding: Function,\n onRowInserted: Function,\n onRowInserting: Function,\n onRowPrepared: Function,\n onRowRemoved: Function,\n onRowRemoving: Function,\n onRowUpdated: Function,\n onRowUpdating: Function,\n onRowValidating: Function,\n onSaved: Function,\n onSaving: Function,\n onSelectionChanged: Function,\n onToolbarPreparing: Function,\n pager: Object,\n paging: Object,\n remoteOperations: [Boolean, Object, String],\n renderAsync: Boolean,\n repaintChangesOnly: Boolean,\n rowAlternationEnabled: Boolean,\n rowDragging: Object,\n rowTemplate: {},\n rtlEnabled: Boolean,\n scrolling: Object,\n searchPanel: Object,\n selectedRowKeys: Array,\n selection: Object,\n selectionFilter: [Array, Function, String],\n showBorders: Boolean,\n showColumnHeaders: Boolean,\n showColumnLines: Boolean,\n showRowLines: Boolean,\n sortByGroupSummaryInfo: Array,\n sorting: Object,\n stateStoring: Object,\n summary: Object,\n syncLookupFilterValues: Boolean,\n tabIndex: Number,\n toolbar: Object,\n twoWayBindingEnabled: Boolean,\n visible: Boolean,\n width: [Function, Number, String],\n wordWrapEnabled: Boolean\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:allowColumnReordering\": null,\n \"update:allowColumnResizing\": null,\n \"update:autoNavigateToFocusedRow\": null,\n \"update:cacheEnabled\": null,\n \"update:cellHintEnabled\": null,\n \"update:columnAutoWidth\": null,\n \"update:columnChooser\": null,\n \"update:columnFixing\": null,\n \"update:columnHidingEnabled\": null,\n \"update:columnMinWidth\": null,\n \"update:columnResizingMode\": null,\n \"update:columns\": null,\n \"update:columnWidth\": null,\n \"update:customizeColumns\": null,\n \"update:dataRowTemplate\": null,\n \"update:dataSource\": null,\n \"update:dateSerializationFormat\": null,\n \"update:disabled\": null,\n \"update:editing\": null,\n \"update:elementAttr\": null,\n \"update:errorRowEnabled\": null,\n \"update:export\": null,\n \"update:filterBuilder\": null,\n \"update:filterBuilderPopup\": null,\n \"update:filterPanel\": null,\n \"update:filterRow\": null,\n \"update:filterSyncEnabled\": null,\n \"update:filterValue\": null,\n \"update:focusedColumnIndex\": null,\n \"update:focusedRowEnabled\": null,\n \"update:focusedRowIndex\": null,\n \"update:focusedRowKey\": null,\n \"update:grouping\": null,\n \"update:groupPanel\": null,\n \"update:headerFilter\": null,\n \"update:height\": null,\n \"update:highlightChanges\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:keyboardNavigation\": null,\n \"update:keyExpr\": null,\n \"update:loadPanel\": null,\n \"update:masterDetail\": null,\n \"update:noDataText\": null,\n \"update:onAdaptiveDetailRowPreparing\": null,\n \"update:onCellClick\": null,\n \"update:onCellDblClick\": null,\n \"update:onCellHoverChanged\": null,\n \"update:onCellPrepared\": null,\n \"update:onContentReady\": null,\n \"update:onContextMenuPreparing\": null,\n \"update:onDataErrorOccurred\": null,\n \"update:onDisposing\": null,\n \"update:onEditCanceled\": null,\n \"update:onEditCanceling\": null,\n \"update:onEditingStart\": null,\n \"update:onEditorPrepared\": null,\n \"update:onEditorPreparing\": null,\n \"update:onExporting\": null,\n \"update:onFocusedCellChanged\": null,\n \"update:onFocusedCellChanging\": null,\n \"update:onFocusedRowChanged\": null,\n \"update:onFocusedRowChanging\": null,\n \"update:onInitialized\": null,\n \"update:onInitNewRow\": null,\n \"update:onKeyDown\": null,\n \"update:onOptionChanged\": null,\n \"update:onRowClick\": null,\n \"update:onRowCollapsed\": null,\n \"update:onRowCollapsing\": null,\n \"update:onRowDblClick\": null,\n \"update:onRowExpanded\": null,\n \"update:onRowExpanding\": null,\n \"update:onRowInserted\": null,\n \"update:onRowInserting\": null,\n \"update:onRowPrepared\": null,\n \"update:onRowRemoved\": null,\n \"update:onRowRemoving\": null,\n \"update:onRowUpdated\": null,\n \"update:onRowUpdating\": null,\n \"update:onRowValidating\": null,\n \"update:onSaved\": null,\n \"update:onSaving\": null,\n \"update:onSelectionChanged\": null,\n \"update:onToolbarPreparing\": null,\n \"update:pager\": null,\n \"update:paging\": null,\n \"update:remoteOperations\": null,\n \"update:renderAsync\": null,\n \"update:repaintChangesOnly\": null,\n \"update:rowAlternationEnabled\": null,\n \"update:rowDragging\": null,\n \"update:rowTemplate\": null,\n \"update:rtlEnabled\": null,\n \"update:scrolling\": null,\n \"update:searchPanel\": null,\n \"update:selectedRowKeys\": null,\n \"update:selection\": null,\n \"update:selectionFilter\": null,\n \"update:showBorders\": null,\n \"update:showColumnHeaders\": null,\n \"update:showColumnLines\": null,\n \"update:showRowLines\": null,\n \"update:sortByGroupSummaryInfo\": null,\n \"update:sorting\": null,\n \"update:stateStoring\": null,\n \"update:summary\": null,\n \"update:syncLookupFilterValues\": null,\n \"update:tabIndex\": null,\n \"update:toolbar\": null,\n \"update:twoWayBindingEnabled\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wordWrapEnabled\": null,\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = data_grid_1.default;\n this.$_hasAsyncTemplate = false;\n this.$_expectedChildren = {\n column: { isCollectionItem: true, optionName: \"columns\" },\n columnChooser: { isCollectionItem: false, optionName: \"columnChooser\" },\n columnFixing: { isCollectionItem: false, optionName: \"columnFixing\" },\n dataGridHeaderFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n dataGridSelection: { isCollectionItem: false, optionName: \"selection\" },\n editing: { isCollectionItem: false, optionName: \"editing\" },\n export: { isCollectionItem: false, optionName: \"export\" },\n filterBuilder: { isCollectionItem: false, optionName: \"filterBuilder\" },\n filterBuilderPopup: { isCollectionItem: false, optionName: \"filterBuilderPopup\" },\n filterPanel: { isCollectionItem: false, optionName: \"filterPanel\" },\n filterRow: { isCollectionItem: false, optionName: \"filterRow\" },\n grouping: { isCollectionItem: false, optionName: \"grouping\" },\n groupPanel: { isCollectionItem: false, optionName: \"groupPanel\" },\n headerFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n keyboardNavigation: { isCollectionItem: false, optionName: \"keyboardNavigation\" },\n loadPanel: { isCollectionItem: false, optionName: \"loadPanel\" },\n masterDetail: { isCollectionItem: false, optionName: \"masterDetail\" },\n pager: { isCollectionItem: false, optionName: \"pager\" },\n paging: { isCollectionItem: false, optionName: \"paging\" },\n remoteOperations: { isCollectionItem: false, optionName: \"remoteOperations\" },\n rowDragging: { isCollectionItem: false, optionName: \"rowDragging\" },\n scrolling: { isCollectionItem: false, optionName: \"scrolling\" },\n searchPanel: { isCollectionItem: false, optionName: \"searchPanel\" },\n selection: { isCollectionItem: false, optionName: \"selection\" },\n sortByGroupSummaryInfo: { isCollectionItem: true, optionName: \"sortByGroupSummaryInfo\" },\n sorting: { isCollectionItem: false, optionName: \"sorting\" },\n stateStoring: { isCollectionItem: false, optionName: \"stateStoring\" },\n summary: { isCollectionItem: false, optionName: \"summary\" },\n toolbar: { isCollectionItem: false, optionName: \"toolbar\" }\n };\n }\n});\nexports.DxDataGrid = DxDataGrid;\nvar DxAnimation = (0, 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, Number, String],\n show: [Object, Number, String]\n }\n});\nexports.DxAnimation = DxAnimation;\nDxAnimation.$_optionName = \"animation\";\nDxAnimation.$_expectedChildren = {\n hide: { isCollectionItem: false, optionName: \"hide\" },\n show: { isCollectionItem: false, optionName: \"show\" }\n};\nvar DxAsyncRule = (0, 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 DxAt = (0, 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 = (0, 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 = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cssClass\": null,\n \"update:disabled\": null,\n \"update:hint\": null,\n \"update:icon\": null,\n \"update:name\": null,\n \"update:onClick\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n cssClass: String,\n disabled: [Boolean, Function],\n hint: String,\n icon: String,\n name: String,\n onClick: Function,\n template: {},\n text: String,\n visible: [Boolean, Function]\n }\n});\nexports.DxButton = DxButton;\nDxButton.$_optionName = \"buttons\";\nDxButton.$_isCollectionItem = true;\nvar DxChange = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:data\": null,\n \"update:insertAfterKey\": null,\n \"update:insertBeforeKey\": null,\n \"update:type\": null,\n },\n props: {\n data: {},\n insertAfterKey: {},\n insertBeforeKey: {},\n type: String\n }\n});\nexports.DxChange = DxChange;\nDxChange.$_optionName = \"changes\";\nDxChange.$_isCollectionItem = true;\nvar DxColCountByScreen = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:lg\": null,\n \"update:md\": null,\n \"update:sm\": null,\n \"update:xs\": null,\n },\n props: {\n lg: Number,\n md: Number,\n sm: Number,\n xs: Number\n }\n});\nexports.DxColCountByScreen = DxColCountByScreen;\nDxColCountByScreen.$_optionName = \"colCountByScreen\";\nvar DxCollision = (0, 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 DxColumn = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:allowEditing\": null,\n \"update:allowExporting\": null,\n \"update:allowFiltering\": null,\n \"update:allowFixing\": null,\n \"update:allowGrouping\": null,\n \"update:allowHeaderFiltering\": null,\n \"update:allowHiding\": null,\n \"update:allowReordering\": null,\n \"update:allowResizing\": null,\n \"update:allowSearch\": null,\n \"update:allowSorting\": null,\n \"update:autoExpandGroup\": null,\n \"update:buttons\": null,\n \"update:calculateCellValue\": null,\n \"update:calculateDisplayValue\": null,\n \"update:calculateFilterExpression\": null,\n \"update:calculateGroupValue\": null,\n \"update:calculateSortValue\": null,\n \"update:caption\": null,\n \"update:cellTemplate\": null,\n \"update:columns\": null,\n \"update:cssClass\": null,\n \"update:customizeText\": null,\n \"update:dataField\": null,\n \"update:dataType\": null,\n \"update:editCellTemplate\": null,\n \"update:editorOptions\": null,\n \"update:encodeHtml\": null,\n \"update:falseText\": null,\n \"update:filterOperations\": null,\n \"update:filterType\": null,\n \"update:filterValue\": null,\n \"update:filterValues\": null,\n \"update:fixed\": null,\n \"update:fixedPosition\": null,\n \"update:format\": null,\n \"update:formItem\": null,\n \"update:groupCellTemplate\": null,\n \"update:groupIndex\": null,\n \"update:headerCellTemplate\": null,\n \"update:headerFilter\": null,\n \"update:hidingPriority\": null,\n \"update:isBand\": null,\n \"update:lookup\": null,\n \"update:minWidth\": null,\n \"update:name\": null,\n \"update:ownerBand\": null,\n \"update:renderAsync\": null,\n \"update:selectedFilterOperation\": null,\n \"update:setCellValue\": null,\n \"update:showEditorAlways\": null,\n \"update:showInColumnChooser\": null,\n \"update:showWhenGrouped\": null,\n \"update:sortIndex\": null,\n \"update:sortingMethod\": null,\n \"update:sortOrder\": null,\n \"update:trueText\": null,\n \"update:type\": null,\n \"update:validationRules\": null,\n \"update:visible\": null,\n \"update:visibleIndex\": null,\n \"update:width\": null,\n },\n props: {\n alignment: String,\n allowEditing: Boolean,\n allowExporting: Boolean,\n allowFiltering: Boolean,\n allowFixing: Boolean,\n allowGrouping: Boolean,\n allowHeaderFiltering: Boolean,\n allowHiding: Boolean,\n allowReordering: Boolean,\n allowResizing: Boolean,\n allowSearch: Boolean,\n allowSorting: Boolean,\n autoExpandGroup: Boolean,\n buttons: Array,\n calculateCellValue: Function,\n calculateDisplayValue: [Function, String],\n calculateFilterExpression: Function,\n calculateGroupValue: [Function, String],\n calculateSortValue: [Function, String],\n caption: String,\n cellTemplate: {},\n columns: Array,\n cssClass: String,\n customizeText: Function,\n dataField: String,\n dataType: String,\n editCellTemplate: {},\n editorOptions: {},\n encodeHtml: Boolean,\n falseText: String,\n filterOperations: Array,\n filterType: String,\n filterValue: {},\n filterValues: Array,\n fixed: Boolean,\n fixedPosition: String,\n format: [Object, Function, String],\n formItem: Object,\n groupCellTemplate: {},\n groupIndex: Number,\n headerCellTemplate: {},\n headerFilter: Object,\n hidingPriority: Number,\n isBand: Boolean,\n lookup: Object,\n minWidth: Number,\n name: String,\n ownerBand: Number,\n renderAsync: Boolean,\n selectedFilterOperation: String,\n setCellValue: Function,\n showEditorAlways: Boolean,\n showInColumnChooser: Boolean,\n showWhenGrouped: Boolean,\n sortIndex: Number,\n sortingMethod: Function,\n sortOrder: String,\n trueText: String,\n type: String,\n validationRules: Array,\n visible: Boolean,\n visibleIndex: Number,\n width: [Number, String]\n }\n});\nexports.DxColumn = DxColumn;\nDxColumn.$_optionName = \"columns\";\nDxColumn.$_isCollectionItem = true;\nDxColumn.$_expectedChildren = {\n AsyncRule: { isCollectionItem: true, optionName: \"validationRules\" },\n button: { isCollectionItem: true, optionName: \"buttons\" },\n columnHeaderFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n columnLookup: { isCollectionItem: false, optionName: \"lookup\" },\n CompareRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CustomRule: { isCollectionItem: true, optionName: \"validationRules\" },\n EmailRule: { isCollectionItem: true, optionName: \"validationRules\" },\n format: { isCollectionItem: false, optionName: \"format\" },\n formItem: { isCollectionItem: false, optionName: \"formItem\" },\n headerFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n lookup: { isCollectionItem: false, optionName: \"lookup\" },\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};\nvar DxColumnChooser = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:emptyPanelText\": null,\n \"update:enabled\": null,\n \"update:height\": null,\n \"update:mode\": null,\n \"update:position\": null,\n \"update:search\": null,\n \"update:searchTimeout\": null,\n \"update:selection\": null,\n \"update:sortOrder\": null,\n \"update:title\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n emptyPanelText: String,\n enabled: Boolean,\n height: Number,\n mode: String,\n position: Object,\n search: Object,\n searchTimeout: Number,\n selection: Object,\n sortOrder: String,\n title: String,\n width: Number\n }\n});\nexports.DxColumnChooser = DxColumnChooser;\nDxColumnChooser.$_optionName = \"columnChooser\";\nDxColumnChooser.$_expectedChildren = {\n columnChooserSearch: { isCollectionItem: false, optionName: \"search\" },\n columnChooserSelection: { isCollectionItem: false, optionName: \"selection\" },\n position: { isCollectionItem: false, optionName: \"position\" },\n search: { isCollectionItem: false, optionName: \"search\" },\n selection: { isCollectionItem: false, optionName: \"selection\" }\n};\nvar DxColumnChooserSearch = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editorOptions\": null,\n \"update:enabled\": null,\n \"update:timeout\": null,\n },\n props: {\n editorOptions: {},\n enabled: Boolean,\n timeout: Number\n }\n});\nexports.DxColumnChooserSearch = DxColumnChooserSearch;\nDxColumnChooserSearch.$_optionName = \"search\";\nvar DxColumnChooserSelection = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSelectAll\": null,\n \"update:recursive\": null,\n \"update:selectByClick\": null,\n },\n props: {\n allowSelectAll: Boolean,\n recursive: Boolean,\n selectByClick: Boolean\n }\n});\nexports.DxColumnChooserSelection = DxColumnChooserSelection;\nDxColumnChooserSelection.$_optionName = \"selection\";\nvar DxColumnFixing = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:texts\": null,\n },\n props: {\n enabled: Boolean,\n texts: Object\n }\n});\nexports.DxColumnFixing = DxColumnFixing;\nDxColumnFixing.$_optionName = \"columnFixing\";\nDxColumnFixing.$_expectedChildren = {\n columnFixingTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxColumnFixingTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:fix\": null,\n \"update:leftPosition\": null,\n \"update:rightPosition\": null,\n \"update:unfix\": null,\n },\n props: {\n fix: String,\n leftPosition: String,\n rightPosition: String,\n unfix: String\n }\n});\nexports.DxColumnFixingTexts = DxColumnFixingTexts;\nDxColumnFixingTexts.$_optionName = \"texts\";\nvar DxColumnHeaderFilter = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:allowSelectAll\": null,\n \"update:dataSource\": null,\n \"update:groupInterval\": null,\n \"update:height\": null,\n \"update:search\": null,\n \"update:searchMode\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n allowSelectAll: Boolean,\n dataSource: {},\n groupInterval: [Number, String],\n height: Number,\n search: Object,\n searchMode: String,\n width: Number\n }\n});\nexports.DxColumnHeaderFilter = DxColumnHeaderFilter;\nDxColumnHeaderFilter.$_optionName = \"headerFilter\";\nDxColumnHeaderFilter.$_expectedChildren = {\n columnHeaderFilterSearch: { isCollectionItem: false, optionName: \"search\" },\n search: { isCollectionItem: false, optionName: \"search\" }\n};\nvar DxColumnHeaderFilterSearch = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editorOptions\": null,\n \"update:enabled\": null,\n \"update:mode\": null,\n \"update:searchExpr\": null,\n \"update:timeout\": null,\n },\n props: {\n editorOptions: {},\n enabled: Boolean,\n mode: String,\n searchExpr: [Array, Function, String],\n timeout: Number\n }\n});\nexports.DxColumnHeaderFilterSearch = DxColumnHeaderFilterSearch;\nDxColumnHeaderFilterSearch.$_optionName = \"search\";\nvar DxColumnLookup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:calculateCellValue\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n calculateCellValue: Function,\n dataSource: {},\n displayExpr: [Function, String],\n valueExpr: String\n }\n});\nexports.DxColumnLookup = DxColumnLookup;\nDxColumnLookup.$_optionName = \"lookup\";\nvar DxCompareRule = (0, 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:type\": null,\n },\n props: {\n comparisonTarget: Function,\n comparisonType: String,\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxCompareRule = DxCompareRule;\nDxCompareRule.$_optionName = \"validationRules\";\nDxCompareRule.$_isCollectionItem = true;\nDxCompareRule.$_predefinedProps = {\n type: \"compare\"\n};\nvar DxCursorOffset = (0, 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.DxCursorOffset = DxCursorOffset;\nDxCursorOffset.$_optionName = \"cursorOffset\";\nvar DxCustomOperation = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateFilterExpression\": null,\n \"update:caption\": null,\n \"update:customizeText\": null,\n \"update:dataTypes\": null,\n \"update:editorTemplate\": null,\n \"update:hasValue\": null,\n \"update:icon\": null,\n \"update:name\": null,\n },\n props: {\n calculateFilterExpression: Function,\n caption: String,\n customizeText: Function,\n dataTypes: Array,\n editorTemplate: {},\n hasValue: Boolean,\n icon: String,\n name: String\n }\n});\nexports.DxCustomOperation = DxCustomOperation;\nDxCustomOperation.$_optionName = \"customOperations\";\nDxCustomOperation.$_isCollectionItem = true;\nvar DxCustomRule = (0, 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 DxDataGridHeaderFilter = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:allowSelectAll\": null,\n \"update:height\": null,\n \"update:search\": null,\n \"update:searchTimeout\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n allowSelectAll: Boolean,\n height: Number,\n search: Object,\n searchTimeout: Number,\n texts: Object,\n visible: Boolean,\n width: Number\n }\n});\nexports.DxDataGridHeaderFilter = DxDataGridHeaderFilter;\nDxDataGridHeaderFilter.$_optionName = \"headerFilter\";\nDxDataGridHeaderFilter.$_expectedChildren = {\n dataGridHeaderFilterSearch: { isCollectionItem: false, optionName: \"search\" },\n dataGridHeaderFilterTexts: { isCollectionItem: false, optionName: \"texts\" },\n search: { isCollectionItem: false, optionName: \"search\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxDataGridHeaderFilterSearch = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editorOptions\": null,\n \"update:enabled\": null,\n \"update:mode\": null,\n \"update:timeout\": null,\n },\n props: {\n editorOptions: {},\n enabled: Boolean,\n mode: String,\n timeout: Number\n }\n});\nexports.DxDataGridHeaderFilterSearch = DxDataGridHeaderFilterSearch;\nDxDataGridHeaderFilterSearch.$_optionName = \"search\";\nvar DxDataGridHeaderFilterTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cancel\": null,\n \"update:emptyValue\": null,\n \"update:ok\": null,\n },\n props: {\n cancel: String,\n emptyValue: String,\n ok: String\n }\n});\nexports.DxDataGridHeaderFilterTexts = DxDataGridHeaderFilterTexts;\nDxDataGridHeaderFilterTexts.$_optionName = \"texts\";\nvar DxDataGridSelection = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSelectAll\": null,\n \"update:deferred\": null,\n \"update:mode\": null,\n \"update:selectAllMode\": null,\n \"update:showCheckBoxesMode\": null,\n },\n props: {\n allowSelectAll: Boolean,\n deferred: Boolean,\n mode: String,\n selectAllMode: String,\n showCheckBoxesMode: String\n }\n});\nexports.DxDataGridSelection = DxDataGridSelection;\nDxDataGridSelection.$_optionName = \"selection\";\nvar DxEditing = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowAdding\": null,\n \"update:allowDeleting\": null,\n \"update:allowUpdating\": null,\n \"update:changes\": null,\n \"update:confirmDelete\": null,\n \"update:editColumnName\": null,\n \"update:editRowKey\": null,\n \"update:form\": null,\n \"update:mode\": null,\n \"update:newRowPosition\": null,\n \"update:popup\": null,\n \"update:refreshMode\": null,\n \"update:selectTextOnEditStart\": null,\n \"update:startEditAction\": null,\n \"update:texts\": null,\n \"update:useIcons\": null,\n },\n props: {\n allowAdding: Boolean,\n allowDeleting: [Boolean, Function],\n allowUpdating: [Boolean, Function],\n changes: Array,\n confirmDelete: Boolean,\n editColumnName: String,\n editRowKey: {},\n form: Object,\n mode: String,\n newRowPosition: String,\n popup: Object,\n refreshMode: String,\n selectTextOnEditStart: Boolean,\n startEditAction: String,\n texts: {},\n useIcons: Boolean\n }\n});\nexports.DxEditing = DxEditing;\nDxEditing.$_optionName = \"editing\";\nDxEditing.$_expectedChildren = {\n change: { isCollectionItem: true, optionName: \"changes\" },\n editingTexts: { isCollectionItem: false, optionName: \"texts\" },\n form: { isCollectionItem: false, optionName: \"form\" },\n popup: { isCollectionItem: false, optionName: \"popup\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxEditingTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:addRow\": null,\n \"update:cancelAllChanges\": null,\n \"update:cancelRowChanges\": null,\n \"update:confirmDeleteMessage\": null,\n \"update:confirmDeleteTitle\": null,\n \"update:deleteRow\": null,\n \"update:editRow\": null,\n \"update:saveAllChanges\": null,\n \"update:saveRowChanges\": null,\n \"update:undeleteRow\": null,\n \"update:validationCancelChanges\": null,\n },\n props: {\n addRow: String,\n cancelAllChanges: String,\n cancelRowChanges: String,\n confirmDeleteMessage: String,\n confirmDeleteTitle: String,\n deleteRow: String,\n editRow: String,\n saveAllChanges: String,\n saveRowChanges: String,\n undeleteRow: String,\n validationCancelChanges: String\n }\n});\nexports.DxEditingTexts = DxEditingTexts;\nDxEditingTexts.$_optionName = \"texts\";\nvar DxEmailRule = (0, 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 DxExport = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowExportSelectedData\": null,\n \"update:enabled\": null,\n \"update:formats\": null,\n \"update:texts\": null,\n },\n props: {\n allowExportSelectedData: Boolean,\n enabled: Boolean,\n formats: Array,\n texts: Object\n }\n});\nexports.DxExport = DxExport;\nDxExport.$_optionName = \"export\";\nDxExport.$_expectedChildren = {\n exportTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxExportTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:exportAll\": null,\n \"update:exportSelectedRows\": null,\n \"update:exportTo\": null,\n },\n props: {\n exportAll: String,\n exportSelectedRows: String,\n exportTo: String\n }\n});\nexports.DxExportTexts = DxExportTexts;\nDxExportTexts.$_optionName = \"texts\";\nvar DxField = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateFilterExpression\": null,\n \"update:caption\": null,\n \"update:customizeText\": null,\n \"update:dataField\": null,\n \"update:dataType\": null,\n \"update:editorOptions\": null,\n \"update:editorTemplate\": null,\n \"update:falseText\": null,\n \"update:filterOperations\": null,\n \"update:format\": null,\n \"update:lookup\": null,\n \"update:name\": null,\n \"update:trueText\": null,\n },\n props: {\n calculateFilterExpression: Function,\n caption: String,\n customizeText: Function,\n dataField: String,\n dataType: String,\n editorOptions: {},\n editorTemplate: {},\n falseText: String,\n filterOperations: Array,\n format: [Object, Function, String],\n lookup: Object,\n name: String,\n trueText: String\n }\n});\nexports.DxField = DxField;\nDxField.$_optionName = \"fields\";\nDxField.$_isCollectionItem = true;\nDxField.$_expectedChildren = {\n fieldLookup: { isCollectionItem: false, optionName: \"lookup\" },\n format: { isCollectionItem: false, optionName: \"format\" },\n lookup: { isCollectionItem: false, optionName: \"lookup\" }\n};\nvar DxFieldLookup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n dataSource: [Array, Object],\n displayExpr: [Function, String],\n valueExpr: [Function, String]\n }\n});\nexports.DxFieldLookup = DxFieldLookup;\nDxFieldLookup.$_optionName = \"lookup\";\nvar DxFilterBuilder = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:allowHierarchicalFields\": null,\n \"update:bindingOptions\": null,\n \"update:customOperations\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:fields\": null,\n \"update:filterOperationDescriptions\": null,\n \"update:focusStateEnabled\": null,\n \"update:groupOperationDescriptions\": null,\n \"update:groupOperations\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxGroupLevel\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onEditorPrepared\": null,\n \"update:onEditorPreparing\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onValueChanged\": null,\n \"update:rtlEnabled\": null,\n \"update:tabIndex\": null,\n \"update:value\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n allowHierarchicalFields: Boolean,\n bindingOptions: Object,\n customOperations: Array,\n disabled: Boolean,\n elementAttr: Object,\n fields: Array,\n filterOperationDescriptions: Object,\n focusStateEnabled: Boolean,\n groupOperationDescriptions: Object,\n groupOperations: Array,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n maxGroupLevel: Number,\n onContentReady: Function,\n onDisposing: Function,\n onEditorPrepared: Function,\n onEditorPreparing: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onValueChanged: Function,\n rtlEnabled: Boolean,\n tabIndex: Number,\n value: [Array, Function, String],\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxFilterBuilder = DxFilterBuilder;\nDxFilterBuilder.$_optionName = \"filterBuilder\";\nDxFilterBuilder.$_expectedChildren = {\n customOperation: { isCollectionItem: true, optionName: \"customOperations\" },\n field: { isCollectionItem: true, optionName: \"fields\" },\n filterOperationDescriptions: { isCollectionItem: false, optionName: \"filterOperationDescriptions\" },\n groupOperationDescriptions: { isCollectionItem: false, optionName: \"groupOperationDescriptions\" }\n};\nvar DxFilterBuilderPopup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:copyRootClassesToWrapper\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragAndResizeArea\": null,\n \"update:dragEnabled\": null,\n \"update:dragOutsideBoundary\": null,\n \"update:elementAttr\": null,\n \"update:enableBodyScroll\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hideOnOutsideClick\": null,\n \"update:hideOnParentScroll\": 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: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:restorePosition\": 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 \"update:wrapperAttr\": null,\n },\n props: {\n accessKey: String,\n animation: Object,\n bindingOptions: Object,\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n copyRootClassesToWrapper: Boolean,\n deferRendering: Boolean,\n disabled: Boolean,\n dragAndResizeArea: {},\n dragEnabled: Boolean,\n dragOutsideBoundary: Boolean,\n elementAttr: {},\n enableBodyScroll: Boolean,\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hideOnOutsideClick: [Boolean, Function],\n hideOnParentScroll: Boolean,\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 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 restorePosition: 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 wrapperAttr: {}\n }\n});\nexports.DxFilterBuilderPopup = DxFilterBuilderPopup;\nDxFilterBuilderPopup.$_optionName = \"filterBuilderPopup\";\nvar DxFilterOperationDescriptions = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:between\": null,\n \"update:contains\": null,\n \"update:endsWith\": null,\n \"update:equal\": null,\n \"update:greaterThan\": null,\n \"update:greaterThanOrEqual\": null,\n \"update:isBlank\": null,\n \"update:isNotBlank\": null,\n \"update:lessThan\": null,\n \"update:lessThanOrEqual\": null,\n \"update:notContains\": null,\n \"update:notEqual\": null,\n \"update:startsWith\": null,\n },\n props: {\n between: String,\n contains: String,\n endsWith: String,\n equal: String,\n greaterThan: String,\n greaterThanOrEqual: String,\n isBlank: String,\n isNotBlank: String,\n lessThan: String,\n lessThanOrEqual: String,\n notContains: String,\n notEqual: String,\n startsWith: String\n }\n});\nexports.DxFilterOperationDescriptions = DxFilterOperationDescriptions;\nDxFilterOperationDescriptions.$_optionName = \"filterOperationDescriptions\";\nvar DxFilterPanel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:customizeText\": null,\n \"update:filterEnabled\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n },\n props: {\n customizeText: Function,\n filterEnabled: Boolean,\n texts: Object,\n visible: Boolean\n }\n});\nexports.DxFilterPanel = DxFilterPanel;\nDxFilterPanel.$_optionName = \"filterPanel\";\nDxFilterPanel.$_expectedChildren = {\n filterPanelTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxFilterPanelTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:clearFilter\": null,\n \"update:createFilter\": null,\n \"update:filterEnabledHint\": null,\n },\n props: {\n clearFilter: String,\n createFilter: String,\n filterEnabledHint: String\n }\n});\nexports.DxFilterPanelTexts = DxFilterPanelTexts;\nDxFilterPanelTexts.$_optionName = \"texts\";\nvar DxFilterRow = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:applyFilter\": null,\n \"update:applyFilterText\": null,\n \"update:betweenEndText\": null,\n \"update:betweenStartText\": null,\n \"update:operationDescriptions\": null,\n \"update:resetOperationText\": null,\n \"update:showAllText\": null,\n \"update:showOperationChooser\": null,\n \"update:visible\": null,\n },\n props: {\n applyFilter: String,\n applyFilterText: String,\n betweenEndText: String,\n betweenStartText: String,\n operationDescriptions: Object,\n resetOperationText: String,\n showAllText: String,\n showOperationChooser: Boolean,\n visible: Boolean\n }\n});\nexports.DxFilterRow = DxFilterRow;\nDxFilterRow.$_optionName = \"filterRow\";\nDxFilterRow.$_expectedChildren = {\n operationDescriptions: { isCollectionItem: false, optionName: \"operationDescriptions\" }\n};\nvar DxForm = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:alignItemLabels\": null,\n \"update:alignItemLabelsInAllGroups\": null,\n \"update:bindingOptions\": null,\n \"update:colCount\": null,\n \"update:colCountByScreen\": null,\n \"update:customizeItem\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:formData\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:items\": null,\n \"update:labelLocation\": null,\n \"update:labelMode\": null,\n \"update:minColWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onEditorEnterKey\": null,\n \"update:onFieldDataChanged\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:optionalMark\": null,\n \"update:readOnly\": null,\n \"update:requiredMark\": null,\n \"update:requiredMessage\": null,\n \"update:rtlEnabled\": null,\n \"update:screenByWidth\": null,\n \"update:scrollingEnabled\": null,\n \"update:showColonAfterLabel\": null,\n \"update:showOptionalMark\": null,\n \"update:showRequiredMark\": null,\n \"update:showValidationSummary\": null,\n \"update:tabIndex\": null,\n \"update:validationGroup\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n alignItemLabels: Boolean,\n alignItemLabelsInAllGroups: Boolean,\n bindingOptions: Object,\n colCount: [Number, String],\n colCountByScreen: Object,\n customizeItem: Function,\n disabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n formData: {},\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n items: Array,\n labelLocation: String,\n labelMode: String,\n minColWidth: Number,\n onContentReady: Function,\n onDisposing: Function,\n onEditorEnterKey: Function,\n onFieldDataChanged: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n optionalMark: String,\n readOnly: Boolean,\n requiredMark: String,\n requiredMessage: String,\n rtlEnabled: Boolean,\n screenByWidth: Function,\n scrollingEnabled: Boolean,\n showColonAfterLabel: Boolean,\n showOptionalMark: Boolean,\n showRequiredMark: Boolean,\n showValidationSummary: Boolean,\n tabIndex: Number,\n validationGroup: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxForm = DxForm;\nDxForm.$_optionName = \"form\";\nDxForm.$_expectedChildren = {\n colCountByScreen: { isCollectionItem: false, optionName: \"colCountByScreen\" }\n};\nvar DxFormat = (0, 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 \"update:useCurrencyAccountingStyle\": null,\n },\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String,\n useCurrencyAccountingStyle: Boolean\n }\n});\nexports.DxFormat = DxFormat;\nDxFormat.$_optionName = \"format\";\nvar DxFormItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:colSpan\": null,\n \"update:cssClass\": null,\n \"update:dataField\": null,\n \"update:editorOptions\": null,\n \"update:editorType\": null,\n \"update:helpText\": null,\n \"update:isRequired\": null,\n \"update:itemType\": null,\n \"update:label\": null,\n \"update:name\": null,\n \"update:template\": null,\n \"update:validationRules\": null,\n \"update:visible\": null,\n \"update:visibleIndex\": null,\n },\n props: {\n colSpan: Number,\n cssClass: String,\n dataField: String,\n editorOptions: {},\n editorType: String,\n helpText: String,\n isRequired: Boolean,\n itemType: String,\n label: Object,\n name: String,\n template: {},\n validationRules: Array,\n visible: Boolean,\n visibleIndex: Number\n }\n});\nexports.DxFormItem = DxFormItem;\nDxFormItem.$_optionName = \"formItem\";\nDxFormItem.$_expectedChildren = {\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 label: { isCollectionItem: false, optionName: \"label\" },\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};\nvar DxFrom = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:left\": null,\n \"update:opacity\": null,\n \"update:position\": null,\n \"update:scale\": null,\n \"update:top\": null,\n },\n props: {\n left: Number,\n opacity: Number,\n position: Object,\n scale: Number,\n top: Number\n }\n});\nexports.DxFrom = DxFrom;\nDxFrom.$_optionName = \"from\";\nDxFrom.$_expectedChildren = {\n position: { isCollectionItem: false, optionName: \"position\" }\n};\nvar DxGrouping = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowCollapsing\": null,\n \"update:autoExpandAll\": null,\n \"update:contextMenuEnabled\": null,\n \"update:expandMode\": null,\n \"update:texts\": null,\n },\n props: {\n allowCollapsing: Boolean,\n autoExpandAll: Boolean,\n contextMenuEnabled: Boolean,\n expandMode: String,\n texts: Object\n }\n});\nexports.DxGrouping = DxGrouping;\nDxGrouping.$_optionName = \"grouping\";\nDxGrouping.$_expectedChildren = {\n groupingTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxGroupingTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:groupByThisColumn\": null,\n \"update:groupContinuedMessage\": null,\n \"update:groupContinuesMessage\": null,\n \"update:ungroup\": null,\n \"update:ungroupAll\": null,\n },\n props: {\n groupByThisColumn: String,\n groupContinuedMessage: String,\n groupContinuesMessage: String,\n ungroup: String,\n ungroupAll: String\n }\n});\nexports.DxGroupingTexts = DxGroupingTexts;\nDxGroupingTexts.$_optionName = \"texts\";\nvar DxGroupItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignByColumn\": null,\n \"update:column\": null,\n \"update:customizeText\": null,\n \"update:displayFormat\": null,\n \"update:name\": null,\n \"update:showInColumn\": null,\n \"update:showInGroupFooter\": null,\n \"update:skipEmptyValues\": null,\n \"update:summaryType\": null,\n \"update:valueFormat\": null,\n },\n props: {\n alignByColumn: Boolean,\n column: String,\n customizeText: Function,\n displayFormat: String,\n name: String,\n showInColumn: String,\n showInGroupFooter: Boolean,\n skipEmptyValues: Boolean,\n summaryType: String,\n valueFormat: [Object, Function, String]\n }\n});\nexports.DxGroupItem = DxGroupItem;\nDxGroupItem.$_optionName = \"groupItems\";\nDxGroupItem.$_isCollectionItem = true;\nDxGroupItem.$_expectedChildren = {\n valueFormat: { isCollectionItem: false, optionName: \"valueFormat\" }\n};\nvar DxGroupOperationDescriptions = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:and\": null,\n \"update:notAnd\": null,\n \"update:notOr\": null,\n \"update:or\": null,\n },\n props: {\n and: String,\n notAnd: String,\n notOr: String,\n or: String\n }\n});\nexports.DxGroupOperationDescriptions = DxGroupOperationDescriptions;\nDxGroupOperationDescriptions.$_optionName = \"groupOperationDescriptions\";\nvar DxGroupPanel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowColumnDragging\": null,\n \"update:emptyPanelText\": null,\n \"update:visible\": null,\n },\n props: {\n allowColumnDragging: Boolean,\n emptyPanelText: String,\n visible: [Boolean, String]\n }\n});\nexports.DxGroupPanel = DxGroupPanel;\nDxGroupPanel.$_optionName = \"groupPanel\";\nvar DxHeaderFilter = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:allowSelectAll\": null,\n \"update:dataSource\": null,\n \"update:groupInterval\": null,\n \"update:height\": null,\n \"update:search\": null,\n \"update:searchMode\": null,\n \"update:searchTimeout\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n allowSelectAll: Boolean,\n dataSource: {},\n groupInterval: [Number, String],\n height: Number,\n search: Object,\n searchMode: String,\n searchTimeout: Number,\n texts: Object,\n visible: Boolean,\n width: Number\n }\n});\nexports.DxHeaderFilter = DxHeaderFilter;\nDxHeaderFilter.$_optionName = \"headerFilter\";\nvar DxHide = (0, 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: Object,\n staggerDelay: Number,\n start: Function,\n to: Object,\n type: String\n }\n});\nexports.DxHide = DxHide;\nDxHide.$_optionName = \"hide\";\nDxHide.$_expectedChildren = {\n from: { isCollectionItem: false, optionName: \"from\" },\n to: { isCollectionItem: false, optionName: \"to\" }\n};\nvar DxItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cssClass\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:locateInMenu\": null,\n \"update:location\": null,\n \"update:menuItemTemplate\": null,\n \"update:name\": null,\n \"update:options\": null,\n \"update:showText\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n \"update:widget\": null,\n },\n props: {\n cssClass: String,\n disabled: Boolean,\n html: String,\n locateInMenu: String,\n location: String,\n menuItemTemplate: {},\n name: String,\n options: {},\n showText: String,\n template: {},\n text: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxItem = DxItem;\nDxItem.$_optionName = \"items\";\nDxItem.$_isCollectionItem = true;\nvar DxKeyboardNavigation = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editOnKeyPress\": null,\n \"update:enabled\": null,\n \"update:enterKeyAction\": null,\n \"update:enterKeyDirection\": null,\n },\n props: {\n editOnKeyPress: Boolean,\n enabled: Boolean,\n enterKeyAction: String,\n enterKeyDirection: String\n }\n});\nexports.DxKeyboardNavigation = DxKeyboardNavigation;\nDxKeyboardNavigation.$_optionName = \"keyboardNavigation\";\nvar DxLabel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:location\": null,\n \"update:showColon\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n alignment: String,\n location: String,\n showColon: Boolean,\n template: {},\n text: String,\n visible: Boolean\n }\n});\nexports.DxLabel = DxLabel;\nDxLabel.$_optionName = \"label\";\nvar DxLoadPanel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:height\": null,\n \"update:indicatorSrc\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showIndicator\": null,\n \"update:showPane\": null,\n \"update:text\": null,\n \"update:width\": null,\n },\n props: {\n enabled: [Boolean, String],\n height: Number,\n indicatorSrc: String,\n shading: Boolean,\n shadingColor: String,\n showIndicator: Boolean,\n showPane: Boolean,\n text: String,\n width: Number\n }\n});\nexports.DxLoadPanel = DxLoadPanel;\nDxLoadPanel.$_optionName = \"loadPanel\";\nvar DxLookup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:calculateCellValue\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n calculateCellValue: Function,\n dataSource: {},\n displayExpr: [Function, String],\n valueExpr: [String, Function]\n }\n});\nexports.DxLookup = DxLookup;\nDxLookup.$_optionName = \"lookup\";\nvar DxMasterDetail = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:autoExpandAll\": null,\n \"update:enabled\": null,\n \"update:template\": null,\n },\n props: {\n autoExpandAll: Boolean,\n enabled: Boolean,\n template: {}\n }\n});\nexports.DxMasterDetail = DxMasterDetail;\nDxMasterDetail.$_optionName = \"masterDetail\";\nvar DxMy = (0, 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 DxNumericRule = (0, 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 DxOffset = (0, 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 DxOperationDescriptions = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:between\": null,\n \"update:contains\": null,\n \"update:endsWith\": null,\n \"update:equal\": null,\n \"update:greaterThan\": null,\n \"update:greaterThanOrEqual\": null,\n \"update:lessThan\": null,\n \"update:lessThanOrEqual\": null,\n \"update:notContains\": null,\n \"update:notEqual\": null,\n \"update:startsWith\": null,\n },\n props: {\n between: String,\n contains: String,\n endsWith: String,\n equal: String,\n greaterThan: String,\n greaterThanOrEqual: String,\n lessThan: String,\n lessThanOrEqual: String,\n notContains: String,\n notEqual: String,\n startsWith: String\n }\n});\nexports.DxOperationDescriptions = DxOperationDescriptions;\nDxOperationDescriptions.$_optionName = \"operationDescriptions\";\nvar DxPager = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowedPageSizes\": null,\n \"update:displayMode\": null,\n \"update:infoText\": null,\n \"update:label\": null,\n \"update:showInfo\": null,\n \"update:showNavigationButtons\": null,\n \"update:showPageSizeSelector\": null,\n \"update:visible\": null,\n },\n props: {\n allowedPageSizes: [Array, String],\n displayMode: String,\n infoText: String,\n label: String,\n showInfo: Boolean,\n showNavigationButtons: Boolean,\n showPageSizeSelector: Boolean,\n visible: [Boolean, String]\n }\n});\nexports.DxPager = DxPager;\nDxPager.$_optionName = \"pager\";\nvar DxPaging = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:pageIndex\": null,\n \"update:pageSize\": null,\n },\n props: {\n enabled: Boolean,\n pageIndex: Number,\n pageSize: Number\n }\n});\nexports.DxPaging = DxPaging;\nDxPaging.$_optionName = \"paging\";\nvar DxPatternRule = (0, 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 DxPopup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:copyRootClassesToWrapper\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragAndResizeArea\": null,\n \"update:dragEnabled\": null,\n \"update:dragOutsideBoundary\": null,\n \"update:elementAttr\": null,\n \"update:enableBodyScroll\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hideOnOutsideClick\": null,\n \"update:hideOnParentScroll\": 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: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:restorePosition\": 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 \"update:wrapperAttr\": null,\n },\n props: {\n accessKey: String,\n animation: Object,\n bindingOptions: Object,\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n copyRootClassesToWrapper: Boolean,\n deferRendering: Boolean,\n disabled: Boolean,\n dragAndResizeArea: {},\n dragEnabled: Boolean,\n dragOutsideBoundary: Boolean,\n elementAttr: {},\n enableBodyScroll: Boolean,\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hideOnOutsideClick: [Boolean, Function],\n hideOnParentScroll: Boolean,\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 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 restorePosition: 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 wrapperAttr: {}\n }\n});\nexports.DxPopup = DxPopup;\nDxPopup.$_optionName = \"popup\";\nDxPopup.$_expectedChildren = {\n animation: { isCollectionItem: false, optionName: \"animation\" },\n position: { isCollectionItem: false, optionName: \"position\" },\n toolbarItem: { isCollectionItem: true, optionName: \"toolbarItems\" }\n};\nvar DxPosition = (0, 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\";\nvar DxRangeRule = (0, 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 DxRemoteOperations = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:filtering\": null,\n \"update:grouping\": null,\n \"update:groupPaging\": null,\n \"update:paging\": null,\n \"update:sorting\": null,\n \"update:summary\": null,\n },\n props: {\n filtering: Boolean,\n grouping: Boolean,\n groupPaging: Boolean,\n paging: Boolean,\n sorting: Boolean,\n summary: Boolean\n }\n});\nexports.DxRemoteOperations = DxRemoteOperations;\nDxRemoteOperations.$_optionName = \"remoteOperations\";\nvar DxRequiredRule = (0, 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 DxRowDragging = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowDropInsideItem\": null,\n \"update:allowReordering\": null,\n \"update:autoScroll\": null,\n \"update:boundary\": null,\n \"update:container\": null,\n \"update:cursorOffset\": null,\n \"update:data\": null,\n \"update:dragDirection\": null,\n \"update:dragTemplate\": null,\n \"update:dropFeedbackMode\": null,\n \"update:filter\": null,\n \"update:group\": null,\n \"update:handle\": null,\n \"update:onAdd\": null,\n \"update:onDragChange\": null,\n \"update:onDragEnd\": null,\n \"update:onDragMove\": null,\n \"update:onDragStart\": null,\n \"update:onRemove\": null,\n \"update:onReorder\": null,\n \"update:scrollSensitivity\": null,\n \"update:scrollSpeed\": null,\n \"update:showDragIcons\": null,\n },\n props: {\n allowDropInsideItem: Boolean,\n allowReordering: Boolean,\n autoScroll: Boolean,\n boundary: {},\n container: {},\n cursorOffset: [Object, String],\n data: {},\n dragDirection: String,\n dragTemplate: {},\n dropFeedbackMode: String,\n filter: String,\n group: String,\n handle: String,\n onAdd: Function,\n onDragChange: Function,\n onDragEnd: Function,\n onDragMove: Function,\n onDragStart: Function,\n onRemove: Function,\n onReorder: Function,\n scrollSensitivity: Number,\n scrollSpeed: Number,\n showDragIcons: Boolean\n }\n});\nexports.DxRowDragging = DxRowDragging;\nDxRowDragging.$_optionName = \"rowDragging\";\nDxRowDragging.$_expectedChildren = {\n cursorOffset: { isCollectionItem: false, optionName: \"cursorOffset\" }\n};\nvar DxScrolling = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:columnRenderingMode\": null,\n \"update:mode\": null,\n \"update:preloadEnabled\": null,\n \"update:renderAsync\": null,\n \"update:rowRenderingMode\": null,\n \"update:scrollByContent\": null,\n \"update:scrollByThumb\": null,\n \"update:showScrollbar\": null,\n \"update:useNative\": null,\n },\n props: {\n columnRenderingMode: String,\n mode: String,\n preloadEnabled: Boolean,\n renderAsync: Boolean,\n rowRenderingMode: String,\n scrollByContent: Boolean,\n scrollByThumb: Boolean,\n showScrollbar: String,\n useNative: [Boolean, String]\n }\n});\nexports.DxScrolling = DxScrolling;\nDxScrolling.$_optionName = \"scrolling\";\nvar DxSearch = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editorOptions\": null,\n \"update:enabled\": null,\n \"update:mode\": null,\n \"update:searchExpr\": null,\n \"update:timeout\": null,\n },\n props: {\n editorOptions: {},\n enabled: Boolean,\n mode: String,\n searchExpr: [Array, Function, String],\n timeout: Number\n }\n});\nexports.DxSearch = DxSearch;\nDxSearch.$_optionName = \"search\";\nvar DxSearchPanel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:highlightCaseSensitive\": null,\n \"update:highlightSearchText\": null,\n \"update:placeholder\": null,\n \"update:searchVisibleColumnsOnly\": null,\n \"update:text\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n highlightCaseSensitive: Boolean,\n highlightSearchText: Boolean,\n placeholder: String,\n searchVisibleColumnsOnly: Boolean,\n text: String,\n visible: Boolean,\n width: [Number, String]\n }\n});\nexports.DxSearchPanel = DxSearchPanel;\nDxSearchPanel.$_optionName = \"searchPanel\";\nvar DxSelection = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSelectAll\": null,\n \"update:deferred\": null,\n \"update:mode\": null,\n \"update:recursive\": null,\n \"update:selectAllMode\": null,\n \"update:selectByClick\": null,\n \"update:showCheckBoxesMode\": null,\n },\n props: {\n allowSelectAll: Boolean,\n deferred: Boolean,\n mode: String,\n recursive: Boolean,\n selectAllMode: String,\n selectByClick: Boolean,\n showCheckBoxesMode: String\n }\n});\nexports.DxSelection = DxSelection;\nDxSelection.$_optionName = \"selection\";\nvar DxShow = (0, 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: Object,\n staggerDelay: Number,\n start: Function,\n to: Object,\n type: String\n }\n});\nexports.DxShow = DxShow;\nDxShow.$_optionName = \"show\";\nvar DxSortByGroupSummaryInfo = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:groupColumn\": null,\n \"update:sortOrder\": null,\n \"update:summaryItem\": null,\n },\n props: {\n groupColumn: String,\n sortOrder: String,\n summaryItem: [Number, String]\n }\n});\nexports.DxSortByGroupSummaryInfo = DxSortByGroupSummaryInfo;\nDxSortByGroupSummaryInfo.$_optionName = \"sortByGroupSummaryInfo\";\nDxSortByGroupSummaryInfo.$_isCollectionItem = true;\nvar DxSorting = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ascendingText\": null,\n \"update:clearText\": null,\n \"update:descendingText\": null,\n \"update:mode\": null,\n \"update:showSortIndexes\": null,\n },\n props: {\n ascendingText: String,\n clearText: String,\n descendingText: String,\n mode: String,\n showSortIndexes: Boolean\n }\n});\nexports.DxSorting = DxSorting;\nDxSorting.$_optionName = \"sorting\";\nvar DxStateStoring = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:customLoad\": null,\n \"update:customSave\": null,\n \"update:enabled\": null,\n \"update:savingTimeout\": null,\n \"update:storageKey\": null,\n \"update:type\": null,\n },\n props: {\n customLoad: Function,\n customSave: Function,\n enabled: Boolean,\n savingTimeout: Number,\n storageKey: String,\n type: String\n }\n});\nexports.DxStateStoring = DxStateStoring;\nDxStateStoring.$_optionName = \"stateStoring\";\nvar DxStringLengthRule = (0, 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 DxSummary = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateCustomSummary\": null,\n \"update:groupItems\": null,\n \"update:recalculateWhileEditing\": null,\n \"update:skipEmptyValues\": null,\n \"update:texts\": null,\n \"update:totalItems\": null,\n },\n props: {\n calculateCustomSummary: Function,\n groupItems: Array,\n recalculateWhileEditing: Boolean,\n skipEmptyValues: Boolean,\n texts: Object,\n totalItems: Array\n }\n});\nexports.DxSummary = DxSummary;\nDxSummary.$_optionName = \"summary\";\nDxSummary.$_expectedChildren = {\n groupItem: { isCollectionItem: true, optionName: \"groupItems\" },\n summaryTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" },\n totalItem: { isCollectionItem: true, optionName: \"totalItems\" }\n};\nvar DxSummaryTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:avg\": null,\n \"update:avgOtherColumn\": null,\n \"update:count\": null,\n \"update:max\": null,\n \"update:maxOtherColumn\": null,\n \"update:min\": null,\n \"update:minOtherColumn\": null,\n \"update:sum\": null,\n \"update:sumOtherColumn\": null,\n },\n props: {\n avg: String,\n avgOtherColumn: String,\n count: String,\n max: String,\n maxOtherColumn: String,\n min: String,\n minOtherColumn: String,\n sum: String,\n sumOtherColumn: String\n }\n});\nexports.DxSummaryTexts = DxSummaryTexts;\nDxSummaryTexts.$_optionName = \"texts\";\nvar DxTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:addRow\": null,\n \"update:avg\": null,\n \"update:avgOtherColumn\": null,\n \"update:cancel\": null,\n \"update:cancelAllChanges\": null,\n \"update:cancelRowChanges\": null,\n \"update:clearFilter\": null,\n \"update:confirmDeleteMessage\": null,\n \"update:confirmDeleteTitle\": null,\n \"update:count\": null,\n \"update:createFilter\": null,\n \"update:deleteRow\": null,\n \"update:editRow\": null,\n \"update:emptyValue\": null,\n \"update:exportAll\": null,\n \"update:exportSelectedRows\": null,\n \"update:exportTo\": null,\n \"update:filterEnabledHint\": null,\n \"update:fix\": null,\n \"update:groupByThisColumn\": null,\n \"update:groupContinuedMessage\": null,\n \"update:groupContinuesMessage\": null,\n \"update:leftPosition\": null,\n \"update:max\": null,\n \"update:maxOtherColumn\": null,\n \"update:min\": null,\n \"update:minOtherColumn\": null,\n \"update:ok\": null,\n \"update:rightPosition\": null,\n \"update:saveAllChanges\": null,\n \"update:saveRowChanges\": null,\n \"update:sum\": null,\n \"update:sumOtherColumn\": null,\n \"update:undeleteRow\": null,\n \"update:unfix\": null,\n \"update:ungroup\": null,\n \"update:ungroupAll\": null,\n \"update:validationCancelChanges\": null,\n },\n props: {\n addRow: String,\n avg: String,\n avgOtherColumn: String,\n cancel: String,\n cancelAllChanges: String,\n cancelRowChanges: String,\n clearFilter: String,\n confirmDeleteMessage: String,\n confirmDeleteTitle: String,\n count: String,\n createFilter: String,\n deleteRow: String,\n editRow: String,\n emptyValue: String,\n exportAll: String,\n exportSelectedRows: String,\n exportTo: String,\n filterEnabledHint: String,\n fix: String,\n groupByThisColumn: String,\n groupContinuedMessage: String,\n groupContinuesMessage: String,\n leftPosition: String,\n max: String,\n maxOtherColumn: String,\n min: String,\n minOtherColumn: String,\n ok: String,\n rightPosition: String,\n saveAllChanges: String,\n saveRowChanges: String,\n sum: String,\n sumOtherColumn: String,\n undeleteRow: String,\n unfix: String,\n ungroup: String,\n ungroupAll: String,\n validationCancelChanges: String\n }\n});\nexports.DxTexts = DxTexts;\nDxTexts.$_optionName = \"texts\";\nvar DxTo = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:left\": null,\n \"update:opacity\": null,\n \"update:position\": null,\n \"update:scale\": null,\n \"update:top\": null,\n },\n props: {\n left: Number,\n opacity: Number,\n position: Object,\n scale: Number,\n top: Number\n }\n});\nexports.DxTo = DxTo;\nDxTo.$_optionName = \"to\";\nvar DxToolbar = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:items\": null,\n \"update:visible\": null,\n },\n props: {\n disabled: Boolean,\n items: Array,\n visible: Boolean\n }\n});\nexports.DxToolbar = DxToolbar;\nDxToolbar.$_optionName = \"toolbar\";\nDxToolbar.$_expectedChildren = {\n item: { isCollectionItem: true, optionName: \"items\" }\n};\nvar DxToolbarItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cssClass\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:locateInMenu\": null,\n \"update:location\": null,\n \"update:menuItemTemplate\": null,\n \"update:options\": null,\n \"update:showText\": 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 cssClass: String,\n disabled: Boolean,\n html: String,\n locateInMenu: String,\n location: String,\n menuItemTemplate: {},\n options: {},\n showText: String,\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;\nvar DxTotalItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:column\": null,\n \"update:cssClass\": null,\n \"update:customizeText\": null,\n \"update:displayFormat\": null,\n \"update:name\": null,\n \"update:showInColumn\": null,\n \"update:skipEmptyValues\": null,\n \"update:summaryType\": null,\n \"update:valueFormat\": null,\n },\n props: {\n alignment: String,\n column: String,\n cssClass: String,\n customizeText: Function,\n displayFormat: String,\n name: String,\n showInColumn: String,\n skipEmptyValues: Boolean,\n summaryType: String,\n valueFormat: [Object, Function, String]\n }\n});\nexports.DxTotalItem = DxTotalItem;\nDxTotalItem.$_optionName = \"totalItems\";\nDxTotalItem.$_isCollectionItem = true;\nDxTotalItem.$_expectedChildren = {\n valueFormat: { isCollectionItem: false, optionName: \"valueFormat\" }\n};\nvar DxValidationRule = (0, 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};\nvar DxValueFormat = (0, 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 \"update:useCurrencyAccountingStyle\": null,\n },\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String,\n useCurrencyAccountingStyle: Boolean\n }\n});\nexports.DxValueFormat = DxValueFormat;\nDxValueFormat.$_optionName = \"valueFormat\";\nexports.default = DxDataGrid;\n","/**\r\n * DevExtreme (esm/ui/shared/accessibility.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\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 = 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 if (\"tab\" === keyName) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n } else {\r\n selectView(viewName, instance, event)\r\n }\r\n}\r\nexport function saveFocusedElementInfo(target, instance) {\r\n var $target = $(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 = 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 = $(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, element) {\r\n var root = (null === element || void 0 === element ? void 0 : element.getRootNode()) || domAdapter.getDocument();\r\n for (var index in viewSelectors) {\r\n var selector = viewSelectors[index];\r\n var $focusViewElement = $(root).find(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\" === domAdapter.getDocument().visibilityState\r\n}\r\nexport function subscribeVisibilityChange() {\r\n eventsEngine.on(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function unsubscribeVisibilityChange() {\r\n eventsEngine.off(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function hiddenFocus(element, preventScroll) {\r\n isHiddenFocusing = true;\r\n element.focus({\r\n preventScroll: preventScroll\r\n });\r\n isHiddenFocusing = false\r\n}\r\nexport function registerKeyboardAction(viewName, instance, $element, selector, action, executeKeyDown) {\r\n if (instance.option(\"useLegacyKeyboardNavigation\")) {\r\n return noop\r\n }\r\n var getMainElement = () => $(instance.element());\r\n var keyDownHandler = e => processKeyDown(viewName, instance, e, action, getMainElement(), executeKeyDown);\r\n var mouseDownHandler = () => {\r\n isMouseDown = true;\r\n getMainElement().removeClass(FOCUS_STATE_CLASS)\r\n };\r\n var focusinHandler = () => {\r\n var needShowOverlay = !isMouseDown && !isHiddenFocusing;\r\n if (needShowOverlay) {\r\n getMainElement().addClass(FOCUS_STATE_CLASS)\r\n }\r\n isMouseDown = false\r\n };\r\n eventsEngine.on($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.on($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.on($element, \"focusin\", selector, focusinHandler);\r\n return () => {\r\n eventsEngine.off($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.off($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.off($element, \"focusin\", selector, focusinHandler)\r\n }\r\n}\r\nexport function 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 eventsEngine.trigger($targetElement, \"focus\")\r\n }\r\n }\r\n}\r\nexport function selectView(viewName, instance, event) {\r\n var keyName = 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, event.target);\r\n if ($focusViewElement && $focusViewElement.length) {\r\n $focusViewElement.attr(\"tabindex\", instance.option(\"tabindex\") || 0);\r\n eventsEngine.trigger($focusViewElement, \"focus\");\r\n $focusViewElement.removeClass(FOCUS_DISABLED_CLASS);\r\n break\r\n }\r\n }\r\n }\r\n}\r\nexport function 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 (esm/__internal/grids/grid_core/m_accessibility.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport * as accessibility from \"../../../ui/shared/accessibility\";\r\nexport var 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 instance.createAction(\"onKeyDown\");\r\n accessibility.registerKeyboardAction(viewName, instance, $element, selector, action, args => {\r\n instance.executeAction(\"onKeyDown\", args)\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/events/double_click.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n closestCommonParent\r\n} from \"../core/utils/dom\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n name as clickEventName\r\n} from \"./click\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"./utils/index\";\r\nvar DBLCLICK_EVENT_NAME = \"dxdblclick\";\r\nvar DBLCLICK_NAMESPACE = \"dxDblClick\";\r\nvar NAMESPACED_CLICK_EVENT = addNamespace(clickEventName, DBLCLICK_NAMESPACE);\r\nvar DBLCLICK_TIMEOUT = 300;\r\nvar DblClick = Class.inherit({\r\n ctor: function() {\r\n this._handlerCount = 0;\r\n this._forgetLastClick()\r\n },\r\n _forgetLastClick: function() {\r\n this._firstClickTarget = null;\r\n this._lastClickTimeStamp = -DBLCLICK_TIMEOUT\r\n },\r\n add: function() {\r\n if (this._handlerCount <= 0) {\r\n eventsEngine.on(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT, this._clickHandler.bind(this))\r\n }\r\n this._handlerCount++\r\n },\r\n _clickHandler: function(e) {\r\n var timeStamp = e.timeStamp || Date.now();\r\n var timeBetweenClicks = timeStamp - this._lastClickTimeStamp;\r\n var isSimulated = timeBetweenClicks < 0;\r\n var isDouble = !isSimulated && timeBetweenClicks < DBLCLICK_TIMEOUT;\r\n if (isDouble) {\r\n fireEvent({\r\n type: DBLCLICK_EVENT_NAME,\r\n target: closestCommonParent(this._firstClickTarget, e.target),\r\n originalEvent: e\r\n });\r\n this._forgetLastClick()\r\n } else {\r\n this._firstClickTarget = e.target;\r\n this._lastClickTimeStamp = timeStamp\r\n }\r\n },\r\n remove: function() {\r\n this._handlerCount--;\r\n if (this._handlerCount <= 0) {\r\n this._forgetLastClick();\r\n eventsEngine.off(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT)\r\n }\r\n }\r\n});\r\nregisterEvent(DBLCLICK_EVENT_NAME, new DblClick);\r\nexport {\r\n DBLCLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/column_state_mixin/m_column_state_mixin.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nvar COLUMN_INDICATORS_CLASS = \"dx-column-indicators\";\r\nvar GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nexport default {\r\n _applyColumnState(options) {\r\n var _a;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var columnAlignment = this._getColumnAlignment(options.column.alignment, rtlEnabled);\r\n var parameters = extend(true, {\r\n columnAlignment: columnAlignment\r\n }, options);\r\n var isGroupPanelItem = parameters.rootElement.hasClass(GROUP_PANEL_ITEM_CLASS);\r\n var $indicatorsContainer = this._createIndicatorContainer(parameters, isGroupPanelItem);\r\n var $span = $(\"\").addClass(this._getIndicatorClassName(options.name));\r\n var columnsController = null === (_a = this.component) || void 0 === _a ? void 0 : _a.getController(\"columns\");\r\n var indicatorAlignment = (null === columnsController || void 0 === columnsController ? void 0 : columnsController.getHeaderContentAlignment(columnAlignment)) || columnAlignment;\r\n parameters.container = $indicatorsContainer;\r\n parameters.indicator = $span;\r\n this._renderIndicator(parameters);\r\n $indicatorsContainer[(isGroupPanelItem || !options.showColumnLines) && \"left\" === indicatorAlignment ? \"appendTo\" : \"prependTo\"](options.rootElement);\r\n return $span\r\n },\r\n _getIndicatorClassName: noop,\r\n _getColumnAlignment(alignment, rtlEnabled) {\r\n rtlEnabled = rtlEnabled || this.option(\"rtlEnabled\");\r\n return alignment && \"center\" !== alignment ? alignment : getDefaultAlignment(rtlEnabled)\r\n },\r\n _createIndicatorContainer(options, ignoreIndicatorAlignment) {\r\n var $indicatorsContainer = this._getIndicatorContainer(options.rootElement);\r\n var indicatorAlignment = \"left\" === options.columnAlignment ? \"right\" : \"left\";\r\n if (!$indicatorsContainer.length) {\r\n $indicatorsContainer = $(\"
\").addClass(COLUMN_INDICATORS_CLASS)\r\n }\r\n this.setAria(\"role\", \"presentation\", $indicatorsContainer);\r\n return $indicatorsContainer.css(\"float\", options.showColumnLines && !ignoreIndicatorAlignment ? indicatorAlignment : null)\r\n },\r\n _getIndicatorContainer: $cell => $cell && $cell.find(\".\".concat(COLUMN_INDICATORS_CLASS)),\r\n _getIndicatorElements($cell) {\r\n var $indicatorContainer = this._getIndicatorContainer($cell);\r\n return $indicatorContainer && $indicatorContainer.children()\r\n },\r\n _renderIndicator(options) {\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n $container && $indicator && $container.append($indicator)\r\n },\r\n _updateIndicators(indicatorName) {\r\n var columns = this.getColumns();\r\n var $cells = this.getColumnElements();\r\n var $cell;\r\n if (!$cells || columns.length !== $cells.length) {\r\n return\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = $cells.eq(i);\r\n this._updateIndicator($cell, columns[i], indicatorName);\r\n var rowOptions = $cell.parent().data(\"options\");\r\n if (rowOptions && rowOptions.cells) {\r\n rowOptions.cells[$cell.index()].column = columns[i]\r\n }\r\n }\r\n },\r\n _updateIndicator($cell, column, indicatorName) {\r\n if (!column.command) {\r\n return this._applyColumnState({\r\n name: indicatorName,\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/m_modules.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Class from \"../../../core/class\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport {\r\n grep\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nvar WIDGET_WITH_LEGACY_CONTAINER_NAME = \"dxDataGrid\";\r\nvar ModuleItem = Class.inherit({\r\n _endUpdateCore() {},\r\n ctor(component) {\r\n var that = this;\r\n that._updateLockCount = 0;\r\n that.component = component;\r\n that._actions = {};\r\n that._actionConfigs = {};\r\n each(this.callbackNames() || [], (function(index, name) {\r\n var flags = that.callbackFlags(name) || {};\r\n flags.unique = true;\r\n flags.syncStrategy = true;\r\n that[this] = Callbacks(flags)\r\n }))\r\n },\r\n init() {},\r\n callbackNames() {},\r\n callbackFlags() {},\r\n publicMethods() {},\r\n beginUpdate() {\r\n this._updateLockCount++\r\n },\r\n endUpdate() {\r\n if (this._updateLockCount > 0) {\r\n this._updateLockCount--;\r\n if (!this._updateLockCount) {\r\n this._endUpdateCore()\r\n }\r\n }\r\n },\r\n option(name) {\r\n var {\r\n component: component\r\n } = this;\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(name, value) {\r\n var {\r\n component: component\r\n } = this;\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(name) {\r\n var optionCache = this.component._optionCache;\r\n if (optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = messageLocalization.format(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return messageLocalization.format(name)\r\n },\r\n on() {\r\n return this.component.on.apply(this.component, arguments)\r\n },\r\n off() {\r\n return this.component.off.apply(this.component, arguments)\r\n },\r\n optionChanged(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(actionName) {\r\n return this._actions[actionName]\r\n },\r\n setAria(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() {\r\n return this.component._createComponent.apply(this.component, arguments)\r\n },\r\n getController(name) {\r\n return this.component._controllers[name]\r\n },\r\n createAction(actionName, config) {\r\n if (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 }\r\n this._actions[actionName] = this.component._createActionByOption(actionName, config);\r\n this._actionConfigs[actionName] = config;\r\n return\r\n },\r\n executeAction(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n dispose() {\r\n var that = this;\r\n each(that.callbackNames() || [], (function() {\r\n that[this].empty()\r\n }))\r\n },\r\n addWidgetPrefix(className) {\r\n var componentName = this.component.NAME;\r\n return \"dx-\".concat(componentName.slice(2).toLowerCase()).concat(className ? \"-\".concat(className) : \"\")\r\n },\r\n getWidgetContainerClass() {\r\n var containerName = this.component.NAME === WIDGET_WITH_LEGACY_CONTAINER_NAME ? null : \"container\";\r\n return this.addWidgetPrefix(containerName)\r\n },\r\n elementIsInsideGrid($element) {\r\n var $gridElement = $element.closest(\".\".concat(this.getWidgetContainerClass())).parent();\r\n return $gridElement.is(this.component.$element())\r\n }\r\n});\r\nvar Controller = ModuleItem;\r\nvar ViewController = Controller.inherit({\r\n getView(name) {\r\n return this.component._views[name]\r\n },\r\n getViews() {\r\n return this.component._views\r\n }\r\n});\r\nvar View = ModuleItem.inherit({\r\n _isReady() {\r\n return this.component.isReady()\r\n },\r\n _endUpdateCore() {\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(requireResize, requireReady) {\r\n this._requireRender = true;\r\n this.component._requireResize = hasWindow() && (this.component._requireResize || requireResize);\r\n this._requireReady = this._requireReady || requireReady\r\n },\r\n _renderCore() {},\r\n _resizeCore() {},\r\n _parentElement() {\r\n return this._$parent\r\n },\r\n ctor(component) {\r\n this.callBase(component);\r\n this.renderCompleted = Callbacks();\r\n this.resizeCompleted = Callbacks()\r\n },\r\n element() {\r\n return this._$element\r\n },\r\n getElementHeight() {\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 {\r\n offsetHeight: offsetHeight\r\n } = $element.get(0);\r\n return offsetHeight + marginTop + marginBottom\r\n },\r\n isVisible: () => true,\r\n getTemplate(name) {\r\n return this.component._getTemplate(name)\r\n },\r\n render($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 = $(\"
\").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 var deferred = this._renderCore(options);\r\n this.component._optionCache = void 0;\r\n if (deferred) {\r\n deferred.done(() => {\r\n this.renderCompleted.fire(options)\r\n })\r\n } else {\r\n this.renderCompleted.fire(options)\r\n }\r\n }\r\n },\r\n resize() {\r\n this.isResizing = true;\r\n this._resizeCore();\r\n this.resizeCompleted.fire();\r\n this.isResizing = false\r\n },\r\n focus(preventScroll) {\r\n this.element().get(0).focus({\r\n preventScroll: preventScroll\r\n })\r\n }\r\n});\r\nvar MODULES_ORDER_MAX_INDEX = 1e6;\r\n\r\nfunction getExtendedTypes(types) {\r\n var moduleExtenders = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var extendTypes = {};\r\n Object.entries(moduleExtenders).forEach(_ref => {\r\n var [name, extender] = _ref;\r\n var currentType = types[name];\r\n if (currentType) {\r\n if (isFunction(extender)) {\r\n extendTypes[name] = extender(currentType)\r\n } else {\r\n var classType = currentType;\r\n extendTypes[name] = classType.inherit(extender)\r\n }\r\n }\r\n });\r\n return extendTypes\r\n}\r\n\r\nfunction registerPublicMethods(componentInstance, name, moduleItem) {\r\n var publicMethods = moduleItem.publicMethods();\r\n if (publicMethods) {\r\n each(publicMethods, (_, methodName) => {\r\n if (moduleItem[methodName]) {\r\n if (!componentInstance[methodName]) {\r\n componentInstance[methodName] = function() {\r\n return moduleItem[methodName](...arguments)\r\n }\r\n } else {\r\n throw errors.Error(\"E1005\", methodName)\r\n }\r\n } else {\r\n throw errors.Error(\"E1006\", name, methodName)\r\n }\r\n })\r\n }\r\n}\r\nexport function processModules(componentInstance, componentClass) {\r\n var {\r\n modules: modules\r\n } = componentClass;\r\n var {\r\n modulesOrder: modulesOrder\r\n } = componentClass;\r\n\r\n function createModuleItems(moduleTypes) {\r\n var moduleItems = {};\r\n each(moduleTypes, (name, moduleType) => {\r\n var moduleItem = new moduleType(componentInstance);\r\n moduleItem.name = name;\r\n registerPublicMethods(componentInstance, name, moduleItem);\r\n moduleItems[name] = moduleItem\r\n });\r\n return moduleItems\r\n }\r\n if (modulesOrder) {\r\n modules.sort((module1, module2) => {\r\n var orderIndex1 = modulesOrder.indexOf(module1.name);\r\n var orderIndex2 = modulesOrder.indexOf(module2.name);\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 }\r\n var rootControllerTypes = {};\r\n var rootViewTypes = {};\r\n modules.forEach(_ref2 => {\r\n var {\r\n name: moduleName,\r\n controllers: controllers = {},\r\n views: views = {}\r\n } = _ref2;\r\n Object.entries(controllers).forEach(_ref3 => {\r\n var [name, type] = _ref3;\r\n var _a;\r\n if (rootControllerTypes[name]) {\r\n throw errors.Error(\"E1001\", moduleName, name)\r\n } else if (!(null === (_a = null === type || void 0 === type ? void 0 : type.subclassOf) || void 0 === _a ? void 0 : _a.call(type, Controller))) {\r\n throw errors.Error(\"E1002\", moduleName, name)\r\n }\r\n rootControllerTypes[name] = type\r\n });\r\n Object.entries(views).forEach(_ref4 => {\r\n var [name, type] = _ref4;\r\n var _a;\r\n if (rootViewTypes[name]) {\r\n throw errors.Error(\"E1003\", moduleName, name)\r\n } else if (!(null === (_a = null === type || void 0 === type ? void 0 : type.subclassOf) || void 0 === _a ? void 0 : _a.call(type, View))) {\r\n throw errors.Error(\"E1004\", moduleName, name)\r\n }\r\n rootViewTypes[name] = type\r\n })\r\n });\r\n var moduleExtenders = modules.filter(_ref5 => {\r\n var {\r\n extenders: extenders\r\n } = _ref5;\r\n return !!extenders\r\n });\r\n var controllerTypes = moduleExtenders.reduce((types, _ref6) => {\r\n var {\r\n extenders: extenders\r\n } = _ref6;\r\n return _extends(_extends({}, types), getExtendedTypes(types, null === extenders || void 0 === extenders ? void 0 : extenders.controllers))\r\n }, rootControllerTypes);\r\n var viewTypes = moduleExtenders.reduce((types, _ref7) => {\r\n var {\r\n extenders: extenders\r\n } = _ref7;\r\n return _extends(_extends({}, types), getExtendedTypes(types, null === extenders || void 0 === extenders ? void 0 : extenders.views))\r\n }, rootViewTypes);\r\n componentInstance._controllers = createModuleItems(controllerTypes);\r\n componentInstance._views = createModuleItems(viewTypes)\r\n}\r\nvar callModuleItemsMethod = function(that, methodName, args) {\r\n args = args || [];\r\n if (that._controllers) {\r\n each(that._controllers, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n if (that._views) {\r\n each(that._views, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n};\r\nexport default {\r\n modules: [],\r\n View: View,\r\n ViewController: ViewController,\r\n Controller: Controller,\r\n registerModule(name, module) {\r\n var {\r\n modules: modules\r\n } = this;\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 },\r\n registerModulesOrder(moduleNames) {\r\n this.modulesOrder = moduleNames\r\n },\r\n unregisterModule(name) {\r\n this.modules = grep(this.modules, module => module.name !== name)\r\n },\r\n processModules: processModules,\r\n callModuleItemsMethod: callModuleItemsMethod\r\n};\r\n","/**\r\n * DevExtreme (esm/format_helper.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString,\r\n isNumeric,\r\n isFunction,\r\n isDefined,\r\n isDate,\r\n isPlainObject\r\n} from \"./core/utils/type\";\r\nimport dateUtils from \"./core/utils/date\";\r\nimport numberLocalization from \"./localization/number\";\r\nimport dateLocalization from \"./localization/date\";\r\nimport dependencyInjector from \"./core/utils/dependency_injector\";\r\nimport \"./localization/currency\";\r\nexport default dependencyInjector({\r\n format: function(value, _format) {\r\n var formatIsValid = isString(_format) && \"\" !== _format || isPlainObject(_format) || isFunction(_format);\r\n var valueIsValid = isNumeric(value) || isDate(value);\r\n if (!formatIsValid || !valueIsValid) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n }\r\n if (isFunction(_format)) {\r\n return _format(value)\r\n }\r\n if (isString(_format)) {\r\n _format = {\r\n type: _format\r\n }\r\n }\r\n if (isNumeric(value)) {\r\n return numberLocalization.format(value, _format)\r\n }\r\n if (isDate(value)) {\r\n return dateLocalization.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 dateLocalization.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 resultFormat.push((function(date) {\r\n return date.getSeconds() + date.getMilliseconds() / 1e3 + \"s\"\r\n }))\r\n } else if (dateDifferences.millisecond) {\r\n resultFormat.push(\"millisecond\")\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 resultFormat.unshift((function(date) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[date.getMonth()] + \" \" + dateLocalization.format(date, \"day\")\r\n }))\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 resultFormat.unshift((function(date) {\r\n return dateLocalization.format(date, \"dayofweek\") + \", \" + dateLocalization.format(date, \"day\")\r\n }))\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 = dateUtils.getDatesDifferences(ticks[0], ticks[1]);\r\n for (i = 1; i < ticks.length - 1; i++) {\r\n currentDiff = dateUtils.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 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 tickInterval = isString(tickInterval) ? tickInterval.toLowerCase() : tickInterval;\r\n var dateDifferences = dateUtils.getDatesDifferences(startValue, endValue);\r\n if (startValue !== endValue) {\r\n ! 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 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 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 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 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 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 }(dateDifferences, startValue > endValue ? endValue : startValue, startValue > endValue ? startValue : endValue)\r\n }\r\n dateUnitInterval = dateUtils.getDateUnitInterval(dateDifferences);\r\n correctDateDifferences(dateDifferences, dateUnitInterval, true);\r\n dateUnitInterval = dateUtils.getDateUnitInterval(tickInterval || \"second\");\r\n correctDateDifferences(dateDifferences, dateUnitInterval, false);\r\n dateDifferences[{\r\n week: \"day\"\r\n } [dateUnitInterval] || dateUnitInterval] = true;\r\n var resultFormat = this.getDateFormatByDifferences(dateDifferences);\r\n return resultFormat\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/shared/filtering.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n map\r\n} from \"../../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 = dateIntervals.indexOf(interval);\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 if (isDefined(groupInterval)) {\r\n return Array.isArray(groupInterval) ? groupInterval : [groupInterval]\r\n }\r\n};\r\nexport 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 getFilterExpressionByRange = function(filterValue, target) {\r\n var endFilterValue;\r\n var startFilterExpression;\r\n var endFilterExpression;\r\n var selector = getFilterSelector(this, target);\r\n if (Array.isArray(filterValue) && isDefined(filterValue[0]) && isDefined(filterValue[1])) {\r\n startFilterExpression = [selector, \">=\", filterValue[0]];\r\n endFilterExpression = [selector, \"<=\", filterValue[1]];\r\n if (isDateType(this.dataType) && (date = filterValue[1], date.getHours() + date.getMinutes() + date.getSeconds() + date.getMilliseconds() < 1)) {\r\n endFilterValue = new Date(filterValue[1].getTime());\r\n if (\"date\" === this.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 var date\r\n };\r\n var getFilterExpressionForDate = function(filterValue, selectedFilterOperation, target) {\r\n var dateStart;\r\n var dateEnd;\r\n var dateInterval;\r\n var values = function(dateValue) {\r\n if (isDate(dateValue)) {\r\n return [dateValue.getFullYear(), dateValue.getMonth(), dateValue.getDate(), dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds()]\r\n }\r\n return map((\"\" + dateValue).split(\"/\"), (function(value, index) {\r\n return 1 === index ? Number(value) - 1 : Number(value)\r\n }))\r\n }(filterValue);\r\n var selector = getFilterSelector(this, target);\r\n if (\"headerFilter\" === target) {\r\n dateInterval = getGroupInterval(this)[values.length - 1]\r\n } else if (\"datetime\" === this.dataType) {\r\n dateInterval = \"minute\"\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 selector = getFilterSelector(this, target);\r\n var groupInterval = getGroupInterval(this);\r\n if (\"headerFilter\" === target && groupInterval && 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 if (\"string\" === dataType && (!column.lookup || isSearchByDisplayValue)) {\r\n filter = [selector, selectedFilterOperation || \"contains\", filterValue]\r\n } else if (\"between\" === selectedFilterOperation) {\r\n return getFilterExpressionByRange.apply(column, [filterValue, target])\r\n } else if (isDateType(dataType) && isDefined(filterValue)) {\r\n return getFilterExpressionForDate.apply(column, arguments)\r\n } else if (\"number\" === dataType) {\r\n return getFilterExpressionForNumber.apply(column, arguments)\r\n } else {\r\n filter = [selector, selectedFilterOperation || \"=\", filterValue]\r\n }\r\n return filter\r\n },\r\n getGroupInterval: getGroupInterval\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/m_utils.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n toComparable\r\n} from \"../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../core/utils/position\";\r\nimport {\r\n getHeight\r\n} from \"../../../core/utils/size\";\r\nimport {\r\n format\r\n} from \"../../../core/utils/string\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport variableWrapper from \"../../../core/utils/variable_wrapper\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport {\r\n DataSource\r\n} from \"../../../data/data_source/data_source\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../../data/data_source/utils\";\r\nimport {\r\n normalizeSortingInfo as normalizeSortingInfoUtility\r\n} from \"../../../data/utils\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport formatHelper from \"../../../format_helper\";\r\nimport LoadPanel from \"../../../ui/load_panel\";\r\nimport sharedFiltering from \"../../../ui/shared/filtering\";\r\nvar DATAGRID_SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATAGRID_GROUP_OPENED_CLASS = \"dx-datagrid-group-opened\";\r\nvar DATAGRID_GROUP_CLOSED_CLASS = \"dx-datagrid-group-closed\";\r\nvar DATAGRID_EXPAND_CLASS = \"dx-datagrid-expand\";\r\nvar NO_DATA_CLASS = \"nodata\";\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar SCROLLING_MODE_OPTION = \"scrolling.mode\";\r\nvar ROW_RENDERING_MODE_OPTION = \"scrolling.rowRenderingMode\";\r\nvar DATE_INTERVAL_SELECTORS = {\r\n year: value => value && value.getFullYear(),\r\n month: value => value && value.getMonth() + 1,\r\n day: value => value && value.getDate(),\r\n quarter: value => value && Math.floor(value.getMonth() / 3) + 1,\r\n hour: value => value && value.getHours(),\r\n minute: value => value && value.getMinutes(),\r\n second: value => value && value.getSeconds()\r\n};\r\nvar getIntervalSelector = function() {\r\n var data = arguments[1];\r\n var value = this.calculateCellValue(data);\r\n if (!isDefined(value)) {\r\n return null\r\n }\r\n if (isDateType(this.dataType)) {\r\n var nameIntervalSelector = arguments[0];\r\n return DATE_INTERVAL_SELECTORS[nameIntervalSelector](value)\r\n }\r\n if (\"number\" === this.dataType) {\r\n var groupInterval = arguments[0];\r\n return Math.floor(Number(value) / groupInterval) * groupInterval\r\n }\r\n};\r\nvar equalSelectors = function(selector1, selector2) {\r\n if (isFunction(selector1) && isFunction(selector2)) {\r\n if (selector1.originalCallback && selector2.originalCallback) {\r\n return selector1.originalCallback === selector2.originalCallback && selector1.columnIndex === selector2.columnIndex\r\n }\r\n }\r\n return selector1 === selector2\r\n};\r\n\r\nfunction isDateType(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n}\r\nvar setEmptyText = function($container) {\r\n $container.get(0).textContent = \"\\xa0\"\r\n};\r\nvar normalizeSortingInfo = function(sort) {\r\n sort = sort || [];\r\n var result = normalizeSortingInfoUtility(sort);\r\n for (var i = 0; i < sort.length; i++) {\r\n if (sort && sort[i] && void 0 !== sort[i].isExpanded) {\r\n result[i].isExpanded = sort[i].isExpanded\r\n }\r\n if (sort && sort[i] && void 0 !== sort[i].groupInterval) {\r\n result[i].groupInterval = sort[i].groupInterval\r\n }\r\n }\r\n return result\r\n};\r\nvar formatValue = function(value, options) {\r\n var valueText = formatHelper.format(value, options.format) || value && value.toString() || \"\";\r\n var formatObject = {\r\n value: value,\r\n valueText: options.getDisplayFormat ? options.getDisplayFormat(valueText) : valueText,\r\n target: options.target || \"row\",\r\n groupInterval: options.groupInterval\r\n };\r\n return options.customizeText ? options.customizeText.call(options, formatObject) : formatObject.valueText\r\n};\r\nvar getSummaryText = function(summaryItem, summaryTexts) {\r\n var displayFormat = summaryItem.displayFormat || summaryItem.columnCaption && summaryTexts[\"\".concat(summaryItem.summaryType, \"OtherColumn\")] || summaryTexts[summaryItem.summaryType];\r\n return formatValue(summaryItem.value, {\r\n format: summaryItem.valueFormat,\r\n getDisplayFormat: valueText => displayFormat ? format(displayFormat, valueText, summaryItem.columnCaption) : valueText,\r\n customizeText: summaryItem.customizeText\r\n })\r\n};\r\nvar getWidgetInstance = function($element) {\r\n var editorData = $element.data && $element.data();\r\n var dxComponents = editorData && editorData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && editorData[widgetName]\r\n};\r\nvar equalFilterParameters = function equalFilterParameters(filter1, filter2) {\r\n if (Array.isArray(filter1) && Array.isArray(filter2)) {\r\n if (filter1.length !== filter2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < filter1.length; i++) {\r\n if (!equalFilterParameters(filter1[i], filter2[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n if (isFunction(filter1) && filter1.columnIndex >= 0 && isFunction(filter2) && filter2.columnIndex >= 0) {\r\n return filter1.columnIndex === filter2.columnIndex && toComparable(filter1.filterValue) === toComparable(filter2.filterValue) && toComparable(filter1.selectedFilterOperation) === toComparable(filter2.selectedFilterOperation)\r\n }\r\n return toComparable(filter1) == toComparable(filter2)\r\n};\r\n\r\nfunction normalizeGroupingLoadOptions(group) {\r\n if (!Array.isArray(group)) {\r\n group = [group]\r\n }\r\n return group.map((item, i) => {\r\n if (isString(item)) {\r\n return {\r\n selector: item,\r\n isExpanded: i < group.length - 1\r\n }\r\n }\r\n return item\r\n })\r\n}\r\nexport default {\r\n renderNoDataText($element) {\r\n $element = $element || this.element();\r\n if (!$element) {\r\n return\r\n }\r\n var noDataClass = this.addWidgetPrefix(NO_DATA_CLASS);\r\n var noDataElement = $element.find(\".\".concat(noDataClass)).last();\r\n var isVisible = this._dataController.isEmpty();\r\n var isLoading = this._dataController.isLoading();\r\n if (!noDataElement.length) {\r\n noDataElement = $(\"\").addClass(noDataClass)\r\n }\r\n if (!noDataElement.parent().is($element)) {\r\n noDataElement.appendTo($element)\r\n }\r\n if (isVisible && !isLoading) {\r\n noDataElement.removeClass(\"dx-hidden\").text(this._getNoDataText())\r\n } else {\r\n noDataElement.addClass(\"dx-hidden\")\r\n }\r\n },\r\n renderLoadPanel($element, $container, isLocalStore) {\r\n var loadPanelOptions;\r\n this._loadPanel && this._loadPanel.$element().remove();\r\n loadPanelOptions = this.option(\"loadPanel\");\r\n if (loadPanelOptions && (\"auto\" === loadPanelOptions.enabled ? !isLocalStore : loadPanelOptions.enabled)) {\r\n loadPanelOptions = extend({\r\n shading: false,\r\n message: loadPanelOptions.text,\r\n container: $container\r\n }, loadPanelOptions);\r\n this._loadPanel = this._createComponent($(\"
\").appendTo($container), LoadPanel, loadPanelOptions)\r\n } else {\r\n this._loadPanel = null\r\n }\r\n },\r\n calculateLoadPanelPosition($element) {\r\n var $window = $(getWindow());\r\n if (getHeight($element) > getHeight($window)) {\r\n return {\r\n of: $window,\r\n boundary: $element,\r\n collision: \"fit\"\r\n }\r\n }\r\n return {\r\n of: $element\r\n }\r\n },\r\n getIndexByKey(key, items, keyName) {\r\n var index = -1;\r\n if (void 0 !== key && Array.isArray(items)) {\r\n keyName = arguments.length <= 2 ? \"key\" : keyName;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = isDefined(keyName) ? items[i][keyName] : items[i];\r\n if (equalByValue(key, item)) {\r\n index = i;\r\n break\r\n }\r\n }\r\n }\r\n return index\r\n },\r\n combineFilters(filters, operation) {\r\n var _a;\r\n var resultFilter = [];\r\n operation = operation || \"and\";\r\n for (var i = 0; i < filters.length; i++) {\r\n if (!filters[i]) {\r\n continue\r\n }\r\n if (1 === (null === (_a = filters[i]) || void 0 === _a ? void 0 : _a.length) && \"!\" === filters[i][0]) {\r\n if (\"and\" === operation) {\r\n return [\"!\"]\r\n }\r\n if (\"or\" === operation) {\r\n continue\r\n }\r\n }\r\n if (resultFilter.length) {\r\n resultFilter.push(operation)\r\n }\r\n resultFilter.push(filters[i])\r\n }\r\n if (1 === resultFilter.length) {\r\n resultFilter = resultFilter[0]\r\n }\r\n if (resultFilter.length) {\r\n return resultFilter\r\n }\r\n return\r\n },\r\n checkChanges(changes, changeNames) {\r\n var changesWithChangeNamesCount = 0;\r\n for (var i = 0; i < changeNames.length; i++) {\r\n if (changes[changeNames[i]]) {\r\n changesWithChangeNamesCount++\r\n }\r\n }\r\n return changes.length && changes.length === changesWithChangeNamesCount\r\n },\r\n equalFilterParameters: equalFilterParameters,\r\n proxyMethod(instance, methodName, defaultResult) {\r\n if (!instance[methodName]) {\r\n instance[methodName] = function() {\r\n var dataSource = this._dataSource;\r\n return dataSource ? dataSource[methodName].apply(dataSource, arguments) : defaultResult\r\n }\r\n }\r\n },\r\n formatValue: formatValue,\r\n getFormatOptionsByColumn: (column, target) => ({\r\n format: column.format,\r\n getDisplayFormat: column.getDisplayFormat,\r\n customizeText: column.customizeText,\r\n target: target,\r\n trueText: column.trueText,\r\n falseText: column.falseText\r\n }),\r\n getDisplayValue(column, value, data, rowType) {\r\n if (column.displayValueMap && void 0 !== column.displayValueMap[value]) {\r\n return column.displayValueMap[value]\r\n }\r\n if (column.calculateDisplayValue && data && \"group\" !== rowType) {\r\n return column.calculateDisplayValue(data)\r\n }\r\n if (column.lookup && !(\"group\" === rowType && (column.calculateGroupValue || column.calculateDisplayValue))) {\r\n return column.lookup.calculateCellValue(value)\r\n }\r\n return value\r\n },\r\n getGroupRowSummaryText(summaryItems, summaryTexts) {\r\n var result = \"(\";\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n var summaryItem = summaryItems[i];\r\n result += (i > 0 ? \", \" : \"\") + getSummaryText(summaryItem, summaryTexts)\r\n }\r\n return result + \")\"\r\n },\r\n getSummaryText: getSummaryText,\r\n normalizeSortingInfo: normalizeSortingInfo,\r\n getFormatByDataType(dataType) {\r\n switch (dataType) {\r\n case \"date\":\r\n return \"shortDate\";\r\n case \"datetime\":\r\n return \"shortDateShortTime\";\r\n default:\r\n return\r\n }\r\n },\r\n getHeaderFilterGroupParameters(column, remoteGrouping) {\r\n var result = [];\r\n var dataField = column.dataField || column.name;\r\n var groupInterval = sharedFiltering.getGroupInterval(column);\r\n if (groupInterval) {\r\n each(groupInterval, (index, interval) => {\r\n result.push(remoteGrouping ? {\r\n selector: dataField,\r\n groupInterval: interval,\r\n isExpanded: index < groupInterval.length - 1\r\n } : getIntervalSelector.bind(column, interval))\r\n });\r\n return result\r\n }\r\n if (remoteGrouping) {\r\n result = [{\r\n selector: dataField,\r\n isExpanded: false\r\n }]\r\n } else {\r\n result = function(data) {\r\n var result = column.calculateCellValue(data);\r\n if (void 0 === result || \"\" === result) {\r\n result = null\r\n }\r\n return result\r\n };\r\n if (column.sortingMethod) {\r\n result = [{\r\n selector: result,\r\n compare: column.sortingMethod.bind(column)\r\n }]\r\n }\r\n }\r\n return result\r\n },\r\n equalSortParameters(sortParameters1, sortParameters2, ignoreIsExpanded) {\r\n sortParameters1 = normalizeSortingInfo(sortParameters1);\r\n sortParameters2 = normalizeSortingInfo(sortParameters2);\r\n if (Array.isArray(sortParameters1) && Array.isArray(sortParameters2)) {\r\n if (sortParameters1.length !== sortParameters2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < sortParameters1.length; i++) {\r\n if (!equalSelectors(sortParameters1[i].selector, sortParameters2[i].selector) || sortParameters1[i].desc !== sortParameters2[i].desc || sortParameters1[i].groupInterval !== sortParameters2[i].groupInterval || !ignoreIsExpanded && Boolean(sortParameters1[i].isExpanded) !== Boolean(sortParameters2[i].isExpanded)) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return (!sortParameters1 || !sortParameters1.length) === (!sortParameters2 || !sortParameters2.length)\r\n },\r\n getPointsByColumns(items, pointCreated, isVertical, startColumnIndex) {\r\n var cellsLength = items.length;\r\n var notCreatePoint = false;\r\n var item;\r\n var offset;\r\n var columnIndex = startColumnIndex || 0;\r\n var result = [];\r\n var rtlEnabled;\r\n for (var i = 0; i <= cellsLength; i++) {\r\n if (i < cellsLength) {\r\n item = items.eq(i);\r\n offset = item.offset();\r\n rtlEnabled = \"rtl\" === item.css(\"direction\")\r\n }\r\n var point = {\r\n index: columnIndex,\r\n x: offset ? offset.left + (!isVertical && rtlEnabled ^ i === cellsLength ? getBoundingRect(item[0]).width : 0) : 0,\r\n y: offset ? offset.top + (isVertical && i === cellsLength ? getBoundingRect(item[0]).height : 0) : 0,\r\n columnIndex: columnIndex\r\n };\r\n if (!isVertical && i > 0) {\r\n var prevItemOffset = items.eq(i - 1).offset();\r\n if (prevItemOffset.top < point.y) {\r\n point.y = prevItemOffset.top\r\n }\r\n }\r\n if (pointCreated) {\r\n notCreatePoint = pointCreated(point)\r\n }\r\n if (!notCreatePoint) {\r\n result.push(point)\r\n }\r\n columnIndex++\r\n }\r\n return result\r\n },\r\n getExpandCellTemplate: () => ({\r\n allowRenderToDetachedContainer: true,\r\n render(container, options) {\r\n var $container = $(container);\r\n if (isDefined(options.value) && !(options.data && options.data.isContinuation) && !options.row.isNewRow) {\r\n var rowsView = options.component.getView(\"rowsView\");\r\n $container.addClass(DATAGRID_EXPAND_CLASS).addClass(DATAGRID_SELECTION_DISABLED_CLASS);\r\n $(\"
\").addClass(options.value ? DATAGRID_GROUP_OPENED_CLASS : DATAGRID_GROUP_CLOSED_CLASS).appendTo($container);\r\n rowsView.setAria(\"label\", options.value ? rowsView.localize(\"dxDataGrid-ariaCollapse\") : rowsView.localize(\"dxDataGrid-ariaExpand\"), $container)\r\n } else {\r\n setEmptyText($container)\r\n }\r\n }\r\n }),\r\n setEmptyText: setEmptyText,\r\n isDateType: isDateType,\r\n getSelectionRange(focusedElement) {\r\n try {\r\n if (focusedElement) {\r\n return {\r\n selectionStart: focusedElement.selectionStart,\r\n selectionEnd: focusedElement.selectionEnd\r\n }\r\n }\r\n } catch (e) {}\r\n return {}\r\n },\r\n setSelectionRange(focusedElement, selectionRange) {\r\n try {\r\n if (focusedElement && focusedElement.setSelectionRange) {\r\n focusedElement.setSelectionRange(selectionRange.selectionStart, selectionRange.selectionEnd)\r\n }\r\n } catch (e) {}\r\n },\r\n focusAndSelectElement(component, $element) {\r\n var isFocused = $element.is(\":focus\");\r\n eventsEngine.trigger($element, \"focus\");\r\n var isSelectTextOnEditingStart = component.option(\"editing.selectTextOnEditStart\");\r\n var element = $element.get(0);\r\n if (!isFocused && isSelectTextOnEditingStart && $element.is(\".dx-texteditor-input\") && !$element.is(\"[readonly]\")) {\r\n var editor = getWidgetInstance($element.closest(\".dx-texteditor\"));\r\n when(editor && editor._loadItemDeferred).done(() => {\r\n element.select()\r\n })\r\n }\r\n },\r\n getWidgetInstance: getWidgetInstance,\r\n getLastResizableColumnIndex(columns, resultWidths) {\r\n var hasResizableColumns = columns.some(column => column && !column.command && !column.fixed && false !== column.allowResizing);\r\n var lastColumnIndex;\r\n for (lastColumnIndex = columns.length - 1; columns[lastColumnIndex]; lastColumnIndex--) {\r\n var column = columns[lastColumnIndex];\r\n var width = resultWidths && resultWidths[lastColumnIndex];\r\n var allowResizing = !hasResizableColumns || false !== column.allowResizing;\r\n if (!column.command && !column.fixed && \"adaptiveHidden\" !== width && allowResizing) {\r\n break\r\n }\r\n }\r\n return lastColumnIndex\r\n },\r\n isElementInCurrentGrid(controller, $element) {\r\n if ($element && $element.length) {\r\n var $grid = $element.closest(\".\".concat(controller.getWidgetContainerClass())).parent();\r\n return $grid.is(controller.component.$element())\r\n }\r\n return false\r\n },\r\n isVirtualRowRendering(that) {\r\n var rowRenderingMode = that.option(ROW_RENDERING_MODE_OPTION);\r\n var isVirtualMode = that.option(SCROLLING_MODE_OPTION) === SCROLLING_MODE_VIRTUAL;\r\n var isAppendMode = that.option(SCROLLING_MODE_OPTION) === SCROLLING_MODE_INFINITE;\r\n if (false === that.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n return true\r\n }\r\n return rowRenderingMode === SCROLLING_MODE_VIRTUAL\r\n },\r\n getPixelRatio: window => window.devicePixelRatio || 1,\r\n getContentHeightLimit(browser) {\r\n if (browser.mozilla) {\r\n return 8e6\r\n }\r\n return 15e6 / this.getPixelRatio(getWindow())\r\n },\r\n normalizeLookupDataSource(lookup) {\r\n var lookupDataSourceOptions;\r\n if (lookup.items) {\r\n lookupDataSourceOptions = lookup.items\r\n } else {\r\n lookupDataSourceOptions = lookup.dataSource;\r\n if (isFunction(lookupDataSourceOptions) && !variableWrapper.isWrapped(lookupDataSourceOptions)) {\r\n lookupDataSourceOptions = lookupDataSourceOptions({})\r\n }\r\n }\r\n return normalizeDataSourceOptions(lookupDataSourceOptions)\r\n },\r\n getWrappedLookupDataSource(column, dataSource, filter) {\r\n if (!dataSource) {\r\n return []\r\n }\r\n var lookupDataSourceOptions = this.normalizeLookupDataSource(column.lookup);\r\n if (column.calculateCellValue !== column.defaultCalculateCellValue) {\r\n return lookupDataSourceOptions\r\n }\r\n var hasGroupPaging = dataSource.remoteOperations().groupPaging;\r\n var hasLookupOptimization = column.displayField && isString(column.displayField);\r\n var cachedUniqueRelevantItems;\r\n var previousTake;\r\n var previousSkip;\r\n var sliceItems = (items, loadOptions) => {\r\n var _a;\r\n var start = null !== (_a = loadOptions.skip) && void 0 !== _a ? _a : 0;\r\n var end = loadOptions.take ? start + loadOptions.take : items.length;\r\n return items.slice(start, end)\r\n };\r\n var lookupDataSource = _extends(_extends({}, lookupDataSourceOptions), {\r\n __dataGridSourceFilter: filter,\r\n load: loadOptions => {\r\n var d = new Deferred;\r\n (loadOptions => {\r\n var group = normalizeGroupingLoadOptions(hasLookupOptimization ? [column.dataField, column.displayField] : column.dataField);\r\n var d = new Deferred;\r\n var canUseCache = cachedUniqueRelevantItems && (!hasGroupPaging || loadOptions.skip === previousSkip && loadOptions.take === previousTake);\r\n if (canUseCache) {\r\n d.resolve(sliceItems(cachedUniqueRelevantItems, loadOptions))\r\n } else {\r\n previousSkip = loadOptions.skip;\r\n previousTake = loadOptions.take;\r\n dataSource.load({\r\n filter: filter,\r\n group: group,\r\n take: hasGroupPaging ? loadOptions.take : void 0,\r\n skip: hasGroupPaging ? loadOptions.skip : void 0\r\n }).done(items => {\r\n cachedUniqueRelevantItems = items;\r\n d.resolve(hasGroupPaging ? items : sliceItems(items, loadOptions))\r\n }).fail(d.fail)\r\n }\r\n return d\r\n })(loadOptions).done(items => {\r\n if (0 === items.length) {\r\n d.resolve([]);\r\n return\r\n }\r\n var filter = this.combineFilters(items.flatMap(data => data.key).map(key => [column.lookup.valueExpr, key]), \"or\");\r\n var newDataSource = new DataSource(_extends(_extends(_extends({}, lookupDataSourceOptions), loadOptions), {\r\n filter: this.combineFilters([filter, loadOptions.filter], \"and\"),\r\n paginate: false\r\n }));\r\n newDataSource.load().done(d.resolve).fail(d.fail)\r\n }).fail(d.fail);\r\n return d\r\n },\r\n key: column.lookup.valueExpr,\r\n byKey(key) {\r\n var d = Deferred();\r\n this.load({\r\n filter: [column.lookup.valueExpr, \"=\", key]\r\n }).done(arr => {\r\n d.resolve(arr[0])\r\n });\r\n return d.promise()\r\n }\r\n });\r\n return lookupDataSource\r\n },\r\n logHeaderFilterDeprecatedWarningIfNeed(component) {\r\n var logWarning = component._logDeprecatedOptionWarning.bind(component);\r\n if (isDefined(component.option(\"headerFilter.allowSearch\"))) {\r\n logWarning(\"headerFilter.allowSearch\", {\r\n since: \"23.1\",\r\n alias: \"headerFilter.search.enabled\"\r\n })\r\n }\r\n if (isDefined(component.option(\"headerFilter.searchTimeout\"))) {\r\n logWarning(\"headerFilter.searchTimeout\", {\r\n since: \"23.1\",\r\n alias: \"headerFilter.search.timeout\"\r\n })\r\n }\r\n var specificName = \"dxPivotGrid\" === component.NAME ? \"dataSource.fields\" : \"columns\";\r\n var columns = component.option(specificName);\r\n if (!Array.isArray(columns)) {\r\n return\r\n }\r\n var logSpecificDeprecatedWarningIfNeed = columns => {\r\n columns.forEach(column => {\r\n var _a;\r\n var headerFilter = column.headerFilter || {};\r\n if (isDefined(headerFilter.allowSearch)) {\r\n logWarning(\"\".concat(specificName, \"[].headerFilter.allowSearch\"), {\r\n since: \"23.1\",\r\n alias: \"\".concat(specificName, \"[].headerFilter.search.enabled\")\r\n })\r\n }\r\n if (isDefined(headerFilter.searchMode)) {\r\n logWarning(\"\".concat(specificName, \"[].headerFilter.searchMode\"), {\r\n since: \"23.1\",\r\n alias: \"\".concat(specificName, \"[].headerFilter.search.mode\")\r\n })\r\n }\r\n if (null === (_a = column.columns) || void 0 === _a ? void 0 : _a.length) {\r\n logSpecificDeprecatedWarningIfNeed(column.columns)\r\n }\r\n })\r\n };\r\n logSpecificDeprecatedWarningIfNeed(columns)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_columns_view.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport {\r\n data as elementData\r\n} from \"../../../../core/element_data\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport * as iteratorUtils from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n setWidth\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../../../core/utils/support\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isRenderer,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../../../events/double_click\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport columnStateMixin from \"../../../grids/grid_core/column_state_mixin/m_column_state_mixin\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar SCROLL_CONTAINER_CLASS = \"scroll-container\";\r\nvar SCROLLABLE_SIMULATED_CLASS = \"scrollable-simulated\";\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 GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar ERROR_ROW_CLASS = \"dx-error-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(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(() => {\r\n touchTarget = touchCurrentTarget = null\r\n }, timeout)\r\n }\r\n eventsEngine.on($table, \"touchstart touchend\", \".dx-row\", 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 eventsEngine.on($table, [clickEventName, dblclickEvent, pointerEvents.down].join(\" \"), \".dx-row\", that.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (touchTarget) {\r\n event.target = touchTarget;\r\n event.currentTarget = touchCurrentTarget\r\n }\r\n if (!$(event.target).closest(\"a\").length) {\r\n e.rowIndex = that.getRowIndex(event.currentTarget);\r\n if (e.rowIndex >= 0) {\r\n e.rowElement = getPublicElement($(event.currentTarget));\r\n e.columns = that.getColumns();\r\n if (event.type === pointerEvents.down) {\r\n that._rowPointerDown(e)\r\n } else if (event.type === clickEventName) {\r\n that._rowClick(e)\r\n } else {\r\n that._rowDblClick(e)\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 isNumeric(width) ? \"\".concat(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 removeHandler = function(templateDeferred) {\r\n templateDeferred.resolve()\r\n};\r\nexport var normalizeWidth = width => {\r\n if (\"number\" === typeof width) {\r\n return \"\".concat(width.toFixed(3), \"px\")\r\n }\r\n if (\"adaptiveHidden\" === width) {\r\n return HIDDEN_COLUMNS_WIDTH\r\n }\r\n return width\r\n};\r\nvar viewWithColumnStateMixin = modules.View.inherit(columnStateMixin);\r\nexport class ColumnsView extends viewWithColumnStateMixin {\r\n setTableRole($tableElement) {}\r\n _createScrollableOptions() {\r\n var scrollingOptions = this.option(\"scrolling\");\r\n var useNativeScrolling = this.option(\"scrolling.useNative\");\r\n var options = extend({}, 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($cell, parameters) {\r\n if (parameters.rowType) {\r\n this._cellPrepared($cell, parameters)\r\n }\r\n }\r\n _createCell(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var alignment = column.alignment || getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var cell = domAdapter.createElement(\"td\");\r\n cell.style.textAlign = alignment;\r\n var $cell = $(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 (Array.isArray(column.elementAttr)) {\r\n column.elementAttr.forEach(_ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n $cell.attr(name, value)\r\n })\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 if (!column.isBand && \"auto\" !== column.visibleWidth && 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 return $cell\r\n }\r\n _createRow(rowObject, tagName) {\r\n tagName = tagName || \"tr\";\r\n var $element = $(\"<\".concat(tagName, \">\")).addClass(ROW_CLASS);\r\n this.setAria(\"role\", \"row\", $element);\r\n return $element\r\n }\r\n _isAltRow(row) {\r\n return row && row.dataIndex % 2 === 1\r\n }\r\n _createTable(columns, isAppend) {\r\n var $table = $(\"\").addClass(this.addWidgetPrefix(TABLE_CLASS)).addClass(this.addWidgetPrefix(TABLE_FIXED_CLASS));\r\n if (columns && !isAppend) {\r\n $table.append(this._createColGroup(columns));\r\n if (browser.safari) {\r\n $table.append($(\"\").append(\"\"))\r\n }\r\n this.setTableRole($table)\r\n } else {\r\n this.setAria(\"hidden\", true, $table)\r\n }\r\n this.setAria(\"role\", \"presentation\", $(\"\").appendTo($table));\r\n if (isAppend) {\r\n return $table\r\n }\r\n if (browser.mozilla) {\r\n eventsEngine.on($table, \"mousedown\", \"td\", e => {\r\n if (e.ctrlKey) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n if (this.option(\"cellHintEnabled\")) {\r\n eventsEngine.on($table, \"mousemove\", \".dx-row > td\", this.createAction(args => {\r\n var e = args.event;\r\n var $element = $(e.target);\r\n var $cell = $(e.currentTarget);\r\n var $row = $cell.parent();\r\n var visibleColumns = this._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 isHeaderRow = $row.hasClass(\"dx-header-row\");\r\n var isDataRow = $row.hasClass(\"dx-data-row\");\r\n var isMasterDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isFilterRow = $row.hasClass(this.addWidgetPrefix(FILTER_ROW_CLASS));\r\n var isDataRowWithTemplate = isDataRow && (!column || column.cellTemplate);\r\n var isEditorShown = isDataRow && cellOptions && (rowOptions.isEditing || cellOptions.isEditing || (null === column || void 0 === column ? void 0 : column.showEditorAlways));\r\n var isHeaderRowWithTemplate = isHeaderRow && (!column || column.headerCellTemplate);\r\n var isGroupCellWithTemplate = isGroupRow && (!column || column.groupIndex && column.groupCellTemplate);\r\n var shouldShowHint = !isMasterDetailRow && !isFilterRow && !isEditorShown && !isDataRowWithTemplate && !isHeaderRowWithTemplate && !isGroupCellWithTemplate;\r\n if (shouldShowHint) {\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;\r\n if (difference > 0 && !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 = event => {\r\n var $cell = $(event.currentTarget);\r\n var $fieldItemContent = $(event.target).closest(\".\".concat(FORM_FIELD_ITEM_CONTENT_CLASS));\r\n var $row = $cell.parent();\r\n var rowOptions = $row.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 = extend({}, options, {\r\n cellElement: getPublicElement($cell),\r\n event: event,\r\n eventType: event.type\r\n });\r\n resultOptions.rowIndex = this.getRowIndex($row);\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 = this._columnsController.getVisibleIndex(resultOptions.column.index)\r\n }\r\n }\r\n return resultOptions\r\n };\r\n eventsEngine.on($table, \"mouseover\", \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellHoverChanged\", options)\r\n });\r\n eventsEngine.on($table, \"mouseout\", \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellHoverChanged\", options)\r\n });\r\n eventsEngine.on($table, clickEventName, \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellClick\", options)\r\n });\r\n eventsEngine.on($table, dblclickEvent, \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellDblClick\", options)\r\n });\r\n subscribeToRowEvents(this, $table);\r\n return $table\r\n }\r\n _rowPointerDown() {}\r\n _rowClick() {}\r\n _rowDblClick() {}\r\n _createColGroup(columns) {\r\n var colgroupElement = $(\"\");\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(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 = $(\"\");\r\n setWidth(col, width);\r\n return col\r\n }\r\n renderDelayedTemplates(change) {\r\n var delayedTemplates = this._delayedTemplates;\r\n var syncTemplates = delayedTemplates.filter(template => !template.async);\r\n var asyncTemplates = delayedTemplates.filter(template => template.async);\r\n this._delayedTemplates = [];\r\n this._renderDelayedTemplatesCore(syncTemplates, false, change);\r\n this._renderDelayedTemplatesCoreAsync(asyncTemplates)\r\n }\r\n _renderDelayedTemplatesCoreAsync(templates) {\r\n if (templates.length) {\r\n var templateTimeout = getWindow().setTimeout(() => {\r\n this._templateTimeouts.delete(templateTimeout);\r\n this._renderDelayedTemplatesCore(templates, true)\r\n });\r\n this._templateTimeouts.add(templateTimeout)\r\n }\r\n }\r\n _renderDelayedTemplatesCore(templates, isAsync, change) {\r\n var date = new Date;\r\n while (templates.length) {\r\n var templateParameters = templates.shift();\r\n var {\r\n options: options\r\n } = templateParameters;\r\n var doc = domAdapter.getRootNode($(options.container).get(0));\r\n var needWaitAsyncTemplates = this.needWaitAsyncTemplates();\r\n if (!isAsync || $(options.container).closest(doc).length || needWaitAsyncTemplates) {\r\n if (change) {\r\n options.change = change\r\n }\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(template, options) {\r\n var renderingTemplate;\r\n if (template && template.render && !isRenderer(template)) {\r\n renderingTemplate = {\r\n allowRenderToDetachedContainer: template.allowRenderToDetachedContainer,\r\n render(options) {\r\n template.render(options.container, options.model, options.change);\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else if (isFunction(template)) {\r\n renderingTemplate = {\r\n render(options) {\r\n var renderedTemplate = template(getPublicElement(options.container), options.model, options.change);\r\n if (renderedTemplate && (renderedTemplate.nodeType || 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 = isString(template) ? template : $(template).attr(\"id\");\r\n if (!templateID) {\r\n renderingTemplate = this.getTemplate(template)\r\n } else {\r\n if (!this._templatesCache[templateID]) {\r\n this._templatesCache[templateID] = this.getTemplate(template)\r\n }\r\n renderingTemplate = this._templatesCache[templateID]\r\n }\r\n }\r\n return renderingTemplate\r\n }\r\n renderTemplate(container, template, options, allowRenderToDetachedContainer, change) {\r\n var _a;\r\n var renderingTemplate = this._processTemplate(template, options);\r\n var {\r\n column: column\r\n } = options;\r\n var isDataRow = \"data\" === options.rowType;\r\n var templateDeferred = new Deferred;\r\n var templateOptions = {\r\n container: container,\r\n model: options,\r\n deferred: templateDeferred,\r\n onRendered: () => {\r\n if (this.isDisposed()) {\r\n templateDeferred.reject()\r\n } else {\r\n templateDeferred.resolve()\r\n }\r\n }\r\n };\r\n if (renderingTemplate) {\r\n options.component = this.component;\r\n var columnAsync = column && (column.renderAsync && isDataRow || this.option(\"renderAsync\") && (false !== column.renderAsync && (column.command || column.showEditorAlways) && isDataRow || \"filter\" === options.rowType));\r\n var async = null !== (_a = options.renderAsync) && void 0 !== _a ? _a : columnAsync;\r\n if ((renderingTemplate.allowRenderToDetachedContainer || allowRenderToDetachedContainer) && !async) {\r\n renderingTemplate.render(templateOptions)\r\n } else {\r\n this._delayedTemplates.push({\r\n template: renderingTemplate,\r\n options: templateOptions,\r\n async: async\r\n })\r\n }\r\n this._templateDeferreds.add(templateDeferred);\r\n eventsEngine.on(container, removeEvent, removeHandler.bind(null, templateDeferred))\r\n } else {\r\n templateDeferred.reject()\r\n }\r\n return templateDeferred.promise().always(() => {\r\n this._templateDeferreds.delete(templateDeferred)\r\n })\r\n }\r\n _getBodies(tableElement) {\r\n return $(tableElement).children(\"tbody\").not(\".dx-header\").not(\".dx-footer\")\r\n }\r\n _needWrapRow($tableElement) {\r\n var _a;\r\n var hasRowTemplate = !!this.option().rowTemplate;\r\n return hasRowTemplate && !!(null === (_a = this._getBodies($tableElement)) || void 0 === _a ? void 0 : _a.filter(\".\".concat(ROW_CLASS)).length)\r\n }\r\n _wrapRowIfNeed($table, $row, isRefreshing) {\r\n var $tableElement = isRefreshing ? $table || this._tableElement : this._tableElement || $table;\r\n var needWrapRow = this._needWrapRow($tableElement);\r\n if (needWrapRow) {\r\n var $tbody = $(\"\").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($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() {\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(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(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($table, options) {\r\n var rows = this._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 this._renderRow($table, 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($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 = 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(columnIndex, columnIndices) {\r\n return !columnIndices || columnIndices.indexOf(columnIndex) >= 0\r\n }\r\n _renderCells($row, options) {\r\n var columnIndex = 0;\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n columns: columns\r\n } = options;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, 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($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((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($cell, cellOptions) {\r\n if (\"freeSpace\" !== cellOptions.rowType) {\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($row, options) {\r\n var cellOptions = this._getCellOptions(options);\r\n if (options.columnIndices) {\r\n if (options.row.cells) {\r\n var cellIndex = options.row.cells.findIndex(cell => cell.columnIndex === cellOptions.columnIndex);\r\n options.row.cells[cellIndex] = 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, options);\r\n $row.get(0).appendChild($cell.get(0));\r\n return $cell\r\n }\r\n _renderCellContent($cell, options, renderOptions) {\r\n var template = this._getCellTemplate(options);\r\n when(!template || this.renderTemplate($cell, template, options, void 0, renderOptions.change)).done(() => {\r\n this._updateCell($cell, options)\r\n })\r\n }\r\n _getCellTemplate(options) {}\r\n _getRows(change) {\r\n return []\r\n }\r\n _getCellOptions(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(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, updateValueFunc, updateRowFunc) {\r\n var oldValue = getter(source.data);\r\n var watcher = function(row) {\r\n if (row && updateRowFunc) {\r\n updateRowFunc(row)\r\n }\r\n var newValue = getter(source.data);\r\n if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {\r\n if (row) {\r\n updateValueFunc(newValue)\r\n }\r\n oldValue = newValue\r\n }\r\n };\r\n watchers.push(watcher);\r\n return 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 };\r\n source.update = source.update || function(row, keepRow) {\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 && !keepRow) {\r\n options.row = row\r\n }\r\n }\r\n watchers.forEach(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(cell, options) {\r\n options.cellElement = getPublicElement($(cell));\r\n this.executeAction(\"onCellPrepared\", options)\r\n }\r\n _rowPrepared($row, options, row) {\r\n elementData($row.get(0), \"options\", options);\r\n options.rowElement = getPublicElement($row);\r\n this.executeAction(\"onRowPrepared\", options)\r\n }\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\"])) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var widths = visibleColumns.map(column => column.visibleWidth || column.width);\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($cell) {\r\n var cellIndex = $cell.length ? $cell[0].cellIndex : -1;\r\n return cellIndex\r\n }\r\n getTableElements() {\r\n return this._tableElement || $()\r\n }\r\n getTableElement(isFixedTableRendering) {\r\n return this._tableElement\r\n }\r\n setTableElement(tableElement, isFixedTableRendering) {\r\n this._tableElement = tableElement\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n switch (args.name) {\r\n case \"cellHintEnabled\":\r\n case \"onCellPrepared\":\r\n case \"onRowPrepared\":\r\n case \"onCellHoverChanged\":\r\n case \"keyboardNavigation\":\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n }\r\n init() {\r\n this._scrollLeft = -1;\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._delayedTemplates = [];\r\n this._templateDeferreds = new Set;\r\n this._templatesCache = {};\r\n this._templateTimeouts = new Set;\r\n this.createAction(\"onCellClick\");\r\n this.createAction(\"onRowClick\");\r\n this.createAction(\"onCellDblClick\");\r\n this.createAction(\"onRowDblClick\");\r\n this.createAction(\"onCellHoverChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onCellPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this.createAction(\"onRowPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\",\r\n afterExecute: e => {\r\n this._afterRowPrepared(e)\r\n }\r\n });\r\n this._columnsController.columnsChanged.add(this._columnOptionChanged.bind(this));\r\n this._dataController && this._dataController.changed.add(this._handleDataChanged.bind(this))\r\n }\r\n _afterRowPrepared(e) {}\r\n _handleDataChanged() {}\r\n callbackNames() {\r\n return [\"scrollChanged\"]\r\n }\r\n _updateScrollLeftPosition() {\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 scrollTo(pos) {\r\n var $element = this.element();\r\n var $scrollContainer = $element && $element.children(\".\".concat(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS))).not(\".\".concat(this.addWidgetPrefix(CONTENT_FIXED_CLASS)));\r\n if (isDefined(pos) && 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 _getContent(isFixedTableRendering) {\r\n var _a;\r\n return null === (_a = this._tableElement) || void 0 === _a ? void 0 : _a.parent()\r\n }\r\n _removeContent(isFixedTableRendering) {\r\n var $scrollContainer = this._getContent(isFixedTableRendering);\r\n if (null === $scrollContainer || void 0 === $scrollContainer ? void 0 : $scrollContainer.length) {\r\n $scrollContainer.remove()\r\n }\r\n }\r\n _wrapTableInScrollContainer($table, isFixedTableRendering) {\r\n var $scrollContainer = $(\"
\");\r\n var useNative = this.option(\"scrolling.useNative\");\r\n if (false === useNative || \"auto\" === useNative && !nativeScrolling) {\r\n $scrollContainer.addClass(this.addWidgetPrefix(SCROLLABLE_SIMULATED_CLASS))\r\n }\r\n eventsEngine.on($scrollContainer, \"scroll\", () => {\r\n var scrollLeft = $scrollContainer.scrollLeft();\r\n if (scrollLeft !== this._scrollLeft) {\r\n this.scrollChanged.fire({\r\n left: scrollLeft\r\n }, this.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 needWaitAsyncTemplates() {\r\n return this.option(\"templatesRenderAsynchronously\") && false === this.option(\"renderAsync\")\r\n }\r\n waitAsyncTemplates() {\r\n var forceWaiting = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n var result = new Deferred;\r\n var needWaitAsyncTemplates = forceWaiting || this.needWaitAsyncTemplates();\r\n if (!needWaitAsyncTemplates) {\r\n return result.resolve()\r\n }\r\n var waitTemplatesRecursion = () => when.apply(this, Array.from(this._templateDeferreds)).done(() => {\r\n if (this.isDisposed()) {\r\n result.reject()\r\n } else if (this._templateDeferreds.size > 0) {\r\n waitTemplatesRecursion()\r\n } else {\r\n result.resolve()\r\n }\r\n }).fail(result.reject);\r\n waitTemplatesRecursion();\r\n return result.promise()\r\n }\r\n _updateContent($newTableElement, change, isFixedTableRendering) {\r\n return this.waitAsyncTemplates().done(() => {\r\n this._removeContent(isFixedTableRendering);\r\n this.setTableElement($newTableElement, isFixedTableRendering);\r\n this._wrapTableInScrollContainer($newTableElement, isFixedTableRendering)\r\n })\r\n }\r\n _findContentElement() {}\r\n _getWidths($cellElements) {\r\n if (!$cellElements) {\r\n return []\r\n }\r\n var result = [];\r\n var cellElements = $cellElements.toArray();\r\n cellElements.forEach(cell => {\r\n var width = cell.offsetWidth;\r\n if (cell.getBoundingClientRect) {\r\n var rect = getBoundingRect(cell);\r\n if (rect.width > cell.offsetWidth - 1) {\r\n width = rect.width\r\n }\r\n }\r\n result.push(width)\r\n });\r\n return result\r\n }\r\n getColumnWidths($tableElement) {\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n $tableElement = null !== $tableElement && void 0 !== $tableElement ? $tableElement : this.getTableElement();\r\n if ($tableElement) {\r\n var $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 isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isErrorRow = $row.hasClass(ERROR_ROW_CLASS);\r\n var isRowVisible = \"none\" !== $row.get(0).style.display && !$row.hasClass(\"dx-state-invisible\");\r\n var isRelevantRow = !isGroupRow && !isDetailRow && !isErrorRow;\r\n if (isRowVisible && isRelevantRow) {\r\n var $cells = $row.children(\"td\");\r\n var result = this._getWidths($cells);\r\n return result\r\n }\r\n }\r\n }\r\n return []\r\n }\r\n getVisibleColumnIndex(columnIndex, rowIndex) {\r\n return columnIndex\r\n }\r\n setColumnWidths(_ref2) {\r\n var {\r\n widths: widths,\r\n optionNames: optionNames\r\n } = _ref2;\r\n var $tableElement = this.getTableElement();\r\n if (!(null === $tableElement || void 0 === $tableElement ? void 0 : $tableElement.length) || !widths) {\r\n return\r\n }\r\n var columns = this.getColumns();\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var $cols = $tableElement.children(\"colgroup\").children(\"col\");\r\n $cols.toArray().forEach(col => col.removeAttribute(\"style\"));\r\n columns.forEach((column, columnIndex) => {\r\n if (columnAutoWidth && column.width && !column.command) {\r\n var width = getWidthStyle(column.visibleWidth || column.width);\r\n var minWidth = getWidthStyle(column.minWidth || width);\r\n var $rows = $tableElement.children().children(\".dx-row\").not(\".\".concat(DETAIL_ROW_CLASS));\r\n for (var rowIndex = 0; rowIndex < $rows.length; rowIndex++) {\r\n var $row = $rows.eq(rowIndex);\r\n var visibleIndex = this.getVisibleColumnIndex(columnIndex, rowIndex);\r\n var $cell = $row.hasClass(GROUP_ROW_CLASS) ? $row.find(\"td[aria-colindex='\".concat(visibleIndex + 1, \"']:not(.\").concat(GROUP_CELL_CLASS, \")\")) : $row.find(\"td\").eq(visibleIndex);\r\n var cell = $cell.get(0);\r\n if (cell) {\r\n setCellWidth(cell, column, width);\r\n cell.style.minWidth = minWidth\r\n }\r\n }\r\n }\r\n var colWidth = normalizeWidth(widths[columnIndex]);\r\n if (isDefined(colWidth)) {\r\n setWidth($cols.eq(columnIndex), colWidth)\r\n }\r\n })\r\n }\r\n getCellElements(rowIndex) {\r\n return this._getCellElementsCore(rowIndex)\r\n }\r\n _getCellElementsCore(rowIndex) {\r\n if (rowIndex < 0) {\r\n return\r\n }\r\n var $row = this._getRowElements().eq(rowIndex);\r\n return $row.children()\r\n }\r\n _getCellElement(rowIndex, columnIdentifier) {\r\n var $cells = this.getCellElements(rowIndex);\r\n var columnVisibleIndex = this._getVisibleColumnIndex($cells, rowIndex, columnIdentifier);\r\n if (!(null === $cells || void 0 === $cells ? void 0 : $cells.length) || columnVisibleIndex < 0) {\r\n return\r\n }\r\n var $cell = $cells.eq(columnVisibleIndex);\r\n return $cell.length > 0 ? $cell : void 0\r\n }\r\n _getRowElement(rowIndex) {\r\n var that = this;\r\n var $rowElement = $();\r\n var $tableElements = that.getTableElements();\r\n iteratorUtils.each($tableElements, (_, tableElement) => {\r\n $rowElement = $rowElement.add(that._getRowElements($(tableElement)).eq(rowIndex))\r\n });\r\n if ($rowElement.length) {\r\n return $rowElement\r\n }\r\n return\r\n }\r\n getCellElement(rowIndex, columnIdentifier) {\r\n var $cell = this._getCellElement(rowIndex, columnIdentifier);\r\n if ($cell) {\r\n return getPublicElement($cell)\r\n }\r\n return\r\n }\r\n getRowElement(rowIndex) {\r\n var $rows = this._getRowElement(rowIndex);\r\n var elements = [];\r\n if ($rows && !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($cells, rowIndex, columnIdentifier) {\r\n if (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() {}\r\n getColumns(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n }\r\n getCell(cellPosition, rows, cells) {\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\") && \"virtual\" !== this.option(\"scrolling.rowRenderingMode\")) {\r\n cellPosition.rowIndex = cellPosition.rowIndex < $rows.length ? cellPosition.rowIndex : $rows.length - 1\r\n }\r\n $cells = cells || this.getCellElements(cellPosition.rowIndex);\r\n if ((null === $cells || void 0 === $cells ? void 0 : $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() {\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(tableElement) {\r\n tableElement = tableElement || this.getTableElement();\r\n if (tableElement) {\r\n var hasRowTemplate = this.option().rowTemplate || this.option(\"dataRowTemplate\");\r\n var tBodies = hasRowTemplate && tableElement.find(\"> tbody.\".concat(ROW_CLASS));\r\n return tBodies && tBodies.length ? tBodies : tableElement.find(\"> tbody > \" + \".\".concat(ROW_CLASS, \", > .\").concat(ROW_CLASS))\r\n }\r\n return $()\r\n }\r\n _getRowElements(tableElement) {\r\n return this._getRowElementsCore(tableElement)\r\n }\r\n getRowIndex($row) {\r\n return this._getRowElements().index($row)\r\n }\r\n getBoundingRect() {}\r\n getName() {}\r\n setScrollerSpacing(width) {\r\n var $element = this.element();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n $element && $element.css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n }\r\n isScrollbarVisible(isHorizontal) {\r\n var $element = this.element();\r\n var $tableElement = this._tableElement;\r\n if ($element && $tableElement) {\r\n return isHorizontal ? getOuterWidth($tableElement) - getWidth($element) > 0 : getOuterHeight($tableElement) - getHeight($element) > 0\r\n }\r\n return false\r\n }\r\n isDisposed() {\r\n var _a;\r\n return null === (_a = this.component) || void 0 === _a ? void 0 : _a._disposed\r\n }\r\n dispose() {\r\n var _a, _b;\r\n if (hasWindow()) {\r\n var window = getWindow();\r\n null === (_a = this._templateTimeouts) || void 0 === _a ? void 0 : _a.forEach(templateTimeout => window.clearTimeout(templateTimeout));\r\n null === (_b = this._templateTimeouts) || void 0 === _b ? void 0 : _b.clear()\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/column_headers/m_column_headers.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getHeight\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"../m_accessibility\";\r\nimport {\r\n ColumnsView\r\n} from \"../views/m_columns_view\";\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 LINK = \"dx-link\";\r\nexport var columnHeadersModule = {\r\n defaultOptions: () => ({\r\n showColumnHeaders: true,\r\n cellHintEnabled: true\r\n }),\r\n views: {\r\n columnHeadersView: ColumnsView.inherit(function() {\r\n var createCellContent = function(that, $cell, options) {\r\n var $cellContent = $(\"
\").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(\".\".concat(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(\".\".concat(that._getIndicatorClassName(\"headerFilter\"))).length)\r\n }\r\n var members = {\r\n _createTable() {\r\n var $table = this.callBase.apply(this, arguments);\r\n eventsEngine.on($table, \"mousedown selectstart\", this.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n }));\r\n return $table\r\n },\r\n _isLegacyKeyboardNavigation() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n },\r\n _getDefaultTemplate(column) {\r\n var that = this;\r\n return function($container, options) {\r\n var {\r\n caption: caption\r\n } = column;\r\n var needCellContent = !column.command || caption && \"expand\" !== column.command;\r\n if (\"empty\" === column.command) {\r\n that._renderEmptyMessage($container, options)\r\n } else if (needCellContent) {\r\n var $content = createCellContent(that, $container, options);\r\n $content.text(caption)\r\n } else if (column.command) {\r\n $container.html(\" \")\r\n }\r\n }\r\n },\r\n _renderEmptyMessage($container, options) {\r\n var textEmpty = this._getEmptyHeaderText();\r\n if (!textEmpty) {\r\n $container.html(\" \");\r\n return\r\n }\r\n var $cellContent = createCellContent(this, $container, options);\r\n var needSplit = textEmpty.includes(\"{0}\");\r\n if (needSplit) {\r\n var [leftPart, rightPart] = textEmpty.split(\"{0}\");\r\n var columnChooserTitle = messageLocalization.format(\"dxDataGrid-emptyHeaderColumnChooserText\");\r\n var columnChooserView = this.component.getView(\"columnChooserView\");\r\n var $link = $(\"\").text(columnChooserTitle).addClass(LINK);\r\n eventsEngine.on($link, \"click\", this.createAction(() => columnChooserView.showColumnChooser()));\r\n $cellContent.append(domAdapter.createTextNode(leftPart)).append($link).append(domAdapter.createTextNode(rightPart))\r\n } else {\r\n $cellContent.text(textEmpty)\r\n }\r\n },\r\n _getEmptyHeaderText() {\r\n var hasHiddenColumns = !!this.component.getView(\"columnChooserView\").hasHiddenColumns();\r\n var hasGroupedColumns = !!this.component.getView(\"headerPanel\").hasGroupedColumns();\r\n switch (true) {\r\n case hasHiddenColumns && hasGroupedColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithColumnChooserAndGroupPanelText\");\r\n case hasGroupedColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithGroupPanelText\");\r\n case hasHiddenColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithColumnChooserText\");\r\n default:\r\n return \"\"\r\n }\r\n },\r\n _getHeaderTemplate(column) {\r\n return column.headerCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n },\r\n _processTemplate(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var {\r\n column: column\r\n } = options;\r\n var renderingTemplate = that.callBase(template);\r\n if (\"header\" === options.rowType && renderingTemplate && column.headerCellTemplate && !column.command) {\r\n resultTemplate = {\r\n render(options) {\r\n var $content = createCellContent(that, options.container, options.model);\r\n renderingTemplate.render(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(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($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($cell, cellOptions) {\r\n this.callBase($cell, cellOptions);\r\n if (\"header\" === cellOptions.rowType) {\r\n if (!cellOptions.column.type) {\r\n this.setAria(\"role\", \"columnheader\", $cell)\r\n }\r\n if (cellOptions.column && !cellOptions.column.command && !cellOptions.column.isBand) {\r\n $cell.attr(\"id\", cellOptions.column.headerId);\r\n this.setAria(\"label\", \"\".concat(messageLocalization.format(\"dxDataGrid-ariaColumn\"), \" \").concat(cellOptions.column.caption), $cell)\r\n }\r\n }\r\n },\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n $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 registerKeyboardAction(\"columnHeaders\", this, $row, \"td\", this._handleActionKeyDown.bind(this))\r\n }\r\n }\r\n return $row\r\n },\r\n _handleActionKeyDown(args) {\r\n var {\r\n event: event\r\n } = args;\r\n var $target = $(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() {\r\n var $container = this.element();\r\n var change = {};\r\n if (this._tableElement && !this._dataController.isLoaded() && !this._hasRowElements) {\r\n return\r\n }\r\n $container.addClass(this.addWidgetPrefix(HEADERS_CLASS)).toggleClass(this.addWidgetPrefix(NOWRAP_CLASS), !this.option(\"wordWrapEnabled\")).empty();\r\n this.setAria(\"role\", \"presentation\", $container);\r\n var deferred = this._updateContent(this._renderTable({\r\n change: change\r\n }), change);\r\n if (this.getRowCount() > 1) {\r\n $container.addClass(MULTI_ROW_HEADER_CLASS)\r\n }\r\n this.callBase.apply(this, arguments);\r\n return deferred\r\n },\r\n _renderRows() {\r\n if (this._dataController.isLoaded() || this._hasRowElements) {\r\n this.callBase.apply(this, arguments);\r\n this._hasRowElements = true\r\n }\r\n },\r\n _renderRow($table, options) {\r\n var rowIndex = 1 === this.getRowCount() ? null : options.row.rowIndex;\r\n options.columns = this.getColumns(rowIndex);\r\n this.callBase($table, options)\r\n },\r\n _createCell(options) {\r\n var {\r\n column: column\r\n } = options;\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() {\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(options) {\r\n if (\"header\" === options.rowType) {\r\n return this._getHeaderTemplate(options.column)\r\n }\r\n },\r\n _columnOptionChanged(e) {\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (changeTypes.grouping || changeTypes.groupExpanding) {\r\n if (changeTypes.grouping) {\r\n this._isGroupingChanged = true\r\n }\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: elementOptions => elementOptions && elementOptions.visible,\r\n _alignCaptionByCenter($cell) {\r\n var $indicatorsContainer = this._getIndicatorContainer($cell, true);\r\n if ($indicatorsContainer && $indicatorsContainer.length) {\r\n $indicatorsContainer.filter(\".\".concat(VISIBILITY_HIDDEN_CLASS)).remove();\r\n $indicatorsContainer = this._getIndicatorContainer($cell);\r\n $indicatorsContainer.clone().addClass(VISIBILITY_HIDDEN_CLASS).css(\"float\", \"\").insertBefore($cell.children(\".\".concat(this.addWidgetPrefix(CELL_CONTENT_CLASS))))\r\n }\r\n },\r\n _updateCell($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($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($cell, returnAll) {\r\n var $indicatorsContainer = this.callBase($cell);\r\n return returnAll ? $indicatorsContainer : $indicatorsContainer.filter(\":not(.\".concat(VISIBILITY_HIDDEN_CLASS, \")\"))\r\n },\r\n _isSortableElement: () => true,\r\n getHeadersRowHeight() {\r\n var $tableElement = this.getTableElement();\r\n var $headerRows = $tableElement && $tableElement.find(\".\".concat(HEADER_ROW_CLASS));\r\n return $headerRows && $headerRows.toArray().reduce((sum, headerRow) => sum + getHeight(headerRow), 0) || 0\r\n },\r\n getHeaderElement(index) {\r\n var columnElements = this.getColumnElements();\r\n return columnElements && columnElements.eq(index)\r\n },\r\n getColumnElements(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 && (!isDefined(index) || isDefined(bandColumnIndex))) {\r\n var result = [];\r\n var visibleColumns = isDefined(bandColumnIndex) ? columnsController.getChildrenByBandColumn(bandColumnIndex, true) : columnsController.getVisibleColumns();\r\n each(visibleColumns, (_, column) => {\r\n var rowIndex = 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 $(result)\r\n }\r\n if (!index || index < rowCount) {\r\n return that.getCellElements(index || 0)\r\n }\r\n }\r\n },\r\n getColumnIndexByElement($cell) {\r\n var cellIndex = this.getCellIndex($cell);\r\n var $row = $cell.closest(\".dx-row\");\r\n var {\r\n rowIndex: rowIndex\r\n } = $row[0];\r\n var column = this.getColumns(rowIndex)[cellIndex];\r\n return column ? column.index : -1\r\n },\r\n getVisibleColumnIndex(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() {\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(column) {\r\n var rowIndex = column && this._columnsController.getRowIndex(column.index);\r\n var columns = this.getColumns(rowIndex);\r\n var isReorderingEnabled = this.option(\"allowColumnReordering\") || this._columnsController.isColumnOptionUsed(\"allowReordering\");\r\n return isReorderingEnabled && column.allowReordering && columns.length > 1\r\n },\r\n getBoundingRect() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n var offset = this.getTableElement().offset();\r\n return {\r\n top: offset.top\r\n }\r\n }\r\n return null\r\n },\r\n getName: () => \"headers\",\r\n getColumnCount() {\r\n var $columnElements = this.getColumnElements();\r\n return $columnElements ? $columnElements.length : 0\r\n },\r\n isVisible() {\r\n return this.option(\"showColumnHeaders\")\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"showColumnHeaders\":\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getHeight() {\r\n return this.getElementHeight()\r\n },\r\n getContextMenuItems(options) {\r\n var that = this;\r\n var {\r\n column: column\r\n } = options;\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(() => {\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 return\r\n },\r\n getRowCount() {\r\n return this._columnsController && this._columnsController.getRowCount()\r\n },\r\n setRowsOpacity(columnIndex, value, rowIndex) {\r\n var i;\r\n var columnElements;\r\n var rowCount = this.getRowCount();\r\n var columns = this._columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n var setColumnOpacity = (column, index) => {\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 this.setRowsOpacity(column.index, value, i + 1)\r\n }\r\n }\r\n };\r\n if (isDefined(columnID)) {\r\n rowIndex = rowIndex || 0;\r\n for (i = rowIndex; i < rowCount; i++) {\r\n columnElements = this.getCellElements(i);\r\n if (columnElements) {\r\n var rowColumns = this.getColumns(i);\r\n rowColumns.forEach(setColumnOpacity)\r\n }\r\n }\r\n }\r\n }\r\n };\r\n return members\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_core.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport modules from \"../../grids/grid_core/m_modules\";\r\nimport gridCoreUtils from \"../../grids/grid_core/m_utils\";\r\nexport default _extends(_extends(_extends({}, modules), gridCoreUtils), {\r\n modules: []\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/column_headers.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnHeadersModule\r\n} from \"../../../grids/grid_core/column_headers/m_column_headers\";\r\nimport gridCore from \"../m_core\";\r\nexport var ColumnHeadersView = columnHeadersModule.views.columnHeadersView;\r\ngridCore.registerModule(\"columnHeaders\", columnHeadersModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/const.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var USER_STATE_FIELD_NAMES_15_1 = [\"filterValues\", \"filterType\", \"fixed\", \"fixedPosition\"];\r\nexport var USER_STATE_FIELD_NAMES = [\"visibleIndex\", \"dataField\", \"name\", \"dataType\", \"width\", \"visible\", \"sortOrder\", \"lastSortOrder\", \"sortIndex\", \"groupIndex\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"bufferedSelectedFilterOperation\", \"added\"].concat(USER_STATE_FIELD_NAMES_15_1);\r\nexport var IGNORE_COLUMN_OPTION_NAMES = {\r\n visibleWidth: true,\r\n bestFitWidth: true,\r\n bufferedFilterValue: true\r\n};\r\nexport var COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nexport var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\nexport var GROUP_COMMAND_COLUMN_NAME = \"groupExpand\";\r\nexport var DETAIL_COMMAND_COLUMN_NAME = \"detailExpand\";\r\nexport var COLUMN_OPTION_REGEXP = /columns\\[(\\d+)\\]\\.?/gi;\r\nexport var DEFAULT_COLUMN_OPTIONS = {\r\n visible: true,\r\n showInColumnChooser: true\r\n};\r\nexport 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\nexport 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\nexport var GROUP_LOCATION = \"group\";\r\nexport var COLUMN_CHOOSER_LOCATION = \"columnChooser\";\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/m_columns_controller_utils.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeIndexes\r\n} from \"../../../../core/utils/array\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../../../core/utils/data\";\r\nimport dateSerialization from \"../../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../../../../core/utils/object\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isObject,\r\n isString,\r\n type\r\n} from \"../../../../core/utils/type\";\r\nimport variableWrapper from \"../../../../core/utils/variable_wrapper\";\r\nimport numberLocalization from \"../../../../localization/number\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n COLUMN_CHOOSER_LOCATION,\r\n COLUMN_INDEX_OPTIONS,\r\n DEFAULT_COLUMN_OPTIONS,\r\n GROUP_COMMAND_COLUMN_NAME,\r\n GROUP_LOCATION,\r\n IGNORE_COLUMN_OPTION_NAMES,\r\n USER_STATE_FIELD_NAMES,\r\n USER_STATE_FIELD_NAMES_15_1\r\n} from \"./const\";\r\nexport var setFilterOperationsAsDefaultValues = function(column) {\r\n column.filterOperations = column.defaultFilterOperations\r\n};\r\nvar globalColumnId = 1;\r\nexport var createColumn = function(that, columnOptions, userStateColumnOptions, bandColumn) {\r\n var commonColumnOptions = {};\r\n if (columnOptions) {\r\n if (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 = deepExtendArraySafe(commonColumnOptions, columnOptions)\r\n } else {\r\n commonColumnOptions = that.getCommonSettings(columnOptions);\r\n if (userStateColumnOptions && userStateColumnOptions.name && userStateColumnOptions.dataField) {\r\n columnOptions = 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 = deepExtendArraySafe(result, DEFAULT_COLUMN_OPTIONS);\r\n deepExtendArraySafe(result, commonColumnOptions);\r\n deepExtendArraySafe(result, calculatedColumnOptions);\r\n deepExtendArraySafe(result, columnOptions);\r\n 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\nexport var createColumnsFromOptions = function createColumnsFromOptions(that, columnsOptions, bandColumn) {\r\n var result = [];\r\n if (columnsOptions) {\r\n each(columnsOptions, (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\nexport 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\nexport var getChildrenByBandColumn = function getChildrenByBandColumn(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 (!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\nexport 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\nexport 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 && -1 !== columns.indexOf(column)) {\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\nexport var calculateColspan = function calculateColspan(that, columnID) {\r\n var colspan = 0;\r\n var columns = that.getChildrenByBandColumn(columnID, true);\r\n each(columns, (_, 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\nexport 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 && (!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\nexport var getValueDataType = function(value) {\r\n var dataType = 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\nexport var getSerializationFormat = function(dataType, value) {\r\n switch (dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n return dateSerialization.getDateSerializationFormat(value);\r\n case \"number\":\r\n if (isString(value)) {\r\n return \"string\"\r\n }\r\n if (isNumeric(value)) {\r\n return null\r\n }\r\n }\r\n};\r\nexport var updateSerializers = function(options, dataType) {\r\n if (!options.deserializeValue) {\r\n if (gridCoreUtils.isDateType(dataType)) {\r\n options.deserializeValue = function(value) {\r\n return dateSerialization.deserializeDate(value)\r\n };\r\n options.serializeValue = function(value) {\r\n return isString(value) ? value : dateSerialization.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 isDefined(value) && \"string\" === this.serializationFormat ? value.toString() : value\r\n }\r\n }\r\n }\r\n};\r\nexport 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 getDefaultAlignment(isRTL)\r\n }\r\n};\r\nexport var customizeTextForBooleanDataType = function(e) {\r\n if (true === e.value) {\r\n return this.trueText || \"true\"\r\n }\r\n if (false === e.value) {\r\n return this.falseText || \"false\"\r\n }\r\n return e.valueText || \"\"\r\n};\r\nexport var getCustomizeTextByDataType = function(dataType) {\r\n if (\"boolean\" === dataType) {\r\n return customizeTextForBooleanDataType\r\n }\r\n};\r\nexport 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 (!isFunction(firstItems[i][fieldName]) || variableWrapper.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\nexport var updateColumnIndexes = function(that) {\r\n each(that._columns, (index, column) => {\r\n column.index = index\r\n });\r\n each(that._columns, (index, column) => {\r\n if (isObject(column.ownerBand)) {\r\n column.ownerBand = column.ownerBand.index\r\n }\r\n });\r\n each(that._commandColumns, (index, column) => {\r\n column.index = -(index + 1)\r\n })\r\n};\r\nexport var updateColumnGroupIndexes = function(that, currentColumn) {\r\n normalizeIndexes(that._columns, \"groupIndex\", currentColumn, column => {\r\n var {\r\n grouped: grouped\r\n } = column;\r\n delete column.grouped;\r\n return grouped\r\n })\r\n};\r\nexport var updateColumnSortIndexes = function(that, currentColumn) {\r\n each(that._columns, (index, column) => {\r\n if (isDefined(column.sortIndex) && !isSortOrderValid(column.sortOrder)) {\r\n delete column.sortIndex\r\n }\r\n });\r\n normalizeIndexes(that._columns, \"sortIndex\", currentColumn, column => !isDefined(column.groupIndex) && isSortOrderValid(column.sortOrder))\r\n};\r\nexport var updateColumnVisibleIndexes = function(that, currentColumn) {\r\n var column;\r\n var result = [];\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var bandedColumns = [];\r\n var columns = that._columns.filter(column => !column.command);\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 bandedColumns.push(column)\r\n } else {\r\n result.push(column)\r\n }\r\n }\r\n normalizeIndexes(bandedColumns, \"visibleIndex\", currentColumn);\r\n normalizeIndexes(result, \"visibleIndex\", currentColumn)\r\n};\r\nexport var getColumnIndexByVisibleIndex = function(that, visibleIndex, location) {\r\n var rowIndex = 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 = 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(col => column.type === col.type)[0] || column\r\n }\r\n return column && isDefined(column.index) ? column.index : -1\r\n};\r\nexport 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\nfunction checkUserStateColumn(column, userStateColumn) {\r\n return column && userStateColumn && userStateColumn.name === (column.name || column.dataField) && (userStateColumn.dataField === column.dataField || column.name)\r\n}\r\nexport 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 (ignoreColumnOptionNames.includes(fieldName)) {\r\n continue\r\n }\r\n if (\"dataType\" === fieldName) {\r\n column[fieldName] = column[fieldName] || userStateColumn[fieldName]\r\n } else if (USER_STATE_FIELD_NAMES_15_1.includes(fieldName)) {\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 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 && 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\nexport 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\nexport var resetColumnsCache = function(that) {\r\n that.resetColumnsCache()\r\n};\r\nexport function assignColumns(that, columns) {\r\n that._previousColumns = that._columns;\r\n that._columns = columns;\r\n resetColumnsCache(that);\r\n that.updateColumnDataTypes()\r\n}\r\nexport var updateColumnChanges = function(that, changeType, optionName, columnIndex) {\r\n var _a;\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 {\r\n changeTypes: changeTypes\r\n } = columnChanges;\r\n if (changeType && !changeTypes[changeType]) {\r\n changeTypes[changeType] = true;\r\n changeTypes.length++\r\n }\r\n var {\r\n optionNames: optionNames\r\n } = columnChanges;\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 if (isDefined(columnIndex)) {\r\n null !== (_a = columnChanges.columnIndices) && void 0 !== _a ? _a : columnChanges.columnIndices = [];\r\n if (isDefined(columnChanges.columnIndex)) {\r\n columnChanges.columnIndices.push(columnChanges.columnIndex)\r\n }\r\n columnChanges.columnIndices.push(columnIndex)\r\n }\r\n delete columnChanges.columnIndex\r\n }\r\n that._columnChanges = columnChanges;\r\n resetColumnsCache(that)\r\n};\r\nexport 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 if (that.isInitialized() && !that._updateLockCount && columnChanges) {\r\n if (onColumnsChanging) {\r\n that._updateLockCount++;\r\n onColumnsChanging(extend({\r\n component: that.component\r\n }, columnChanges));\r\n that._updateLockCount--\r\n }\r\n that._columnChanges = void 0;\r\n if (options = columnChanges.optionNames, options && reinitOptionNames.some(name => options[name])) {\r\n that._reinitAfterLookupChanges = null === columnChanges || void 0 === columnChanges ? void 0 : columnChanges.optionNames.lookup;\r\n that.reinit();\r\n that._reinitAfterLookupChanges = void 0\r\n } else {\r\n that.columnsChanged.fire(columnChanges)\r\n }\r\n }\r\n var options\r\n};\r\nexport 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(col => col !== column && isDefined(col.sortIndex));\r\n if (sortedByAnotherColumn) {\r\n sortOrder = void 0\r\n }\r\n }\r\n column.sortOrder = sortOrder\r\n }\r\n};\r\nexport var fireOptionChanged = function(that, options) {\r\n var {\r\n value: value\r\n } = options;\r\n var {\r\n optionName: optionName\r\n } = options;\r\n var {\r\n prevValue: prevValue\r\n } = options;\r\n var {\r\n fullOptionName: fullOptionName\r\n } = options;\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\nexport var columnOptionCore = function(that, column, optionName, value, notFireEvent) {\r\n var optionGetter = 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 (!equalByValue(prevValue, value, {\r\n maxDepth: 5\r\n })) {\r\n if (\"groupIndex\" === optionName || \"calculateGroupValue\" === optionName) {\r\n changeType = \"grouping\";\r\n updateSortOrderWhenGrouping(that, column, value, prevValue)\r\n } else if (\"sortIndex\" === optionName || \"sortOrder\" === optionName || \"calculateSortValue\" === optionName) {\r\n changeType = \"sorting\"\r\n } else {\r\n changeType = \"columns\"\r\n }\r\n var optionSetter = 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 if (!isDefined(prevValue) && !isDefined(value) && 0 !== optionName.indexOf(\"buffer\")) {\r\n notFireEvent = true\r\n }\r\n if (!notFireEvent) {\r\n if (!USER_STATE_FIELD_NAMES.includes(optionName) && \"visibleWidth\" !== optionName) {\r\n columns = that.option(\"columns\");\r\n initialColumn = that.getColumnByPath(fullOptionName, columns);\r\n if (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 fullOptionName && fireOptionChanged(that, {\r\n fullOptionName: fullOptionName,\r\n optionName: optionName,\r\n value: value,\r\n prevValue: prevValue\r\n })\r\n }\r\n};\r\nexport function isSortOrderValid(sortOrder) {\r\n return \"asc\" === sortOrder || \"desc\" === sortOrder\r\n}\r\nexport var addExpandColumn = function(that) {\r\n var options = that._getExpandColumnOptions();\r\n that.addCommandColumn(options)\r\n};\r\nexport var defaultSetCellValue = function(data, value) {\r\n if (!this.dataField) {\r\n return\r\n }\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\nexport var getDataColumns = function getDataColumns(columns, rowIndex, bandColumnID) {\r\n var result = [];\r\n rowIndex = rowIndex || 0;\r\n columns[rowIndex] && each(columns[rowIndex], (_, 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\nexport var getRowCount = function(that) {\r\n var rowCount = 1;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var {\r\n columnParentByIndex: columnParentByIndex\r\n } = bandColumnsCache;\r\n that._columns.forEach(column => {\r\n var parents = getParentBandColumns(column.index, columnParentByIndex);\r\n var invisibleParents = parents.filter(column => !column.visible);\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\nexport var isCustomCommandColumn = (that, commandColumn) => {\r\n var customCommandColumns = that._columns.filter(column => column.type === commandColumn.type);\r\n return !!customCommandColumns.length\r\n};\r\nexport 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\nexport 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(column => column.type === type);\r\n columns.forEach((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 = map(expandColumnsByType, expandColumn => extend({}, expandColumn, {\r\n rowspan: rowspan\r\n }))\r\n }\r\n expandColumnsByType.unshift.apply(expandColumnsByType, isDefined(customColumnIndex) ? [customColumnIndex, 1] : [columnIndex, 0]);\r\n columns.splice.apply(columns, expandColumnsByType);\r\n return rowspan || 1\r\n};\r\nexport 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\nexport var numberToString = function(number, digitsCount) {\r\n var str = number ? number.toString() : \"0\";\r\n while (str.length < digitsCount) {\r\n str = \"0\".concat(str)\r\n }\r\n return str\r\n};\r\nexport var mergeColumns = (that, columns, commandColumns, needToExtend) => {\r\n var column;\r\n var commandColumnIndex;\r\n var result = columns.slice().map(column => extend({}, column));\r\n var isColumnFixing = that._isColumnFixing();\r\n var defaultCommandColumns = commandColumns.slice().map(column => extend({\r\n fixed: isColumnFixing\r\n }, column));\r\n var getCommandColumnIndex = column => commandColumns.reduce((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 var callbackFilter = commandColumn => commandColumn.command !== commandColumns[commandColumnIndex].command;\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] = 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] = 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\nexport var isColumnFixed = (that, column) => isDefined(column.fixed) || !column.type ? column.fixed : that._isColumnFixing();\r\nexport var convertOwnerBandToColumnReference = columns => {\r\n columns.forEach(column => {\r\n if (isDefined(column.ownerBand)) {\r\n column.ownerBand = columns[column.ownerBand]\r\n }\r\n })\r\n};\r\nexport var resetBandColumnsCache = that => {\r\n that._bandColumnsCache = void 0\r\n};\r\nexport var findColumn = (columns, identifier) => {\r\n var identifierOptionName = 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(column => \"\".concat(column[identifierOptionName]) === identifier)[0]\r\n } else {\r\n [\"index\", \"name\", \"dataField\", \"caption\"].some(optionName => {\r\n column = columns.filter(column => column[optionName] === identifier)[0];\r\n return !!column\r\n })\r\n }\r\n return column\r\n};\r\nexport var sortColumns = (columns, sortOrder) => {\r\n if (\"asc\" !== sortOrder && \"desc\" !== sortOrder) {\r\n return columns\r\n }\r\n var sign = \"asc\" === sortOrder ? 1 : -1;\r\n columns.sort((column1, column2) => {\r\n var caption1 = column1.caption || \"\";\r\n var caption2 = column2.caption || \"\";\r\n return sign * caption1.localeCompare(caption2)\r\n });\r\n return columns\r\n};\r\nexport var strictParseNumber = function(text, format) {\r\n var parsedValue = numberLocalization.parse(text);\r\n if (isNumeric(parsedValue)) {\r\n var formattedValue = numberLocalization.format(parsedValue, format);\r\n var formattedValueWithDefaultFormat = numberLocalization.format(parsedValue, \"decimal\");\r\n if (formattedValue === text || formattedValueWithDefaultFormat === text) {\r\n return parsedValue\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/m_columns_controller.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport config from \"../../../../core/config\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n captionize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n orderEach\r\n} from \"../../../../core/utils/object\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isObject,\r\n isPlainObject,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport variableWrapper from \"../../../../core/utils/variable_wrapper\";\r\nimport Store from \"../../../../data/abstract_store\";\r\nimport {\r\n DataSource\r\n} from \"../../../../data/data_source/data_source\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../../../data/data_source/utils\";\r\nimport dateLocalization from \"../../../../localization/date\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport filterUtils from \"../../../../ui/shared/filtering\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n COLUMN_CHOOSER_LOCATION,\r\n COLUMN_OPTION_REGEXP,\r\n COMMAND_EXPAND_CLASS,\r\n DATATYPE_OPERATIONS,\r\n DETAIL_COMMAND_COLUMN_NAME,\r\n GROUP_COMMAND_COLUMN_NAME,\r\n GROUP_LOCATION,\r\n MAX_SAFE_INTEGER,\r\n USER_STATE_FIELD_NAMES\r\n} from \"./const\";\r\nimport {\r\n addExpandColumn,\r\n applyUserState,\r\n assignColumns,\r\n columnOptionCore,\r\n convertOwnerBandToColumnReference,\r\n createColumn,\r\n createColumnsFromDataSource,\r\n createColumnsFromOptions,\r\n defaultSetCellValue,\r\n digitsCount,\r\n findColumn,\r\n fireColumnsChanged,\r\n getAlignmentByDataType,\r\n getChildrenByBandColumn,\r\n getColumnByIndexes,\r\n getColumnIndexByVisibleIndex,\r\n getCustomizeTextByDataType,\r\n getDataColumns,\r\n getFixedPosition,\r\n getParentBandColumns,\r\n getRowCount,\r\n getSerializationFormat,\r\n getValueDataType,\r\n isColumnFixed,\r\n isCustomCommandColumn,\r\n isSortOrderValid,\r\n mergeColumns,\r\n moveColumnToGroup,\r\n numberToString,\r\n processBandColumns,\r\n processExpandColumns,\r\n resetBandColumnsCache,\r\n resetColumnsCache,\r\n setFilterOperationsAsDefaultValues,\r\n sortColumns,\r\n strictParseNumber,\r\n updateColumnChanges,\r\n updateColumnGroupIndexes,\r\n updateIndexes,\r\n updateSerializers\r\n} from \"./m_columns_controller_utils\";\r\nexport class ColumnsController extends modules.Controller {\r\n _getExpandColumnOptions() {\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(dataSource) {\r\n var groupsCount;\r\n var items = [];\r\n if (dataSource && dataSource.items().length > 0) {\r\n groupsCount = gridCoreUtils.normalizeSortingInfo(dataSource.group()).length;\r\n items = 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 }(dataSource.items(), groupsCount) || []\r\n }\r\n return items\r\n }\r\n _endUpdateCore() {\r\n !this._skipProcessingColumnsChange && fireColumnsChanged(this)\r\n }\r\n init(isApplyingUserState) {\r\n var columns = this.option(\"columns\");\r\n this._commandColumns = this._commandColumns || [];\r\n this._columns = this._columns || [];\r\n this._isColumnsFromOptions = !!columns;\r\n if (this._isColumnsFromOptions) {\r\n assignColumns(this, columns ? createColumnsFromOptions(this, columns) : []);\r\n applyUserState(this)\r\n } else {\r\n assignColumns(this, this._columnsUserState ? createColumnsFromOptions(this, this._columnsUserState) : this._columns)\r\n }\r\n addExpandColumn(this);\r\n if (this._dataSourceApplied) {\r\n this.applyDataSource(this._dataSource, true, isApplyingUserState)\r\n } else {\r\n updateIndexes(this)\r\n }\r\n this._checkColumns()\r\n }\r\n callbackNames() {\r\n return [\"columnsChanged\"]\r\n }\r\n getColumnByPath(path, columns) {\r\n var column;\r\n var columnIndexes = [];\r\n path.replace(COLUMN_OPTION_REGEXP, (_, 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((column, index) => column && column.columns && column.columns[index], {\r\n columns: columns\r\n })\r\n } else {\r\n column = getColumnByIndexes(this, columnIndexes)\r\n }\r\n }\r\n return column\r\n }\r\n optionChanged(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 \"columnHidingEnabled\":\r\n case \"dateSerializationFormat\":\r\n case \"columnResizingMode\":\r\n case \"columnMinWidth\":\r\n case \"columnWidth\":\r\n args.handled = true;\r\n var ignoreColumnOptionNames = \"columnWidth\" === args.fullName && [\"width\"];\r\n this.reinit(ignoreColumnOptionNames);\r\n break;\r\n case \"rtlEnabled\":\r\n this.reinit();\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n _columnOptionChanged(args) {\r\n var columnOptionValue = {};\r\n var column = this.getColumnByPath(args.fullName);\r\n var columnOptionName = args.fullName.replace(COLUMN_OPTION_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(args) {\r\n var {\r\n component: component\r\n } = this;\r\n if (\"width\" === args.fullName.replace(COLUMN_OPTION_REGEXP, \"\") && component._updateLockCount) {\r\n component._requireResize = true\r\n }\r\n }\r\n publicMethods() {\r\n return [\"addColumn\", \"deleteColumn\", \"columnOption\", \"columnCount\", \"clearSorting\", \"clearGrouping\", \"getVisibleColumns\", \"getVisibleColumnIndex\"]\r\n }\r\n applyDataSource(dataSource, forceApplying, isApplyingUserState) {\r\n var isDataSourceLoaded = dataSource && dataSource.isLoaded();\r\n this._dataSource = dataSource;\r\n if (!this._dataSourceApplied || 0 === this._dataSourceColumnsCount || forceApplying || this.option(\"regenerateColumnsByVisibleItems\")) {\r\n if (isDataSourceLoaded) {\r\n if (!this._isColumnsFromOptions) {\r\n var columnsFromDataSource = createColumnsFromDataSource(this, dataSource);\r\n if (columnsFromDataSource.length) {\r\n assignColumns(this, columnsFromDataSource);\r\n this._dataSourceColumnsCount = this._columns.length;\r\n applyUserState(this)\r\n }\r\n }\r\n return this.updateColumns(dataSource, forceApplying, isApplyingUserState)\r\n }\r\n this._dataSourceApplied = false;\r\n updateIndexes(this)\r\n } else if (isDataSourceLoaded && !this.isAllDataTypesDefined(true) && this.updateColumnDataTypes(dataSource)) {\r\n updateColumnChanges(this, \"columns\");\r\n fireColumnsChanged(this);\r\n return (new Deferred).reject().promise()\r\n }\r\n }\r\n reset() {\r\n this._dataSource = null;\r\n this._dataSourceApplied = false;\r\n this._dataSourceColumnsCount = void 0;\r\n this.reinit()\r\n }\r\n resetColumnsCache() {\r\n this._visibleColumns = void 0;\r\n this._fixedColumns = void 0;\r\n this._rowCount = void 0;\r\n resetBandColumnsCache(this)\r\n }\r\n reinit(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() {\r\n return !!this._columns.length || !!this.option(\"columns\")\r\n }\r\n isDataSourceApplied() {\r\n return this._dataSourceApplied\r\n }\r\n getCommonSettings(column) {\r\n var _a, _b;\r\n var commonColumnSettings = (!column || !column.type) && this.option(\"commonColumnSettings\") || {};\r\n var groupingOptions = null !== (_a = this.option(\"grouping\")) && void 0 !== _a ? _a : {};\r\n var groupPanelOptions = null !== (_b = this.option(\"groupPanel\")) && void 0 !== _b ? _b : {};\r\n return 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(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(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() {\r\n return this._columns\r\n }\r\n isBandColumnsUsed() {\r\n return this.getColumns().some(column => column.isBand)\r\n }\r\n getGroupColumns() {\r\n var result = [];\r\n each(this._columns, (function() {\r\n if (isDefined(this.groupIndex)) {\r\n result[this.groupIndex] = this\r\n }\r\n }));\r\n return result\r\n }\r\n _shouldReturnVisibleColumns() {\r\n return true\r\n }\r\n _compileVisibleColumns(rowIndex) {\r\n this._visibleColumns = this._visibleColumns || this._compileVisibleColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._visibleColumns.length - 1;\r\n return this._visibleColumns[rowIndex] || []\r\n }\r\n getVisibleColumns(rowIndex, isBase) {\r\n if (!this._shouldReturnVisibleColumns()) {\r\n return []\r\n }\r\n return this._compileVisibleColumns.apply(this, arguments)\r\n }\r\n getFixedColumns(rowIndex) {\r\n this._fixedColumns = this._fixedColumns || this._getFixedColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._fixedColumns.length - 1;\r\n return this._fixedColumns[rowIndex] || []\r\n }\r\n getFilteringColumns() {\r\n return this.getColumns().filter(item => (item.dataField || item.name) && (item.allowFiltering || item.allowHeaderFiltering)).map(item => {\r\n var field = extend(true, {}, item);\r\n if (!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() {\r\n return 0\r\n }\r\n _getFixedColumnsCore() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n var isColumnFixing = this._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 = this.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 (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else if (prevColumn && prevColumn.fixed && getFixedPosition(this, prevColumn) !== getFixedPosition(this, column)) {\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else {\r\n lastFixedPosition = column.fixedPosition\r\n }\r\n }\r\n if (0 === i && (0 === notFixedColumnCount || notFixedColumnCount >= visibleColumns.length)) {\r\n return []\r\n }\r\n if (!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(columns => columns.map(column => {\r\n var newColumn = _extends({}, column);\r\n if (newColumn.headerId) {\r\n newColumn.headerId += \"-fixed\"\r\n }\r\n return newColumn\r\n }))\r\n }\r\n _isColumnFixing() {\r\n var isColumnFixing = this.option(\"columnFixing.enabled\");\r\n !isColumnFixing && each(this._columns, (_, 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() {\r\n return this.getGroupColumns()\r\n }\r\n getExpandColumns() {\r\n var expandColumns = this._getExpandColumnsCore();\r\n var expandColumn;\r\n var firstGroupColumn = expandColumns.filter(column => 0 === column.groupIndex)[0];\r\n var isFixedFirstGroupColumn = firstGroupColumn && firstGroupColumn.fixed;\r\n var isColumnFixing = this._isColumnFixing();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (expandColumns.length) {\r\n expandColumn = this.columnOption(\"command:expand\")\r\n }\r\n expandColumns = map(expandColumns, column => extend({}, column, {\r\n visibleWidth: null,\r\n minWidth: null,\r\n cellTemplate: !isDefined(column.groupIndex) ? column.cellTemplate : null,\r\n headerCellTemplate: null,\r\n fixed: !isDefined(column.groupIndex) || !isFixedFirstGroupColumn ? isColumnFixing : true,\r\n fixedPosition: rtlEnabled ? \"right\" : \"left\"\r\n }, expandColumn, {\r\n index: column.index,\r\n type: column.type || GROUP_COMMAND_COLUMN_NAME\r\n }));\r\n return expandColumns\r\n }\r\n getBandColumnsCache() {\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(column => {\r\n var {\r\n ownerBand: ownerBand\r\n } = column;\r\n var parentIndex = isObject(ownerBand) ? ownerBand.index : 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(column) {\r\n return column.visible && this.isParentColumnVisible(column.index)\r\n }\r\n _isColumnInGroupPanel(column) {\r\n return isDefined(column.groupIndex) && !column.showWhenGrouped\r\n }\r\n hasVisibleDataColumns() {\r\n var columns = this._columns;\r\n return columns.some(column => {\r\n var isVisible = this._isColumnVisible(column);\r\n var isInGroupPanel = this._isColumnInGroupPanel(column);\r\n var isCommand = !!column.command;\r\n return isVisible && !isInGroupPanel && !isCommand\r\n })\r\n }\r\n _compileVisibleColumnsCore() {\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var columns = mergeColumns(this, this._columns, this._commandColumns, true);\r\n processBandColumns(this, columns, bandColumnsCache);\r\n var indexedColumns = this._getIndexedColumns(columns);\r\n var visibleColumns = this._getVisibleColumnsFromIndexed(indexedColumns);\r\n var isDataColumnsInvisible = !this.hasVisibleDataColumns();\r\n if (isDataColumnsInvisible && this._columns.length) {\r\n visibleColumns[visibleColumns.length - 1].push({\r\n command: \"empty\"\r\n })\r\n }\r\n return visibleColumns\r\n }\r\n _getIndexedColumns(columns) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var rowCount = this.getRowCount();\r\n var columnDigitsCount = digitsCount(columns.length);\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var positiveIndexedColumns = [];\r\n var negativeIndexedColumns = [];\r\n for (var i = 0; i < rowCount; i += 1) {\r\n negativeIndexedColumns[i] = [{}];\r\n positiveIndexedColumns[i] = [{}, {}, {}]\r\n }\r\n columns.forEach(column => {\r\n var _a, _b, _c, _d;\r\n var {\r\n visibleIndex: visibleIndex\r\n } = column;\r\n var indexedColumns;\r\n var parentBandColumns = getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex);\r\n var isVisible = this._isColumnVisible(column);\r\n var isInGroupPanel = this._isColumnInGroupPanel(column);\r\n if (isVisible && !isInGroupPanel) {\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 = null !== (_b = null === (_a = parentBandColumns[0]) || void 0 === _a ? void 0 : _a.fixed) && void 0 !== _b ? _b : column.fixed;\r\n column.fixedPosition = null !== (_d = null === (_c = parentBandColumns[0]) || void 0 === _c ? void 0 : _c.fixedPosition) && void 0 !== _d ? _d : column.fixedPosition;\r\n if (column.fixed) {\r\n var isDefaultCommandColumn = !!column.command && !isCustomCommandColumn(this, column);\r\n var isFixedToEnd = \"right\" === column.fixedPosition;\r\n if (rtlEnabled && !isDefaultCommandColumn) {\r\n isFixedToEnd = !isFixedToEnd\r\n }\r\n indexedColumns = isFixedToEnd ? positiveIndexedColumns[rowIndex][2] : positiveIndexedColumns[rowIndex][0]\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 (var _i = parentBandColumns.length - 1; _i >= 0; _i -= 1) {\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 }\r\n });\r\n return {\r\n positiveIndexedColumns: positiveIndexedColumns,\r\n negativeIndexedColumns: negativeIndexedColumns\r\n }\r\n }\r\n _getVisibleColumnsFromIndexed(_ref) {\r\n var _this = this;\r\n var {\r\n positiveIndexedColumns: positiveIndexedColumns,\r\n negativeIndexedColumns: negativeIndexedColumns\r\n } = _ref;\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n var expandColumns = mergeColumns(this, this.getExpandColumns(), this._columns);\r\n var rowspanGroupColumns = 0;\r\n var rowspanExpandColumns = 0;\r\n var _loop = function(rowIndex) {\r\n result.push([]);\r\n orderEach(negativeIndexedColumns[rowIndex], (_, columns) => {\r\n result[rowIndex].unshift.apply(result[rowIndex], columns)\r\n });\r\n var firstPositiveIndexColumn = result[rowIndex].length;\r\n var positiveIndexedRowColumns = positiveIndexedColumns[rowIndex];\r\n positiveIndexedRowColumns.forEach(columnsByFixing => {\r\n orderEach(columnsByFixing, (_, columnsByVisibleIndex) => {\r\n result[rowIndex].push.apply(result[rowIndex], columnsByVisibleIndex)\r\n })\r\n });\r\n if (rowspanExpandColumns <= rowIndex) {\r\n rowspanExpandColumns += processExpandColumns.call(_this, result[rowIndex], expandColumns, DETAIL_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n if (rowspanGroupColumns <= rowIndex) {\r\n rowspanGroupColumns += processExpandColumns.call(_this, result[rowIndex], expandColumns, GROUP_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n };\r\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\r\n _loop(rowIndex)\r\n }\r\n result.push(getDataColumns(result));\r\n return result\r\n }\r\n getInvisibleColumns(columns, bandColumnIndex) {\r\n var that = this;\r\n var result = [];\r\n var hiddenColumnsByBand;\r\n columns = columns || that._columns;\r\n each(columns, (_, 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(getAllColumns) {\r\n var columns = getAllColumns ? this.getColumns() : this.getInvisibleColumns();\r\n var columnChooserColumns = columns.filter(column => column.showInColumnChooser);\r\n var sortOrder = this.option(\"columnChooser.sortOrder\");\r\n return sortColumns(columnChooserColumns, sortOrder)\r\n }\r\n allowMoveColumn(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var columnIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var sourceColumn = this._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 = isObject(fromVisibleIndex) ? fromVisibleIndex.columnIndex : fromVisibleIndex;\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n return fromVisibleIndex !== toVisibleIndex && fromVisibleIndex + 1 !== toVisibleIndex\r\n }\r\n if (sourceLocation === GROUP_LOCATION && targetLocation !== COLUMN_CHOOSER_LOCATION || targetLocation === GROUP_LOCATION) {\r\n return sourceColumn && sourceColumn.allowGrouping\r\n }\r\n if (sourceLocation === COLUMN_CHOOSER_LOCATION || targetLocation === COLUMN_CHOOSER_LOCATION) {\r\n return sourceColumn && sourceColumn.allowHiding\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n moveColumn(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var options = {};\r\n var prevGroupIndex;\r\n var fromIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var toIndex = getColumnIndexByVisibleIndex(this, toVisibleIndex, targetLocation);\r\n var targetGroupIndex;\r\n if (fromIndex >= 0) {\r\n var column = this._columns[fromIndex];\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n targetGroupIndex = toIndex >= 0 ? this._columns[toIndex].groupIndex : -1;\r\n if (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(this)\r\n }\r\n }\r\n if (targetLocation === GROUP_LOCATION) {\r\n options.groupIndex = moveColumnToGroup(this, column, targetGroupIndex);\r\n column.groupIndex = prevGroupIndex\r\n } else if (toVisibleIndex >= 0) {\r\n var targetColumn = this._columns[toIndex];\r\n if (!targetColumn || column.ownerBand !== targetColumn.ownerBand) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else if (isColumnFixed(this, column) ^ isColumnFixed(this, targetColumn)) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else {\r\n options.visibleIndex = targetColumn.visibleIndex\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 this.columnOption(column.index, options)\r\n }\r\n }\r\n changeSortOrder(columnIndex, sortOrder) {\r\n var options = {};\r\n var sortingOptions = this.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 = this._columns[columnIndex];\r\n if (allowSorting && column && column.allowSorting) {\r\n if (needResetSorting && !isDefined(column.groupIndex)) {\r\n each(this._columns, (function(index) {\r\n if (index !== columnIndex && this.sortOrder) {\r\n if (!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 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 ! 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 if (isDefined(column.groupIndex) || isDefined(column.sortIndex)) {\r\n options.sortOrder = \"desc\" === column.sortOrder ? \"asc\" : \"desc\"\r\n } else {\r\n options.sortOrder = \"asc\"\r\n }\r\n return true\r\n }(column)\r\n }\r\n }\r\n this.columnOption(column.index, options)\r\n }\r\n getSortDataSourceParameters(useLocalSelector) {\r\n var sortColumns = [];\r\n var sort = [];\r\n each(this._columns, (function() {\r\n if ((this.dataField || this.selector || this.calculateCellValue) && isDefined(this.sortIndex) && !isDefined(this.groupIndex)) {\r\n sortColumns[this.sortIndex] = this\r\n }\r\n }));\r\n 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(useLocalSelector) {\r\n var group = [];\r\n 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(updateNewLookupsOnly) {\r\n var deferreds = [];\r\n each(this._columns, (function() {\r\n var {\r\n lookup: lookup\r\n } = this;\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 when.apply($, deferreds).done(resetColumnsCache.bind(null, this))\r\n }\r\n _updateColumnOptions(column, columnIndex) {\r\n column.selector = column.selector || function(data) {\r\n return column.calculateCellValue(data)\r\n };\r\n if (this._reinitAfterLookupChanges && this._previousColumns) {\r\n column.selector.columnIndex = columnIndex;\r\n column.selector.originalCallback = this._previousColumns[columnIndex].selector.originalCallback\r\n } else {\r\n column.selector.columnIndex = columnIndex;\r\n column.selector.originalCallback = column.selector\r\n }\r\n each([\"calculateSortValue\", \"calculateGroupValue\", \"calculateDisplayValue\"], (_, calculateCallbackName) => {\r\n var calculateCallback = column[calculateCallbackName];\r\n if (isFunction(calculateCallback)) {\r\n if (!calculateCallback.originalCallback) {\r\n var context = {\r\n column: column\r\n };\r\n column[calculateCallbackName] = function(data) {\r\n return calculateCallback.call(context.column, data)\r\n };\r\n column[calculateCallbackName].originalCallback = calculateCallback;\r\n column[calculateCallbackName].columnIndex = columnIndex;\r\n column[calculateCallbackName].context = context\r\n } else {\r\n column[calculateCallbackName].context.column = column\r\n }\r\n }\r\n });\r\n if (isString(column.calculateDisplayValue)) {\r\n column.displayField = column.calculateDisplayValue;\r\n column.calculateDisplayValue = 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 {\r\n lookup: lookup\r\n } = column;\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 || gridCoreUtils.getFormatByDataType(dataType);\r\n column.customizeText = column.customizeText || getCustomizeTextByDataType(dataType);\r\n column.defaultFilterOperations = column.defaultFilterOperations || !lookup && DATATYPE_OPERATIONS[dataType] || [];\r\n if (!isDefined(column.filterOperations)) {\r\n setFilterOperationsAsDefaultValues(column)\r\n }\r\n column.defaultFilterOperation = column.filterOperations && column.filterOperations[0] || \"=\";\r\n column.showEditorAlways = isDefined(column.showEditorAlways) ? column.showEditorAlways : \"boolean\" === dataType && !column.cellTemplate && !column.lookup\r\n }\r\n }\r\n updateColumnDataTypes(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 each(that._columns, (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 {\r\n lookup: lookup\r\n } = column;\r\n if (gridCoreUtils.isDateType(column.dataType) && void 0 === column.serializationFormat) {\r\n column.serializationFormat = dateSerializationFormat\r\n }\r\n if (lookup && gridCoreUtils.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(gridCoreUtils.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(columns) {\r\n var customizeColumns = this.option(\"customizeColumns\");\r\n if (customizeColumns) {\r\n var hasOwnerBand = columns.some(column => isObject(column.ownerBand));\r\n if (hasOwnerBand) {\r\n updateIndexes(this)\r\n }\r\n customizeColumns(columns);\r\n assignColumns(this, createColumnsFromOptions(this, columns))\r\n }\r\n }\r\n updateColumns(dataSource, forceApplying, isApplyingUserState) {\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 if (!isApplyingUserState) {\r\n this._customizeColumns(this._columns)\r\n }\r\n updateIndexes(this);\r\n var columns = this._columns;\r\n return when(this.refresh(true)).always(() => {\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(dataSource, parameters) {\r\n if (dataSource) {\r\n this.updateColumnDataTypes(dataSource);\r\n this._dataSourceApplied = true\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.sorting, this.getSortDataSourceParameters())) {\r\n updateColumnChanges(this, \"sorting\")\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.grouping, this.getGroupDataSourceParameters())) {\r\n updateColumnChanges(this, \"grouping\")\r\n }\r\n var dataController = this.getController(\"data\");\r\n if (dataController && !gridCoreUtils.equalFilterParameters(parameters.filtering, dataController.getCombinedFilter())) {\r\n updateColumnChanges(this, \"filtering\")\r\n }\r\n updateColumnChanges(this, \"columns\")\r\n }\r\n updateSortingGrouping(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 each(columns, (index, column) => {\r\n delete column[indexParameterName];\r\n if (sortParameters) {\r\n for (var i = 0; i < sortParameters.length; i++) {\r\n var {\r\n selector: selector\r\n } = sortParameters[i];\r\n var {\r\n isExpanded: isExpanded\r\n } = sortParameters[i];\r\n if (selector === column.dataField || selector === column.name || selector === column.selector || selector === column.calculateCellValue || selector === column.calculateGroupValue || selector === column.calculateDisplayValue) {\r\n if (fromDataSource) {\r\n column.sortOrder = \"sortOrder\" in column ? column.sortOrder : sortParameters[i].desc ? \"desc\" : \"asc\"\r\n } else {\r\n column.sortOrder = column.sortOrder || (sortParameters[i].desc ? \"desc\" : \"asc\")\r\n }\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 = gridCoreUtils.normalizeSortingInfo(dataSource.sort());\r\n var groupParameters = gridCoreUtils.normalizeSortingInfo(dataSource.group());\r\n var columnsGroupParameters = that.getGroupDataSourceParameters();\r\n var columnsSortParameters = that.getSortDataSourceParameters();\r\n var groupingChanged = !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters, true);\r\n var groupExpandingChanged = !groupingChanged && !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters);\r\n if (!that._columns.length) {\r\n each(groupParameters, (index, group) => {\r\n that._columns.push(group.selector)\r\n });\r\n each(sortParameters, (index, sort) => {\r\n if (!isFunction(sort.selector)) {\r\n that._columns.push(sort.selector)\r\n }\r\n });\r\n assignColumns(that, createColumnsFromOptions(that, that._columns))\r\n }\r\n if ((fromDataSource || !columnsGroupParameters && !that._hasUserState) && (groupingChanged || groupExpandingChanged)) {\r\n updateSortGroupParameterIndexes(that._columns, groupParameters, \"groupIndex\");\r\n if (fromDataSource) {\r\n groupingChanged && updateColumnChanges(that, \"grouping\");\r\n groupExpandingChanged && updateColumnChanges(that, \"groupExpanding\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if ((fromDataSource || !columnsSortParameters && !that._hasUserState) && !gridCoreUtils.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(filter, remoteFiltering, columnIndex, filterValue) {\r\n if (!Array.isArray(filter)) {\r\n return filter\r\n }\r\n filter = 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 (isString(filter[0]) && \"!\" !== filter[0]) {\r\n var column = this.columnOption(filter[0]);\r\n if (remoteFiltering) {\r\n if (config().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 if (column && column.selector) {\r\n filter[0] = column.selector;\r\n filter[0].columnIndex = column.index\r\n }\r\n } else if (isFunction(filter[0])) {\r\n filter[0].columnIndex = columnIndex;\r\n filter[0].filterValue = filterValue;\r\n filter[0].selectedFilterOperation = filter.selectedFilterOperation\r\n }\r\n for (var i = 0; i < filter.length; i++) {\r\n filter[i] = this.updateFilter(filter[i], remoteFiltering, columnIndex, filterValue)\r\n }\r\n return filter\r\n }\r\n columnCount() {\r\n return this._columns ? this._columns.length : 0\r\n }\r\n columnOption(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 extend({}, column)\r\n }\r\n if (isString(option)) {\r\n if (2 === arguments.length) {\r\n return columnOptionCore(that, column, option)\r\n }\r\n columnOptionCore(that, column, option, value, notFireEvent)\r\n } else if (isObject(option)) {\r\n each(option, (optionName, value) => {\r\n columnOptionCore(that, column, optionName, value, notFireEvent)\r\n })\r\n }\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n clearSorting() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"sortOrder\", void 0);\r\n delete findColumn(this._columns, i).sortOrder\r\n }\r\n this.endUpdate()\r\n }\r\n clearGrouping() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"groupIndex\", void 0)\r\n }\r\n this.endUpdate()\r\n }\r\n getVisibleIndex(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(column, rowIndex) {\r\n var visibleColumns = this.getVisibleColumns(rowIndex);\r\n var visibleColumn = visibleColumns.filter(col => col.index === column.index && col.command === column.command)[0];\r\n return visibleColumns.indexOf(visibleColumn)\r\n }\r\n getVisibleColumnIndex(id, rowIndex) {\r\n var index = this.columnOption(id, \"index\");\r\n return this.getVisibleIndex(index, rowIndex)\r\n }\r\n addColumn(options) {\r\n var column = createColumn(this, options);\r\n var index = this._columns.length;\r\n this._columns.push(column);\r\n if (column.isBand) {\r\n this._columns = createColumnsFromOptions(this, this._columns);\r\n column = this._columns[index]\r\n }\r\n column.added = options;\r\n updateIndexes(this, column);\r\n this.updateColumns(this._dataSource);\r\n this._checkColumns()\r\n }\r\n deleteColumn(id) {\r\n var column = this.columnOption(id);\r\n if (column && column.index >= 0) {\r\n convertOwnerBandToColumnReference(this._columns);\r\n this._columns.splice(column.index, 1);\r\n if (column.isBand) {\r\n var childIndexes = this.getChildrenByBandColumn(column.index).map(column => column.index);\r\n this._columns = this._columns.filter(column => childIndexes.indexOf(column.index) < 0)\r\n }\r\n updateIndexes(this);\r\n this.updateColumns(this._dataSource)\r\n }\r\n }\r\n addCommandColumn(options) {\r\n var commandColumn = this._commandColumns.filter(column => column.command === options.command)[0];\r\n if (!commandColumn) {\r\n commandColumn = options;\r\n this._commandColumns.push(commandColumn)\r\n }\r\n }\r\n getUserState() {\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 each(USER_STATE_FIELD_NAMES, handleStateField)\r\n }\r\n return result\r\n }\r\n setName(column) {\r\n column.name = column.name || column.dataField || column.type\r\n }\r\n setUserState(state) {\r\n var dataSource = this._dataSource;\r\n var ignoreColumnOptionNames = this.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 = this.getCommonSettings();\r\n if (!this.option(\"columnChooser.enabled\")) {\r\n ignoreColumnOptionNames.push(\"visible\")\r\n }\r\n if (\"none\" === this.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 = !this.option(\"filterPanel.visible\");\r\n if (!this.option(\"filterRow.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValue\", \"selectedFilterOperation\")\r\n }\r\n if (!this.option(\"headerFilter.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValues\", \"filterType\")\r\n }\r\n }\r\n this._columnsUserState = state;\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames;\r\n this._hasUserState = !!state;\r\n updateColumnChanges(this, \"filtering\");\r\n this.init(true);\r\n if (dataSource) {\r\n dataSource.sort(this.getSortDataSourceParameters());\r\n dataSource.group(this.getGroupDataSourceParameters())\r\n }\r\n }\r\n _checkColumns() {\r\n var usedNames = {};\r\n var hasEditableColumnWithoutName = false;\r\n var duplicatedNames = [];\r\n this._columns.forEach(column => {\r\n var _a;\r\n var {\r\n name: name\r\n } = column;\r\n var isBand = null === (_a = column.columns) || void 0 === _a ? void 0 : _a.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 if (isEditable) {\r\n hasEditableColumnWithoutName = true\r\n }\r\n });\r\n if (duplicatedNames.length) {\r\n errors.log(\"E1059\", duplicatedNames.join(\", \"))\r\n }\r\n if (hasEditableColumnWithoutName) {\r\n errors.log(\"E1060\")\r\n }\r\n }\r\n _createCalculatedColumnOptions(columnOptions, bandColumn) {\r\n var calculatedColumnOptions = {};\r\n var {\r\n dataField: dataField\r\n } = columnOptions;\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 (isString(dataField)) {\r\n var getter = compileGetter(dataField);\r\n calculatedColumnOptions = {\r\n caption: captionize(dataField),\r\n calculateCellValue(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(text) {\r\n var result;\r\n var parsedValue;\r\n if (\"number\" === this.dataType) {\r\n if (isString(text) && this.format) {\r\n result = strictParseNumber(text.trim(), this.format)\r\n } else if (isDefined(text) && isNumeric(text)) {\r\n result = Number(text)\r\n }\r\n } else if (\"boolean\" === this.dataType) {\r\n if (text === this.trueText) {\r\n result = true\r\n } else if (text === this.falseText) {\r\n result = false\r\n }\r\n } else if (gridCoreUtils.isDateType(this.dataType)) {\r\n parsedValue = dateLocalization.parse(text, this.format);\r\n if (parsedValue) {\r\n result = parsedValue\r\n }\r\n } else {\r\n result = text\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 filterUtils.defaultCalculateFilterExpression.apply(this, arguments)\r\n };\r\n calculatedColumnOptions.defaultFilterOperation = \"=\";\r\n calculatedColumnOptions.createFilterExpression = function(filterValue, selectedFilterOperation) {\r\n var result;\r\n if (this.calculateFilterExpression) {\r\n result = this.calculateFilterExpression.apply(this, arguments)\r\n }\r\n if (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 result.selectedFilterOperation = selectedFilterOperation\r\n }\r\n return result\r\n };\r\n if (!dataField || !isString(dataField)) {\r\n extend(true, calculatedColumnOptions, {\r\n allowSorting: false,\r\n allowGrouping: false,\r\n calculateCellValue: () => null\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(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() {\r\n this.valueMap = {};\r\n if (this.items) {\r\n var calculateValue = compileGetter(this.valueExpr);\r\n var calculateDisplayValue = 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() {\r\n var that = this;\r\n var {\r\n dataSource: dataSource\r\n } = that;\r\n if (dataSource) {\r\n if (isFunction(dataSource) && !variableWrapper.isWrapped(dataSource)) {\r\n dataSource = dataSource({})\r\n }\r\n if (isPlainObject(dataSource) || dataSource instanceof Store || Array.isArray(dataSource)) {\r\n if (that.valueExpr) {\r\n var dataSourceOptions = normalizeDataSourceOptions(dataSource);\r\n dataSourceOptions.paginate = false;\r\n dataSource = new DataSource(dataSourceOptions);\r\n return dataSource.load().done(data => {\r\n that.items = data;\r\n that.updateValueMap && that.updateValueMap()\r\n })\r\n }\r\n } else {\r\n errors.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 = Callbacks();\r\n if (columnOptions.resized) {\r\n calculatedColumnOptions.resizedCallbacks.add(columnOptions.resized.bind(columnOptions))\r\n }\r\n each(calculatedColumnOptions, optionName => {\r\n if (isFunction(calculatedColumnOptions[optionName]) && 0 !== optionName.indexOf(\"default\")) {\r\n var defaultOptionName = \"default\".concat(optionName.charAt(0).toUpperCase()).concat(optionName.substr(1));\r\n calculatedColumnOptions[defaultOptionName] = calculatedColumnOptions[optionName]\r\n }\r\n });\r\n return calculatedColumnOptions\r\n }\r\n getRowCount() {\r\n this._rowCount = this._rowCount || getRowCount(this);\r\n return this._rowCount\r\n }\r\n getRowIndex(columnIndex, alwaysGetRowIndex) {\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n return column && (alwaysGetRowIndex || column.visible && !(column.command || isDefined(column.groupIndex))) ? getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex).length : 0\r\n }\r\n getChildrenByBandColumn(bandColumnIndex, onlyVisibleDirectChildren) {\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var result = getChildrenByBandColumn(bandColumnIndex, bandColumnsCache.columnChildrenByIndex, !onlyVisibleDirectChildren);\r\n if (onlyVisibleDirectChildren) {\r\n return result.filter(column => column.visible && !column.command).sort((column1, column2) => column1.visibleIndex - column2.visibleIndex)\r\n }\r\n return result\r\n }\r\n isParentBandColumn(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 each(parentBandColumns, (_, 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(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 && each(bandColumns, (_, bandColumn) => {\r\n result = result && bandColumn.visible;\r\n return result\r\n });\r\n return result\r\n }\r\n getColumnId(column) {\r\n if (column.command && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (isCustomCommandColumn(this, column)) {\r\n return \"type:\".concat(column.type)\r\n }\r\n return \"command:\".concat(column.command)\r\n }\r\n return column.index\r\n }\r\n getCustomizeTextByDataType(dataType) {\r\n return getCustomizeTextByDataType(dataType)\r\n }\r\n getHeaderContentAlignment(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\nexport var columnsControllerModule = {\r\n defaultOptions: () => ({\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: messageLocalization.format(\"dxDataGrid-trueText\"),\r\n falseText: messageLocalization.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 controllers: {\r\n columns: ColumnsController\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_columns_controller.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n columnsControllerModule\r\n} from \"../../grids/grid_core/columns_controller/m_columns_controller\";\r\nimport gridCore from \"./m_core\";\r\ngridCore.registerModule(\"columns\", {\r\n defaultOptions: () => extend(true, {}, columnsControllerModule.defaultOptions(), {\r\n commonColumnSettings: {\r\n allowExporting: true\r\n }\r\n }),\r\n controllers: columnsControllerModule.controllers\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/data_controller/m_data_controller.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n findChanges\r\n} from \"../../../../core/utils/array_compare\";\r\nimport {\r\n deferRender,\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport ArrayStore from \"../../../../data/array_store\";\r\nimport CustomStore from \"../../../../data/custom_store\";\r\nimport DataHelperMixin from \"../../../../data_helper\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar changePaging = function(that, optionName, value) {\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (void 0 !== value) {\r\n var oldValue = that._getPagingOptionValue(optionName);\r\n if (oldValue !== value) {\r\n if (\"pageSize\" === optionName) {\r\n dataSource.pageIndex(0)\r\n }\r\n dataSource[optionName](value);\r\n that._skipProcessingPagingChange = true;\r\n that.option(\"paging.\".concat(optionName), value);\r\n that._skipProcessingPagingChange = false;\r\n var pageIndex = dataSource.pageIndex();\r\n that._isPaging = \"pageIndex\" === optionName;\r\n return dataSource[\"pageIndex\" === optionName ? \"load\" : \"reload\"]().done(() => {\r\n that._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n return Deferred().resolve().promise()\r\n }\r\n return dataSource[optionName]()\r\n }\r\n return 0\r\n};\r\nvar ControllerWithDataMixin = modules.Controller.inherit(DataHelperMixin);\r\nexport class DataController extends ControllerWithDataMixin {\r\n init() {\r\n var that = this;\r\n that._items = [];\r\n that._cachedProcessedItems = null;\r\n that._columnsController = this.getController(\"columns\");\r\n that._isPaging = false;\r\n that._currentOperationTypes = null;\r\n that._dataChangedHandler = e => {\r\n that._currentOperationTypes = this._dataSource.operationTypes();\r\n that._handleDataChanged(e);\r\n that._currentOperationTypes = null\r\n };\r\n that._columnsChangedHandler = that._handleColumnsChanged.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n that._dataPushedHandler = that._handleDataPushed.bind(that);\r\n that._columnsController.columnsChanged.add(that._columnsChangedHandler);\r\n that._isLoading = false;\r\n that._isCustomLoading = false;\r\n that._repaintChangesOnly = void 0;\r\n that._changes = [];\r\n that.createAction(\"onDataErrorOccurred\");\r\n that.dataErrorOccurred.add(error => that.executeAction(\"onDataErrorOccurred\", {\r\n error: error\r\n }));\r\n that._refreshDataSource()\r\n }\r\n _getPagingOptionValue(optionName) {\r\n return this._dataSource[optionName]()\r\n }\r\n callbackNames() {\r\n return [\"changed\", \"loadingChanged\", \"dataErrorOccurred\", \"pageChanged\", \"dataSourceChanged\", \"pushed\"]\r\n }\r\n callbackFlags(name) {\r\n if (\"dataErrorOccurred\" === name) {\r\n return {\r\n stopOnFalse: true\r\n }\r\n }\r\n return\r\n }\r\n publicMethods() {\r\n return [\"beginCustomLoading\", \"endCustomLoading\", \"refresh\", \"filter\", \"clearFilter\", \"getCombinedFilter\", \"keyOf\", \"byKey\", \"getDataByKeys\", \"pageIndex\", \"pageSize\", \"pageCount\", \"totalCount\", \"_disposeDataSource\", \"getKeyByRowIndex\", \"getRowIndexByKey\", \"getDataSource\", \"getVisibleRows\", \"repaintRows\"]\r\n }\r\n reset() {\r\n this._columnsController.reset();\r\n this._items = [];\r\n this._refreshDataSource()\r\n }\r\n _handleDataSourceChange(args) {\r\n if (args.value === args.previousValue || this.option(\"columns\") && Array.isArray(args.value) && Array.isArray(args.previousValue)) {\r\n var isValueChanged = args.value !== args.previousValue;\r\n if (isValueChanged) {\r\n var store = this.store();\r\n if (store) {\r\n store._array = args.value\r\n }\r\n }\r\n if (this.needToRefreshOnDataSourceChange(args)) {\r\n this.refresh(this.option(\"repaintChangesOnly\"))\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n needToRefreshOnDataSourceChange(args) {\r\n return true\r\n }\r\n optionChanged(args) {\r\n var that = this;\r\n var dataSource;\r\n var changedPagingOptions;\r\n\r\n function handled() {\r\n args.handled = true\r\n }\r\n if (\"dataSource\" === args.name && args.name === args.fullName && this._handleDataSourceChange(args)) {\r\n handled();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"cacheEnabled\":\r\n case \"repaintChangesOnly\":\r\n case \"highlightChanges\":\r\n case \"loadingTimeout\":\r\n handled();\r\n break;\r\n case \"remoteOperations\":\r\n case \"keyExpr\":\r\n case \"dataSource\":\r\n case \"scrolling\":\r\n handled();\r\n that.reset();\r\n break;\r\n case \"paging\":\r\n dataSource = that.dataSource();\r\n if (dataSource) {\r\n changedPagingOptions = that._setPagingOptions(dataSource);\r\n if (changedPagingOptions) {\r\n var pageIndex = dataSource.pageIndex();\r\n this._isPaging = changedPagingOptions.isPageIndexChanged;\r\n dataSource.load().done(() => {\r\n this._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n }\r\n handled();\r\n break;\r\n case \"rtlEnabled\":\r\n that.reset();\r\n break;\r\n case \"columns\":\r\n dataSource = that.dataSource();\r\n if (dataSource && dataSource.isLoading() && args.name === args.fullName) {\r\n this._useSortingGroupingFromColumns = true;\r\n dataSource.load()\r\n }\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n isReady() {\r\n return !this._isLoading\r\n }\r\n getDataSource() {\r\n return this._dataSource && this._dataSource._dataSource\r\n }\r\n getCombinedFilter(returnDataField) {\r\n return this.combinedFilter(void 0, returnDataField)\r\n }\r\n combinedFilter(filter, returnDataField) {\r\n if (!this._dataSource) {\r\n return filter\r\n }\r\n var combinedFilter = null !== filter && void 0 !== filter ? filter : this._dataSource.filter();\r\n var isColumnsTypesDefined = this._columnsController.isDataSourceApplied() || this._columnsController.isAllDataTypesDefined();\r\n if (isColumnsTypesDefined) {\r\n var additionalFilter = this._calculateAdditionalFilter();\r\n combinedFilter = additionalFilter ? gridCoreUtils.combineFilters([additionalFilter, combinedFilter]) : combinedFilter\r\n }\r\n var isRemoteFiltering = this._dataSource.remoteOperations().filtering || returnDataField;\r\n combinedFilter = this._columnsController.updateFilter(combinedFilter, isRemoteFiltering);\r\n return combinedFilter\r\n }\r\n waitReady() {\r\n if (this._updateLockCount) {\r\n this._readyDeferred = new Deferred;\r\n return this._readyDeferred\r\n }\r\n return when()\r\n }\r\n _endUpdateCore() {\r\n var changes = this._changes;\r\n if (changes.length) {\r\n this._changes = [];\r\n var repaintChangesOnly = changes.every(change => change.repaintChangesOnly);\r\n this.updateItems(1 === changes.length ? changes[0] : {\r\n repaintChangesOnly: repaintChangesOnly\r\n })\r\n }\r\n if (this._readyDeferred) {\r\n this._readyDeferred.resolve();\r\n this._readyDeferred = null\r\n }\r\n }\r\n _handleCustomizeStoreLoadOptions(e) {\r\n var _a;\r\n var columnsController = this._columnsController;\r\n var dataSource = this._dataSource;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = e;\r\n if (e.isCustomLoading && !storeLoadOptions.isLoadingAll) {\r\n return\r\n }\r\n storeLoadOptions.filter = this.combinedFilter(storeLoadOptions.filter);\r\n if (1 === (null === (_a = storeLoadOptions.filter) || void 0 === _a ? void 0 : _a.length) && \"!\" === storeLoadOptions.filter[0]) {\r\n e.data = [];\r\n e.extra = e.extra || {};\r\n e.extra.totalCount = 0\r\n }\r\n if (!columnsController.isDataSourceApplied()) {\r\n columnsController.updateColumnDataTypes(dataSource)\r\n }\r\n this._columnsUpdating = true;\r\n columnsController.updateSortingGrouping(dataSource, !this._useSortingGroupingFromColumns);\r\n this._columnsUpdating = false;\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters();\r\n storeLoadOptions.group = columnsController.getGroupDataSourceParameters();\r\n dataSource.sort(storeLoadOptions.sort);\r\n dataSource.group(storeLoadOptions.group);\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters(!dataSource.remoteOperations().sorting);\r\n e.group = columnsController.getGroupDataSourceParameters(!dataSource.remoteOperations().grouping)\r\n }\r\n _handleColumnsChanged(e) {\r\n var that = this;\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n var filterValue;\r\n var filterValues;\r\n var filterApplied;\r\n if (changeTypes.sorting || changeTypes.grouping) {\r\n if (that._dataSource && !that._columnsUpdating) {\r\n that._dataSource.group(that._columnsController.getGroupDataSourceParameters());\r\n that._dataSource.sort(that._columnsController.getSortDataSourceParameters());\r\n that.reload()\r\n }\r\n } else if (changeTypes.columns) {\r\n filterValues = that._columnsController.columnOption(e.columnIndex, \"filterValues\");\r\n if (optionNames.filterValues || optionNames.filterType && Array.isArray(filterValues) || optionNames.filterValue || optionNames.selectedFilterOperation || optionNames.allowFiltering) {\r\n filterValue = that._columnsController.columnOption(e.columnIndex, \"filterValue\");\r\n if (Array.isArray(filterValues) || void 0 === e.columnIndex || isDefined(filterValue) || !optionNames.selectedFilterOperation || optionNames.filterValue) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n if (!that._needApplyFilter && !gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"filterValues\", \"filterType\"])) {\r\n that._columnsController.columnsChanged.add((function updateItemsHandler(change) {\r\n var _a;\r\n that._columnsController.columnsChanged.remove(updateItemsHandler);\r\n that.updateItems({\r\n repaintChangesOnly: false,\r\n virtualColumnsScrolling: null === (_a = null === change || void 0 === change ? void 0 : change.changeTypes) || void 0 === _a ? void 0 : _a.virtualColumnsScrolling\r\n })\r\n }))\r\n }\r\n if (isDefined(optionNames.visible)) {\r\n var column = that._columnsController.columnOption(e.columnIndex);\r\n if (column && (isDefined(column.filterValue) || isDefined(column.filterValues))) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n }\r\n if (!filterApplied && changeTypes.filtering) {\r\n that.reload()\r\n }\r\n }\r\n _handleDataChanged(e) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var columnsController = that._columnsController;\r\n var isAsyncDataSourceApplying = false;\r\n this._useSortingGroupingFromColumns = false;\r\n if (dataSource && !that._isDataSourceApplying) {\r\n that._isDataSourceApplying = true;\r\n when(that._columnsController.applyDataSource(dataSource)).done(() => {\r\n if (that._isLoading) {\r\n that._handleLoadingChanged(false)\r\n }\r\n if (isAsyncDataSourceApplying && e && e.isDelayed) {\r\n e.isDelayed = false\r\n }\r\n that._isDataSourceApplying = false;\r\n var needApplyFilter = that._needApplyFilter;\r\n that._needApplyFilter = false;\r\n if (needApplyFilter && !that._isAllDataTypesDefined && (additionalFilter = that._calculateAdditionalFilter(), additionalFilter && additionalFilter.length)) {\r\n errors.log(\"W1005\", that.component.NAME);\r\n that._applyFilter()\r\n } else {\r\n that.updateItems(e, true)\r\n }\r\n var additionalFilter\r\n }).fail(() => {\r\n that._isDataSourceApplying = false\r\n });\r\n if (that._isDataSourceApplying) {\r\n isAsyncDataSourceApplying = true;\r\n that._handleLoadingChanged(true)\r\n }\r\n that._needApplyFilter = !that._columnsController.isDataSourceApplied();\r\n that._isAllDataTypesDefined = columnsController.isAllDataTypesDefined()\r\n }\r\n }\r\n _handleLoadingChanged(isLoading) {\r\n this._isLoading = isLoading;\r\n this._fireLoadingChanged()\r\n }\r\n _handleLoadError(e) {\r\n this.dataErrorOccurred.fire(e)\r\n }\r\n _handleDataPushed(changes) {\r\n this.pushed.fire(changes)\r\n }\r\n fireError() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n this.dataErrorOccurred.fire(errors.Error.apply(errors, args))\r\n }\r\n _setPagingOptions(dataSource) {\r\n var pageIndex = this.option(\"paging.pageIndex\");\r\n var pageSize = this.option(\"paging.pageSize\");\r\n var pagingEnabled = this.option(\"paging.enabled\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var appendMode = \"infinite\" === scrollingMode;\r\n var virtualMode = \"virtual\" === scrollingMode;\r\n var paginate = pagingEnabled || virtualMode || appendMode;\r\n var isPaginateChanged = false;\r\n var isPageSizeChanged = false;\r\n var isPageIndexChanged = false;\r\n dataSource.requireTotalCount(!appendMode);\r\n if (void 0 !== pagingEnabled && dataSource.paginate() !== paginate) {\r\n dataSource.paginate(paginate);\r\n isPaginateChanged = true\r\n }\r\n if (void 0 !== pageSize && dataSource.pageSize() !== pageSize) {\r\n dataSource.pageSize(pageSize);\r\n isPageSizeChanged = true\r\n }\r\n if (void 0 !== pageIndex && dataSource.pageIndex() !== pageIndex) {\r\n dataSource.pageIndex(pageIndex);\r\n isPageIndexChanged = true\r\n }\r\n if (isPaginateChanged || isPageSizeChanged || isPageIndexChanged) {\r\n return {\r\n isPaginateChanged: isPaginateChanged,\r\n isPageSizeChanged: isPageSizeChanged,\r\n isPageIndexChanged: isPageIndexChanged\r\n }\r\n }\r\n return false\r\n }\r\n _getSpecificDataSourceOption() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (Array.isArray(dataSource)) {\r\n return {\r\n store: {\r\n type: \"array\",\r\n data: dataSource,\r\n key: this.option(\"keyExpr\")\r\n }\r\n }\r\n }\r\n return dataSource\r\n }\r\n _initDataSource() {\r\n var oldDataSource = this._dataSource;\r\n super._initDataSource();\r\n var dataSource = this._dataSource;\r\n this._useSortingGroupingFromColumns = true;\r\n this._cachedProcessedItems = null;\r\n if (dataSource) {\r\n var changedPagingOptions = this._setPagingOptions(dataSource);\r\n this._isPaging = null === changedPagingOptions || void 0 === changedPagingOptions ? void 0 : changedPagingOptions.isPageIndexChanged;\r\n this.setDataSource(dataSource)\r\n } else if (oldDataSource) {\r\n this.updateItems()\r\n }\r\n }\r\n _loadDataSource() {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var result = new Deferred;\r\n when(this._columnsController.refresh(true)).always(() => {\r\n if (dataSource) {\r\n dataSource.load().done((function() {\r\n that._isPaging = false;\r\n result.resolve.apply(result, arguments)\r\n })).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n });\r\n return result.promise()\r\n }\r\n _beforeProcessItems(items) {\r\n return items.slice(0)\r\n }\r\n getRowIndexDelta() {\r\n return 0\r\n }\r\n getDataIndex(change) {\r\n var visibleItems = this._items;\r\n var lastVisibleItem = \"append\" === change.changeType && visibleItems.length > 0 ? visibleItems[visibleItems.length - 1] : null;\r\n return isDefined(null === lastVisibleItem || void 0 === lastVisibleItem ? void 0 : lastVisibleItem.dataIndex) ? lastVisibleItem.dataIndex + 1 : 0\r\n }\r\n _processItems(items, change) {\r\n var that = this;\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var {\r\n changeType: changeType\r\n } = change;\r\n var visibleColumns = that._columnsController.getVisibleColumns(null, \"loadingAll\" === changeType);\r\n var dataIndex = this.getDataIndex(change);\r\n var options = {\r\n visibleColumns: visibleColumns,\r\n dataIndex: dataIndex\r\n };\r\n var result = [];\r\n each(items, (index, item) => {\r\n if (isDefined(item)) {\r\n options.rowIndex = index - rowIndexDelta;\r\n item = that._processItem(item, options);\r\n result.push(item)\r\n }\r\n });\r\n return result\r\n }\r\n _processItem(item, options) {\r\n item = this._generateDataItem(item, options);\r\n item = this._processDataItem(item, options);\r\n item.dataIndex = options.dataIndex++;\r\n return item\r\n }\r\n _generateDataItem(data, options) {\r\n return {\r\n rowType: \"data\",\r\n data: data,\r\n key: this.keyOf(data)\r\n }\r\n }\r\n _processDataItem(dataItem, options) {\r\n dataItem.values = this.generateDataValues(dataItem.data, options.visibleColumns);\r\n return dataItem\r\n }\r\n generateDataValues(data, columns, isModified) {\r\n var values = [];\r\n var value;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n value = isModified ? void 0 : null;\r\n if (!column.command) {\r\n if (column.calculateCellValue) {\r\n value = column.calculateCellValue(data)\r\n } else if (column.dataField) {\r\n value = data[column.dataField]\r\n }\r\n }\r\n values.push(value)\r\n }\r\n return values\r\n }\r\n _applyChange(change) {\r\n if (\"update\" === change.changeType) {\r\n this._applyChangeUpdate(change)\r\n } else if (this.items().length && change.repaintChangesOnly && \"refresh\" === change.changeType) {\r\n this._applyChangesOnly(change)\r\n } else if (\"refresh\" === change.changeType) {\r\n this._applyChangeFull(change)\r\n }\r\n }\r\n _applyChangeFull(change) {\r\n this._items = change.items.slice(0)\r\n }\r\n _getRowIndices(change) {\r\n var rowIndices = change.rowIndices.slice(0);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n rowIndices.sort((a, b) => a - b);\r\n for (var i = 0; i < rowIndices.length; i++) {\r\n var correctedRowIndex = rowIndices[i];\r\n if (change.allowInvisibleRowIndices) {\r\n correctedRowIndex += rowIndexDelta\r\n }\r\n if (correctedRowIndex < 0) {\r\n rowIndices.splice(i, 1);\r\n i--\r\n }\r\n }\r\n return rowIndices\r\n }\r\n _applyChangeUpdate(change) {\r\n var that = this;\r\n var {\r\n items: items\r\n } = change;\r\n var rowIndices = that._getRowIndices(change);\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var repaintChangesOnly = that.option(\"repaintChangesOnly\");\r\n var prevIndex = -1;\r\n var rowIndexCorrection = 0;\r\n var changeType;\r\n change.items = [];\r\n change.rowIndices = [];\r\n change.columnIndices = [];\r\n change.changeTypes = [];\r\n var equalItems = function(item1, item2, strict) {\r\n var result = item1 && item2 && equalByValue(item1.key, item2.key);\r\n if (result && strict) {\r\n result = item1.rowType === item2.rowType && (\"detail\" !== item2.rowType || item1.isEditing === item2.isEditing)\r\n }\r\n return result\r\n };\r\n each(rowIndices, (index, rowIndex) => {\r\n var columnIndices;\r\n rowIndex += rowIndexCorrection + rowIndexDelta;\r\n if (prevIndex === rowIndex) {\r\n return\r\n }\r\n prevIndex = rowIndex;\r\n var oldItem = that._items[rowIndex];\r\n var oldNextItem = that._items[rowIndex + 1];\r\n var newItem = items[rowIndex];\r\n var newNextItem = items[rowIndex + 1];\r\n var strict = equalItems(oldItem, oldNextItem) || equalItems(newItem, newNextItem);\r\n if (newItem) {\r\n newItem.rowIndex = rowIndex;\r\n change.items.push(newItem)\r\n }\r\n if (oldItem && newItem && equalItems(oldItem, newItem, strict)) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem;\r\n if (oldItem.visible !== newItem.visible) {\r\n change.items.splice(-1, 1, {\r\n visible: newItem.visible\r\n })\r\n } else if (repaintChangesOnly && !change.isFullUpdate) {\r\n columnIndices = that._partialUpdateRow(oldItem, newItem, rowIndex - rowIndexDelta)\r\n }\r\n } else if (newItem && !oldItem || newNextItem && equalItems(oldItem, newNextItem, strict)) {\r\n changeType = \"insert\";\r\n that._items.splice(rowIndex, 0, newItem);\r\n rowIndexCorrection++\r\n } else if (oldItem && !newItem || oldNextItem && equalItems(newItem, oldNextItem, strict)) {\r\n changeType = \"remove\";\r\n that._items.splice(rowIndex, 1);\r\n rowIndexCorrection--;\r\n prevIndex = -1\r\n } else if (newItem) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem\r\n } else {\r\n return\r\n }\r\n change.rowIndices.push(rowIndex - rowIndexDelta);\r\n change.changeTypes.push(changeType);\r\n change.columnIndices.push(columnIndices)\r\n })\r\n }\r\n _isCellChanged(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n if (JSON.stringify(oldRow.values[columnIndex]) !== JSON.stringify(newRow.values[columnIndex])) {\r\n return true\r\n }\r\n\r\n function isCellModified(row, columnIndex) {\r\n return row.modifiedValues ? void 0 !== row.modifiedValues[columnIndex] : false\r\n }\r\n if (isCellModified(oldRow, columnIndex) !== isCellModified(newRow, columnIndex)) {\r\n return true\r\n }\r\n return false\r\n }\r\n _getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var columnIndices;\r\n if (oldItem.rowType === newItem.rowType) {\r\n if (\"group\" !== newItem.rowType && \"groupFooter\" !== newItem.rowType) {\r\n columnIndices = [];\r\n if (\"detail\" !== newItem.rowType) {\r\n for (var columnIndex = 0; columnIndex < oldItem.values.length; columnIndex++) {\r\n if (this._isCellChanged(oldItem, newItem, visibleRowIndex, columnIndex, isLiveUpdate)) {\r\n columnIndices.push(columnIndex)\r\n }\r\n }\r\n }\r\n }\r\n if (\"group\" === newItem.rowType && newItem.isExpanded === oldItem.isExpanded && oldItem.cells) {\r\n columnIndices = oldItem.cells.map((cell, index) => {\r\n var _a;\r\n return \"groupExpand\" !== (null === (_a = cell.column) || void 0 === _a ? void 0 : _a.type) ? index : -1\r\n }).filter(index => index >= 0)\r\n }\r\n }\r\n return columnIndices\r\n }\r\n _partialUpdateRow(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var changedColumnIndices = this._getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate);\r\n if ((null === changedColumnIndices || void 0 === changedColumnIndices ? void 0 : changedColumnIndices.length) && this.option(\"dataRowTemplate\")) {\r\n changedColumnIndices = void 0\r\n }\r\n if (changedColumnIndices) {\r\n oldItem.cells && oldItem.cells.forEach((cell, columnIndex) => {\r\n var isCellChanged = changedColumnIndices.indexOf(columnIndex) >= 0;\r\n if (!isCellChanged && cell && cell.update) {\r\n cell.update(newItem)\r\n }\r\n });\r\n newItem.update = oldItem.update;\r\n newItem.watch = oldItem.watch;\r\n newItem.cells = oldItem.cells;\r\n if (isLiveUpdate) {\r\n newItem.oldValues = oldItem.values\r\n }\r\n oldItem.update && oldItem.update(newItem)\r\n }\r\n return changedColumnIndices\r\n }\r\n _isItemEquals(item1, item2) {\r\n var _a, _b, _c, _d;\r\n if (JSON.stringify(item1.values) !== JSON.stringify(item2.values)) {\r\n return false\r\n }\r\n if ([\"modified\", \"isNewRow\", \"removed\", \"isEditing\"].some(field => item1[field] !== item2[field])) {\r\n return false\r\n }\r\n if (\"group\" === item1.rowType || \"groupFooter\" === item1.rowType) {\r\n var expandedMatch = item1.isExpanded === item2.isExpanded;\r\n var summaryCellsMatch = JSON.stringify(item1.summaryCells) === JSON.stringify(item2.summaryCells);\r\n var continuationMatch = (null === (_a = item1.data) || void 0 === _a ? void 0 : _a.isContinuation) === (null === (_b = item2.data) || void 0 === _b ? void 0 : _b.isContinuation) && (null === (_c = item1.data) || void 0 === _c ? void 0 : _c.isContinuationOnNextPage) === (null === (_d = item2.data) || void 0 === _d ? void 0 : _d.isContinuationOnNextPage);\r\n if (!expandedMatch || !summaryCellsMatch || !continuationMatch) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n _applyChangesOnly(change) {\r\n var _a;\r\n var rowIndices = [];\r\n var columnIndices = [];\r\n var changeTypes = [];\r\n var items = [];\r\n var newIndexByKey = {};\r\n var isLiveUpdate = null !== (_a = null === change || void 0 === change ? void 0 : change.isLiveUpdate) && void 0 !== _a ? _a : true;\r\n\r\n function getRowKey(row) {\r\n if (row) {\r\n return \"\".concat(row.rowType, \",\").concat(JSON.stringify(row.key))\r\n }\r\n return\r\n }\r\n var currentItems = this._items;\r\n var oldItems = currentItems.slice();\r\n change.items.forEach((item, index) => {\r\n var key = getRowKey(item);\r\n newIndexByKey[key] = index;\r\n item.rowIndex = index\r\n });\r\n var result = findChanges(oldItems, change.items, getRowKey, (item1, item2) => {\r\n if (!this._isItemEquals(item1, item2)) {\r\n return false\r\n }\r\n if (item1.cells) {\r\n item1.update && item1.update(item2);\r\n item1.cells.forEach(cell => {\r\n if (cell && cell.update) {\r\n cell.update(item2, true)\r\n }\r\n })\r\n }\r\n return true\r\n });\r\n if (!result) {\r\n this._applyChangeFull(change);\r\n return\r\n }\r\n result.forEach(change => {\r\n switch (change.type) {\r\n case \"update\":\r\n var {\r\n index: index\r\n } = change;\r\n var newItem = change.data;\r\n var {\r\n oldItem: oldItem\r\n } = change;\r\n var changedColumnIndices = this._partialUpdateRow(oldItem, newItem, index, isLiveUpdate);\r\n rowIndices.push(index);\r\n changeTypes.push(\"update\");\r\n items.push(newItem);\r\n currentItems[index] = newItem;\r\n columnIndices.push(changedColumnIndices);\r\n break;\r\n case \"insert\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"insert\");\r\n items.push(change.data);\r\n columnIndices.push(void 0);\r\n currentItems.splice(change.index, 0, change.data);\r\n break;\r\n case \"remove\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"remove\");\r\n currentItems.splice(change.index, 1);\r\n items.push(change.oldItem);\r\n columnIndices.push(void 0)\r\n }\r\n });\r\n change.repaintChangesOnly = true;\r\n change.changeType = \"update\";\r\n change.rowIndices = rowIndices;\r\n change.columnIndices = columnIndices;\r\n change.changeTypes = changeTypes;\r\n change.items = items;\r\n if (oldItems.length) {\r\n change.isLiveUpdate = true\r\n }\r\n this._correctRowIndices(rowIndex => {\r\n var oldRowIndexOffset = this._rowIndexOffset || 0;\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n var oldItem = oldItems[rowIndex - oldRowIndexOffset];\r\n var key = getRowKey(oldItem);\r\n var newVisibleRowIndex = newIndexByKey[key];\r\n return newVisibleRowIndex >= 0 ? newVisibleRowIndex + rowIndexOffset - rowIndex : 0\r\n })\r\n }\r\n _correctRowIndices(rowIndex) {}\r\n _afterProcessItems(items, change) {\r\n return items\r\n }\r\n _updateItemsCore(change) {\r\n var items;\r\n var dataSource = this._dataSource;\r\n var changeType = change.changeType || \"refresh\";\r\n change.changeType = changeType;\r\n if (dataSource) {\r\n var cachedProcessedItems = this._cachedProcessedItems;\r\n if (change.useProcessedItemsCache && cachedProcessedItems) {\r\n items = cachedProcessedItems\r\n } else {\r\n items = change.items || dataSource.items();\r\n items = this._beforeProcessItems(items);\r\n items = this._processItems(items, change);\r\n this._cachedProcessedItems = items\r\n }\r\n items = this._afterProcessItems(items, change);\r\n change.items = items;\r\n var oldItems = this._items.length === items.length && this._items;\r\n this._applyChange(change);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n each(this._items, (index, item) => {\r\n var _a;\r\n item.rowIndex = index - rowIndexDelta;\r\n if (oldItems) {\r\n item.cells = null !== (_a = oldItems[index].cells) && void 0 !== _a ? _a : []\r\n }\r\n var newItem = items[index];\r\n if (newItem) {\r\n item.loadIndex = newItem.loadIndex\r\n }\r\n });\r\n this._rowIndexOffset = this.getRowIndexOffset()\r\n } else {\r\n this._items = []\r\n }\r\n }\r\n _handleChanging(e) {\r\n var rows = this.getVisibleRows();\r\n var dataSource = this.dataSource();\r\n if (dataSource) {\r\n e.changes.forEach(change => {\r\n if (\"insert\" === change.type && change.index >= 0) {\r\n var dataIndex = 0;\r\n for (var i = 0; i < change.index; i++) {\r\n var row = rows[i];\r\n if (row && (\"data\" === row.rowType || \"group\" === row.rowType)) {\r\n dataIndex++\r\n }\r\n }\r\n change.index = dataIndex\r\n }\r\n })\r\n }\r\n }\r\n updateItems(change, isDataChanged) {\r\n var _a;\r\n change = change || {};\r\n if (void 0 !== this._repaintChangesOnly) {\r\n change.repaintChangesOnly = null !== (_a = change.repaintChangesOnly) && void 0 !== _a ? _a : this._repaintChangesOnly;\r\n change.needUpdateDimensions = change.needUpdateDimensions || this._needUpdateDimensions\r\n } else if (change.changes) {\r\n change.repaintChangesOnly = this.option(\"repaintChangesOnly\")\r\n } else if (isDataChanged) {\r\n var operationTypes = this.dataSource().operationTypes();\r\n change.repaintChangesOnly = operationTypes && !operationTypes.grouping && !operationTypes.filtering && this.option(\"repaintChangesOnly\");\r\n change.isDataChanged = true;\r\n if (operationTypes && (operationTypes.reload || operationTypes.paging || operationTypes.groupExpanding)) {\r\n change.needUpdateDimensions = true\r\n }\r\n }\r\n if (this._updateLockCount && !change.cancel) {\r\n this._changes.push(change);\r\n return\r\n }\r\n this._updateItemsCore(change);\r\n if (change.cancel) {\r\n return\r\n }\r\n this._fireChanged(change)\r\n }\r\n loadingOperationTypes() {\r\n var dataSource = this.dataSource();\r\n return dataSource && dataSource.loadingOperationTypes() || {}\r\n }\r\n _fireChanged(change) {\r\n if (this._currentOperationTypes) {\r\n change.operationTypes = this._currentOperationTypes;\r\n this._currentOperationTypes = null\r\n }\r\n deferRender(() => {\r\n this.changed.fire(change)\r\n })\r\n }\r\n isLoading() {\r\n return this._isLoading || this._isCustomLoading\r\n }\r\n _fireLoadingChanged() {\r\n this.loadingChanged.fire(this.isLoading(), this._loadingText)\r\n }\r\n _calculateAdditionalFilter() {\r\n return null\r\n }\r\n _applyFilter() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n dataSource.pageIndex(0);\r\n this._isFilterApplying = true;\r\n return this.reload().done(() => {\r\n if (this._isFilterApplying) {\r\n this.pageChanged.fire()\r\n }\r\n })\r\n }\r\n }\r\n resetFilterApplying() {\r\n this._isFilterApplying = false\r\n }\r\n filter(filterExpr) {\r\n var dataSource = this._dataSource;\r\n var filter = dataSource && dataSource.filter();\r\n if (0 === arguments.length) {\r\n return filter\r\n }\r\n filterExpr = arguments.length > 1 ? Array.prototype.slice.call(arguments, 0) : filterExpr;\r\n if (gridCoreUtils.equalFilterParameters(filter, filterExpr)) {\r\n return\r\n }\r\n if (dataSource) {\r\n dataSource.filter(filterExpr)\r\n }\r\n this._applyFilter()\r\n }\r\n clearFilter(filterName) {\r\n var columnsController = this._columnsController;\r\n var clearColumnOption = function(optionName) {\r\n var columnCount = columnsController.columnCount();\r\n for (var index = 0; index < columnCount; index++) {\r\n columnsController.columnOption(index, optionName, void 0)\r\n }\r\n };\r\n this.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n switch (filterName) {\r\n case \"dataSource\":\r\n this.filter(null);\r\n break;\r\n case \"search\":\r\n this.searchByText(\"\");\r\n break;\r\n case \"header\":\r\n clearColumnOption(\"filterValues\");\r\n break;\r\n case \"row\":\r\n clearColumnOption(\"filterValue\")\r\n }\r\n } else {\r\n this.filter(null);\r\n this.searchByText(\"\");\r\n clearColumnOption(\"filterValue\");\r\n clearColumnOption(\"bufferedFilterValue\");\r\n clearColumnOption(\"filterValues\")\r\n }\r\n this.component.endUpdate()\r\n }\r\n _fireDataSourceChanged() {\r\n var that = this;\r\n that.changed.add((function changedHandler() {\r\n that.changed.remove(changedHandler);\r\n that.dataSourceChanged.fire()\r\n }))\r\n }\r\n _getDataSourceAdapter() {}\r\n _createDataSourceAdapterCore(dataSource, remoteOperations) {\r\n var dataSourceAdapterProvider = this._getDataSourceAdapter();\r\n var dataSourceAdapter = dataSourceAdapterProvider.create(this.component);\r\n dataSourceAdapter.init(dataSource, remoteOperations);\r\n return dataSourceAdapter\r\n }\r\n isLocalStore() {\r\n var store = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.store();\r\n return store instanceof ArrayStore\r\n }\r\n isCustomStore(store) {\r\n store = store || this.store();\r\n return store instanceof CustomStore\r\n }\r\n _createDataSourceAdapter(dataSource) {\r\n var remoteOperations = this.option(\"remoteOperations\");\r\n var store = dataSource.store();\r\n var enabledRemoteOperations = {\r\n filtering: true,\r\n sorting: true,\r\n paging: true,\r\n grouping: true,\r\n summary: true\r\n };\r\n if (isObject(remoteOperations) && remoteOperations.groupPaging) {\r\n remoteOperations = extend({}, enabledRemoteOperations, remoteOperations)\r\n }\r\n if (\"auto\" === remoteOperations) {\r\n remoteOperations = this.isLocalStore(store) || this.isCustomStore(store) ? {} : {\r\n filtering: true,\r\n sorting: true,\r\n paging: true\r\n }\r\n }\r\n if (true === remoteOperations) {\r\n remoteOperations = enabledRemoteOperations\r\n }\r\n return this._createDataSourceAdapterCore(dataSource, remoteOperations)\r\n }\r\n setDataSource(dataSource) {\r\n var oldDataSource = this._dataSource;\r\n if (!dataSource && oldDataSource) {\r\n oldDataSource.cancelAll();\r\n oldDataSource.changed.remove(this._dataChangedHandler);\r\n oldDataSource.loadingChanged.remove(this._loadingChangedHandler);\r\n oldDataSource.loadError.remove(this._loadErrorHandler);\r\n oldDataSource.customizeStoreLoadOptions.remove(this._customizeStoreLoadOptionsHandler);\r\n oldDataSource.changing.remove(this._changingHandler);\r\n oldDataSource.pushed.remove(this._dataPushedHandler);\r\n oldDataSource.dispose(this._isSharedDataSource)\r\n }\r\n if (dataSource) {\r\n dataSource = this._createDataSourceAdapter(dataSource)\r\n }\r\n this._dataSource = dataSource;\r\n if (dataSource) {\r\n this._fireDataSourceChanged();\r\n this._isLoading = !dataSource.isLoaded();\r\n this._needApplyFilter = true;\r\n this._isAllDataTypesDefined = this._columnsController.isAllDataTypesDefined();\r\n dataSource.changed.add(this._dataChangedHandler);\r\n dataSource.loadingChanged.add(this._loadingChangedHandler);\r\n dataSource.loadError.add(this._loadErrorHandler);\r\n dataSource.customizeStoreLoadOptions.add(this._customizeStoreLoadOptionsHandler);\r\n dataSource.changing.add(this._changingHandler);\r\n dataSource.pushed.add(this._dataPushedHandler)\r\n }\r\n }\r\n items(byLoaded) {\r\n return this._items\r\n }\r\n isEmpty() {\r\n return !this.items().length\r\n }\r\n pageCount() {\r\n return this._dataSource ? this._dataSource.pageCount() : 1\r\n }\r\n dataSource() {\r\n return this._dataSource\r\n }\r\n store() {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.store()\r\n }\r\n loadAll(data) {\r\n var skipFilter = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var that = this;\r\n var d = new Deferred;\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (data) {\r\n var options = {\r\n data: data,\r\n isCustomLoading: true,\r\n storeLoadOptions: {\r\n isLoadingAll: true\r\n },\r\n loadOptions: {\r\n filter: skipFilter ? null : that.getCombinedFilter(),\r\n group: dataSource.group(),\r\n sort: dataSource.sort()\r\n }\r\n };\r\n dataSource._handleDataLoaded(options);\r\n when(options.data).done(data => {\r\n var _a;\r\n data = that._beforeProcessItems(data);\r\n d.resolve(that._processItems(data, {\r\n changeType: \"loadingAll\"\r\n }), null === (_a = options.extra) || void 0 === _a ? void 0 : _a.summary)\r\n }).fail(d.reject)\r\n } else if (!dataSource.isLoading()) {\r\n var loadOptions = extend({}, dataSource.loadOptions(), {\r\n isLoadingAll: true,\r\n requireTotalCount: false\r\n });\r\n dataSource.load(loadOptions).done((items, extra) => {\r\n items = that._beforeProcessItems(items);\r\n items = that._processItems(items, {\r\n changeType: \"loadingAll\"\r\n });\r\n d.resolve(items, extra && extra.summary)\r\n }).fail(d.reject)\r\n } else {\r\n d.reject()\r\n }\r\n } else {\r\n d.resolve([])\r\n }\r\n return d\r\n }\r\n getKeyByRowIndex(rowIndex, byLoaded) {\r\n var item = this.items(byLoaded)[rowIndex];\r\n if (item) {\r\n return item.key\r\n }\r\n }\r\n getRowIndexByKey(key, byLoaded) {\r\n return gridCoreUtils.getIndexByKey(key, this.items(byLoaded))\r\n }\r\n keyOf(data) {\r\n var store = this.store();\r\n if (store) {\r\n return store.keyOf(data)\r\n }\r\n }\r\n byKey(key) {\r\n var store = this.store();\r\n var rowIndex = this.getRowIndexByKey(key);\r\n var result;\r\n if (!store) {\r\n return\r\n }\r\n if (rowIndex >= 0) {\r\n result = (new Deferred).resolve(this.items()[rowIndex].data)\r\n }\r\n return result || store.byKey(key)\r\n }\r\n key() {\r\n var store = this.store();\r\n if (store) {\r\n return store.key()\r\n }\r\n }\r\n getRowIndexOffset(byLoadedRows) {\r\n return 0\r\n }\r\n getDataByKeys(rowKeys) {\r\n var that = this;\r\n var result = new Deferred;\r\n var deferreds = [];\r\n var data = [];\r\n each(rowKeys, (index, key) => {\r\n deferreds.push(that.byKey(key).done(keyData => {\r\n data[index] = keyData\r\n }))\r\n });\r\n when.apply($, deferreds).always(() => {\r\n result.resolve(data)\r\n });\r\n return result\r\n }\r\n pageIndex(value) {\r\n return changePaging(this, \"pageIndex\", value)\r\n }\r\n pageSize(value) {\r\n return changePaging(this, \"pageSize\", value)\r\n }\r\n beginCustomLoading(messageText) {\r\n this._isCustomLoading = true;\r\n this._loadingText = messageText || \"\";\r\n this._fireLoadingChanged()\r\n }\r\n endCustomLoading() {\r\n this._isCustomLoading = false;\r\n this._loadingText = void 0;\r\n this._fireLoadingChanged()\r\n }\r\n refresh(options) {\r\n if (true === options) {\r\n options = {\r\n reload: true,\r\n changesOnly: true\r\n }\r\n } else if (!options) {\r\n options = {\r\n lookup: true,\r\n selection: true,\r\n reload: true\r\n }\r\n }\r\n var that = this;\r\n var dataSource = that.getDataSource();\r\n var {\r\n changesOnly: changesOnly\r\n } = options;\r\n var d = new Deferred;\r\n var customizeLoadResult = function() {\r\n that._repaintChangesOnly = !!changesOnly\r\n };\r\n when(!options.lookup || that._columnsController.refresh()).always(() => {\r\n if (options.load || options.reload) {\r\n dataSource && dataSource.on(\"customizeLoadResult\", customizeLoadResult);\r\n when(that.reload(options.reload, changesOnly)).always(() => {\r\n dataSource && dataSource.off(\"customizeLoadResult\", customizeLoadResult);\r\n that._repaintChangesOnly = void 0\r\n }).done(d.resolve).fail(d.reject)\r\n } else {\r\n that.updateItems({\r\n repaintChangesOnly: options.changesOnly\r\n });\r\n d.resolve()\r\n }\r\n });\r\n return d.promise()\r\n }\r\n getVisibleRows() {\r\n return this.items()\r\n }\r\n _disposeDataSource() {\r\n this.setDataSource(null)\r\n }\r\n dispose() {\r\n this._disposeDataSource();\r\n super.dispose()\r\n }\r\n repaintRows(rowIndexes, changesOnly) {\r\n rowIndexes = Array.isArray(rowIndexes) ? rowIndexes : [rowIndexes];\r\n if (rowIndexes.length > 1 || isDefined(rowIndexes[0])) {\r\n this.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndexes,\r\n isFullUpdate: !changesOnly\r\n })\r\n }\r\n }\r\n skipProcessingPagingChange(fullName) {\r\n return this._skipProcessingPagingChange && (\"paging.pageIndex\" === fullName || \"paging.pageSize\" === fullName)\r\n }\r\n getUserState() {\r\n return {\r\n searchText: this.option(\"searchPanel.text\"),\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }\r\n }\r\n getCachedStoreData() {\r\n return this._dataSource && this._dataSource.getCachedStoreData()\r\n }\r\n isLastPageLoaded() {\r\n var pageIndex = this.pageIndex();\r\n var pageCount = this.pageCount();\r\n return pageIndex === pageCount - 1\r\n }\r\n load() {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.load()\r\n }\r\n reload(reload, changesOnly) {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.reload(reload, changesOnly)\r\n }\r\n push() {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.push(...arguments)\r\n }\r\n itemsCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.itemsCount() : 0\r\n }\r\n totalItemsCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.totalItemsCount() : 0\r\n }\r\n hasKnownLastPage() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.hasKnownLastPage() : true\r\n }\r\n isLoaded() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.isLoaded() : true\r\n }\r\n totalCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.totalCount() : 0\r\n }\r\n}\r\nexport var dataControllerModule = {\r\n defaultOptions: () => ({\r\n loadingTimeout: 0,\r\n dataSource: null,\r\n cacheEnabled: true,\r\n repaintChangesOnly: false,\r\n highlightChanges: false,\r\n onDataErrorOccurred: null,\r\n remoteOperations: \"auto\",\r\n paging: {\r\n enabled: true,\r\n pageSize: void 0,\r\n pageIndex: void 0\r\n }\r\n }),\r\n controllers: {\r\n data: DataController\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_data_controller.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _a, _b;\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport {\r\n dataControllerModule\r\n} from \"../../grids/grid_core/data_controller/m_data_controller\";\r\nimport gridCore from \"./m_core\";\r\nimport dataSourceAdapterProvider from \"./m_data_source_adapter\";\r\nexport var DataController = null === (_b = null === (_a = dataControllerModule.controllers) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b.inherit({\r\n _getDataSourceAdapter: () => dataSourceAdapterProvider,\r\n _getSpecificDataSourceOption() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (dataSource && !Array.isArray(dataSource) && this.option(\"keyExpr\")) {\r\n errors.log(\"W1011\")\r\n }\r\n return this.callBase()\r\n }\r\n});\r\ngridCore.registerModule(\"data\", {\r\n defaultOptions: dataControllerModule.defaultOptions,\r\n controllers: {\r\n data: DataController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/data_source_adapter/m_data_source_adapter.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n executeAsync,\r\n getKeyHash\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport ArrayStore from \"../../../../data/array_store\";\r\nimport {\r\n applyBatch\r\n} from \"../../../../data/array_utils\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nexport default modules.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] = 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: !gridCoreUtils.equalSortParameters(loadOptions.sort, lastLoadOptions.sort),\r\n grouping: !gridCoreUtils.equalSortParameters(loadOptions.group, lastLoadOptions.group, true),\r\n groupExpanding: !gridCoreUtils.equalSortParameters(loadOptions.group, lastLoadOptions.group) || lastLoadOptions.groupExpand,\r\n filtering: !gridCoreUtils.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 pageSize: loadOptions.pageSize !== lastLoadOptions.pageSize,\r\n fullReload: isFullReload,\r\n reload: false,\r\n paging: false\r\n };\r\n operationTypes.reload = isFullReload || operationTypes.sorting || operationTypes.grouping || operationTypes.filtering;\r\n operationTypes.paging = operationTypes.pageIndex || operationTypes.pageSize || operationTypes.take\r\n }\r\n return operationTypes\r\n }\r\n\r\n function getPageDataFromCache(options, updatePaging) {\r\n var groupCount = gridCoreUtils.normalizeSortingInfo(options.group || options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var items = [];\r\n if (fillItemsFromCache(items, options, groupCount)) {\r\n return items\r\n }\r\n if (updatePaging) {\r\n ! function(cacheItemsFromBegin, options, groupCount) {\r\n var _a, _b;\r\n var cacheItemBeginCount = cacheItemsFromBegin.length;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n if (void 0 !== storeLoadOptions.skip && storeLoadOptions.take && !groupCount) {\r\n var cacheItemsFromEnd = [];\r\n fillItemsFromCache(cacheItemsFromEnd, options, groupCount, true);\r\n var cacheItemEndCount = cacheItemsFromEnd.length;\r\n if (cacheItemBeginCount || cacheItemEndCount) {\r\n options.skip = null !== (_a = options.skip) && void 0 !== _a ? _a : storeLoadOptions.skip;\r\n options.take = null !== (_b = options.take) && void 0 !== _b ? _b : storeLoadOptions.take\r\n }\r\n if (cacheItemBeginCount) {\r\n storeLoadOptions.skip += cacheItemBeginCount;\r\n storeLoadOptions.take -= cacheItemBeginCount;\r\n options.cachedDataPartBegin = cacheItemsFromBegin\r\n }\r\n if (cacheItemEndCount) {\r\n storeLoadOptions.take -= cacheItemEndCount;\r\n options.cachedDataPartEnd = cacheItemsFromEnd.reverse()\r\n }\r\n }\r\n }(items, options, groupCount)\r\n }\r\n }\r\n\r\n function fillItemsFromCache(items, options, groupCount, fromEnd) {\r\n var _a, _b, _c, _d, _e;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var take = null !== (_b = null !== (_a = options.take) && void 0 !== _a ? _a : storeLoadOptions.take) && void 0 !== _b ? _b : 0;\r\n var cachedItems = null === (_c = options.cachedData) || void 0 === _c ? void 0 : _c.items;\r\n if (take && cachedItems) {\r\n var skip = null !== (_e = null !== (_d = options.skip) && void 0 !== _d ? _d : storeLoadOptions.skip) && void 0 !== _e ? _e : 0;\r\n for (var i = 0; i < take; i++) {\r\n var localIndex = fromEnd ? take - 1 - i : i;\r\n var cacheItemIndex = localIndex + skip;\r\n var cacheItem = cachedItems[cacheItemIndex];\r\n if (void 0 === cacheItem && cacheItemIndex in cachedItems) {\r\n return true\r\n }\r\n var item = getItemFromCache(options, cacheItem, groupCount, localIndex, take);\r\n if (item) {\r\n items.push(item)\r\n } else {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n function getItemFromCache(options, cacheItem, groupCount, index, take) {\r\n if (groupCount && cacheItem) {\r\n var skips = 0 === index && options.skips || [];\r\n var takes = index === take - 1 && options.takes || [];\r\n return function getGroupItemFromCache(cacheItem, groupCount, skips, takes) {\r\n if (groupCount && cacheItem) {\r\n var result = _extends({}, cacheItem);\r\n var skip = skips[0] || 0;\r\n var take = takes[0];\r\n var {\r\n items: items\r\n } = cacheItem;\r\n if (items) {\r\n if (void 0 === take && !items[skip]) {\r\n return\r\n }\r\n result.items = [];\r\n if (skips.length) {\r\n result.isContinuation = true\r\n }\r\n if (take) {\r\n result.isContinuationOnNextPage = cacheItem.count > take\r\n }\r\n for (var i = 0; void 0 === take ? items[i + skip] : i < take; i++) {\r\n var childCacheItem = items[i + skip];\r\n var isLast = i + 1 === take;\r\n var item = getGroupItemFromCache(childCacheItem, groupCount - 1, 0 === i ? skips.slice(1) : [], isLast ? takes.slice(1) : []);\r\n if (void 0 !== item) {\r\n result.items.push(item)\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n return cacheItem\r\n }(cacheItem, groupCount, skips, takes)\r\n }\r\n return cacheItem\r\n }\r\n\r\n function getCacheItem(cacheItem, loadedItem, groupCount, skips) {\r\n if (groupCount && loadedItem) {\r\n var result = _extends({}, loadedItem);\r\n delete result.isContinuation;\r\n delete result.isContinuationOnNextPage;\r\n var skip = skips[0] || 0;\r\n if (loadedItem.items) {\r\n result.items = (null === cacheItem || void 0 === cacheItem ? void 0 : cacheItem.items) || {};\r\n loadedItem.items.forEach((item, index) => {\r\n var globalIndex = index + skip;\r\n var childSkips = 0 === index ? skips.slice(1) : [];\r\n result.items[globalIndex] = getCacheItem(result.items[globalIndex], item, groupCount - 1, childSkips)\r\n })\r\n }\r\n return result\r\n }\r\n return loadedItem\r\n }\r\n var members = {\r\n init(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._cachedData = {\r\n items: {}\r\n };\r\n that._lastOperationTypes = {};\r\n that._eventsStrategy = dataSource._eventsStrategy;\r\n that._totalCountCorrection = 0;\r\n that._isLoadingAll = false;\r\n that.changed = Callbacks();\r\n that.loadingChanged = Callbacks();\r\n that.loadError = Callbacks();\r\n that.customizeStoreLoadOptions = Callbacks();\r\n that.changing = Callbacks();\r\n that.pushed = Callbacks();\r\n that._dataChangedHandler = that._handleDataChanged.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.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._customizeStoreLoadOptionsHandler);\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(\"beforePush\", that._pushHandler);\r\n each(dataSource, (memberName, member) => {\r\n if (!that[memberName] && 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() {\r\n return this._remoteOperations\r\n },\r\n dispose(isSharedDataSource) {\r\n var dataSource = this._dataSource;\r\n var store = dataSource.store();\r\n dataSource.off(\"changed\", this._dataChangedHandler);\r\n dataSource.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptionsHandler);\r\n dataSource.off(\"customizeLoadResult\", this._dataLoadedHandler);\r\n dataSource.off(\"loadingChanged\", this._loadingChangedHandler);\r\n dataSource.off(\"loadError\", this._loadErrorHandler);\r\n dataSource.off(\"changing\", this._changingHandler);\r\n store && store.off(\"beforePush\", this._pushHandler);\r\n if (!isSharedDataSource) {\r\n dataSource.dispose()\r\n }\r\n },\r\n refresh(options, operationTypes) {\r\n var dataSource = this._dataSource;\r\n if (operationTypes.reload) {\r\n this.resetCurrentTotalCount();\r\n this._isLastPage = !dataSource.paginate();\r\n this._hasLastPage = this._isLastPage\r\n }\r\n },\r\n resetCurrentTotalCount() {\r\n this._currentTotalCount = 0;\r\n this._totalCountCorrection = 0\r\n },\r\n resetCache() {\r\n this._cachedStoreData = void 0;\r\n this._cachedPagingData = void 0\r\n },\r\n resetPagesCache() {\r\n this._cachedData = {\r\n items: {}\r\n }\r\n },\r\n _needClearStoreDataCache() {\r\n var remoteOperations = this.remoteOperations();\r\n var operationTypes = calculateOperationTypes(this._lastLoadOptions || {}, {});\r\n var isLocalOperations = Object.keys(remoteOperations).every(operationName => !operationTypes[operationName] || !remoteOperations[operationName]);\r\n return !isLocalOperations\r\n },\r\n push(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 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 this.pushed.fire(changes)\r\n },\r\n getDataIndexGetter() {\r\n if (!this._dataIndexGetter) {\r\n var indexByKey;\r\n var storeData;\r\n var store = this.store();\r\n this._dataIndexGetter = 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[getKeyHash(store.keyOf(storeData[i]))] = i\r\n }\r\n }\r\n return indexByKey[getKeyHash(store.keyOf(data))]\r\n }\r\n }\r\n return this._dataIndexGetter\r\n },\r\n _getKeyInfo() {\r\n return this.store()\r\n },\r\n _needToCopyDataObject: () => true,\r\n _applyBatch(changes, fromStore) {\r\n var keyInfo = this._getKeyInfo();\r\n var dataSource = this._dataSource;\r\n var groupCount = gridCoreUtils.normalizeSortingInfo(this.group()).length;\r\n var isReshapeMode = \"reshape\" === this.option(\"editing.refreshMode\");\r\n var isVirtualMode = \"virtual\" === this.option(\"scrolling.mode\");\r\n changes = changes.filter(change => !dataSource.paginate() || \"insert\" !== change.type || void 0 !== change.index);\r\n var getItemCount = () => groupCount ? this.itemsCount() : this.items().length;\r\n var oldItemCount = getItemCount();\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: this._items,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true,\r\n skipCopying: !this._needToCopyDataObject()\r\n });\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: dataSource.items(),\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true,\r\n skipCopying: !this._needToCopyDataObject()\r\n });\r\n var needUpdateTotalCountCorrection = this._currentTotalCount > 0 || (fromStore || !isReshapeMode) && isVirtualMode;\r\n if (needUpdateTotalCountCorrection) {\r\n this._totalCountCorrection += getItemCount() - oldItemCount\r\n }\r\n changes.splice(0, changes.length)\r\n },\r\n _handlePush(_ref) {\r\n var {\r\n changes: changes\r\n } = _ref;\r\n this.push(changes, true)\r\n },\r\n _handleChanging(e) {\r\n this.changing.fire(e);\r\n this._applyBatch(e.changes, true)\r\n },\r\n _needCleanCacheByOperation(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(operationType => remoteOperations[operationType])\r\n },\r\n _customizeRemoteOperations(options, operationTypes) {\r\n var cachedStoreData = this._cachedStoreData;\r\n var cachedPagingData = this._cachedPagingData;\r\n var cachedData = this._cachedData;\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 summary: options.remoteOperations.summary\r\n }\r\n }\r\n if (operationTypes.fullReload) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else {\r\n if (operationTypes.reload) {\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else if (operationTypes.groupExpanding) {\r\n cachedData = {\r\n items: {}\r\n }\r\n }\r\n each(operationTypes, (operationType, value) => {\r\n if (value && this._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.cachedData = cachedData;\r\n if (!options.isCustomLoading) {\r\n this._cachedStoreData = cachedStoreData;\r\n this._cachedPagingData = cachedPagingData;\r\n this._cachedData = cachedData\r\n }\r\n },\r\n _handleCustomizeStoreLoadOptions(options) {\r\n var _a;\r\n this._handleDataLoading(options);\r\n if (!(0 === (null === (_a = options.data) || void 0 === _a ? void 0 : _a.length))) {\r\n options.data = getPageDataFromCache(options, true) || options.cachedStoreData\r\n }\r\n },\r\n _handleDataLoading(options) {\r\n var dataSource = this._dataSource;\r\n var lastLoadOptions = this._lastLoadOptions;\r\n this.customizeStoreLoadOptions.fire(options);\r\n options.delay = this.option(\"loadingTimeout\");\r\n options.originalStoreLoadOptions = options.storeLoadOptions;\r\n options.remoteOperations = extend({}, this.remoteOperations());\r\n var isFullReload = !this.isLoaded() && !this._isRefreshing;\r\n if (this.option(\"integrationOptions.renderedOnServer\") && !this.isLoaded()) {\r\n options.delay = void 0\r\n }\r\n var loadOptions = extend({\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }, options.storeLoadOptions);\r\n var operationTypes = calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload);\r\n this._customizeRemoteOperations(options, operationTypes);\r\n if (!options.isCustomLoading) {\r\n var isRefreshing = this._isRefreshing;\r\n options.pageIndex = dataSource.pageIndex();\r\n options.lastLoadOptions = loadOptions;\r\n options.operationTypes = operationTypes;\r\n this._loadingOperationTypes = operationTypes;\r\n this._isRefreshing = true;\r\n when(isRefreshing || this._isRefreshed || this.refresh(options, operationTypes)).done(() => {\r\n if (this._lastOperationId === options.operationId) {\r\n this._isRefreshed = true;\r\n this.load().always(() => {\r\n this._isRefreshed = false\r\n })\r\n }\r\n }).fail(() => {\r\n dataSource.cancel(options.operationId)\r\n }).always(() => {\r\n this._isRefreshing = false\r\n });\r\n dataSource.cancel(this._lastOperationId);\r\n this._lastOperationId = options.operationId;\r\n if (this._isRefreshing) {\r\n dataSource.cancel(this._lastOperationId)\r\n }\r\n }\r\n this._handleDataLoadingCore(options)\r\n },\r\n _handleDataLoadingCore(options) {\r\n var {\r\n remoteOperations: remoteOperations\r\n } = options;\r\n options.loadOptions = {};\r\n var cachedExtra = options.cachedData.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 langParams: !remoteOperations.filtering || !remoteOperations.sorting\r\n };\r\n each(options.storeLoadOptions, (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 },\r\n _handleDataLoaded(options) {\r\n var _a, _b;\r\n var {\r\n loadOptions: loadOptions\r\n } = options;\r\n var localPaging = options.remoteOperations && !options.remoteOperations.paging;\r\n var {\r\n cachedData: cachedData\r\n } = options;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var needCache = false !== this.option(\"cacheEnabled\") && storeLoadOptions;\r\n var needPageCache = needCache && !options.isCustomLoading && cachedData && (!localPaging || storeLoadOptions.group);\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 (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 = gridCoreUtils.normalizeSortingInfo(options.group || storeLoadOptions.group || loadOptions.group).length;\r\n if (options.cachedDataPartBegin) {\r\n options.data = options.cachedDataPartBegin.concat(options.data)\r\n }\r\n if (options.cachedDataPartEnd) {\r\n options.data = options.data.concat(options.cachedDataPartEnd)\r\n }\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, gridCoreUtils.normalizeSortingInfo(storeLoadOptions.group).length)\r\n } else if (options.mergeStoreLoadData) {\r\n options.data = this._cachedStoreData = this._cachedStoreData.concat(options.data)\r\n }\r\n }\r\n new ArrayStore(options.data).load(loadOptions).done(data => {\r\n options.data = data;\r\n if (needStoreCache) {\r\n this._cachedPagingData = cloneItems(options.data, groupCount)\r\n }\r\n }).fail(error => {\r\n options.data = (new Deferred).reject(error)\r\n })\r\n }\r\n if (loadOptions.requireTotalCount && localPaging) {\r\n options.extra = 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 if (!loadOptions.data && (storeLoadOptions.requireTotalCount || (null !== (_b = null === (_a = options.extra) || void 0 === _a ? void 0 : _a.totalCount) && void 0 !== _b ? _b : -1) >= 0)) {\r\n this._totalCountCorrection = 0\r\n }\r\n this._handleDataLoadedCore(options);\r\n if (needPageCache) {\r\n cachedData.extra = cachedData.extra || extend({}, options.extra);\r\n when(options.data).done(data => {\r\n ! function(options, data, groupCount) {\r\n var _a, _b, _c, _d;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var skip = null !== (_b = null !== (_a = options.skip) && void 0 !== _a ? _a : storeLoadOptions.skip) && void 0 !== _b ? _b : 0;\r\n var take = null !== (_d = null !== (_c = options.take) && void 0 !== _c ? _c : storeLoadOptions.take) && void 0 !== _d ? _d : 0;\r\n for (var i = 0; i < take; i++) {\r\n var globalIndex = i + skip;\r\n var cacheItems = options.cachedData.items;\r\n var skips = 0 === i && options.skips || [];\r\n cacheItems[globalIndex] = getCacheItem(cacheItems[globalIndex], data[i], groupCount, skips)\r\n }\r\n }(options, data, groupCount)\r\n })\r\n }\r\n }\r\n when(options.data).done(() => {\r\n if (options.lastLoadOptions) {\r\n this._lastLoadOptions = options.lastLoadOptions;\r\n Object.keys(options.operationTypes).forEach(operationType => {\r\n this._lastOperationTypes[operationType] = this._lastOperationTypes[operationType] || options.operationTypes[operationType]\r\n })\r\n }\r\n });\r\n options.storeLoadOptions = options.originalStoreLoadOptions\r\n },\r\n _handleDataLoadedCore(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(isLoading) {\r\n this.loadingChanged.fire(isLoading)\r\n },\r\n _handleLoadError(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 _loadPageSize() {\r\n return this.pageSize()\r\n },\r\n _handleDataChanged(args) {\r\n var currentTotalCount;\r\n var dataSource = this._dataSource;\r\n var isLoading = false;\r\n var isDataLoading = !args || isDefined(args.changeType);\r\n var itemsCount = this.itemsCount();\r\n if (isDataLoading) {\r\n this._isLastPage = !itemsCount || !this._loadPageSize() || itemsCount < this._loadPageSize();\r\n if (this._isLastPage) {\r\n this._hasLastPage = true\r\n }\r\n }\r\n if (dataSource.totalCount() >= 0) {\r\n if (dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n this.pageIndex(dataSource.pageIndex());\r\n this.resetPagesCache();\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n } else if (isDataLoading) {\r\n currentTotalCount = dataSource.pageIndex() * this.pageSize() + itemsCount;\r\n if (currentTotalCount > this._currentTotalCount) {\r\n this._currentTotalCount = currentTotalCount;\r\n if (0 === dataSource.pageIndex() || !this.option(\"scrolling.legacyMode\")) {\r\n this._totalCountCorrection = 0\r\n }\r\n }\r\n if (0 === itemsCount && dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n if (\"infinite\" !== this.option(\"scrolling.mode\")) {\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n }\r\n }\r\n if (!isLoading) {\r\n this._operationTypes = this._lastOperationTypes;\r\n this._lastOperationTypes = {};\r\n this.component._optionCache = {};\r\n this.changed.fire(args);\r\n this.component._optionCache = void 0\r\n }\r\n },\r\n _scheduleCustomLoadCallbacks(deferred) {\r\n var that = this;\r\n that._isCustomLoading = true;\r\n deferred.always(() => {\r\n that._isCustomLoading = false\r\n })\r\n },\r\n loadingOperationTypes() {\r\n return this._loadingOperationTypes\r\n },\r\n operationTypes() {\r\n return this._operationTypes\r\n },\r\n lastLoadOptions() {\r\n return this._lastLoadOptions || {}\r\n },\r\n isLastPage() {\r\n return this._isLastPage\r\n },\r\n _dataSourceTotalCount() {\r\n return this._dataSource.totalCount()\r\n },\r\n totalCount() {\r\n return parseInt((this._currentTotalCount || this._dataSourceTotalCount()) + this._totalCountCorrection)\r\n },\r\n totalCountCorrection() {\r\n return this._totalCountCorrection\r\n },\r\n itemsCount() {\r\n return this._dataSource.items().length\r\n },\r\n totalItemsCount() {\r\n return this.totalCount()\r\n },\r\n pageSize() {\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() {\r\n var count = this.totalItemsCount() - this._totalCountCorrection;\r\n var pageSize = this.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() {\r\n return this._hasLastPage || this._dataSource.totalCount() >= 0\r\n },\r\n loadFromStore(loadOptions, store) {\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n return\r\n }\r\n store = store || dataSource.store();\r\n store.load(loadOptions).done((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() {\r\n return !!this._isCustomLoading\r\n },\r\n load(options) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new Deferred;\r\n if (options) {\r\n var store = dataSource.store();\r\n var dataSourceLoadOptions = dataSource.loadOptions();\r\n var loadResult = {\r\n storeLoadOptions: extend({}, options, {\r\n langParams: null === dataSourceLoadOptions || void 0 === dataSourceLoadOptions ? void 0 : dataSourceLoadOptions.langParams\r\n }),\r\n isCustomLoading: true\r\n };\r\n each(store._customLoadOptions() || [], (_, 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._handleCustomizeStoreLoadOptions(loadResult);\r\n ! function(action, timeout) {\r\n if (isDefined(timeout)) {\r\n executeAsync(action, timeout)\r\n } else {\r\n action()\r\n }\r\n }(() => {\r\n if (!dataSource.store()) {\r\n return d.reject(\"canceled\")\r\n }\r\n when(loadResult.data || that.loadFromStore(loadResult.storeLoadOptions)).done((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 }\r\n when(loadResult.data, loadResult.extra.totalCount).done((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(() => {\r\n this._isLoadingAll = false\r\n }).promise()\r\n }\r\n return dataSource.load()\r\n },\r\n reload(full) {\r\n return full ? this._dataSource.reload() : this._dataSource.load()\r\n },\r\n getCachedStoreData() {\r\n return this._cachedStoreData\r\n }\r\n };\r\n return members\r\n}());\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_data_source_adapter.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DataSourceAdapter from \"../../grids/grid_core/data_source_adapter/m_data_source_adapter\";\r\nvar dataSourceAdapterType = DataSourceAdapter;\r\nexport default {\r\n extend(extender) {\r\n dataSourceAdapterType = dataSourceAdapterType.inherit(extender)\r\n },\r\n create: component => new dataSourceAdapterType(component)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/sorting/m_sorting_mixin.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\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\nexport default {\r\n _applyColumnState(options) {\r\n var ariaSortState;\r\n var $sortIndicator;\r\n var sortingMode = this.option(\"sorting.mode\");\r\n var {\r\n rootElement: rootElement\r\n } = options;\r\n var {\r\n column: column\r\n } = options;\r\n var $indicatorsContainer = this._getIndicatorContainer(rootElement);\r\n if (\"sort\" === options.name) {\r\n rootElement.find(\".\".concat(SORT_CLASS)).remove();\r\n !$indicatorsContainer.children().length && $indicatorsContainer.remove();\r\n var isSortingAllowed = \"none\" !== sortingMode && column.allowSorting;\r\n if (!isDefined(column.groupIndex) && (isSortingAllowed || isDefined(column.sortOrder))) {\r\n ariaSortState = \"asc\" === column.sortOrder ? \"ascending\" : \"descending\";\r\n $sortIndicator = this.callBase(options).toggleClass(SORTUP_CLASS, \"asc\" === column.sortOrder).toggleClass(SORTDOWN_CLASS, \"desc\" === column.sortOrder);\r\n var hasSeveralSortIndexes = this.getController && !!this.getController(\"columns\").columnOption(\"sortIndex:1\");\r\n if (hasSeveralSortIndexes && this.option(\"sorting.showSortIndexes\") && column.sortIndex >= 0) {\r\n $(\"\").addClass(SORT_INDEX_ICON_CLASS).text(column.sortIndex + 1).appendTo($sortIndicator);\r\n $sortIndicator.addClass(SORT_INDEX_CLASS)\r\n }\r\n if (isSortingAllowed) {\r\n options.rootElement.addClass(this.addWidgetPrefix(HEADERS_ACTION_CLASS))\r\n }\r\n }\r\n if (!isDefined(column.sortOrder)) {\r\n this.setAria(\"sort\", \"none\", rootElement)\r\n } else {\r\n this.setAria(\"sort\", ariaSortState, rootElement)\r\n }\r\n return $sortIndicator\r\n }\r\n return this.callBase(options)\r\n },\r\n _getIndicatorClassName(name) {\r\n if (\"sort\" === name) {\r\n return SORT_CLASS\r\n }\r\n if (\"sortIndex\" === name) {\r\n return SORT_INDEX_ICON_CLASS\r\n }\r\n return this.callBase(name)\r\n },\r\n _renderIndicator(options) {\r\n var {\r\n column: column\r\n } = options;\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 (!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($cell, column, indicatorName) {\r\n if (\"sort\" === indicatorName && isDefined(column.groupIndex)) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getIndicatorElements($cell, returnAll) {\r\n var $indicatorElements = this.callBase($cell);\r\n return returnAll ? $indicatorElements : $indicatorElements && $indicatorElements.not(\".\".concat(SORT_NONE_CLASS))\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/sorting/m_sorting.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport sortingMixin from \"./m_sorting_mixin\";\r\nvar COLUMN_HEADERS_VIEW_NAMESPACE = \"dxDataGridColumnHeadersView\";\r\nvar ColumnHeadersViewSortingExtender = extend({}, sortingMixin, {\r\n _createRow(row) {\r\n var $row = this.callBase(row);\r\n if (\"header\" === row.rowType) {\r\n eventsEngine.on($row, addNamespace(clickEventName, COLUMN_HEADERS_VIEW_NAMESPACE), \"td\", this.createAction(e => {\r\n this._processHeaderAction(e.event, $row)\r\n }))\r\n }\r\n return $row\r\n },\r\n _processHeaderAction(event, $row) {\r\n if ($(event.currentTarget).parent().get(0) !== $row.get(0)) {\r\n return\r\n }\r\n var that = this;\r\n var keyName = null;\r\n var $cellElementFromEvent = $(event.currentTarget);\r\n var rowIndex = $cellElementFromEvent.parent().index();\r\n var columnIndex = -1;\r\n [].slice.call(that.getCellElements(rowIndex)).some(($cellElement, index) => {\r\n if ($cellElement === $cellElementFromEvent.get(0)) {\r\n columnIndex = index;\r\n return true\r\n }\r\n return\r\n });\r\n var visibleColumns = that._columnsController.getVisibleColumns(rowIndex);\r\n var column = visibleColumns[columnIndex];\r\n var editingController = that.getController(\"editing\");\r\n var editingMode = that.option(\"editing.mode\");\r\n var isCellEditing = editingController && editingController.isEditing() && (\"batch\" === editingMode || \"cell\" === editingMode);\r\n if (isCellEditing || !that._isSortableElement($(event.target))) {\r\n return\r\n }\r\n if (column && !isDefined(column.groupIndex) && !column.command) {\r\n if (event.shiftKey) {\r\n keyName = \"shift\"\r\n } else if (isCommandKeyPressed(event)) {\r\n keyName = \"ctrl\"\r\n }\r\n setTimeout(() => {\r\n that._columnsController.changeSortOrder(column.index, keyName)\r\n })\r\n }\r\n },\r\n _renderCellContent($cell, options) {\r\n var {\r\n column: column\r\n } = options;\r\n if (!column.command && \"header\" === options.rowType) {\r\n this._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _columnOptionChanged(e) {\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n if (1 === changeTypes.length && changeTypes.sorting) {\r\n this._updateIndicators(\"sort\");\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar HeaderPanelSortingExtender = extend({}, sortingMixin, {\r\n _createGroupPanelItem($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = that.callBase(...arguments);\r\n eventsEngine.on($item, addNamespace(clickEventName, \"dxDataGridHeaderPanel\"), that.createAction(() => {\r\n that._processGroupItemAction(groupColumn.index)\r\n }));\r\n that._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $item,\r\n column: {\r\n alignment: that.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n allowSorting: groupColumn.allowSorting,\r\n sortOrder: \"desc\" === groupColumn.sortOrder ? \"desc\" : \"asc\"\r\n },\r\n showColumnLines: true\r\n });\r\n return $item\r\n },\r\n _processGroupItemAction(groupColumnIndex) {\r\n setTimeout(() => this.getController(\"columns\").changeSortOrder(groupColumnIndex))\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var sortingModule = {\r\n defaultOptions: () => ({\r\n sorting: {\r\n mode: \"single\",\r\n ascendingText: messageLocalization.format(\"dxDataGrid-sortingAscendingText\"),\r\n descendingText: messageLocalization.format(\"dxDataGrid-sortingDescendingText\"),\r\n clearText: messageLocalization.format(\"dxDataGrid-sortingClearText\"),\r\n showSortIndexes: true\r\n }\r\n }),\r\n extenders: {\r\n views: {\r\n columnHeadersView: ColumnHeadersViewSortingExtender,\r\n headerPanel: HeaderPanelSortingExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/sorting.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sortingModule\r\n} from \"../../../grids/grid_core/sorting/m_sorting\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"sorting\", sortingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_rows_view.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isEmpty\r\n} from \"../../../../core/utils/string\";\r\nimport {\r\n setHeight\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Scrollable from \"../../../../ui/scroll_view/ui.scrollable\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n ColumnsView\r\n} from \"./m_columns_view\";\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 ? Math.round(scrollable.scrollWidth() - scrollable.clientWidth()) : 0\r\n}\r\n\r\nfunction isGroupRow(_ref) {\r\n var {\r\n rowType: rowType,\r\n column: column\r\n } = _ref;\r\n return \"group\" === rowType && isDefined(column.groupIndex) && !column.showWhenGrouped && !column.command\r\n}\r\nvar defaultCellTemplate = function($container, options) {\r\n var isDataTextEmpty = isEmpty(options.text) && \"data\" === options.rowType;\r\n var {\r\n text: text\r\n } = options;\r\n var container = $container.get(0);\r\n if (isDataTextEmpty) {\r\n gridCoreUtils.setEmptyText($container)\r\n } else if (options.column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n};\r\nvar getScrollableBottomPadding = function(that) {\r\n var scrollable = that.getScrollable();\r\n return scrollable ? Math.ceil(parseFloat($(scrollable.content()).css(\"paddingBottom\"))) : 0\r\n};\r\nclass RowsView extends ColumnsView {\r\n _getDefaultTemplate(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(column) {\r\n var summaryTexts = this.option(\"summary.texts\");\r\n return function($container, options) {\r\n var {\r\n data: data\r\n } = options;\r\n var text = \"\".concat(options.column.caption, \": \").concat(options.text);\r\n var container = $container.get(0);\r\n if (options.summaryItems && options.summaryItems.length) {\r\n text += \" \".concat(gridCoreUtils.getGroupRowSummaryText(options.summaryItems, summaryTexts))\r\n }\r\n if (data) {\r\n if (options.groupContinuedMessage && options.groupContinuesMessage) {\r\n text += \" (\".concat(options.groupContinuedMessage, \". \").concat(options.groupContinuesMessage, \")\")\r\n } else if (options.groupContinuesMessage) {\r\n text += \" (\".concat(options.groupContinuesMessage, \")\")\r\n } else if (options.groupContinuedMessage) {\r\n text += \" (\".concat(options.groupContinuedMessage, \")\")\r\n }\r\n }\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(change) {}\r\n _updateCell($cell, options) {\r\n if (isGroupRow(options)) {\r\n $cell.addClass(GROUP_CELL_CLASS)\r\n }\r\n super._updateCell.apply(this, arguments)\r\n }\r\n _getCellTemplate(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var template;\r\n if (isGroupRow(options)) {\r\n template = column.groupCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultGroupTemplate(column)\r\n }\r\n } else 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: this._getDefaultTemplate(column)\r\n }\r\n }\r\n return template\r\n }\r\n _createRow(row, tag) {\r\n var $row = super._createRow.apply(this, arguments);\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\", isDefined(isRowExpanded) && isRowExpanded.toString(), $row)\r\n }\r\n }\r\n return $row\r\n }\r\n _rowPrepared($row, rowOptions, row) {\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(() => this._isAltRow(row), 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(() => rowOptions.rowIndex, () => this._setAriaRowIndex(rowOptions, $row))\r\n }\r\n super._rowPrepared.apply(this, arguments)\r\n }\r\n _setAriaRowIndex(row, $row) {\r\n var {\r\n component: component\r\n } = this;\r\n var isPagerMode = \"standard\" === component.option(\"scrolling.mode\") && !gridCoreUtils.isVirtualRowRendering(component);\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(e) {\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(() => dataController.generateDataValues(arg.data, arg.columns), () => {\r\n dataController.repaintRows([row.rowIndex], this.option(\"repaintChangesOnly\"))\r\n }, {\r\n deep: true,\r\n skipImmediate: true\r\n });\r\n eventsEngine.on(arg.rowElement, removeEvent, dispose)\r\n }\r\n _renderScrollable(force) {\r\n var $element = this.element();\r\n if (!$element.children().length) {\r\n $element.append(\"
\")\r\n }\r\n if (force || !this._loadPanel) {\r\n this._renderLoadPanel($element, $element.parent(), this._dataController.isLocalStore())\r\n }\r\n if ((force || !this.getScrollable()) && this._dataController.isLoaded()) {\r\n var columns = this.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 (this.option(\"columnAutoWidth\") || this._hasHeight || allColumnsHasWidth || this._columnsController._isColumnFixing()) {\r\n this._renderScrollableCore($element)\r\n }\r\n }\r\n }\r\n _handleScroll(e) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isNativeScrolling = e.component.option(\"useNative\");\r\n this._scrollTop = e.scrollOffset.top;\r\n this._scrollLeft = e.scrollOffset.left;\r\n var scrollLeft = e.scrollOffset.left;\r\n if (rtlEnabled) {\r\n this._scrollRight = getMaxHorizontalScrollOffset(e.component) - this._scrollLeft;\r\n if (isNativeScrolling) {\r\n scrollLeft = -this._scrollRight\r\n }\r\n if (!this.isScrollbarVisible(true)) {\r\n this._scrollLeft = -1\r\n }\r\n }\r\n this.scrollChanged.fire(_extends(_extends({}, e.scrollOffset), {\r\n left: scrollLeft\r\n }), this.name)\r\n }\r\n _renderScrollableCore($element) {\r\n var dxScrollableOptions = this._createScrollableOptions();\r\n var scrollHandler = this._handleScroll.bind(this);\r\n dxScrollableOptions.onScroll = scrollHandler;\r\n this._scrollable = this._createComponent($element, Scrollable, dxScrollableOptions);\r\n this._scrollableContainer = this._scrollable && $(this._scrollable.container())\r\n }\r\n _renderLoadPanel() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return gridCoreUtils.renderLoadPanel.apply(this, arguments)\r\n }\r\n _renderContent(contentElement, tableElement, isFixedTableRendering) {\r\n contentElement.empty().append(tableElement);\r\n return this._findContentElement()\r\n }\r\n _updateContent(newTableElement, change, isFixedTableRendering) {\r\n this._contentChanges.push({\r\n newTableElement: newTableElement,\r\n change: change,\r\n isFixedTableRendering: isFixedTableRendering\r\n });\r\n return this.waitAsyncTemplates().done(() => {\r\n var contentChanges = this._contentChanges;\r\n this._contentChanges = [];\r\n contentChanges.forEach(_ref2 => {\r\n var {\r\n newTableElement: newTableElement,\r\n change: change,\r\n isFixedTableRendering: isFixedTableRendering\r\n } = _ref2;\r\n var tableElement = this.getTableElement(isFixedTableRendering);\r\n var contentElement = this._findContentElement(isFixedTableRendering);\r\n var changeType = null === change || void 0 === change ? void 0 : 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 each(change.rowIndices, (index, rowIndex) => {\r\n var _a;\r\n var $newRowElement = this._getRowElements(newTableElement).eq(index);\r\n var dataChangeType = null === (_a = change.changeTypes) || void 0 === _a ? void 0 : _a[index];\r\n var item = change.items && change.items[index];\r\n executors.push(() => {\r\n var _a;\r\n var $rowElements = this._getRowElements(tableElement);\r\n var $rowElement = $rowElements.eq(rowIndex);\r\n switch (dataChangeType) {\r\n case \"update\":\r\n if (item) {\r\n var columnIndices = null === (_a = change.columnIndices) || void 0 === _a ? void 0 : _a[index];\r\n if (isDefined(item.visible) && item.visible !== $rowElement.is(\":visible\")) {\r\n $rowElement.toggle(item.visible)\r\n } else if (columnIndices) {\r\n this._updateCells($rowElement, $newRowElement, columnIndices)\r\n } else {\r\n $rowElement.replaceWith($newRowElement)\r\n }\r\n }\r\n break;\r\n case \"insert\":\r\n if (!$rowElements.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 if ($rowElement.length) {\r\n $newRowElement.insertBefore($rowElement)\r\n } else {\r\n $newRowElement.insertAfter($rowElements.last())\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 each(executors, (function() {\r\n this()\r\n }));\r\n newTableElement.remove();\r\n break;\r\n default:\r\n this.setTableElement(newTableElement, isFixedTableRendering);\r\n contentElement.addClass(this.addWidgetPrefix(CONTENT_CLASS));\r\n this._renderContent(contentElement, newTableElement, isFixedTableRendering)\r\n }\r\n })\r\n }).fail(() => {\r\n this._contentChanges = []\r\n })\r\n }\r\n _createEmptyRow(className, isFixed, height) {\r\n var $cell;\r\n var $row = this._createRow();\r\n var columns = isFixed ? this.getFixedColumns() : this.getColumns();\r\n $row.addClass(className).toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = this._createCell({\r\n column: columns[i],\r\n rowType: \"freeSpace\",\r\n columnIndex: i,\r\n columns: columns\r\n });\r\n isNumeric(height) && $cell.css(\"height\", height);\r\n $row.append($cell)\r\n }\r\n this.setAria(\"role\", \"presentation\", $row);\r\n return $row\r\n }\r\n getFixedColumns() {\r\n throw new Error(\"Method not implemented.\")\r\n }\r\n _appendEmptyRow($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($tableElement, change) {\r\n var $freeSpaceRowElement = this._createEmptyRow(FREE_SPACE_CLASS);\r\n $freeSpaceRowElement = this._wrapRowIfNeed($tableElement, $freeSpaceRowElement, \"refresh\" === (null === change || void 0 === change ? void 0 : change.changeType));\r\n this._appendEmptyRow($tableElement, $freeSpaceRowElement)\r\n }\r\n _checkRowKeys(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(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 return\r\n })\r\n }\r\n _needUpdateRowHeight(itemsCount) {\r\n return itemsCount > 0 && !this._rowHeight\r\n }\r\n _getRowsHeight($tableElement) {\r\n $tableElement = $tableElement || this._tableElement;\r\n var $rowElements = $tableElement.children(\"tbody\").children().not(\".dx-virtual-row\").not(\".\".concat(FREE_SPACE_CLASS));\r\n return $rowElements.toArray().reduce((sum, row) => sum + getBoundingRect(row).height, 0)\r\n }\r\n _updateRowHeight() {\r\n var $tableElement = this.getTableElement();\r\n var itemsCount = this._dataController.items().length;\r\n if ($tableElement && this._needUpdateRowHeight(itemsCount)) {\r\n var rowsHeight = this._getRowsHeight($tableElement);\r\n this._rowHeight = rowsHeight / itemsCount\r\n }\r\n }\r\n _findContentElement(isFixedTableRendering) {\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(tableElement) {\r\n var $rows = super._getRowElements(tableElement);\r\n return $rows && $rows.not(\".\".concat(FREE_SPACE_CLASS))\r\n }\r\n _getFreeSpaceRowElements($table) {\r\n var tableElements = $table || this.getTableElements();\r\n return tableElements && tableElements.children(\"tbody\").children(\".\".concat(FREE_SPACE_CLASS))\r\n }\r\n _getNoDataText() {\r\n return this.option(\"noDataText\")\r\n }\r\n _rowClick(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", extend({\r\n evaluate(expr) {\r\n var getter = compileGetter(expr);\r\n return getter(item.data)\r\n }\r\n }, e, item))\r\n }\r\n _rowDblClick(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowDblClick\", extend({}, e, item))\r\n }\r\n _getColumnsCountBeforeGroups(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(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 _needWrapRow() {\r\n return super._needWrapRow.apply(this, arguments) || !!this.option(\"dataRowTemplate\")\r\n }\r\n _renderCells($row, options) {\r\n if (\"group\" === options.row.rowType) {\r\n this._renderGroupedCells($row, options)\r\n } else if (options.row.values) {\r\n super._renderCells($row, options)\r\n }\r\n }\r\n _renderGroupedCells($row, options) {\r\n var {\r\n row: row\r\n } = options;\r\n var expandColumn;\r\n var {\r\n columns: columns\r\n } = options;\r\n var {\r\n rowIndex: rowIndex\r\n } = row;\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 if (this._needRenderCell(i, options.columnIndices)) {\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 columnIndices: options.columnIndices,\r\n change: options.change\r\n })\r\n }\r\n }\r\n var groupColumnAlignment = getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var groupColumn = extend({}, columns[groupCellOptions.columnIndex], {\r\n command: null,\r\n type: 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 if (this._needRenderCell(groupCellOptions.columnIndex + 1, options.columnIndices)) {\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 + 1,\r\n columnIndices: options.columnIndices,\r\n change: options.change\r\n })\r\n }\r\n }\r\n _renderRows($table, options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n super._renderRows($table, extend({\r\n scrollingMode: scrollingMode\r\n }, options));\r\n this._checkRowKeys(options.change);\r\n this._renderFreeSpaceRow($table, options.change);\r\n if (!this._hasHeight) {\r\n this.updateFreeSpaceRowHeight($table)\r\n }\r\n }\r\n _renderDataRowByTemplate($table, options, dataRowTemplate) {\r\n var {\r\n row: row\r\n } = options;\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, row);\r\n var $tbody = this._createRow(row, \"tbody\");\r\n $tbody.appendTo($table);\r\n this.renderTemplate($tbody, dataRowTemplate, rowOptions, true, options.change);\r\n this._rowPrepared($tbody, rowOptions, options.row)\r\n }\r\n _renderRow($table, options) {\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n rowTemplate: rowTemplate\r\n } = this.option();\r\n var dataRowTemplate = this.option(\"dataRowTemplate\");\r\n if (\"data\" === row.rowType && dataRowTemplate) {\r\n this._renderDataRowByTemplate($table, options, dataRowTemplate)\r\n } else if ((\"data\" === row.rowType || \"group\" === row.rowType) && !isDefined(row.groupIndex) && rowTemplate) {\r\n this.renderTemplate($table, rowTemplate, extend({\r\n columns: options.columns\r\n }, row), true)\r\n } else {\r\n super._renderRow($table, options)\r\n }\r\n }\r\n _renderTable(options) {\r\n var that = this;\r\n var $table = super._renderTable(options);\r\n if (!isDefined(that.getTableElement())) {\r\n that.setTableElement($table);\r\n that._renderScrollable(true);\r\n that.resizeCompleted.add((function resizeCompletedHandler() {\r\n var scrollableInstance = that.getScrollable();\r\n if (scrollableInstance && that.element().closest(getWindow().document).length) {\r\n that.resizeCompleted.remove(resizeCompletedHandler);\r\n scrollableInstance._visibilityChanged(true)\r\n }\r\n }))\r\n } else {\r\n that._renderScrollable()\r\n }\r\n return $table\r\n }\r\n _createTable() {\r\n var $table = super._createTable.apply(this, arguments);\r\n if (this.option().rowTemplate || this.option().dataRowTemplate) {\r\n $table.appendTo(this.component.$element())\r\n }\r\n return $table\r\n }\r\n _renderCore(change) {\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(ROWS_VIEW_CLASS)).toggleClass(this.addWidgetPrefix(NOWRAP_CLASS), !this.option(\"wordWrapEnabled\"));\r\n $element.toggleClass(EMPTY_CLASS, this._dataController.isEmpty());\r\n this.setAria(\"role\", \"presentation\", $element);\r\n var $table = this._renderTable({\r\n change: change\r\n });\r\n var deferred = this._updateContent($table, change);\r\n super._renderCore(change);\r\n this._lastColumnWidths = null;\r\n return deferred\r\n }\r\n _getRows(change) {\r\n return change && change.items || this._dataController.items()\r\n }\r\n _getCellOptions(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n data: data\r\n } = row;\r\n var summaryCells = row && row.summaryCells;\r\n var {\r\n value: value\r\n } = options;\r\n var displayValue = gridCoreUtils.getDisplayValue(column, value, data, row.rowType);\r\n var parameters = super._getCellOptions(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 ? gridCoreUtils.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 (isDefined(column.groupIndex) && !column.command) {\r\n var groupingTextsOptions = this.option(\"grouping.texts\");\r\n var scrollingMode = this.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($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 each($rows, (rowIndex, row) => {\r\n if (!$(row).hasClass(GROUP_ROW_CLASS)) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n if (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 (!isNumeric(columnID)) {\r\n break\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n _getDevicePixelRatio() {\r\n return getWindow().devicePixelRatio\r\n }\r\n renderNoDataText() {\r\n return gridCoreUtils.renderNoDataText.apply(this, arguments)\r\n }\r\n getCellOptions(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 (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(index) {\r\n if (index >= 0) {\r\n var rows = this._getRowElements();\r\n if (rows.length > index) {\r\n return $(rows[index])\r\n }\r\n }\r\n return\r\n }\r\n updateFreeSpaceRowHeight($table) {\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 setHeight(freeSpaceRowElements, freeSpaceRowCount * this._rowHeight);\r\n isFreeSpaceRowVisible = true\r\n }\r\n if (!isFreeSpaceRowVisible && $table) {\r\n 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 deferUpdate(() => {\r\n var scrollbarWidth = this.getScrollbarWidth(true);\r\n var elementHeightWithoutScrollbar = getHeight(this.element()) - scrollbarWidth;\r\n var contentHeight = getOuterHeight(contentElement);\r\n var showFreeSpaceRow = elementHeightWithoutScrollbar - contentHeight > 0;\r\n var rowsHeight = this._getRowsHeight(contentElement.children().first());\r\n var $tableElement = $table || this.getTableElements();\r\n var borderTopWidth = Math.ceil(parseFloat($tableElement.css(\"borderTopWidth\")));\r\n var heightCorrection = this._getHeightCorrection();\r\n var resultHeight = elementHeightWithoutScrollbar - rowsHeight - borderTopWidth - heightCorrection;\r\n if (showFreeSpaceRow) {\r\n deferRender(() => {\r\n freeSpaceRowElements.css(\"height\", resultHeight);\r\n isFreeSpaceRowVisible = true;\r\n freeSpaceRowElements.show()\r\n })\r\n }\r\n deferRender(() => this._updateLastRowBorder(isFreeSpaceRowVisible))\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() {\r\n var isZoomedWebkit = browser.webkit && this._getDevicePixelRatio() >= 2;\r\n var isChromeLatest = browser.chrome && browser.version >= 91;\r\n var hasExtraBorderTop = browser.mozilla && browser.version >= 70 && !this.option(\"showRowLines\");\r\n return isZoomedWebkit || hasExtraBorderTop || isChromeLatest ? 1 : 0\r\n }\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n super._columnOptionChanged(e);\r\n this._fireColumnResizedCallbacks()\r\n }\r\n }\r\n getScrollable() {\r\n return this._scrollable\r\n }\r\n init() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n super.init();\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 that._contentChanges = [];\r\n dataController.loadingChanged.add((isLoading, messageText) => {\r\n that.setLoading(isLoading, messageText)\r\n });\r\n dataController.dataSourceChanged.add(() => {\r\n if (this._scrollLeft >= 0 && !this._dataController.isLoading()) {\r\n this._handleScroll({\r\n component: this.getScrollable(),\r\n forceUpdateScrollPosition: true,\r\n scrollOffset: {\r\n top: this._scrollTop,\r\n left: this._scrollLeft\r\n }\r\n })\r\n }\r\n })\r\n }\r\n _handleDataChanged(change) {\r\n switch (change.changeType) {\r\n case \"refresh\":\r\n case \"prepend\":\r\n case \"append\":\r\n case \"update\":\r\n this.render(null, change);\r\n break;\r\n default:\r\n this._update(change)\r\n }\r\n }\r\n publicMethods() {\r\n return [\"isScrollbarVisible\", \"getTopVisibleRowData\", \"getScrollbarWidth\", \"getCellElement\", \"getRowElement\", \"getScrollable\"]\r\n }\r\n contentWidth() {\r\n return getWidth(this.element()) - this.getScrollbarWidth()\r\n }\r\n getScrollbarWidth(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() {\r\n var lastColumnWidths = this._lastColumnWidths || [];\r\n var columnWidths = [];\r\n var columns = this.getColumns();\r\n for (var i = 0; i < columns.length; i++) {\r\n columnWidths[i] = columns[i].visibleWidth;\r\n if (columns[i].resizedCallbacks && !isDefined(columns[i].groupIndex) && lastColumnWidths[i] !== columnWidths[i]) {\r\n columns[i].resizedCallbacks.fire(columnWidths[i])\r\n }\r\n }\r\n this._lastColumnWidths = columnWidths\r\n }\r\n _updateLastRowBorder(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() {\r\n var scrollable = Scrollable.getInstance(this.element());\r\n if (scrollable) {\r\n scrollable.update();\r\n if (scrollable.option(\"useNative\") || !(null === scrollable || void 0 === scrollable ? void 0 : scrollable.isRenovated())) {\r\n this._updateHorizontalScrollPosition()\r\n }\r\n }\r\n }\r\n _updateHorizontalScrollPosition() {\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() {\r\n var that = this;\r\n that._fireColumnResizedCallbacks();\r\n that._updateRowHeight();\r\n deferRender(() => {\r\n that._renderScrollable();\r\n that.renderNoDataText();\r\n that.updateFreeSpaceRowHeight();\r\n deferUpdate(() => {\r\n that._updateScrollable()\r\n })\r\n })\r\n }\r\n scrollTo(location) {\r\n var $element = this.element();\r\n var dxScrollable = $element && Scrollable.getInstance($element);\r\n if (dxScrollable) {\r\n dxScrollable.scrollTo(location)\r\n }\r\n }\r\n height(height) {\r\n var $element = this.element();\r\n if (0 === arguments.length) {\r\n return $element ? getOuterHeight($element, true) : 0\r\n }\r\n if (isDefined(height) && $element) {\r\n this.hasHeight(\"auto\" !== height);\r\n setHeight($element, height)\r\n }\r\n }\r\n hasHeight(hasHeight) {\r\n if (0 === arguments.length) {\r\n return !!this._hasHeight\r\n }\r\n this._hasHeight = hasHeight;\r\n return\r\n }\r\n setLoading(isLoading, messageText) {\r\n var loadPanel = this._loadPanel;\r\n var dataController = this._dataController;\r\n var loadPanelOptions = this.option(\"loadPanel\") || {};\r\n var animation = dataController.isLoaded() ? loadPanelOptions.animation : null;\r\n var $element = this.element();\r\n if (!hasWindow()) {\r\n return\r\n }\r\n if (!loadPanel && void 0 !== messageText && dataController.isLocalStore() && \"auto\" === loadPanelOptions.enabled && $element) {\r\n this._renderLoadPanel($element, $element.parent());\r\n loadPanel = this._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 if (isLoading) {\r\n visibilityOptions.position = gridCoreUtils.calculateLoadPanelPosition($element)\r\n }\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n if (loadPanel.option(\"visible\") && !isLoading) {\r\n this._hideLoadingTimeoutID = setTimeout(() => {\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(columnIndex, value) {\r\n var $rows = this._getRowElements().not(\".\".concat(GROUP_ROW_CLASS)) || [];\r\n this._setRowsOpacityCore($rows, this.getColumns(), columnIndex, value)\r\n }\r\n _getCellElementsCore(rowIndex) {\r\n var $cells = super._getCellElementsCore.apply(this, arguments);\r\n if ($cells) {\r\n var groupCellIndex = $cells.filter(\".\".concat(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 _getBoundaryVisibleItemIndex(isTop, isFloor) {\r\n var itemIndex = 0;\r\n var prevOffset = 0;\r\n var offset = 0;\r\n var viewportBoundary = this._scrollTop;\r\n var $contentElement = this._findContentElement();\r\n var contentElementOffsetTop = $contentElement && $contentElement.offset().top;\r\n var dataController = this.getController(\"data\");\r\n var items = dataController.items();\r\n var tableElement = this.getTableElement();\r\n if (items.length && tableElement) {\r\n var rowElements = this._getRowElements(tableElement).filter(\":visible\");\r\n if (!isTop) {\r\n var height = getOuterHeight(this._hasHeight ? this.element() : getWindow());\r\n viewportBoundary += height\r\n }\r\n for (itemIndex = 0; itemIndex < items.length; itemIndex++) {\r\n prevOffset = offset;\r\n var $rowElement = $(rowElements).eq(itemIndex);\r\n if ($rowElement.length) {\r\n offset = $rowElement.offset();\r\n offset = (isTop ? offset.top : offset.top + getOuterHeight($rowElement)) - contentElementOffsetTop;\r\n if (offset > viewportBoundary) {\r\n if (itemIndex) {\r\n if (isFloor || 2 * viewportBoundary < Math.round(offset + prevOffset)) {\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 getTopVisibleItemIndex(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(true, isFloor)\r\n }\r\n getBottomVisibleItemIndex(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(false, isFloor)\r\n }\r\n getTopVisibleRowData() {\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 return\r\n }\r\n _scrollToElement($element, offset) {\r\n var scrollable = this.getScrollable();\r\n scrollable && scrollable.scrollToElement($element, offset)\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(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 \"dataRowTemplate\":\r\n case \"twoWayBindingEnabled\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"scrolling\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n args.handled = true;\r\n break;\r\n case \"rtlEnabled\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n break;\r\n case \"loadPanel\":\r\n this._tableElement = null;\r\n this._invalidate(true, \"loadPanel.enabled\" !== args.fullName);\r\n args.handled = true;\r\n break;\r\n case \"noDataText\":\r\n this.renderNoDataText();\r\n args.handled = true\r\n }\r\n }\r\n dispose() {\r\n super.dispose();\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n this._scrollable && this._scrollable.dispose()\r\n }\r\n setScrollerSpacing() {}\r\n _restoreErrorRow() {}\r\n}\r\nexport var rowsModule = {\r\n defaultOptions: () => ({\r\n hoverStateEnabled: false,\r\n scrolling: {\r\n useNative: \"auto\"\r\n },\r\n loadPanel: {\r\n enabled: \"auto\",\r\n text: messageLocalization.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 dataRowTemplate: null,\r\n columnAutoWidth: false,\r\n noDataText: messageLocalization.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 views: {\r\n rowsView: RowsView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/rows.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n rowsModule\r\n} from \"../../../grids/grid_core/views/m_rows_view\";\r\nimport gridCore from \"../m_core\";\r\nexport var RowsView = rowsModule.views.rowsView;\r\ngridCore.registerModule(\"rows\", rowsModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/context_menu/m_context_menu.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport ContextMenu from \"../../../../ui/context_menu\";\r\nimport modules from \"../m_modules\";\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 = modules.ViewController.inherit({\r\n init() {\r\n this.createAction(\"onContextMenuPreparing\")\r\n },\r\n getContextMenuItems(dxEvent) {\r\n if (!dxEvent) {\r\n return false\r\n }\r\n var that = this;\r\n var $targetElement = $(dxEvent.target);\r\n var $element;\r\n var $targetRowElement;\r\n var $targetCellElement;\r\n var menuItems;\r\n each(VIEW_NAMES, (function() {\r\n var _a, _b;\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: getPublicElement($targetElement),\r\n target: viewName[this],\r\n rowIndex: rowIndex,\r\n row: view._getRows()[rowIndex],\r\n columnIndex: columnIndex,\r\n column: null === (_b = null === (_a = null === rowOptions || void 0 === rowOptions ? void 0 : rowOptions.cells) || void 0 === _a ? void 0 : _a[columnIndex]) || void 0 === _b ? void 0 : _b.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 return\r\n }));\r\n return menuItems\r\n },\r\n _contextMenuPrepared: noop\r\n});\r\nvar ContextMenuView = modules.View.inherit({\r\n _renderCore() {\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, ContextMenu, {\r\n onPositioning(actionArgs) {\r\n var {\r\n event: event\r\n } = actionArgs;\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(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\nexport var contextMenuModule = {\r\n defaultOptions: () => ({\r\n onContextMenuPreparing: null\r\n }),\r\n controllers: {\r\n contextMenu: ContextMenuController\r\n },\r\n views: {\r\n contextMenuView: ContextMenuView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/context_menu.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n contextMenuModule\r\n} from \"../../../grids/grid_core/context_menu/m_context_menu\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"contextMenu\", contextMenuModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/error_handling/m_error_handling.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport modules from \"../m_modules\";\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 = modules.ViewController.inherit({\r\n init() {\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n },\r\n _createErrorRow(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 = $(\"
\").addClass(ERROR_ROW_CLASS);\r\n $closeButton = $(\"
\").addClass(ERROR_CLOSEBUTTON_CLASS).addClass(that.addWidgetPrefix(ACTION_CLASS));\r\n eventsEngine.on($closeButton, clickEventName, that.createAction(args => {\r\n var e = args.event;\r\n var $errorRow;\r\n var errorRowIndex = $(e.currentTarget).closest(\".\".concat(ERROR_ROW_CLASS)).index();\r\n e.stopPropagation();\r\n each($tableElements, (_, tableElement) => {\r\n $errorRow = $(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 $(\"
\").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(error) {\r\n var message = error.url ? error.message.replace(error.url, \"\") : error.message || error;\r\n var $message = $(\"
\").addClass(ERROR_MESSAGE_CLASS).text(message);\r\n if (error.url) {\r\n $(\"\").attr(\"href\", error.url).text(error.url).appendTo($message)\r\n }\r\n return $message\r\n },\r\n renderErrorRow(error, rowIndex, $popupContent) {\r\n var that = this;\r\n var $errorMessageElement;\r\n var $firstErrorRow;\r\n if ($popupContent) {\r\n $popupContent.find(\".\".concat(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 = viewElement.getTableElements();\r\n each($tableElements, (_, tableElement) => {\r\n $errorMessageElement = that._createErrorRow(error, $tableElements);\r\n $firstErrorRow = $firstErrorRow || $errorMessageElement;\r\n if (rowIndex >= 0) {\r\n var $row = viewElement._getRowElements($(tableElement)).eq(rowIndex);\r\n that.removeErrorRow($row.next());\r\n $errorMessageElement.insertAfter($row)\r\n } else {\r\n var $tbody = $(tableElement).children(\"tbody\");\r\n var rowElements = $tbody.children(\"tr\");\r\n if (that._columnHeadersView.isVisible()) {\r\n that.removeErrorRow(rowElements.last());\r\n $(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 var resizingController = that.getController(\"resizing\");\r\n resizingController && resizingController.fireContentReadyAction();\r\n return $firstErrorRow\r\n },\r\n removeErrorRow($row) {\r\n if (!$row) {\r\n var $columnHeaders = this._columnHeadersView && this._columnHeadersView.element();\r\n $row = $columnHeaders && $columnHeaders.find(\".\".concat(ERROR_ROW_CLASS));\r\n if (!$row || !$row.length) {\r\n var $rowsViewElement = this._rowsView.element();\r\n $row = $rowsViewElement && $rowsViewElement.find(\".\".concat(ERROR_ROW_CLASS))\r\n }\r\n }\r\n $row && $row.hasClass(ERROR_ROW_CLASS) && $row.remove()\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"errorRowEnabled\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var errorHandlingModule = {\r\n defaultOptions: () => ({\r\n errorRowEnabled: true\r\n }),\r\n controllers: {\r\n errorHandling: ErrorHandlingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init() {\r\n var that = this;\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n that.callBase();\r\n that.dataErrorOccurred.add((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(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\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/error_handling.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n errorHandlingModule\r\n} from \"../../../grids/grid_core/error_handling/m_error_handling\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"errorHandling\", errorHandlingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_grid_view.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getInnerWidth,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport * as accessibility from \"../../../../ui/shared/accessibility\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar BORDERS_CLASS = \"borders\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar IMPORTANT_MARGIN_CLASS = \"important-margin\";\r\nvar GRIDBASE_CONTAINER_CLASS = \"dx-gridbase-container\";\r\nvar GROUP_ROW_SELECTOR = \"tr.dx-group-row\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\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 isString(width) && width.endsWith(\"%\")\r\n};\r\nvar isPixelWidth = function(width) {\r\n return isString(width) && width.endsWith(\"px\")\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((width, index) => index === columnIndex ? currentMinWidth : width))\r\n};\r\nvar restoreFocus = function(focusedElement, selectionRange) {\r\n accessibility.hiddenFocus(focusedElement, true);\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n};\r\nvar resizingControllerMembers = {\r\n _initPostRenderHandlers() {\r\n if (!this._refreshSizesHandler) {\r\n this._refreshSizesHandler = e => {\r\n var resizeDeferred = (new Deferred).resolve(null);\r\n var changeType = null === e || void 0 === e ? void 0 : e.changeType;\r\n var isDelayed = null === e || void 0 === e ? void 0 : e.isDelayed;\r\n var needFireContentReady = changeType && \"updateSelection\" !== changeType && \"updateFocusedRow\" !== changeType && \"pageIndex\" !== changeType && !isDelayed;\r\n this._dataController.changed.remove(this._refreshSizesHandler);\r\n if (this._checkSize()) {\r\n resizeDeferred = this._refreshSizes(e)\r\n }\r\n if (needFireContentReady) {\r\n when(resizeDeferred).done(() => {\r\n this._setAriaLabel();\r\n this.fireContentReadyAction()\r\n })\r\n }\r\n };\r\n this._dataController.changed.add(() => {\r\n this._dataController.changed.add(this._refreshSizesHandler)\r\n })\r\n }\r\n },\r\n _refreshSizes(e) {\r\n var _a;\r\n var resizeDeferred = (new Deferred).resolve(null);\r\n var changeType = null === e || void 0 === e ? void 0 : e.changeType;\r\n var isDelayed = null === e || void 0 === e ? void 0 : e.isDelayed;\r\n var items = this._dataController.items();\r\n if (!e || \"refresh\" === changeType || \"prepend\" === changeType || \"append\" === changeType) {\r\n if (!isDelayed) {\r\n resizeDeferred = this.resize()\r\n }\r\n } else if (\"update\" === changeType) {\r\n if (0 === (null === (_a = e.changeTypes) || void 0 === _a ? void 0 : _a.length)) {\r\n return resizeDeferred\r\n }\r\n if ((items.length > 1 || \"insert\" !== e.changeTypes[0]) && !(0 === items.length && \"remove\" === e.changeTypes[0]) && !e.needUpdateDimensions) {\r\n resizeDeferred = new Deferred;\r\n this._waitAsyncTemplates().done(() => {\r\n deferUpdate(() => deferRender(() => deferUpdate(() => {\r\n this._setScrollerSpacing();\r\n this._rowsView.resize();\r\n resizeDeferred.resolve()\r\n })))\r\n }).fail(resizeDeferred.reject)\r\n } else {\r\n resizeDeferred = this.resize()\r\n }\r\n }\r\n return resizeDeferred\r\n },\r\n fireContentReadyAction() {\r\n this.component._fireContentReadyAction()\r\n },\r\n _getWidgetAriaLabel: () => \"dxDataGrid-ariaDataGrid\",\r\n _setAriaLabel() {\r\n var totalItemsCount = Math.max(0, this._dataController.totalItemsCount());\r\n this.component.setAria(\"label\", messageLocalization.format(this._getWidgetAriaLabel(), totalItemsCount, this.component.columnCount()), this.component.$element().children(\".\".concat(GRIDBASE_CONTAINER_CLASS)))\r\n },\r\n _getBestFitWidths() {\r\n var _a;\r\n var rowsView = this._rowsView;\r\n var columnHeadersView = this._columnHeadersView;\r\n var widths = rowsView.getColumnWidths();\r\n if (!(null === widths || void 0 === widths ? void 0 : widths.length)) {\r\n var headersTableElement = columnHeadersView.getTableElement();\r\n columnHeadersView.setTableElement(null === (_a = rowsView.getTableElement()) || void 0 === _a ? void 0 : _a.children(\".dx-header\"));\r\n widths = columnHeadersView.getColumnWidths();\r\n columnHeadersView.setTableElement(headersTableElement)\r\n }\r\n return widths\r\n },\r\n _setVisibleWidths(visibleColumns, widths) {\r\n var columnsController = this._columnsController;\r\n columnsController.beginUpdate();\r\n each(visibleColumns, (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(view, className, isBestFit) {\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 each($rowsTables, (index, tableElement) => {\r\n var $tableBody;\r\n var $rowsTable = $(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(\".\".concat(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(isBestFit) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n var $rowsFixedTable = this._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 each($rowsFixedTable.find(GROUP_ROW_SELECTOR), (idx, item) => {\r\n $(item).css(\"display\", isBestFit ? \"none\" : \"\")\r\n });\r\n $rowsFixedTable.toggleClass(this.addWidgetPrefix(TABLE_FIXED_CLASS), !isBestFit);\r\n this._toggleBestFitModeForView(this._columnHeadersView, \"dx-header\", isBestFit);\r\n this._toggleBestFitModeForView(this._footerView, \"dx-footer\", isBestFit);\r\n if (this._needStretch()) {\r\n $rowsTable.get(0).style.width = isBestFit ? \"auto\" : \"\"\r\n }\r\n },\r\n _toggleContentMinHeight(value) {\r\n var scrollable = this._rowsView.getScrollable();\r\n var $contentElement = this._rowsView._findContentElement();\r\n if (false === (null === scrollable || void 0 === scrollable ? void 0 : scrollable.option(\"useNative\"))) {\r\n $contentElement.css({\r\n minHeight: value ? gridCoreUtils.getContentHeightLimit(browser) : \"\"\r\n })\r\n }\r\n },\r\n _synchronizeColumns() {\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var wordWrapEnabled = this.option(\"wordWrapEnabled\");\r\n var hasUndefinedColumnWidth = visibleColumns.some(column => !isDefined(column.width));\r\n var needBestFit = this._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 !needBestFit && each(visibleColumns, (index, column) => {\r\n if (\"auto\" === column.width) {\r\n needBestFit = true;\r\n return false\r\n }\r\n return\r\n });\r\n each(visibleColumns, (index, column) => {\r\n if (column.minWidth) {\r\n hasMinWidth = true;\r\n return false\r\n }\r\n return\r\n });\r\n this._setVisibleWidths(visibleColumns, []);\r\n var $element = this.component.$element();\r\n if (needBestFit) {\r\n focusedElement = domAdapter.getActiveElement($element.get(0));\r\n selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._toggleBestFitMode(true);\r\n resetBestFitMode = true\r\n }\r\n this._toggleContentMinHeight(wordWrapEnabled);\r\n if ($element && $element.get(0) && this._maxWidth) {\r\n delete this._maxWidth;\r\n $element[0].style.maxWidth = \"\"\r\n }\r\n deferUpdate(() => {\r\n if (needBestFit) {\r\n resultWidths = this._getBestFitWidths();\r\n each(visibleColumns, (index, column) => {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"bestFitWidth\", resultWidths[index], true)\r\n })\r\n } else if (hasMinWidth) {\r\n resultWidths = this._getBestFitWidths()\r\n }\r\n each(visibleColumns, (function(index) {\r\n var {\r\n width: width\r\n } = this;\r\n if (\"auto\" !== width) {\r\n if (isDefined(width)) {\r\n resultWidths[index] = isNumeric(width) || isPixelWidth(width) ? parseFloat(width) : width\r\n } else if (!columnAutoWidth) {\r\n resultWidths[index] = void 0\r\n }\r\n }\r\n }));\r\n if (resetBestFitMode) {\r\n this._toggleBestFitMode(false);\r\n resetBestFitMode = false;\r\n if (focusedElement && focusedElement !== domAdapter.getActiveElement()) {\r\n var isFocusOutsideWindow = getBoundingRect(focusedElement).bottom < 0;\r\n if (!isFocusOutsideWindow) {\r\n restoreFocus(focusedElement, selectionRange)\r\n }\r\n }\r\n }\r\n isColumnWidthsCorrected = this._correctColumnWidths(resultWidths, visibleColumns);\r\n if (columnAutoWidth) {\r\n ! function() {\r\n var expandColumnWidth;\r\n each(visibleColumns, (index, column) => {\r\n if (\"groupExpand\" === column.type) {\r\n expandColumnWidth = resultWidths[index]\r\n }\r\n });\r\n each(visibleColumns, (index, column) => {\r\n if (\"groupExpand\" === column.type && expandColumnWidth) {\r\n resultWidths[index] = expandColumnWidth\r\n }\r\n })\r\n }();\r\n if (this._needStretch()) {\r\n this._processStretch(resultWidths, visibleColumns)\r\n }\r\n }\r\n deferRender(() => {\r\n if (needBestFit || isColumnWidthsCorrected || hasUndefinedColumnWidth) {\r\n this._setVisibleWidths(visibleColumns, resultWidths)\r\n }\r\n if (wordWrapEnabled) {\r\n this._toggleContentMinHeight(false)\r\n }\r\n })\r\n })\r\n },\r\n _needBestFit() {\r\n return this.option(\"columnAutoWidth\")\r\n },\r\n _needStretch() {\r\n return this._columnsController.getVisibleColumns().some(c => \"auto\" === c.width && !c.command)\r\n },\r\n _getAverageColumnsWidth(resultWidths) {\r\n var freeWidth = calculateFreeWidth(this, resultWidths);\r\n var columnCountWithoutWidth = resultWidths.filter(width => void 0 === width).length;\r\n return freeWidth / columnCountWithoutWidth\r\n },\r\n _correctColumnWidths(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 {\r\n minWidth: minWidth\r\n } = column;\r\n if (minWidth) {\r\n if (void 0 === width) {\r\n var averageColumnsWidth = that._getAverageColumnsWidth(resultWidths);\r\n width = averageColumnsWidth\r\n } else 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 var realColumnWidth = that._getRealColumnWidth(index, resultWidths.map((columnWidth, columnIndex) => index === columnIndex ? width : columnWidth));\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 (!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 (!hasAutoWidth && resultWidths.length) {\r\n var $rowsViewElement = that._rowsView.element();\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 = gridCoreUtils.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 var borderWidth = that.option(\"showBorders\") ? Math.ceil(getOuterWidth($rowsViewElement) - getInnerWidth($rowsViewElement)) : 0;\r\n that._maxWidth = totalWidth + scrollbarWidth + borderWidth;\r\n $element.css(\"maxWidth\", that._maxWidth)\r\n }\r\n }\r\n }\r\n }\r\n return isColumnWidthsCorrected\r\n },\r\n _processStretch(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 }\r\n 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(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((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((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(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 _getGroupElement() {\r\n return this.component.$element().children().get(0)\r\n },\r\n updateSize(rootElement) {\r\n var $rootElement = $(rootElement);\r\n var importantMarginClass = this.addWidgetPrefix(IMPORTANT_MARGIN_CLASS);\r\n if (void 0 === this._hasHeight && $rootElement && $rootElement.is(\":visible\") && getWidth($rootElement)) {\r\n var $groupElement = $rootElement.children(\".\".concat(this.getWidgetContainerClass()));\r\n if ($groupElement.length) {\r\n $groupElement.detach()\r\n }\r\n this._hasHeight = !!getHeight($rootElement);\r\n var width = getWidth($rootElement);\r\n $rootElement.addClass(importantMarginClass);\r\n this._hasWidth = getWidth($rootElement) === 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: () => [\"resize\", \"updateDimensions\"],\r\n _waitAsyncTemplates() {\r\n var _a, _b, _c;\r\n return when(null === (_a = this._columnHeadersView) || void 0 === _a ? void 0 : _a.waitAsyncTemplates(true), null === (_b = this._rowsView) || void 0 === _b ? void 0 : _b.waitAsyncTemplates(true), null === (_c = this._footerView) || void 0 === _c ? void 0 : _c.waitAsyncTemplates(true))\r\n },\r\n resize() {\r\n if (this.component._requireResize) {\r\n return\r\n }\r\n var d = new Deferred;\r\n this._waitAsyncTemplates().done(() => {\r\n when(this.updateDimensions()).done(d.resolve).fail(d.reject)\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n updateDimensions(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;\r\n when(prevResult).always(() => {\r\n deferRender(() => {\r\n if (that._dataController.isLoaded()) {\r\n that._synchronizeColumns()\r\n }\r\n that._resetGroupElementHeight();\r\n deferUpdate(() => {\r\n deferRender(() => {\r\n deferUpdate(() => {\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() {\r\n var groupElement = this._getGroupElement();\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(checkSize) {\r\n var $rootElement = this.component.$element();\r\n var isWidgetVisible = $rootElement.is(\":visible\");\r\n var isGridSizeChanged = this._lastWidth !== getWidth($rootElement) || this._lastHeight !== getHeight($rootElement) || this._devicePixelRatio !== getWindow().devicePixelRatio;\r\n return isWidgetVisible && (!checkSize || isGridSizeChanged)\r\n },\r\n _setScrollerSpacingCore() {\r\n var that = this;\r\n var vScrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var hScrollbarWidth = that._rowsView.getScrollbarWidth(true);\r\n deferRender(() => {\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() {\r\n var scrollable = this._rowsView.getScrollable();\r\n var isNativeScrolling = true === this.option(\"scrolling.useNative\");\r\n if (!scrollable || isNativeScrolling) {\r\n deferRender(() => {\r\n deferUpdate(() => {\r\n this._setScrollerSpacingCore()\r\n })\r\n })\r\n } else {\r\n this._setScrollerSpacingCore()\r\n }\r\n },\r\n _updateDimensionsCore() {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var editorFactory = that.getController(\"editorFactory\");\r\n var rowsView = that._rowsView;\r\n var $rootElement = that.component.$element();\r\n var groupElement = this._getGroupElement();\r\n var rootElementHeight = getHeight($rootElement);\r\n var height = that.option(\"height\") || $rootElement.get(0).style.height;\r\n var isHeightSpecified = !!height && \"auto\" !== height;\r\n var maxHeight = parseInt($rootElement.css(\"maxHeight\"));\r\n var maxHeightHappened = maxHeight && rootElementHeight >= maxHeight;\r\n var isMaxHeightApplied = groupElement && groupElement.scrollHeight === groupElement.offsetHeight;\r\n that.updateSize($rootElement);\r\n deferRender(() => {\r\n var hasHeight = that._hasHeight || !!maxHeight || isHeightSpecified;\r\n rowsView.hasHeight(hasHeight);\r\n if (maxHeightHappened && !isMaxHeightApplied) {\r\n $(groupElement).css(\"height\", maxHeight)\r\n }\r\n if (!dataController.isLoaded()) {\r\n rowsView.setLoading(dataController.isLoading());\r\n return\r\n }\r\n deferUpdate(() => {\r\n that._updateLastSizes($rootElement);\r\n that._setScrollerSpacing();\r\n each(VIEW_NAMES, (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($rootElement) {\r\n this._lastWidth = getWidth($rootElement);\r\n this._lastHeight = getHeight($rootElement);\r\n this._devicePixelRatio = getWindow().devicePixelRatio\r\n },\r\n optionChanged(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 \"renderAsync\":\r\n args.handled = true;\r\n return;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n init() {\r\n this._dataController = this.getController(\"data\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._footerView = this.getView(\"footerView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n }\r\n};\r\nvar ResizingController = modules.ViewController.inherit(resizingControllerMembers);\r\nvar SynchronizeScrollingController = modules.ViewController.inherit({\r\n _scrollChangedHandler(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() {\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 = modules.View.inherit({\r\n _endUpdateCore() {\r\n if (this.component._requireResize) {\r\n this.component._requireResize = false;\r\n this._resizingController.resize()\r\n }\r\n },\r\n init() {\r\n this._resizingController = this.getController(\"resizing\");\r\n this._dataController = this.getController(\"data\")\r\n },\r\n getView(name) {\r\n return this.component._views[name]\r\n },\r\n element() {\r\n return this._groupElement\r\n },\r\n optionChanged(args) {\r\n if (isDefined(this._groupElement) && \"showBorders\" === args.name) {\r\n this._groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!args.value);\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _renderViews($groupElement) {\r\n var that = this;\r\n each(VIEW_NAMES, (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: () => \"group\",\r\n render($rootElement) {\r\n var isFirstRender = !this._groupElement;\r\n var $groupElement = this._groupElement || $(\"
\").addClass(this.getWidgetContainerClass());\r\n $groupElement.addClass(GRIDBASE_CONTAINER_CLASS);\r\n $groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!this.option(\"showBorders\"));\r\n this.setAria(\"role\", \"presentation\", $rootElement);\r\n this.component.setAria(\"role\", this._getTableRoleName(), $groupElement);\r\n this._rootElement = $rootElement || this._rootElement;\r\n if (isFirstRender) {\r\n this._groupElement = $groupElement;\r\n hasWindow() && this.getController(\"resizing\").updateSize($rootElement);\r\n $groupElement.appendTo($rootElement)\r\n }\r\n this._renderViews($groupElement)\r\n },\r\n update() {\r\n var $rootElement = this._rootElement;\r\n var $groupElement = this._groupElement;\r\n var resizingController = this.getController(\"resizing\");\r\n if ($rootElement && $groupElement) {\r\n resizingController.resize();\r\n if (this._dataController.isLoaded()) {\r\n this._resizingController.fireContentReadyAction()\r\n }\r\n }\r\n }\r\n});\r\nexport var gridViewModule = {\r\n defaultOptions: () => ({\r\n showBorders: false,\r\n renderAsync: false\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 VIEW_NAMES: VIEW_NAMES\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/grid_view.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n gridViewModule\r\n} from \"../../../grids/grid_core/views/m_grid_view\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"gridView\", gridViewModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/header_panel/m_header_panel.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n getPathParts\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Toolbar from \"../../../../ui/toolbar\";\r\nimport {\r\n ColumnsView\r\n} from \"../views/m_columns_view\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar TOOLBAR_BUTTON_CLASS = \"toolbar-button\";\r\nvar TOOLBAR_ARIA_LABEL = \"-ariaToolbar\";\r\nvar DEFAULT_TOOLBAR_ITEM_NAMES = [\"addRowButton\", \"applyFilterButton\", \"columnChooserButton\", \"exportButton\", \"groupPanel\", \"revertButton\", \"saveButton\", \"searchPanel\"];\r\nclass HeaderPanel extends ColumnsView {\r\n _getToolbarItems() {\r\n return []\r\n }\r\n _getButtonContainer() {\r\n return $(\"
\").addClass(this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS))\r\n }\r\n _getToolbarButtonClass(specificClass) {\r\n var secondClass = specificClass ? \" \".concat(specificClass) : \"\";\r\n return this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS) + secondClass\r\n }\r\n _getToolbarOptions() {\r\n var userToolbarOptions = this.option(\"toolbar\");\r\n var options = {\r\n toolbarOptions: {\r\n items: this._getToolbarItems(),\r\n visible: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.visible,\r\n disabled: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.disabled,\r\n onItemRendered(e) {\r\n var itemRenderedCallback = e.itemData.onItemRendered;\r\n if (itemRenderedCallback) {\r\n itemRenderedCallback(e)\r\n }\r\n }\r\n }\r\n };\r\n var userItems = null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.items;\r\n options.toolbarOptions.items = this._normalizeToolbarItems(options.toolbarOptions.items, userItems);\r\n this.executeAction(\"onToolbarPreparing\", options);\r\n if (options.toolbarOptions && !isDefined(options.toolbarOptions.visible)) {\r\n var toolbarItems = options.toolbarOptions.items;\r\n options.toolbarOptions.visible = !!(null === toolbarItems || void 0 === toolbarItems ? void 0 : toolbarItems.length)\r\n }\r\n return options.toolbarOptions\r\n }\r\n _normalizeToolbarItems(defaultItems, userItems) {\r\n defaultItems.forEach(button => {\r\n if (!DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n throw new Error(\"Default toolbar item '\".concat(button.name, \"' is not added to DEFAULT_TOOLBAR_ITEM_NAMES\"))\r\n }\r\n });\r\n var defaultProps = {\r\n location: \"after\"\r\n };\r\n var isArray = Array.isArray(userItems);\r\n if (!isDefined(userItems)) {\r\n return defaultItems\r\n }\r\n if (!isArray) {\r\n userItems = [userItems]\r\n }\r\n var defaultButtonsByNames = {};\r\n defaultItems.forEach(button => {\r\n defaultButtonsByNames[button.name] = button\r\n });\r\n var normalizedItems = userItems.map(button => {\r\n if (isString(button)) {\r\n button = {\r\n name: button\r\n }\r\n }\r\n if (isDefined(button.name)) {\r\n if (isDefined(defaultButtonsByNames[button.name])) {\r\n button = extend(true, {}, defaultButtonsByNames[button.name], button)\r\n } else if (DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n button = _extends(_extends({}, button), {\r\n visible: false\r\n })\r\n }\r\n }\r\n return extend(true, {}, defaultProps, button)\r\n });\r\n return isArray ? normalizedItems : normalizedItems[0]\r\n }\r\n _renderCore() {\r\n if (!this._toolbar) {\r\n var $headerPanel = this.element();\r\n $headerPanel.addClass(this.addWidgetPrefix(HEADER_PANEL_CLASS));\r\n var label = messageLocalization.format(this.component.NAME + TOOLBAR_ARIA_LABEL);\r\n var $toolbar = $(\"
\").attr(\"aria-label\", label).appendTo($headerPanel);\r\n this._toolbar = this._createComponent($toolbar, Toolbar, this._toolbarOptions)\r\n } else {\r\n this._toolbar.option(this._toolbarOptions)\r\n }\r\n }\r\n _columnOptionChanged() {}\r\n _handleDataChanged() {\r\n if (this._requireReady) {\r\n this.render()\r\n }\r\n }\r\n _isDisabledDefinedByUser(name) {\r\n var _a;\r\n var userItems = null === (_a = this.option(\"toolbar\")) || void 0 === _a ? void 0 : _a.items;\r\n var userItem = null === userItems || void 0 === userItems ? void 0 : userItems.find(item => (null === item || void 0 === item ? void 0 : item.name) === name);\r\n return isDefined(null === userItem || void 0 === userItem ? void 0 : userItem.disabled)\r\n }\r\n init() {\r\n super.init();\r\n this.createAction(\"onToolbarPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n render() {\r\n this._toolbarOptions = this._getToolbarOptions();\r\n super.render.apply(this, arguments)\r\n }\r\n setToolbarItemDisabled(name, disabled) {\r\n var _a;\r\n var toolbar = this._toolbar;\r\n var isDefinedByUser = this._isDisabledDefinedByUser(name);\r\n if (!toolbar || isDefinedByUser) {\r\n return\r\n }\r\n var items = null !== (_a = toolbar.option(\"items\")) && void 0 !== _a ? _a : [];\r\n var itemIndex = items.findIndex(item => item.name === name);\r\n if (itemIndex < 0) {\r\n return\r\n }\r\n var item = toolbar.option(\"items[\".concat(itemIndex, \"]\"));\r\n toolbar.option(\"items[\".concat(itemIndex, \"].disabled\"), disabled);\r\n if (item.options) {\r\n toolbar.option(\"items[\".concat(itemIndex, \"].options.disabled\"), disabled)\r\n }\r\n }\r\n updateToolbarDimensions() {\r\n var _a;\r\n null === (_a = this._toolbar) || void 0 === _a ? void 0 : _a.updateDimensions()\r\n }\r\n getHeaderPanel() {\r\n return this.element()\r\n }\r\n getHeight() {\r\n return this.getElementHeight()\r\n }\r\n optionChanged(args) {\r\n if (\"onToolbarPreparing\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n }\r\n if (\"toolbar\" === args.name) {\r\n args.handled = true;\r\n if (this._toolbar) {\r\n var parts = getPathParts(args.fullName);\r\n var optionName = args.fullName.replace(/^toolbar\\./, \"\");\r\n if (1 === parts.length) {\r\n var toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(toolbarOptions)\r\n } else if (\"items\" === parts[1]) {\r\n if (2 === parts.length) {\r\n var _toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(\"items\", _toolbarOptions.items)\r\n } else if (3 === parts.length) {\r\n var normalizedItem = this._normalizeToolbarItems(this._getToolbarItems(), args.value);\r\n this._toolbar.option(optionName, normalizedItem)\r\n } else if (parts.length >= 4) {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n } else {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n }\r\n }\r\n super.optionChanged(args)\r\n }\r\n isVisible() {\r\n return !!(this._toolbarOptions && this._toolbarOptions.visible)\r\n }\r\n allowDragging() {}\r\n hasGroupedColumns() {}\r\n}\r\nexport var headerPanelModule = {\r\n defaultOptions: () => ({}),\r\n views: {\r\n headerPanel: HeaderPanel\r\n },\r\n extenders: {\r\n controllers: {\r\n resizing: {\r\n _updateDimensionsCore() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"headerPanel\").updateToolbarDimensions()\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/header_panel.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n headerPanelModule\r\n} from \"../../../grids/grid_core/header_panel/m_header_panel\";\r\nimport gridCore from \"../m_core\";\r\nexport var HeaderPanel = headerPanelModule.views.headerPanel;\r\ngridCore.registerModule(\"headerPanel\", headerPanelModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_widget_base.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"./module_not_extended/column_headers\";\r\nimport \"./m_columns_controller\";\r\nimport \"./m_data_controller\";\r\nimport \"./module_not_extended/sorting\";\r\nimport \"./module_not_extended/rows\";\r\nimport \"./module_not_extended/context_menu\";\r\nimport \"./module_not_extended/error_handling\";\r\nimport \"./module_not_extended/grid_view\";\r\nimport \"./module_not_extended/header_panel\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n logger\r\n} from \"../../../core/utils/console\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isFunction,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n isMaterial\r\n} from \"../../../ui/themes\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport gridCoreUtils from \"../../grids/grid_core/m_utils\";\r\nimport gridCore from \"./m_core\";\r\nvar DATAGRID_ROW_SELECTOR = \".dx-row\";\r\nvar DATAGRID_DEPRECATED_TEMPLATE_WARNING = \"Specifying grid templates with the jQuery selector name is now deprecated. Use the DOM Node or the jQuery object that references this selector instead.\";\r\ngridCore.registerModulesOrder([\"stateStoring\", \"columns\", \"selection\", \"editorFactory\", \"columnChooser\", \"grouping\", \"editing\", \"editingRowBased\", \"editingFormBased\", \"editingCellBased\", \"masterDetail\", \"validating\", \"adaptivity\", \"data\", \"virtualScrolling\", \"columnHeaders\", \"filterRow\", \"headerPanel\", \"headerFilter\", \"sorting\", \"search\", \"rows\", \"pager\", \"columnsResizingReordering\", \"contextMenu\", \"keyboardNavigation\", \"errorHandling\", \"summary\", \"columnFixing\", \"export\", \"gridView\"]);\r\nvar DataGrid = Widget.inherit({\r\n _activeStateUnit: DATAGRID_ROW_SELECTOR,\r\n _getDefaultOptions() {\r\n var result = this.callBase();\r\n each(gridCore.modules, (function() {\r\n if (isFunction(this.defaultOptions)) {\r\n extend(true, result, this.defaultOptions())\r\n }\r\n }));\r\n return result\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n useKeyboard: {\r\n since: \"19.2\",\r\n alias: \"keyboardNavigation.enabled\"\r\n },\r\n rowTemplate: {\r\n since: \"21.2\",\r\n message: 'Use the \"dataRowTemplate\" option instead'\r\n },\r\n \"columnChooser.allowSearch\": {\r\n since: \"23.1\",\r\n message: 'Use the \"columnChooser.search.enabled\" option instead'\r\n },\r\n \"columnChooser.searchTimeout\": {\r\n since: \"23.1\",\r\n message: 'Use the \"columnChooser.search.timeout\" option instead'\r\n }\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n showRowLines: true\r\n }\r\n }, {\r\n device: () => isMaterial(),\r\n options: {\r\n showRowLines: true,\r\n showColumnLines: false,\r\n headerFilter: {\r\n height: 315\r\n },\r\n editing: {\r\n useIcons: true\r\n },\r\n selection: {\r\n showCheckBoxesMode: \"always\"\r\n }\r\n }\r\n }, {\r\n device: () => browser.webkit,\r\n options: {\r\n loadingTimeout: 30,\r\n loadPanel: {\r\n animation: {\r\n show: {\r\n easing: \"cubic-bezier(1, 0, 1, 0)\",\r\n duration: 500,\r\n from: {\r\n opacity: 0\r\n },\r\n to: {\r\n opacity: 1\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: device => \"desktop\" !== device.deviceType,\r\n options: {\r\n grouping: {\r\n expandMode: \"rowClick\"\r\n }\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n gridCoreUtils.logHeaderFilterDeprecatedWarningIfNeed(this);\r\n gridCore.processModules(this, gridCore);\r\n gridCore.callModuleItemsMethod(this, \"init\")\r\n },\r\n _clean: noop,\r\n _optionChanged(args) {\r\n gridCore.callModuleItemsMethod(this, \"optionChanged\", [args]);\r\n if (!args.handled) {\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged() {\r\n this.updateDimensions(true)\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this.updateDimensions()\r\n }\r\n },\r\n _initMarkup() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"gridView\").render(this.$element())\r\n },\r\n _renderContentImpl() {\r\n this.getView(\"gridView\").update()\r\n },\r\n _renderContent() {\r\n var that = this;\r\n deferRender(() => {\r\n that._renderContentImpl()\r\n })\r\n },\r\n _getTemplate(templateName) {\r\n var template = templateName;\r\n if (isString(template) && template.startsWith(\"#\")) {\r\n template = $(templateName);\r\n logger.warn(DATAGRID_DEPRECATED_TEMPLATE_WARNING)\r\n }\r\n return this.callBase(template)\r\n },\r\n _dispose() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"dispose\")\r\n },\r\n isReady() {\r\n return this.getController(\"data\").isReady()\r\n },\r\n beginUpdate() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"beginUpdate\")\r\n },\r\n endUpdate() {\r\n gridCore.callModuleItemsMethod(this, \"endUpdate\");\r\n this.callBase()\r\n },\r\n getController(name) {\r\n return this._controllers[name]\r\n },\r\n getView(name) {\r\n return this._views[name]\r\n },\r\n focus(element) {\r\n this.getController(\"keyboardNavigation\").focus(element)\r\n }\r\n});\r\nDataGrid.registerModule = gridCore.registerModule.bind(gridCore);\r\nregisterComponent(\"dxDataGrid\", DataGrid);\r\nexport default DataGrid;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/state_storing/m_state_storing_core.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fromPromise\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n sessionStorage\r\n} from \"../../../../core/utils/storage\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../../core/utils/window\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\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 }\r\n each(state, (key, value) => {\r\n if (isPlainObject(value) || Array.isArray(value)) {\r\n parseDates(value)\r\n } else 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\nvar StateStoringController = modules.ViewController.inherit(function() {\r\n var getStorage = function(options) {\r\n var storage = \"sessionStorage\" === options.type ? sessionStorage() : getWindow().localStorage;\r\n if (!storage) {\r\n throw new Error(\"E1007\")\r\n }\r\n return storage\r\n };\r\n var getUniqueStorageKey = function(options) {\r\n return isDefined(options.storageKey) ? options.storageKey : \"storage\"\r\n };\r\n return {\r\n _loadState() {\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 errors.log(\"W1022\", \"State storing\", e.message)\r\n }\r\n },\r\n _saveState(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 errors.log(e.message)\r\n }\r\n },\r\n publicMethods: () => [\"state\"],\r\n isEnabled() {\r\n return this.option(\"stateStoring.enabled\")\r\n },\r\n init() {\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 eventsEngine.on(getWindow(), \"unload\", that._windowUnloadHandler);\r\n return that\r\n },\r\n isLoaded() {\r\n return this._isLoaded\r\n },\r\n isLoading() {\r\n return this._isLoading\r\n },\r\n load() {\r\n this._isLoading = true;\r\n var loadResult = fromPromise(this._loadState());\r\n loadResult.always(() => {\r\n this._isLoaded = true;\r\n this._isLoading = false\r\n }).done(state => {\r\n if (null !== state && !isEmptyObject(state)) {\r\n this.state(state)\r\n }\r\n });\r\n return loadResult\r\n },\r\n state(state) {\r\n if (!arguments.length) {\r\n return extend(true, {}, this._state)\r\n }\r\n this._state = extend({}, state);\r\n parseDates(this._state)\r\n },\r\n save() {\r\n var that = this;\r\n clearTimeout(that._savingTimeoutID);\r\n that._savingTimeoutID = setTimeout(() => {\r\n that._saveState(that.state());\r\n that._savingTimeoutID = void 0\r\n }, that.option(\"stateStoring.savingTimeout\"))\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"stateStoring\":\r\n if (this.isEnabled() && !this.isLoading()) {\r\n this.load()\r\n }\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n dispose() {\r\n clearTimeout(this._savingTimeoutID);\r\n eventsEngine.off(getWindow(), \"unload\", this._windowUnloadHandler)\r\n }\r\n }\r\n}());\r\nexport default {\r\n StateStoringController: StateStoringController\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/state_storing/m_state_storing.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue,\r\n getKeyHash\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport stateStoringCore from \"./m_state_storing_core\";\r\nvar getDataState = that => {\r\n var pagerView = that.getView(\"pagerView\");\r\n var dataController = that.getController(\"data\");\r\n var state = {\r\n allowedPageSizes: pagerView ? pagerView.getPageSizes() : void 0,\r\n filterPanel: {\r\n filterEnabled: that.option(\"filterPanel.filterEnabled\")\r\n },\r\n filterValue: that.option(\"filterValue\"),\r\n focusedRowKey: that.option(\"focusedRowEnabled\") ? that.option(\"focusedRowKey\") : void 0\r\n };\r\n return extend(state, dataController.getUserState())\r\n};\r\nvar processLoadState = that => {\r\n var columnsController = that.getController(\"columns\");\r\n var selectionController = that.getController(\"selection\");\r\n var exportController = that.getController(\"export\");\r\n var dataController = that.getController(\"data\");\r\n if (columnsController) {\r\n columnsController.columnsChanged.add(() => {\r\n that.updateState({\r\n columns: columnsController.getUserState()\r\n })\r\n })\r\n }\r\n if (selectionController) {\r\n selectionController.selectionChanged.add(e => {\r\n that.updateState({\r\n selectedRowKeys: e.selectedRowKeys,\r\n selectionFilter: e.selectionFilter\r\n })\r\n })\r\n }\r\n if (dataController) {\r\n that._initialPageSize = that.option(\"paging.pageSize\");\r\n that._initialFilterValue = that.option(\"filterValue\");\r\n dataController.changed.add(() => {\r\n var state = getDataState(that);\r\n that.updateState(state)\r\n })\r\n }\r\n if (exportController) {\r\n exportController.selectionOnlyChanged.add(() => {\r\n that.updateState({\r\n exportSelectionOnly: exportController.selectionOnly()\r\n })\r\n })\r\n }\r\n};\r\nvar DEFAULT_FILTER_VALUE = null;\r\nvar getFilterValue = (that, state) => {\r\n var filterSyncController = that.getController(\"filterSync\");\r\n var columnsController = that.getController(\"columns\");\r\n var hasFilterState = state.columns || void 0 !== state.filterValue;\r\n if (filterSyncController) {\r\n if (hasFilterState) {\r\n return state.filterValue || filterSyncController.getFilterValueFromColumns(state.columns)\r\n }\r\n return that._initialFilterValue || filterSyncController.getFilterValueFromColumns(columnsController.getColumns())\r\n }\r\n return DEFAULT_FILTER_VALUE\r\n};\r\nexport var stateStoringModule = {\r\n defaultOptions: () => ({\r\n stateStoring: {\r\n enabled: false,\r\n storageKey: null,\r\n type: \"localStorage\",\r\n customLoad: null,\r\n customSave: null,\r\n savingTimeout: 2e3\r\n }\r\n }),\r\n controllers: {\r\n stateStoring: stateStoringCore.StateStoringController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n init() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n dataController.stateLoaded.add(() => {\r\n if (dataController.isLoaded() && !dataController.getDataSource()) {\r\n that.setLoading(false);\r\n that.renderNoDataText();\r\n var columnHeadersView = that.component.getView(\"columnHeadersView\");\r\n columnHeadersView && columnHeadersView.render();\r\n that.component._fireContentReadyAction()\r\n }\r\n })\r\n }\r\n }\r\n },\r\n controllers: {\r\n stateStoring: {\r\n init() {\r\n this.callBase.apply(this, arguments);\r\n processLoadState(this)\r\n },\r\n isLoading() {\r\n return this.callBase() || this.getController(\"data\").isStateLoading()\r\n },\r\n state(state) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (void 0 !== state) {\r\n this.applyState(extend(true, {}, state))\r\n }\r\n return result\r\n },\r\n updateState(state) {\r\n if (this.isEnabled()) {\r\n var oldState = this.state();\r\n var newState = extend({}, oldState, state);\r\n var oldStateHash = getKeyHash(oldState);\r\n var newStateHash = getKeyHash(newState);\r\n if (!equalByValue(oldStateHash, newStateHash)) {\r\n state = extend(true, {}, state);\r\n extend(this._state, state);\r\n this.save()\r\n }\r\n } else {\r\n extend(this._state, state)\r\n }\r\n },\r\n applyState(state) {\r\n var _a;\r\n var {\r\n allowedPageSizes: allowedPageSizes\r\n } = state;\r\n var {\r\n searchText: searchText\r\n } = state;\r\n var {\r\n selectedRowKeys: selectedRowKeys\r\n } = state;\r\n var {\r\n selectionFilter: selectionFilter\r\n } = state;\r\n var exportController = this.getController(\"export\");\r\n var columnsController = this.getController(\"columns\");\r\n var dataController = this.getController(\"data\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrollingMode = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var showPageSizeSelector = true === this.option(\"pager.visible\") && this.option(\"pager.showPageSizeSelector\");\r\n var hasHeight = null === (_a = this.getView(\"rowsView\")) || void 0 === _a ? void 0 : _a.hasHeight();\r\n this.component.beginUpdate();\r\n if (columnsController) {\r\n columnsController.setUserState(state.columns)\r\n }\r\n if (exportController) {\r\n exportController.selectionOnly(state.exportSelectionOnly)\r\n }\r\n if (!this.option(\"selection.deferred\")) {\r\n this.option(\"selectedRowKeys\", selectedRowKeys || [])\r\n }\r\n this.option(\"selectionFilter\", selectionFilter);\r\n if (allowedPageSizes && \"auto\" === this.option(\"pager.allowedPageSizes\")) {\r\n this.option(\"pager\").allowedPageSizes = allowedPageSizes\r\n }\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.option(\"focusedRowIndex\", -1);\r\n this.option(\"focusedRowKey\", state.focusedRowKey || null)\r\n }\r\n this.component.endUpdate();\r\n this.option(\"searchPanel.text\", searchText || \"\");\r\n this.option(\"filterValue\", getFilterValue(this, state));\r\n this.option(\"filterPanel.filterEnabled\", state.filterPanel ? state.filterPanel.filterEnabled : true);\r\n this.option(\"paging.pageIndex\", (!isVirtualScrollingMode || hasHeight) && state.pageIndex || 0);\r\n this.option(\"paging.pageSize\", (!isVirtualScrollingMode || showPageSizeSelector) && isDefined(state.pageSize) ? state.pageSize : this._initialPageSize);\r\n dataController && dataController.reset()\r\n }\r\n },\r\n columns: {\r\n _shouldReturnVisibleColumns() {\r\n var result = this.callBase.apply(this, arguments);\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return result && (!stateStoringController.isEnabled() || stateStoringController.isLoaded())\r\n }\r\n },\r\n data: {\r\n callbackNames() {\r\n return this.callBase().concat([\"stateLoaded\"])\r\n },\r\n _refreshDataSource() {\r\n var {\r\n callBase: callBase\r\n } = this;\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n if (stateStoringController.isEnabled() && !stateStoringController.isLoaded()) {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n var deferred = new Deferred;\r\n this._restoreStateTimeoutID = setTimeout(() => {\r\n stateStoringController.load().always(() => {\r\n this._restoreStateTimeoutID = null\r\n }).done(() => {\r\n callBase.call(this);\r\n this.stateLoaded.fire();\r\n deferred.resolve()\r\n }).fail(error => {\r\n this.stateLoaded.fire();\r\n this._handleLoadError(error || \"Unknown error\");\r\n deferred.reject()\r\n })\r\n });\r\n return deferred.promise()\r\n }\r\n if (!this.isStateLoading()) {\r\n callBase.call(this)\r\n }\r\n },\r\n isLoading() {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return this.callBase() || stateStoringController.isLoading()\r\n },\r\n isStateLoading() {\r\n return isDefined(this._restoreStateTimeoutID)\r\n },\r\n isLoaded() {\r\n return this.callBase() && !this.isStateLoading()\r\n },\r\n dispose() {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n this.callBase()\r\n }\r\n },\r\n selection: {\r\n _fireSelectionChanged(options) {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n if (stateStoringController.isLoading() && isDeferredSelection) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/state_storing.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n stateStoringModule\r\n} from \"../../../grids/grid_core/state_storing/m_state_storing\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"stateStoring\", stateStoringModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/selection/m_selection.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n touch\r\n} from \"../../../../core/utils/support\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n applyBatch\r\n} from \"../../../../data/array_utils\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport holdEvent from \"../../../../events/hold\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Selection from \"../../../../ui/selection/selection\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar ROW_SELECTION_CLASS = \"dx-selection\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar CHECKBOXES_HIDDEN_CLASS = \"dx-select-checkboxes-hidden\";\r\nvar COMMAND_SELECT_CLASS = \"dx-command-select\";\r\nvar SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar SHOW_CHECKBOXES_MODE = \"selection.showCheckBoxesMode\";\r\nvar SELECTION_MODE = \"selection.mode\";\r\nvar processLongTap = function(that, dxEvent) {\r\n var selectionController = that.getController(\"selection\");\r\n var rowsView = that.getView(\"rowsView\");\r\n var $row = $(dxEvent.target).closest(\".\".concat(DATA_ROW_CLASS));\r\n var rowIndex = rowsView.getRowIndex($row);\r\n if (rowIndex < 0) {\r\n return\r\n }\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n if (selectionController.isSelectionWithCheckboxes()) {\r\n selectionController.stopSelectionWithCheckboxes()\r\n } else {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n } else {\r\n if (\"onClick\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n if (\"always\" !== that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.changeItemSelection(rowIndex, {\r\n control: true\r\n })\r\n }\r\n }\r\n};\r\nvar isSeveralRowsSelected = function(that, selectionFilter) {\r\n var keyIndex = 0;\r\n var store = that._dataController.store();\r\n var key = store && store.key();\r\n var isComplexKey = Array.isArray(key);\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (isComplexKey && Array.isArray(selectionFilter[0]) && \"and\" === selectionFilter[1]) {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i])) {\r\n if (selectionFilter[i][0] !== key[keyIndex] || \"=\" !== selectionFilter[i][1]) {\r\n return true\r\n }\r\n keyIndex++\r\n }\r\n }\r\n return false\r\n }\r\n return key !== selectionFilter[0]\r\n};\r\nvar selectionCellTemplate = (container, options) => {\r\n var {\r\n component: component\r\n } = options;\r\n var rowsView = component.getView(\"rowsView\");\r\n if (component.option(\"renderAsync\") && !component.option(\"selection.deferred\")) {\r\n options.value = component.isRowSelected(options.row.key)\r\n }\r\n rowsView.renderSelectCheckBoxContainer($(container), options)\r\n};\r\nvar selectionHeaderTemplate = (container, options) => {\r\n var {\r\n column: column\r\n } = options;\r\n var $cellElement = $(container);\r\n var columnHeadersView = options.component.getView(\"columnHeadersView\");\r\n $cellElement.addClass(EDITOR_CELL_CLASS);\r\n columnHeadersView._renderSelectAllCheckBox($cellElement, column);\r\n columnHeadersView._attachSelectAllCheckBoxClickEvent($cellElement)\r\n};\r\nexport class SelectionController extends modules.Controller {\r\n init() {\r\n var _a;\r\n var {\r\n deferred: deferred,\r\n selectAllMode: selectAllMode,\r\n mode: mode\r\n } = null !== (_a = this.option(\"selection\")) && void 0 !== _a ? _a : {};\r\n if (\"infinite\" === this.option(\"scrolling.mode\") && !deferred && \"multiple\" === mode && \"allPages\" === selectAllMode) {\r\n errors.log(\"W1018\")\r\n }\r\n this._dataController = this.getController(\"data\");\r\n this._selectionMode = mode;\r\n this._isSelectionWithCheckboxes = false;\r\n this._selection = this._createSelection();\r\n this._updateSelectColumn();\r\n this.createAction(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n if (!this._dataPushedHandler) {\r\n this._dataPushedHandler = this._handleDataPushed.bind(this);\r\n this._dataController.pushed.add(this._dataPushedHandler)\r\n }\r\n }\r\n _handleDataPushed(changes) {\r\n this._deselectRemovedOnPush(changes);\r\n this._updateSelectedOnPush(changes)\r\n }\r\n _deselectRemovedOnPush(changes) {\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n var removedKeys = changes.filter(change => \"remove\" === change.type).map(change => change.key);\r\n if (isDeferredSelection) {\r\n var selectedKeys = this._dataController.items().filter(item => item.isSelected).map(item => item.key);\r\n removedKeys = removedKeys.filter(key => selectedKeys.find(selectedKey => equalByValue(selectedKey, key)))\r\n }\r\n removedKeys.length && this.deselectRows(removedKeys)\r\n }\r\n _updateSelectedOnPush(changes) {\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n if (isDeferredSelection) {\r\n return\r\n }\r\n var updateChanges = changes.filter(change => \"update\" === change.type);\r\n var data = this.getSelectedRowsData();\r\n applyBatch({\r\n keyInfo: this._selection.options,\r\n data: data,\r\n changes: updateChanges\r\n })\r\n }\r\n _getSelectionConfig() {\r\n var _a;\r\n var dataController = this._dataController;\r\n var columnsController = this.getController(\"columns\");\r\n var selectionOptions = null !== (_a = this.option(\"selection\")) && void 0 !== _a ? _a : {};\r\n var {\r\n deferred: deferred\r\n } = selectionOptions;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var virtualPaging = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var allowSelectAll = this.option(\"selection.allowSelectAll\");\r\n var legacyScrollingMode = this.option(\"scrolling.legacyMode\");\r\n return {\r\n selectedKeys: this.option(\"selectedRowKeys\"),\r\n mode: this._selectionMode,\r\n deferred: deferred,\r\n maxFilterLengthInRequest: selectionOptions.maxFilterLengthInRequest,\r\n selectionFilter: this.option(\"selectionFilter\"),\r\n ignoreDisabledItems: true,\r\n allowLoadByRange() {\r\n var hasGroupColumns = columnsController.getGroupColumns().length > 0;\r\n return virtualPaging && !legacyScrollingMode && !hasGroupColumns && allowSelectAll && !deferred\r\n },\r\n key: () => null === dataController || void 0 === dataController ? void 0 : dataController.key(),\r\n keyOf: item => null === dataController || void 0 === dataController ? void 0 : dataController.keyOf(item),\r\n dataFields() {\r\n var _a;\r\n return null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.select()\r\n },\r\n load(options) {\r\n var _a;\r\n return (null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.load(options)) || (new Deferred).resolve([])\r\n },\r\n plainItems: () => dataController.items(true),\r\n isItemSelected: item => item.selected,\r\n isSelectableItem: item => \"data\" === (null === item || void 0 === item ? void 0 : item.rowType) && !item.isNewRow,\r\n getItemData: item => isDefined(null === item || void 0 === item ? void 0 : item.rowType) ? (null === item || void 0 === item ? void 0 : item.oldData) || (null === item || void 0 === item ? void 0 : item.data) : item,\r\n filter: () => dataController.getCombinedFilter(deferred),\r\n totalCount: () => dataController.totalCount(),\r\n getLoadOptions(loadItemIndex, focusedItemIndex, shiftItemIndex) {\r\n var _a, _b;\r\n var {\r\n sort: sort,\r\n filter: filter\r\n } = null !== (_b = null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.lastLoadOptions()) && void 0 !== _b ? _b : {};\r\n var minIndex = Math.min(loadItemIndex, focusedItemIndex);\r\n var maxIndex = Math.max(loadItemIndex, focusedItemIndex);\r\n if (isDefined(shiftItemIndex)) {\r\n minIndex = Math.min(shiftItemIndex, minIndex);\r\n maxIndex = Math.max(shiftItemIndex, maxIndex)\r\n }\r\n var take = maxIndex - minIndex + 1;\r\n return {\r\n skip: minIndex,\r\n take: take,\r\n filter: filter,\r\n sort: sort\r\n }\r\n },\r\n onSelectionChanged: this._updateSelectedItems.bind(this)\r\n }\r\n }\r\n _updateSelectColumn() {\r\n var columnsController = this.getController(\"columns\");\r\n var isSelectColumnVisible = this.isSelectColumnVisible();\r\n columnsController.addCommandColumn({\r\n type: \"selection\",\r\n command: \"select\",\r\n visible: isSelectColumnVisible,\r\n visibleIndex: -1,\r\n dataType: \"boolean\",\r\n alignment: \"center\",\r\n cssClass: COMMAND_SELECT_CLASS,\r\n width: \"auto\",\r\n cellTemplate: selectionCellTemplate,\r\n headerCellTemplate: selectionHeaderTemplate\r\n });\r\n columnsController.columnOption(\"command:select\", \"visible\", isSelectColumnVisible)\r\n }\r\n _createSelection() {\r\n var options = this._getSelectionConfig();\r\n return new Selection(options)\r\n }\r\n _fireSelectionChanged(options) {\r\n var argument = this.option(\"selection.deferred\") ? {\r\n selectionFilter: this.option(\"selectionFilter\")\r\n } : {\r\n selectedRowKeys: this.option(\"selectedRowKeys\")\r\n };\r\n this.selectionChanged.fire(argument);\r\n if (options) {\r\n this.executeAction(\"onSelectionChanged\", options)\r\n }\r\n }\r\n _updateCheckboxesState(options) {\r\n var {\r\n isDeferredMode: isDeferredMode\r\n } = options;\r\n var {\r\n selectionFilter: selectionFilter\r\n } = options;\r\n var {\r\n selectedItemKeys: selectedItemKeys\r\n } = options;\r\n var {\r\n removedItemKeys: removedItemKeys\r\n } = options;\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n if (isDeferredMode ? selectionFilter && isSeveralRowsSelected(this, selectionFilter) : selectedItemKeys.length > 1) {\r\n this.startSelectionWithCheckboxes()\r\n } else if (isDeferredMode ? selectionFilter && !selectionFilter.length : 0 === selectedItemKeys.length && removedItemKeys.length) {\r\n this.stopSelectionWithCheckboxes()\r\n }\r\n }\r\n }\r\n _updateSelectedItems(args) {\r\n var selectionChangedOptions;\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n var selectionFilter = this._selection.selectionFilter();\r\n var dataController = this._dataController;\r\n var items = dataController.items(true);\r\n var visibleItems = dataController.items();\r\n if (!items) {\r\n return\r\n }\r\n var isSelectionWithCheckboxes = this.isSelectionWithCheckboxes();\r\n var changedItemIndexes = this.getChangedItemIndexes(items);\r\n var visibleChangedItemIndexes = this.getChangedItemIndexes(visibleItems);\r\n this._updateCheckboxesState({\r\n selectedItemKeys: args.selectedItemKeys,\r\n removedItemKeys: args.removedItemKeys,\r\n selectionFilter: selectionFilter,\r\n isDeferredMode: isDeferredMode\r\n });\r\n if (changedItemIndexes.length || isSelectionWithCheckboxes !== this.isSelectionWithCheckboxes()) {\r\n dataController.updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: visibleChangedItemIndexes\r\n })\r\n }\r\n if (isDeferredMode) {\r\n this.option(\"selectionFilter\", selectionFilter);\r\n selectionChangedOptions = {}\r\n } else if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n this._selectedItemsInternalChange = true;\r\n this.option(\"selectedRowKeys\", args.selectedItemKeys.slice(0));\r\n this._selectedItemsInternalChange = false;\r\n selectionChangedOptions = {\r\n selectedRowsData: args.selectedItems.slice(0),\r\n selectedRowKeys: args.selectedItemKeys.slice(0),\r\n currentSelectedRowKeys: args.addedItemKeys.slice(0),\r\n currentDeselectedRowKeys: args.removedItemKeys.slice(0)\r\n }\r\n }\r\n this._fireSelectionChanged(selectionChangedOptions)\r\n }\r\n getChangedItemIndexes(items) {\r\n var itemIndexes = [];\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n for (var i = 0, {\r\n length: length\r\n } = items; i < length; i++) {\r\n var row = items[i];\r\n var isItemSelected = this.isRowSelected(isDeferredSelection ? row.data : row.key);\r\n if (this._selection.isDataItem(row) && row.isSelected !== isItemSelected) {\r\n itemIndexes.push(i)\r\n }\r\n }\r\n return itemIndexes\r\n }\r\n callbackNames() {\r\n return [\"selectionChanged\"]\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n switch (args.name) {\r\n case \"selection\":\r\n var oldSelectionMode = this._selectionMode;\r\n this.init();\r\n if (\"selection.showCheckBoxesMode\" !== args.fullName) {\r\n var selectionMode = this._selectionMode;\r\n var selectedRowKeys = this.option(\"selectedRowKeys\");\r\n if (oldSelectionMode !== selectionMode) {\r\n if (\"single\" === selectionMode) {\r\n if (selectedRowKeys.length > 1) {\r\n selectedRowKeys = [selectedRowKeys[0]]\r\n }\r\n } else if (\"multiple\" !== selectionMode) {\r\n selectedRowKeys = []\r\n }\r\n }\r\n this.selectRows(selectedRowKeys).always(() => {\r\n this._fireSelectionChanged()\r\n })\r\n }\r\n this.getController(\"columns\").updateColumns();\r\n args.handled = true;\r\n break;\r\n case \"selectionFilter\":\r\n this._selection.selectionFilter(args.value);\r\n args.handled = true;\r\n break;\r\n case \"selectedRowKeys\":\r\n var value = args.value || [];\r\n if (Array.isArray(value) && !this._selectedItemsInternalChange && (this.component.getDataSource() || !value.length)) {\r\n this.selectRows(value)\r\n }\r\n args.handled = true\r\n }\r\n }\r\n publicMethods() {\r\n return [\"selectRows\", \"deselectRows\", \"selectRowsByIndexes\", \"getSelectedRowKeys\", \"getSelectedRowsData\", \"clearSelection\", \"selectAll\", \"deselectAll\", \"startSelectionWithCheckboxes\", \"stopSelectionWithCheckboxes\", \"isRowSelected\"]\r\n }\r\n isRowSelected(arg) {\r\n return this._selection.isItemSelected(arg)\r\n }\r\n isSelectColumnVisible() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || \"onClick\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n }\r\n _isOnePageSelectAll() {\r\n return \"page\" === this.option(\"selection.selectAllMode\")\r\n }\r\n isSelectAll() {\r\n return this._selection.getSelectAllState(this._isOnePageSelectAll())\r\n }\r\n selectAll() {\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n this.startSelectionWithCheckboxes()\r\n }\r\n return this._selection.selectAll(this._isOnePageSelectAll())\r\n }\r\n deselectAll() {\r\n return this._selection.deselectAll(this._isOnePageSelectAll())\r\n }\r\n clearSelection() {\r\n return this.selectedItemKeys([])\r\n }\r\n refresh() {\r\n var _a;\r\n var selectedRowKeys = null !== (_a = this.option(\"selectedRowKeys\")) && void 0 !== _a ? _a : [];\r\n if (!this.option(\"selection.deferred\") && selectedRowKeys.length) {\r\n return this.selectedItemKeys(selectedRowKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n }\r\n selectedItemKeys(value, preserve, isDeselect, isSelectAll) {\r\n return this._selection.selectedItemKeys(value, preserve, isDeselect, isSelectAll)\r\n }\r\n getSelectedRowKeys() {\r\n return this._selection.getSelectedItemKeys()\r\n }\r\n selectRows(keys, preserve) {\r\n return this.selectedItemKeys(keys, preserve)\r\n }\r\n deselectRows(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n }\r\n selectRowsByIndexes(indexes) {\r\n var items = this._dataController.items();\r\n var keys = [];\r\n if (!Array.isArray(indexes)) {\r\n indexes = Array.prototype.slice.call(arguments, 0)\r\n }\r\n each(indexes, (function() {\r\n var item = items[this];\r\n if (item && \"data\" === item.rowType) {\r\n keys.push(item.key)\r\n }\r\n }));\r\n return this.selectRows(keys)\r\n }\r\n getSelectedRowsData() {\r\n return this._selection.getSelectedItems()\r\n }\r\n loadSelectedItemsWithFilter() {\r\n return this._selection.loadSelectedItemsWithFilter()\r\n }\r\n changeItemSelection(visibleItemIndex, keys, setFocusOnly) {\r\n keys = keys || {};\r\n if (this.isSelectionWithCheckboxes()) {\r\n keys.control = true\r\n }\r\n var loadedItemIndex = visibleItemIndex + this._dataController.getRowIndexOffset() - this._dataController.getRowIndexOffset(true);\r\n return this._selection.changeItemSelection(loadedItemIndex, keys, setFocusOnly)\r\n }\r\n focusedItemIndex(itemIndex) {\r\n if (isDefined(itemIndex)) {\r\n this._selection._focusedItemIndex = itemIndex\r\n } else {\r\n return this._selection._focusedItemIndex\r\n }\r\n return\r\n }\r\n isSelectionWithCheckboxes() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n }\r\n startSelectionWithCheckboxes() {\r\n if (\"multiple\" === this.option(SELECTION_MODE) && !this.isSelectionWithCheckboxes()) {\r\n this._isSelectionWithCheckboxes = true;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n stopSelectionWithCheckboxes() {\r\n if (this._isSelectionWithCheckboxes) {\r\n this._isSelectionWithCheckboxes = false;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nexport var selectionModule = {\r\n defaultOptions: () => ({\r\n selection: {\r\n mode: \"none\",\r\n showCheckBoxesMode: \"onClick\",\r\n allowSelectAll: true,\r\n selectAllMode: \"allPages\",\r\n maxFilterLengthInRequest: 1500,\r\n deferred: false\r\n },\r\n selectionFilter: [],\r\n selectedRowKeys: []\r\n }),\r\n controllers: {\r\n selection: SelectionController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init() {\r\n var selectionController = this.getController(\"selection\");\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n this.callBase.apply(this, arguments);\r\n if (isDeferredMode) {\r\n selectionController._updateCheckboxesState({\r\n isDeferredMode: true,\r\n selectionFilter: this.option(\"selectionFilter\")\r\n })\r\n }\r\n },\r\n _loadDataSource() {\r\n var that = this;\r\n return that.callBase().always(() => {\r\n that.getController(\"selection\").refresh()\r\n })\r\n },\r\n _processDataItem(item, options) {\r\n var selectionController = this.getController(\"selection\");\r\n var hasSelectColumn = selectionController.isSelectColumnVisible();\r\n var isDeferredSelection = options.isDeferredSelection = void 0 === options.isDeferredSelection ? this.option(\"selection.deferred\") : options.isDeferredSelection;\r\n var dataItem = this.callBase.apply(this, arguments);\r\n dataItem.isSelected = selectionController.isRowSelected(isDeferredSelection ? dataItem.data : dataItem.key);\r\n if (hasSelectColumn && dataItem.values) {\r\n for (var i = 0; i < options.visibleColumns.length; i++) {\r\n if (\"select\" === options.visibleColumns[i].command) {\r\n dataItem.values[i] = dataItem.isSelected;\r\n break\r\n }\r\n }\r\n }\r\n return dataItem\r\n },\r\n refresh(options) {\r\n var that = this;\r\n var d = new Deferred;\r\n this.callBase.apply(this, arguments).done(() => {\r\n if (!options || options.selection) {\r\n that.getController(\"selection\").refresh().done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve()\r\n }\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n _handleDataChanged(e) {\r\n this.callBase.apply(this, arguments);\r\n if ((!e || \"refresh\" === e.changeType) && !this._repaintChangesOnly) {\r\n this.getController(\"selection\").focusedItemIndex(-1)\r\n }\r\n },\r\n _applyChange(change) {\r\n if (change && \"updateSelection\" === change.changeType) {\r\n change.items.forEach((item, index) => {\r\n var currentItem = this._items[index];\r\n if (currentItem) {\r\n currentItem.isSelected = item.isSelected;\r\n currentItem.values = item.values\r\n }\r\n });\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _endUpdateCore() {\r\n var changes = this._changes;\r\n var isUpdateSelection = changes.length > 1 && changes.every(change => \"updateSelection\" === change.changeType);\r\n if (isUpdateSelection) {\r\n var itemIndexes = changes.map(change => change.itemIndexes || []).reduce((a, b) => a.concat(b));\r\n this._changes = [{\r\n changeType: \"updateSelection\",\r\n itemIndexes: itemIndexes\r\n }]\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n contextMenu: {\r\n _contextMenuPrepared(options) {\r\n var dxEvent = options.event;\r\n if (dxEvent.originalEvent && \"dxhold\" !== dxEvent.originalEvent.type || options.items && options.items.length > 0) {\r\n return\r\n }\r\n processLongTap(this, dxEvent)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: {\r\n init() {\r\n this.callBase();\r\n this.getController(\"selection\").selectionChanged.add(this._updateSelectAllValue.bind(this))\r\n },\r\n _updateSelectAllValue() {\r\n var $element = this.element();\r\n var $editor = $element && $element.find(\".\".concat(SELECT_CHECKBOX_CLASS));\r\n if ($element && $editor.length && \"multiple\" === this.option(\"selection.mode\")) {\r\n var selectAllValue = this.getController(\"selection\").isSelectAll();\r\n var hasSelection = false !== selectAllValue;\r\n var isVisible = this.option(\"selection.allowSelectAll\") ? !this.getController(\"data\").isEmpty() : hasSelection;\r\n $editor.dxCheckBox(\"instance\").option({\r\n visible: isVisible,\r\n value: selectAllValue\r\n })\r\n }\r\n },\r\n _handleDataChanged(e) {\r\n this.callBase(e);\r\n if (!e || \"refresh\" === e.changeType || e.repaintChangesOnly && \"update\" === e.changeType) {\r\n this.waitAsyncTemplates().done(() => {\r\n this._updateSelectAllValue()\r\n })\r\n }\r\n },\r\n _renderSelectAllCheckBox($container, column) {\r\n var that = this;\r\n var selectionController = that.getController(\"selection\");\r\n var isEmptyData = that.getController(\"data\").isEmpty();\r\n var groupElement = $(\"
\").appendTo($container).addClass(SELECT_CHECKBOX_CLASS);\r\n that.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectAll\"), groupElement);\r\n that.getController(\"editorFactory\").createEditor(groupElement, extend({}, column, {\r\n parentType: \"headerRow\",\r\n dataType: \"boolean\",\r\n value: selectionController.isSelectAll(),\r\n editorOptions: {\r\n visible: !isEmptyData && (that.option(\"selection.allowSelectAll\") || false !== selectionController.isSelectAll())\r\n },\r\n tabIndex: that.option(\"useLegacyKeyboardNavigation\") ? -1 : that.option(\"tabIndex\") || 0,\r\n setValue(value, e) {\r\n var allowSelectAll = that.option(\"selection.allowSelectAll\");\r\n e.component.option(\"visible\", allowSelectAll || false !== e.component.option(\"value\"));\r\n if (!e.event || selectionController.isSelectAll() === value) {\r\n return\r\n }\r\n if (e.value && !allowSelectAll) {\r\n e.component.option(\"value\", false)\r\n } else {\r\n e.value ? selectionController.selectAll() : selectionController.deselectAll()\r\n }\r\n e.event.preventDefault()\r\n }\r\n }));\r\n return groupElement\r\n },\r\n _attachSelectAllCheckBoxClickEvent($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (!$(event.target).closest(\".\".concat(SELECT_CHECKBOX_CLASS)).length) {\r\n eventsEngine.trigger($(event.currentTarget).children(\".\".concat(SELECT_CHECKBOX_CLASS)), clickEventName)\r\n }\r\n event.preventDefault()\r\n }))\r\n }\r\n },\r\n rowsView: {\r\n renderSelectCheckBoxContainer($container, options) {\r\n if (\"data\" === options.rowType && !options.row.isNewRow) {\r\n $container.addClass(EDITOR_CELL_CLASS);\r\n this._attachCheckBoxClickEvent($container);\r\n this._renderSelectCheckBox($container, options)\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n },\r\n _renderSelectCheckBox(container, options) {\r\n var groupElement = $(\"
\").addClass(SELECT_CHECKBOX_CLASS).appendTo(container);\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectRow\"), groupElement);\r\n this.getController(\"editorFactory\").createEditor(groupElement, extend({}, options.column, {\r\n parentType: \"dataRow\",\r\n dataType: \"boolean\",\r\n lookup: null,\r\n value: options.value,\r\n setValue(value, e) {\r\n var _a;\r\n if (\"keydown\" === (null === (_a = null === e || void 0 === e ? void 0 : e.event) || void 0 === _a ? void 0 : _a.type)) {\r\n eventsEngine.trigger(e.element, clickEventName, e)\r\n }\r\n },\r\n row: options.row\r\n }));\r\n return groupElement\r\n },\r\n _attachCheckBoxClickEvent($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction((function(e) {\r\n var selectionController = this.getController(\"selection\");\r\n var {\r\n event: event\r\n } = e;\r\n var rowIndex = this.getRowIndex($(event.currentTarget).closest(\".\".concat(ROW_CLASS)));\r\n if (rowIndex >= 0) {\r\n selectionController.startSelectionWithCheckboxes();\r\n selectionController.changeItemSelection(rowIndex, {\r\n shift: event.shiftKey\r\n });\r\n if ($(event.target).closest(\".\".concat(SELECT_CHECKBOX_CLASS)).length) {\r\n this.getController(\"data\").updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: [rowIndex]\r\n })\r\n }\r\n }\r\n })))\r\n },\r\n _update(change) {\r\n var that = this;\r\n var tableElements = that.getTableElements();\r\n if (\"updateSelection\" === change.changeType) {\r\n if (tableElements.length > 0) {\r\n each(tableElements, (_, tableElement) => {\r\n each(change.itemIndexes || [], (_, index) => {\r\n var $row;\r\n if (change.items[index]) {\r\n $row = that._getRowElements($(tableElement)).eq(index);\r\n if ($row.length) {\r\n var {\r\n isSelected: isSelected\r\n } = change.items[index];\r\n $row.toggleClass(ROW_SELECTION_CLASS, void 0 === isSelected ? false : isSelected).find(\".\".concat(SELECT_CHECKBOX_CLASS)).dxCheckBox(\"option\", \"value\", isSelected);\r\n that.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n })\r\n });\r\n that._updateCheckboxesClass()\r\n }\r\n } else {\r\n that.callBase(change)\r\n }\r\n },\r\n _createTable() {\r\n var that = this;\r\n var selectionMode = that.option(\"selection.mode\");\r\n var $table = that.callBase.apply(that, arguments);\r\n if (\"none\" !== selectionMode) {\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE) || !touch) {\r\n eventsEngine.on($table, addNamespace(holdEvent.name, \"dxDataGridRowsView\"), \".\".concat(DATA_ROW_CLASS), that.createAction(e => {\r\n processLongTap(that.component, e.event);\r\n e.event.stopPropagation()\r\n }))\r\n }\r\n eventsEngine.on($table, \"mousedown selectstart\", that.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n }))\r\n }\r\n return $table\r\n },\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var {\r\n isSelected: isSelected\r\n } = row;\r\n if (isSelected) {\r\n $row.addClass(ROW_SELECTION_CLASS)\r\n }\r\n var selectionMode = this.option(SELECTION_MODE);\r\n if (\"none\" !== selectionMode) {\r\n this.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n return $row\r\n },\r\n _rowClick(e) {\r\n var dxEvent = e.event;\r\n var isSelectionDisabled = $(dxEvent.target).closest(\".\".concat(SELECTION_DISABLED_CLASS)).length;\r\n if (!this.isClickableElement($(dxEvent.target))) {\r\n if (!isSelectionDisabled && (\"multiple\" !== this.option(SELECTION_MODE) || \"always\" !== this.option(SHOW_CHECKBOXES_MODE))) {\r\n if (this.getController(\"selection\").changeItemSelection(e.rowIndex, {\r\n control: isCommandKeyPressed(dxEvent),\r\n shift: dxEvent.shiftKey\r\n })) {\r\n dxEvent.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n this.callBase(e)\r\n }\r\n },\r\n isClickableElement($target) {\r\n var isCommandSelect = $target.closest(\".\".concat(COMMAND_SELECT_CLASS)).length;\r\n return !!isCommandSelect\r\n },\r\n _renderCore(change) {\r\n var deferred = this.callBase(change);\r\n this._updateCheckboxesClass();\r\n return deferred\r\n },\r\n _updateCheckboxesClass() {\r\n var tableElements = this.getTableElements();\r\n var selectionController = this.getController(\"selection\");\r\n var isCheckBoxesHidden = selectionController.isSelectColumnVisible() && !selectionController.isSelectionWithCheckboxes();\r\n each(tableElements, (_, tableElement) => {\r\n $(tableElement).toggleClass(CHECKBOXES_HIDDEN_CLASS, isCheckBoxesHidden)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/selection.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n selectionModule\r\n} from \"../../../grids/grid_core/selection/m_selection\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"selection\", selectionModule);\r\n","/**\r\n * DevExtreme (esm/ui/tree_view/ui.tree_view.base.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n asyncNoop,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isDefined,\r\n isPrimitive,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport CheckBox from \"../check_box\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../events/double_click\";\r\nimport fx from \"../../animation/fx\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n fromPromise,\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport {\r\n getRelativeOffset\r\n} from \"../../renovation/ui/scroll_view/utils/get_relative_offset\";\r\nimport {\r\n SCROLLABLE_CONTENT_CLASS,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_VERTICAL\r\n} from \"../../renovation/ui/scroll_view/common/consts\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\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_WITH_CUSTOM_EXPANDER_ICON_CLASS = \"\".concat(ITEM_CLASS, \"-with-custom-expander-icon\");\r\nvar CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-expander-icon-item-container\");\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 CUSTOM_COLLAPSE_ICON_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-collapse-icon\");\r\nvar CUSTOM_EXPAND_ICON_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-expand-icon\");\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 ITEM_URL_CLASS = \"dx-item-url\";\r\nvar TreeViewBase = HierarchicalCollectionWidget.inherit({\r\n _supportedKeys: function(e) {\r\n var click = e => {\r\n var $itemElement = $(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 === addNamespace(clickEventName, EXPAND_EVENT_NAMESPACE);\r\n if (expandByClick) {\r\n this._expandEventHandler(e)\r\n }\r\n };\r\n var select = e => {\r\n e.preventDefault();\r\n var $focusedElement = $(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 = $(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 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 = $(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] || $()\r\n }\r\n var element = this.$element().get(0).querySelector(\"[\".concat(DATA_ITEM_ID, '=\"').concat(key, '\"]'));\r\n return $(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 = 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 expandIcon: null,\r\n collapseIcon: null,\r\n selectAllText: messageLocalization.format(\"dxList-selectAll\"),\r\n onItemSelectionChanged: null,\r\n onItemExpanded: null,\r\n onItemCollapsed: null,\r\n scrollDirection: \"vertical\",\r\n useNativeScrolling: true,\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 extend(true, defaultOptions, {\r\n integrationOptions: {\r\n useDeferUpdateForTemplates: false\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }])\r\n },\r\n _initSelectedItems: noop,\r\n _syncSelectionOptions: asyncNoop,\r\n _fireSelectionChanged: function() {\r\n var selectionChangePromise = this._selectionChangePromise;\r\n 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 var searchEnabled = this.option(\"searchEnabled\");\r\n var previousSelectAllEnabled = this._selectAllEnabled(previousValue);\r\n var previousItemsContainer = this._itemContainer(searchEnabled, previousSelectAllEnabled);\r\n this._detachClickEvent(previousItemsContainer);\r\n this._detachExpandEvent(previousItemsContainer);\r\n if (\"none\" === previousValue || \"none\" === value) {\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 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 {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\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 this._invalidate();\r\n break;\r\n case \"scrollDirection\":\r\n this.getScrollable().option(\"direction\", value);\r\n break;\r\n case \"useNativeScrolling\":\r\n this.getScrollable().option(\"useNative\", 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._attachExpandEvent();\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 case \"expandIcon\":\r\n case \"collapseIcon\":\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 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).resolve(invocationResult).promise()\r\n }\r\n if (invocationResult && isFunction(invocationResult.then)) {\r\n return fromPromise(invocationResult)\r\n }\r\n return (new 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 = $(\"
\").addClass(LOAD_INDICATOR_CLASS);\r\n this._createComponent(this._treeViewLoadIndicator, LoadIndicator, {});\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 = $(\"
\").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 if (\"plain\" !== this.option(\"dataStructure\")) {\r\n return\r\n }\r\n this._dataSource && this._dataSource.store().on(\"inserted\", newItem => {\r\n this.option().items = this.option(\"items\").concat(newItem);\r\n this._dataAdapter.addItem(newItem);\r\n if (!this._dataAdapter.isFiltered(newItem)) {\r\n return\r\n }\r\n this._updateLevel(this._parentIdGetter(newItem))\r\n }).on(\"removed\", removedKey => {\r\n var node = this._dataAdapter.getNodeByKey(removedKey);\r\n if (isDefined(node)) {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(node.internalFields.key)] = 0;\r\n this._markChildrenItemsToRemove(node);\r\n this._removeItems();\r\n this._dataAdapter.removeItem(removedKey);\r\n this._updateLevel(this._parentIdGetter(node))\r\n }\r\n })\r\n },\r\n _markChildrenItemsToRemove: function(node) {\r\n var keys = node.internalFields.childrenKeys;\r\n each(keys, (_, key) => {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(key)] = 0;\r\n this._markChildrenItemsToRemove(this._dataAdapter.getNodeByKey(key))\r\n })\r\n },\r\n _removeItems: function() {\r\n var items = extend(true, [], this.option(\"items\"));\r\n var counter = 0;\r\n each(items, (index, item) => {\r\n if (!item) {\r\n this.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 var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n return $(scrollable.content()).children()\r\n }\r\n return $()\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 var scrollable = this.getScrollable();\r\n if (!scrollable) {\r\n this._renderScrollableContainer()\r\n }\r\n $(scrollable.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 var _this$_dataSource, _this$_dataSource$loa, _this$_dataSource$loa2;\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 langParams: null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : null === (_this$_dataSource$loa = _this$_dataSource.loadOptions) || void 0 === _this$_dataSource$loa ? void 0 : null === (_this$_dataSource$loa2 = _this$_dataSource$loa.call(_this$_dataSource)) || void 0 === _this$_dataSource$loa2 ? void 0 : _this$_dataSource$loa2.langParams\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.getScrollable().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._attachExpandEvent();\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() || this._skipContentReadyAndItemExpanded;\r\n var scrollable = this.getScrollable();\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n if (!skipContentReadyAction) {\r\n this.callBase()\r\n }\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n },\r\n _renderScrollableContainer: function() {\r\n this._scrollable = this._createComponent($(\"
\").appendTo(this.$element()), Scrollable, {\r\n useNative: this.option(\"useNativeScrolling\"),\r\n direction: this.option(\"scrollDirection\"),\r\n useKeyboard: false\r\n })\r\n },\r\n _renderNodeContainer: function($parent) {\r\n var $container = $(\"