{"version":3,"sources":["webpack:///./node_modules/devextreme/ui/shared/filtering.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.core.js","webpack:///./node_modules/devextreme/ui/file_manager/file_items_controller.js","webpack:///./node_modules/devextreme/ui/drop_down_button.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.row_dragging.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.pager.js","webpack:///./src/views/fileManager/fileManager.html","webpack:///./src/views/fileManager/fileManager.ts?8433","webpack:///./src/views/fileManager/fileManager.vue","webpack:///./node_modules/core-js/internals/to-index.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.summary.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.data_controller.js","webpack:///./node_modules/devextreme/ui/context_menu/ui.context_menu.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.command_manager.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.rows.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.items_list.thumbnails.list_box.js","webpack:///./node_modules/devextreme/format_helper.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.grouping.core.js","webpack:///./node_modules/devextreme/file_management/remote_provider.js","webpack:///./node_modules/devextreme/ui/progress_bar.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.context_menu.js","webpack:///./node_modules/core-js/internals/typed-array-from-species-and-list.js","webpack:///./node_modules/core-js/internals/array-copy-within.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.js","webpack:///./node_modules/devextreme/exporter/excel/excel.file.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.editor_factory.js","webpack:///./node_modules/core-js/modules/es.typed-array.subarray.js","webpack:///./node_modules/devextreme/core/utils/svg.js","webpack:///./node_modules/core-js/internals/to-offset.js","webpack:///./node_modules/devextreme/exporter/excel/excel.font_helper.js","webpack:///./node_modules/devextreme/ui/file_uploader.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.modules.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.columns_view.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.sorting_mixin.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.dialog.folder_chooser.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.focus.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.virtual_columns.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.keyboard_navigation.js","webpack:///./node_modules/core-js/modules/es.typed-array.sort.js","webpack:///./src/shared/dtos/collaborative-area-member.ts","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.js","webpack:///./node_modules/devextreme/exporter.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack:///./node_modules/devextreme/ui/tree_view/ui.tree_view.search.js","webpack:///./node_modules/core-js/modules/es.number.parse-int.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.column_headers.js","webpack:///./node_modules/devextreme/ui/filter_builder/filter_builder.js","webpack:///./node_modules/core-js/modules/es.typed-array.slice.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.search.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.virtual_scrolling_core.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.adaptivity.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.data_source_adapter.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.dialog.name_editor.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.common.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.header_filter.js","webpack:///./node_modules/devextreme/exporter/svg_creator.js","webpack:///./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.data_source_adapter.js","webpack:///./node_modules/devextreme/ui/drawer/ui.drawer.rendering.strategy.shrink.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.focus.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.columns_controller.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.master_detail.js","webpack:///./node_modules/devextreme/exporter/excel/excel.tag_helper.js","webpack:///./node_modules/core-js/modules/es.typed-array.find-index.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.file_uploader.js","webpack:///./node_modules/devextreme/ui/toolbar/ui.toolbar.strategy.action_sheet.js","webpack:///./node_modules/core-js/modules/es.typed-array.set.js","webpack:///./node_modules/devextreme/exporter/excel_creator.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.context_menu.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.item_list.details.js","webpack:///./node_modules/core-js/modules/es.typed-array.map.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.master_detail.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.column_chooser.js","webpack:///./node_modules/devextreme/ui/drawer/ui.drawer.animation.js","webpack:///./node_modules/devextreme/ui/overlay/utils.js","webpack:///./src/shared/dtos/collaborative-area-type.ts","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.context_menu.js","webpack:///./node_modules/devextreme/ui/toast.js","webpack:///./node_modules/devextreme/file_management/object_provider.js","webpack:///./node_modules/devextreme/exporter/excel/excel.number_format_helper.js","webpack:///./node_modules/devextreme/ui/tree_view/ui.tree_view.base.js","webpack:///./node_modules/devextreme/ui/toolbar/ui.toolbar.menu.js","webpack:///./node_modules/devextreme/file_management/utils.js","webpack:///./node_modules/devextreme-vue/file-manager.js","webpack:///./node_modules/devextreme/file_management/errors.js","webpack:///./src/views/fileManager/fileManager.ts","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.accessibility.js","webpack:///./node_modules/devextreme/ui/hierarchical_collection/ui.hierarchical_collection_widget.js","webpack:///./node_modules/devextreme/ui/drawer/ui.drawer.rendering.strategy.push.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:///./node_modules/devextreme/localization.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.columns_resizing_reordering.js","webpack:///./node_modules/core-js/modules/es.typed-array.join.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.grouping.expanded.js","webpack:///./node_modules/core-js/modules/es.typed-array.iterator.js","webpack:///./node_modules/devextreme/ui/filter_builder/ui.filter_operations_dictionary.js","webpack:///./node_modules/devextreme/ui/context_menu/ui.menu_base.edit.strategy.js","webpack:///./node_modules/core-js/internals/array-buffer.js","webpack:///./node_modules/devextreme/exporter/pdf_creator.js","webpack:///./node_modules/devextreme/ui/shared/accessibility.js","webpack:///./node_modules/core-js/modules/es.typed-array.some.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.dialog.delete_item.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.error_handling.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.state_storing_core.js","webpack:///./node_modules/devextreme/ui/toolbar/ui.toolbar.strategy.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.editing.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-string.js","webpack:///./node_modules/core-js/modules/es.typed-array.fill.js","webpack:///./node_modules/core-js/internals/typed-array-constructor.js","webpack:///./node_modules/devextreme/ui/menu/ui.submenu.js","webpack:///./src/shared/dtos/collaborative-area.ts","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.grid_view.js","webpack:///./node_modules/core-js/internals/ieee754.js","webpack:///./node_modules/devextreme/ui/filter_builder.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.export_mixin.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.state_storing.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.utils.js","webpack:///./node_modules/devextreme/ui/menu/ui.menu.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.row_dragging.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.search.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.notification.progress_panel.js","webpack:///./node_modules/core-js/modules/es.typed-array.includes.js","webpack:///./src/views/fileManager/fileManager.scss?1a08","webpack:///./node_modules/devextreme/exporter/excel/excel.cell_alignment_helper.js","webpack:///./node_modules/devextreme/ui/toolbar/ui.toolbar.strategy.drop_down_menu.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.columns_controller.js","webpack:///./node_modules/devextreme/ui/context_menu/ui.menu_base.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.header_filter_core.js","webpack:///./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.editing.js","webpack:///./node_modules/core-js/modules/es.typed-array.at.js","webpack:///./node_modules/devextreme/ui/track_bar.js","webpack:///./node_modules/devextreme/exporter/excel/excel.fill_helper.js","webpack:///./node_modules/devextreme/ui/shared/ui.editor_factory_mixin.js","webpack:///./node_modules/devextreme/ui/button_group.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.validating.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.virtual_columns_core.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack:///./node_modules/devextreme/ui/drawer/ui.drawer.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.state_storing.js","webpack:///./node_modules/core-js/internals/typed-array-from.js","webpack:///./node_modules/devextreme/file_management/custom_provider.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.column_headers.js","webpack:///./node_modules/devextreme/ui/hierarchical_collection/ui.data_converter.js","webpack:///./node_modules/devextreme/ui/splitter.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.column_state_mixin.js","webpack:///./node_modules/devextreme/ui/hierarchical_collection/ui.data_adapter.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.grid_view.js","webpack:///./node_modules/devextreme/ui/toolbar.js","webpack:///./node_modules/devextreme/ui/file_manager.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.item_list.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.file_actions_button.js","webpack:///./node_modules/devextreme/ui/notify.js","webpack:///./node_modules/devextreme/localization/language_codes.js","webpack:///./node_modules/devextreme/ui/drawer/ui.drawer.rendering.strategy.js","webpack:///./node_modules/core-js/modules/es.typed-array.every.js","webpack:///./node_modules/core-js/internals/array-buffer-native.js","webpack:///./node_modules/devextreme/ui/menu.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.virtual_scrolling.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.sorting.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.header_panel.js","webpack:///./src/store/modules/collaborative-area.module.ts","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.filter_row.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.keyboard_navigation.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.adaptivity.js","webpack:///./node_modules/core-js/internals/typed-array-species-constructor.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.editor_factory.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.item_list.thumbnails.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.error_handling.js","webpack:///./node_modules/devextreme/ui/filter_builder/utils.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.filter_panel.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.selection.js","webpack:///./node_modules/devextreme/ui/drawer/ui.drawer.rendering.strategy.overlap.js","webpack:///./node_modules/devextreme/exporter/excel/excel.color_helper.js","webpack:///./node_modules/devextreme/exporter/excel/excel.pattern_fill_helper.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.columns_resizing_reordering.js","webpack:///./node_modules/devextreme/color.js","webpack:///./node_modules/core-js/modules/es.typed-array.filter.js","webpack:///./node_modules/core-js/internals/number-parse-int.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.toolbar.js","webpack:///./node_modules/jszip/dist/jszip.min.js","webpack:///./node_modules/devextreme/exporter/file_saver.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.header_filter.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.grouping.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.data_controller.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.sorting.js","webpack:///./node_modules/core-js/modules/es.typed-array.reverse.js","webpack:///./node_modules/devextreme/ui/context_menu.js","webpack:///./node_modules/core-js/modules/es.typed-array.find.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.column_chooser.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/modules/es.typed-array.for-each.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.dialog_manager.js","webpack:///./node_modules/core-js/internals/validate-arguments-length.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.editing.js","webpack:///./node_modules/devextreme-vue/popup.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.virtual_scrolling.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.filter_builder.js","webpack:///./node_modules/devextreme/exporter/image_creator.js","webpack:///./node_modules/devextreme/ui/tree_view.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.filter_sync.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.virtual_columns.js","webpack:///./node_modules/devextreme/exporter/excel_format_converter.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.filter_sync.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.grouping.collapsed.js","webpack:///./node_modules/devextreme/ui/pager.js","webpack:///./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.rows.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.header_panel.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.files_tree_view.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.selection.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.filter_panel.js","webpack:///./node_modules/core-js/internals/array-last-index-of.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.export.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.base.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.filter_custom_operations.js","webpack:///./node_modules/devextreme/exporter/excel/excel.cell_format_helper.js","webpack:///./node_modules/core-js/modules/es.typed-array.index-of.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.adaptivity.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.column_fixing.js","webpack:///./node_modules/core-js/internals/is-integral-number.js","webpack:///./node_modules/core-js/internals/array-buffer-view-core.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.pager.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.validating.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.filter_row.js","webpack:///./node_modules/devextreme/ui/filter_builder/between.js","webpack:///./node_modules/devextreme/ui/grid_core/ui.grid_core.utils.js","webpack:///./node_modules/core-js/internals/to-positive-integer.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.breadcrumbs.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.filter_builder.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.messages.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.notification.js","webpack:///./node_modules/devextreme/file_management/file_system_item.js","webpack:///./node_modules/devextreme/file_management/provider_base.js","webpack:///./node_modules/devextreme/ui/data_grid/aggregate_calculator.js","webpack:///./node_modules/devextreme/ui/data_grid/ui.data_grid.column_fixing.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.dialog.js"],"names":["exports","default","_type","_array","_iterator","DEFAULT_DATE_INTERVAL","DEFAULT_DATETIME_INTERVAL","isDateType","dataType","getGroupInterval","column","index","result","dateIntervals","groupInterval","headerFilter","interval","inArray","slice","push","isDefined","Array","isArray","_default","getFilterSelector","target","selector","dataField","displayField","calculateDisplayValue","isZeroTime","date","getHours","getMinutes","getSeconds","getMilliseconds","getDateValues","dateValue","isDate","getFullYear","getMonth","getDate","map","split","value","Number","getFilterExpressionByRange","filterValue","endFilterValue","startFilterExpression","endFilterExpression","this","Date","getTime","setDate","getFilterExpressionForDate","selectedFilterOperation","dateStart","dateEnd","dateInterval","values","length","getFilterExpressionForNumber","startFilterValue","condition","defaultCalculateFilterExpression","isSearchByDisplayValue","lookup","filter","apply","arguments","module","_uiGrid_core","_interopRequireDefault","_uiGrid_core2","obj","__esModule","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","i","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","configurable","writable","modules","_provider_base","_file_system_item","_object_provider","_remote_provider","_custom_provider","_errors","_utils","_uiFile_manager","_deferred","_extend","_common","_defineProperties","props","descriptor","_createClass","Constructor","protoProps","staticProps","prototype","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","o","minLen","_arrayLikeToArray","n","toString","call","constructor","name","from","test","iter","Symbol","iterator","len","arr2","DEFAULT_ROOT_FILE_SYSTEM_ITEM_NAME","FileItemsController","options","_options","extend","_isInitialized","_dataLoading","_dataLoadingDeferred","_rootDirectoryInfo","_createRootDirectoryInfo","rootText","_currentDirectoryInfo","_defaultIconMap","_createDefaultIconMap","_securityController","FileSecurityController","allowedFileExtensions","maxFileSize","uploadMaxFileSize","_setProvider","fileProvider","_initialize","_proto","_fileProvider","_createFileProvider","_resetState","data","type","setCurrentPath","path","pathParts","getPathParts","rawPath","pathCombine","getCurrentDirectory","fileItem","relativeName","_setCurrentDirectoryByPathParts","setCurrentPathByKeys","pathKeys","equalByValue","getCurrentPath","currentPath","directory","isRoot","escapedName","getEscapedFileName","parentDirectory","setCurrentDirectory","directoryInfo","checkActuality","_getActualDirectoryInfo","requireRaiseSelectedDirectory","_raiseDataLoading","_raiseSelectedDirectoryChanged","getCurrentItems","onlyFiles","_this","then","_getCurrentItemsInternal","_this2","currentDirectory","getItemsPromise","getDirectoryContents","items","separatedItems","_separateItemsByType","hasSubDirectories","folders","files","getDirectories","parentDirectoryInfo","skipNavigationOnError","itemInfos","info","isDirectory","_this3","Deferred","resolve","promise","itemsLoaded","dirKey","getInternalKey","loadItemsDeferred","_loadedItems","_getFileItems","fileItems","_createDirectoryInfo","_createFileInfo","always","_this4","getItems","error","_handleItemLoadError","when","getAllowedItems","errorInfo","createDirectory","_this5","tempDirInfo","_createDirInfoByName","actionInfo","_createEditActionInfo","_processEditAction","done","_resetDirectoryState","renameItem","fileItemInfo","_this6","itemNewName","validateExtension","moveItems","destinationDirectory","_this7","itemInfo","expanded","copyItems","_this8","deleteItems","_this9","parentDir","processUploadSession","sessionInfo","uploadDirectoryInfo","_this10","_getItemInfosForUploaderFiles","deferreds","uploadFileChunk","fileData","chunksInfo","validateMaxFileSize","size","abortFileUpload","getFileUploadChunkSize","chunkSize","uploadChunkSize","downloadItems","getItemContent","getItemsContent","_raiseEditActionStarting","_raiseEditActionResultAcquired","_raiseEditActionError","errorId","errorText","reject","action","completeAction","_this11","actionResult","singleRequest","whenSome","_raiseCompleteEditActionItem","_raiseEditActionItemError","_raiseCompleteEditAction","targetItemInfos","customData","pathInfo","_getPathInfo","file","item","refresh","_this12","_lockRefresh","_refreshDeferred","_executeDataLoad","_refreshInternal","_this13","cachedRootInfo","selectedKeyParts","_getDirectoryPathKeyParts","_loadItemsRecursive","dirInfo","_findDirectoryByPathKeyParts","cachedDirectoryInfo","_this14","dirInfos","itemDeferreds","_loop","cachedItem","find","cache","_this15","currentPathKeys","completeInitialization","_raiseInitialized","useKeys","_this16","_setCurrentDirectoryByPathPartsInternal","_this17","_getDirectoryByPathParts","operation","_this18","_this19","fieldName","subDirInfo","d","restPathParts","splice","unshift","keyParts","selectedDirInfo","newSelectedDir","dirPathInfo","icon","_getFileItemDefaultIcon","concat","getDisplayName","displayName","isActualDirectoryRequired","extension","getFileExtension","text","rootDirectory","e","controller","onInitialized","onDataLoading","selectedDirectoryInfo","onSelectedDirectoryChanged","onEditActionStarting","onEditActionResultAcquired","onEditActionError","onEditActionItemError","onCompleteEditActionItem","onCompleteEditAction","_selectedDirectory","on","eventName","eventHandler","finalEventName","_this20","defaultOptions","_extensionsMap","_allowedFileExtensions","toUpperCase","_proto2","_this21","_isValidExtension","_throwError","WrongFileExtension","_maxFileSize","MaxFileSizeExceeded","get","_renderer","_ui","_function_template","_component_registrator","_button_group","_popup","_list","_data","_element","_icon","_data_helper","_data_source","_array_store","_guid","_message","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","DX_BUTTON_TEXT_CLASS","DX_ICON_RIGHT_CLASS","DropDownButton","inherit","_getDefaultOptions","callBase","itemTemplate","keyExpr","displayExpr","selectedItem","selectedItemKey","stylingMode","deferRendering","noDataText","format","useSelectMode","splitButton","showArrowIcon","onButtonClick","onSelectionChanged","onItemClick","opened","dataSource","focusStateEnabled","hoverStateEnabled","dropDownOptions","dropDownContentTemplate","wrapItemText","grouped","groupTemplate","buttonGroupOptions","_setOptionsByReference","_optionsByReference","_init","_createItemClickAction","_createActionClickAction","_createSelectionChangedAction","_initDataSource","_compileKeyGetter","_compileDisplayGetter","_itemsToDataSource","option","_initTemplates","_templateManager","addDefaultTemplates","content","FunctionTemplate","$popupContent","container","$listContainer","appendTo","_createComponent","_listOptions","registerKeyHandler","_escHandler","bind","_dataSource","DataSource","store","_getKey","pageSize","_this$_dataSource","storeKey","_keyGetter","compileGetter","_displayGetter","_initMarkup","$element","addClass","_renderButtonGroup","_updateArrowClass","_loadSelectedItem","_updateActionButton","_renderFocusTarget","noop","_render","_renderPopup","_renderContentImpl","_renderPopupContent","_lastSelectedItemData","cachedResult","_loadSingle","fail","_actionClickAction","_createActionByOption","_selectionChangedAction","_itemClickAction","_fireSelectionChangedAction","_ref","previousValue","previousItem","_fireItemClickAction","_ref2","event","itemElement","itemData","_actionItem","_actionButtonConfig","elementAttr","_getButtonGroupItems","_buttonGroupItemClick","_ref3","isActionButton","class","isToggleButton","toggle","_buttonGroupOptions","width","height","selectionMode","tabIndex","onKeyboardHandled","_keyboardHandler","buttonTemplate","_ref4","buttonContent","$firstIcon","getImageContainer","$textContainer","$secondIcon","append","$content","template","_getTemplateByOption","empty","_popupContentId","setAria","render","getPublicElement","model","_popupOptions","horizontalAlignment","dragEnabled","closeOnOutsideClick","$buttonClicked","closest","is","showTitle","animation","show","duration","to","hide","getElementWidth","shading","position","of","collision","my","at","visible","showItemDataTitle","onContentReady","_fireContentReadyAction","selectedItemKeys","_buttonGroup","focus","_upDownKeyHandler","open","close","_tabHandler","$popup","_wrapper","_popupHidingHandler","_popupShowingHandler","_bindInnerWidgetOptions","owns","_popupOptionChanged","args","getOptionsFromContainer","_setPopupOption","optionsKeys","indexOf","_dimensionChanged","popupWidth","getSizeValue","optionName","_setWidgetOption","$buttonGroup","hasArrow","toggleClass","_renderContent","_setListOption","_getDisplayValue","isPrimitiveItem","isPlainObject","displayValue","String","ensureDefined","_setOptionWithoutOptionChange","_clean","remove","_selectedItemKeyChanged","_actionButtonOptionChanged","_ref5","newConfig","repaint","_selectModeChanged","_updateItemCollection","_updateDataSource","_updateKeyExpr","_optionChanged","_this$_popup","_innerWidgetOptionChanged","fullName","include","_sortable","_browser","COMMAND_HANDLE_CLASS","CELL_FOCUS_DISABLED_CLASS","HANDLE_ICON_CLASS","ROWS_VIEW","SORTABLE_WITHOUT_HANDLE_CLASS","RowDraggingExtender","init","_updateHandleColumn","_allowReordering","rowDragging","allowReordering","allowDropInsideItem","group","columnsController","_columnsController","isHandleColumnVisible","showDragIcons","addCommandColumn","command","visibleIndex","alignment","cssClass","cellTemplate","_getHandleTemplate","columnOption","isFixedTableRendering","_isFixedTableRendering","sortableName","sortableFixedName","currentSortableName","anotherSortableName","togglePointerEventsStyle","_this$sortableFixedNa","css","component","contentTemplate","dragTemplate","_getDraggableRowTemplate","handle","dropFeedbackMode","onDragStart","_rowDragging$onDragSt","row","getVisibleRows","fromIndex","isDataRow","rowType","cancel","onDragEnter","onDragLeave","onDragEnd","_rowDragging$onDragEn","msie","onOptionChanged","hasFixedSortable","_resizeCore","offset","_dataController","getRowIndexOffset","_sortableFixed","sortable","update","_getDraggableGridOptions","gridOptions","columns","getColumns","$rowElement","getRowElement","rowIndex","id","parentId","showBorders","showColumnHeaders","scrolling","useNative","showScrollbar","pager","loadingTimeout","columnFixing","columnAutoWidth","showColumnLines","visibleWidth","fixed","fixedPosition","onRowPrepared","rowsView","getView","rowElement","replaceWith","eq","clone","$rootElement","$dataGridContainer","NAME","children","addWidgetPrefix","setEmptyText","optionChanged","_invalidate","handled","extenders","views","_pager","_window","PAGER_CLASS","MAX_PAGES_COUNT","getPageIndex","dataController","parseInt","pageIndex","PagerView","View","that","getController","_isVisible","changed","add","repaintChangesOnly","_getPager","pageCount","totalCount","hasKnownLastPage","changeType","element","_renderCore","pagerOptions","keyboardController","maxPagesCount","showPageSizes","showPageSizeSelector","showInfo","displayMode","pagesNavigatorVisible","showNavigationButtons","pageSizes","getPageSizes","pageIndexChanged","setTimeout","pageSizeChanged","onKeyDown","executeAction","useLegacyKeyboardNavigation","useKeyboard","infoText","allowedPageSizes","_pageSizes","Math","floor","isVisible","pagerVisible","mode","isLoaded","getHeight","getElementHeight","isPager","isPaging","isDataSource","isScrolling","skipProcessingPagingChange","hasWindow","resize","pagerView","_vm","_h","$createElement","_c","_self","staticStyle","undefined","collaborativeAreaId","staticClass","$event","goToAreaHome","_v","_s","collaborativeArea","attrs","backToHome","_e","ref","remoteProvider","staticRenderFns","VBtn","VCardText","VCard","VIcon","VToolbar","VToolbarTitle","global","toIntegerOrInfinity","toLength","RangeError","it","number","FooterView","renderSummaryCell","_uiData_grid","_uiData_grid2","_aggregate_calculator","_query","_store_helper","DATAGRID_TOTAL_FOOTER_CLASS","DATAGRID_SUMMARY_ITEM_CLASS","DATAGRID_TEXT_CONTENT_CLASS","DATAGRID_GROUP_FOOTER_CLASS","DATAGRID_GROUP_TEXT_CONTENT_CLASS","DATAGRID_NOWRAP_CLASS","DATAGRID_GROUP_FOOTER_ROW_TYPE","cell","$cell","summaryItems","$summaryItems","summaryItem","getSummaryText","summaryTexts","getSummaryCellOptions","totalItem","summaryCells","columnIndex","getGroupAggregates","summary","aggregates","recalculateWhileEditing","ColumnsView","_getRows","footerItems","_getCellOptions","_renderCellContent","change","columnIndices","_updateContent","_renderTable","$newTable","$row","getTableElement","$newRow","_updateCells","_rowClick","_columnOptionChanged","optionNames","changeTypes","grouping","_handleDataChanged","totalColumnIndices","SummaryDataSourceAdapterExtender","forEachGroup","groups","groupCount","callback","pop","_totalAggregates","_summaryGetter","summaryGetter","isFunction","_summary","totalAggregates","isLastLevelGroupItemsPagingLocal","sortByGroupsInfo","sortByGroups","sortLastLevelGroupItems","paths","groupedItems","multiLevelGroup","toArray","itemsPath","SummaryDataSourceAdapterClientExtender","applyAddedData","insertedData","groupLevel","applyRemovedData","removedData","updatedData","updatedItems","set","calculateAggregates","calculator","editingController","getInsertedData","getRemovedData","groupAggregates","calculate","sortGroupsBySummaryCore","query","sorts","each","sortBy","desc","thenBy","enumerate","sortedItems","sortGroupsBySummary","_customizeRemoteOperations","remoteOperations","isCustomLoading","storeLoadOptions","isLoadingAll","groupSummary","paging","totalSummary","cachedExtra","cachedPagesData","extra","_handleDataLoadedCore","normalizeSortingInfo","loadOptions","registerModule","groupItems","totalItems","calculateCustomSummary","skipEmptyValues","texts","sum","getFormatter","sumOtherColumn","min","minOtherColumn","max","maxOtherColumn","avg","avgOtherColumn","count","sortByGroupSummaryInfo","footerView","controllers","_isDataColumn","groupIndex","showWhenGrouped","_isGroupFooterVisible","groupItem","showInColumn","showInGroupFooter","_processGroupItems","isGroupFooterVisible","collectContinuationItems","isContinuationOnNextPage","_processGroupItem","summaryGroupItems","groupColumnIndex","afterGroupColumnIndex","visibleColumns","prevColumn","_calculateSummaryCells","alignByColumn","calculateTargetColumnIndex","summaryCellsByColumns","summaryIndex","valueFormat","aggregate","summaryType","getFormatByDataType","isString","deserializeValue","columnCaption","caption","isEmptyObject","_getSummaryCells","summaryTotalItems","getVisibleColumns","_updateItemsCore","_footerItems","oldSummaryCells","summaryCell","JSON","stringify","_prepareUnsavedDataSelector","getUpdatedData","_prepareAggregateSelector","aggregator","_getAggregates","commonSkipEmptyValues","calculateCellValue","log","summaryProcess","seed","totalValue","step","finalize","_addSortInfo","groupColumn","sortOrder","_findSummaryItem","summaryItemIndex","getFullName","_getSummarySortByGroups","groupSummaryItems","groupColumns","getGroupColumns","_createDataSourceAdapterCore","dataSourceAdapter","currentRemoteOperations","_getSummaryOptions","totalSummaryItems","publicMethods","methods","getTotalSummaryValue","summaryItemName","editing","_refreshSummary","isSaving","load","changesOnly","_addChange","params","_removeChange","cancelEditData","_createRow","_renderCells","_renderGroupSummaryCells","_hasAlignByColumnSummaryItems","_getAlignByColumnCellCount","groupCellColSpan","alignByColumnCellCount","$groupCell","last","attr","_renderGroupSummaryCellsCore","_renderCell","parent","_getSummaryCellIndex","_getCellTemplate","parameters","DataController","_getDataSourceAdapter","_getSpecificDataSourceOption","_dom_adapter","_events_engine","_dom","_fx","_position","_devices","_index","_overlay","_inheritsLoose","subClass","superClass","create","_setPrototypeOf","p","setPrototypeOf","__proto__","DX_MENU_CLASS","DX_MENU_ITEM_CLASS","DX_MENU_ITEM_EXPANDED_CLASS","DX_MENU_PHONE_CLASS","DX_MENU_ITEMS_CONTAINER_CLASS","DX_MENU_ITEM_WRAPPER_CLASS","DX_SUBMENU_CLASS","DX_CONTEXT_MENU_CLASS","DX_HAS_CONTEXT_MENU_CLASS","DX_STATE_DISABLED_CLASS","DX_STATE_FOCUSED_CLASS","DX_STATE_HOVER_CLASS","FOCUS_UP","FOCUS_DOWN","FOCUS_LEFT","FOCUS_RIGHT","FOCUS_FIRST","FOCUS_LAST","ACTIONS","LOCAL_SUBMENU_DIRECTIONS","DEFAULT_SHOW_EVENT","ContextMenu","_MenuBase","getShowEvent","showEventOption","isObject","getShowDelay","delay","showEvent","onShowing","onShown","onSubmenuCreated","onHiding","onHidden","onPositioning","submenuDirection","onLeftFirstItem","onLeftLastItem","onCloseRootSubmenu","onExpandLastSubmenu","_defaultOptionsRules","device","_initActions","_actions","_focusInHandler","_itemContainer","_eventBindingTarget","itemsContainer","_supportedKeys","selectItem","$item","_isSelectionEnabled","space","escape","_getActiveItem","$availableItems","_getAvailableItems","$focusedItem","$hoveredItem","$hoveredItemContainer","_moveFocus","location","$newTarget","$items","_getItemsByLocation","$oldTarget","$activeItemHighlighted","_prevItem","_setFocusedElement","first","_nextItem","_hideSubmenuHandler","_expandSubmenuHandler","$activeItem","_getAriaTarget","_refreshActiveDescendant","$target","$curItem","$parentItem","parents","_hideSubmenusOnSameLevel","_hideSubmenu","_getItemData","node","_dataAdapter","getNodeByItem","isItemHasSubmenu","_hasSubmenu","$submenu","hasClass","_showSubmenu","_detachShowContextMenuEvents","_getTarget","_renderVisibility","_addWidgetClass","_attachShowContextMenuEvents","_attachKeyboardEvents","_keyboardListenerId","_focusTarget","_renderContextMenuOverlay","overlayOptions","_getOverlayOptions","_$element","$overlayContent","_addCustomCssClass","_addPlatformDependentClass","_attachContextMenuEvent","_itemContextMenuHandler","stopPropagation","current","phone","addNamespace","_showContextMenuEventHandler","off","getDocument","contextMenuAction","_createAction","_show","validatingTargetName","handler","currentTarget","isRenderer","nodeType","isWindow","_hoverEndHandler","_renderDimensions","_renderContainer","$wrapper","submenuContainer","$holder","$itemsContainer","_renderSubmenuItems","$itemFrame","_renderItems","_getChildNodes","internalFields","submenuElement","innerOverlay","_closeOnOutsideClickHandler","propagateOutsideClick","closeOnTargetScroll","_overlayShownActionHandler","_overlayHidingActionHandler","_overlayHiddenActionHandler","arg","_hideAllShownSubmenus","isDocument","$activeItemContainer","_getActiveItemsContainer","$itemContainers","_getItemsContainers","$clickedItem","_searchActiveItem","$rootItem","isRootItemClicked","isInnerOverlayClicked","_isIncludeOverlay","_getShowSubmenuMode","_hideAllShownChildSubmenus","_$content","$activeOverlay","$allOverlays","isSame","$overlay","$submenuElements","shownSubmenus","_shownSubmenus","$context","context","isSubmenuRendered","_isSubmenuVisible","_drawSubmenu","$expandedItems","siblings","removeClass","_hideSubmenuGroup","_hideSubmenuCore","$itemElement","submenuPosition","_getSubmenuPosition","stop","setup","_animate","$container","animate","toLowerCase","$rootItemWrapper","h","v","_updateSubmenuVisibilityOnClick","actionArgs","shouldRenderSubmenu","notCloseMenuOnItemClick","closeMenuOnClick","disabled","_updateSelectedItemOnClick","$prevSubmenu","canceled","$curSubmenu","contains","_stopAnimate","_","_visibilityChanged","showing","_hide","_toggleVisibility","jQEvent","_positionContextMenu","_widgetClass","_renderFocusState","_attachHoverEvents","_attachClickEvent","getRootNodes","_setAriaAttributes","_overlayContentId","role","_cleanAriaAttributes","_getContextMenuPosition","isInitialPosition","_isInitialOptionValue","positioningAction","preventDefault","_refresh","lastPosition","fails","wellKnownSymbol","IS_PURE","ITERATOR","url","URL","searchParams","pathname","toJSON","sort","href","URLSearchParams","username","host","hash","FileManagerCommandManager","permissions","_permissions","_initCommands","_commands","enabled","noFileItemRequired","rename","isSingleFileItemCommand","move","copy","delete","download","upload","hint","_commandMap","registerActions","actions","executeCommand","commandName","setCommandEnabled","getCommandByName","isCommandAvailable","itemsLength","some","isParentFolder","every","_style","_string","_remove_event","ROWS_VIEW_CLASS","CONTENT_CLASS","NOWRAP_CLASS","GROUP_ROW_CLASS","GROUP_CELL_CLASS","DATA_ROW_CLASS","FREE_SPACE_CLASS","ROW_LINES_CLASS","COLUMN_LINES_CLASS","ROW_ALTERNATION_CLASS","LAST_ROW_BORDER","EMPTY_CLASS","ROW_INSERTED_ANIMATION_CLASS","LOADPANEL_HIDE_TIMEOUT","getMaxHorizontalScrollOffset","scrollable","scrollWidth","clientWidth","loadPanel","showIndicator","indicatorSrc","showPane","rowTemplate","wordWrapEnabled","showRowLines","rowAlternationEnabled","activeStateEnabled","twoWayBindingEnabled","defaultCellTemplate","isDataTextEmpty","isEmpty","encodeHtml","textContent","innerHTML","getScrollableBottomPadding","getScrollable","ceil","parseFloat","_getDefaultTemplate","html","_getDefaultGroupTemplate","getGroupRowSummaryText","groupContinuedMessage","groupContinuesMessage","_update","allowRenderToDetachedContainer","groupCellTemplate","isGroup","isRowExpanded","isExpanded","_rowPrepared","rowOptions","_isAltRow","watch","_setAriaRowIndex","isPagerMode","_afterRowPrepared","isNewRow","dispose","generateDataValues","repaintRows","deep","skipImmediate","_renderScrollable","force","_loadPanel","_renderLoadPanel","isLocalStore","allColumnsHasWidth","minWidth","_hasHeight","_isColumnFixing","_renderScrollableCore","_handleScroll","rtlEnabled","_isScrollByEvent","_scrollTop","scrollOffset","top","_scrollLeft","left","_scrollRight","scrollChanged","fire","dxScrollableOptions","_createScrollableOptions","scrollHandler","onScroll","onStop","_scrollable","_scrollableContainer","_$container","renderLoadPanel","contentElement","tableElement","_findContentElement","newTableElement","executors","highlightChanges","rowInsertedClass","rowIndices","$newRowElement","_getRowElements","$rowsElement","insertBefore","insertAfter","prependTo","isLiveUpdate","setTableElement","_createEmptyRow","className","isFixed","getFixedColumns","_createCell","isNumeric","_appendEmptyRow","$table","$emptyRow","$tBodies","_getBodies","isTableContainer","prepend","$colgroup","_renderFreeSpaceRow","$tableElement","$freeSpaceRowElement","_wrapRowIfNeed","_checkRowKeys","rows","fireError","_needUpdateRowHeight","itemsCount","_rowHeight","_getRowsHeight","$rowElements","not","reduce","getBoundingRect","_updateRowHeight","rowsHeight","$rows","_getFreeSpaceRowElements","tableElements","getTableElements","_getNoDataText","evaluate","expr","getter","_rowDblClick","_getColumnsCountBeforeGroups","_getGroupCellOptions","columnsCountBeforeGroups","colspan","_renderGroupedCells","expandColumn","groupCellOptions","allowCollapsing","scrollingMode","groupColumnAlignment","getDefaultAlignment","_renderRows","updateFreeSpaceRowHeight","_renderRow","renderTemplate","resizeCompletedHandler","scrollableInstance","getWindow","document","resizeCompleted","_createTable","_lastColumnWidths","getDisplayValue","oldValue","formatValue","resized","resizedCallbacks","groupingTextsOptions","isContinuation","_setRowsOpacityCore","columnID","isBand","isParentBandColumn","opacity","_getDevicePixelRatio","devicePixelRatio","renderNoDataText","getCellOptions","columnIdentifier","cellOptions","getRow","itemCount","freeSpaceRowElements","isFreeSpaceRowVisible","deferUpdate","scrollbarWidth","getScrollbarWidth","elementHeightWithoutScrollbar","contentHeight","outerHeight","showFreeSpaceRow","borderTopWidth","heightCorrection","_getHeightCorrection","resultHeight","deferRender","_updateLastRowBorder","freeSpaceRowCount","setHeight","isZoomedWebkit","webkit","hasExtraBorderTop","mozilla","version","_fireColumnResizedCallbacks","_editorFactoryController","loadingChanged","isLoading","messageText","setLoading","dataSourceChanged","contentWidth","isHorizontal","scrollableContainer","clientHeight","offsetHeight","offsetWidth","lastColumnWidths","columnWidths","_updateScrollable","dxScrollable","getInstance","_updateHorizontalScrollPosition","scrollLeft","maxHorizontalScrollOffset","scrollRight","scrollTo","x","_height","hasHeight","loadPanelOptions","visibilityOptions","message","clearTimeout","_hideLoadingTimeoutID","setRowsOpacity","_getCellElementsCore","$cells","groupCellIndex","getTopVisibleItemIndex","isFloor","itemIndex","prevOffsetTop","offsetTop","scrollPosition","$contentElement","contentElementOffsetTop","rowElements","round","getTopVisibleRowData","_scrollToElement","scrollToElement","_tableElement","setScrollerSpacing","_hold","_bindable_template","_scroll_view","_uiCollection_widget","_selection","FILE_MANAGER_THUMBNAILS_VIEW_PORT_CLASS","FILE_MANAGER_THUMBNAILS_ITEM_LIST_CONTAINER_CLASS","FILE_MANAGER_THUMBNAILS_ITEM_CLASS","FILE_MANAGER_THUMBNAILS_ITEM_NAME_CLASS","FILE_MANAGER_THUMBNAILS_ITEM_SPACER_CLASS","FILE_MANAGER_THUMBNAILS_ITEM_DATA_KEY","FILE_MANAGER_THUMBNAILS_LIST_BOX_NAMESPACE","FILE_MANAGER_THUMBNAILS_LIST_BOX_HOLD_EVENT_NAME","FileManagerThumbnailListBox","_CollectionWidget","_lockFocusedItemProcessing","_renderScrollView","_renderItemsContainer","_createScrollViewControl","onFocusedItemChanged","_onFocusedItemChanged","_layoutUtils","ListBoxLayoutUtils","_scrollView","_$itemContainer","itemElements","_syncFocusedItemKey","onItemEnterKeyPressed","_itemThumbnailTemplate","_getTooltipText","BindableTemplate","itemModel","_getDefaultItemTemplate","_$scrollView","scrollByContent","scrollByThumb","_detachEventHandlers","_attachEventHandlers","upArrow","_beforeKeyProcessing","_processArrowKeys","downArrow","home","_processHomeEndKeys","end","_getItemsLength","pageUp","_processPageChange","pageDown","enter","_getFocusedItem","A","isCommandKeyPressed","selectAll","reset","horizontal","eventArgs","layout","getLayoutModel","itemPerRowCount","newItemIndex","_getIndexByItem","_focusItemByIndex","scrollToItem","itemLayout","createItemLayoutModel","rowOffset","rowPerPageRate","newRowRate","itemRowIndex","roundFunc","newRowIndex","itemColumnIndex","_processLongTap","$targetItem","_closestItemElement","_getIndexByItemElement","changeItemSelection","control","_itemContentClass","shiftKey","_itemClass","_itemDataKey","$itemThumbnail","$itemSpacer","$itemName","_itemSelectHandler","_isPreserveSelectionMode","shift","_initSelectionModule","selectedKeys","_getItemsByKeys","selectedItems","_updateSelectedItems","addedItemKeys","removedItemKeys","_rendered","selectionChangePromise","_selectionChangePromise","_rendering","normalizedIndex","addedSelection","removedSelection","_editStrategy","beginCache","_getIndexByKey","_removeSelection","_i","_addSelection","endCache","_updateSelection","_fireSelectionChangeEvent","excludeValidators","selectedItemsCount","getSelectedItems","_normalizeSelectedItems","newKeys","_getKeysByItems","oldKeys","getSelectedItemKeys","_compareKeys","setSelection","_focusOutHandler","_getItems","getNormalizedIndex","_getItemByIndex","getItemByItemElement","_focusItem","getItemElementByItem","_syncFocusedItemKeyDeferred","deferred","focusedItemKey","focusedItem","keyOf","newFocusedItemKey","oldFocusedItemKey","_raiseFocusedItemChanged","_changeItemSelection","select","isItemSelected","_chooseSelectOption","getItemElement","deselectItem","clearSelection","deselectAll","updateItems","scrollView","$viewPort","$itemContainer","_layoutModel","_$viewPort","_$item","_createLayoutModel","itemWidth","outerWidth","itemHeight","viewPortWidth","innerWidth","viewPortHeight","innerHeight","viewPortScrollTop","scrollTop","viewPortScrollBottom","itemTop","itemBottom","newScrollTop","_date","_number","_date2","_dependency_injector","_format","formatIsValid","valueIsValid","getTimeFormat","showSecond","_normalizeFormat","formatPart","join","getDateFormatByDifferences","dateDifferences","intervalFormat","resultFormat","needSpecialSecondFormatter","millisecond","year","month","day","secondFormatter","hour","minute","second","quarter","monthDayFormatter","getMonthNames","dayFormatter","getDateFormatByTicks","ticks","maxDiff","currentDiff","getDatesDifferences","getDateFormatByTickInterval","startValue","endValue","tickInterval","dateUnitInterval","dateDifferencesConverter","week","correctDateDifferences","correctDifferencesByMaxDate","differences","minDate","maxDate","getDateUnitInterval","createOffsetFilter","GroupingHelper","_class","lastLevelOnly","filterElement","j","currentFilter","combineFilters","findGroupInfoByKey","groupsInfo","getGroupInfoIndexByOffset","leftIndex","rightIndex","middleIndex","cleanGroupsInfo","groupsCount","calculateItemsCount","isGroupItemCountable","ctor","_groupsInfo","_totalCountCorrection","totalCountCorrection","updateTotalItemsCount","_isVirtualPaging","foreachGroups","childrenAtFirst","foreachCollapsedGroups","updateOffsets","updateParentOffsets","foreachGroupsCore","callbackResults","executeCallback","callbackResult","currentParents","_updateGroupInfoOffsets","groupInfo","parentIndex","a","b","findGroupInfo","pathIndex","addGroupInfo","groupInfoData","allowCollapseAll","oldGroups","_group","handleDataLoading","handleDataLoaded","handleDataLoadedCore","_ajax","window","FILE_CHUNK_BLOB_NAME","RemoteFileSystemProvider","_FileSystemProviderBa","_endpointUrl","endpointUrl","_hasSubDirsGetter","hasSubDirectoriesExpr","getFullPathInfo","_getEntriesByPath","_convertDataObjectsToFileItems","_executeRequest","sourcePathInfo","sourceIsDirectory","destinationPathInfo","destinationFolder","chunkIndex","uploadId","chunkMetadata","UploadId","FileName","Index","TotalCount","chunkCount","FileSize","formData","FormData","chunkBlob","sendRequest","method","onprogress","onloadstart","onabort","success","_getDownloadArgs","$form","display","trigger","responseType","pathInfoList","argsStr","_getItemsIds","_getEndpointUrl","queryString","_getQueryString","separator","pairs","_processQueryStringArrayParam","pair","_getQueryStringPair","array","encodeURIComponent","_hasSubDirs","dataObj","hasSubDirs","_getKeyExpr","_track_bar","PROGRESSBAR_CLASS","PROGRESSBAR_CONTAINER_CLASS","PROGRESSBAR_RANGE_CONTAINER_CLASS","PROGRESSBAR_RANGE_CLASS","PROGRESSBAR_WRAPPER_CLASS","PROGRESSBAR_STATUS_CLASS","PROGRESSBAR_INDETERMINATE_SEGMENT_CONTAINER","PROGRESSBAR_INDETERMINATE_SEGMENT","ProgressBar","statusFormat","ratio","showStatus","onComplete","statusPosition","_animatingSegmentCount","_device","platform","_renderStatus","_createCompleteAction","_$wrapper","_$bar","_$range","_toggleStatus","_useTemplates","_completeAction","_$status","_renderIndeterminateState","_$segmentContainer","segments","splitPosition","detach","_togglePositionClass","positionClass","_toggleIndeterminateState","_renderValue","val","_setStatus","statusText","_currentRatio","_dispose","_context_menu","CONTEXT_MENU","viewName","columnHeadersView","headerPanel","VIEW_NAMES","ContextMenuController","ViewController","createAction","getContextMenuItems","dxEvent","$targetRowElement","$targetCellElement","menuItems","$targetElement","view","getRowIndex","cellIndex","targetElement","cells","_contextMenuPrepared","ContextMenuView","contextMenuInstance","getWidgetContainerClass","onContextMenuPreparing","contextMenu","contextMenuView","arrayFromConstructorAndList","typedArraySpeciesConstructor","instance","list","toObject","toAbsoluteIndex","lengthOfArrayLike","copyWithin","start","O","inc","_excel","_excel2","_excel3","_excel4","_excel5","ExcelFile","_cellFormatTags","_fillTags","_fontTags","_numberFormatTags","tryCreateTag","patternFill","patternType","registerCellFormat","cellFormat","cellFormatTag","registerFill","registerFont","registerNumberFormat","areEqual","copyCellFormat","generateCellFormatsXml","cellFormatTagsAsXmlStringsArray","tag","toXml","fill","fillTag","generateFillsXml","tagsAsXmlStringsArray","font","fontTag","generateFontsXml","xmlStringsArray","_convertNumberFormatIndexToId","CUSTOM_FORMAT_ID_START_VALUE","numberFormat","ID_PROPERTY_NAME","generateNumberFormatsXml","_click","_pointer","_position2","EDITOR_INLINE_BLOCK","FOCUS_OVERLAY_CLASS","FOCUSED_ELEMENT_CLASS","ROW_CLASS","MODULE_NAMESPACE","UPDATE_FOCUS_EVENTS","down","DX_HIDDEN","EditorFactory","_getFocusedElement","$dataGridElement","rowSelector","focusedElementSelector","_getFocusCellSelector","_updateFocusCore","$focusCell","hideBorders","$focus","_$focusedElement","loseFocus","_updateFocus","isFocusOverlay","_isFocusOverlay","_updateFocusTimeoutID","_updateFocusOverlaySize","oversize","callbackNames","hideBorder","_focusTimeoutID","renderFocusOverlay","focused","refocus","isElementInCurrentGrid","_$focusOverlay","align","elemCoord","right","bottom","focusOverlayPosition","precise","boundary","$focusedElement","category","_updateFocusHandler","_attachContainerEventHandlers","normalizeKeyName","editorFactory","ArrayBufferViewCore","aTypedArray","exportTypedArrayMethod","begin","beginIndex","C","buffer","byteOffset","BYTES_PER_ELEMENT","getSvgMarkup","getSvgElement","getMarkup","backgroundColor","temp","createElement","cloneNode","appendChild","fixNamespaces","markup","replace","match","decodeHtmlEntities","isNode","DOMParser","parseFromString","childNodes","toPositiveInteger","BYTES","fontHelper","sourceObj","family","scheme","bold","italic","underline","color","leftTag","rightTag","_callbacks","_editor","_button","_progress_bar","_themes","FILEUPLOADER_CLASS","FILEUPLOADER_EMPTY_CLASS","FILEUPLOADER_SHOW_FILE_LIST_CLASS","FILEUPLOADER_DRAGOVER_CLASS","FILEUPLOADER_WRAPPER_CLASS","FILEUPLOADER_CONTAINER_CLASS","FILEUPLOADER_CONTENT_CLASS","FILEUPLOADER_INPUT_WRAPPER_CLASS","FILEUPLOADER_INPUT_CONTAINER_CLASS","FILEUPLOADER_INPUT_LABEL_CLASS","FILEUPLOADER_INPUT_CLASS","FILEUPLOADER_FILES_CONTAINER_CLASS","FILEUPLOADER_FILE_CONTAINER_CLASS","FILEUPLOADER_FILE_INFO_CLASS","FILEUPLOADER_FILE_STATUS_MESSAGE_CLASS","FILEUPLOADER_FILE_CLASS","FILEUPLOADER_FILE_NAME_CLASS","FILEUPLOADER_FILE_SIZE_CLASS","FILEUPLOADER_BUTTON_CLASS","FILEUPLOADER_BUTTON_CONTAINER_CLASS","FILEUPLOADER_CANCEL_BUTTON_CLASS","FILEUPLOADER_UPLOAD_BUTTON_CLASS","FILEUPLOADER_INVALID_CLASS","FILEUPLOADER_AFTER_LOAD_DELAY","FILEUPLOADER_CHUNK_META_DATA_NAME","renderFileUploaderInput","isFormDataSupported","FileUploader","_Editor","click","$selectButton","_selectButton","selectButtonText","uploadButtonText","labelText","multiple","accept","uploadUrl","allowCanceling","showFileList","progress","dialogTrigger","dropZone","readyToUploadMessage","uploadedMessage","uploadFailedMessage","uploadAbortedMessage","uploadMode","uploadMethod","uploadHeaders","uploadCustomData","onBeforeSend","onUploadStarted","onUploaded","onFilesUploaded","onProgress","onUploadError","onUploadAborted","onDropZoneEnter","onDropZoneLeave","minFileSize","inputAttr","invalidFileExtensionMessage","invalidMaxFileSizeMessage","invalidMinFileSizeMessage","extendSelection","validationMessageMode","uploadFile","uploadChunk","abortUpload","validationMessageOffset","useNativeInputClick","useDragOver","nativeDropSupported","_uploadButtonType","real","deviceType","isSimulator","isMaterial","_initOptions","isLabelTextDefined","_shouldDragOverBeRendered","_initFileInput","_initLabel","_setUploadStrategy","_createFiles","_createBeforeSendAction","_createUploadStartedAction","_createUploadedAction","_createFilesUploadedAction","_createProgressAction","_createUploadErrorAction","_createUploadAbortedAction","_createDropZoneEnterAction","_createDropZoneLeaveAction","strategy","CustomChunksFileUploadStrategy","DefaultChunksFileUploadStrategy","CustomWholeFileUploadStrategy","DefaultWholeFileUploadStrategy","_uploadStrategy","_isCustomClickEvent","_$fileInput","_inputChangeHandler","prop","_doPreventInputChange","fileName","_getFiles","_changeValue","_uploadFiles","_shouldFileListBeExtended","_removeDuplicates","_isFileInArray","fileList","_getFile","targetFileValue","_files","_$inputLabel","_updateInputLabelText","correctedValue","_isInteractionDisabled","_getSubmitElement","_renderWrapper","_renderInputWrapper","_renderSelectButton","_renderInputContainer","_renderUploadButton","_preventRecreatingFiles","_attachDragEventHandlers","_$inputWrapper","_renderFiles","_createFileProgressBar","progressBar","_createProgressBar","$file","_initStatusMessage","_ensureCancelButtonInitialized","_setStatusMessage","$statusMessage","_getUploadAbortedStatusMessage","_preventFilesUploading","_createFile","_validateFile","isValidFileExtension","_validateFileExtension","isValidMinSize","_validateMinFileSize","isValidMaxSize","_validateMaxFileSize","allowedExtensions","fileExtension","substring","lastIndexOf","fileSize","_beforeSendAction","_uploadStartedAction","_uploadedAction","_filesUploadedAction","_progressAction","_uploadAbortedAction","_uploadErrorAction","_dropZoneEnterAction","_dropZoneLeaveAction","loadedSize","onAbort","onLoad","onError","onLoadStart","isValid","isInitialized","_resetFileState","isAborted","uploadStarted","isStartLoad","chunksData","request","_this$_validationMess","_$filesContainer","_renderFile","_toggleFileUploaderEmptyClassName","_updateFileNameMaxWidth","_validationMessage","$fileContainer","_renderFileButtons","$fileInfo","_getFileSize","_createValidationElement","cancelButtonsCount","uploadButtonsCount","filesContainerWidth","$buttonContainer","buttonsWidth","$fileSize","prevFileSize","fileSizeWidth","$cancelButton","_getCancelButton","$uploadButton","_getUploadButton","cancelButton","onClick","_removeFile","integrationOptions","uploadButton","_uploadFile","_file$$file","removeFile","_hasInvalidFile","labels","$button","_selectFileDialogHandler","_selectButtonClickHandler","_attachSelectFileDialogHandler","_detachSelectFileDialogHandler","_uploadButton","_uploadButtonClickHandler","_$inputContainer","_renderInput","labelId","_selectButtonInputTemplate","_applyInputAttributes","$text","_detachDragEventHandlers","isCustomTarget","_dragEventsTargets","_dragEnterHandler","_dragOverHandler","_dragLeaveHandler","_dropHandler","customAttributes","_useInputForDrop","_tryToggleDropZoneActive","_updateEventTargets","originalEvent","dataTransfer","dropEffect","targetIndex","isTargetExists","active","isCustom","classAction","mouseAction","dropZoneElement","_filterFiles","_handleAllFilesUploaded","areAllFilesLoaded","_isError","_isLoaded","allowedTypes","_getAllowedFileTypes","_isFileTypeAllowed","acceptSting","trim","allowedType","RegExp","_updateProgressBar","loadedFileData","loaded","segmentSize","currentSegmentSize","bytesLoaded","bytesTotal","total","_updateTotalProgress","totalFilesSize","totalLoadedFilesSize","_getProgressValue","_setLoadedSize","hideCancelButton","_getTotalFilesSize","_totalFilesSize","_getTotalLoadedFilesSize","_totalLoadedFilesSize","_recalculateProgress","_updateReadOnlyState","readOnly","_file$cancelButton","FileBlobReader","read","createBlobResult","isCompleted","currentPosition","blob","sliceFile","startPos","webkitSlice","FileUploadStrategyBase","fileUploader","_proto3","_prepareFileBeforeUpload","_uploadCore","abort","_isCustomCallback","_createUploadArgument","fromPromise","_handleFileError","_beforeSend","xhr","uploadInfo","_file$progressBar","_onUploadStarted","_onLoadedHandler","_onErrorHandler","_onAbortHandler","_onProgressHandler","_isStatusError","status","_getLoadedData","_extendFormData","formDataEntries","entryName","hasOwnProperty","ChunksFileUploadStrategyBase","_FileUploadStrategyBa","_proto4","realFile","loadedBytes","blobReader","guid","_sendChunk","chunk","currentChunk","_sendChunkCore","_shouldHandleError","_tryRaiseStartLoad","_getEvent","_createChunksInfo","bytesUploaded","_ChunksFileUploadStra","_proto5","headers","beforeSend","_createFormData","blobName","FileType","FileGuid","_ChunksFileUploadStra2","_proto6","WholeFileUploadStrategyBase","_FileUploadStrategyBa2","_proto7","_handleProgress","_isProgressStarted","_WholeFileUploadStrat","_proto8","fieldValue","_WholeFileUploadStrat2","_proto9","progressCallback","WIDGET_WITH_LEGACY_CONTAINER_NAME","ModuleItem","_endUpdateCore","_updateLockCount","_actionConfigs","flags","callbackFlags","unique","syncStrategy","beginUpdate","endUpdate","optionCache","_optionCache","_silentOption","localize","getAction","actionName","prefix","setAttribute","_controllers","config","componentName","containerName","Controller","_views","getViews","_isReady","isReady","_requireReady","_requireRender","_requireResize","_$parent","requireResize","requireReady","_afterRender","_parentElement","renderCompleted","marginTop","marginBottom","getTemplate","_getTemplate","$parent","isResizing","MODULES_ORDER_MAX_INDEX","processModules","componentClass","modulesOrder","controllerTypes","viewTypes","module1","module2","orderIndex1","orderIndex2","moduleName","Error","subclassOf","extender","registerPublicMethods","moduleItem","methodName","createModuleItems","moduleTypes","moduleItems","moduleType","callModuleItemsMethod","registerModulesOrder","moduleNames","unregisterModule","grep","_typeof","_element_data","_double_click","iteratorUtils","_interopRequireWildcard","_uiGrid_core3","_getRequireWildcardCache","WeakMap","has","newObj","hasPropertyDescriptor","SCROLL_CONTAINER_CLASS","GROUP_SPACE_CLASS","TABLE_CLASS","TABLE_FIXED_CLASS","CONTENT_FIXED_CLASS","DETAIL_ROW_CLASS","FILTER_ROW_CLASS","CELL_UPDATED_ANIMATION_CLASS","HIDDEN_COLUMNS_WIDTH","CELL_HINT_VISIBLE","FORM_FIELD_ITEM_CONTENT_CLASS","appendElementTemplate","subscribeToRowEvents","touchTarget","touchCurrentTarget","timeoutId","clearTouchTargets","timeout","_isNativeClick","_rowPointerDown","getWidthStyle","setCellWidth","style","maxWidth","copyAttributes","newElement","oldAttributes","attributes","newAttributes","nodeName","hasAttribute","removeAttribute","nodeValue","scrollingOptions","useNativeScrolling","pushBackValue","direction","bounceEnabled","useSimulatedScrollbar","_updateCell","_cellPrepared","textAlign","headerId","rowObject","dataIndex","isAppend","_createColGroup","safari","ctrlKey","isHeaderRow","isGroupRow","isMasterDetailRow","isFilterRow","msieCorrection","headerCellTemplate","removeAttr","difference","getOptions","$fieldItemContent","delegateTarget","resultOptions","cellElement","eventType","formItemOptions","getVisibleIndex","colgroupElement","_createCol","col","setWidth","renderDelayedTemplates","delayedTemplates","_delayedTemplates","syncTemplates","async","asyncTemplates","_renderDelayedTemplatesCore","_renderDelayedTemplatesCoreAsync","templates","isAsync","templateParameters","doc","_processTemplate","renderingTemplate","renderedTemplate","templateID","_templatesCache","templateDeferred","templateOptions","onRendered","renderAsync","showEditorAlways","$tbody","_appendRow","appendTemplate","$root","$wrappedRow","_addWatchMethod","_needRenderCell","oldValues","$newCells","cellUpdatedClass","$newCell","_setCellAriaAttributes","columnIndexOffset","getColumnIndexOffset","ariaColIndex","isAltRow","watchers","updateFunc","watcher","newValue","stopWatch","checkChanges","widths","setColumnWidths","getCellIndex","afterExecute","columnsChanged","pos","$scrollContainer","_wrapTableInScrollContainer","$newTableElement","_getWidths","$cellElements","legacyRendering","getBoundingClientRect","clientRect","getColumnWidths","isRowVisible","getVisibleColumnIndex","$cols","toFixed","getCellElements","_getCellElement","columnVisibleIndex","_getVisibleColumnIndex","_getRowElement","$tableElements","getCellElement","elements","getColumnElements","getCell","cellPosition","getRowsCount","_getRowElementsCore","tBodies","getName","paddingLeft","paddingRight","isScrollbarVisible","SORT_CLASS","SORT_NONE_CLASS","SORTUP_CLASS","SORTDOWN_CLASS","SORT_INDEX_CLASS","SORT_INDEX_ICON_CLASS","HEADERS_ACTION_CLASS","_applyColumnState","ariaSortState","$sortIndicator","sortingMode","rootElement","$indicatorsContainer","_getIndicatorContainer","isSortingAllowed","allowSorting","hasSeveralSortIndexes","sortIndex","_getIndicatorClassName","_renderIndicator","$indicator","indicator","columnAlignment","_updateIndicator","indicatorName","_getIndicatorElements","returnAll","$indicatorElements","_uiFile_managerDialog","_uiFile_manager2","FILE_MANAGER_DIALOG_FOLDER_CHOOSER","FILE_MANAGER_DIALOG_FOLDER_CHOOSER_POPUP","FileManagerFolderChooserDialog","_FileManagerDialogBas","_this$_filesTreeView","_resetDialogSelectedDirectory","_filesTreeView","switchToCopyDialog","_targetItemInfos","_setTitle","_setButtonText","switchToMoveDialog","_getDialogOptions","contentCssClass","popupCssClass","_createContentTemplate","_getDialogSelectedDirectory","onDirectoryClick","_onFilesTreeViewDirectoryClick","onFilesTreeViewContentReady","_toggleUnavailableLocationsDisabled","_$contentElement","_getDialogResult","folder","_selectedDirectoryInfo","updateCurrentDirectory","_onPopupShown","_onPopupHidden","isDisabled","locations","_getLocationsToProcess","toggleDirectoryExpandedStateRecursive","locationsToExpand","toggleDirectoryLineExpandedState","locationsToCollapse","locationKeysToDisable","toggleNodeDisabledState","_expandMap$keys","expandLocations","collapseLocations","expandMap","getMapFromObject","collapseMap","ROW_FOCUSED_CLASS","FOCUSED_ROW_SELECTOR","TABLE_POSTFIX_CLASS","FocusController","_keyboardController","focusedRowKey","_focusRowByIndex","_triggerFocusedRowChangedIfNeed","focusedRowIndex","_focusRowByKey","focusedRowIndexByKey","getFocusedRowIndexByKey","getRowIndexByKey","_fireFocusedRowChanged","isAutoNavigateToFocusedRow","_resetFocusedRow","_focusRowByIndexCore","setKeyByIndex","_isValidFocusedRowIndex","lastItemIndex","_getLastItemIndex","getKeyByRowIndex","isRowFocused","_isLocalRowIndex","waitReady","isVirtualScrolling","_isVirtualScrolling","virtualItems","virtualItemsCount","virtualItemsBegin","visibleRowsCount","visiblePagesCount","_setFocusedRowKeyByIndex","_navigateToRow","isFocusedRowKeyDefined","setFocusedRowIndex","navigateToRow","needFocusRow","isAutoNavigate","rowIndexByKey","_navigateTo","getPageIndexByKey","reload","visibleRowIndex","isVirtualRowRenderingMode","_navigateToVirtualRow","_navigateToVisibleRow","_triggerUpdateFocusedRow","scrollToRowElement","rowsScrollController","_rowsScrollController","getIndexByKey","getItemOffset","triggerUpdateFocusedRow","y","loadedRowIndex","_focusRowByKeyOrIndex","currentFocusedRowIndex","updateFocusedRow","_change$items","isMainTable","_clearPreviousFocusedRow","_prepareFocusedRow","changedItem","isNotMasterDetailFocusedRow","focusedRow","$focusedRowTable","$prevRowFocusedElement","$firstRow","scrollToElementVertically","focusedRowEnabled","autoNavigateToFocusedRow","focusedColumnIndex","keyboardNavigation","setRowFocusType","_focusedCellPosition","visibleRow","setFocusedColumnIndex","_escapeKeyHandler","isEditing","isCellFocusType","_focus","_getCellElementFromTarget","_updateFocusedCellPosition","prevRowIndex","prevColumnIndex","_fireFocusedCellChanged","isRowElement","_getElementType","isRowFocusType","getFirstValidCellInRow","getSortDataSourceParameters","sortByKey","isLocalOperations","operationName","notSortedKeys","getDataIndexGetter","notSortedKey","_applyChange","_fireChanged","isPartialUpdate","isPartialUpdateWithDeleting","_updatePageIndexes","processUpdateFocusedRow","prevRenderingPageIndex","_lastRenderingPageIndex","renderingPageIndex","_isPagingByRendering","isPagingByRendering","operationTypes","focusController","fullReload","isValidRowIndexByKey","needFocusRowByIndex","getGlobalRowIndexByKey","globalIndex","_calculateGlobalRowIndexByGroupedData","_calculateGlobalRowIndexByFlatData","groupFilter","useGroup","_generateFilterByKey","_concatWithCombinedFilter","skip","take","_generateOperationFilterByKey","requireTotalCount","combinedFilter","getCombinedFilter","_generateBooleanFilter","sortInfo","rowData","filtering","getGroupDataSourceParameters","reverse","isBoolean","booleanFilter","filterOperation","sortFilter","dataSourceKey","keyPart","_deleteRowCore","rowKey","visibleRows","updateFocusElementTabIndex","preventScroll","_setFocusedRowElementTabIndex","_findRowElementForTabIndex","_scrollToFocusOnResize","setFocusedCellPosition","getScrollElementPosition","DEFAULT_COLUMN_WIDTH","VirtualScrollingRowsViewExtender","setScrollPosition","HeaderFooterViewExtender","isVirtualMode","ColumnsControllerExtender","getWidths","members","_beginPageIndex","_endPageIndex","_virtualVisibleColumns","resetColumnsCache","getBeginPageIndex","getColumnPageSize","getTotalWidth","_lastWidth","getEndPageIndex","_fireColumnsChanged","all","_renderTime","renderingThreshold","_changedTimeout","_setScrollPositionCore","beginPageIndex","endPageIndex","needColumnsChanged","isBase","fixedColumns","transparentColumnIndex","c","visibleColumnsHash","rowCount","getRowCount","startIndex","endIndex","beginFixedColumnCount","beginFixedColumns","beginColumns","beginWidth","endFixedColumnCount","endFixedColumns","endColumns","endWidth","columnsInfo","createColumnsInfo","leftFixedColumnCount","columnRenderingMode","columnPageSize","columnRenderingThreshold","uncurryThis","aCallable","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","Uint16Array","un$Sort","ACCEPT_INCORRECT_ARGUMENTS","STABLE_SORT","mod","expected","getSortCompare","comparefn","CollaborativeAreaMember","_notify","_file_items_controller","_uiFile_manager3","_uiFile_manager4","_uiFile_managerItem_list","_uiFile_managerItem_list2","_uiFile_manager5","_uiFile_manager6","_uiFile_manager7","_uiFile_manager8","_uiFile_manager9","FILE_MANAGER_CLASS","FILE_MANAGER_WRAPPER_CLASS","FILE_MANAGER_CONTAINER_CLASS","FILE_MANAGER_DIRS_PANEL_CLASS","FILE_MANAGER_INACTIVE_AREA_CLASS","FILE_MANAGER_EDITING_CONTAINER_CLASS","FILE_MANAGER_ITEMS_PANEL_CLASS","FILE_MANAGER_ITEM_CUSTOM_THUMBNAIL_CLASS","PARENT_DIRECTORY_KEY_PREFIX","VIEW_AREAS","FileManager","_Widget","_firstItemViewLoad","_lockSelectionProcessing","_itemKeyToFocus","_controller","_onControllerInitialized","_onDataLoading","_onSelectedDirectoryChanged","_commandManager","_createNotificationControl","_initCommandManager","_setItemsViewAreaActive","$notificationControl","_notificationControl","progressPanelContainer","notificationControl","_createWrapper","onActionProgress","_onActionProgress","positionTarget","_createEditing","$toolbar","_toolbar","commandManager","generalItems","itemViewMode","onToolbarItemClick","_createAdaptivityControl","_adaptivityControl","drawerTemplate","_createFilesTreeView","_createItemsPanel","onAdaptiveStateChanged","_onAdaptiveStateChanged","$editingContainer","_editing","getMultipleSelectedItems","_getMultipleSelectedItems","getItemThumbnail","_getItemThumbnailInfo","uploadDropZonePlaceholderContainer","onSuccess","updatedOnlyFiles","_redrawComponent","onCreating","_onEditingError","_$itemsPanel","_createBreadcrumbs","_createItemView","setUploaderDropZone","_filesTreeViewContextMenu","_createContextMenu","$filesTreeView","storeExpandedState","_getCurrentDirectory","viewMode","_itemViewContextMenu","itemViewOptions","_getItemViewItems","_showError","_onItemViewSelectionChanged","_onItemViewFocusedItemChanged","onSelectedItemOpened","_onSelectedItemOpened","onContextMenuShowing","_onContextMenuShowing","customizeDetailColumns","detailColumns","$itemView","widgetClass","_itemView","_onItemViewClick","$breadcrumbs","_breadcrumbs","rootFolderDisplayName","onCurrentDirectoryChanging","_setCurrentDirectory","isolateCreationItemCommands","viewArea","$contextMenu","onContextMenuItemClick","getCommandActions","_refreshAndShowProgress","thumbnails","details","_clearSelection","showNavPane","toggleDrawer","selectedItemInfos","currentSelectedItemKeys","currentDeselectedItemKeys","_updateToolbar","itemKey","_ref6","_ref7","updateRefreshItem","extendAttributes","onErrorOccurred","tryShowProgressPanel","_getSelectedItemInfos","_itemsViewAreaActive","$activeArea","$inactiveArea","_switchView","_disposeWidget","widget","_showNotification","isSuccess","onlyFileItemsView","showFolders","_updateToolbarWithSelectionOnFirstLoad","_getPreparedItemViewItems","itemsResult","findItemsByKeys","selectedDir","parentDirItem","createClone","itemsCopy","fileInfo","func","thumbnail","fileSystemProvider","rootFolderName","toolbar","fileSelectionItems","itemView","showParentFolder","customizeThumbnail","onCurrentDirectoryChanged","onSelectedFileOpened","toolbarOptions","contextMenuItems","_ref8","_syncToCurrentDirectory","_ref9","_ref10","newCurrentDirectory","toggleDirectoryExpandedState","export","_export","_file_saver","fileSaver","svg","pdf","image","excel","_excel_creator","_image_creator","_svg_creator","_excel_format_converter","_pdf_creator","getData","exportingAction","exportedAction","fileSavingAction","saveAs","proxyUrl","forceProxy","creator","ExcelCreator","formatConverter","imageCreator","testFormats","svgCreator","$reduceRight","callbackfn","_uiTree_view","WIDGET_CLASS","NODE_CONTAINER_CLASS","TreeViewSearch","_addWidgetPrefix","_showCheckboxes","_isRecursiveSelection","_initDataAdapter","_updateSearch","_repaintContainer","_updateDataAdapter","_getDataAdapterOptions","searchValue","searchMode","searchExpr","_searchEditor","editorOptions","_getSearchEditorOptions","rootNodes","_renderEmptyMessage","isSearchMode","_removeSearchBox","$","stat","forced","CELL_CONTENT_CLASS","HEADERS_CLASS","ROW_CLASS_SELECTOR","HEADER_ROW_CLASS","CONTEXT_MENU_SORT_ASC_ICON","CONTEXT_MENU_SORT_DESC_ICON","CONTEXT_MENU_SORT_NONE_ICON","VISIBILITY_HIDDEN_CLASS","TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX","SORT_INDICATOR_CLASS","SORT_INDEX_INDICATOR_CLASS","HEADER_FILTER_CLASS_SELECTOR","HEADER_FILTER_INDICATOR_CLASS","MULTI_ROW_HEADER_CLASS","cellHintEnabled","createCellContent","$cellContent","addCssClassesToCellContent","contentAlignment","getHeaderContentAlignment","$visibleIndicatorElements","indicatorCount","_getColumnAlignment","sortIndicatorClassName","sortIndexIndicatorClassName","$sortIndexIndicator","_isLegacyKeyboardNavigation","_getHeaderTemplate","resultTemplate","_isGroupingChanged","registerKeyboardAction","_handleActionKeyDown","_lastActionElement","headerFilterController","$column","getColumnIndexByElement","showHeaderFilterMenu","_processHeaderAction","_hasRowElements","_getRowVisibleColumns","$cellElement","rowspan","_isElementVisible","elementOptions","_alignCaptionByCenter","$indicatorElement","_isSortableElement","getHeadersRowHeight","$headerRows","headerRow","getHeaderElement","columnElements","bandColumnIndex","getChildrenByBandColumn","$columnElements","allowDragging","sourceLocation","draggingPanels","draggableColumnCount","canHideColumn","allowHiding","allowDrag","allowGrouping","isColumnOptionUsed","draggingPanel","getColumnCount","sortingOptions","changeSortOrder","ascendingText","descendingText","clearText","setColumnOpacity","ownerBand","_tree_view","_ui2","_utils2","FILTER_BUILDER_CLASS","FILTER_BUILDER_GROUP_CLASS","FILTER_BUILDER_GROUP_ITEM_CLASS","FILTER_BUILDER_GROUP_CONTENT_CLASS","FILTER_BUILDER_GROUP_OPERATIONS_CLASS","FILTER_BUILDER_GROUP_OPERATION_CLASS","FILTER_BUILDER_ACTION_CLASS","FILTER_BUILDER_IMAGE_CLASS","FILTER_BUILDER_IMAGE_ADD_CLASS","FILTER_BUILDER_IMAGE_REMOVE_CLASS","FILTER_BUILDER_ITEM_TEXT_CLASS","FILTER_BUILDER_ITEM_FIELD_CLASS","FILTER_BUILDER_ITEM_OPERATION_CLASS","FILTER_BUILDER_ITEM_VALUE_CLASS","FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS","FILTER_BUILDER_OVERLAY_CLASS","FILTER_BUILDER_FILTER_OPERATIONS_CLASS","FILTER_BUILDER_FIELDS_CLASS","FILTER_BUILDER_ADD_CONDITION_CLASS","ACTIVE_CLASS","FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS","SOURCE","DISABLED_STATE_CLASS","TAB_KEY","ENTER_KEY","ESCAPE_KEY","OPERATORS","and","or","notAnd","notOr","FilterBuilder","onEditorPreparing","onEditorPrepared","onValueChanged","fields","defaultGroupOperation","groupOperations","maxGroupLevel","allowHierarchicalFields","groupOperationDescriptions","customOperations","closePopupOnTargetScroll","filterOperationDescriptions","between","equal","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","startsWith","notContains","endsWith","isBlank","isNotBlank","_initCustomOperations","disableInvalidateForValue","_disableInvalidateForValue","_initModel","getFilterExpression","_getNormalizedFields","_model","getNormalizedFilter","_customOperations","getNormalizedFields","_updateFilter","normalizedValue","_getModel","_initEditorFactory","_editorFactory","getMergedOperations","convertToInnerStructure","actionConfig","_createGroupElementByCriteria","_createConditionElement","_createConditionItem","criteria","$group","_createGroupElement","$groupContent","groupCriteria","getGroupCriteria","innerCriteria","isCondition","$groupItem","_createRemoveButton","removeItem","_createGroupOperationButton","_createAddButton","newGroup","createEmptyGroup","addItem","field","newCondition","createCondition","_createButton","_getGroupOperations","groupMenuItem","getGroupMenuItem","$operationButton","_createButtonWithMenu","menu","setGroupValue","removeMenu","menuOnItemClickWrapper","popup","treeViewElement","treeView","dxTreeView","keyName","_subscribeOnClickAndEnterKey","_createPopupWithTreeView","_hasValueButton","customOperation","getCustomOperation","hasValue","_createOperationButtonWithMenu","availableOperations","getAvailableOperations","currentOperation","getOperationFromAvailable","getOperationValue","onItemRendered","updateConditionByOperation","$valueButton","_createValueButton","_createOperationAndValueButtons","_createFieldButtonWithMenu","getField","getFullCaption","getCaptionWithParents","$fieldButton","dataStructure","getDefaultOperation","isSingleChild","getGroupValue","$removeButton","addGroupHandler","addConditionHandler","_createValueText","getCurrentLookupValueText","renderValueText","getCurrentValueText","_createValueEditorWithEvents","_updateConditionValue","areValuesDifferent","_addDocumentKeyUp","$editor","isComposing","hasCompositionJustEnded","documentKeyUpHandler","input","which","_documentKeyUpHandler","_addDocumentClick","closeEditorFunc","documentClickHandler","_isFocusOnEditorParts","_documentClickHandler","activeElement","getActiveElement","_removeEvents","createValueText","closeEditor","setValue","_createValueEditor","prev","editorTemplate","createEditor","parentType","$menuContainer","maxHeight","getElementMaxHeightByWindow","arraySlice","FORCED","Int8Array","getContentHeightLimit","subscribeToExternalScrollers","VirtualScrollController","getPixelRatio","SCROLLING_MODE_INFINITE","SCROLLING_MODE_VIRTUAL","_isVirtual","isAppendMode","needTwoPagesLoading","_viewportItemIndex","browser","scrollChangedHandler","$scrollElement","scrollableArray","scrollToArray","disposeArray","getElementOffset","$scrollableElement","scrollableOffset","createWindowScrollHandler","widgetScrollStrategy","subscribeToScrollEvents","eventsStrategy","topOffset","scrollMethod","getViewportPageCount","preventPreload","realViewportSize","_viewportSize","viewportSize","_viewportItemSize","getContentOffset","totalItemsCount","itemSize","_itemSizes","getPreloadPageCount","previous","preloadEnabled","getPageIndexForLoad","_pageIndex","_cache","needToLoadPageBeforeLast","needToLoadPrevPage","needToLoadNextPage","_loadingPageIndexes","fireChanged","_isChangedFiring","processDelayChanged","_isDelayChanged","processChanged","isDelayChanged","removeCacheItem","isPrepend","viewportItems","removeCount","correctCount","removeItemCount","updateLoading","_lastPageIndex","loadCore","isVirtual","_sizeRatio","_items","positionChanged","getItemSizes","beginItemsCount","endItemsCount","setViewportPosition","scrollingTimeout","changingDuration","_scrollTimeoutID","_setViewportPositionCore","getViewportPosition","getItemIndexByPosition","defaultItemSize","getItemSize","itemOffset","itemOffsetsWithSize","itemOffsetWithSize","itemOffsetDiff","setViewportItemIndex","setContentSize","sizes","_contentSize","virtualContentSize","contentHeightLimit","isEnd","currentItemIndex","getVirtualContentSize","getViewportItemIndex","newPageIndex","virtualMode","appendMode","lastPageSize","maxPageIndex","viewportItemSize","defaultPageIndex","pageIndexForLoad","loadResult","delayDeferred","_delayDeferred","onChanged","loadIfNeed","handleDataChanged","removeInvisiblePages","lastCacheLength","changes","cacheItem","isDelayed","isRefresh","subscribeToWindowScrollEvents","_windowScroll","EOF","DESCRIPTORS","USE_NATIVE_URL","f","redefine","anInstance","hasOwn","assign","arrayFrom","codeAt","toASCII","$toString","setToStringTag","URLSearchParamsModule","InternalStateModule","setInternalState","getInternalURLState","getterFor","getInternalSearchParamsState","getState","NativeURL","pow","charAt","exec","numberToString","stringSlice","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseIPv4","partsLength","numbers","part","radix","ipv4","parts","parseIPv6","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","chr","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","code","specialSchemes","ftp","http","https","ws","wss","isWindowsDriveLetter","string","normalized","startsWithWindowsDriveLetter","third","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","base","baseState","failure","urlString","parse","bindURL","stateOverride","codePoints","bufferCodePoints","state","seenAt","seenBracket","seenPasswordToken","password","port","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","cannotHaveUsernamePasswordPort","pathSize","serialize","output","setHref","getOrigin","URLConstructor","origin","getProtocol","setProtocol","protocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","search","getSearchParams","facade","getHash","setHash","URLPrototype","accessorDescriptor","setter","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","sham","_splitter","ADAPTIVE_STATE_SCREEN_WIDTH","FILE_MANAGER_ADAPTIVITY_DRAWER_PANEL_CLASS","DRAWER_PANEL_CONTENT_INITIAL","DRAWER_PANEL_CONTENT_ADAPTIVE","FileManagerAdaptivityControl","_isInAdaptiveState","$drawer","_drawer","_createDrawerTemplate","$drawerContent","contentRenderer","_updateDrawerMaxSize","leftElement","rightElement","viewContent","onApplyPanelSize","_onApplyPanelSize","onActiveStateChanged","_onActiveStateChanged","disableSplitterCalculation","_checkAdaptiveState","isSplitterMoved","_setDrawerWidth","leftPanelWidth","isActive","resizeViewContent","getRealPanelWidth","dimension","oldState","_isSmallScreen","_raiseAdaptiveStateChanged","_isDrawerOpened","isInAdaptiveState","skipAnimation","isSplitterActive","toggleDisabled","dataSourceAdapterType","_text_box","FILE_MANAGER_DIALOG_NAME_EDITOR","FILE_MANAGER_DIALOG_NAME_EDITOR_POPUP","FileManagerNameEditorDialog","_nameTextBox","_initialNameValue","$textBoxInput","_input","title","buttonText","onEnterKey","_applyDialogChanges","nameValue","getDisplayFileSize","byteSize","sizesTitles","displaySize","targetObject","sourceObject","objectKeysArray","objectKey","itemMap","_filtering","_variable_wrapper","_accessibility","DATE_INTERVAL_FORMATS","HeaderFilterController","getFormatOptions","currentLevel","getFormatOptionsByColumn","getDisplayFormat","formatOptions","firstValueText","secondValue","secondValueText","_headerFilterView","_updateSelectedState","isExclude","filterType","updateHeaderFilterItemSelectionState","filterValues","_normalizeGroupItem","valueSelector","displaySelector","getHeaderItemText","headerFilterOptions","emptyValue","level","valueExpr","getDataSource","getHeaderFilterGroupParameters","headerFilterDataSource","isLookup","normalizeDataSourceOptions","lookupDataSourceOptions","isWrapped","cutoffLevel","_currentColumn","useDefaultSearch","origPostProcess","postProcess","getCurrentColumn","isGroupPanel","$columnElement","showHeaderFilterMenuBase","columnElement","applyFilter","remoteFiltering","dxResizableInstance","overlayContent","dxResizable","headerFilterByColumn","restoreFocus","isFilterBuilder","hideHeaderFilterMenu","ColumnHeadersViewHeaderFilterExtender","headerFilterMixin","$headerFilterIndicator","allowHeaderFiltering","_subscribeToIndicatorEvent","_updateHeaderFilterIndicators","_updateIndicators","_needUpdateFilterIndicators","HeaderPanelHeaderFilterExtender","_createGroupPanelItem","invertFilterExpression","DataControllerFilterRowExtender","skipCalculateColumnFilters","_calculateAdditionalFilter","filters","currentColumn","calculateFilterExpression","createFilterExpression","allowSearch","searchTimeout","ok","headerFilterView","HeaderFilterView","_svg","_markup","_imageArray","_imageDeferreds","_getBinaryFile","src","_loadImages","response","binary","bytes","Uint8Array","byteLength","fromCharCode","btoa","_parseImages","tagName","_prepareImages","svgElem","xmlVersion","$svgObject","dataURI","regexpString","Blob","_getBlob","_getBase64","$lastIndexOf","searchElement","_array_utils","cloneItems","calculateOperationTypes","lastLoadOptions","isFullReload","sorting","equalSortParameters","groupExpanding","groupExpand","equalFilterParameters","executeTask","executeAsync","createEmptyPagesData","pages","getPageDataFromCache","setPageDataToCache","_remoteOperations","_isLastPage","isLastPage","_hasLastPage","_currentTotalCount","_cachedPagesData","_lastOperationTypes","_eventsStrategy","_skipCorrection","_isLoadingAll","loadError","customizeStoreLoadOptions","changing","_dataChangedHandler","_dataLoadingHandler","_handleDataLoading","_dataLoadedHandler","_handleDataLoaded","_loadingChangedHandler","_handleLoadingChanged","_loadErrorHandler","_handleLoadError","_pushHandler","_handlePush","_changingHandler","_handleChanging","memberName","member","isSharedDataSource","resetCurrentTotalCount","paginate","resetCache","_cachedStoreData","_cachedPagingData","resetPagesCache","_needClearStoreDataCache","_lastLoadOptions","fromStore","applyBatch","keyInfo","_applyBatch","_dataIndexGetter","indexByKey","storeData","isCacheUpdated","getKeyHash","_getKeyInfo","getItemCount","oldItemCount","useInsertIndex","_needCleanCacheByOperation","operationType","operationTypesByOrder","operationTypeIndex","currentOperationTypes","cachedStoreData","cachedPagingData","originalStoreLoadOptions","_isRefreshing","isRefreshing","_loadingOperationTypes","_isRefreshed","_lastOperationId","operationId","_handleDataLoadingCore","localLoadOptionNames","optionValue","localPaging","needCache","needPageCache","needPagingCache","needStoreCache","mergeStoreLoadData","currentTotalCount","_operationTypes","_scheduleCustomLoadCallbacks","_isCustomLoading","loadingOperationTypes","loadFromStore","dataSourceLoadOptions","_customLoadOptions","_scheduleLoadCallbacks","fireEvent","full","getCachedStoreData","_uiDrawer","_uiDrawerRendering","_inflector","ShrinkStrategy","_DrawerStrategy","_internalRenderPosition","changePositionUsingFxAnimation","whenAnimationCompleted","drawer","getDrawerInstance","calcTargetPosition","$panel","panelSize","_getPanelSize","panelOffset","_getPanelOffset","revealMode","margin","complete","camelize","isHorizontalDirection","isViewContentFirst","isRtl","MAX_SAFE_INTEGER","changeRowExpand","isRowClick","isKeyboardEnabled","_isFocusedRowInsideGroup","_getGroupPath","groupPath","_expandGroupByPath","expandRow","isGroupKey","_grouping","_updatePagingOptions","_calculateExpandedRowGlobalIndex","groupOffset","createGroupFilter","totalOffset","dataOffset","groupContinuationCount","currentPageOffset","commonColumnSettings","allowExporting","MASTER_DETAIL_CELL_CLASS","MASTER_DETAIL_ROW_CLASS","masterDetail","autoExpandAll","_getExpandColumnsCore","expandColumns","getExpandCellTemplate","initMasterDetail","_expandedItems","_isExpandAll","expandAll","collapseAll","expandIndex","_getRowIndicesForExpand","_changeRowExpandCore","_processDataItem","dataItem","detailColumnIndex","_processItems","isEnabledChanged","isAutoExpandAllChanged","resizing","fireContentReadyAction","_updateParentDataGrids","$masterDetailRow","_updateMasterDataGrid","$detailElement","masterRowOptions","masterDataGrid","isFixedColumns","_updateFixedMasterDetailGrids","masterRowIndex","detailElementWidth","updateDimensions","isDetailHorizontalScrollCanBeShown","isDetailGridWidthChanged","_toggleBestFitMode","isBestFit","$rowsTable","_rowsView","isEditRow","_isDetailRow","$detailCell","tagHelper","attributeName","attributeValue","$findIndex","findIndex","predicate","_file_uploader","FILE_MANAGER_FILE_UPLOADER_CLASS","FILE_MANAGER_FILE_UPLOADER_DROPZONE_PLACEHOLER_CLASS","FileManagerFileUploader","_uploaderInfos","_createInternalFileUploader","_createDropZonePlaceholder","_setDropZonePlaceholderVisible","_getController","$fileUploader","_onFileUploaderValueChanged","_onFileUploaderProgress","_onFileUploaderUploaded","_onFileUploaderUploadAborted","_onFileUploaderUploadError","_fileUploaderUploadChunk","_fileUploaderAbortUpload","uploaderInfo","tryUpload","_findAndUpdateAvailableUploaderInfo","cancelUpload","sessionId","_cancelUpload","cancelFileUpload","fileIndex","_this$_findUploaderIn","_findUploaderInfoBySessionId","_this$_findSessionByF","_findSessionByFile","session","_this$_findSessionByF2","_findUploaderInfo","_this$_findSessionByF3","fileValue","commonValue","_raiseUploadProgress","_getDeferredForFile","_$dropZonePlaceholder","_adjustDropZonePlaceholder","$dropZoneTarget","placeholderBorderTopWidth","placeholderBorderLeftWidth","$placeholderContainer","containerBorderBottomWidth","containerBorderLeftWidth","containerHeight","containerOffset","dropZoneOffset","_raiseUploadSessionStarted","_this$_findSessionByF4","_info","currentInfo","controllerGetter","onUploadSessionStarted","onUploadProgress","_uiToolbar","_action_sheet","ActionSheetStrategy","_getMenuItemTemplate","_hasVisibleMenuItems","_menuWidgetClass","_menuContainer","_widgetOptions","_$button","_menuButtonOptions","_toggleMenu","_menu","_menuShown","toOffset","toIndexedObject","Int8ArrayPrototype","$set","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","Uint8ClampedArray","0","TO_OBJECT_BUG","NATIVE_ARRAY_BUFFER_VIEWS","arrayLike","_jszip","XML_TAG","GROUP_SHEET_PR_XML","SINGLE_SHEET_PR_XML","BASE_STYLE_XML2","OPEN_XML_FORMAT_URL","RELATIONSHIP_PART_NAME","XL_FOLDER_NAME","WORKBOOK_FILE_NAME","CONTENTTYPES_FILE_NAME","SHAREDSTRING_FILE_NAME","STYLE_FILE_NAME","WORKSHEETS_FOLDER","WORKSHEET_FILE_NAME","WORKSHEET_HEADER_XML","VALID_TYPES","EXCEL_START_TIME","UTC","DAYS_COUNT_BEFORE_29_FEB_1900","MAX_DIGIT_WIDTH_IN_PIXELS","UNSUPPORTED_FORMAT_MAPPING","quarterAndYear","_getXMLTag","_convertToExcelCellRef","zeroBasedRowIndex","zeroBasedCellIndex","charCode","isCellIndexFound","columnName","_convertToExcelCellRefAndTrackMaxIndex","_maxRowIndex","_maxColumnIndex","_getDataType","_tryGetExcelCellDataType","isFinite","boolean","_formatObjectConverter","precision","formatter","currency","_tryConvertToExcelNumberFormat","newFormat","convertFormat","_appendString","_stringHash","_stringArray","_tryGetExcelDateValue","days","totalTime","_prepareValue","sourceValue","dataProvider","_dataProvider","getCellData","cellSourceData","getCellType","_callCustomizeExcelCell","sourceData","styleCopy","clearStyle","verticalAlignment","wrapTextEnabled","vertical","wrapText","fillPatternType","fillPatternColor","customizeExcelCell","newStyle","_getDataArray","cellsArray","cellData","cellsLength","rowsLength","styleArrayIndex","getStyleId","cellStyleId","_styleArrayIndexToCellStyleIdMap","hasCustomizeExcelCell","modifiedExcelCell","_styleArray","cellDataType","excelDateValue","_excelFile","_needSheetPr","getGroupLevel","_calculateWidth","pixelsWidth","_prepareStyleData","styles","getStyles","_colsArray","fonts","theme","_prepareCellData","_cellsArray","_createXMLRelationships","xmlRelationships","_createXMLRelationship","_getWorkbookContent","_getContentTypesContent","_generateStylesXML","_zip","XML","_generateStringsXML","stringIndex","stringsLength","sharedStringXml","_getPaneXML","frozenArea","getFrozenArea","_getAutoFilterXML","maxCellIndex","autoFilterEnabled","getHeaderRowCount","_getIgnoredErrorsXML","ignoreErrors","_generateWorksheetXML","colIndex","xmlCells","xmlRows","colsLength","rSpans","headerRowCount","xmlResult","_rtlEnabled","rightBottomCellRef","_generateMergingXML","k","l","mergeIndex","columnsLength","usedArea","mergeArray","mergeXML","cellMerge","getCellMerging","mergeArrayLength","_generateCommonXML","relsFileContent","relsXML","_generateContent","_generateWorkXML","JSZip","_checkZipState","ready","isBlob","compression","mimeType","MIME_TYPES","EXCEL","generateAsync","generate","excelCreator","FILE_MANAGER_DETAILS_ITEM_LIST_CLASS","FILE_MANAGER_DETAILS_ITEM_THUMBNAIL_CLASS","FILE_MANAGER_DETAILS_ITEM_NAME_CLASS","FILE_MANAGER_DETAILS_ITEM_NAME_WRAPPER_CLASS","FILE_MANAGER_DETAILS_ITEM_IS_DIRECTORY_CLASS","FILE_MANAGER_PARENT_DIRECTORY_ITEM","DATA_GRID_DATA_ROW_CLASS","DEFAULT_COLUMN_CONFIGS","calculateSortValue","dateModified","hidingPriority","FileManagerDetailsItemList","_FileManagerItemListB","_itemCount","_focusedItem","_hasParentDirectoryItem","_parentDirectoryItemKey","_selectAllCheckBox","_selectAllCheckBoxUpdating","_createFilesView","_contextMenu","_onContextMenuHidden","$filesView","_isMultipleSelectionMode","_filesView","_createDataSource","selection","showCheckBoxesMode","_isDesktop","selectedRowKeys","allowColumnResizing","showSortIndexes","columnHidingEnabled","_createColumns","_onEditorPreparing","_onRowPrepared","_onContextMenuPreparing","_onFilesViewSelectionChanged","onFocusedRowChanged","_onFilesViewFocusedRowChanged","_onFilesViewOptionChanged","_this2$_refreshDeferr","extendedItem","_getPreparedColumn","_updateColumnDataField","columnOptions","resultCssClass","_isDefaultColumn","defaultConfig","_createThumbnailColumnCell","_createNameColumnCell","_calculateSizeColumnCellValue","dataItemSuffix","columnDataField","_onFileItemActionButtonClick","_getItemSelector","_selectItem","_showContextMenu","_getFileItemsForContextMenu","_activeFileActionsButton","setActive","_getItemThumbnailCssClass","_onItemDblClick","_raiseSelectedItemOpened","_isAllItemsSelected","selectableItemsCount","_isParentDirectoryItem","_onSelectAllCheckBoxValueChanged","createContextMenuItems","_raiseContextMenuShowing","selectedRowsData","currentSelectedRowKeys","currentDeselectedRowKeys","_tryRaiseSelectionChanged","_e$row2","_e$row","_selectItemSingleSelection","fileSystemItem","cellInfo","_getItemThumbnailContainer","$name","selectItemFunc","_selectItemMultipleSelection","_deselectItem","deselectRows","oldFocusedItem","deselectedKeys","_raiseSelectionChanged","isRowSelected","selectionController","preserve","isSelectionWithCheckboxes","selectRows","_setSelectedItemKeys","itemKeys","_setFocusedItemKey","actualOptions","getSelectedRowsData","$map","mapfn","ColumnChooserView","ColumnChooserController","columnChooser","columnChooserView","moveTo","animationType","toConfig","transform","fade","WINDOW_HEIGHT_PERCENT","startLocation","actualOffset","$window","_$element$offset","elementOffset","offsetBottom","CollaborativeAreaType","FILEMANAGER_CONTEXT_MEMU_CLASS","DEFAULT_CONTEXT_MENU_ITEMS","beginGroup","DEFAULT_ITEM_ALLOWED_PROPERTIES","FileManagerContextMenu","$menu","_onContextMenuItemClick","showAt","targetFileItem","_raiseContextMenuHidden","offsetX","offsetY","boundaryOffset","_targetFileItems","_targetFileItem","itemArray","srcItem","_configureItemByCommandName","_isContextMenuItemAvailable","menuItem","_isDefaultItem","_autoHide","_isIsolatedCreationItemCommand","_extendAttributes","res","originalItemData","_addItemClickHandler","_createMenuItemByCommandName","_this$_commandManager","contextMenuItem","_this$_targetFileItem","changedArgs","targetFileItems","onContextMenuHidden","_ready_callbacks","TOAST_CLASS","TOAST_CLASS_PREFIX","TOAST_WRAPPER_CLASS","TOAST_CONTENT_CLASS","TOAST_MESSAGE_CLASS","TOAST_ICON_CLASS","WIDGET_NAME","toastTypes","TOAST_STACK","FIRST_Z_INDEX_OFFSET","visibleToastInstance","POSITION_ALIASES","center","subscribeGlobal","_proxiedDocumentDownHandler","Toast","displayTime","hideTopOverlayHandler","closeOnSwipe","closeOnClick","resizeEnabled","isPhone","isAndroid","_window$visualViewpor","visualViewport","_device2","_window$visualViewpor2","_posStringToObject","_toggleCloseEvents","_renderScrollTerminator","verticalPosition","horizontalPosition","_hideTimeout","_overlayStack","_zIndexInitValue","_errors2","ObjectFileSystemProvider","initialArray","errors","itemsExpr","_subFileItemsGetter","_subFileItemsSetter","_getSetter","contentExpr","_contentGetter","_contentSetter","nameExpr","_getNameExpr","_nameSetter","isDirExpr","_getIsDirExpr","_getIsDirSetter","_keySetter","sizeExpr","_getSizeExpr","_sizeSetter","dateModifiedExpr","_getDateModifiedExpr","_dateModifiedSetter","_executeActionAsDeferred","_renameItemCore","_findDataObject","_ensureDataObjectKey","_validateDirectoryExists","_createDataObject","_deleteItem","destinationDir","destinationDataItem","_getDirectoryDataItems","_checkAbilityToMoveOrCopyItem","copiedItem","_createCopy","reader","_createFileReader","readAsDataURL","onload","lastModifiedDate","onerror","_downloadSingleFile","_downloadMultipleFiles","_getFileContent","byteString","atob","arrayBuffer","ArrayBuffer","charCodeAt","jsZip","getJSZip","zip","base64","_isFileItemExists","_isDirGetter","DirectoryNotFound","_getKeyFromDataObject","parentPath","pathKey","_getDataObjectKey","Other","parentDataItem","copyObj","_nameGetter","childItem","childCopy","parentDirDataObj","_findFileItemObj","directoryDataObj","dataItems","parentDirKey","dirFileObjects","directoryEntry","_ensureKeysForDuplicateNameItems","dataObjects","names","FileNotFound","fileItemObj","fileItemObjects","hasCorrectFileItemType","defaultKeyPrefix","subItems","compileSetter","FileReader","numberFormatHelper","formatCode","numFmtId","_check_box","_load_indicator","_ui3","NODE_CLASS","NODE_LOAD_INDICATOR_CLASS","OPENED_NODE_CONTAINER_CLASS","IS_LEAF","ITEM_CLASS","ITEM_WITH_CHECKBOX_CLASS","ITEM_WITHOUT_CHECKBOX_CLASS","ITEM_DATA_KEY","TOGGLE_ITEM_VISIBILITY_CLASS","LOAD_INDICATOR_CLASS","LOAD_INDICATOR_WRAPPER_CLASS","TOGGLE_ITEM_VISIBILITY_OPENED_CLASS","SELECT_ALL_ITEM_CLASS","INVISIBLE_STATE_CLASS","SELECTED_ITEM_CLASS","EXPAND_EVENT_NAMESPACE","DATA_ITEM_ID","TreeViewBase","_itemClickHandler","expandEventName","_getEventNameByOption","expandByClick","_expandEventHandler","checkboxInstance","_getCheckBoxInstance","currentState","_updateItemSelection","toggleExpandedNestedItems","rootItem","_toggleExpandedNestedItems","asterisk","minus","_toggleExpandedState","_getNodeElement","_encodeString","$nodeByKey","$node","querySelector","_activeStateUnit","animationEnabled","expandAllEnabled","hasItemsExpr","selectNodesRecursive","expandNodesRecursive","selectAllText","onItemSelectionChanged","onItemExpanded","onItemCollapsed","scrollDirection","virtualModeEnabled","rootValue","expandEvent","selectByClick","createChildren","onSelectAllValueChanged","useDeferUpdateForTemplates","_initSelectedItems","_syncSelectionOptions","asyncNoop","_fireSelectionChanged","_createSelectAllValueChangedAction","_selectAllValueChangedAction","_fireSelectAllValueChanged","_checkBoxModeChange","selectAllExists","_$selectAllItem","_renderSelectAllItem","getFullData","_hasChildren","toggleSelection","dxCheckBox","_filter","_initAccessors","_initExpandEvent","setOption","_useCustomChildrenLoader","_loadChildrenByCustomLoader","newItems","_isVirtualMode","_initVirtualMode","custom","internal","_isDataStructurePlain","parentNode","invocationResult","_combineFilter","_dataSourceLoadErrorHandler","_initStoreChangeHandlers","_dataSourceChangedHandler","_initialized","_removeTreeViewLoadIndicator","_treeViewLoadIndicator","_createTreeViewLoadIndicator","_dataSourceLoadingChangedHandler","resultFilter","newItem","isFiltered","_updateLevel","_parentIdGetter","removedKey","getNodeByKey","_markChildrenItemsToRemove","_removeItems","childrenKeys","counter","_getContainerByParentKey","getChildrenNodes","_getOldContainer","_renderNodeContainer","_isRootLevel","_renderScrollableContainer","_getAccessors","accessors","multipleSelection","_isSingleSelection","recursiveSelection","recursiveExpansion","selectionRequired","$nodeContainer","_selectAllEnabled","skipContentReadyAction","_expandedGetter","_createDOMElement","label","_getLevel","nodes","_renderItem","_renderedItemsCount","nodeIndex","nodeData","showCheckBox","_renderCheckBox","selected","_toggleSelectedClass","_renderChildren","_setAriaSelected","_renderToggleItemVisibilityIcon","_loadSublevel","_renderSublevel","_getActualNode","_addLeafClass","cachedNode","_hasItemsGetter","childrenNodes","_loadNestedItems","getNodesByItems","$nestedNodeContainer","childNodesByChildrenKeys","childNode","firstChild","_updateParentsState","_normalizeIconState","_executeItemRenderAction","_getNode","_getItemRenderAction","getPublicNode","$nodeElement","expandedEventName","itemSelector","_itemSelector","identifier","isPrimitive","isElementNode","_getNodeByElement","_decodeString","_createLoadIndicator","toggleExpansion","_updateExpandedItemsUI","$icon","_renderToggleItemVisibilityIconClick","isHiddenNode","parentKey","nodeContainerExists","completionCallback","_animateNodeContainer","_loadNestedItemsWithUpdate","actualNodeData","publicNode","_areNodesExists","_appendItems","keyOfRootItem","fullData","nodeHeight","_fireExpandedStateUpdatedEvent","_itemDXEventHandler","_itemEventHandler","hasNewItems","$loadIndicator","_emptyMessageContainer","_contentAlreadyRendered","isAllSelected","_onSelectAllCheckboxValueChanged","before","_toggleSelectAll","toggleSelectAll","_updateItemsUI","$checkbox","_changeCheckboxValue","_disabledGetter","_toggleNodeDisabledState","checkbox","_itemOptionChanged","property","_isLastSelectedBranch","selectedNodesKeys","keyIndex","_isLastRequired","isSingleMode","getSelectedNodeKeys","_fireItemSelectionChanged","needFireSelectAllChanged","initiator","_findItemElementByItem","nodeSelection","selectAllCheckbox","$parentNode","parentValue","_itemEventHandlerImpl","_extendActionArgs","_createEventHandler","_itemHoldHandler","clickSelector","pointerDownSelector","pointerDownEvent","_itemPointerDownHandler","isDefaultPrevented","_updateSelectionToFirstItem","_updateSelectionToLastItem","_updateFocusState","_setFocusedItemTimeout","_setFocusedItem","_findNonDisabledNodes","$nodes","_nodeElements","$prevItem","prevItemElement","_getNodeItemElement","$nextItem","nextItemElement","$firstItem","$lastItem","_expandFocusedContainer","_collapseFocusedContainer","$focusedNode","_getClosestNonDisabledNode","nodeElement","collapsedNode","encodeURI","decodeURI","resolveWith","unselectItem","expandItem","collapseItem","getNodes","getTreeNodes","getSelectedNodes","getSelectedNodesKeys","unselectAll","dataAdapter","getExpandedNodesKeys","keyOrItemOrElement","nodeKeysToExpand","scrollCallback","_expandNodes","scrollToElementTopLeft","keysToExpand","resultCallback","callbacksByNodes","_uiList","TOOLBAR_MENU_ACTION_CLASS","TOOLBAR_HIDDEN_BUTTON_CLASS","TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS","TOOLBAR_MENU_SECTION_CLASS","TOOLBAR_MENU_LAST_SECTION_CLASS","ToolbarMenu","ListBase","_renderSections","_getSections","_itemElements","sectionName","$section","_updateSections","$sections","itemContainer","$after","_getItemTemplateName","isAction","menuTemplate","menuItemTemplate","getParentPath","PATH_SEPARATOR","substr","includeFullPath","pathPart","char","nextChar","DxUpload","DxToolbarItem","DxToolbar","DxPermissions","DxItemView","DxItem","DxFileSelectionItem","DxDetails","DxContextMenuItem","DxContextMenu","DxColumn","DxFileManager","file_manager_1","index_1","index_2","createComponent","accessKey","Boolean","Function","onDisposing","emits","computed","$_instance","beforeCreate","$_WidgetClass","$_expectedChildren","isCollectionItem","createConfigurationComponent","$_optionName","$_isCollectionItem","selectable","locateInMenu","showText","fileSelectionItem","toolbarItem","ErrorCode","NoAccess","FileExists","DirectoryExists","InvalidSymbols","chunksSum","isCollaborativeArea","ambitId","filePath","dir","fileManager","catch","nombre","post","put","moveItem","dirSrc","dstParentId","deleteItem","copyItem","dstDir","uintArray","Buffer","link","unit8Array","mergedArray","convertToBytes","language","getCollaborativeAreaById","setPath","$refs","$i18n","locale","$router","back","selectedCollaborativeArea","components","DxPopup","accessibility","executeKeyDown","HierarchicalCollectionWidget","selectedExpr","disabledExpr","parentIdExpr","expandedExpr","_initDynamicTemplates","_createDataAdapterAccessors","dataAccessors","getters","setters","_getIconContainer","_getTextContainer","_getPopoutContainer","_addContentClasses","_itemsGetter","accessor","_compileAccessor","optionExpr","getterName","setterName","newAccessor","_renderItemFrame","_translator","PushStrategy","openedPanelSize","contentPosition","_getPositionCorrection","getMinSize","paddingCssPropertyName","onPanelContentRendered","createTypedArrayConstructor","disableIntl","parseDate","formatDate","parseNumber","formatNumber","formatMessage","loadMessages","_core","engine","resetInjection","_drag","_swatch_container","COLUMNS_SEPARATOR_CLASS","COLUMNS_SEPARATOR_TRANSPARENT","DRAGGING_HEADER_CLASS","HEADERS_DRAG_ACTION_CLASS","TRACKER_CLASS","HEADERS_DROP_HIGHLIGHT_CLASS","BLOCK_SEPARATOR_CLASS","DRAGGING_COMMAND_CELL_CLASS","COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH","DRAGGING_DELTA","COLUMN_OPACITY","allowResizing","TrackerView","_unsubscribeFromCallback","_positionChanged","_tablePositionController","_subscribeToCallback","SeparatorView","_renderSeparator","_isShown","ColumnsSeparatorView","_isTransparent","columnsSeparatorTransparent","moveByX","outerX","changeCursor","cursorName","BlockSeparatorView","groupPanelOptions","columnChooserOptions","targetLocation","startAnimate","toOptions","easing","DraggingHeaderView","_isDragging","isDragging","_getDraggingPanelByPos","_dragOptions","boundingRect","_resetTargetColumnOptions","_dropOptions","targetColumnIndex","targetColumnElement","isLast","posX","posY","_getVisibleIndexObject","getCommonSettings","_columnsResizerViewController","dragHeader","isCommandColumn","sourceColumn","sourceIndex","sourceColumnIndex","sourceColumnElement","_onSelectStart","onselectstart","drag","whiteSpace","getSwatchContainer","moveHeader","eventData","dragOptions","moveDeltaX","abs","deltaX","moveDeltaY","deltaY","newLeft","newTop","dockHeader","targetDraggingPanel","isVerticalOrientation","axisName","pointsByTarget","pointsByColumns","_generatePointsByColumns","startColumnIndex","centerPosition","dock","dropHeader","drop","isNextColumnResizingMode","ColumnsResizerViewController","_isHeadersRowArea","_columnHeadersView","headersRowHeight","_isRtlParentStyle","_this$_$parentContain","_$parentContainer","_pointCreated","point","isNextColumnMode","isRtlParentStyle","firstPointColumnIndex","nextColumn","_getTargetPoint","currentX","_moveSeparator","columnsSeparatorWidth","_columnsSeparatorView","parentOffset","parentOffsetLeft","_isResizing","_resizingInfo","_updateColumnsWidthIfNeeded","currentColumnIndex","_targetPoint","_previousParentOffset","_isReadyResizing","_endResizing","_trackerView","_getNextColumnIndex","_setupResizingInfo","nextColumnIndex","currentHeader","nextHeader","startPosX","currentColumnWidth","nextColumnWidth","_startResizing","isTouchEvent","_container","getPointsByColumns","_pointsByColumns","_unsubscribeFromEvents","_moveSeparatorHandler","_startResizingHandler","_endResizingHandler","up","_subscribeToEvents","nextCellWidth","cellWidth","needUpdate","resizingInfo","adaptColumnWidthByRatio","isPercentWidth","setColumnWidth","columnWidth","oldColumnWidth","correctContentWidth","allColumnsHaveWidth","totalPercent","hasScroll","totalWidth","lastColumnIndex","getLastResizableColumnIndex","_subscribesToCallbacks","_unsubscribeFromCallbacks","subscribe","_unsubscribes","generatePointsByColumnsHandler","generatePointsByColumnsScrollHandler","previousScrollbarVisibility","previousTableHeight","scrollbarVisibility","TablePositionViewController","diffOffsetTop","columnsHeadersHeight","scrollBarWidth","columnsResizerController","draggingHeaderView","isDraggingOrResizing","_pagerView","targetPoint","DraggingHeaderViewController","targetColumn","draggingHeader","nameDraggingPanel","subscribeToEvents","_getSeparator","_blockSeparatorView","hideSeparators","blockSeparator","columnsSeparator","_animationColumnIndex","_draggingHeaderView","_headerPanelView","_columnChooserView","allowDrop","allowMoveColumn","headersView","hasTargetVisibleIndex","showSeparator","moveColumn","columnsSeparatorView","blockSeparatorView","trackerView","tablePosition","columnsResizer","$join","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","ucs2decode","digitToBasic","digit","adapt","delta","numPoints","firstTime","encode","currentValue","inputLength","bias","basicLength","handledCPCount","m","handledCPCountPlusOne","q","t","qMinusT","baseMinusT","encoded","_uiData_gridGrouping","loadTotalCount","correctSkipLoadOption","skipCorrection","resultSkip","processGroupItems","skipFirstItem","removeLastItemsCount","needRemoveFirstItem","collapsedItems","offsetInfo","pathEquals","path1","path2","keysEqual","updateGroupOffsets","additionalGroupInfo","removeGroupLoadOption","arrangeSortingInfo","createNotGroupFilter","getGroupCount","collapsedGroups","collapsedItemsCount","appendCollapsedPath","collapsedGroup","keyValue","pathValue","toComparable","groupedData","itemsCountCorrection","groupCountQuery","dataSourceItems","groupOffsetQuery","ArrayIterators","arrayValues","arrayKeys","arrayEntries","entries","TypedArrayPrototype","GENERIC","ITERATOR_IS_VALUES","typedArrayValues","OPERATION_ICONS","notcontains","startswith","endswith","isblank","isnotblank","OPERATION_NAME","getIconByFilterOperation","getNameByFilterOperation","_uiCollection_widgetEditStrategy","MenuBaseEditStrategy","_PlainEditStrategy","_getPlainItems","_collectionWidget","getMenuItems","_stringifyItem","_getTemplateString","NATIVE_ARRAY_BUFFER","FunctionName","createNonEnumerableProperty","redefineAll","toIndex","IEEE754","getPrototypeOf","getOwnPropertyNames","arrayFill","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","getInternalState","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_LENGTH","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","ArrayBufferPrototype","$DataView","DataViewPrototype","ObjectPrototype","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","isLittleEndian","intIndex","conversion","INCORRECT_ARRAY_BUFFER_NAME","NaN","testView","$setInt8","setInt8","getInt8","setUint8","unsafe","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","DataView","_version","mainPageTemplate","infoTemplate","imageStartTemplate","imageEndTemplate","trailerTemplate","xrefTemplate","pad","str","composePdfString","imageString","curDate","widthPt","heightPt","mainPage","xref","getXref","mainContent","trailer","mainPageLength","contentLength","infoLength","getCurDate","getBlob","binaryData","dataArray","getBase64","getImageData","pdfData","subscribeVisibilityChange","unsubscribeVisibilityChange","hiddenFocus","selectView","setTabIndex","FOCUS_STATE_CLASS","FOCUS_DISABLED_CLASS","GRID_ROW_SELECTOR","GRID_CELL_SELECTOR","TREELIST_ROW_SELECTOR","TREELIST_CELL_SELECTOR","viewItemSelectorMap","groupPanel","columnHeaders","filterRow","footer","filterPanel","isMouseDown","isHiddenFocusing","focusedElementInfo","processKeyDown","$mainElement","isHandled","fireKeyDownEvent","saveFocusedElementInfo","ariaLabel","$activeElements","getActiveAccessibleElements","viewInstance","viewElement","$viewElement","findFocusedViewElement","viewSelectors","$focusViewElement","onDocumentVisibilityChange","visibilityState","keyDownHandler","mouseDownHandler","focusinHandler","needShowOverlay","viewNames","viewItemIndex","_viewName","$some","FILE_MANAGER_DIALOG_DELETE_ITEM","FILE_MANAGER_DIALOG_DELETE_ITEM_POPUP","FileManagerDeleteItemDialog","itemName","_$text","_initialText","ERROR_ROW_CLASS","ERROR_MESSAGE_CLASS","ERROR_CLOSEBUTTON_CLASS","ACTION_CLASS","ErrorHandlingController","_createErrorRow","$errorRow","$closeButton","$errorMessage","_renderErrorMessage","errorRowIndex","removeErrorRow","colSpan","$message","renderErrorRow","$errorMessageElement","$firstErrorRow","next","resizingController","$columnHeaders","$rowsViewElement","errorRowEnabled","errorHandling","errorHandlingController","dataErrorOccurred","hasChanges","StateStoringController","_storage","DATE_REGEX","parseDates","getStorage","storage","sessionStorage","localStorage","getUniqueStorageKey","storageKey","_loadState","customLoad","getItem","_saveState","setItem","customSave","isEnabled","_state","_isLoading","_windowUnloadHandler","_savingTimeoutID","save","abstract","TOOLBAR_MENU_CONTAINER_CLASS","TOOLBAR_MENU_BUTTON_CLASS","ToolbarStrategy","_renderMenuButton","_renderWidget","itemClickAction","renderMenuItems","optionGetter","overflowGetter","itemVisible","functionsAsIs","itemOverflow","_getMenuItems","_updateMenuVisibility","buttonOptions","_renderMenuButtonContainer","_$menuButtonContainer","_menuButtonClickHandler","$afterSection","_$afterSection","_buttonClass","toggleMenuVisibility","getMenuWidget","widgetOption","handleToolbarVisibilityChange","_dialog","_form","iconUtils","EDIT_FORM_CLASS","EDIT_FORM_ITEM_CLASS","READONLY_CLASS","EDIT_POPUP_CLASS","FORM_BUTTONS_CONTAINER_CLASS","ADD_ROW_BUTTON_CLASS","DROPDOWN_EDITOR_OVERLAY_CLASS","LINK_CLASS","EDITOR_CELL_CLASS","ROW_SELECTED","EDIT_ROW","EDIT_BUTTON_CLASS","COMMAND_EDIT_CLASS","COMMAND_EDIT_WITH_ICONS_CLASS","SCROLLABLE_CONTAINER_CLASS","BUTTON_CLASS","INSERT_INDEX","ROW_REMOVED","ROW_INSERTED","ROW_MODIFIED","CELL_MODIFIED","EDITING_NAMESPACE","EDITORS_INPUT_SELECTOR","FOCUSABLE_ELEMENT_SELECTOR","EDIT_MODE_BATCH","EDIT_MODE_ROW","EDIT_MODE_CELL","EDIT_MODE_FORM","EDIT_MODE_POPUP","DATA_EDIT_DATA_INSERT_TYPE","DATA_EDIT_DATA_UPDATE_TYPE","DATA_EDIT_DATA_REMOVE_TYPE","DEFAULT_START_EDIT_ACTION","EDIT_MODES","ROW_BASED_MODES","CELL_BASED_MODES","FORM_BASED_MODES","MODES_WITH_DELAYED_FOCUS","TARGET_COMPONENT_NAME","EDIT_LINK_CLASS","edit","undelete","EDIT_ICON_CLASS","METHOD_NAMES","ACTION_OPTION_NAMES","BUTTON_NAMES","EDITING_POPUP_OPTION_NAME","EDITING_CHANGES_OPTION_NAME","EDITING_EDITROWKEY_OPTION_NAME","EDITING_EDITCOLUMNNAME_OPTION_NAME","createFailureHandler","_getEditMode","editMode","_isRowEditMode","isEditingCell","allowEditing","isEditingOrShowEditorAlwaysDataCell","isCommandCell","isEditorCell","EditingController","getDefaultEditorTemplate","isOnForm","getEditingTexts","editingTexts","saveRowChanges","cancelRowChanges","editRow","undeleteRow","deleteRow","addRowToNode","getButtonIndex","buttons","button","getButtonName","getEditorType","isCustomEditorType","editorType","formItem","forEachFormItems","callBack","tabs","$pointerDownTarget","_editForm","_updateEditFormDeferred","_lastOperation","_deferreds","_saveEditorHandler","_pointerUpEditorHandler","_that$getController","_pointerDownEditorHandler","targetComponent","_editCellInProgress","isEditorPopup","checkEditorPopup","isDomElement","isAnotherComponent","_disposed","isAddRowButton","isCellEditMode","_closeEditItem","_updateEditColumn","_updateEditButtons","_internalState","getChanges","resetChanges","needReset","_getInternalData","_addInternalData","internalData","_getOldData","_this$_getInternalDat","oldData","editIndex","createObjectWithChanges","_fireDataErrorOccurred","getPopupContent","_needToCloseEditableCell","isCurrentComponentElement","$targetCell","isEditCell","closeEditCell","editForm","_repaintEditPopup","_isDefaultButtonVisible","isRowMode","isBatchMode","_getVisibleEditRowIndex","allowUpdating","allowDeleting","removed","_isButtonVisible","_getButtonConfig","buttonName","editingOptions","allowAction","_getEditingButtons","buttonIndex","haveCustomButtons","_renderEditingButtons","_getEditCommandCellTemplate","isRowEditMode","isFormEditMode","isCellOrBatchEditMode","getEditMode","getFirstEditableColumnIndex","firstFormItem","_firstFormItem","editRowKey","editRowIndex","$editFormElements","_getEditFormEditorVisibleIndex","getFirstEditableCellInRow","getFocusedCellInRow","_inputFocusTimeoutID","editPopup","_editPopup","popupOptionName","_handleEditRowKeyChange","_handleEditColumnNameChange","_handleChangesChange","_resetEditColumnName","_resetEditRowKey","oldRowIndexCorrection","_getEditRowIndexCorrection","oldRowIndex","_getVisibleEditColumnIndex","_editCellFromOptionChanged","_editRowFromOptionChanged","oldColumnIndex","_repaintEditCell","isPageChanged","needResetIndexes","isEditRowKeyDefined","isEditColumnNameDefined","_setEditRowKey","silent","_setEditRowKeyByIndex","getEditRowIndex","getEditFormRowIndex","popupVisible","_$popupContent","getEditForm","_needInsertItem","dataRowIndex","_generateNewItem","_getLoadedRowIndexByInsertKey","loadedRowIndexOffset","processItems","processDataItem","_changes$editIndex","modified","modifiedValues","_initNewRow","_getInsertKey","insertKey","_getInsertRowIndex","_getInsertIndex","parentRowIndex","maxInsertIndex","editItem","addRow","param","oldEditRowIndex","saveEditData","_allowRowAdding","__KEY__","_addRowCore","insertIndex","initialOldEditRowIndex","_showEditPopup","_focusFirstEditableCellInRow","_afterInsertRow","$firstCell","_delayedInputFocus","eventToTrigger","_isEditingStart","_beforeEditCell","_beforeUpdateItems","editColumnName","_setEditColumnNameByIndex","_visibleColumns$index","_setEditColumnName","_getEditColumn","_getColumnByName","editColumn","isColumnHidden","_resetEditIndices","_needFocusEditor","_focusEditorIfNeed","$editingCell","_this$_rowsView","editColumnIndex","_focusEditingCell","repaintForm","isMobileDevice","popupOptions","fullScreen","toolbarItems","_getSaveButtonConfig","_getCancelButtonConfig","_getPopupEditFormTemplate","$popupContainer","_getEditPopupHiddenHandler","defaultAnimation","formTemplate","getEditFormTemplate","_removeInternalData","executeOperation","waitForDeferredOperations","editCell","_editCell","coreResult","_editCellCore","_getNormalizedEditCellOptions","oldColumn","isEditByOptionChanged","_this$_getNormalizedE","_prepareEditCell","_processCanceledEditingCell","beforeFocusCallback","callBeforeFocusCallbackAlways","inputFocus","$focusableElement","focusAndSelectElement","_beforeFocusCallback","ios","android","$editCell","_checkAndDeleteRow","confirmDelete","confirmDeleteMessage","confirmDeleteTitle","showDialogTitle","confirm","confirmResult","_fireOnSaving","onSavingParams","_executeEditingAction","_processChanges","results","dataChanges","changeCopy","_beforeSaveEditData","insert","newData","doneDeferred","_processSaveEditDataResult","hasSavedData","changesLength","isError","_fireSaveEditDataEvents","_resolveAfterSave","_saving","_saveEditDataInner","_afterSaveEditData","beginLoading","_endSaving","endLoading","_cancelSaving","_resetModifiedClassCells","columnsCount","_changes$","_refreshDataAfterSave","_cancelEditDataCore","refreshMode","isFullRefresh","isEditColumnVisible","_isEditColumnVisible","useIcons","isVisibleWithCurrentEditMode","allowAdding","setToolbarItemDisabled","_applyModified","_beforeCloseEditCellInBatchMode","_beforeCancelEditData","_hideEditPopup","hasEditData","withoutSaveEditData","_closeEditCellCore","_getRowIndicesForCascadeUpdating","skipCurrentRow","addDeferred","_this22","_prepareChange","_options$row","setCellValueResult","setCellValue","displayValueMap","_updateRowValues","updateFieldValue","forceUpdateRow","_this23","_focusPreviousEditingCellIfNeed","_updateEditRow","_needUpdateRow","isCustomSetCellValue","defaultSetCellValue","isCustomCalculateCellValue","visibleColumn","defaultCalculateCellValue","isUpdateInCellMode","focusPreviousEditingCell","_updateEditRowCore","focusedElement","selectionRange","getSelectionRange","selectionStart","setSelectionRange","_getFormEditItemTemplate","editCellTemplate","renderFormEditTemplate","detailCellOptions","form","isReadOnly","getItemID","getFormEditorTemplate","_validator","$editorElement","validator","validatorOptions","contents","dxValidator","validationRules","validationGroup","dataGetter","getEditFormOptions","detailOptions","userCustomizeItem","editFormItemClass","itemId","formID","customizeItem","isRequired","rule","renderFormOnly","editFormOptions","baseEditFormOptions","$buttonsContainer","getColumnTemplate","editingStartOptions","isRowEditing","isCellEditing","iconType","getImageSourceType","localizationName","getButtonLocalizationNames","prepareEditButtons","titleButtonTextByClassNames","revert","cancelAllChanges","saveAllChanges","classNameButtonByNames","buttonItems","prepareButtonItem","_getToolbarButtonClass","hintText","isButtonDisabled","highlightDataCell","cellModified","isCellModified","_allowEditAction","allowEditAction","startEditAction","needCallback","selectTextOnEditStart","colCount","_editingController","_applyChangeUpdate","_applyChangesOnly","_processItem","_getChangedColumnIndices","oldItem","_isCellChanged","oldRow","newRow","editFormRowIndex","isRowRemoved","isRowInserted","isRowModified","_getColumnIndexByElement","_getColumnIndexByElementCore","_editCellByClick","_this24","_pointerDownTimeout","isEditForm","isEditableCell","_editCellPrepared","_formItemPrepared","_isFormItem","isDetailRow","isPopupEditing","cellValue","_getToolbarItems","editButtonItems","excludedOptions","shouldInvalidate","Uint8ArrayPrototype","arrayToString","IS_NOT_ARRAY_METHOD","$fill","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferModule","createPropertyDescriptor","isIntegralNumber","toPropertyKey","classof","isSymbol","isPrototypeOf","typedArrayFrom","setSpecies","definePropertyModule","getOwnPropertyDescriptorModule","inheritIfRequired","nativeDefineProperty","nativeGetOwnPropertyDescriptor","TYPED_ARRAY_CONSTRUCTOR","TYPED_ARRAY_TAG","TypedArray","aTypedArrayConstructor","isTypedArray","fromList","isArrayBuffer","klass","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","TYPE","wrapper","CLAMPED","CONSTRUCTOR_NAME","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","dummy","typedArrayOffset","$length","$len","DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS","Submenu","_ContextMenu","orientation","onHoverStart","_renderDelimiter","$contentDelimiter","onPositioned","_overlayPositionedActionHandler","_showDelimiter","_toggleFocusClass","_isMenuHorizontal","_hoverStartHandler","hoverStartAction","submenu","vLocation","hLocation","rootOffset","offsetLeft","rootWidth","rootHeight","submenuWidth","submenuHeight","isOverlayVisible","getOverlayContent","CollaborativeArea","BORDERS_CLASS","IMPORTANT_MARGIN_CLASS","TEXT_CONTENT_CLASS","HIDDEN_CLASS","GRIDBASE_CONTAINER_CLASS","isPixelWidth","mergeArraysByMaxValue","values1","values2","getContainerHeight","paddingTop","paddingBottom","calculateFreeWidth","_getTotalWidth","calculateFreeWidthWithCurrentMinWidth","currentMinWidth","ResizingController","_initPostRenderHandlers","_refreshSizesHandler","resizeDeferred","needUpdateDimensions","_setAriaRowColCount","columnCount","_getBestFitWidths","_this$_footerView","_widths","_rowsView$getTableEle","headersTableElement","rowsColumnWidths","headerColumnWidths","footerColumnWidths","_footerView","resultWidths","_setVisibleWidths","columnId","getColumnId","_toggleBestFitModeForView","$rowsTables","$viewTables","$tableBody","$viewTable","$rowsFixedTable","_needStretch","_synchronizeColumns","resetBestFitMode","needBestFit","_needBestFit","hasMinWidth","isColumnWidthsCorrected","normalizeWidthsByExpandColumns","expandColumnWidth","isFocusOutsideWindow","_correctColumnWidths","_processStretch","_getAverageColumnsWidth","freeWidth","columnCountWithoutWidth","hasPercentWidth","hasAutoWidth","hasWidth","_hasWidth","isHiddenColumn","averageColumnsWidth","realColumnWidth","_getRealColumnWidth","_maxWidth","resultSizes","groupSize","tableSize","unusedIndexes","diff","diffElement","onePixelElementsCount","groupWidth","percentTotalWidth","pixelTotalWidth","freeSpace","percentTotalWidthInPixel","updateSize","$groupElement","importantMarginClass","checkSize","_checkSize","prevResult","_resizeDeferred","_resetGroupElementHeight","_updateDimensionsCore","groupElement","_lastHeight","_setScrollerSpacingCore","vScrollbarWidth","hScrollbarWidth","_setScrollerSpacing","$testDiv","rootElementHeight","maxHeightHappened","isMaxHeightApplied","scrollHeight","_updateLastSizes","SynchronizeScrollingController","_scrollChangedHandler","GridView","_resizingController","_getWidgetAriaLabel","_groupElement","_renderViews","_getTableRoleName","isFirstRender","_rootElement","synchronizeScrolling","gridView","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","sign","Infinity","nBits","_filter_builder","_getEmptyCell","_defaultSetter","_cloneItem","_prepareItems","resultItems","cols","r","_hover","DX_MENU_VERTICAL_CLASS","DX_MENU_HORIZONTAL_CLASS","DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS","DX_STATE_ACTIVE_CLASS","DX_ADAPTIVE_MODE_CLASS","DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS","DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS","SHOW_SUBMENU_OPERATION","NEXTITEM_OPERATION","PREVITEM_OPERATION","DEFAULT_DELAY","Menu","showFirstSubmenuMode","hideSubmenuOnMouseLeave","onSubmenuShowing","onSubmenuShown","onSubmenuHiding","onSubmenuHidden","adaptivityEnabled","rootMenuElements","submenuElements","_submenuItemElements","currentSubmenu","_submenus","argument","navigationAction","isMenuHorizontal","_getItemsNavigationOperation","_getKeyboardNavigationAction","navOperation","_resizeEventTimer","_menuItemsWidth","_updateItemsWidthCache","_isAdaptivityEnabled","$menuItems","_getSummaryItemsWidth","containerWidth","_toggleAdaptiveMode","_visibleSubmenu","_initAdaptivity","_renderHamburgerButton","_hamburger","_toggleTreeView","_toggleHamburgerActiveState","$menuItemsContainer","$adaptiveElements","_hideVisibleSubmenu","_treeView","_removeAdaptivity","_$adaptiveContainer","_treeviewItemClickHandler","_getAdaptiveOverlayOptions","rtl","_getTreeViewOptions","menuOptions","optionsToTransfer","actionsToTransfer","$hamburger","_getDelay","delayType","_createSubmenu","_renderBorderElement","_getKeyboardListeners","$submenuContainer","_getSubmenuOptions","_parentKey","_clearTimeouts","getSubmenuPosition","_attachSubmenuHandlers","$submenuTarget","showSubmenuMode","_nestedItemOnSelectionChangedHandler","_nestedItemOnItemClickHandler","_nestedItemOnItemRenderedHandler","_moveMainMenuFocus","_getShowFirstSubmenuMode","_isDesktopDevice","$currentItem","$newItem","addedItems","_clearSelectionInSubmenus","_clearRootSelection","targetSubmenu","cleanAllSubmenus","isOtherItem","$selectedItem","_selectedItemClass","selectedItemData","_clearSelectedItems","$prevSelectedItem","prevSelectedItemData","$submenuOverlayContent","submenus","submenuMouseLeaveName","_submenuOnShowingHandler","_submenuOnShownHandler","_submenuOnHidingHandler","_submenuOnHiddenHandler","_submenuMouseLeaveHandler","$border","relatedTarget","_getSubmenuByRootElement","_hideSubmenuAfterTimeout","isRootItemHovered","isSubmenuItemHovered","hoveredElementFromSubMenu","isHorizontalMenu","$closestItem","mouseMoveEventName","_getItemElementByEventArgs","isSelectionActive","_isItemDisabled","_getSubmenuByElement","_itemMouseMoveHandler","_showSubmenuTimer","eventArg","_hideSubmenuTimer","_hoveredRootItem","pointers","_changeSubmenusOption","SEARCH_PANEL_CLASS","SEARCH_TEXT_CLASS","HEADER_PANEL_CLASS","FILTERING_TIMEOUT","allowFiltering","parseValue","searchPanel","placeholder","highlightSearchText","highlightCaseSensitive","searchVisibleColumnsOnly","calculateSearchFilter","onQueryDone","valueGetter","searchFilter","searchByText","_applyFilter","getSearchPanelOptions","_prepareSearchItem","searchPanelOptions","$search","updateValueTimeout","getSearchTextEditor","$searchPanel","dxTextBox","editor","_searchParams","_getFormattedSearchText","searchText","_getStringNormalizer","isCaseSensitive","_findHighlightingTextNodes","_$items","stringNormalizer","normalizedSearchText","$contents","_highlightSearchTextCore","$textNode","$searchTextSpan","firstContentElement","after","createTextNode","_highlightSearchText","isEquals","textNodes","textNode","_highlightTimer","FILE_MANAGER_PROGRESS_PANEL_CLASS","FILE_MANAGER_PROGRESS_PANEL_CONTAINER_CLASS","FILE_MANAGER_PROGRESS_PANEL_TITLE_CLASS","FILE_MANAGER_PROGRESS_PANEL_TITLE_TEXT_CLASS","FILE_MANAGER_PROGRESS_PANEL_CLOSE_BUTTON_CLASS","FILE_MANAGER_PROGRESS_PANEL_INFOS_CONTAINER_CLASS","FILE_MANAGER_PROGRESS_PANEL_SEPARATOR_CLASS","FILE_MANAGER_PROGRESS_PANEL_INFO_CLASS","FILE_MANAGER_PROGRESS_PANEL_COMMON_CLASS","FILE_MANAGER_PROGRESS_PANEL_INFO_WITH_DETAILS_CLASS","FILE_MANAGER_PROGRESS_PANEL_DETAILS_CLASS","FILE_MANAGER_PROGRESS_BOX_CLASS","FILE_MANAGER_PROGRESS_BOX_ERROR_CLASS","FILE_MANAGER_PROGRESS_BOX_WITHOUT_CLOSE_BUTTON_CLASS","FILE_MANAGER_PROGRESS_BOX_IMAGE_CLASS","FILE_MANAGER_PROGRESS_BOX_WRAPPER_CLASS","FILE_MANAGER_PROGRESS_BOX_COMMON_CLASS","FILE_MANAGER_PROGRESS_BOX_PROGRESS_BAR_CLASS","FILE_MANAGER_PROGRESS_BOX_CLOSE_BUTTON_CLASS","DX_CARD_CLASS","FileManagerProgressPanel","_operationCount","$scrollView","$title","_raisePanelClosed","_$infosContainer","_renderEmptyListText","onOperationClosed","onOperationCanceled","onOperationItemCanceled","onPanelClosed","addOperation","commonText","showCloseButtonAlways","allowProgressAutoUpdate","customCloseHandling","$info","$common","common","_createProgressBox","showCloseButton","onCloseButtonClick","_closeOperation","addOperationDetails","$details","_createDetailsItem","skipProgressBox","$detailsItem","imageUrl","_cancelOperationItem","completeOperationItem","operationInfo","commonProgress","updateOperationItemProgress","_setCloseButtonVisible","itemProgress","detailsItem","completeOperation","completed","$commonText","_removeProgressBar","_setProgressBarText","completeSingleOperationWithError","_info$details","_renderOperationError","addOperationDetailsError","renderError","createErrorDetailsProgressBox","progressBox","$progressBar","_getStatusString","closeButton","_raiseOperationCanceled","_displayClosedOperationItem","_raiseOperationClosed","_raiseOperationItemCanceled","$includes","includes","cellAlignmentHelper","_uiToolbar2","_drop_down_menu","MENU_INVISIBLE_CLASS","DropDownMenuStrategy","menuWidget","popupPosition","isMenuVisible","_toggleMenuVisibility","_config","_object","_date_serialization","_abstract_store","USER_STATE_FIELD_NAMES_15_1","USER_STATE_FIELD_NAMES","IGNORE_COLUMN_OPTION_NAMES","bestFitWidth","bufferedFilterValue","COMMAND_EXPAND_CLASS","GROUP_COMMAND_COLUMN_NAME","regExp","globalColumnId","trueText","falseText","allowColumnReordering","columnResizingMode","columnMinWidth","regenerateColumnsByVisibleItems","customizeColumns","dateSerializationFormat","DEFAULT_COLUMN_OPTIONS","showInColumnChooser","DATATYPE_OPERATIONS","datetime","COLUMN_INDEX_OPTIONS","GROUP_LOCATION","COLUMN_CHOOSER_LOCATION","setFilterOperationsAsDefaultValues","filterOperations","defaultFilterOperations","createColumn","userStateColumnOptions","bandColumn","commonColumnOptions","setName","deepExtendArraySafe","calculatedColumnOptions","_createCalculatedColumnOptions","createColumnsFromOptions","columnsOptions","_columnsUserState","checkUserStateColumn","hasColumns","getParentBandColumns","columnParentByIndex","_getChildrenByBandColumn","columnChildrenByIndex","recursive","getColumnByIndexes","columnIndexes","bandColumnsCache","getBandColumnsCache","callbackFilter","isPlain","_columns","getColumnFullPath","calculateColspan","processBandColumns","getValueDataType","getSerializationFormat","getDateSerializationFormat","updateSerializers","deserializeDate","serializeValue","serializeDate","serializationFormat","parsedValue","isNaN","getAlignmentByDataType","isRTL","customizeTextForBooleanDataType","valueText","getCustomizeTextByDataType","createColumnsFromDataSource","firstItems","_getFirstItems","processedFields","updateColumnIndexes","_commandColumns","updateColumnGroupIndexes","normalizeIndexes","updateColumnSortIndexes","isSortOrderValid","updateColumnVisibleIndexes","bandColumns","parentBandColumns","getColumnIndexByVisibleIndex","getChooserColumns","moveColumnToGroup","userStateColumn","applyUserState","userStateColumnIndex","columnsUserState","ignoreColumnOptionNames","_ignoreColumnOptionNames","columnCountById","resultColumns","allColumnsHaveState","userStateColumnIndexes","applyFieldsState","defaultSelectedFilterOperation","findUserStateColumn","_hasUserState","initialIndex","hasAddedBands","columnUserState","added","assignColumns","updateIndexes","resetBandColumnsCache","updateColumnDataTypes","updateColumnChanges","columnChanges","_columnChanges","fireColumnsChanged","onColumnsChanging","reinitOptionNames","needReinit","reinit","updateSortOrderWhenGrouping","prevGroupIndex","columnWasGrouped","lastSortOrder","sortMode","sortedByAnotherColumn","fireOptionChanged","prevValue","fullOptionName","fullOptionPath","_skipProcessingColumnsChange","_notifyOptionChanged","columnOptionCore","notFireEvent","initialColumn","optionSetter","_checkColumns","getColumnByPath","addExpandColumn","_getExpandColumnOptions","dotCount","getDataColumns","bandColumnID","_getRowCount","invisibleParents","isCustomCommandColumn","commandColumn","getFixedPosition","processExpandColumns","customColumnIndex","expandColumnsByType","digitsCount","mergeColumns","commandColumns","needToExtend","commandColumnIndex","isColumnFixing","defaultCommandColumns","getCommandColumnIndex","columnType","allowFixing","isColumnFixed","convertOwnerBandToColumnReference","_bandColumnsCache","findColumn","identifierOptionName","getFirstItemsCore","childItems","_isColumnsFromOptions","_dataSourceApplied","applyDataSource","needUpdateRequireResize","_updateRequireResize","_args$fullName","_args$fullName2","_args$fullName3","_args$fullName4","_args$fullName5","isEditingPopup","isEditingForm","isEditRowKey","isEditColumnName","isChanges","columnOptionValue","columnOptionName","forceApplying","isDataSourceLoaded","_dataSourceColumnsCount","columnsFromDataSource","updateColumns","isAllDataTypesDefined","_visibleColumns","_fixedColumns","_rowCount","getUserState","isDataSourceApplied","groupingOptions","autoExpandGroup","allowColumnDragging","contextMenuEnabled","checkSerializers","isBandColumnsUsed","_getVisibleColumnsCore","_getFixedColumnsCore","getFilteringColumns","notFixedColumnCount","lastFixedPosition","transparentColumn","transparentColspan","newColumn","getExpandColumns","firstGroupColumn","isFixedFirstGroupColumn","_isColumnVisible","isParentColumnVisible","isFixedToEnd","rowspanGroupColumns","rowspanExpandColumns","positiveIndexedColumns","negativeIndexedColumns","notGroupedColumnsCount","columnDigitsCount","indexedColumns","orderEach","firstPositiveIndexColumn","columnsByFixing","columnsByVisibleIndex","getInvisibleColumns","hiddenColumnsByBand","getAllColumns","fromVisibleIndex","toVisibleIndex","targetGroupIndex","needResetSorting","nextSortOrder","useLocalSelector","sortColumns","sortItem","sortingMethod","compare","calculateGroupValue","updateNewLookupsOnly","valueMap","_updateColumnOptions","calculateCallbackName","calculateCallback","originalCallback","customizeText","defaultFilterOperation","isColumnDataTypesUpdated","lookupDataType","valueDataType","_customizeColumns","hasOwnerBand","updateSortingGrouping","sortParameters","groupParameters","filterParameters","_updateChanges","fromDataSource","isColumnsChanged","updateSortGroupParameterIndexes","indexParameterName","columnsGroupParameters","columnsSortParameters","updateFilter","forceIsoDateParsing","clearSorting","clearGrouping","getVisibleIndexByColumn","addColumn","deleteColumn","childIndexes","handleStateField","setUserState","isFilterPanelHidden","usedNames","hasEditableColumnWithoutName","duplicatedNames","_column$columns","isEditable","captionize","skipDeserialization","userDataType","updateValueMap","calculateValue","dataSourceOptions","defaultOptionName","alwaysGetRowIndex","onlyVisibleDirectChildren","column1","column2","_uiMenu_baseEdit","_item","DX_MENU_NO_ICONS_CLASS","DX_MENU_BASE_CLASS","DX_ITEM_CONTENT_CLASS","DX_MENU_SELECTED_ITEM_CLASS","DX_MENU_SEPARATOR_CLASS","DX_MENU_ITEM_LAST_GROUP_ITEM","DX_ITEM_HAS_TEXT","DX_ITEM_HAS_ICON","DX_ITEM_HAS_SUBMENU","DX_MENU_ITEM_POPOUT_CLASS","DX_MENU_ITEM_POPOUT_CONTAINER_CLASS","DX_MENU_ITEM_CAPTION_CLASS","SINGLE_SELECTION_MODE","MenuBase","_HierarchicalCollecti","focusOnSelectedItem","_itemAttributes","useInkRipple","_renderSelectedItem","itemText","itemContent","$popOutContainer","$popOutImage","_selectByItem","nodeToSelect","selectedKey","_renderInkRipple","_inkRipple","_toggleActiveState","showWave","hideWave","defaultValue","_initEditStrategy","Strategy","_itemWrapperSelector","_showSubmenusTimeout","_getSubmenuDelay","$itemElements","_addExpandedClass","_this$option","hasIcons","firstVisibleIndex","nextGroupFirstIndex","isVisibleNode","isBeginGroup","_refreshItem","_itemIndexKey","hasText","hasIcon","hasSubmenu","_getItemContent","$itemContent","_postprocessRenderItem","selectedIndex","_selectedGetter","_isItemSelectable","_skipHandling","itemClickActionHandler","_isItemSelectionAllowed","selectedNode","_toggleItemSelection","isSelectionByClickEnabled","_isContainerEmpty","_getElementByItem","oldSelection","newSelection","removedItems","ItemClass","HEADER_FILTER_CLASS","HEADER_FILTER_MENU_CLASS","DEFAULT_SEARCH_EXPRESSION","resetChildrenItemSelection","updateSelectAllState","selectAllCheckBox","isSearchEnabled","filterValuesMatch","isExcludeFilter","getPopupContainer","_popupContainer","getListContainer","_listContainer","applyHeaderFilter","isSelectAll","fillSelectedItemKeys","hasChildren","hasChildrenWithSelection","_initializePopupContainer","popupContainer","updatePopup","headerFilterMenu","_cleanPopupContent","_getSearchExpr","useDefaultSearchExpr","dxPopupOptions","_initializeListContainer","widgetOptions","searchEnabled","pageLoadMode","showSelectionControls","_selectedItemsUpdating","oldSelected","filterValueIndex","_isHeaderFilterEmpty","checkCorrectnessOfIteration","iterable","relativeIndex","TRACKBAR_CLASS","TRACKBAR_CONTAINER_CLASS","TRACKBAR_RANGE_CLASS","TRACKBAR_WRAPPER_CLASS","TrackBar","_renderRange","_setRangeStyles","_rangeStylesConfig","_needPreventAnimation","valuemin","valuemax","valuenow","fillHelper","tryCreateFillFromSimpleFormat","foregroundColor","rgb","copySimpleFormat","CHECKBOX_SIZE_CLASS","EditorFactoryMixin","getResultConfig","checkEnterBug","getTextEditorConfig","isEnterBug","sharedData","needDelayedUpdate","isInputOrKeyUpEvent","updateValue","valueChangeTimeout","valueChangeEvent","prepareDateBox","editorName","blur","displayFormat","prepareTextBox","isSearching","prepareNumberBox","prepareBooleanEditor","prepareSelectBox","prepareCheckBox","watchLookupDataSource","selectBox","displayGetter","allowClearing","showClearButton","showAllText","createEditorCore","editorElement","dateBox","dxDateBox","defaultEnterKeyHandler","dxTextArea","showValidationMark","BUTTON_GROUP_CLASS","BUTTON_GROUP_WRAPPER_CLASS","BUTTON_GROUP_ITEM_CLASS","BUTTON_GROUP_FIRST_ITEM_CLASS","BUTTON_GROUP_LAST_ITEM_CLASS","BUTTON_GROUP_ITEM_HAS_WIDTH","SHAPE_STANDARD_CLASS","ButtonCollection","_prepareItemStyles","_getBasicButtonOptions","_templateData","itemTemplateProperty","_renderItemContent","_renderItemContentByNode","_keyboardEventBindingTarget","_refreshContent","_prepareContent","ButtonGroup","_renderButtons","$buttons","scrollingEnabled","_buttonsCollection","_selectors","_validation_engine","INVALIDATE_CLASS","REVERT_TOOLTIP_CLASS","INVALID_MESSAGE_CLASS","WIDGET_INVALID_MESSAGE_CLASS","INVALID_MESSAGE_ALWAYS_CLASS","REVERT_BUTTON_CLASS","VALIDATOR_CLASS","PENDING_INDICATOR_CLASS","VALIDATION_PENDING_CLASS","PADDING_BETWEEN_TOOLTIPS","COMMAND_TRANSPARENT","VALIDATION_STATUS","valid","invalid","pending","EDIT_DATA_INSERT_TYPE","EDIT_DATA_REMOVE_TYPE","VALIDATION_CANCELLED","validationResultIsValid","cellValueShouldBeValidated","ValidatingController","_validationState","_rowIsValidated","validationData","_getValidationData","validated","_getBrokenRules","validationResults","brokenRules","brokenRule","_rowValidating","getChangeByKey","getHiddenValidatorsErrorText","brokenRulesMessages","isGroupExpandColumn","isVisibleColumn","validate","isFull","completeList","_isValidationInProgress","validationResult","validateGroup","_currentCellValidator","_findGroup","_validationResult","getGroupConfig","validators","resetRowValidationResults","isRowDataModified","updateValidationState","setDisableApplyValidationResults","groupConfig","setValidator","renderCellPendingIndicator","$indicatorContainer","disposeCellPendingIndicator","validationStatusChanged","updateCellValidationResult","validatorInitialized","validatorDisposing","getCellValidationResult","cancelCellValidationResult","applyValidationResult","requestIsDisabled","disabledPendingId","_disableApplyValidationResults","getEditorInstance","createValidator","needCreateValidator","isCellOrBatchEditingAllowed","getValue","useDefaultValidator","adapter","applyValidationResults","validationRequestsCallbacks","flag","getDisableApplyValidationResults","isCurrentValidatorProcessing","validateCell","cellParams","stateRestored","_validationData$valid","removeCellValidationResult","isInvalidCell","getCellValidator","setCellValidationStatus","validationStatus","validationCancelChanges","validating","validatingController","_updateRowAndPageIndices","startInsertIndex","isNotCanceled","getIndexByChange","isInsert","addInValidItem","isInserted","_createInvisibleColumnValidators","invisibleColumns","invisibleColumnValidators","isCellVisible","disposeValidators","isFullValid","_showErrorRow","validationState","resetRowAndPageIndices","currentValidator","isValidated","needValidation","isCellInvalid","getWidthOfVisibleCells","w1","w2","getBoundaryNonFixedColumnsInfo","firstNonFixedColumnIndex","lastNonFixedColumnIndex","endColumnIndex","_showRevertButton","$tooltipElement","$overlayContainer","tooltipOptions","$buttonElement","_positionedHandler","_hideFixedGroupCell","$nextFixedRowElement","$groupCellElement","nextRowOptions","visibility","__skipPositionProcessing","isRevertButton","needRepaint","normalizedPosition","_normalizeValidationMessagePositionAndMaxWidth","_showValidationMessage","messages","revertTooltip","editorPopup","myPosition","atPosition","errorMessageText","$overlayElement","_shiftValidationMessageIfNeed","visibleTableWidth","$overlayContentElement","validationMessageWidth","needMaxWidth","boundaryNonFixedColumnsInfo","$revertContent","contentOffset","revertContentOffset","_getTooltipsSelector","invalidMessageClass","revertTooltipClass","skipValidator","updateCellState","_change$data","showValidationMessage","errorMessages","$tooltips","getWidgetInstance","oldValidationStatus","newValidationStatus","rowIsModified","cellIsMarkedAsInvalid","$freeSpaceRowElements","$tooltipContent","isEditorDisposed","foreachColumnInfo","offsets","lastProcessedIndexes","processedColumnCount","newInfo","columnInfo","cellColspan","getBuiltIn","createIteratorConstructor","isCallable","anObject","getIterator","getIteratorMethod","validateArgumentsLength","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","n$Fetch","N$Request","Headers","RequestPrototype","HeadersPrototype","decodeURIComponent","plus","sequences","percentSequence","percentDecode","sequence","deserialize","replacements","replacer","URLSearchParamsIterator","kind","entry","URLSearchParamsState","parseObject","parseQuery","entryIterator","entryNext","iteratorMethod","attribute","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","getAll","found","boundFunction","headersHas","headersSet","wrapRequestOptions","body","fetch","RequestConstructor","Request","$ArrayCopyWithin","u$ArrayCopyWithin","_empty_template","_uiDrawerRenderingStrategy","_uiDrawerRenderingStrategy2","_uiDrawerRenderingStrategy3","_visibility_change","DRAWER_CLASS","DRAWER_WRAPPER_CLASS","DRAWER_PANEL_CONTENT_CLASS","DRAWER_VIEW_CONTENT_CLASS","DRAWER_SHADER_CLASS","OPENED_STATE_CLASS","ANONYMOUS_TEMPLATE_NAME","PANEL_TEMPLATE_NAME","Drawer","minSize","maxSize","openedStateMode","animationDuration","_setDeprecatedOptions","_deprecatedOptions","since","_initStrategy","_whenAnimationCompleted","_whenPanelContentRendered","_whenPanelContentRefreshed","_$viewContentWrapper","_strategy","_getAnonymousTemplateName","defaultTemplates","EmptyTemplate","_viewContentWrapperClickHandler","stopAnimations","_toggleOpenedStateClass","_renderPanelContentWrapper","_refreshOpenedStateModeClass","_refreshRevealModeClass","_renderShader","renderPanelContent","_renderViewContent","_refreshPositionClass","_refreshWrapperChildrenOrder","_initMinMaxSize","refreshPanelElementSize","_renderPosition","_removePanelManualPosition","_$panelContentWrapper","prevOpenedStateMode","prevPosition","prevRevealMode","contentTemplateOption","$viewTemplate","noModel","transclude","anonymousTemplateName","_$shader","_toggleShaderVisibility","_initSize","realPanelSize","getRealPanelHeight","_maxSize","_minSize","getOverlayTarget","getOverlay","getMaxSize","_getPanelTemplateElement","$panelContent","getPanelContent","$result","$children","jumpToEnd","overlay","setZIndex","zIndex","resizeContent","triggerResizeEvent","_isInvertedPosition","isDrawerOpened","disableAnimation","renderPosition","_animationCompleteHandler","_refreshPanel","_removePanelContentWrapper","_removeOverlay","_cleanFocusState","targetOpened","getDataState","filterEnabled","processLoadState","exportController","updateState","selectionChanged","selectionFilter","_initialPageSize","_initialFilterValue","selectionOnlyChanged","exportSelectionOnly","selectionOnly","DEFAULT_FILTER_VALUE","getFilterValue","filterSyncController","hasFilterState","getFilterValueFromColumns","stateStoring","savingTimeout","stateLoaded","isStateLoading","applyState","newState","oldStateHash","newStateHash","isVirtualScrollingMode","stateStoringController","_refreshDataSource","_restoreStateTimeoutID","isDeferredSelection","aConstructor","isArrayIteratorMethod","argumentsLength","mapping","CustomFileSystemProvider","_getItemsFunction","_ensureFunction","_renameItemFunction","_createDirectoryFunction","_deleteItemFunction","_moveItemFunction","_copyItemFunction","_uploadFileChunkFunction","_abortFileUploadFunction","_downloadItemsFunction","_getItemsContentFunction","functionObject","defaultFunction","ColumnHeadersView","DataConverter","_dataStructure","_itemsCount","_visibleItemsCount","_indexByKey","_convertItemsToNodes","_getParentId","_convertItemToNode","_checkForDuplicateId","_itemHasChildren","_dataAccessors","_dataType","_getUniqueKey","keyGetter","isCorrectKey","getItemsCount","_rootValue","_makeObjectFromPrimitive","setChildrenKeys","getParentNode","_convertToPublicNode","convertToPublicNodes","publicNodes","_getByKey","setDataAccessors","getByKey","currentElementKey","getVisibleItemsCount","updateIndexByKey","updateChildrenKeys","removeChildrenKeys","createPlainStructure","SPLITTER_CLASS","SPLITTER_WRAPPER_CLASS","SPLITTER_INACTIVE_CLASS","SPLITTER_BORDER_CLASS","SPLITTER_INITIAL_STATE_CLASS","STATE_DISABLED_CLASS","SPLITTER_MODULE_NAMESPACE","SPLITTER_POINTER_DOWN_EVENT_NAME","SPLITTER_POINTER_MOVE_EVENT_NAME","SPLITTER_POINTER_UP_EVENT_NAME","SplitterControl","_$leftElement","_$rightElement","_$splitterBorder","_$splitter","_onMouseDownHandler","_onMouseMoveHandler","_onMouseUpHandler","_containerWidth","_setSplitterPositionLeft","needUpdatePanels","usePercentagePanelsWidth","_offsetX","pageX","_getSplitterBorderWidth","_toggleActive","_isSplitterActive","splitterPositionLeft","_getNewSplitterPositionLeft","_leftPanelPercentageWidth","newSplitterPositionLeft","_getContainerLeftOffset","_getSplitterOffset","_getSplitterWidth","getComputedStyle","borderLeft","borderLeftWidth","_getLeftPanelWidth","_isSplitterCalculationDisabled","_ref$splitterPosition","_ref$needUpdatePanels","_ref$usePercentagePan","rightPanelWidth","_convertToPercentage","rightPanelPercentageWidth","_convertToPixels","pixelWidth","percentageWidth","COLUMN_INDICATORS_CLASS","GROUP_PANEL_ITEM_CLASS","_that$component","isGroupPanelItem","_createIndicatorContainer","$span","indicatorAlignment","ignoreIndicatorAlignment","EXPANDED","SELECTED","DISABLED","DataAdapter","_defaultOptions","dataConverter","_selectedNodesKeys","_expandedNodesKeys","_createInternalDataStructure","onNodeChanged","_initialDataStructure","_updateExpansion","_setChildrenSelection","_setParentSelection","_updateNodesKeysArray","_updateOneBranch","_setParentExpansion","_getDataBySelectionMode","_isNodeVisible","isSelected","_toggleChildrenSelection","_iterateParents","newParentState","_calculateSelectedState","_setFieldState","_iterateChildren","processedKeys","nodeKey","child","invisibleItemsCount","isChildInvisible","childState","_markChildren","_removeNode","_addNode","_updateFields","selectRecursive","isSingleModeUnselect","_isSingleModeUnselect","selectionState","lastSelectedKey","_filterDataStructure","_createCriteria","getOperationBySearchMode","matches","lookForParents","queryByOptions","_uiToolbarStrategy","_uiToolbarStrategy2","_child_default_template","STRATEGIES","actionSheet","dropDownMenu","TOOLBAR_AUTO_HIDE_ITEM_CLASS","TOOLBAR_AUTO_HIDE_TEXT_CLASS","TOOLBAR_HIDDEN_ITEM","Toolbar","submenuType","menuContainer","_menuStrategy","actionSheetItem","ChildDefaultTemplate","_renderMenu","_postProcessRenderItems","_hideOverflowItems","_getItemsWidth","_$beforeSection","_$centerSection","elementWidth","overflowItems","itemsWidth","_isMenuItem","$hiddenItems","_restoreItems","$itemMarkup","merge","_renderMenuStrategy","strategyName","_requireDropDownStrategy","_arrangeItems","_isToolbarItem","_changeMenuOption","_custom_store","FILE_MANAGER_FILES_VIEW_CLASS","FILE_MANAGER_ITEM_LIST_ITEM_OPEN_EVENT_NAMESPACE","FileManagerItemListBase","_focusedItemKey","dblClickEventName","_getItemsInternal","parentDirectoryItem","_findParentDirectoryItem","itemsGetter","_raiseOnError","raiseEvent","_hasValidKeys","_filterOutItemByPredicate","_filterOutParentDirectory","_filterOutParentDirectoryKey","_getItemThumbnail","itemThumbnailGetter","_this$_getItemThumbna","createNewArray","FILE_MANAGER_FILE_ACTIONS_BUTTON","FILE_MANAGER_FILE_ACTIONS_BUTTON_ACTIVATED","ACTIVE_STATE_CLASS","FileManagerFileActionsButton","_createClickAction","_raiseClick","_clickAction","_action","_view_port","_toast","$notify","notify","userHiddenAction","execute","getLanguageId","LANGUAGE_CODES","ar","bg","ca","cs","da","de","el","en","es","fi","fr","he","hu","ja","ko","nl","no","pl","pt","rm","ro","ru","hr","sk","sq","sv","th","tr","ur","uk","be","sl","et","lv","lt","tg","fa","vi","hy","az","eu","hsb","mk","tn","xh","zu","af","ka","fo","hi","mt","se","ga","ms","kk","ky","sw","tk","uz","tt","bn","pa","gu","ta","te","kn","ml","as","mr","sa","mn","bo","cy","km","lo","gl","kok","syr","si","iu","am","tzm","ne","fy","ps","fil","dv","ha","yo","quz","nso","ba","lb","kl","ig","ii","arn","moh","br","ug","mi","oc","co","gsw","sah","qut","rw","wo","prs","gd","smn","sms","zh","nn","bs","sma","nb","sr","dsb","smj","DrawerStrategy","whenPanelContentRendered","whenPositionAnimationCompleted","whenShaderAnimationCompleted","renderShaderVisibility","isShaderVisible","fadeConfig","setPanelSize","calcFromRealPanelSize","$every","TOOLBAR_BUTTON_CLASS","TOOLBAR_ARIA_LABEL","HeaderPanel","_getButtonContainer","specificClass","secondClass","_getToolbarOptions","itemRenderedCallback","_toolbarOptions","$headerPanel","toolbarInstance","itemOptionPrefix","updateToolbarDimensions","getHeaderPanel","CollaborativeAreaModule","collaborativeAreasInfo","nameUsersByCollaborativeAreas","collaborativeAreaTypes","usersAndRolesArea","collaborativeAreaMember","myId","areaEditMode","users","toJson","collaborativeAreaDB","commit","userId","roleId","chat","toast","usersAndRoles","editar","namespaced","dynamic","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","_short","GROUP_FOOTER_CLASS","FREESPACE_ROW_CLASS","VIRTUAL_ROW_CLASS","COMMAND_SELECT_CLASS","COMMAND_CELL_SELECTOR","DATEBOX_WIDGET_NAME","FAST_EDITING_DELETE_KEY","INTERACTIVE_ELEMENTS_SELECTOR","FOCUS_TYPE_ROW","FOCUS_TYPE_CELL","COLUMN_HEADERS_VIEW","isNotFocusedRow","isCellElement","isElementDefined","isMobile","isCellInHeaderRow","isFixedColumnIndexOffsetRequired","shouldPreventScroll","KeyboardNavigationController","_selectionController","_headerPanel","_updateFocusTimeout","_fastEditingStarted","_canceledCellPosition","elementFocused","setupFocusedView","_isNeedScroll","_focusedView","_initViewHandlers","_initDocumentHandlers","rowsViewFocusHandler","isRelatedTargetInRowsView","isCommandButton","_isEventInCurrentGrid","$focusedCell","_getFocusedCell","$rowsView","isFullUpdate","isFocusedViewCorrect","needUpdateFocus","isFocusedElementCorrect","_initPointerEventHandler","_initKeyDownHandler","_setRowsViewAttributes","_isNeedFocus","_isHiddenFocus","isCurrentRowsViewClick","isEditorOverlay","isColumnResizing","targetInsideFocusedView","_resetFocusedCell","_resetFocusedView","_getRowsViewElement","isGridEmpty","_applyTabIndexToElement","pointerEventName","_pointerEventAction","_pointerEventHandler","keyboard","_keyDownListener","_keyDownHandler","focusType","setCellFocusType","needStopPropagation","_processOnKeyDown","_updateFocusedCellPositionByTarget","_leftRightKeysHandler","ctrl","_upDownKeysHandler","_pageUpDownKeyHandler","_spaceKeyHandler","_ctrlAKeyHandler","_beginFastEditing","_tabKeyHandler","_enterKeyHandler","_ctrlFKeyHandler","_f2KeyHandler","_isFastEditingAllowed","_isFastEditingStarted","alt","altKey","_closeEditCell","getVisibleRowIndex","directionCode","_getDirectionCodeByKey","isEditingNavigationMode","allowNavigate","_isVirtualColumnRender","_processVirtualHorizontalPosition","_getNextCell","_arrowKeysHandlerFocusCell","isUpArrow","_navigateNextCell","_isVirtualRowRender","rowHeight","_scrollBy","pagingEnabled","isPageUp","pageStep","isFocusedRowElement","isFocusedSelectionCell","startSelectionWithCheckboxes","isCellPositionDefined","isOriginalHandlerRequired","_isLastValidCell","_isFirstValidCell","eventTarget","focusedViewElement","_handleTabKeyOnMasterDetailCell","_editingCellTabHandler","_targetCellTabHandler","_getMaxHorizontalOffset","_isColumnRendered","allVisibleColumns","renderedVisibleColumns","_isFixedColumn","_isColumnVirtual","localColumnIndex","getColumnIndex","horizontalScrollPosition","needToScroll","_getVisibleColumnCount","leftEdgePosition","_getHorizontalScrollPositionOffset","scrollBy","positionOffset","$currentCell","_getCell","currentCellWidth","rtlMultiplier","isEditingAllowed","elementType","nextCellInfo","_getNextCellByTabKey","_getRowIndex","_isDataRow","_focusCell","isHighlighted","_editFocusedCell","_focusInteractiveElement","$lastInteractiveElement","_getInteractiveElement","_checkNewLineTransition","_fireFocusedCellChanging","$newCellElement","_getCellPosition","_fireFocusedRowChanging","rowIndexChanged","_processEnterKeyForDataCell","_getEnterKeyDirection","allowEditingOnEnterKey","_allowEditingOnEnterKey","_handleEnterKeyEditingCell","_startEditing","enterKeyDirection","isShift","_focusEditFormCell","searchTextEditor","keyCode","isCellValid","_isCellValid","$nextCell","isVerticalDirection","_fireFocusChangingEvents","isDeleting","fastEditingKey","isInteractiveElement","isExpandCommandCell","_isInsideEditForm","_focusView","_isMasterDetailCell","_clickTargetCellHandler","_isCellEditMode","resetFocusedRow","_allowRowUpdating","isInteractiveTarget","isEditor","activeElementSelector","_focusElement","getFocusedView","rowsViewElement","$focusedView","_getFocusedViewByElement","$view","disableFocus","$focusElement","focusedView","one","isRenderView","_hasSkipRow","_checkCellOverlapped","$focusedElementInsideCell","isFocusedElementDefined","cellOffset","hasScrollable","isOverlapped","_this$_focusedCellPos","_getFocusedColumnIndexOffset","_getFixedColumnIndexOffset","_applyColumnIndexBoundaries","_this$_focusedView","renderFocusState","restoreFocusableElement","rowIndexOffset","_getNewPositionByCode","visibleColumnsCount","_hasValidCellAfterPosition","_isLastRow","_hasValidCellBeforePosition","_isCellByPositionValid","isFirstValidCell","hasValidCells","checkingPosition","visibleColumnCount","isLastRow","isClick","isShowWhenGrouped","isDataCell","isValidGroupSpaceColumn","rowItems","isRowEditingInCurrentRow","_isLegacyNavigation","focusedCellPosition","includeCommandCells","newFocusedCellPosition","isLastCellOnDirection","_isCellInRow","visibleColumnIndex","_isAllowEditing","_startEditCell","editResult","_editingCellHandler","editorValue","$input","keyDownEvent","createEvent","keyPressEvent","inputEvent","$widgetContainer","fireRowEvent","newColumnIndex","prevCellIndex","localRowIndex","$newFocusedRow","prevFocusedRowIndex","$masterDetailCell","$masterDetailGrid","_processNextCellInMasterDetail","_processCanceledEditCellPosition","isCanceled","enterKeyAction","editOnKeyPress","needTriggerPointerEventHandler","_triggerPointerDownEventHandler","cellElements","_updateFocusedCellTabIndex","cellElementsLength","updateCellTabIndex","isMasterDetailCell","isValidCell","_renderFocusByChange","editorInstance","_getEditorInstance","_handleEditingNavigationMode","originalKeyHandler","isDropDownOpened","isDateBoxWithMask","keyboardNavigationController","_keyboardNavigationController","_correctRowIndices","getRowIndexCorrection","focusedRowIndexCorrection","adaptiveColumns","_showHiddenCellsInView","_hideVisibleCellInView","FOOTER_VIEW","COLUMN_VIEWS","ADAPTIVE_NAMESPACE","ADAPTIVE_ROW_TYPE","FORM_ITEM_CONTENT_CLASS","FORM_ITEM_MODIFIED","HIDDEN_COLUMN_CLASS","ADAPTIVE_COLUMN_BUTTON_CLASS","ADAPTIVE_COLUMN_NAME_CLASS","COMMAND_ADAPTIVE_HIDDEN_CLASS","ADAPTIVE_DETAIL_ROW_CLASS","ADAPTIVE_ITEM_TEXT_CLASS","LAST_DATA_CELL_CLASS","ADAPTIVE_COLUMN_NAME","EXPAND_ARIA_NAME","COLLAPSE_ARIA_NAME","getDataCellElements","adaptiveCellTemplate","$adaptiveColumnButton","adaptiveColumnsController","toggleExpandAdaptiveDetailRow","AdaptiveColumnsController","_isItemModified","_renderFormViewTemplate","focusAction","renderFormTemplate","isItemEdited","_isItemEdited","_isVisibleColumnsValid","getCommandColumnsCount","_calculatePercentWidths","percentWidths","_getItemPercentWidth","_isPercentWidth","_isColumnHidden","_hiddenColumns","hiddenColumn","columnsCanFit","fixedColumnsWidth","columnsWithoutFixedWidthCount","_calculatePercentWidth","_calculateColumnWidth","contentColumns","colWidth","widthOption","columnFitted","partialWidth","resultWidth","_getNotTruncatedColumnWidth","_getCommandColumnsWidth","adaptiveExpandedKey","_getFormItemsByHiddenColumns","hiddenColumns","_getAdaptiveColumnVisibleIndex","_hideAdaptiveColumn","_hideVisibleColumn","cssClassNameToRemove","_showHiddenColumns","$hiddenCommandCells","$hiddenCells","_hideVisibleColumnInView","rowsCount","cancelClassAdding","currentVisibleIndex","_findCellElementInRow","$rowCells","cellIsInsideGroup","groupCellLength","endGroupIndex","cssClassNameToAdd","hideRedundantColumns","hiddenQueue","hasHiddenColumns","needHideColumn","rootElementWidth","getVisibleContentColumns","visibleContentColumns","contentColumnsCount","columnBestFitWidth","getItemContentByColumnIndex","_$itemContents","alwaysExpanded","createFormByHiddenColumns","userFormOptions","defaultFormOptions","formOptions","updateForm","hasAdaptiveDetailRowExpanded","_contentReadyAction","updateHidingQueue","columnsHasHidingPriority","hideableColumns","_hidingColumnsQueue","getHiddenColumns","getHidingColumnsQueue","adaptiveHidden","isAdaptiveVisible","isAdaptiveDetailRowExpanded","expandAdaptiveDetailRow","collapseAdaptiveDetailRow","updateCommandAdaptiveAriaLabel","setCommandAdaptiveAriaLabel","labelName","$adaptiveCommand","onAdaptiveDetailRowPreparing","_adaptiveColumnsController","hidingColumnsQueueLength","hiddenColumnsLength","isClickableElement","isClickable","_updateColumnWidth","hasHiddenColumnsOnly","hasAdaptiveHiddenWidth","$itemContents","_adaptiveController","oldExpandRowIndex","_isForceRowAdaptiveExpand","_collapseAdaptiveDetailRow","_cancelEditAdaptiveDetailRow","expandedKey","_adaptiveExpandedKey","_updateScrollableForIE","_updateScrollableTimeoutID","adaptiveController","oldHiddenColumns","hidingColumnsQueue","expandRowIndex","lastRowIndex","oldExpandLoadedRowIndex","newExpandLoadedRowIndex","oldKey","rowIndexDelta","getRowIndexDelta","allowInvisibleRowIndices","isCellOrBatchMode","focusHandler","$dataCells","isCellElementsEquals","speciesConstructor","originalArray","_contextmenu","_uiFile_managerItems_listThumbnails","FILE_MANAGER_THUMBNAILS_ITEM_LIST_CLASS","FILE_MANAGER_THUMBNAILS_ITEM_THUMBNAIL_CLASS","FILE_MANAGER_THUMBNAILS_EVENT_NAMESPACE","FileManagerThumbnailsItemList","contextMenuEvent","_onContextMenu","_createItemList","$itemListContainer","_itemList","loopItemFocus","_tryOpen","itemThumbnailTemplate","getTooltipText","_onItemListSelectionChanged","_onItemListFocusedItemChanged","_this$_refreshDeferre","targetItemElement","targetItem","tooltipText","_disableDragging","getFilterOperations","getCaptionByOperation","isEmptyGroup","isValidCondition","removeFieldConditionsFromFilter","syncFilters","getMatchedConditions","filterHasField","_format_helper","_between","DEFAULT_DATA_TYPE","EMPTY_MENU_ICON","AND_GROUP_OPERATION","EQUAL_OPERATION","NOT_EQUAL_OPERATION","DEFAULT_FORMAT","LOOKUP_OPERATIONS","AVAILABLE_FIELD_PROPERTIES","FILTER_BUILDER_ITEM_TEXT_PART_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS","getFormattedValueText","fieldFormat","isNegationGroup","setGroupCriteria","convertGroupToNewStructure","isNegationValue","convertGroupToNegationGroup","convertNegationGroupToGroup","getNormalizedGroupValue","changeCriteriaValue","availableGroups","groupValue","getCriteriaOperation","getDefaultFilterOperations","containItems","entity","filteredOperations","isLookupField","dataTypes","isOperationForbidden","notForLookup","hasConditions","extendedFields","convertToInnerGroup","groupOperation","innerGroup","convertToInnerCondition","conditionHasCustomOperation","normalizedField","getConditionFilterExpression","filterExpression","_filterExpression","itemsForRemove","normalizedGroupValue","lookupDataSource","loadSingle","getPrimitiveValueText","getArrayValueText","checkDefaultValue","_len","_key","itemExists","plainItems","pushItemAndCheckParent","originalItems","hasParent","getParentIdFromItemDataField","generateCaptionByDataField","betweenCaption","betweenIndex","getConfig","isMatchedCondition","addedFilterDataField","hasMatchedCondition","syncConditionIntoGroup","addedFilter","canPush","valueSeparator","FILTER_PANEL_CLASS","FILTER_PANEL_TEXT_CLASS","FILTER_PANEL_CHECKBOX_CLASS","FILTER_PANEL_CLEAR_FILTER_CLASS","FILTER_PANEL_LEFT_CONTAINER","FILTER_PANEL_TARGET","FilterPanelView","$leftContainer","_filterValueBuffer","_getCheckElement","_getFilterElement","_getTextElement","_getRemoveButtonElement","_showFilterBuilder","_addTabIndexToElement","filterText","$textElement","getFilterText","getCustomFilterOperations","customText","clearFilterValue","tabindex","_getConditionText","fieldText","operationText","_getValueMaskedText","_getValueText","hasCustomOperation","getConditionText","getGroupText","isInnerGroup","textParts","groupText","createFilter","clearFilter","filterEnabledHint","filterPanelView","_support","ROW_SELECTION_CLASS","SELECT_CHECKBOX_CLASS","CHECKBOXES_HIDDEN_CLASS","SELECTION_DISABLED_CLASS","SHOW_CHECKBOXES_MODE","SELECTION_MODE","processLongTap","stopSelectionWithCheckboxes","SelectionController","isSeveralRowsSelected","isComplexKey","selectionCellTemplate","renderSelectCheckBoxContainer","selectionHeaderTemplate","_renderSelectAllCheckBox","_attachSelectAllCheckBoxClickEvent","_selectionMode","_isSelectionWithCheckboxes","_createSelection","_updateSelectColumn","_getSelectionConfig","selectionOptions","maxFilterLengthInRequest","dataFields","isSelectableItem","getItemData","isSelectColumnVisible","_updateCheckboxesState","isDeferredMode","selectionChangedOptions","changedItemIndexes","getChangedItemIndexes","itemIndexes","_selectedItemsInternalChange","isDataItem","oldSelectionMode","_isOnePageSelectAll","getSelectAllState","isDeselect","getSelectedRowKeys","selectRowsByIndexes","indexes","focusedItemIndex","_focusedItemIndex","allowSelectAll","selectAllMode","_loadDataSource","hasSelectColumn","_repaintChangesOnly","currentItem","_changes","isUpdateSelection","removedKeys","_updateSelectAllValue","isEmptyData","_attachCheckBoxClickEvent","_renderSelectCheckBox","_e$event","_updateCheckboxesClass","touch","isSelectionDisabled","isCommandSelect","isCheckBoxesHidden","OverlapStrategy","_initialPosition","_drawer$option","_getOverlayPosition","templatesRenderAsynchronously","_fixOverlayPosition","_processOverlayZIndex","panelPosition","_updateViewContentStyles","$panelOverlayContent","targetPanelPosition","colorHelper","_tryConvertColor","colorCode","patternFillHelper","standardColorNames","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","standardColorTypes","re","process","colorString","s","hsvToRgb","hslToRgb","_round","Color","baseColor","parseColor","colorIsInvalid","normalize","g","hsv","toHsvFromRgb","hsl","toHslFromRgb","colorComponent","def","toHexFromRgb","H","S","V","vMin","vInc","vDec","calculateHue","convertTo01Bounds","maxMinSum","makeColorTint","colorPart","colorTint","modifyColorTint","hueToRgb","isIntegerBetweenMinAndMax","highlight","alter","toHex","darken","blend","blendColor","other","getPureColor","isValidHex","hex","isValidRGB","isValidAlpha","fromHSL","$filter","fromSpeciesAndList","whitespaces","$parseInt","FILE_MANAGER_TOOLBAR_CLASS","FILE_MANAGER_GENERAL_TOOLBAR_CLASS","FILE_MANAGER_FILE_TOOLBAR_CLASS","FILE_MANAGER_TOOLBAR_SEPARATOR_ITEM_CLASS","FILE_MANAGER_TOOLBAR_VIEWMODE_ITEM_CLASS","FILE_MANAGER_TOOLBAR_HAS_LARGE_ICON_CLASS","FILE_MANAGER_VIEW_SWITCHER_POPUP_CLASS","DEFAULT_ITEM_CONFIGS","compactMode","switchView","DEFAULT_ITEM_ALLOWED_OPTION_PROPERTIES","ALWAYS_VISIBLE_TOOLBAR_ITEMS","REFRESH_ICON_MAP","REFRESH_ITEM_PROGRESS_MESSAGE_DELAY","FileManagerToolbar","_createItemClickedAction","_generalToolbarVisible","_$viewSwitcherPopup","_generalToolbar","_createToolbar","_fileToolbar","_getVisibleToolbar","_checkCompactMode","hidden","_getPreparedItems","_raiseItemClicked","preparedItem","_setItemVisibleAvailable","_updateSeparatorsVisibility","hasModifications","hasItemsBefore","itemGroups","_getItemsInGroup","itemLocation","isSeparatorVisible","_groupHasItemsAfter","_isItemInMenu","groupName","_result$options","_createCommandItem","_createSeparatorItem","_createViewModeItem","_configureHintForCompactMode","commandText","_executeCommand","commandItems","_this6$_commandManage","_toggleCompactMode","useCompactMode","_toolbarHasItemsOverflow","toolbarWidth","optionsSource","saved","_getCompactModeOptions","_available","available","_ensureAvailableCommandsVisible","_item$originalItemDat","originalVisible","_isToolbarItemAvailable","_fileToolbarHasEffectiveItems","_isFileToolbarItemAvailable","_isRefreshVisibleInFileToolbar","_updateItemInToolbar","_itemClickedAction","generalToolbarOptions","fileToolbarOptions","_applyRefreshItemOptions","_refreshItemTextTimeout","_updateRefreshItemText","isDeferredUpdate","showGeneralToolbar","u","require","1","getTypeOf","decode","uint8array","2","compressedSize","uncompressedSize","crc32","compressedContent","getContentWorker","Promise","pipe","uncompressWorker","streamInfo","data_length","getCompressedWorker","withStreamInfo","createWorkerFrom","compressWorker","3","STORE","magic","DEFLATE","4","5","createFolders","compressionOptions","comment","unixPermissions","dosPermissions","6","lie","7","Uint32Array","_pako","_pakoAction","_pakoOptions","meta","inherits","processChunk","_createPako","transformTo","flush","cleanUp","raw","onData","pako","8","utf8encode","I","w","z","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","B","E","fileRecord","R","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","bytesWritten","zipComment","zipPlatform","encodeFileName","streamFiles","accumulate","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","percent","openedSource","closedSource","DATA_DESCRIPTOR","CENTRAL_DIRECTORY_END","prepareNextSource","isPaused","pause","resume","registerPrevious","generatedError","lock","9","generateWorker","_compressWorker","10","root","loadAsync","support","defaults","external","11","decompressed","checkCRC32","optimizedBinaryString","decodeFileName","utf8decode","isStream","prepareContent","fileNameStr","fileCommentStr","12","_upstreamEnded","_bindStream","_stream","13","Readable","_helper","emit","_read","14","newBufferFrom","allocBuffer","alloc","isBuffer","15","generateInternalStream","checkSupport","generateNodeStream","toNodejsStream","16","stream","17","byteAt","zero","lastIndexOfSignature","readAndCheckSignature","readData","checkOffset","18","checkIndex","setIndex","readInt","readString","readDate","19","20","21","subarray","22","23","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","24","destType","25","26","propName","27","dataIsReady","_tickScheduled","_tickAndRepeat","isFinished","_tick","28","extraStreamInfo","isLocked","_listeners","mergeStreamInfo","29","nodestream","_internalType","_outputType","_mimeType","newBlob","_worker","objectMode","30","arraybuffer","nodebuffer","self","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","31","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","32","stringifyByChunk","stringifyByChar","applyCanBeUsed","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","readAsArrayBuffer","33","checkSignature","isSignature","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","processAttributes","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","34","isEncrypted","bitFlag","useUTF8","fileNameLength","compressionMethod","versionMadeBy","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","fileComment","extraFields","findExtraFieldUnicodePath","findExtraFieldUnicodeComment","35","_dataBinary","internalStream","_decompressWorker","nodeStream","36","MutationObserver","WebKitMutationObserver","observe","characterData","setImmediate","MessageChannel","onreadystatechange","removeChild","documentElement","port1","onmessage","port2","postMessage","37","queue","outcome","onFulfilled","callFulfilled","otherCallFulfilled","onRejected","callRejected","otherCallRejected","finally","race","immediate","38","39","windowBits","memLevel","gzip","err","msg","ended","chunks","strm","avail_out","deflateInit2","header","deflateSetHeader","dictionary","string2buf","deflateSetDictionary","_dict_set","next_in","avail_in","Buf8","next_out","deflate","onEnd","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","Deflate","deflateRaw","40","inflateInit2","Z_OK","inflateGetHeader","Z_FINISH","Z_NO_FLUSH","binstring2buf","inflate","Z_NEED_DICT","inflateSetDictionary","Z_BUF_ERROR","Z_STREAM_END","Z_SYNC_FLUSH","utf8border","buf2string","arraySet","inflateEnd","Inflate","inflateRaw","ungzip","41","Int32Array","setTyped","Buf16","Buf32","42","43","44","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","45","46","T","D","F","pending_buf","pending_out","total_out","N","_tr_flush_block","block_start","strstart","U","P","L","max_chain_length","prev_length","nice_match","w_size","w_mask","good_match","lookahead","match_start","window_size","hash_size","head","wrap","adler","total_in","ins_h","hash_shift","hash_mask","Z","match_length","_tr_tally","max_lazy_match","last_lit","W","prev_match","match_available","M","good_length","max_lazy","nice_length","max_chain","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","G","data_type","_tr_init","K","Y","deflateInit","deflateReset","deflateResetKeep","hcrc","time","os","_tr_align","_tr_stored_block","deflateInfo","47","xflags","extra_len","48","dmax","wsize","whave","wnext","hold","bits","lencode","distcode","lenbits","distbits","sane","49","havedict","check","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","was","inflateReset","inflateReset2","inflateResetKeep","inflateInit","inflateInfo","50","51","52","static_tree","extra_bits","extra_base","elems","max_length","has_stree","dyn_tree","max_code","stat_desc","X","J","53","54","_console","navigator","getNavigator","FILE_EXTESIONS","CSS","PNG","JPEG","GIF","SVG","PDF","_revokeObjectURLTimeout","_getDataUri","_getMimeType","_linkDownloader","exportLinkElement","_formDownloader","contentType","formAttributes","enctype","exportForm","setAttributes","_saveByProxy","_winJSBlobSave","savePicker","Windows","Storage","Pickers","FileSavePicker","suggestedStartLocation","PickerLocationId","documentsLibrary","fileTypeChoices","suggestedFileName","pickSaveFileAsync","openAsync","FileAccessMode","readWrite","outputStream","inputStream","msDetachStream","Streams","RandomAccessStream","copyAsync","flushAsync","dispatchEvent","MouseEvent","cancelable","initMouseEvent","_saveBlobAs","_blobSaved","msSaveOrOpenBlob","WinJS","webkitURL","mozURL","msURL","oURL","objectURL","downloadLink","_objectUrlRevoked","logger","warn","proxyURL","userAgent","GroupingHeaderPanelExtender","_uiData_gridGrouping2","DATAGRID_GROUP_PANEL_CLASS","DATAGRID_GROUP_PANEL_MESSAGE_CLASS","DATAGRID_GROUP_PANEL_ITEM_CLASS","DATAGRID_GROUP_PANEL_LABEL_CLASS","DATAGRID_EXPAND_CLASS","DATAGRID_GROUP_ROW_CLASS","GroupingDataSourceAdapterExtender","_initGroupingHelper","isAutoExpandAll","isFocusedRowEnabled","isODataRemoteOperations","_collapseExpandAll","isExpand","_hasGroupLevelsExpandState","groupPaging","GroupingDataControllerExtender","_beforeProcessItems","groupedColumns","collapseRow","onGroupingMenuItemClick","_appendGroupingItem","_isGroupPanelVisible","isRendered","$groupPanel","_updateGroupPanelContent","_processGroupItemAction","_renderGroupPanelItems","$groupPanelItem","$toolbarElement","emptyPanelText","$groupedColumnElement","isGroupingAllowed","isColumnGrouped","groupingTexts","ungroup","ungroupAll","GroupingRowsViewExtender","expandMode","isGroupRowStateChanged","isExpandButtonClicked","_changeGroupRowState","columnHeadersViewExtender","groupByThisColumn","$reduce","_array_compare","cacheEnabled","onDataErrorOccurred","changePaging","_skipProcessingPagingChange","pageChanged","_currentOperationTypes","_columnsChangedHandler","_handleColumnsChanged","_customizeStoreLoadOptionsHandler","_handleCustomizeStoreLoadOptions","stopOnFalse","_setPagingOptions","_useSortingGroupingFromColumns","returnDataField","additionalFilter","_readyDeferred","_columnsUpdating","filterApplied","updateItemsHandler","_needApplyFilter","isAsyncDataSourceApplying","_isDataSourceApplying","hasAdditionalFilter","needApplyFilter","_isAllDataTypesDefined","_fireLoadingChanged","isChanged","oldDataSource","setDataSource","visibleItems","lastVisibleItem","_generateDataItem","isModified","_applyChangeFull","_getRowIndices","correctedRowIndex","prevIndex","rowIndexCorrection","equalItems","item1","item2","strict","oldNextItem","newNextItem","_partialUpdateRow","changedColumnIndices","isCellChanged","_isItemEquals","compareFields","_item1$data","_item2$data","_item1$data2","_item2$data2","expandedMatch","summaryCellsMatch","continuationMatch","newIndexByKey","getRowKey","isItemEquals","oldItems","findChanges","isDataChanged","_loadingText","filterExpr","filterName","clearColumnOption","_fireDataSourceChanged","changedHandler","dataSourceAdapterProvider","isCustomStore","_createDataSourceAdapter","enabledRemoteOperations","cancelAll","_isSharedDataSource","loadAll","byLoaded","byKey","getDataByKeys","rowKeys","keyData","beginCustomLoading","endCustomLoading","customizeLoadResult","_disposeDataSource","rowIndexes","proxyMethod","COLUMN_HEADERS_VIEW_NAMESPACE","ColumnHeadersViewSortingExtender","$cellElementFromEvent","editingMode","HeaderPanelSortingExtender","middle","$find","COLUMN_CHOOSER_CLASS","COLUMN_CHOOSER_BUTTON_CLASS","NOTOUCH_ACTION_CLASS","COLUMN_CHOOSER_LIST_CLASS","COLUMN_CHOOSER_PLAIN_CLASS","COLUMN_CHOOSER_DRAG_CLASS","COLUMN_CHOOSER_SELECT_CLASS","COLUMN_CHOOSER_ICON_NAME","COLUMN_CHOOSER_ITEM_CLASS","TREEVIEW_NODE_SELECTOR","CHECKBOX_SELECTOR","CLICK_TIMEOUT","chooserColumns","isSelectMode","disableCheckBox","renderShowColumnChooserButton","$columnChooserButton","columnChooserButtonClass","columnChooserEnabled","$showColumnChooserButton","showColumnChooser","getPosition","_isWinDevice","win","_updateList","columnChooserList","_columnChooserList","_renderTreeView","themeName","isGenericTheme","isGeneric","shortcut","treeViewConfig","$checkBox","$treeViewNode","checkBoxInstance","_prepareSelectModeConfig","_prepareDragModeConfig","selectionChangedHandler","isLastColumnUnselected","needPartialRender","needFullRender","columnVisible","isColumnChooserVisible","hideColumnChooser","_appendColumnChooserItem","onClickHandler","columnChooserMode","isMoveColumnDisallowed","IndexedObject","createMethod","IS_RIGHT","memo","$forEach","_uiFile_managerDialog2","_uiFile_managerDialog3","FileManagerDialogManager","$chooseFolderDialog","_chooseDirectoryDialog","chooseDirectoryDialog","onClosed","onDialogClosed","$renameDialog","_renameItemDialog","$createDialog","_createItemDialog","$deleteItemDialog","_deleteItemDialog","getCopyDialog","getMoveDialog","getRenameItemDialog","getCreateItemDialog","getDeleteItemDialog","passed","required","FileManagerEditingControl","_onEditActionStarting","_onEditActionResultAcquired","_onEditActionItemError","_onEditActionError","_onCompleteEditActionItem","_onCompleteEditAction","_uploadOperationInfoMap","_dialogManager","provider","_onDialogClosed","_fileUploader","_createFileUploader","_initNotificationControl","_createMetadataMap","_onCancelUploadSession","_onCancelFileUpload","_getFileUploaderComponent","_getFileUploaderController","dropZonePlaceholderContainer","_onUploadSessionStarted","_onUploadProgress","uploadDirectory","_metadataMap","_tryCreate","affectsAllItems","singleItemProcessingMessage","singleItemSuccessMessage","singleItemErrorMessage","commonErrorMessage","_tryRename","_tryDelete","multipleItemsProcessingMessage","multipleItemsSuccessMessage","multipleItemsErrorMessage","_tryMove","_tryCopy","_tryUpload","allowCancel","allowItemProgress","canceledMessage","_download","_executeAction","actionMetadata","uploadSessionId","FileManagerActionContext","processingMessage","_actionInfo$customDat","_getItemProgressDisplayInfo","_actionInfo$customDat2","_handleActionError","_actionInfo$customDat3","_actionInfo$customDat4","_actionInfo$customDat5","parentDirectories","newDirName","_showDialog","_uploadDirectoryInfo","completionMessage","hasModifiedItems","_raiseOnSuccess","hasError","_handleSingleRequestActionError","_handleMultipleRequestActionError","getItemForSingleRequestError","_getErrorText","processSingleRequestError","operationErrorInfo","_getOperationErrorInfo","multipleItems","getItemForMultipleRequestError","processMultipleRequestError","detailError","errorState","currentDetailError","commonErrorText","detailErrorText","FileManagerMessages","errorArgs","errorCode","dialog","dialogArgument","_dialogDeferred","dialogResult","_actionMetadata","_itemInfos","_onlyFiles","_multipleItems","_location","_singleRequest","_completedItems","_commonProgress","_errorState","failedCount","_itemNewName","_setCurrentDetailError","_hasCompletedItems","successMessage","DxShow","DxPosition","DxOffset","DxMy","DxHide","DxCollision","DxBoundaryOffset","DxAt","DxAnimation","popup_1","minHeight","onResize","onResizeEnd","onResizeStart","onTitleRendered","shadingColor","titleTemplate","staggerDelay","BOTTOM_LOAD_PANEL_CLASS","TABLE_CONTENT_CLASS","FREESPACE_CLASS","SCROLLING_MODE_STANDARD","PIXELS_LIMIT","LOAD_TIMEOUT","isVirtualRowRendering","rowRenderingMode","_correctCount","fromEnd","isItemCountableFunc","isItemCountableByDataSource","VirtualScrollingDataSourceAdapterExtender","_updateLoading","_virtualScrollController","_startLoadTime","virtualScrollController","removeEmptyRows","$emptyRows","getRowParent","_dataController$state","scrollToPage","_scrollToCurrentPageOnResize","resizeHandler","itemSizes","_updateContentPosition","startRenderTime","_contentHeight","_removeRowsElements","contentTable","_restoreErrorRow","_updateBottomLoading","_addVirtualRow","$virtualRow","_getRowHeights","rowHeights","_correctRowHeights","correctedRowHeights","firstCountableItem","isRender","_updateContentPositionCore","$tables","$virtualRows","$contentTable","virtualTable","_contentTableHeight","isRenderVirtualTableContentRequired","_isTableLinesDisplaysCorrect","_isColumnElementsEqual","_renderVirtualTableContent","table","hasColumnLines","$columns","$virtualColumns","freeSpaceCellsHtml","columnLinesClass","createFreeSpaceRowHtml","classes","_getCellClasses","classString","isExpandColumn","_findBottomLoadPanel","$bottomLoadPanel","showBottomLoading","bottomLoadPanelElement","viewportHeight","hasBottomLoadPanel","scrollPos","updateTimeout","minTimeout","rowPageSize","loadTwoPagesOnStart","baseResult","initVirtualRows","getRowPageSize","isSortingOperation","allowedTopOffset","virtualRowsRendering","_visibleItems","_rowPageIndex","isItemCountable","isNextAfterLast","countableOnly","_that$_dataSource","allItems","byLoadedRows","_resizeTimeout","_lastTime","FilterBuilderView","_updatePopupOptions","_initPopup","_filterBuilderPopup","_disposePopup","_filterBuilder","_getPopupContentTemplate","_getPopupToolbarItems","$filterBuilderContainer","filterBuilder","filterBuilderPopup","filterBuilderView","_color","parseAttributes","_math","PI","_min","_abs","_sqrt","sqrt","_pow","_atan2","atan2","_cos","cos","_sin","sin","IMAGE_QUALITY","TEXT_DECORATION_LINE_WIDTH_COEFF","DEFAULT_FONT_SIZE","DEFAULT_TEXT_COLOR","createCanvas","canvas","getStringFromCanvas","dataURL","toDataURL","imageData","arcTo","x1","y1","x2","y2","radius","largeArcFlag","clockwise","cBx","cBy","aB","opSide","adjSide","centerX","centerY","startAngle","endAngle","arc","getElementOptions","rootAppended","coords","translateX","translateY","rotationAngle","rotationX","rotationY","scaleX","scaleY","parseStyles","drawRect","cornerRadius","rx","translate","lineTo","restore","rect","drawImage","shared","Image","globalAlpha","transformElement","clipElement","drawPath","dAttr","prevParams","prevParamsLen","dArray","bezierCurveTo","closePath","textDecoration","textDecorationLine","parseUrl","setFontStyle","fontParams","fontSize","fontFamily","fontStyle","fontWeight","fillStyle","drawText","fillText","strokeElement","drawTextDecoration","textWidth","measureText","textHeight","lineHeight","fillElement","aggregateOpacity","strokeOpacity","fillOpacity","hasTspan","drawTextElement","line","lines","drawElement","mergedOptions","dy","commonWidth","xDiff","currentOffset","parentOptions","isText","isImage","beginPath","cx","applyGradient","gradients","box","getBBox","gradient","createLinearGradient","opt","addColorStop","stopColor","filterOptions","shadowOffsetX","shadowOffsetY","shadowColor","shadowBlur","rotate","scale","clipPaths","clip","hex2rgba","hexColor","alpha","createGradient","stdDeviation","dx","asyncEach","isPromise","drawCanvasElements","onDone","patterns","setLineDash","stroke","lineJoin","lineWidth","strokeStyle","strokeText","getPattern","pattern","patternCanvas","patternContext","getContext","createPattern","drawBackground","fillRect","createInvisibleDiv","invisibleDiv","convertSvgToCanvas","getCanvasFromSvg","pixelRatio","svgToCanvas","setTransform","markupIsDomElement","getBody","__parseAttributesFn","formats","supported","unsupported","FILTER_ROW_OPERATIONS","FILTER_TYPES_INCLUDE","FILTER_TYPES_EXCLUDE","getColumnIdentifier","checkForErrors","FilterSyncController","getEmptyFilterValues","canSyncHeaderFilterWithFilterRow","getHeaderFilterFromCondition","headerFilterCondition","hasArrayValue","getConditionFromFilterRow","getConditionFromHeaderFilter","selectedOperation","updateHeaderFilterCondition","updateFilterRowCondition","filterRowOptions","syncFilterValue","_skipSyncColumnOptions","filterConditions","filterCondition","_initSync","filteringColumns","isFilterSyncActive","_getSyncFilterRow","_getSyncHeaderFilter","syncFilterRow","syncHeaderFilter","filterBuilderCustomOperations","anyOf","noneOf","DataControllerFilterSyncExtender","filterSyncEnabledValue","calculatedFilterValue","_parseColumnPropertyName","matched","propertyName","ColumnHeadersViewFilterSyncExtender","filterSyncEnabled","filterSync","_language_codes","ARABIC_ZERO_CODE","DEFINED_NUMBER_FORMTATS","thousands","millions","billions","trillions","decimal","fixedpoint","exponential","PERIOD_REGEXP","DAY_REGEXP","DO_REGEXP","STANDALONE_MONTH_REGEXP","HOUR_REGEXP","ANY_REGEXP","excelFormatConverter","_applyPrecision","_hasArabicDigits","_convertDateFormatToOpenXml","datePart","_convertDateFormat","formattedValue","getFormat","_getLanguageInfo","defaultPattern","languageID","languageIDStr","languageInfo","_convertNumberFormat","excelFormat","getOpenXmlCurrencyFormat","getContinuationGroupCount","pageOffset","foreachExpandedGroups","updateGroups","expandedInfo","isLastGroupExpanded","lastCount","updateGroupInfoItem","isLastGroupLevel","_isGroupExpanded","updateGroupInfos","loadedGroupCount","remotePaging","skips","isGroupExpanded","getTotalOffset","groupInfos","childrenTotalCount","applyContinuationToGroupItem","expandedItemIndex","takes","isLastExpandedItem","isFirstExpandedItem","lastExpandedItemSkip","isItemsTruncatedByTake","fillSkipTakeInExpandedInfo","currentGroupCount","currentGroupIndex","isDataDeferred","makeDataDeferred","loadGroupItems","loadExpandedGroups","loadLastLevelGroupItems","currentGroup","requireGroupCount","expandedFilters","expandedPath","isPagingLocal","expandedItems","loadGroupTotalCount","isGrouping","isVirtualPaging","skipChildrenTotalCount","takeCorrection","parentTakeCorrection","continuationGroupCount","skipContinuationGroupCount","groupInfoCount","childrenGroupInfoCount","remoteGroupPaging","isLastGroup","_processPaging","_processSkips","firstItem","_processTakes","lastItem","maxTakeCount","handleGroup","_select_box","_number_box","PAGES_LIMITER","PAGER_PAGE_CLASS","PAGER_PAGE_CLASS_SELECTOR","PAGER_PAGES_CLASS","LIGHT_MODE_CLASS","LIGHT_PAGES_CLASS","PAGER_PAGE_INDEX_CLASS","PAGER_PAGES_COUNT_CLASS","PAGER_SELECTION_CLASS","PAGER_PAGE_SEPARATOR_CLASS","PAGER_PAGE_SIZES_CLASS","PAGER_PAGE_SIZE_CLASS","PAGER_PAGE_SIZE_CLASS_SELECTOR","PAGER_NAVIGATE_BUTTON","PAGER_PREV_BUTTON_CLASS","PAGER_NEXT_BUTTON_CLASS","PAGER_INFO_CLASS","PAGER_INFO_TEXT_CLASS","PAGER_BUTTON_DISABLE_CLASS","Page","_$page","_value","Pager","pagesCountText","lightModeEnabled","_getPages","currentPage","firstValue","showMoreButton","pagesCount","_getPageByValue","page","_pages","_processSelectedPage","selectedPageIndex","isPageIndexValid","selectedPage","_selectPageByValue","nextPage","morePage","pagesLength","prevPage","_updatePagesTabIndices","$selectedPage","updatePageIndices","_nextPage","_wrapClickAction","_pointerUpHappened","_renderPages","$separator","clickPagesIndexAction","pageNumber","_pageClickHandler","_$pagesChooser","Name","_calculateLightPagesWidth","$pageIndex","_renderLightPages","clickAction","_pageIndexEditor","$pageCount","_renderPagesChooser","_renderInfo","_renderNavigateButton","_updatePagesChooserWidth","_renderPageSizes","pageSizeValue","$pageSize","pagesSizesLength","currentPageSize","clickPagesSizeAction","_$pagesSizeChooser","_calculateLightPageSizesWidth","_renderLightPageSizes","_pageSizeEditor","_renderPagesSizeChooser","_pagesSizeChooserWidth","_$info","_isInfoHide","_infoWidth","_updatePageSizes","_updatePages","_updateLightMode","forceRender","_updateButtonsState","_isPageIndexInvalid","isNextDirection","nextButton","prevButton","_pageKeyDownHandler","_getMinPagerWidth","pagesChooserWidth","_pagesChooserWidth","pagesSizeChooserWidth","deferUpdater","lastPageWidth","infoWidth","_previousWidth","RowsView","FILE_MANAGER_DIRS_TREE_CLASS","FILE_MANAGER_DIRS_TREE_FOCUSED_ITEM_CLASS","FILE_MANAGER_DIRS_TREE_ITEM_TEXT_CLASS","TREE_VIEW_ITEM_CLASS","FileManagerFilesTreeView","_createFileActionsButton","_storeExpandedState","$treeView","treeViewOptions","_onFilesTreeViewCreateSubDirectories","_createFilesTreeViewItemTemplate","_onFilesTreeViewItemExpanded","_onFilesTreeViewItemCollapsed","_onFilesTreeViewItemRendered","onItemContextMenu","_onFilesTreeViewItemContextMenu","_updateFocusedElement","equals","_restoreScrollTopPosition","$itemWrapper","_filesTreeViewItemSelector","$image","_getNodeByKey","_saveScrollTopPosition","_scrollTopPosition","_getItemElementByKey","initialFolder","treeViewNode","_updateExpandedStateToCurrentDirectory","dirLine","arrayMethodIsStrict","NEGATIVE_ZERO","STRICT_METHOD","ExportController","DataProvider","_exporter","DATAGRID_EXPORT_MENU_CLASS","DATAGRID_EXPORT_BUTTON_CLASS","DATAGRID_EXPORT_ICON","DATAGRID_EXPORT_EXCEL_ICON","DATAGRID_EXPORT_SELECTED_ICON","DATAGRID_EXPORT_EXCEL_BUTTON_ICON","TOOLBAR_ITEM_AUTO_HIDE_CLASS","_getGroupValue","_correctCellIndex","_exportController","excelWrapTextEnabled","_getColumns","_initialColumnWidthsByColumnIndex","_selectedRowsOnly","_selectionOnly","_getSelectedItems","_getAllItems","isHeadersVisible","customizeExportData","gridCell","initialColumnWidthsByColumnIndex","selectedRowsOnly","getHeaderStyles","getGroupRowStyle","getColumnStyles","columnStyles","_getTotalCellStyleId","_this$getColumns$cell","isTotalCell","getColumnsByAllRows","getColumnsWidths","_convertFromGridGroupSummaryItems","gridGroupSummaryItems","isExcelJS","correctedCellIndex","columnsRow","gridColumn","itemValues","totalSummaryItemName","correctCellIndex","isSummaryAlignByColumn","exportColspan","currentHeaderRow","columnWidthsByColumnIndex","_getColumnWidths","_headersView","_needColumnExporting","currentColspan","_calculateExportColspan","childColumns","childColumn","_getFooterSummaryItems","isTotal","estimatedItemsCount","_hasSummaryGroupFooters","_getItemsWithSummaryGroupFooters","sourceItems","beforeGroupFooterItems","groupFooterItems","_updateGroupValuesWithSummaryByColumn","summaryValues","groupColumnCount","_processUnExportedItems","isDetailExpandColumn","selectedRowData","getExportFormat","getDataProvider","columnsLastRowVisibleColumns","exportToExcel","_isSelectedRows","excelFilterEnabled","allowExportSelectedData","ignoreExcelErrors","exportTo","exportAll","exportSelectedRows","callbackList","editingChanged","_appendExportItems","exportOptions","exportItems","_renderButton","_renderExportMenu","_renderList","allowExportSelected","_correctItemsPosition","withText","_getButtonOptions","wrapperNode","wrapInner","_renderFakeButton","exportSelected","iconName","$toolbarItem","itemA","itemB","_isExportButtonVisible","DATAGRID_ROW_SELECTOR","DATAGRID_DEPRECATED_TEMPLATE_WARNING","DataGrid","alias","templateName","baseOperation","grid","lastIndex","getFullText","parentText","getSelectedItemsTexts","selectedItemsTexts","fieldInfo","conditionInfo","div","baseOp","baseFilter","cellFormatHelper","sharedItemsContainer","numberFormatId","fontId","fillId","applyNumberFormat","isAlignmentEmpty","xfId","applyAlignment","$indexOf","_wheel","FIRST_CELL_CLASS","LAST_CELL_CLASS","HOVER_STATE_CLASS","FIXED_COL_CLASS","FIXED_COLUMNS_CLASS","POINTER_EVENTS_NONE_CLASS","getTransparentColumnIndex","normalizeColumnWidths","fixedWidths","fixedColumnIndex","baseFixedColumns","_isFixedColumns","_correctColumnIndicesForFixedColumns","$fixedTable","_fixedTableElement","fixedCorrection","fixedCells","prevFixedColumn","columnCommand","isRowAltStyle","isEmptyCell","isGroupCell","alignByFixedColumnCellCount","fixedCellElements","fixedColumn","getFixedColumnsOffset","$transparentColumn","getTransparentColumnElement","positionTransparentColumn","getFixedTableElement","synchronizeRows","isWidthsSynchronized","isColumnWidthChanged","useVisibleColumns","_getClientHeight","boundingClientRectElement","$fixedRowElements","fixedRowHeights","heightTable","heightFixedTable","fixedRowHeight","ColumnHeadersViewFixedColumnsExtender","columnFixingOptions","fix","leftPosition","rightPosition","unfix","getFixedColumnElements","$transparentColumnElement","$fixedColumnElements","RowsViewFixedColumnsExtender","_detachHoverEvents","attachHoverEvent","isHover","contentClass","scrollDelay","_fixedScrollTimeout","$nearestScrollable","_updateFixedTablePosition","needFocus","vWidth","hWidth","$fixedContent","_getElasticScrollTop","elasticScrollTop","reachedBottom","scrollableContent","maxScrollTop","_applyElasticScrolling","FooterViewFixedColumnsExtender","normalizeColumnIndicesByPoints","correctIndex","pointsByFixedColumns","_pointsByFixedColumns","isWidgetResizingMode","isInteger","Prototype","tryToString","uid","Uint8ClampedArrayPrototype","TO_STRING_TAG","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Int16Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isView","KEY","ARRAY","error2","exportTypedArrayStaticMethod","OPERATION_DESCRIPTORS","CORRECT_FILTER_RANGE_OVERLAY_WIDTH","FILTER_RANGE_OVERLAY_CLASS","FILTER_RANGE_START_CLASS","FILTER_RANGE_END_CLASS","MENU_CLASS","EDITOR_WITH_MENU_CLASS","EDITOR_CONTAINER_CLASS","FILTER_MENU","APPLY_BUTTON_CLASS","HIGHLIGHT_OUTLINE_CLASS","FOCUSED_CLASS","FILTER_RANGE_CONTENT_CLASS","FILTER_MODIFIED_CLASS","BETWEEN_OPERATION_DATA_TYPES","isOnClickApplyFilterMode","ColumnHeadersViewFilterRowExtender","$editorContainer","componentNames","getRangeTextByFilterValue","rangeEnd","getColumnFilterValue","getColumnSelectedFilterOperation","bufferedSelectedFilterOperation","isValidFilterValue","isFilterRange","isRangeStart","normalizeFilterValue","columnFilterValue","updateFilterValue","_applyFilterViewController","setHighLight","_updateEditorValue","$editorRangeElements","overlayInstance","_updateFilterRangeContent","_updateFilterOperationChooser","_renderFilterRangeContent","_renderEditor","_getEditorOptions","_hideFilterRange","_filterRangeOverlayInstance","isFilterRowVisible","_initFilterRangeOverlay","$prevElement","_updateFilterRangeOverlay","_showFilterRange","getFilterRangeOverlayInstance","_renderFilterCell","_renderFilterOperationChooser","accessibilityOptions","_getFilterInputAccessibilityAttributes","columnAriaLabel","$filterRangeContent","isCellWasFocused","_focusEditor","_getFilterOperationMenuItems","properties","columnSelectedFilterOperation","notFocusEditor","isOnClickMode","_isEditorFocused","operationDescriptions","availableFilterOperations","descriptionName","resetOperationText","ApplyFilterViewController","_getHeaderPanel","enableApplyButton","removeHighLights","columnHeadersViewElement","showOperationChooser","applyFilterText","betweenStartText","betweenEndText","filterItem","_prepareFilterItem","_isShowApplyFilterButton","FILTER_BUILDER_RANGE_CLASS","FILTER_BUILDER_RANGE_START_CLASS","FILTER_BUILDER_RANGE_END_CLASS","FILTER_BUILDER_RANGE_SEPARATOR_CLASS","SEPARATOR","$editorStart","$editorEnd","getStartValue","getEndValue","_load_panel","DATAGRID_SELECTION_DISABLED_CLASS","DATAGRID_GROUP_OPENED_CLASS","DATAGRID_GROUP_CLOSED_CLASS","NO_DATA_CLASS","DATE_INTERVAL_SELECTORS","getIntervalSelector","nameIntervalSelector","equalSelectors","selector1","selector2","formatObject","editorData","dxComponents","widgetName","filter1","filter2","noDataClass","noDataElement","changeNames","changesWithChangeNamesCount","defaultResult","remoteGrouping","sortParameters1","sortParameters2","ignoreIsExpanded","pointCreated","isVertical","notCreatePoint","prevItemOffset","selectionEnd","isSelectTextOnEditingStart","_loadItemDeferred","hasResizableColumns","$grid","FILE_MANAGER_BREADCRUMBS_CLASS","FILE_MANAGER_BREADCRUMBS_PARENT_FOLDER_ITEM_CLASS","FILE_MANAGER_BREADCRUMBS_SEPARATOR_ITEM_CLASS","FILE_MANAGER_BREADCRUMBS_PATH_SEPARATOR_ITEM_CLASS","FileManagerBreadcrumbs","_currentDirectory","_areDirsEqual","_onItemClick","_onItemRendered","_getParentDirsLine","isPathItem","newDir","_raiseCurrentDirectoryChanged","dir1","dir2","_uiFile_managerNotification","FILE_MANAGER_NOTIFICATION_CLASS","FILE_MANAGER_NOTIFICATION_DRAWER_CLASS","FILE_MANAGER_NOTIFICATION_DRAWER_PANEL_CLASS","FILE_MANAGER_NOTIFICATION_POPUP_CLASS","FILE_MANAGER_NOTIFICATION_POPUP_ERROR_CLASS","FILE_MANAGER_NOTIFICATION_COMMON_CLASS","FILE_MANAGER_NOTIFICATION_SEPARATOR_CLASS","FILE_MANAGER_NOTIFICATION_DETAILS_CLASS","FILE_MANAGER_NOTIFICATION_COMMON_NO_ITEM_CLASS","FileManagerNotificationControl","_actionProgressStatus","_operationInProgressCount","_failedOperationCount","$progressPanelContainer","$progressDrawer","drawerOptions","_ensureProgressPanelCreated","_getProgressDrawerAdaptiveOptions","_progressDrawer","_isProgressDrawerOpened","_getNotificationPopup","_tryHideActionProgress","_progressPanel","_updateActionProgress","_showPopup","_notifyError","_hideProgressPanel","_raiseActionProgress","$progressPanelElement","_getProgressPanelComponent","_onProgressPanelOperationClosed","_showPopupError","errorMode","_notificationPopup","FileSystemItem","_publicCtor","_internalCtor","_getPathByPathInfo","pathInfoPart","DEFAULT_FILE_UPLOAD_CHUNK_SIZE","FileSystemProviderBase","_sizeGetter","_dateModifiedGetter","_thumbnailGetter","thumbnailExpr","_createFileItem","_defaultKeyExpr","isDirectoryExpr","keepResult","userResult","depthFirstSearch","isCount","aggregators","normalizeAggregate","_groupLevel","_groupAggregates","_totals","_calculateTotals","_calculateGroups","_aggregate","_accumulate","_seed","_finalize","maxLevel","seedFn","stepFn","finalizeFn","innerNode","aggregateIndex","fin","FILE_MANAGER_DIALOG_CONTENT","FILE_MANAGER_DIALOG_POPUP","FileManagerDialogBase","_createOnClosedAction","_closeDialog","_dialogResult","_onClosedAction","newTitle","newText","_createOnPathChangedAction"],"mappings":"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GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJhnI,GAAI,GACJinI,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,GACLC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,GAAI,IACJ,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,aAAc,KACd,cAAe,KACf,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KAC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","file":"js/chunk-47550944.f6b208af.js","sourcesContent":["/**\r\n * DevExtreme (ui/shared/filtering.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar DEFAULT_DATE_INTERVAL = [\"year\", \"month\", \"day\"];\r\nvar DEFAULT_DATETIME_INTERVAL = [\"year\", \"month\", \"day\", \"hour\", \"minute\"];\r\nvar isDateType = function(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n};\r\nvar getGroupInterval = function(column) {\r\n var index;\r\n var result = [];\r\n var dateIntervals = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\"];\r\n var groupInterval = column.headerFilter && column.headerFilter.groupInterval;\r\n var interval = \"quarter\" === groupInterval ? \"month\" : groupInterval;\r\n if (isDateType(column.dataType) && null !== groupInterval) {\r\n result = \"datetime\" === column.dataType ? DEFAULT_DATETIME_INTERVAL : DEFAULT_DATE_INTERVAL;\r\n index = (0, _array.inArray)(interval, dateIntervals);\r\n if (index >= 0) {\r\n result = dateIntervals.slice(0, index);\r\n result.push(groupInterval);\r\n return result\r\n }\r\n return result\r\n } else {\r\n if ((0, _type.isDefined)(groupInterval)) {\r\n return Array.isArray(groupInterval) ? groupInterval : [groupInterval]\r\n }\r\n }\r\n};\r\nvar _default = function() {\r\n var getFilterSelector = function(column, target) {\r\n var selector = column.dataField || column.selector;\r\n if (\"search\" === target) {\r\n selector = column.displayField || column.calculateDisplayValue || selector\r\n }\r\n return selector\r\n };\r\n var isZeroTime = function(date) {\r\n return date.getHours() + date.getMinutes() + date.getSeconds() + date.getMilliseconds() < 1\r\n };\r\n var getDateValues = function(dateValue) {\r\n if ((0, _type.isDate)(dateValue)) {\r\n return [dateValue.getFullYear(), dateValue.getMonth(), dateValue.getDate(), dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds()]\r\n }\r\n return (0, _iterator.map)((\"\" + dateValue).split(\"/\"), function(value, index) {\r\n return 1 === index ? Number(value) - 1 : Number(value)\r\n })\r\n };\r\n var getFilterExpressionByRange = function(filterValue, target) {\r\n var column = this;\r\n var endFilterValue;\r\n var startFilterExpression;\r\n var endFilterExpression;\r\n var selector = getFilterSelector(column, target);\r\n if (Array.isArray(filterValue) && (0, _type.isDefined)(filterValue[0]) && (0, _type.isDefined)(filterValue[1])) {\r\n startFilterExpression = [selector, \">=\", filterValue[0]];\r\n endFilterExpression = [selector, \"<=\", filterValue[1]];\r\n if (isDateType(column.dataType) && isZeroTime(filterValue[1])) {\r\n endFilterValue = new Date(filterValue[1].getTime());\r\n if (\"date\" === column.dataType) {\r\n endFilterValue.setDate(filterValue[1].getDate() + 1)\r\n }\r\n endFilterExpression = [selector, \"<\", endFilterValue]\r\n }\r\n return [startFilterExpression, \"and\", endFilterExpression]\r\n }\r\n };\r\n var getFilterExpressionForDate = function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var dateStart;\r\n var dateEnd;\r\n var dateInterval;\r\n var values = getDateValues(filterValue);\r\n var selector = getFilterSelector(column, target);\r\n if (\"headerFilter\" === target) {\r\n dateInterval = getGroupInterval(column)[values.length - 1]\r\n } else {\r\n if (\"datetime\" === column.dataType) {\r\n dateInterval = \"minute\"\r\n }\r\n }\r\n switch (dateInterval) {\r\n case \"year\":\r\n dateStart = new Date(values[0], 0, 1);\r\n dateEnd = new Date(values[0] + 1, 0, 1);\r\n break;\r\n case \"month\":\r\n dateStart = new Date(values[0], values[1], 1);\r\n dateEnd = new Date(values[0], values[1] + 1, 1);\r\n break;\r\n case \"quarter\":\r\n dateStart = new Date(values[0], 3 * values[1], 1);\r\n dateEnd = new Date(values[0], 3 * values[1] + 3, 1);\r\n break;\r\n case \"hour\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3] + 1);\r\n break;\r\n case \"minute\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4] + 1);\r\n break;\r\n case \"second\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4], values[5]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4], values[5] + 1);\r\n break;\r\n default:\r\n dateStart = new Date(values[0], values[1], values[2]);\r\n dateEnd = new Date(values[0], values[1], values[2] + 1)\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"<\":\r\n return [selector, \"<\", dateStart];\r\n case \"<=\":\r\n return [selector, \"<\", dateEnd];\r\n case \">\":\r\n return [selector, \">=\", dateEnd];\r\n case \">=\":\r\n return [selector, \">=\", dateStart];\r\n case \"<>\":\r\n return [\r\n [selector, \"<\", dateStart], \"or\", [selector, \">=\", dateEnd]\r\n ];\r\n default:\r\n return [\r\n [selector, \">=\", dateStart], \"and\", [selector, \"<\", dateEnd]\r\n ]\r\n }\r\n };\r\n var getFilterExpressionForNumber = function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var selector = getFilterSelector(column, target);\r\n var groupInterval = getGroupInterval(column);\r\n if (\"headerFilter\" === target && groupInterval && (0, _type.isDefined)(filterValue)) {\r\n var values = (\"\" + filterValue).split(\"/\");\r\n var value = Number(values[values.length - 1]);\r\n var interval = groupInterval[values.length - 1];\r\n var startFilterValue = [selector, \">=\", value];\r\n var endFilterValue = [selector, \"<\", value + interval];\r\n var condition = [startFilterValue, \"and\", endFilterValue];\r\n return condition\r\n }\r\n return [selector, selectedFilterOperation || \"=\", filterValue]\r\n };\r\n return {\r\n defaultCalculateFilterExpression: function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var selector = getFilterSelector(column, target);\r\n var isSearchByDisplayValue = column.calculateDisplayValue && \"search\" === target;\r\n var dataType = isSearchByDisplayValue && column.lookup && column.lookup.dataType || column.dataType;\r\n var filter = null;\r\n if ((\"headerFilter\" === target || \"filterBuilder\" === target) && null === filterValue) {\r\n filter = [selector, selectedFilterOperation || \"=\", null];\r\n if (\"string\" === dataType) {\r\n filter = [filter, \"=\" === selectedFilterOperation ? \"or\" : \"and\", [selector, selectedFilterOperation || \"=\", \"\"]]\r\n }\r\n } else {\r\n if (\"string\" === dataType && (!column.lookup || isSearchByDisplayValue)) {\r\n filter = [selector, selectedFilterOperation || \"contains\", filterValue]\r\n } else {\r\n if (\"between\" === selectedFilterOperation) {\r\n return getFilterExpressionByRange.apply(column, [filterValue, target])\r\n } else {\r\n if (isDateType(dataType) && (0, _type.isDefined)(filterValue)) {\r\n return getFilterExpressionForDate.apply(column, arguments)\r\n } else {\r\n if (\"number\" === dataType) {\r\n return getFilterExpressionForNumber.apply(column, arguments)\r\n } else {\r\n if (\"object\" !== dataType) {\r\n filter = [selector, selectedFilterOperation || \"=\", filterValue]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return filter\r\n },\r\n getGroupInterval: getGroupInterval\r\n }\r\n}();\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.core.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.utils\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"../grid_core/ui.grid_core.modules\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction ownKeys(object, enumerableOnly) {\r\n var keys = Object.keys(object);\r\n if (Object.getOwnPropertySymbols) {\r\n var symbols = Object.getOwnPropertySymbols(object);\r\n if (enumerableOnly) {\r\n symbols = symbols.filter(function(sym) {\r\n return Object.getOwnPropertyDescriptor(object, sym).enumerable\r\n })\r\n }\r\n keys.push.apply(keys, symbols)\r\n }\r\n return keys\r\n}\r\n\r\nfunction _objectSpread(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = null != arguments[i] ? arguments[i] : {};\r\n if (i % 2) {\r\n ownKeys(Object(source), true).forEach(function(key) {\r\n _defineProperty(target, key, source[key])\r\n })\r\n } else {\r\n if (Object.getOwnPropertyDescriptors) {\r\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source))\r\n } else {\r\n ownKeys(Object(source)).forEach(function(key) {\r\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\r\n })\r\n }\r\n }\r\n }\r\n return target\r\n}\r\n\r\nfunction _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\nvar _default = _objectSpread(_objectSpread(_objectSpread({}, _uiGrid_core2.default), _uiGrid_core.default), {}, {\r\n modules: []\r\n});\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/file_manager/file_items_controller.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _provider_base = _interopRequireDefault(require(\"../../file_management/provider_base\"));\r\nvar _file_system_item = _interopRequireDefault(require(\"../../file_management/file_system_item\"));\r\nvar _object_provider = _interopRequireDefault(require(\"../../file_management/object_provider\"));\r\nvar _remote_provider = _interopRequireDefault(require(\"../../file_management/remote_provider\"));\r\nvar _custom_provider = _interopRequireDefault(require(\"../../file_management/custom_provider\"));\r\nvar _errors = _interopRequireDefault(require(\"../../file_management/errors\"));\r\nvar _utils = require(\"../../file_management/utils\");\r\nvar _uiFile_manager = require(\"./ui.file_manager.common\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _common = require(\"../../core/utils/common\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\nvar DEFAULT_ROOT_FILE_SYSTEM_ITEM_NAME = \"Files\";\r\nvar FileItemsController = function() {\r\n function FileItemsController(options) {\r\n options = options || {};\r\n this._options = (0, _extend.extend)({}, options);\r\n this._isInitialized = false;\r\n this._dataLoading = false;\r\n this._dataLoadingDeferred = null;\r\n this._rootDirectoryInfo = this._createRootDirectoryInfo(options.rootText);\r\n this._currentDirectoryInfo = this._rootDirectoryInfo;\r\n this._defaultIconMap = this._createDefaultIconMap();\r\n this._securityController = new FileSecurityController({\r\n allowedFileExtensions: this._options.allowedFileExtensions,\r\n maxFileSize: this._options.uploadMaxFileSize\r\n });\r\n this._setProvider(options.fileProvider);\r\n this._initialize()\r\n }\r\n var _proto = FileItemsController.prototype;\r\n _proto._setProvider = function(fileProvider) {\r\n this._fileProvider = this._createFileProvider(fileProvider);\r\n this._resetState()\r\n };\r\n _proto._createFileProvider = function(fileProvider) {\r\n if (!fileProvider) {\r\n fileProvider = []\r\n }\r\n if (Array.isArray(fileProvider)) {\r\n return new _object_provider.default({\r\n data: fileProvider\r\n })\r\n }\r\n if (fileProvider instanceof _provider_base.default) {\r\n return fileProvider\r\n }\r\n switch (fileProvider.type) {\r\n case \"remote\":\r\n return new _remote_provider.default(fileProvider);\r\n case \"custom\":\r\n return new _custom_provider.default(fileProvider)\r\n }\r\n return new _object_provider.default(fileProvider)\r\n };\r\n _proto.setCurrentPath = function(path) {\r\n var pathParts = (0, _utils.getPathParts)(path);\r\n var rawPath = _utils.pathCombine.apply(void 0, _toConsumableArray(pathParts));\r\n if (this.getCurrentDirectory().fileItem.relativeName === rawPath) {\r\n return\r\n }\r\n return this._setCurrentDirectoryByPathParts(pathParts)\r\n };\r\n _proto.setCurrentPathByKeys = function(pathKeys) {\r\n if ((0, _common.equalByValue)(this.getCurrentDirectory().fileItem.pathKeys, pathKeys, 0, true)) {\r\n return\r\n }\r\n return this._setCurrentDirectoryByPathParts(pathKeys, true)\r\n };\r\n _proto.getCurrentPath = function() {\r\n var currentPath = \"\";\r\n var directory = this.getCurrentDirectory();\r\n while (directory && !directory.fileItem.isRoot()) {\r\n var escapedName = (0, _utils.getEscapedFileName)(directory.fileItem.name);\r\n currentPath = (0, _utils.pathCombine)(escapedName, currentPath);\r\n directory = directory.parentDirectory\r\n }\r\n return currentPath\r\n };\r\n _proto.getCurrentDirectory = function() {\r\n return this._currentDirectoryInfo\r\n };\r\n _proto.setCurrentDirectory = function(directoryInfo, checkActuality) {\r\n if (!directoryInfo) {\r\n return\r\n }\r\n if (checkActuality) {\r\n directoryInfo = this._getActualDirectoryInfo(directoryInfo)\r\n }\r\n if (this._currentDirectoryInfo && this._currentDirectoryInfo === directoryInfo) {\r\n return\r\n }\r\n var requireRaiseSelectedDirectory = this._currentDirectoryInfo.fileItem.key !== directoryInfo.fileItem.key;\r\n this._currentDirectoryInfo = directoryInfo;\r\n if (requireRaiseSelectedDirectory && this._isInitialized) {\r\n if (!this._dataLoading) {\r\n this._raiseDataLoading(\"navigation\")\r\n }\r\n this._raiseSelectedDirectoryChanged(directoryInfo)\r\n }\r\n };\r\n _proto.getCurrentItems = function(onlyFiles) {\r\n var _this = this;\r\n return this._dataLoadingDeferred ? this._dataLoadingDeferred.then(function() {\r\n return _this._getCurrentItemsInternal(onlyFiles)\r\n }) : this._getCurrentItemsInternal(onlyFiles)\r\n };\r\n _proto._getCurrentItemsInternal = function(onlyFiles) {\r\n var _this2 = this;\r\n var currentDirectory = this.getCurrentDirectory();\r\n var getItemsPromise = this.getDirectoryContents(currentDirectory);\r\n return getItemsPromise.then(function(items) {\r\n var separatedItems = _this2._separateItemsByType(items);\r\n currentDirectory.fileItem.hasSubDirectories = !!separatedItems.folders.length;\r\n return onlyFiles ? separatedItems.files : items\r\n })\r\n };\r\n _proto.getDirectories = function(parentDirectoryInfo, skipNavigationOnError) {\r\n return this.getDirectoryContents(parentDirectoryInfo, skipNavigationOnError).then(function(itemInfos) {\r\n return itemInfos.filter(function(info) {\r\n return info.fileItem.isDirectory\r\n })\r\n })\r\n };\r\n _proto._separateItemsByType = function(itemInfos) {\r\n var folders = [];\r\n var files = [];\r\n itemInfos.forEach(function(info) {\r\n return info.fileItem.isDirectory ? folders.push(info) : files.push(info)\r\n });\r\n return {\r\n folders: folders,\r\n files: files\r\n }\r\n };\r\n _proto.getDirectoryContents = function(parentDirectoryInfo, skipNavigationOnError) {\r\n var _this3 = this;\r\n if (!parentDirectoryInfo) {\r\n return (new _deferred.Deferred).resolve([this._rootDirectoryInfo]).promise()\r\n }\r\n if (parentDirectoryInfo.itemsLoaded) {\r\n return (new _deferred.Deferred).resolve(parentDirectoryInfo.items).promise()\r\n }\r\n var dirKey = parentDirectoryInfo.getInternalKey();\r\n var loadItemsDeferred = this._loadedItems[dirKey];\r\n if (loadItemsDeferred) {\r\n return loadItemsDeferred\r\n }\r\n loadItemsDeferred = this._getFileItems(parentDirectoryInfo, skipNavigationOnError).then(function(fileItems) {\r\n fileItems = fileItems || [];\r\n parentDirectoryInfo.items = fileItems.map(function(fileItem) {\r\n return fileItem.isDirectory && _this3._createDirectoryInfo(fileItem, parentDirectoryInfo) || _this3._createFileInfo(fileItem, parentDirectoryInfo)\r\n });\r\n parentDirectoryInfo.itemsLoaded = true;\r\n return parentDirectoryInfo.items\r\n });\r\n this._loadedItems[dirKey] = loadItemsDeferred;\r\n loadItemsDeferred.always(function() {\r\n delete _this3._loadedItems[dirKey]\r\n });\r\n return loadItemsDeferred\r\n };\r\n _proto._getFileItems = function(parentDirectoryInfo, skipNavigationOnError) {\r\n var _this4 = this;\r\n var loadItemsDeferred = null;\r\n try {\r\n loadItemsDeferred = this._fileProvider.getItems(parentDirectoryInfo.fileItem)\r\n } catch (error) {\r\n return this._handleItemLoadError(parentDirectoryInfo, error, skipNavigationOnError)\r\n }\r\n return (0, _deferred.when)(loadItemsDeferred).then(function(fileItems) {\r\n return _this4._securityController.getAllowedItems(fileItems)\r\n }, function(errorInfo) {\r\n return _this4._handleItemLoadError(parentDirectoryInfo, errorInfo, skipNavigationOnError)\r\n })\r\n };\r\n _proto.createDirectory = function(parentDirectoryInfo, name) {\r\n var _this5 = this;\r\n var tempDirInfo = this._createDirInfoByName(name, parentDirectoryInfo);\r\n var actionInfo = this._createEditActionInfo(\"create\", tempDirInfo, parentDirectoryInfo);\r\n return this._processEditAction(actionInfo, function() {\r\n return _this5._fileProvider.createDirectory(parentDirectoryInfo.fileItem, name).done(function(info) {\r\n if (!parentDirectoryInfo.fileItem.isRoot()) {\r\n parentDirectoryInfo.fileItem.hasSubDirectories = true\r\n }\r\n return info\r\n })\r\n }, function() {\r\n return _this5._resetDirectoryState(parentDirectoryInfo, true)\r\n })\r\n };\r\n _proto.renameItem = function(fileItemInfo, name) {\r\n var _this6 = this;\r\n var actionInfo = this._createEditActionInfo(\"rename\", fileItemInfo, fileItemInfo.parentDirectory, {\r\n itemNewName: name\r\n });\r\n return this._processEditAction(actionInfo, function() {\r\n if (!fileItemInfo.fileItem.isDirectory) {\r\n _this6._securityController.validateExtension(name)\r\n }\r\n return _this6._fileProvider.renameItem(fileItemInfo.fileItem, name)\r\n }, function() {\r\n var parentDirectory = _this6._getActualDirectoryInfo(fileItemInfo.parentDirectory);\r\n _this6._resetDirectoryState(parentDirectory);\r\n _this6.setCurrentDirectory(parentDirectory)\r\n })\r\n };\r\n _proto.moveItems = function(itemInfos, destinationDirectory) {\r\n var _this7 = this;\r\n var items = itemInfos.map(function(i) {\r\n return i.fileItem\r\n });\r\n var actionInfo = this._createEditActionInfo(\"move\", itemInfos, destinationDirectory);\r\n return this._processEditAction(actionInfo, function() {\r\n return _this7._fileProvider.moveItems(items, destinationDirectory.fileItem)\r\n }, function() {\r\n destinationDirectory = _this7._getActualDirectoryInfo(destinationDirectory);\r\n itemInfos.forEach(function(itemInfo) {\r\n return _this7._resetDirectoryState(itemInfo.parentDirectory, true)\r\n });\r\n _this7._resetDirectoryState(destinationDirectory);\r\n _this7.setCurrentDirectory(destinationDirectory);\r\n destinationDirectory.expanded = true\r\n })\r\n };\r\n _proto.copyItems = function(itemInfos, destinationDirectory) {\r\n var _this8 = this;\r\n var items = itemInfos.map(function(i) {\r\n return i.fileItem\r\n });\r\n var actionInfo = this._createEditActionInfo(\"copy\", itemInfos, destinationDirectory);\r\n return this._processEditAction(actionInfo, function() {\r\n return _this8._fileProvider.copyItems(items, destinationDirectory.fileItem)\r\n }, function() {\r\n destinationDirectory = _this8._getActualDirectoryInfo(destinationDirectory);\r\n _this8._resetDirectoryState(destinationDirectory);\r\n _this8.setCurrentDirectory(destinationDirectory);\r\n destinationDirectory.expanded = true\r\n })\r\n };\r\n _proto.deleteItems = function(itemInfos) {\r\n var _this9 = this;\r\n var items = itemInfos.map(function(i) {\r\n return i.fileItem\r\n });\r\n var directory = itemInfos.length > 0 ? itemInfos[0].parentDirectory : null;\r\n var actionInfo = this._createEditActionInfo(\"delete\", itemInfos, directory);\r\n return this._processEditAction(actionInfo, function() {\r\n return _this9._fileProvider.deleteItems(items)\r\n }, function() {\r\n itemInfos.forEach(function(itemInfo) {\r\n var parentDir = _this9._getActualDirectoryInfo(itemInfo.parentDirectory);\r\n _this9._resetDirectoryState(parentDir);\r\n _this9.setCurrentDirectory(parentDir)\r\n })\r\n })\r\n };\r\n _proto.processUploadSession = function(sessionInfo, uploadDirectoryInfo) {\r\n var _this10 = this;\r\n var itemInfos = this._getItemInfosForUploaderFiles(sessionInfo.files, uploadDirectoryInfo);\r\n var actionInfo = this._createEditActionInfo(\"upload\", itemInfos, uploadDirectoryInfo, {\r\n sessionInfo: sessionInfo\r\n });\r\n return this._processEditAction(actionInfo, function() {\r\n return sessionInfo.deferreds\r\n }, function() {\r\n return _this10._resetDirectoryState(uploadDirectoryInfo, true)\r\n })\r\n };\r\n _proto.uploadFileChunk = function(fileData, chunksInfo, destinationDirectory) {\r\n this._securityController.validateMaxFileSize(fileData.size);\r\n this._securityController.validateExtension(fileData.name);\r\n return (0, _deferred.when)(this._fileProvider.uploadFileChunk(fileData, chunksInfo, destinationDirectory))\r\n };\r\n _proto.abortFileUpload = function(fileData, chunksInfo, destinationDirectory) {\r\n return (0, _deferred.when)(this._fileProvider.abortFileUpload(fileData, chunksInfo, destinationDirectory))\r\n };\r\n _proto.getFileUploadChunkSize = function() {\r\n var chunkSize = this._options.uploadChunkSize;\r\n if (chunkSize && chunkSize > 0) {\r\n return chunkSize\r\n }\r\n return this._fileProvider.getFileUploadChunkSize()\r\n };\r\n _proto.downloadItems = function(itemInfos) {\r\n var items = itemInfos.map(function(i) {\r\n return i.fileItem\r\n });\r\n this._fileProvider.downloadItems(items)\r\n };\r\n _proto.getItemContent = function(itemInfos) {\r\n var items = itemInfos.map(function(i) {\r\n return i.fileItem\r\n });\r\n return (0, _deferred.when)(this._fileProvider.getItemsContent(items))\r\n };\r\n _proto._handleItemLoadError = function(parentDirectoryInfo, errorInfo, skipNavigationOnError) {\r\n parentDirectoryInfo = this._getActualDirectoryInfo(parentDirectoryInfo);\r\n var actionInfo = this._createEditActionInfo(\"getItems\", parentDirectoryInfo, parentDirectoryInfo);\r\n this._raiseEditActionStarting(actionInfo);\r\n this._raiseEditActionResultAcquired(actionInfo);\r\n this._raiseEditActionError(actionInfo, {\r\n errorId: errorInfo.errorId,\r\n errorText: errorInfo.errorText,\r\n fileItem: parentDirectoryInfo.fileItem,\r\n index: 0\r\n });\r\n this._resetDirectoryState(parentDirectoryInfo);\r\n parentDirectoryInfo.expanded = false;\r\n if (!skipNavigationOnError) {\r\n this.setCurrentDirectory(parentDirectoryInfo.parentDirectory)\r\n }\r\n return (new _deferred.Deferred).reject().promise()\r\n };\r\n _proto._processEditAction = function(actionInfo, action, completeAction) {\r\n var _this11 = this;\r\n var actionResult = null;\r\n this._raiseEditActionStarting(actionInfo);\r\n try {\r\n actionResult = action()\r\n } catch (errorInfo) {\r\n this._raiseEditActionError(actionInfo, errorInfo);\r\n return (new _deferred.Deferred).reject().promise()\r\n }\r\n if (!Array.isArray(actionResult)) {\r\n actionResult = [actionResult]\r\n } else {\r\n if (actionResult.length > 1) {\r\n actionInfo.singleRequest = false\r\n }\r\n }\r\n this._raiseEditActionResultAcquired(actionInfo);\r\n return (0, _uiFile_manager.whenSome)(actionResult, function(info) {\r\n return _this11._raiseCompleteEditActionItem(actionInfo, info)\r\n }, function(errorInfo) {\r\n return _this11._raiseEditActionItemError(actionInfo, errorInfo)\r\n }).then(function() {\r\n completeAction();\r\n _this11._raiseCompleteEditAction(actionInfo)\r\n })\r\n };\r\n _proto._createEditActionInfo = function(name, targetItemInfos, directory, customData) {\r\n targetItemInfos = Array.isArray(targetItemInfos) ? targetItemInfos : [targetItemInfos];\r\n customData = customData || {};\r\n var items = targetItemInfos.map(function(itemInfo) {\r\n return itemInfo.fileItem\r\n });\r\n return {\r\n name: name,\r\n itemInfos: targetItemInfos,\r\n items: items,\r\n directory: directory,\r\n customData: customData,\r\n singleRequest: true\r\n }\r\n };\r\n _proto._getItemInfosForUploaderFiles = function(files, parentDirectoryInfo) {\r\n var pathInfo = this._getPathInfo(parentDirectoryInfo);\r\n var result = [];\r\n for (var i = 0; i < files.length; i++) {\r\n var file = files[i];\r\n var item = new _file_system_item.default(pathInfo, file.name, false);\r\n var itemInfo = this._createFileInfo(item, parentDirectoryInfo);\r\n result.push(itemInfo)\r\n }\r\n return result\r\n };\r\n _proto.refresh = function() {\r\n var _this12 = this;\r\n if (this._lockRefresh) {\r\n return this._refreshDeferred\r\n }\r\n this._lockRefresh = true;\r\n return this._executeDataLoad(function() {\r\n return _this12._refreshDeferred = _this12._refreshInternal()\r\n }, \"refresh\")\r\n };\r\n _proto._refreshInternal = function() {\r\n var _this13 = this;\r\n var cachedRootInfo = {\r\n items: this._rootDirectoryInfo.items\r\n };\r\n var selectedKeyParts = this._getDirectoryPathKeyParts(this.getCurrentDirectory());\r\n this._resetDirectoryState(this._rootDirectoryInfo);\r\n return this._loadItemsRecursive(this._rootDirectoryInfo, cachedRootInfo).then(function() {\r\n var dirInfo = _this13._findDirectoryByPathKeyParts(selectedKeyParts);\r\n _this13.setCurrentDirectory(dirInfo);\r\n delete _this13._lockRefresh\r\n })\r\n };\r\n _proto._loadItemsRecursive = function(directoryInfo, cachedDirectoryInfo) {\r\n var _this14 = this;\r\n return this.getDirectories(directoryInfo).then(function(dirInfos) {\r\n var itemDeferreds = [];\r\n var _loop = function(i) {\r\n var cachedItem = (0, _array.find)(cachedDirectoryInfo.items, function(cache) {\r\n return dirInfos[i].fileItem.key === cache.fileItem.key\r\n });\r\n if (!cachedItem) {\r\n return \"continue\"\r\n }\r\n dirInfos[i].expanded = cachedItem.expanded;\r\n if (dirInfos[i].expanded) {\r\n itemDeferreds.push(_this14._loadItemsRecursive(dirInfos[i], cachedItem))\r\n }\r\n };\r\n for (var i = 0; i < dirInfos.length; i++) {\r\n var _ret = _loop(i);\r\n if (\"continue\" === _ret) {\r\n continue\r\n }\r\n }\r\n return (0, _uiFile_manager.whenSome)(itemDeferreds)\r\n }, function() {\r\n return null\r\n })\r\n };\r\n _proto._initialize = function() {\r\n var _this15 = this;\r\n var result = this._options.currentPathKeys && this._options.currentPathKeys.length ? this.setCurrentPathByKeys(this._options.currentPathKeys) : this.setCurrentPath(this._options.currentPath);\r\n var completeInitialization = function() {\r\n _this15._isInitialized = true;\r\n _this15._raiseInitialized()\r\n };\r\n if (result) {\r\n (0, _deferred.when)(result).always(completeInitialization)\r\n } else {\r\n completeInitialization()\r\n }\r\n };\r\n _proto._setCurrentDirectoryByPathParts = function(pathParts, useKeys) {\r\n var _this16 = this;\r\n return this._executeDataLoad(function() {\r\n return _this16._setCurrentDirectoryByPathPartsInternal(pathParts, useKeys)\r\n }, \"navigation\")\r\n };\r\n _proto._setCurrentDirectoryByPathPartsInternal = function(pathParts, useKeys) {\r\n var _this17 = this;\r\n return this._getDirectoryByPathParts(this._rootDirectoryInfo, pathParts, useKeys).then(function(directoryInfo) {\r\n for (var info = directoryInfo.parentDirectory; info; info = info.parentDirectory) {\r\n info.expanded = true\r\n }\r\n _this17.setCurrentDirectory(directoryInfo)\r\n })\r\n };\r\n _proto._executeDataLoad = function(action, operation) {\r\n var _this18 = this;\r\n this._dataLoading = true;\r\n this._dataLoadingDeferred = new _deferred.Deferred;\r\n if (this._isInitialized) {\r\n this._raiseDataLoading(operation)\r\n }\r\n return action().always(function() {\r\n _this18._dataLoadingDeferred.resolve();\r\n _this18._dataLoadingDeferred = null;\r\n _this18._dataLoading = false\r\n })\r\n };\r\n _proto._getDirectoryByPathParts = function(parentDirectoryInfo, pathParts, useKeys) {\r\n var _this19 = this;\r\n if (pathParts.length < 1) {\r\n return (new _deferred.Deferred).resolve(parentDirectoryInfo).promise()\r\n }\r\n var fieldName = useKeys ? \"key\" : \"name\";\r\n return this.getDirectories(parentDirectoryInfo).then(function(dirInfos) {\r\n var subDirInfo = (0, _array.find)(dirInfos, function(d) {\r\n return d.fileItem[fieldName] === pathParts[0]\r\n });\r\n if (!subDirInfo) {\r\n return (new _deferred.Deferred).reject().promise()\r\n }\r\n var restPathParts = _toConsumableArray(pathParts).splice(1);\r\n return _this19._getDirectoryByPathParts(subDirInfo, restPathParts, useKeys)\r\n })\r\n };\r\n _proto._getDirectoryPathKeyParts = function(directoryInfo) {\r\n var pathParts = [];\r\n while (directoryInfo && directoryInfo.parentDirectory) {\r\n pathParts.unshift(directoryInfo.fileItem.key);\r\n directoryInfo = directoryInfo.parentDirectory\r\n }\r\n return pathParts\r\n };\r\n _proto._findDirectoryByPathKeyParts = function(keyParts) {\r\n var selectedDirInfo = this._rootDirectoryInfo;\r\n if (0 === keyParts.length) {\r\n return selectedDirInfo\r\n }\r\n var i = 0;\r\n var newSelectedDir = selectedDirInfo;\r\n while (newSelectedDir && i < keyParts.length) {\r\n newSelectedDir = (0, _array.find)(selectedDirInfo.items, function(info) {\r\n return info.fileItem.key === keyParts[i]\r\n });\r\n if (newSelectedDir) {\r\n selectedDirInfo = newSelectedDir\r\n }\r\n i++\r\n }\r\n return selectedDirInfo\r\n };\r\n _proto._getActualDirectoryInfo = function(directoryInfo) {\r\n var keys = this._getDirectoryPathKeyParts(directoryInfo);\r\n return this._findDirectoryByPathKeyParts(keys)\r\n };\r\n _proto._createDirInfoByName = function(name, parentDirectoryInfo) {\r\n var dirPathInfo = this._getPathInfo(parentDirectoryInfo);\r\n var fileItem = new _file_system_item.default(dirPathInfo, name, true);\r\n return this._createDirectoryInfo(fileItem, parentDirectoryInfo)\r\n };\r\n _proto._createDirectoryInfo = function(fileItem, parentDirectoryInfo) {\r\n return (0, _extend.extend)(this._createFileInfo(fileItem, parentDirectoryInfo), {\r\n icon: \"folder\",\r\n expanded: fileItem.isRoot(),\r\n items: []\r\n })\r\n };\r\n _proto._createFileInfo = function(fileItem, parentDirectoryInfo) {\r\n return {\r\n fileItem: fileItem,\r\n parentDirectory: parentDirectoryInfo,\r\n icon: this._getFileItemDefaultIcon(fileItem),\r\n getInternalKey: function() {\r\n return \"FIK_\".concat(this.fileItem.key)\r\n },\r\n getDisplayName: function() {\r\n return this.displayName || this.fileItem.name\r\n }\r\n }\r\n };\r\n _proto._resetDirectoryState = function(directoryInfo, isActualDirectoryRequired) {\r\n if (isActualDirectoryRequired) {\r\n directoryInfo = this._getActualDirectoryInfo(directoryInfo)\r\n }\r\n directoryInfo.itemsLoaded = false;\r\n directoryInfo.items = []\r\n };\r\n _proto._getFileItemDefaultIcon = function(fileItem) {\r\n if (fileItem.isDirectory) {\r\n return \"folder\"\r\n }\r\n var extension = fileItem.getFileExtension();\r\n var icon = this._defaultIconMap[extension];\r\n return icon || \"doc\"\r\n };\r\n _proto._createDefaultIconMap = function() {\r\n var result = {\r\n \".txt\": \"txtfile\",\r\n \".rtf\": \"rtffile\",\r\n \".doc\": \"docfile\",\r\n \".docx\": \"docxfile\",\r\n \".xls\": \"xlsfile\",\r\n \".xlsx\": \"xlsxfile\",\r\n \".ppt\": \"pptfile\",\r\n \".pptx\": \"pptxfile\",\r\n \".pdf\": \"pdffile\"\r\n };\r\n [\".png\", \".gif\", \".jpg\", \".jpeg\", \".ico\", \".bmp\"].forEach(function(extension) {\r\n result[extension] = \"image\"\r\n });\r\n return result\r\n };\r\n _proto._createRootDirectoryInfo = function(text) {\r\n var rootDirectory = new _file_system_item.default(null, \"\", true);\r\n var result = this._createDirectoryInfo(rootDirectory, null);\r\n result.displayName = text || DEFAULT_ROOT_FILE_SYSTEM_ITEM_NAME;\r\n return result\r\n };\r\n _proto._raiseInitialized = function() {\r\n var e = {\r\n controller: this\r\n };\r\n if (this._options.onInitialized) {\r\n this._options.onInitialized(e)\r\n }\r\n };\r\n _proto._raiseDataLoading = function(operation) {\r\n if (this._options.onDataLoading) {\r\n this._options.onDataLoading({\r\n operation: operation\r\n })\r\n }\r\n };\r\n _proto._raiseSelectedDirectoryChanged = function(directoryInfo) {\r\n var e = {\r\n selectedDirectoryInfo: directoryInfo\r\n };\r\n if (this._options.onSelectedDirectoryChanged) {\r\n this._options.onSelectedDirectoryChanged(e)\r\n }\r\n };\r\n _proto._raiseEditActionStarting = function(actionInfo) {\r\n if (this._options.onEditActionStarting) {\r\n this._options.onEditActionStarting(actionInfo)\r\n }\r\n };\r\n _proto._raiseEditActionResultAcquired = function(actionInfo) {\r\n if (this._options.onEditActionResultAcquired) {\r\n this._options.onEditActionResultAcquired(actionInfo)\r\n }\r\n };\r\n _proto._raiseEditActionError = function(actionInfo, errorInfo) {\r\n if (this._options.onEditActionError) {\r\n this._options.onEditActionError(actionInfo, errorInfo)\r\n }\r\n };\r\n _proto._raiseEditActionItemError = function(actionInfo, errorInfo) {\r\n if (this._options.onEditActionItemError) {\r\n this._options.onEditActionItemError(actionInfo, errorInfo)\r\n }\r\n };\r\n _proto._raiseCompleteEditActionItem = function(actionInfo, info) {\r\n if (this._options.onCompleteEditActionItem) {\r\n this._options.onCompleteEditActionItem(actionInfo, info)\r\n }\r\n };\r\n _proto._raiseCompleteEditAction = function(actionInfo) {\r\n if (this._options.onCompleteEditAction) {\r\n this._options.onCompleteEditAction(actionInfo)\r\n }\r\n };\r\n _proto._resetState = function() {\r\n this._selectedDirectory = null;\r\n this._rootDirectoryInfo.items = [];\r\n this._loadedItems = {}\r\n };\r\n _proto._getPathInfo = function(directoryInfo) {\r\n var pathInfo = [];\r\n for (var dirInfo = directoryInfo; dirInfo && !dirInfo.fileItem.isRoot(); dirInfo = dirInfo.parentDirectory) {\r\n pathInfo.unshift({\r\n key: dirInfo.fileItem.key,\r\n name: dirInfo.fileItem.name\r\n })\r\n }\r\n return pathInfo\r\n };\r\n _proto.on = function(eventName, eventHandler) {\r\n var finalEventName = \"on\".concat(eventName);\r\n this._options[finalEventName] = eventHandler\r\n };\r\n return FileItemsController\r\n}();\r\nexports.default = FileItemsController;\r\nvar FileSecurityController = function() {\r\n function FileSecurityController(options) {\r\n var _this20 = this;\r\n var defaultOptions = {\r\n allowedFileExtensions: [],\r\n maxFileSize: 0\r\n };\r\n this._options = (0, _extend.extend)(defaultOptions, options);\r\n this._extensionsMap = {};\r\n this._allowedFileExtensions.forEach(function(extension) {\r\n _this20._extensionsMap[extension.toUpperCase()] = true\r\n })\r\n }\r\n var _proto2 = FileSecurityController.prototype;\r\n _proto2.getAllowedItems = function(items) {\r\n var _this21 = this;\r\n if (0 === this._allowedFileExtensions.length) {\r\n return items\r\n }\r\n return items.filter(function(item) {\r\n return item.isDirectory || _this21._isValidExtension(item.name)\r\n })\r\n };\r\n _proto2.validateExtension = function(name) {\r\n if (!this._isValidExtension(name)) {\r\n this._throwError(_errors.default.WrongFileExtension)\r\n }\r\n };\r\n _proto2.validateMaxFileSize = function(size) {\r\n if (this._maxFileSize && size > this._maxFileSize) {\r\n this._throwError(_errors.default.MaxFileSizeExceeded)\r\n }\r\n };\r\n _proto2._isValidExtension = function(name) {\r\n if (0 === this._allowedFileExtensions.length) {\r\n return true\r\n }\r\n var extension = (0, _utils.getFileExtension)(name).toUpperCase();\r\n return this._extensionsMap[extension]\r\n };\r\n _proto2._throwError = function(errorId) {\r\n throw {\r\n errorId: errorId\r\n }\r\n };\r\n _createClass(FileSecurityController, [{\r\n key: \"_allowedFileExtensions\",\r\n get: function() {\r\n return this._options.allowedFileExtensions\r\n }\r\n }, {\r\n key: \"_maxFileSize\",\r\n get: function() {\r\n return this._options.maxFileSize\r\n }\r\n }]);\r\n return FileSecurityController\r\n}();\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/drop_down_button.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _ui = _interopRequireDefault(require(\"./widget/ui.widget\"));\r\nvar _function_template = require(\"../core/templates/function_template\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _button_group = _interopRequireDefault(require(\"./button_group\"));\r\nvar _popup = _interopRequireDefault(require(\"./popup\"));\r\nvar _list = _interopRequireDefault(require(\"./list\"));\r\nvar _data = require(\"../core/utils/data\");\r\nvar _element = require(\"../core/element\");\r\nvar _icon = require(\"../core/utils/icon\");\r\nvar _data_helper = _interopRequireDefault(require(\"../data_helper\"));\r\nvar _data_source = require(\"../data/data_source/data_source\");\r\nvar _array_store = _interopRequireDefault(require(\"../data/array_store\"));\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _common = require(\"../core/utils/common\");\r\nvar _guid = _interopRequireDefault(require(\"../core/guid\"));\r\nvar _utils = require(\"./drop_down_editor/utils\");\r\nvar _message = _interopRequireDefault(require(\"../localization/message\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DROP_DOWN_BUTTON_CLASS = \"dx-dropdownbutton\";\r\nvar DROP_DOWN_BUTTON_CONTENT = \"dx-dropdownbutton-content\";\r\nvar DROP_DOWN_BUTTON_ACTION_CLASS = \"dx-dropdownbutton-action\";\r\nvar DROP_DOWN_BUTTON_TOGGLE_CLASS = \"dx-dropdownbutton-toggle\";\r\nvar DROP_DOWN_BUTTON_HAS_ARROW_CLASS = \"dx-dropdownbutton-has-arrow\";\r\nvar DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS = \"dx-dropdownbutton-popup-wrapper\";\r\nvar DX_BUTTON_TEXT_CLASS = \"dx-button-text\";\r\nvar DX_ICON_RIGHT_CLASS = \"dx-icon-right\";\r\nvar DropDownButton = _ui.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n itemTemplate: \"item\",\r\n keyExpr: \"this\",\r\n displayExpr: \"this\",\r\n selectedItem: null,\r\n selectedItemKey: null,\r\n stylingMode: \"outlined\",\r\n deferRendering: true,\r\n noDataText: _message.default.format(\"dxCollectionWidget-noDataText\"),\r\n useSelectMode: false,\r\n splitButton: false,\r\n showArrowIcon: true,\r\n text: \"\",\r\n icon: void 0,\r\n onButtonClick: null,\r\n onSelectionChanged: null,\r\n onItemClick: null,\r\n opened: false,\r\n items: null,\r\n dataSource: null,\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n dropDownOptions: {},\r\n dropDownContentTemplate: \"content\",\r\n wrapItemText: false,\r\n grouped: false,\r\n groupTemplate: \"group\",\r\n buttonGroupOptions: {}\r\n })\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._optionsByReference, {\r\n selectedItem: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._createItemClickAction();\r\n this._createActionClickAction();\r\n this._createSelectionChangedAction();\r\n this._initDataSource();\r\n this._compileKeyGetter();\r\n this._compileDisplayGetter();\r\n this._itemsToDataSource(this.option(\"items\"));\r\n this._options.cache(\"buttonGroupOptions\", this.option(\"buttonGroupOptions\"));\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"))\r\n },\r\n _initTemplates: function() {\r\n var _this = this;\r\n this._templateManager.addDefaultTemplates({\r\n content: new _function_template.FunctionTemplate(function(options) {\r\n var $popupContent = (0, _renderer.default)(options.container);\r\n var $listContainer = (0, _renderer.default)(\"
\").appendTo($popupContent);\r\n _this._list = _this._createComponent($listContainer, _list.default, _this._listOptions());\r\n _this._list.registerKeyHandler(\"escape\", _this._escHandler.bind(_this));\r\n _this._list.registerKeyHandler(\"tab\", _this._escHandler.bind(_this));\r\n _this._list.registerKeyHandler(\"leftArrow\", _this._escHandler.bind(_this));\r\n _this._list.registerKeyHandler(\"rightArrow\", _this._escHandler.bind(_this))\r\n })\r\n });\r\n this.callBase()\r\n },\r\n _itemsToDataSource: function(value) {\r\n if (!this._dataSource) {\r\n this._dataSource = new _data_source.DataSource({\r\n store: new _array_store.default({\r\n key: this._getKey(),\r\n data: value\r\n }),\r\n pageSize: 0\r\n })\r\n }\r\n },\r\n _getKey: function() {\r\n var _this$_dataSource;\r\n var keyExpr = this.option(\"keyExpr\");\r\n var storeKey = null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : _this$_dataSource.key();\r\n return (0, _type.isDefined)(storeKey) && (!(0, _type.isDefined)(keyExpr) || \"this\" === keyExpr) ? storeKey : keyExpr\r\n },\r\n _compileKeyGetter: function() {\r\n this._keyGetter = (0, _data.compileGetter)(this._getKey())\r\n },\r\n _compileDisplayGetter: function() {\r\n this._displayGetter = (0, _data.compileGetter)(this.option(\"displayExpr\"))\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_BUTTON_CLASS);\r\n this._renderButtonGroup();\r\n this._updateArrowClass();\r\n if ((0, _type.isDefined)(this.option(\"selectedItemKey\"))) {\r\n this._loadSelectedItem().done(this._updateActionButton.bind(this))\r\n }\r\n },\r\n _renderFocusTarget: _common.noop,\r\n _render: function() {\r\n if (!this.option(\"deferRendering\") || this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n this.callBase()\r\n },\r\n _renderContentImpl: function() {\r\n if (this._popup) {\r\n this._renderPopupContent()\r\n }\r\n return this.callBase()\r\n },\r\n _loadSelectedItem: function() {\r\n var d = new _deferred.Deferred;\r\n if (this._list && void 0 !== this._lastSelectedItemData) {\r\n var cachedResult = this.option(\"useSelectMode\") ? this._list.option(\"selectedItem\") : this._lastSelectedItemData;\r\n return d.resolve(cachedResult)\r\n }\r\n this._lastSelectedItemData = void 0;\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._loadSingle(this._getKey(), selectedItemKey).done(d.resolve).fail(function() {\r\n d.resolve(null)\r\n });\r\n return d.promise()\r\n },\r\n _createActionClickAction: function() {\r\n this._actionClickAction = this._createActionByOption(\"onButtonClick\")\r\n },\r\n _createSelectionChangedAction: function() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\")\r\n },\r\n _createItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _fireSelectionChangedAction: function(_ref) {\r\n var previousValue = _ref.previousValue,\r\n value = _ref.value;\r\n this._selectionChangedAction({\r\n item: value,\r\n previousItem: previousValue\r\n })\r\n },\r\n _fireItemClickAction: function(_ref2) {\r\n var event = _ref2.event,\r\n itemElement = _ref2.itemElement,\r\n itemData = _ref2.itemData;\r\n return this._itemClickAction({\r\n event: event,\r\n itemElement: itemElement,\r\n itemData: this._actionItem || itemData\r\n })\r\n },\r\n _actionButtonConfig: function() {\r\n return {\r\n text: this.option(\"text\"),\r\n icon: this.option(\"icon\"),\r\n elementAttr: {\r\n \"class\": DROP_DOWN_BUTTON_ACTION_CLASS\r\n }\r\n }\r\n },\r\n _getButtonGroupItems: function() {\r\n var items = [];\r\n items.push(this._actionButtonConfig());\r\n if (this.option(\"splitButton\")) {\r\n items.push({\r\n icon: \"spindown\",\r\n elementAttr: {\r\n \"class\": DROP_DOWN_BUTTON_TOGGLE_CLASS\r\n }\r\n })\r\n }\r\n return items\r\n },\r\n _buttonGroupItemClick: function(_ref3) {\r\n var event = _ref3.event,\r\n itemData = _ref3.itemData;\r\n var isActionButton = itemData.elementAttr.class === DROP_DOWN_BUTTON_ACTION_CLASS;\r\n var isToggleButton = itemData.elementAttr.class === DROP_DOWN_BUTTON_TOGGLE_CLASS;\r\n if (isToggleButton) {\r\n this.toggle()\r\n } else {\r\n if (isActionButton) {\r\n this._actionClickAction({\r\n event: event,\r\n selectedItem: this.option(\"selectedItem\")\r\n });\r\n if (!this.option(\"splitButton\")) {\r\n this.toggle()\r\n }\r\n }\r\n }\r\n },\r\n _buttonGroupOptions: function() {\r\n var _this2 = this;\r\n return (0, _extend.extend)({\r\n items: this._getButtonGroupItems(),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n onItemClick: this._buttonGroupItemClick.bind(this),\r\n width: \"100%\",\r\n height: \"100%\",\r\n stylingMode: this.option(\"stylingMode\"),\r\n selectionMode: \"none\",\r\n tabIndex: this.option(\"tabIndex\"),\r\n onKeyboardHandled: function(e) {\r\n return _this2._keyboardHandler(e)\r\n },\r\n buttonTemplate: function(_ref4, buttonContent) {\r\n var text = _ref4.text,\r\n icon = _ref4.icon;\r\n if (_this2.option(\"splitButton\") || !_this2.option(\"showArrowIcon\")) {\r\n return \"content\"\r\n }\r\n var $firstIcon = (0, _icon.getImageContainer)(icon);\r\n var $textContainer = text ? (0, _renderer.default)(\"\").text(text).addClass(DX_BUTTON_TEXT_CLASS) : void 0;\r\n var $secondIcon = (0, _icon.getImageContainer)(\"spindown\").addClass(DX_ICON_RIGHT_CLASS);\r\n (0, _renderer.default)(buttonContent).append($firstIcon, $textContainer, $secondIcon)\r\n }\r\n }, this._options.cache(\"buttonGroupOptions\"))\r\n },\r\n _renderPopupContent: function() {\r\n var $content = this._popup.$content();\r\n var template = this._getTemplateByOption(\"dropDownContentTemplate\");\r\n $content.empty();\r\n this._popupContentId = \"dx-\" + new _guid.default;\r\n this.setAria(\"id\", this._popupContentId, $content);\r\n return template.render({\r\n container: (0, _element.getPublicElement)($content),\r\n model: this.option(\"items\") || this._dataSource\r\n })\r\n },\r\n _popupOptions: function() {\r\n var _this3 = this;\r\n var horizontalAlignment = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n return (0, _extend.extend)({\r\n dragEnabled: false,\r\n focusStateEnabled: false,\r\n deferRendering: this.option(\"deferRendering\"),\r\n closeOnOutsideClick: function(e) {\r\n var $element = _this3.$element();\r\n var $buttonClicked = (0, _renderer.default)(e.target).closest(\".\".concat(DROP_DOWN_BUTTON_CLASS));\r\n return !$buttonClicked.is($element)\r\n },\r\n showTitle: false,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 0,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n width: function() {\r\n return (0, _utils.getElementWidth)(_this3.$element())\r\n },\r\n height: \"auto\",\r\n shading: false,\r\n position: {\r\n of: this.$element(),\r\n collision: \"flipfit\",\r\n my: horizontalAlignment + \" top\",\r\n at: horizontalAlignment + \" bottom\"\r\n }\r\n }, this._options.cache(\"dropDownOptions\"), {\r\n visible: this.option(\"opened\")\r\n })\r\n },\r\n _listOptions: function() {\r\n var _this4 = this;\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n var useSelectMode = this.option(\"useSelectMode\");\r\n return {\r\n selectionMode: useSelectMode ? \"single\" : \"none\",\r\n wrapItemText: this.option(\"wrapItemText\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n showItemDataTitle: true,\r\n onContentReady: function() {\r\n return _this4._fireContentReadyAction()\r\n },\r\n selectedItemKeys: (0, _type.isDefined)(selectedItemKey) && useSelectMode ? [selectedItemKey] : [],\r\n grouped: this.option(\"grouped\"),\r\n groupTemplate: this.option(\"groupTemplate\"),\r\n keyExpr: this._getKey(),\r\n noDataText: this.option(\"noDataText\"),\r\n displayExpr: this.option(\"displayExpr\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n items: this.option(\"items\"),\r\n dataSource: this._dataSource,\r\n onItemClick: function(e) {\r\n if (!_this4.option(\"useSelectMode\")) {\r\n _this4._lastSelectedItemData = e.itemData\r\n }\r\n _this4.option(\"selectedItemKey\", _this4._keyGetter(e.itemData));\r\n var actionResult = _this4._fireItemClickAction(e);\r\n if (false !== actionResult) {\r\n _this4.toggle(false);\r\n _this4._buttonGroup.focus()\r\n }\r\n }\r\n }\r\n },\r\n _upDownKeyHandler: function() {\r\n if (this._popup && this._popup.option(\"visible\") && this._list) {\r\n this._list.focus()\r\n } else {\r\n this.open()\r\n }\r\n return true\r\n },\r\n _escHandler: function() {\r\n this.close();\r\n this._buttonGroup.focus();\r\n return true\r\n },\r\n _tabHandler: function() {\r\n this.close();\r\n return true\r\n },\r\n _renderPopup: function() {\r\n var $popup = (0, _renderer.default)(\"
\");\r\n this.$element().append($popup);\r\n this._popup = this._createComponent($popup, _popup.default, this._popupOptions());\r\n this._popup.$content().addClass(DROP_DOWN_BUTTON_CONTENT);\r\n this._popup._wrapper().addClass(DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS);\r\n this._popup.on(\"hiding\", this._popupHidingHandler.bind(this));\r\n this._popup.on(\"showing\", this._popupShowingHandler.bind(this));\r\n this._bindInnerWidgetOptions(this._popup, \"dropDownOptions\")\r\n },\r\n _popupHidingHandler: function() {\r\n this.option(\"opened\", false);\r\n this.setAria({\r\n expanded: false,\r\n owns: void 0\r\n })\r\n },\r\n _popupOptionChanged: function(args) {\r\n var options = _ui.default.getOptionsFromContainer(args);\r\n this._setPopupOption(options);\r\n var optionsKeys = Object.keys(options);\r\n if (optionsKeys.indexOf(\"width\") !== -1 || optionsKeys.indexOf(\"height\") !== -1) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n var _this5 = this;\r\n var popupWidth = (0, _utils.getSizeValue)(this.option(\"dropDownOptions.width\"));\r\n if (void 0 === popupWidth) {\r\n this._setPopupOption(\"width\", function() {\r\n return (0, _utils.getElementWidth)(_this5.$element())\r\n })\r\n }\r\n },\r\n _setPopupOption: function(optionName, value) {\r\n this._setWidgetOption(\"_popup\", arguments)\r\n },\r\n _popupShowingHandler: function() {\r\n this.option(\"opened\", true);\r\n this.setAria({\r\n expanded: true,\r\n owns: this._popupContentId\r\n })\r\n },\r\n _renderButtonGroup: function() {\r\n var $buttonGroup = this._buttonGroup && this._buttonGroup.$element() || (0, _renderer.default)(\"
\");\r\n if (!this._buttonGroup) {\r\n this.$element().append($buttonGroup)\r\n }\r\n this._buttonGroup = this._createComponent($buttonGroup, _button_group.default, this._buttonGroupOptions());\r\n this._buttonGroup.registerKeyHandler(\"downArrow\", this._upDownKeyHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"tab\", this._tabHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"upArrow\", this._upDownKeyHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"escape\", this._escHandler.bind(this));\r\n this._bindInnerWidgetOptions(this._buttonGroup, \"buttonGroupOptions\")\r\n },\r\n _updateArrowClass: function() {\r\n var hasArrow = this.option(\"splitButton\") || this.option(\"showArrowIcon\");\r\n this.$element().toggleClass(DROP_DOWN_BUTTON_HAS_ARROW_CLASS, hasArrow)\r\n },\r\n toggle: function(visible) {\r\n if (!this._popup) {\r\n this._renderPopup();\r\n this._renderContent()\r\n }\r\n return this._popup.toggle(visible)\r\n },\r\n open: function() {\r\n return this.toggle(true)\r\n },\r\n close: function() {\r\n return this.toggle(false)\r\n },\r\n _setListOption: function(name, value) {\r\n this._list && this._list.option(name, value)\r\n },\r\n _getDisplayValue: function(item) {\r\n var isPrimitiveItem = !(0, _type.isPlainObject)(item);\r\n var displayValue = isPrimitiveItem ? item : this._displayGetter(item);\r\n return !(0, _type.isPlainObject)(displayValue) ? String((0, _common.ensureDefined)(displayValue, \"\")) : \"\"\r\n },\r\n _updateActionButton: function(selectedItem) {\r\n if (this.option(\"useSelectMode\")) {\r\n this.option({\r\n text: this._getDisplayValue(selectedItem),\r\n icon: (0, _type.isPlainObject)(selectedItem) ? selectedItem.icon : void 0\r\n })\r\n }\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem);\r\n this._setOptionWithoutOptionChange(\"selectedItemKey\", this._keyGetter(selectedItem))\r\n },\r\n _clean: function() {\r\n this._list && this._list.$element().remove();\r\n this._popup && this._popup.$element().remove()\r\n },\r\n _selectedItemKeyChanged: function(value) {\r\n var _this6 = this;\r\n this._setListOption(\"selectedItemKeys\", this.option(\"useSelectMode\") && (0, _type.isDefined)(value) ? [value] : []);\r\n var previousItem = this.option(\"selectedItem\");\r\n this._loadSelectedItem().done(function(selectedItem) {\r\n _this6._updateActionButton(selectedItem);\r\n if (_this6._displayGetter(previousItem) !== _this6._displayGetter(selectedItem)) {\r\n _this6._fireSelectionChangedAction({\r\n previousValue: previousItem,\r\n value: selectedItem\r\n })\r\n }\r\n })\r\n },\r\n _actionButtonOptionChanged: function(_ref5) {\r\n var name = _ref5.name,\r\n value = _ref5.value;\r\n var newConfig = {};\r\n newConfig[name] = value;\r\n this._buttonGroup.option(\"items[0]\", (0, _extend.extend)({}, this._actionButtonConfig(), newConfig));\r\n this._popup && this._popup.repaint()\r\n },\r\n _selectModeChanged: function(value) {\r\n if (value) {\r\n this._setListOption(\"selectionMode\", \"single\");\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._setListOption(\"selectedItemKeys\", (0, _type.isDefined)(selectedItemKey) ? [selectedItemKey] : [])\r\n } else {\r\n this._setListOption(\"selectionMode\", \"none\");\r\n this.option({\r\n selectedItemKey: void 0,\r\n selectedItem: void 0\r\n })\r\n }\r\n },\r\n _updateItemCollection: function(optionName) {\r\n var _this7 = this;\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._setListOption(\"selectedItem\", null);\r\n this._setWidgetOption(\"_list\", [optionName]);\r\n if ((0, _type.isDefined)(selectedItemKey)) {\r\n this._loadSelectedItem().done(function(selectedItem) {\r\n _this7._setListOption(\"selectedItemKeys\", [selectedItemKey]);\r\n _this7._setListOption(\"selectedItem\", selectedItem)\r\n }).fail(function(error) {\r\n _this7._setListOption(\"selectedItemKeys\", [])\r\n }).always(this._updateActionButton.bind(this))\r\n }\r\n },\r\n _updateDataSource: function() {\r\n var items = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._dataSource.items();\r\n this._dataSource = void 0;\r\n this._itemsToDataSource(items);\r\n this._updateKeyExpr()\r\n },\r\n _updateKeyExpr: function() {\r\n this._compileKeyGetter();\r\n this._setListOption(\"keyExpr\", this._getKey())\r\n },\r\n focus: function() {\r\n this._buttonGroup.focus()\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_popup;\r\n var name = args.name,\r\n value = args.value;\r\n switch (name) {\r\n case \"useSelectMode\":\r\n this._selectModeChanged(value);\r\n break;\r\n case \"splitButton\":\r\n this._updateArrowClass();\r\n this._renderButtonGroup();\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._setListOption(name, value);\r\n this._updateActionButton(this.option(\"selectedItem\"));\r\n break;\r\n case \"keyExpr\":\r\n this._updateDataSource();\r\n break;\r\n case \"buttonGroupOptions\":\r\n this._innerWidgetOptionChanged(this._buttonGroup, args);\r\n break;\r\n case \"dropDownOptions\":\r\n if (\"dropDownOptions.visible\" === args.fullName) {\r\n break\r\n }\r\n if (void 0 !== args.value.visible) {\r\n delete args.value.visible\r\n }\r\n this._popupOptionChanged(args);\r\n this._innerWidgetOptionChanged(this._popup, args);\r\n break;\r\n case \"opened\":\r\n this.toggle(value);\r\n break;\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n this._setListOption(name, value);\r\n this._buttonGroup.option(name, value);\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n this._updateDataSource(this.option(\"items\"));\r\n this._updateItemCollection(name);\r\n break;\r\n case \"dataSource\":\r\n if (Array.isArray(value)) {\r\n this._updateDataSource(this.option(\"dataSource\"))\r\n } else {\r\n this._initDataSource();\r\n this._updateKeyExpr()\r\n }\r\n this._updateItemCollection(name);\r\n break;\r\n case \"icon\":\r\n case \"text\":\r\n this._actionButtonOptionChanged(args);\r\n break;\r\n case \"showArrowIcon\":\r\n this._updateArrowClass();\r\n this._buttonGroup.repaint();\r\n this._popup && this._popup.repaint();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.repaint();\r\n break;\r\n case \"stylingMode\":\r\n this._buttonGroup.option(name, value);\r\n break;\r\n case \"itemTemplate\":\r\n case \"grouped\":\r\n case \"noDataText\":\r\n case \"groupTemplate\":\r\n case \"wrapItemText\":\r\n this._setListOption(name, value);\r\n break;\r\n case \"dropDownContentTemplate\":\r\n this._renderContent();\r\n break;\r\n case \"selectedItemKey\":\r\n this._selectedItemKeyChanged(value);\r\n break;\r\n case \"selectedItem\":\r\n break;\r\n case \"onItemClick\":\r\n this._createItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._createActionClickAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._createSelectionChangedAction();\r\n break;\r\n case \"deferRendering\":\r\n this.toggle(this.option(\"opened\"));\r\n break;\r\n case \"tabIndex\":\r\n this._buttonGroup.option(name, value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(_data_helper.default);\r\n(0, _component_registrator.default)(\"dxDropDownButton\", DropDownButton);\r\nvar _default = DropDownButton;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.row_dragging.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _sortable = _interopRequireDefault(require(\"../sortable\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar COMMAND_HANDLE_CLASS = \"dx-command-drag\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar HANDLE_ICON_CLASS = \"drag-icon\";\r\nvar ROWS_VIEW = \"rowsview\";\r\nvar SORTABLE_WITHOUT_HANDLE_CLASS = \"dx-sortable-without-handle\";\r\nvar RowDraggingExtender = {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateHandleColumn()\r\n },\r\n _allowReordering: function() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n return !!(rowDragging && (rowDragging.allowReordering || rowDragging.allowDropInsideItem || rowDragging.group))\r\n },\r\n _updateHandleColumn: function() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n var allowReordering = this._allowReordering();\r\n var columnsController = this._columnsController;\r\n var isHandleColumnVisible = allowReordering && rowDragging.showDragIcons;\r\n columnsController && columnsController.addCommandColumn({\r\n type: \"drag\",\r\n command: \"drag\",\r\n visibleIndex: -2,\r\n alignment: \"center\",\r\n cssClass: COMMAND_HANDLE_CLASS,\r\n width: \"auto\",\r\n cellTemplate: this._getHandleTemplate(),\r\n visible: isHandleColumnVisible\r\n });\r\n columnsController.columnOption(\"type:drag\", \"visible\", isHandleColumnVisible)\r\n },\r\n _renderContent: function() {\r\n var _this = this;\r\n var rowDragging = this.option(\"rowDragging\");\r\n var allowReordering = this._allowReordering();\r\n var $content = this.callBase.apply(this, arguments);\r\n var isFixedTableRendering = this._isFixedTableRendering;\r\n var sortableName = \"_sortable\";\r\n var sortableFixedName = \"_sortableFixed\";\r\n var currentSortableName = isFixedTableRendering ? sortableFixedName : sortableName;\r\n var anotherSortableName = isFixedTableRendering ? sortableName : sortableFixedName;\r\n var togglePointerEventsStyle = function(toggle) {\r\n var _this$sortableFixedNa;\r\n null === (_this$sortableFixedNa = _this[sortableFixedName]) || void 0 === _this$sortableFixedNa ? void 0 : _this$sortableFixedNa.$element().css(\"pointerEvents\", toggle ? \"auto\" : \"\")\r\n };\r\n if ((allowReordering || this[currentSortableName]) && $content.length) {\r\n this[currentSortableName] = this._createComponent($content, _sortable.default, (0, _extend.extend)({\r\n component: this.component,\r\n contentTemplate: null,\r\n filter: \"> table > tbody > .dx-row:not(.dx-freespace-row):not(.dx-virtual-row)\",\r\n dragTemplate: this._getDraggableRowTemplate(),\r\n handle: rowDragging.showDragIcons && \".\".concat(COMMAND_HANDLE_CLASS),\r\n dropFeedbackMode: \"indicate\"\r\n }, rowDragging, {\r\n onDragStart: function(e) {\r\n var _rowDragging$onDragSt;\r\n var row = e.component.getVisibleRows()[e.fromIndex];\r\n e.itemData = row && row.data;\r\n var isDataRow = row && \"data\" === row.rowType;\r\n e.cancel = !allowReordering || !isDataRow;\r\n null === (_rowDragging$onDragSt = rowDragging.onDragStart) || void 0 === _rowDragging$onDragSt ? void 0 : _rowDragging$onDragSt.call(rowDragging, e)\r\n },\r\n onDragEnter: function() {\r\n togglePointerEventsStyle(true)\r\n },\r\n onDragLeave: function() {\r\n togglePointerEventsStyle(false)\r\n },\r\n onDragEnd: function(e) {\r\n var _rowDragging$onDragEn;\r\n togglePointerEventsStyle(false);\r\n null === (_rowDragging$onDragEn = rowDragging.onDragEnd) || void 0 === _rowDragging$onDragEn ? void 0 : _rowDragging$onDragEn.call(rowDragging, e)\r\n },\r\n dropFeedbackMode: _browser.default.msie ? \"indicate\" : rowDragging.dropFeedbackMode,\r\n onOptionChanged: function(e) {\r\n var hasFixedSortable = _this[sortableFixedName];\r\n if (hasFixedSortable) {\r\n if (\"fromIndex\" === e.name || \"toIndex\" === e.name) {\r\n _this[anotherSortableName].option(e.name, e.value)\r\n }\r\n }\r\n }\r\n }));\r\n $content.toggleClass(SORTABLE_WITHOUT_HANDLE_CLASS, allowReordering && !rowDragging.showDragIcons)\r\n }\r\n return $content\r\n },\r\n _resizeCore: function() {\r\n this.callBase.apply(this, arguments);\r\n var offset = this._dataController.getRowIndexOffset();\r\n [this._sortable, this._sortableFixed].forEach(function(sortable) {\r\n null === sortable || void 0 === sortable ? void 0 : sortable.option(\"offset\", offset);\r\n null === sortable || void 0 === sortable ? void 0 : sortable.update()\r\n })\r\n },\r\n _getDraggableGridOptions: function(options) {\r\n var gridOptions = this.option();\r\n var columns = this.getColumns();\r\n var $rowElement = (0, _renderer.default)(this.getRowElement(options.rowIndex));\r\n return {\r\n dataSource: [{\r\n id: 1,\r\n parentId: 0\r\n }],\r\n showBorders: true,\r\n showColumnHeaders: false,\r\n scrolling: {\r\n useNative: false,\r\n showScrollbar: false\r\n },\r\n pager: {\r\n visible: false\r\n },\r\n loadingTimeout: void 0,\r\n columnFixing: gridOptions.columnFixing,\r\n columnAutoWidth: gridOptions.columnAutoWidth,\r\n showColumnLines: gridOptions.showColumnLines,\r\n columns: columns.map(function(column) {\r\n return {\r\n width: column.width || column.visibleWidth,\r\n fixed: column.fixed,\r\n fixedPosition: column.fixedPosition\r\n }\r\n }),\r\n onRowPrepared: function(e) {\r\n var rowsView = e.component.getView(\"rowsView\");\r\n (0, _renderer.default)(e.rowElement).replaceWith($rowElement.eq(rowsView._isFixedTableRendering ? 1 : 0).clone())\r\n }\r\n }\r\n },\r\n _getDraggableRowTemplate: function() {\r\n var _this2 = this;\r\n return function(options) {\r\n var $rootElement = _this2.component.$element();\r\n var $dataGridContainer = (0, _renderer.default)(\"
\").width($rootElement.width());\r\n var items = _this2._dataController.items();\r\n var row = items && items[options.fromIndex];\r\n var gridOptions = _this2._getDraggableGridOptions(row);\r\n _this2._createComponent($dataGridContainer, _this2.component.NAME, gridOptions);\r\n $dataGridContainer.find(\".dx-gridbase-container\").children(\":not(.\".concat(_this2.addWidgetPrefix(ROWS_VIEW), \")\")).hide();\r\n return $dataGridContainer\r\n }\r\n },\r\n _getHandleTemplate: function() {\r\n var _this3 = this;\r\n return function(container, options) {\r\n if (\"data\" === options.rowType) {\r\n (0, _renderer.default)(container).addClass(CELL_FOCUS_DISABLED_CLASS);\r\n return (0, _renderer.default)(\"\").addClass(_this3.addWidgetPrefix(HANDLE_ICON_CLASS))\r\n } else {\r\n _uiGrid_core.default.setEmptyText((0, _renderer.default)(container))\r\n }\r\n }\r\n },\r\n optionChanged: function(args) {\r\n if (\"rowDragging\" === args.name) {\r\n this._updateHandleColumn();\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n};\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n rowDragging: {\r\n showDragIcons: true,\r\n dropFeedbackMode: \"indicate\",\r\n allowReordering: false,\r\n allowDropInsideItem: false\r\n }\r\n }\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: RowDraggingExtender\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.pager.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _pager = _interopRequireDefault(require(\"../pager\"));\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _window = require(\"../../core/utils/window\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar PAGER_CLASS = \"pager\";\r\nvar MAX_PAGES_COUNT = 10;\r\nvar getPageIndex = function(dataController) {\r\n return 1 + (parseInt(dataController.pageIndex()) || 0)\r\n};\r\nvar PagerView = _uiGrid_core.default.View.inherit({\r\n init: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that._isVisible = false;\r\n dataController.changed.add(function(e) {\r\n if (e && e.repaintChangesOnly) {\r\n var pager = that._getPager();\r\n if (pager) {\r\n pager.option({\r\n pageIndex: getPageIndex(dataController),\r\n pageSize: dataController.pageSize(),\r\n pageCount: dataController.pageCount(),\r\n totalCount: dataController.totalCount(),\r\n hasKnownLastPage: dataController.hasKnownLastPage()\r\n })\r\n } else {\r\n that.render()\r\n }\r\n } else {\r\n if (!e || \"update\" !== e.changeType && \"updateSelection\" !== e.changeType) {\r\n that.render()\r\n }\r\n }\r\n })\r\n },\r\n _getPager: function() {\r\n var $element = this.element();\r\n return $element && $element.data(\"dxPager\")\r\n },\r\n _renderCore: function() {\r\n var that = this;\r\n var $element = that.element().addClass(that.addWidgetPrefix(PAGER_CLASS));\r\n var pagerOptions = that.option(\"pager\") || {};\r\n var dataController = that.getController(\"data\");\r\n var keyboardController = that.getController(\"keyboardNavigation\");\r\n var options = {\r\n maxPagesCount: MAX_PAGES_COUNT,\r\n pageIndex: getPageIndex(dataController),\r\n pageCount: dataController.pageCount(),\r\n pageSize: dataController.pageSize(),\r\n showPageSizes: pagerOptions.showPageSizeSelector,\r\n showInfo: pagerOptions.showInfo,\r\n displayMode: pagerOptions.displayMode,\r\n pagesNavigatorVisible: pagerOptions.visible,\r\n showNavigationButtons: pagerOptions.showNavigationButtons,\r\n pageSizes: that.getPageSizes(),\r\n totalCount: dataController.totalCount(),\r\n hasKnownLastPage: dataController.hasKnownLastPage(),\r\n pageIndexChanged: function(pageIndex) {\r\n if (dataController.pageIndex() !== pageIndex - 1) {\r\n setTimeout(function() {\r\n dataController.pageIndex(pageIndex - 1)\r\n })\r\n }\r\n },\r\n pageSizeChanged: function(pageSize) {\r\n setTimeout(function() {\r\n dataController.pageSize(pageSize)\r\n })\r\n },\r\n onKeyDown: function(e) {\r\n return keyboardController && keyboardController.executeAction(\"onKeyDown\", e)\r\n },\r\n useLegacyKeyboardNavigation: this.option(\"useLegacyKeyboardNavigation\"),\r\n useKeyboard: this.option(\"keyboardNavigation.enabled\")\r\n };\r\n if ((0, _type.isDefined)(pagerOptions.infoText)) {\r\n options.infoText = pagerOptions.infoText\r\n }\r\n that._createComponent($element, _pager.default, options)\r\n },\r\n getPageSizes: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n var pagerOptions = that.option(\"pager\");\r\n var allowedPageSizes = pagerOptions && pagerOptions.allowedPageSizes;\r\n var pageSize = dataController.pageSize();\r\n if (!(0, _type.isDefined)(that._pageSizes) || (0, _array.inArray)(pageSize, that._pageSizes) === -1) {\r\n that._pageSizes = [];\r\n if (pagerOptions) {\r\n if (Array.isArray(allowedPageSizes)) {\r\n that._pageSizes = allowedPageSizes\r\n } else {\r\n if (allowedPageSizes && pageSize > 1) {\r\n that._pageSizes = [Math.floor(pageSize / 2), pageSize, 2 * pageSize]\r\n }\r\n }\r\n }\r\n }\r\n return that._pageSizes\r\n },\r\n isVisible: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n var pagerOptions = that.option(\"pager\");\r\n var pagerVisible = pagerOptions && pagerOptions.visible;\r\n var scrolling = that.option(\"scrolling\");\r\n if (that._isVisible) {\r\n return true\r\n }\r\n if (\"auto\" === pagerVisible) {\r\n if (scrolling && (\"virtual\" === scrolling.mode || \"infinite\" === scrolling.mode)) {\r\n pagerVisible = false\r\n } else {\r\n pagerVisible = dataController.pageCount() > 1 || dataController.isLoaded() && !dataController.hasKnownLastPage()\r\n }\r\n }\r\n that._isVisible = pagerVisible;\r\n return pagerVisible\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n var name = args.name;\r\n var isPager = \"pager\" === name;\r\n var isPaging = \"paging\" === name;\r\n var isDataSource = \"dataSource\" === name;\r\n var isScrolling = \"scrolling\" === name;\r\n var dataController = that.getController(\"data\");\r\n if (isPager || isPaging || isScrolling || isDataSource) {\r\n args.handled = true;\r\n if (dataController.skipProcessingPagingChange(args.fullName)) {\r\n return\r\n }\r\n if (isPager || isPaging) {\r\n that._pageSizes = null\r\n }\r\n if (isPager || isPaging || isScrolling) {\r\n that._isVisible = false\r\n }\r\n if (!isDataSource) {\r\n that._invalidate();\r\n if ((0, _window.hasWindow)() && isPager && that.component) {\r\n that.component.resize()\r\n }\r\n }\r\n }\r\n }\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n pager: {\r\n visible: \"auto\",\r\n showPageSizeSelector: false,\r\n allowedPageSizes: \"auto\"\r\n }\r\n }\r\n },\r\n views: {\r\n pagerView: PagerView\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}},[_c('div',{staticStyle:{\"margin-right\":\"5px\",\"margin-left\":\"5px\"}},[(_vm.collaborativeAreaId != undefined)?_c('v-card-text',{staticClass:\"form-template\"},[_c('v-toolbar',{staticClass:\"toolbar-devExtreme-table\",staticStyle:{\"margin-top\":\"-10px\",\"margin-bottom\":\"-10px\"}},[_c('v-toolbar-title',{staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.goToAreaHome()}}},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.collaborativeArea.name)+\" \")])]),_c('v-btn',{staticStyle:{\"width\":\"50px\",\"height\":\"50px\"},attrs:{\"fab\":\"\",\"dark\":\"\",\"absolute\":\"\",\"right\":\"\"},on:{\"click\":function($event){return _vm.backToHome()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")])],1)],1)],1):_vm._e()],1),_c('v-card-text',[_c('DxFileManager',{ref:\"fileManager\",staticStyle:{\"margin-right\":\"-10px\",\"margin-left\":\"-10px\"},attrs:{\"id\":\"fileManager\",\"file-system-provider\":_vm.remoteProvider,\"height\":_vm.height,\"current-path\":_vm.currentPath}},[_c('DxUpload',{attrs:{\"chunk-size\":200000000,\"max-file-size\":200000000}}),_c('DxItemView',{attrs:{\"mode\":\"thumbnails\",\"show-parent-folder\":false}}),_c('DxPermissions',{attrs:{\"create\":true,\"copy\":false,\"move\":true,\"delete\":true,\"rename\":false,\"upload\":true,\"download\":true}})],1),(_vm.collaborativeAreaId == undefined)?_c('v-btn',{staticClass:\"mt-5\",attrs:{\"fab\":\"\",\"dark\":\"\",\"absolute\":\"\",\"right\":\"\"},on:{\"click\":function($event){return _vm.backToHome()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")])],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./fileManager.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./fileManager.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./fileManager.html?vue&type=template&id=e207bd1c&scoped=true&\"\nimport script from \"./fileManager.ts?vue&type=script&lang=js&\"\nexport * from \"./fileManager.ts?vue&type=script&lang=js&\"\nimport style0 from \"./fileManager.scss?vue&type=style&index=0&id=e207bd1c&scoped=true&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 \"e207bd1c\",\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 { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCardText,VIcon,VToolbar,VToolbarTitle})\n","var global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar RangeError = global.RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.summary.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.FooterView = exports.renderSummaryCell = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _uiData_grid2 = _interopRequireDefault(require(\"./ui.data_grid.data_source_adapter\"));\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.columns_view\");\r\nvar _aggregate_calculator = _interopRequireDefault(require(\"./aggregate_calculator\"));\r\nvar _query = _interopRequireDefault(require(\"../../data/query\"));\r\nvar _store_helper = _interopRequireDefault(require(\"../../data/store_helper\"));\r\nvar _utils = _interopRequireDefault(require(\"../../data/utils\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DATAGRID_TOTAL_FOOTER_CLASS = \"dx-datagrid-total-footer\";\r\nvar DATAGRID_SUMMARY_ITEM_CLASS = \"dx-datagrid-summary-item\";\r\nvar DATAGRID_TEXT_CONTENT_CLASS = \"dx-datagrid-text-content\";\r\nvar DATAGRID_GROUP_FOOTER_CLASS = \"dx-datagrid-group-footer\";\r\nvar DATAGRID_GROUP_TEXT_CONTENT_CLASS = \"dx-datagrid-group-text-content\";\r\nvar DATAGRID_NOWRAP_CLASS = \"dx-datagrid-nowrap\";\r\nvar DATAGRID_GROUP_FOOTER_ROW_TYPE = \"groupFooter\";\r\nvar renderSummaryCell = function(cell, options) {\r\n var $cell = (0, _renderer.default)(cell);\r\n var column = options.column;\r\n var summaryItems = options.summaryItems;\r\n var $summaryItems = [];\r\n if (!column.command && summaryItems) {\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n var summaryItem = summaryItems[i];\r\n $summaryItems.push((0, _renderer.default)(\"
\").css(\"textAlign\", summaryItem.alignment || column.alignment).addClass(DATAGRID_SUMMARY_ITEM_CLASS).addClass(DATAGRID_TEXT_CONTENT_CLASS).addClass(summaryItem.cssClass).toggleClass(DATAGRID_GROUP_TEXT_CONTENT_CLASS, \"group\" === options.rowType).text(_uiData_grid.default.getSummaryText(summaryItem, options.summaryTexts)))\r\n }\r\n $cell.append($summaryItems)\r\n }\r\n};\r\nexports.renderSummaryCell = renderSummaryCell;\r\nvar getSummaryCellOptions = function(that, options) {\r\n var summaryTexts = that.option(\"summary.texts\") || {};\r\n return {\r\n totalItem: options.row,\r\n summaryItems: options.row.summaryCells[options.columnIndex],\r\n summaryTexts: summaryTexts\r\n }\r\n};\r\nvar getGroupAggregates = function(data) {\r\n return data.summary || data.aggregates || []\r\n};\r\nvar recalculateWhileEditing = function(that) {\r\n return that.option(\"summary.recalculateWhileEditing\")\r\n};\r\nvar FooterView = _uiGrid_core.ColumnsView.inherit(function() {\r\n return {\r\n _getRows: function() {\r\n return this._dataController.footerItems()\r\n },\r\n _getCellOptions: function(options) {\r\n return (0, _extend.extend)(this.callBase(options), getSummaryCellOptions(this, options))\r\n },\r\n _renderCellContent: function($cell, options) {\r\n renderSummaryCell($cell, options);\r\n this.callBase($cell, options)\r\n },\r\n _renderCore: function(change) {\r\n var totalItem = this._dataController.footerItems()[0];\r\n if (!change || !change.columnIndices) {\r\n this.element().empty().addClass(DATAGRID_TOTAL_FOOTER_CLASS).toggleClass(DATAGRID_NOWRAP_CLASS, !this.option(\"wordWrapEnabled\"))\r\n }\r\n if (totalItem && totalItem.summaryCells && totalItem.summaryCells.length) {\r\n this._updateContent(this._renderTable({\r\n change: change\r\n }), change)\r\n }\r\n },\r\n _updateContent: function($newTable, change) {\r\n if (change && \"update\" === change.changeType && change.columnIndices) {\r\n var $row = this.getTableElement().find(\".dx-row\");\r\n var $newRow = $newTable.find(\".dx-row\");\r\n this._updateCells($row, $newRow, change.columnIndices[0])\r\n } else {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _rowClick: function(e) {\r\n var item = this._dataController.footerItems()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", (0, _extend.extend)({}, e, item))\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n this.callBase(e)\r\n }\r\n },\r\n _handleDataChanged: function(e) {\r\n var changeType = e.changeType;\r\n if (\"update\" === e.changeType && e.repaintChangesOnly) {\r\n if (!e.totalColumnIndices) {\r\n this.render()\r\n } else {\r\n if (e.totalColumnIndices.length) {\r\n this.render(null, {\r\n changeType: \"update\",\r\n columnIndices: [e.totalColumnIndices]\r\n })\r\n }\r\n }\r\n } else {\r\n if (\"refresh\" === changeType || \"append\" === changeType || \"prepend\" === changeType) {\r\n this.render()\r\n }\r\n }\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n isVisible: function() {\r\n return !!this._dataController.footerItems().length\r\n }\r\n }\r\n}());\r\nexports.FooterView = FooterView;\r\nvar SummaryDataSourceAdapterExtender = function() {\r\n function forEachGroup(groups, groupCount, callback, path) {\r\n path = path || [];\r\n for (var i = 0; i < groups.length; i++) {\r\n path.push(groups[i].key);\r\n if (1 === groupCount) {\r\n callback(path, groups[i].items)\r\n } else {\r\n forEachGroup(groups[i].items, groupCount - 1, callback, path)\r\n }\r\n path.pop()\r\n }\r\n }\r\n return {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._totalAggregates = [];\r\n this._summaryGetter = _common.noop\r\n },\r\n summaryGetter: function(_summaryGetter) {\r\n if (!arguments.length) {\r\n return this._summaryGetter\r\n }\r\n if ((0, _type.isFunction)(_summaryGetter)) {\r\n this._summaryGetter = _summaryGetter\r\n }\r\n },\r\n summary: function(_summary) {\r\n if (!arguments.length) {\r\n return this._summaryGetter()\r\n }\r\n this._summaryGetter = function() {\r\n return _summary\r\n }\r\n },\r\n totalAggregates: function() {\r\n return this._totalAggregates\r\n },\r\n isLastLevelGroupItemsPagingLocal: function() {\r\n var summary = this.summary();\r\n var sortByGroupsInfo = summary && summary.sortByGroups();\r\n return sortByGroupsInfo && sortByGroupsInfo.length\r\n },\r\n sortLastLevelGroupItems: function(items, groups, paths) {\r\n var groupedItems = _store_helper.default.multiLevelGroup((0, _query.default)(items), groups).toArray();\r\n var result = [];\r\n paths.forEach(function(path) {\r\n forEachGroup(groupedItems, groups.length, function(itemsPath, items) {\r\n if (path.toString() === itemsPath.toString()) {\r\n result = result.concat(items)\r\n }\r\n })\r\n });\r\n return result\r\n }\r\n }\r\n}();\r\nvar SummaryDataSourceAdapterClientExtender = function() {\r\n var applyAddedData = function applyAddedData(data, insertedData, groupLevel) {\r\n if (groupLevel) {\r\n return applyAddedData(data, insertedData.map(function(item) {\r\n return {\r\n items: [item]\r\n }\r\n }, groupLevel - 1))\r\n }\r\n return data.concat(insertedData)\r\n };\r\n var applyRemovedData = function applyRemovedData(data, removedData, groupLevel) {\r\n if (groupLevel) {\r\n return data.map(function(data) {\r\n var updatedData = {};\r\n var updatedItems = applyRemovedData(data.items || [], removedData, groupLevel - 1);\r\n Object.defineProperty(updatedData, \"aggregates\", {\r\n get: function() {\r\n return data.aggregates\r\n },\r\n set: function(value) {\r\n data.aggregates = value\r\n }\r\n });\r\n return (0, _extend.extend)(updatedData, data, {\r\n items: updatedItems\r\n })\r\n })\r\n }\r\n return data.filter(function(data) {\r\n return removedData.indexOf(data) < 0\r\n })\r\n };\r\n var calculateAggregates = function(that, summary, data, groupLevel) {\r\n var calculator;\r\n if (recalculateWhileEditing(that)) {\r\n var editingController = that.getController(\"editing\");\r\n if (editingController) {\r\n var insertedData = editingController.getInsertedData();\r\n if (insertedData.length) {\r\n data = applyAddedData(data, insertedData, groupLevel)\r\n }\r\n var removedData = editingController.getRemovedData();\r\n if (removedData.length) {\r\n data = applyRemovedData(data, removedData, groupLevel)\r\n }\r\n }\r\n }\r\n if (summary) {\r\n calculator = new _aggregate_calculator.default({\r\n totalAggregates: summary.totalAggregates,\r\n groupAggregates: summary.groupAggregates,\r\n data: data,\r\n groupLevel: groupLevel\r\n });\r\n calculator.calculate()\r\n }\r\n return calculator ? calculator.totalAggregates() : []\r\n };\r\n var sortGroupsBySummaryCore = function sortGroupsBySummaryCore(items, groups, sortByGroups) {\r\n if (!items || !groups.length) {\r\n return items\r\n }\r\n var group = groups[0];\r\n var sorts = sortByGroups[0];\r\n var query;\r\n if (group && sorts && sorts.length) {\r\n query = (0, _query.default)(items);\r\n (0, _iterator.each)(sorts, function(index) {\r\n if (0 === index) {\r\n query = query.sortBy(this.selector, this.desc)\r\n } else {\r\n query = query.thenBy(this.selector, this.desc)\r\n }\r\n });\r\n query.enumerate().done(function(sortedItems) {\r\n items = sortedItems\r\n })\r\n }\r\n groups = groups.slice(1);\r\n sortByGroups = sortByGroups.slice(1);\r\n if (groups.length && sortByGroups.length) {\r\n (0, _iterator.each)(items, function() {\r\n this.items = sortGroupsBySummaryCore(this.items, groups, sortByGroups)\r\n })\r\n }\r\n return items\r\n };\r\n var sortGroupsBySummary = function(data, group, summary) {\r\n var sortByGroups = summary && summary.sortByGroups && summary.sortByGroups();\r\n if (sortByGroups && sortByGroups.length) {\r\n return sortGroupsBySummaryCore(data, group, sortByGroups)\r\n }\r\n return data\r\n };\r\n return {\r\n _customizeRemoteOperations: function(options) {\r\n var summary = this.summary();\r\n if (summary) {\r\n if (options.remoteOperations.summary) {\r\n if (!options.isCustomLoading || options.storeLoadOptions.isLoadingAll) {\r\n if (options.storeLoadOptions.group) {\r\n if (options.remoteOperations.grouping) {\r\n options.storeLoadOptions.groupSummary = summary.groupAggregates\r\n } else {\r\n if (summary.groupAggregates.length) {\r\n options.remoteOperations.paging = false\r\n }\r\n }\r\n }\r\n options.storeLoadOptions.totalSummary = summary.totalAggregates\r\n }\r\n } else {\r\n if (summary.totalAggregates.length || summary.groupAggregates.length && options.storeLoadOptions.group) {\r\n options.remoteOperations.paging = false\r\n }\r\n }\r\n }\r\n this.callBase.apply(this, arguments);\r\n var cachedExtra = options.cachedPagesData.extra;\r\n if (cachedExtra && cachedExtra.summary && !options.isCustomLoading) {\r\n options.storeLoadOptions.totalSummary = void 0\r\n }\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n var that = this;\r\n var groups = _utils.default.normalizeSortingInfo(options.storeLoadOptions.group || options.loadOptions.group || []);\r\n var remoteOperations = options.remoteOperations || {};\r\n var summary = that.summaryGetter()(remoteOperations);\r\n var totalAggregates;\r\n if (!options.isCustomLoading || options.storeLoadOptions.isLoadingAll) {\r\n if (remoteOperations.summary) {\r\n if (!remoteOperations.paging && groups.length && summary) {\r\n if (!remoteOperations.grouping) {\r\n calculateAggregates(that, {\r\n groupAggregates: summary.groupAggregates\r\n }, options.data, groups.length)\r\n }\r\n options.data = sortGroupsBySummary(options.data, groups, summary)\r\n }\r\n } else {\r\n if (!remoteOperations.paging) {\r\n totalAggregates = calculateAggregates(that, summary, options.data, groups.length);\r\n options.data = sortGroupsBySummary(options.data, groups, summary);\r\n options.extra = (0, _type.isPlainObject)(options.extra) ? options.extra : {};\r\n options.extra.summary = totalAggregates\r\n }\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n that._totalAggregates = options.extra && options.extra.summary || that._totalAggregates\r\n }\r\n that.callBase(options)\r\n }\r\n }\r\n}();\r\n_uiData_grid2.default.extend(SummaryDataSourceAdapterExtender);\r\n_uiData_grid2.default.extend(SummaryDataSourceAdapterClientExtender);\r\n_uiData_grid.default.registerModule(\"summary\", {\r\n defaultOptions: function() {\r\n return {\r\n summary: {\r\n groupItems: void 0,\r\n totalItems: void 0,\r\n calculateCustomSummary: void 0,\r\n skipEmptyValues: true,\r\n recalculateWhileEditing: false,\r\n texts: {\r\n sum: _message.default.getFormatter(\"dxDataGrid-summarySum\"),\r\n sumOtherColumn: _message.default.getFormatter(\"dxDataGrid-summarySumOtherColumn\"),\r\n min: _message.default.getFormatter(\"dxDataGrid-summaryMin\"),\r\n minOtherColumn: _message.default.getFormatter(\"dxDataGrid-summaryMinOtherColumn\"),\r\n max: _message.default.getFormatter(\"dxDataGrid-summaryMax\"),\r\n maxOtherColumn: _message.default.getFormatter(\"dxDataGrid-summaryMaxOtherColumn\"),\r\n avg: _message.default.getFormatter(\"dxDataGrid-summaryAvg\"),\r\n avgOtherColumn: _message.default.getFormatter(\"dxDataGrid-summaryAvgOtherColumn\"),\r\n count: _message.default.getFormatter(\"dxDataGrid-summaryCount\")\r\n }\r\n },\r\n sortByGroupSummaryInfo: void 0\r\n }\r\n },\r\n views: {\r\n footerView: FooterView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: function() {\r\n return {\r\n _isDataColumn: function(column) {\r\n return column && (!(0, _type.isDefined)(column.groupIndex) || column.showWhenGrouped)\r\n },\r\n _isGroupFooterVisible: function() {\r\n var groupItems = this.option(\"summary.groupItems\") || [];\r\n for (var i = 0; i < groupItems.length; i++) {\r\n var groupItem = groupItems[i];\r\n var column = this._columnsController.columnOption(groupItem.showInColumn || groupItem.column);\r\n if (groupItem.showInGroupFooter && this._isDataColumn(column)) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _processGroupItems: function(items, groupCount, options) {\r\n var data = options && options.data;\r\n var result = this.callBase.apply(this, arguments);\r\n if (options) {\r\n if (void 0 === options.isGroupFooterVisible) {\r\n options.isGroupFooterVisible = this._isGroupFooterVisible()\r\n }\r\n if (data && data.items && options.isGroupFooterVisible && (options.collectContinuationItems || !data.isContinuationOnNextPage)) {\r\n result.push({\r\n rowType: DATAGRID_GROUP_FOOTER_ROW_TYPE,\r\n key: options.path.slice(),\r\n data: data,\r\n groupIndex: options.path.length - 1,\r\n values: []\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _processGroupItem: function(groupItem, options) {\r\n var that = this;\r\n if (!options.summaryGroupItems) {\r\n options.summaryGroupItems = that.option(\"summary.groupItems\") || []\r\n }\r\n if (\"group\" === groupItem.rowType) {\r\n var groupColumnIndex = -1;\r\n var afterGroupColumnIndex = -1;\r\n (0, _iterator.each)(options.visibleColumns, function(visibleIndex) {\r\n var prevColumn = options.visibleColumns[visibleIndex - 1];\r\n if (groupItem.groupIndex === this.groupIndex) {\r\n groupColumnIndex = this.index\r\n }\r\n if (visibleIndex > 0 && \"expand\" === prevColumn.command && \"expand\" !== this.command) {\r\n afterGroupColumnIndex = this.index\r\n }\r\n });\r\n groupItem.summaryCells = this._calculateSummaryCells(options.summaryGroupItems, getGroupAggregates(groupItem.data), options.visibleColumns, function(summaryItem, column) {\r\n if (summaryItem.showInGroupFooter) {\r\n return -1\r\n }\r\n if (summaryItem.alignByColumn && column && !(0, _type.isDefined)(column.groupIndex) && column.index !== afterGroupColumnIndex) {\r\n return column.index\r\n } else {\r\n return groupColumnIndex\r\n }\r\n })\r\n }\r\n if (groupItem.rowType === DATAGRID_GROUP_FOOTER_ROW_TYPE) {\r\n groupItem.summaryCells = this._calculateSummaryCells(options.summaryGroupItems, getGroupAggregates(groupItem.data), options.visibleColumns, function(summaryItem, column) {\r\n return summaryItem.showInGroupFooter && that._isDataColumn(column) ? column.index : -1\r\n })\r\n }\r\n return groupItem\r\n },\r\n _calculateSummaryCells: function(summaryItems, aggregates, visibleColumns, calculateTargetColumnIndex) {\r\n var that = this;\r\n var summaryCells = [];\r\n var summaryCellsByColumns = {};\r\n (0, _iterator.each)(summaryItems, function(summaryIndex, summaryItem) {\r\n var column = that._columnsController.columnOption(summaryItem.column);\r\n var showInColumn = summaryItem.showInColumn && that._columnsController.columnOption(summaryItem.showInColumn) || column;\r\n var columnIndex = calculateTargetColumnIndex(summaryItem, showInColumn);\r\n if (columnIndex >= 0) {\r\n if (!summaryCellsByColumns[columnIndex]) {\r\n summaryCellsByColumns[columnIndex] = []\r\n }\r\n var aggregate = aggregates[summaryIndex];\r\n if (aggregate === aggregate) {\r\n var valueFormat;\r\n if ((0, _type.isDefined)(summaryItem.valueFormat)) {\r\n valueFormat = summaryItem.valueFormat\r\n } else {\r\n if (\"count\" !== summaryItem.summaryType) {\r\n valueFormat = _uiData_grid.default.getFormatByDataType(column && column.dataType)\r\n }\r\n }\r\n summaryCellsByColumns[columnIndex].push((0, _extend.extend)({}, summaryItem, {\r\n value: (0, _type.isString)(aggregate) && column && column.deserializeValue ? column.deserializeValue(aggregate) : aggregate,\r\n valueFormat: valueFormat,\r\n columnCaption: column && column.index !== columnIndex ? column.caption : void 0\r\n }))\r\n }\r\n }\r\n });\r\n if (!(0, _type.isEmptyObject)(summaryCellsByColumns)) {\r\n (0, _iterator.each)(visibleColumns, function() {\r\n summaryCells.push(summaryCellsByColumns[this.index] || [])\r\n })\r\n }\r\n return summaryCells\r\n },\r\n _getSummaryCells: function(summaryTotalItems, totalAggregates) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n return that._calculateSummaryCells(summaryTotalItems, totalAggregates, columnsController.getVisibleColumns(), function(summaryItem, column) {\r\n return that._isDataColumn(column) ? column.index : -1\r\n })\r\n },\r\n _updateItemsCore: function(change) {\r\n var that = this;\r\n var summaryCells;\r\n var dataSource = that._dataSource;\r\n var footerItems = that._footerItems;\r\n var oldSummaryCells = footerItems && footerItems[0] && footerItems[0].summaryCells;\r\n var summaryTotalItems = that.option(\"summary.totalItems\");\r\n that._footerItems = [];\r\n if (dataSource && summaryTotalItems && summaryTotalItems.length) {\r\n var totalAggregates = dataSource.totalAggregates();\r\n summaryCells = that._getSummaryCells(summaryTotalItems, totalAggregates);\r\n if (change && change.repaintChangesOnly && oldSummaryCells) {\r\n change.totalColumnIndices = summaryCells.map(function(summaryCell, index) {\r\n if (JSON.stringify(summaryCell) !== JSON.stringify(oldSummaryCells[index])) {\r\n return index\r\n }\r\n return -1\r\n }).filter(function(index) {\r\n return index >= 0\r\n })\r\n }\r\n if (summaryCells.length) {\r\n that._footerItems.push({\r\n rowType: \"totalFooter\",\r\n summaryCells: summaryCells\r\n })\r\n }\r\n }\r\n that.callBase(change)\r\n },\r\n _prepareUnsavedDataSelector: function(selector) {\r\n var that = this;\r\n if (recalculateWhileEditing(that)) {\r\n var editingController = that.getController(\"editing\");\r\n if (editingController) {\r\n return function(data) {\r\n data = editingController.getUpdatedData(data);\r\n return selector(data)\r\n }\r\n }\r\n }\r\n return selector\r\n },\r\n _prepareAggregateSelector: function(selector, aggregator) {\r\n selector = this._prepareUnsavedDataSelector(selector);\r\n if (\"avg\" === aggregator || \"sum\" === aggregator) {\r\n return function(data) {\r\n var value = selector(data);\r\n return (0, _type.isDefined)(value) ? Number(value) : value\r\n }\r\n }\r\n return selector\r\n },\r\n _getAggregates: function(summaryItems, remoteOperations) {\r\n var that = this;\r\n var columnsController = that.getController(\"columns\");\r\n var calculateCustomSummary = that.option(\"summary.calculateCustomSummary\");\r\n var commonSkipEmptyValues = that.option(\"summary.skipEmptyValues\");\r\n return (0, _iterator.map)(summaryItems || [], function(summaryItem) {\r\n var column = columnsController.columnOption(summaryItem.column);\r\n var calculateCellValue = column && column.calculateCellValue ? column.calculateCellValue.bind(column) : (0, _data.compileGetter)(column ? column.dataField : summaryItem.column);\r\n var aggregator = summaryItem.summaryType || \"count\";\r\n var selector = summaryItem.column;\r\n var skipEmptyValues = (0, _type.isDefined)(summaryItem.skipEmptyValues) ? summaryItem.skipEmptyValues : commonSkipEmptyValues;\r\n if (remoteOperations) {\r\n return {\r\n selector: summaryItem.column,\r\n summaryType: aggregator\r\n }\r\n } else {\r\n selector = that._prepareAggregateSelector(calculateCellValue, aggregator);\r\n if (\"custom\" === aggregator) {\r\n if (!calculateCustomSummary) {\r\n _ui.default.log(\"E1026\");\r\n calculateCustomSummary = function() {}\r\n }\r\n var options = {\r\n component: that.component,\r\n name: summaryItem.name\r\n };\r\n calculateCustomSummary(options);\r\n options.summaryProcess = \"calculate\";\r\n aggregator = {\r\n seed: function(groupIndex) {\r\n options.summaryProcess = \"start\";\r\n options.totalValue = void 0;\r\n options.groupIndex = groupIndex;\r\n delete options.value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n },\r\n step: function(totalValue, value) {\r\n options.summaryProcess = \"calculate\";\r\n options.totalValue = totalValue;\r\n options.value = value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n },\r\n finalize: function(totalValue) {\r\n options.summaryProcess = \"finalize\";\r\n options.totalValue = totalValue;\r\n delete options.value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n }\r\n }\r\n }\r\n return {\r\n selector: selector,\r\n aggregator: aggregator,\r\n skipEmptyValues: skipEmptyValues\r\n }\r\n }\r\n })\r\n },\r\n _addSortInfo: function(sortByGroups, groupColumn, selector, sortOrder) {\r\n if (groupColumn) {\r\n var groupIndex = groupColumn.groupIndex;\r\n sortOrder = sortOrder || groupColumn.sortOrder;\r\n if ((0, _type.isDefined)(groupIndex)) {\r\n sortByGroups[groupIndex] = sortByGroups[groupIndex] || [];\r\n sortByGroups[groupIndex].push({\r\n selector: selector,\r\n desc: \"desc\" === sortOrder\r\n })\r\n }\r\n }\r\n },\r\n _findSummaryItem: function(summaryItems, name) {\r\n var summaryItemIndex = -1;\r\n var getFullName = function(summaryItem) {\r\n var summaryType = summaryItem.summaryType;\r\n var column = summaryItem.column;\r\n return summaryType && column && summaryType + \"_\" + column\r\n };\r\n if ((0, _type.isDefined)(name)) {\r\n (0, _iterator.each)(summaryItems || [], function(index) {\r\n if (this.name === name || index === name || this.summaryType === name || this.column === name || getFullName(this) === name) {\r\n summaryItemIndex = index;\r\n return false\r\n }\r\n })\r\n }\r\n return summaryItemIndex\r\n },\r\n _getSummarySortByGroups: function(sortByGroupSummaryInfo, groupSummaryItems) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var groupColumns = columnsController.getGroupColumns();\r\n var sortByGroups = [];\r\n if (!groupSummaryItems || !groupSummaryItems.length) {\r\n return\r\n }(0, _iterator.each)(sortByGroupSummaryInfo || [], function() {\r\n var sortOrder = this.sortOrder;\r\n var groupColumn = this.groupColumn;\r\n var summaryItemIndex = that._findSummaryItem(groupSummaryItems, this.summaryItem);\r\n if (summaryItemIndex < 0) {\r\n return\r\n }\r\n var selector = function(data) {\r\n return getGroupAggregates(data)[summaryItemIndex]\r\n };\r\n if ((0, _type.isDefined)(groupColumn)) {\r\n groupColumn = columnsController.columnOption(groupColumn);\r\n that._addSortInfo(sortByGroups, groupColumn, selector, sortOrder)\r\n } else {\r\n (0, _iterator.each)(groupColumns, function(groupIndex, groupColumn) {\r\n that._addSortInfo(sortByGroups, groupColumn, selector, sortOrder)\r\n })\r\n }\r\n });\r\n return sortByGroups\r\n },\r\n _createDataSourceAdapterCore: function(dataSource, remoteOperations) {\r\n var that = this;\r\n var dataSourceAdapter = this.callBase(dataSource, remoteOperations);\r\n dataSourceAdapter.summaryGetter(function(currentRemoteOperations) {\r\n return that._getSummaryOptions(currentRemoteOperations || remoteOperations)\r\n });\r\n return dataSourceAdapter\r\n },\r\n _getSummaryOptions: function(remoteOperations) {\r\n var that = this;\r\n var groupSummaryItems = that.option(\"summary.groupItems\");\r\n var totalSummaryItems = that.option(\"summary.totalItems\");\r\n var sortByGroupSummaryInfo = that.option(\"sortByGroupSummaryInfo\");\r\n var groupAggregates = that._getAggregates(groupSummaryItems, remoteOperations && remoteOperations.grouping && remoteOperations.summary);\r\n var totalAggregates = that._getAggregates(totalSummaryItems, remoteOperations && remoteOperations.summary);\r\n var sortByGroups = function() {\r\n return that._getSummarySortByGroups(sortByGroupSummaryInfo, groupSummaryItems)\r\n };\r\n if (groupAggregates.length || totalAggregates.length) {\r\n return {\r\n groupAggregates: groupAggregates,\r\n totalAggregates: totalAggregates,\r\n sortByGroups: sortByGroups\r\n }\r\n }\r\n },\r\n publicMethods: function() {\r\n var methods = this.callBase();\r\n methods.push(\"getTotalSummaryValue\");\r\n return methods\r\n },\r\n getTotalSummaryValue: function(summaryItemName) {\r\n var summaryItemIndex = this._findSummaryItem(this.option(\"summary.totalItems\"), summaryItemName);\r\n var aggregates = this._dataSource.totalAggregates();\r\n if (aggregates.length && summaryItemIndex > -1) {\r\n return aggregates[summaryItemIndex]\r\n }\r\n },\r\n optionChanged: function(args) {\r\n if (\"summary\" === args.name || \"sortByGroupSummaryInfo\" === args.name) {\r\n args.name = \"dataSource\"\r\n }\r\n this.callBase(args)\r\n },\r\n init: function() {\r\n this._footerItems = [];\r\n this.callBase()\r\n },\r\n footerItems: function() {\r\n return this._footerItems\r\n }\r\n }\r\n }(),\r\n editing: function() {\r\n return {\r\n _refreshSummary: function() {\r\n if (recalculateWhileEditing(this) && !this.isSaving()) {\r\n this._dataController.refresh({\r\n load: true,\r\n changesOnly: true\r\n })\r\n }\r\n },\r\n _addChange: function(params) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (params.type) {\r\n this._refreshSummary()\r\n }\r\n return result\r\n },\r\n _removeChange: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n this._refreshSummary();\r\n return result\r\n },\r\n cancelEditData: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n this._refreshSummary();\r\n return result\r\n }\r\n }\r\n }()\r\n },\r\n views: {\r\n rowsView: function() {\r\n return {\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n row && $row.addClass(row.rowType === DATAGRID_GROUP_FOOTER_ROW_TYPE ? DATAGRID_GROUP_FOOTER_CLASS : \"\");\r\n return $row\r\n },\r\n _renderCells: function($row, options) {\r\n this.callBase.apply(this, arguments);\r\n if (\"group\" === options.row.rowType && options.row.summaryCells && options.row.summaryCells.length) {\r\n this._renderGroupSummaryCells($row, options)\r\n }\r\n },\r\n _hasAlignByColumnSummaryItems: function(columnIndex, options) {\r\n return !(0, _type.isDefined)(options.columns[columnIndex].groupIndex) && options.row.summaryCells[columnIndex].length\r\n },\r\n _getAlignByColumnCellCount: function(groupCellColSpan, options) {\r\n var alignByColumnCellCount = 0;\r\n for (var i = 1; i < groupCellColSpan; i++) {\r\n var columnIndex = options.row.summaryCells.length - i;\r\n alignByColumnCellCount = this._hasAlignByColumnSummaryItems(columnIndex, options) ? i : alignByColumnCellCount\r\n }\r\n return alignByColumnCellCount\r\n },\r\n _renderGroupSummaryCells: function($row, options) {\r\n var $groupCell = $row.children().last();\r\n var groupCellColSpan = Number($groupCell.attr(\"colSpan\")) || 1;\r\n var alignByColumnCellCount = this._getAlignByColumnCellCount(groupCellColSpan, options);\r\n this._renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount)\r\n },\r\n _renderGroupSummaryCellsCore: function($groupCell, options, groupCellColSpan, alignByColumnCellCount) {\r\n if (alignByColumnCellCount > 0) {\r\n $groupCell.attr(\"colSpan\", groupCellColSpan - alignByColumnCellCount);\r\n for (var i = 0; i < alignByColumnCellCount; i++) {\r\n var columnIndex = options.columns.length - alignByColumnCellCount + i;\r\n this._renderCell($groupCell.parent(), (0, _extend.extend)({\r\n column: options.columns[columnIndex],\r\n columnIndex: this._getSummaryCellIndex(columnIndex, options.columns)\r\n }, options))\r\n }\r\n }\r\n },\r\n _getSummaryCellIndex: function(columnIndex) {\r\n return columnIndex\r\n },\r\n _getCellTemplate: function(options) {\r\n if (!options.column.command && !(0, _type.isDefined)(options.column.groupIndex) && options.summaryItems && options.summaryItems.length) {\r\n return renderSummaryCell\r\n } else {\r\n return this.callBase(options)\r\n }\r\n },\r\n _getCellOptions: function(options) {\r\n var that = this;\r\n var parameters = that.callBase(options);\r\n if (options.row.summaryCells) {\r\n return (0, _extend.extend)(parameters, getSummaryCellOptions(that, options))\r\n } else {\r\n return parameters\r\n }\r\n }\r\n }\r\n }()\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.data_controller.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.DataController = void 0;\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _uiData_grid2 = _interopRequireDefault(require(\"./ui.data_grid.data_source_adapter\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.data_controller\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DataController = _uiGrid_core.default.controllers.data.inherit(function() {\r\n return {\r\n _getDataSourceAdapter: function() {\r\n return _uiData_grid2.default\r\n },\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (dataSource && !Array.isArray(dataSource) && this.option(\"keyExpr\")) {\r\n _ui.default.log(\"W1011\")\r\n }\r\n return this.callBase()\r\n }\r\n }\r\n}());\r\nexports.DataController = DataController;\r\n_uiData_grid.default.registerModule(\"data\", {\r\n defaultOptions: _uiGrid_core.default.defaultOptions,\r\n controllers: {\r\n data: DataController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/context_menu/ui.context_menu.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _guid = _interopRequireDefault(require(\"../../core/guid\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _dom = require(\"../../core/utils/dom\");\r\nvar _element = require(\"../../core/element\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _position = _interopRequireDefault(require(\"../../animation/position\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _overlay = _interopRequireDefault(require(\"../overlay\"));\r\nvar _ui = _interopRequireDefault(require(\"./ui.menu_base\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_PHONE_CLASS = \"dx-menu-phone-overlay\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = DX_MENU_ITEM_CLASS + \"-wrapper\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_HAS_CONTEXT_MENU_CLASS = \"dx-has-context-menu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_FOCUSED_CLASS = \"dx-state-focused\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar FOCUS_LAST = \"last\";\r\nvar ACTIONS = [\"onShowing\", \"onShown\", \"onSubmenuCreated\", \"onHiding\", \"onHidden\", \"onPositioning\", \"onLeftFirstItem\", \"onLeftLastItem\", \"onCloseRootSubmenu\", \"onExpandLastSubmenu\"];\r\nvar LOCAL_SUBMENU_DIRECTIONS = [FOCUS_UP, FOCUS_DOWN, FOCUS_FIRST, FOCUS_LAST];\r\nvar DEFAULT_SHOW_EVENT = \"dxcontextmenu\";\r\nvar ContextMenu = function(_MenuBase) {\r\n _inheritsLoose(ContextMenu, _MenuBase);\r\n\r\n function ContextMenu() {\r\n return _MenuBase.apply(this, arguments) || this\r\n }\r\n var _proto = ContextMenu.prototype;\r\n _proto.getShowEvent = function(showEventOption) {\r\n var result = null;\r\n if ((0, _type.isObject)(showEventOption)) {\r\n if (null !== showEventOption.name) {\r\n result = showEventOption.name || DEFAULT_SHOW_EVENT\r\n }\r\n } else {\r\n result = showEventOption\r\n }\r\n return result\r\n };\r\n _proto.getShowDelay = function(showEventOption) {\r\n return (0, _type.isObject)(showEventOption) && showEventOption.delay\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_MenuBase.prototype._getDefaultOptions.call(this), {\r\n showEvent: DEFAULT_SHOW_EVENT,\r\n closeOnOutsideClick: true,\r\n position: {\r\n at: \"top left\",\r\n my: \"top left\"\r\n },\r\n onShowing: null,\r\n onShown: null,\r\n onSubmenuCreated: null,\r\n onHiding: null,\r\n onHidden: null,\r\n onPositioning: null,\r\n submenuDirection: \"auto\",\r\n visible: false,\r\n target: void 0,\r\n onLeftFirstItem: null,\r\n onLeftLastItem: null,\r\n onCloseRootSubmenu: null,\r\n onExpandLastSubmenu: null\r\n })\r\n };\r\n _proto._defaultOptionsRules = function() {\r\n return _MenuBase.prototype._defaultOptionsRules.call(this).concat([{\r\n device: function() {\r\n return !(0, _window.hasWindow)()\r\n },\r\n options: {\r\n animation: null\r\n }\r\n }])\r\n };\r\n _proto._initActions = function() {\r\n var _this = this;\r\n this._actions = {};\r\n (0, _iterator.each)(ACTIONS, function(index, action) {\r\n _this._actions[action] = _this._createActionByOption(action) || _common.noop\r\n })\r\n };\r\n _proto._setOptionsByReference = function() {\r\n _MenuBase.prototype._setOptionsByReference.call(this);\r\n (0, _extend.extend)(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n };\r\n _proto._focusInHandler = function() {};\r\n _proto._itemContainer = function() {\r\n return this._overlay ? this._overlay.$content() : (0, _renderer.default)()\r\n };\r\n _proto._eventBindingTarget = function() {\r\n return this._itemContainer()\r\n };\r\n _proto.itemsContainer = function() {\r\n return this._overlay ? this._overlay.$content() : void 0\r\n };\r\n _proto._supportedKeys = function() {\r\n var _this2 = this;\r\n var selectItem = function() {\r\n var $item = (0, _renderer.default)(_this2.option(\"focusedElement\"));\r\n _this2.hide();\r\n if (!$item.length || !_this2._isSelectionEnabled()) {\r\n return\r\n }\r\n _this2.selectItem($item[0])\r\n };\r\n return (0, _extend.extend)(_MenuBase.prototype._supportedKeys.call(this), {\r\n space: selectItem,\r\n escape: this.hide\r\n })\r\n };\r\n _proto._getActiveItem = function() {\r\n var $availableItems = this._getAvailableItems();\r\n var $focusedItem = $availableItems.filter(\".\".concat(DX_STATE_FOCUSED_CLASS));\r\n var $hoveredItem = $availableItems.filter(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $hoveredItemContainer = $hoveredItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS));\r\n if ($hoveredItemContainer.find(\".\".concat(DX_MENU_ITEM_CLASS)).index($focusedItem) >= 0) {\r\n return $focusedItem\r\n }\r\n if ($hoveredItem.length) {\r\n return $hoveredItem\r\n }\r\n return _MenuBase.prototype._getActiveItem.call(this)\r\n };\r\n _proto._moveFocus = function(location) {\r\n var $items = this._getItemsByLocation(location);\r\n var $oldTarget = this._getActiveItem(true);\r\n var $hoveredItem = this.itemsContainer().find(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $focusedItem = (0, _renderer.default)(this.option(\"focusedElement\"));\r\n var $activeItemHighlighted = !!($focusedItem.length || $hoveredItem.length);\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n $newTarget = $activeItemHighlighted ? this._prevItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.first())) {\r\n this._actions.onLeftFirstItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n $newTarget = $activeItemHighlighted ? this._nextItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.last())) {\r\n this._actions.onLeftLastItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._hideSubmenuHandler() : this._expandSubmenuHandler($items, location);\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._expandSubmenuHandler($items, location) : this._hideSubmenuHandler();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n default:\r\n return _MenuBase.prototype._moveFocus.call(this, location)\r\n }\r\n };\r\n _proto._setFocusedElement = function($element) {\r\n if ($element && 0 !== $element.length) {\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($element))\r\n }\r\n };\r\n _proto._getItemsByLocation = function(location) {\r\n var $activeItem = this._getActiveItem(true);\r\n var $items;\r\n if ((0, _array.inArray)(location, LOCAL_SUBMENU_DIRECTIONS) >= 0) {\r\n $items = $activeItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).children().children()\r\n }\r\n $items = this._getAvailableItems($items);\r\n return $items\r\n };\r\n _proto._getAriaTarget = function() {\r\n return this.$element()\r\n };\r\n _proto._refreshActiveDescendant = function() {\r\n if ((0, _type.isDefined)(this._overlay)) {\r\n var $target = this._overlay.$content();\r\n _MenuBase.prototype._refreshActiveDescendant.call(this, $target)\r\n }\r\n };\r\n _proto._hideSubmenuHandler = function() {\r\n var $curItem = this._getActiveItem(true);\r\n var $parentItem = $curItem.parents(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).first();\r\n if ($parentItem.length) {\r\n this._hideSubmenusOnSameLevel($parentItem);\r\n this._hideSubmenu($curItem.closest(\".\".concat(DX_SUBMENU_CLASS)));\r\n return $parentItem\r\n }\r\n this._actions.onCloseRootSubmenu($curItem);\r\n return $curItem\r\n };\r\n _proto._expandSubmenuHandler = function($items, location) {\r\n var $curItem = this._getActiveItem(true);\r\n var itemData = this._getItemData($curItem);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var isItemHasSubmenu = this._hasSubmenu(node);\r\n var $submenu = $curItem.children(\".\".concat(DX_SUBMENU_CLASS));\r\n if (isItemHasSubmenu && !$curItem.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n if (!$submenu.length || \"hidden\" === $submenu.css(\"visibility\")) {\r\n this._showSubmenu($curItem)\r\n }\r\n return this._nextItem(this._getItemsByLocation(location))\r\n }\r\n this._actions.onExpandLastSubmenu($curItem);\r\n return\r\n };\r\n _proto._clean = function() {\r\n if (this._overlay) {\r\n this._overlay.$element().remove();\r\n this._overlay = null\r\n }\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n _MenuBase.prototype._clean.call(this)\r\n };\r\n _proto._initMarkup = function() {\r\n this.$element().addClass(DX_HAS_CONTEXT_MENU_CLASS);\r\n _MenuBase.prototype._initMarkup.call(this)\r\n };\r\n _proto._render = function() {\r\n _MenuBase.prototype._render.call(this);\r\n this._renderVisibility(this.option(\"visible\"));\r\n this._addWidgetClass()\r\n };\r\n _proto._renderContentImpl = function() {\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n this._attachShowContextMenuEvents()\r\n };\r\n _proto._attachKeyboardEvents = function() {\r\n !this._keyboardListenerId && this._focusTarget().length && _MenuBase.prototype._attachKeyboardEvents.call(this)\r\n };\r\n _proto._renderContextMenuOverlay = function() {\r\n if (this._overlay) {\r\n return\r\n }\r\n var overlayOptions = this._getOverlayOptions();\r\n this._overlay = this._createComponent((0, _renderer.default)(\"
\").appendTo(this._$element), _overlay.default, overlayOptions);\r\n var $overlayContent = this._overlay.$content();\r\n $overlayContent.addClass(DX_CONTEXT_MENU_CLASS);\r\n this._addCustomCssClass($overlayContent);\r\n this._addPlatformDependentClass($overlayContent);\r\n this._attachContextMenuEvent()\r\n };\r\n _proto._itemContextMenuHandler = function(e) {\r\n _MenuBase.prototype._itemContextMenuHandler.call(this, e);\r\n e.stopPropagation()\r\n };\r\n _proto._addPlatformDependentClass = function($element) {\r\n if (_devices.default.current().phone) {\r\n $element.addClass(DX_MENU_PHONE_CLASS)\r\n }\r\n };\r\n _proto._detachShowContextMenuEvents = function(target) {\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = (0, _index.addNamespace)(showEvent, this.NAME);\r\n if (this._showContextMenuEventHandler) {\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n } else {\r\n _events_engine.default.off((0, _renderer.default)(target), eventName)\r\n }\r\n };\r\n _proto._attachShowContextMenuEvents = function() {\r\n var _this3 = this;\r\n var target = this._getTarget();\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = (0, _index.addNamespace)(showEvent, this.NAME);\r\n var contextMenuAction = this._createAction(function(e) {\r\n var delay = _this3.getShowDelay(_this3.option(\"showEvent\"));\r\n if (delay) {\r\n setTimeout(function() {\r\n return _this3._show(e.event)\r\n }, delay)\r\n } else {\r\n _this3._show(e.event)\r\n }\r\n }, {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = function(e) {\r\n return contextMenuAction({\r\n event: e,\r\n target: (0, _renderer.default)(e.currentTarget)\r\n })\r\n };\r\n contextMenuAction = this._createAction(contextMenuAction);\r\n if ((0, _type.isRenderer)(target) || target.nodeType || (0, _type.isWindow)(target)) {\r\n this._showContextMenuEventHandler = void 0;\r\n _events_engine.default.on(target, eventName, handler)\r\n } else {\r\n this._showContextMenuEventHandler = handler;\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n }\r\n };\r\n _proto._hoverEndHandler = function(e) {\r\n _MenuBase.prototype._hoverEndHandler.call(this, e);\r\n e.stopPropagation()\r\n };\r\n _proto._renderDimensions = function() {};\r\n _proto._renderContainer = function($wrapper, submenuContainer) {\r\n var $holder = submenuContainer || this._itemContainer();\r\n $wrapper = (0, _renderer.default)(\"
\");\r\n $wrapper.appendTo($holder).addClass(DX_SUBMENU_CLASS).css(\"visibility\", submenuContainer ? \"hidden\" : \"visible\");\r\n var $itemsContainer = _MenuBase.prototype._renderContainer.call(this, $wrapper);\r\n if (submenuContainer) {\r\n return $itemsContainer\r\n }\r\n if (this.option(\"width\")) {\r\n return $itemsContainer.css(\"minWidth\", this.option(\"width\"))\r\n }\r\n if (this.option(\"height\")) {\r\n return $itemsContainer.css(\"minHeight\", this.option(\"height\"))\r\n }\r\n return $itemsContainer\r\n };\r\n _proto._renderSubmenuItems = function(node, $itemFrame) {\r\n this._renderItems(this._getChildNodes(node), $itemFrame);\r\n this._actions.onSubmenuCreated({\r\n itemElement: (0, _element.getPublicElement)($itemFrame),\r\n itemData: node.internalFields.item,\r\n submenuElement: (0, _element.getPublicElement)($itemFrame.children(\".\".concat(DX_SUBMENU_CLASS)))\r\n })\r\n };\r\n _proto._getOverlayOptions = function() {\r\n var position = this.option(\"position\");\r\n var overlayOptions = {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n innerOverlay: true,\r\n closeOnOutsideClick: this._closeOnOutsideClickHandler.bind(this),\r\n propagateOutsideClick: true,\r\n closeOnTargetScroll: true,\r\n deferRendering: false,\r\n position: {\r\n at: position.at,\r\n my: position.my,\r\n of: this._getTarget(),\r\n collision: \"flipfit\"\r\n },\r\n shading: false,\r\n showTitle: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n onShown: this._overlayShownActionHandler.bind(this),\r\n onHiding: this._overlayHidingActionHandler.bind(this),\r\n onHidden: this._overlayHiddenActionHandler.bind(this)\r\n };\r\n return overlayOptions\r\n };\r\n _proto._overlayShownActionHandler = function(arg) {\r\n this._actions.onShown(arg)\r\n };\r\n _proto._overlayHidingActionHandler = function(arg) {\r\n this._actions.onHiding(arg);\r\n if (!arg.cancel) {\r\n this._hideAllShownSubmenus();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n };\r\n _proto._overlayHiddenActionHandler = function(arg) {\r\n this._actions.onHidden(arg)\r\n };\r\n _proto._closeOnOutsideClickHandler = function(e) {\r\n var closeOnOutsideClick = this.option(\"closeOnOutsideClick\");\r\n if ((0, _type.isFunction)(closeOnOutsideClick)) {\r\n return closeOnOutsideClick(e)\r\n }\r\n if (!closeOnOutsideClick) {\r\n return false\r\n }\r\n if (_dom_adapter.default.isDocument(e.target)) {\r\n return true\r\n }\r\n var $activeItemContainer = this._getActiveItemsContainer(e.target);\r\n var $itemContainers = this._getItemsContainers();\r\n var $clickedItem = this._searchActiveItem(e.target);\r\n var $rootItem = this.$element().parents(\".\".concat(DX_MENU_ITEM_CLASS));\r\n var isRootItemClicked = $clickedItem[0] === $rootItem[0] && $clickedItem.length && $rootItem.length;\r\n var isInnerOverlayClicked = this._isIncludeOverlay($activeItemContainer, $itemContainers) && $clickedItem.length;\r\n if (isInnerOverlayClicked || isRootItemClicked) {\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._hideAllShownChildSubmenus($clickedItem)\r\n }\r\n return false\r\n }\r\n return true\r\n };\r\n _proto._getActiveItemsContainer = function(target) {\r\n return (0, _renderer.default)(target).closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n };\r\n _proto._getItemsContainers = function() {\r\n return this._overlay._$content.find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n };\r\n _proto._searchActiveItem = function(target) {\r\n return (0, _renderer.default)(target).closest(\".\".concat(DX_MENU_ITEM_CLASS)).eq(0)\r\n };\r\n _proto._isIncludeOverlay = function($activeOverlay, $allOverlays) {\r\n var isSame = false;\r\n (0, _iterator.each)($allOverlays, function(index, $overlay) {\r\n if ($activeOverlay.is($overlay) && !isSame) {\r\n isSame = true\r\n }\r\n });\r\n return isSame\r\n };\r\n _proto._hideAllShownChildSubmenus = function($clickedItem) {\r\n var _this4 = this;\r\n var $submenuElements = $clickedItem.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shownSubmenus = (0, _extend.extend)([], this._shownSubmenus);\r\n if ($submenuElements.length > 0) {\r\n (0, _iterator.each)(shownSubmenus, function(index, $submenu) {\r\n var $context = _this4._searchActiveItem($submenu.context).parent();\r\n if ($context.parent().is($clickedItem.parent().parent()) && !$context.is($clickedItem.parent())) {\r\n _this4._hideSubmenu($submenu)\r\n }\r\n })\r\n }\r\n };\r\n _proto._showSubmenu = function($item) {\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n this._hideSubmenusOnSameLevel($item);\r\n if (!this._hasSubmenu(node)) {\r\n return\r\n }\r\n var $submenu = $item.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var isSubmenuRendered = $submenu.length;\r\n _MenuBase.prototype._showSubmenu.call(this, $item);\r\n if (!isSubmenuRendered) {\r\n this._renderSubmenuItems(node, $item)\r\n }\r\n if (!this._isSubmenuVisible($submenu)) {\r\n this._drawSubmenu($item)\r\n }\r\n };\r\n _proto._hideSubmenusOnSameLevel = function($item) {\r\n var $expandedItems = $item.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)).siblings().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n if ($expandedItems.length) {\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenu($expandedItems.find(\".\".concat(DX_SUBMENU_CLASS)))\r\n }\r\n };\r\n _proto._hideSubmenuGroup = function($submenu) {\r\n if (this._isSubmenuVisible($submenu)) {\r\n this._hideSubmenuCore($submenu)\r\n }\r\n };\r\n _proto._isSubmenuVisible = function($submenu) {\r\n return \"visible\" === $submenu.css(\"visibility\")\r\n };\r\n _proto._drawSubmenu = function($itemElement) {\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").show : {};\r\n var $submenu = $itemElement.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuPosition = this._getSubmenuPosition($itemElement);\r\n if (this._overlay && this._overlay.option(\"visible\")) {\r\n if (!(0, _type.isDefined)(this._shownSubmenus)) {\r\n this._shownSubmenus = []\r\n }\r\n if ((0, _array.inArray)($submenu, this._shownSubmenus)) {\r\n this._shownSubmenus.push($submenu)\r\n }\r\n if (animation) {\r\n _fx.default.stop($submenu)\r\n }\r\n _position.default.setup($submenu, submenuPosition);\r\n if (animation) {\r\n if ((0, _type.isPlainObject)(animation.to)) {\r\n animation.to.position = submenuPosition\r\n }\r\n this._animate($submenu, animation)\r\n }\r\n $submenu.css(\"visibility\", \"visible\")\r\n }\r\n };\r\n _proto._animate = function($container, options) {\r\n _fx.default.animate($container, options)\r\n };\r\n _proto._getSubmenuPosition = function($rootItem) {\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var $rootItemWrapper = $rootItem.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS));\r\n var position = {\r\n collision: \"flip\",\r\n of: $rootItemWrapper,\r\n offset: {\r\n h: 0,\r\n v: -1\r\n }\r\n };\r\n switch (submenuDirection) {\r\n case \"left\":\r\n position.at = \"left top\";\r\n position.my = \"right top\";\r\n break;\r\n case \"right\":\r\n position.at = \"right top\";\r\n position.my = \"left top\";\r\n break;\r\n default:\r\n if (this.option(\"rtlEnabled\")) {\r\n position.at = \"left top\";\r\n position.my = \"right top\"\r\n } else {\r\n position.at = \"right top\";\r\n position.my = \"left top\"\r\n }\r\n }\r\n return position\r\n };\r\n _proto._updateSubmenuVisibilityOnClick = function(actionArgs) {\r\n if (!actionArgs.args.length) {\r\n return\r\n }\r\n var itemData = actionArgs.args[0].itemData;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (!node) {\r\n return\r\n }\r\n var $itemElement = (0, _renderer.default)(actionArgs.args[0].itemElement);\r\n var $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shouldRenderSubmenu = this._hasSubmenu(node) && !$submenu.length;\r\n if (shouldRenderSubmenu) {\r\n this._renderSubmenuItems(node, $itemElement);\r\n $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS))\r\n }\r\n if ($itemElement.context === $submenu.context && \"visible\" === $submenu.css(\"visibility\")) {\r\n return\r\n }\r\n var notCloseMenuOnItemClick = itemData && false === itemData.closeMenuOnClick;\r\n if (!itemData || itemData.disabled || notCloseMenuOnItemClick) {\r\n return\r\n }\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (0 === $submenu.length) {\r\n var $prevSubmenu = (0, _renderer.default)($itemElement.parents(\".\".concat(DX_SUBMENU_CLASS))[0]);\r\n this._hideSubmenu($prevSubmenu);\r\n if (!actionArgs.canceled && this._overlay && this._overlay.option(\"visible\")) {\r\n this.option(\"visible\", false)\r\n }\r\n } else {\r\n if (this._shownSubmenus && this._shownSubmenus.length > 0) {\r\n if (this._shownSubmenus[0].is($submenu)) {\r\n this._hideSubmenu($submenu)\r\n }\r\n }\r\n this._showSubmenu($itemElement)\r\n }\r\n };\r\n _proto._hideSubmenu = function($curSubmenu) {\r\n var _this5 = this;\r\n var shownSubmenus = (0, _extend.extend)([], this._shownSubmenus);\r\n (0, _iterator.each)(shownSubmenus, function(index, $submenu) {\r\n if ($curSubmenu.is($submenu) || (0, _dom.contains)($curSubmenu[0], $submenu[0])) {\r\n $submenu.parent().removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n _this5._hideSubmenuCore($submenu)\r\n }\r\n })\r\n };\r\n _proto._hideSubmenuCore = function($submenu) {\r\n var index = (0, _array.inArray)($submenu, this._shownSubmenus);\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").hide : null;\r\n if (index >= 0) {\r\n this._shownSubmenus.splice(index, 1)\r\n }\r\n this._stopAnimate($submenu);\r\n animation && this._animate($submenu, animation);\r\n $submenu.css(\"visibility\", \"hidden\")\r\n };\r\n _proto._stopAnimate = function($container) {\r\n _fx.default.stop($container, true)\r\n };\r\n _proto._hideAllShownSubmenus = function() {\r\n var _this6 = this;\r\n var shownSubmenus = (0, _extend.extend)([], this._shownSubmenus);\r\n var $expandedItems = this._overlay.$content().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n (0, _iterator.each)(shownSubmenus, function(_, $submenu) {\r\n _this6._hideSubmenu($submenu)\r\n })\r\n };\r\n _proto._visibilityChanged = function(visible) {\r\n if (visible) {\r\n this._renderContentImpl()\r\n }\r\n };\r\n _proto._optionChanged = function(args) {\r\n if ((0, _array.inArray)(args.name, ACTIONS) > -1) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"visible\":\r\n this._renderVisibility(args.value);\r\n break;\r\n case \"showEvent\":\r\n case \"position\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachShowContextMenuEvents(args.previousValue);\r\n this._invalidate();\r\n break;\r\n case \"closeOnOutsideClick\":\r\n break;\r\n default:\r\n _MenuBase.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto._renderVisibility = function(showing) {\r\n return showing ? this._show() : this._hide()\r\n };\r\n _proto._toggleVisibility = function() {};\r\n _proto._show = function(event) {\r\n var args = {\r\n jQEvent: event\r\n };\r\n var promise = (new _deferred.Deferred).reject().promise();\r\n this._actions.onShowing(args);\r\n if (args.cancel) {\r\n return promise\r\n }\r\n var position = this._positionContextMenu(event);\r\n if (position) {\r\n if (!this._overlay) {\r\n this._renderContextMenuOverlay();\r\n this._overlay.$content().addClass(this._widgetClass());\r\n this._renderFocusState();\r\n this._attachHoverEvents();\r\n this._attachClickEvent();\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n this._setOptionWithoutOptionChange(\"visible\", true);\r\n this._overlay.option(\"position\", position);\r\n promise = this._overlay.show();\r\n event && event.stopPropagation();\r\n this._setAriaAttributes()\r\n }\r\n return promise\r\n };\r\n _proto._setAriaAttributes = function() {\r\n this._overlayContentId = \"dx-\".concat(new _guid.default);\r\n this.setAria(\"owns\", this._overlayContentId);\r\n this.setAria({\r\n id: this._overlayContentId,\r\n role: \"menu\"\r\n }, this._overlay.$content())\r\n };\r\n _proto._cleanAriaAttributes = function() {\r\n this._overlay && this.setAria(\"id\", null, this._overlay.$content());\r\n this.setAria(\"owns\", void 0)\r\n };\r\n _proto._getTarget = function() {\r\n return this.option(\"target\") || this.option(\"position\").of || (0, _renderer.default)(_dom_adapter.default.getDocument())\r\n };\r\n _proto._getContextMenuPosition = function() {\r\n return (0, _extend.extend)({}, this.option(\"position\"), {\r\n of: this._getTarget()\r\n })\r\n };\r\n _proto._positionContextMenu = function(jQEvent) {\r\n var position = this._getContextMenuPosition();\r\n var isInitialPosition = this._isInitialOptionValue(\"position\");\r\n var positioningAction = this._createActionByOption(\"onPositioning\", actionArgs);\r\n if (jQEvent && jQEvent.preventDefault && isInitialPosition) {\r\n position.of = jQEvent\r\n }\r\n var actionArgs = {\r\n position: position,\r\n event: jQEvent\r\n };\r\n positioningAction(actionArgs);\r\n if (actionArgs.cancel) {\r\n position = null\r\n } else {\r\n if (actionArgs.event) {\r\n actionArgs.event.cancel = true;\r\n jQEvent.preventDefault()\r\n }\r\n }\r\n return position\r\n };\r\n _proto._refresh = function() {\r\n if (!(0, _window.hasWindow)()) {\r\n _MenuBase.prototype._refresh.call(this)\r\n } else {\r\n if (this._overlay) {\r\n var lastPosition = this._overlay.option(\"position\");\r\n _MenuBase.prototype._refresh.call(this);\r\n this._overlay && this._overlay.option(\"position\", lastPosition)\r\n } else {\r\n _MenuBase.prototype._refresh.call(this)\r\n }\r\n }\r\n };\r\n _proto._hide = function() {\r\n var promise;\r\n if (this._overlay) {\r\n promise = this._overlay.hide();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n this._cleanAriaAttributes();\r\n this.option(\"focusedElement\", null);\r\n return promise || (new _deferred.Deferred).reject().promise()\r\n };\r\n _proto.toggle = function(showing) {\r\n var visible = this.option(\"visible\");\r\n showing = void 0 === showing ? !visible : showing;\r\n return this._renderVisibility(showing)\r\n };\r\n _proto.show = function() {\r\n return this.toggle(true)\r\n };\r\n _proto.hide = function() {\r\n return this.toggle(false)\r\n };\r\n return ContextMenu\r\n}(_ui.default);\r\n(0, _component_registrator.default)(\"dxContextMenu\", ContextMenu);\r\nvar _default = ContextMenu;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.command_manager.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.FileManagerCommandManager = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar FileManagerCommandManager = function() {\r\n function FileManagerCommandManager(permissions) {\r\n this._actions = {};\r\n this._permissions = permissions || {};\r\n this._initCommands()\r\n }\r\n var _proto = FileManagerCommandManager.prototype;\r\n _proto._initCommands = function() {\r\n var _this = this;\r\n this._commands = [{\r\n name: \"create\",\r\n text: _message.default.format(\"dxFileManager-commandCreate\"),\r\n icon: \"newfolder\",\r\n enabled: this._permissions.create,\r\n noFileItemRequired: true\r\n }, {\r\n name: \"rename\",\r\n text: _message.default.format(\"dxFileManager-commandRename\"),\r\n icon: \"rename\",\r\n enabled: this._permissions.rename,\r\n isSingleFileItemCommand: true\r\n }, {\r\n name: \"move\",\r\n text: _message.default.format(\"dxFileManager-commandMove\"),\r\n icon: \"movetofolder\",\r\n enabled: this._permissions.move\r\n }, {\r\n name: \"copy\",\r\n text: _message.default.format(\"dxFileManager-commandCopy\"),\r\n icon: \"copy\",\r\n enabled: this._permissions.copy\r\n }, {\r\n name: \"delete\",\r\n text: _message.default.format(\"dxFileManager-commandDelete\"),\r\n icon: \"trash\",\r\n enabled: this._permissions.delete\r\n }, {\r\n name: \"download\",\r\n text: _message.default.format(\"dxFileManager-commandDownload\"),\r\n icon: \"download\",\r\n enabled: this._permissions.download\r\n }, {\r\n name: \"upload\",\r\n text: _message.default.format(\"dxFileManager-commandUpload\"),\r\n icon: \"upload\",\r\n enabled: this._permissions.upload,\r\n noFileItemRequired: true\r\n }, {\r\n name: \"refresh\",\r\n text: _message.default.format(\"dxFileManager-commandRefresh\"),\r\n icon: \"dx-filemanager-i dx-filemanager-i-refresh\",\r\n enabled: true,\r\n noFileItemRequired: true\r\n }, {\r\n name: \"thumbnails\",\r\n text: _message.default.format(\"dxFileManager-commandThumbnails\"),\r\n icon: \"mediumiconslayout\",\r\n enabled: true,\r\n noFileItemRequired: true\r\n }, {\r\n name: \"details\",\r\n text: _message.default.format(\"dxFileManager-commandDetails\"),\r\n icon: \"detailslayout\",\r\n enabled: true,\r\n noFileItemRequired: true\r\n }, {\r\n name: \"clearSelection\",\r\n text: _message.default.format(\"dxFileManager-commandClearSelection\"),\r\n icon: \"remove\",\r\n enabled: true\r\n }, {\r\n name: \"showNavPane\",\r\n hint: _message.default.format(\"dxFileManager-commandShowNavPane\"),\r\n icon: \"menu\",\r\n enabled: false,\r\n noFileItemRequired: true\r\n }];\r\n this._commandMap = {};\r\n this._commands.forEach(function(command) {\r\n _this._commandMap[command.name] = command\r\n })\r\n };\r\n _proto.registerActions = function(actions) {\r\n this._actions = (0, _extend.extend)(this._actions, actions)\r\n };\r\n _proto.executeCommand = function(command, arg) {\r\n var commandName = (0, _type.isString)(command) ? command : command.name;\r\n var action = this._actions[commandName];\r\n if (action) {\r\n return action(arg)\r\n }\r\n };\r\n _proto.setCommandEnabled = function(commandName, enabled) {\r\n var command = this.getCommandByName(commandName);\r\n if (command) {\r\n command.enabled = enabled\r\n }\r\n };\r\n _proto.getCommandByName = function(name) {\r\n return this._commandMap[name]\r\n };\r\n _proto.isCommandAvailable = function(commandName, itemInfos) {\r\n var command = this.getCommandByName(commandName);\r\n if (!command || !command.enabled) {\r\n return false\r\n }\r\n if (command.noFileItemRequired) {\r\n return true\r\n }\r\n var itemsLength = itemInfos && itemInfos.length || 0;\r\n if (0 === itemsLength || itemInfos.some(function(item) {\r\n return item.fileItem.isRoot() || item.fileItem.isParentFolder\r\n })) {\r\n return false\r\n }\r\n if (\"download\" === commandName) {\r\n return itemInfos.every(function(itemInfo) {\r\n return !itemInfo.fileItem.isDirectory\r\n })\r\n }\r\n return !command.isSingleFileItemCommand || 1 === itemsLength\r\n };\r\n return FileManagerCommandManager\r\n}();\r\nexports.FileManagerCommandManager = FileManagerCommandManager;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.rows.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _style = require(\"../../core/utils/style\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _string = require(\"../../core/utils/string\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _uiGrid_core2 = require(\"./ui.grid_core.columns_view\");\r\nvar _ui = _interopRequireDefault(require(\"../scroll_view/ui.scrollable\"));\r\nvar _remove_event = _interopRequireDefault(require(\"../../core/remove_event\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar FREE_SPACE_CLASS = \"dx-freespace-row\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar ROW_ALTERNATION_CLASS = \"dx-row-alt\";\r\nvar LAST_ROW_BORDER = \"dx-last-row-border\";\r\nvar EMPTY_CLASS = \"dx-empty\";\r\nvar ROW_INSERTED_ANIMATION_CLASS = \"row-inserted-animation\";\r\nvar LOADPANEL_HIDE_TIMEOUT = 200;\r\n\r\nfunction getMaxHorizontalScrollOffset(scrollable) {\r\n return scrollable ? scrollable.scrollWidth() - scrollable.clientWidth() : 0\r\n}\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n hoverStateEnabled: false,\r\n scrolling: {\r\n useNative: \"auto\"\r\n },\r\n loadPanel: {\r\n enabled: \"auto\",\r\n text: _message.default.format(\"Loading\"),\r\n width: 200,\r\n height: 90,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true\r\n },\r\n rowTemplate: null,\r\n columnAutoWidth: false,\r\n noDataText: _message.default.format(\"dxDataGrid-noDataText\"),\r\n wordWrapEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n rowAlternationEnabled: false,\r\n activeStateEnabled: false,\r\n twoWayBindingEnabled: true\r\n }\r\n },\r\n views: {\r\n rowsView: _uiGrid_core2.ColumnsView.inherit(function() {\r\n var defaultCellTemplate = function($container, options) {\r\n var isDataTextEmpty = (0, _string.isEmpty)(options.text) && \"data\" === options.rowType;\r\n var text = options.text;\r\n var container = $container.get(0);\r\n if (isDataTextEmpty) {\r\n _uiGrid_core.default.setEmptyText($container)\r\n } else {\r\n if (options.column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n }\r\n };\r\n var getScrollableBottomPadding = function(that) {\r\n var scrollable = that.getScrollable();\r\n return scrollable ? Math.ceil(parseFloat(scrollable.$content().css(\"paddingBottom\"))) : 0\r\n };\r\n return {\r\n _getDefaultTemplate: function(column) {\r\n switch (column.command) {\r\n case \"empty\":\r\n return function(container) {\r\n container.html(\" \")\r\n };\r\n default:\r\n return defaultCellTemplate\r\n }\r\n },\r\n _getDefaultGroupTemplate: function(column) {\r\n var that = this;\r\n var summaryTexts = that.option(\"summary.texts\");\r\n return function($container, options) {\r\n var data = options.data;\r\n var text = options.column.caption + \": \" + options.text;\r\n var container = $container.get(0);\r\n if (options.summaryItems && options.summaryItems.length) {\r\n text += \" \" + _uiGrid_core.default.getGroupRowSummaryText(options.summaryItems, summaryTexts)\r\n }\r\n if (data) {\r\n if (options.groupContinuedMessage && options.groupContinuesMessage) {\r\n text += \" (\" + options.groupContinuedMessage + \". \" + options.groupContinuesMessage + \")\"\r\n } else {\r\n if (options.groupContinuesMessage) {\r\n text += \" (\" + options.groupContinuesMessage + \")\"\r\n } else {\r\n if (options.groupContinuedMessage) {\r\n text += \" (\" + options.groupContinuedMessage + \")\"\r\n }\r\n }\r\n }\r\n }\r\n $container.addClass(GROUP_CELL_CLASS);\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n }\r\n },\r\n _update: function() {},\r\n _getCellTemplate: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var template;\r\n if (\"group\" === options.rowType && (0, _type.isDefined)(column.groupIndex) && !column.showWhenGrouped && !column.command) {\r\n template = column.groupCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: that._getDefaultGroupTemplate(column)\r\n }\r\n } else {\r\n if ((\"data\" === options.rowType || column.command) && column.cellTemplate) {\r\n template = column.cellTemplate\r\n } else {\r\n template = {\r\n allowRenderToDetachedContainer: true,\r\n render: that._getDefaultTemplate(column)\r\n }\r\n }\r\n }\r\n return template\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (row) {\r\n var isGroup = \"group\" === row.rowType;\r\n var isDataRow = \"data\" === row.rowType;\r\n isDataRow && $row.addClass(DATA_ROW_CLASS);\r\n isDataRow && this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n this.option(\"showColumnLines\") && $row.addClass(COLUMN_LINES_CLASS);\r\n if (false === row.visible) {\r\n $row.hide()\r\n }\r\n if (isGroup) {\r\n $row.addClass(GROUP_ROW_CLASS);\r\n var isRowExpanded = row.isExpanded;\r\n this.setAria(\"role\", \"row\", $row);\r\n this.setAria(\"expanded\", (0, _type.isDefined)(isRowExpanded) && isRowExpanded.toString(), $row)\r\n }\r\n }\r\n return $row\r\n },\r\n _rowPrepared: function($row, rowOptions, row) {\r\n var _this = this;\r\n if (\"data\" === rowOptions.rowType) {\r\n if (this.option(\"rowAlternationEnabled\")) {\r\n this._isAltRow(row) && $row.addClass(ROW_ALTERNATION_CLASS);\r\n rowOptions.watch && rowOptions.watch(function() {\r\n return _this._isAltRow(row)\r\n }, function(value) {\r\n $row.toggleClass(ROW_ALTERNATION_CLASS, value)\r\n })\r\n }\r\n this._setAriaRowIndex(rowOptions, $row);\r\n rowOptions.watch && rowOptions.watch(function() {\r\n return rowOptions.rowIndex\r\n }, function() {\r\n return _this._setAriaRowIndex(rowOptions, $row)\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _setAriaRowIndex: function(row, $row) {\r\n var component = this.component;\r\n var isPagerMode = \"standard\" === component.option(\"scrolling.mode\") && \"virtual\" !== component.option(\"scrolling.rowRenderingMode\");\r\n var rowIndex = row.rowIndex + 1;\r\n if (isPagerMode) {\r\n rowIndex = component.pageIndex() * component.pageSize() + rowIndex\r\n } else {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n this.setAria(\"rowindex\", rowIndex, $row)\r\n },\r\n _afterRowPrepared: function(e) {\r\n var _this2 = this;\r\n var arg = e.args[0];\r\n var dataController = this._dataController;\r\n var row = dataController.getVisibleRows()[arg.rowIndex];\r\n var watch = this.option(\"integrationOptions.watchMethod\");\r\n if (!arg.data || \"data\" !== arg.rowType || arg.isNewRow || !this.option(\"twoWayBindingEnabled\") || !watch || !row) {\r\n return\r\n }\r\n var dispose = watch(function() {\r\n return dataController.generateDataValues(arg.data, arg.columns)\r\n }, function() {\r\n dataController.repaintRows([row.rowIndex], _this2.option(\"repaintChangesOnly\"))\r\n }, {\r\n deep: true,\r\n skipImmediate: true\r\n });\r\n _events_engine.default.on(arg.rowElement, _remove_event.default, dispose)\r\n },\r\n _renderScrollable: function(force) {\r\n var that = this;\r\n var $element = that.element();\r\n if (!$element.children().length) {\r\n $element.append(\"
\")\r\n }\r\n if (force || !that._loadPanel) {\r\n that._renderLoadPanel($element, $element.parent(), that._dataController.isLocalStore())\r\n }\r\n if ((force || !that.getScrollable()) && that._dataController.isLoaded()) {\r\n var columns = that.getColumns();\r\n var allColumnsHasWidth = true;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].width && !columns[i].minWidth) {\r\n allColumnsHasWidth = false;\r\n break\r\n }\r\n }\r\n if (that.option(\"columnAutoWidth\") || that._hasHeight || allColumnsHasWidth || that._columnsController._isColumnFixing()) {\r\n that._renderScrollableCore($element)\r\n }\r\n }\r\n },\r\n _handleScroll: function(e) {\r\n var that = this;\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n that._isScrollByEvent = !!e.event;\r\n that._scrollTop = e.scrollOffset.top;\r\n that._scrollLeft = e.scrollOffset.left;\r\n if (rtlEnabled) {\r\n this._scrollRight = getMaxHorizontalScrollOffset(e.component) - this._scrollLeft\r\n }\r\n that.scrollChanged.fire(e.scrollOffset, that.name)\r\n },\r\n _renderScrollableCore: function($element) {\r\n var that = this;\r\n var dxScrollableOptions = that._createScrollableOptions();\r\n var scrollHandler = that._handleScroll.bind(that);\r\n dxScrollableOptions.onScroll = scrollHandler;\r\n dxScrollableOptions.onStop = scrollHandler;\r\n that._scrollable = that._createComponent($element, _ui.default, dxScrollableOptions);\r\n that._scrollableContainer = that._scrollable && that._scrollable._$container\r\n },\r\n _renderLoadPanel: _uiGrid_core.default.renderLoadPanel,\r\n _renderContent: function(contentElement, tableElement) {\r\n contentElement.empty().append(tableElement);\r\n return this._findContentElement()\r\n },\r\n _updateContent: function(newTableElement, change) {\r\n var that = this;\r\n var tableElement = that.getTableElement();\r\n var contentElement = that._findContentElement();\r\n var changeType = change && change.changeType;\r\n var executors = [];\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var rowInsertedClass = this.addWidgetPrefix(ROW_INSERTED_ANIMATION_CLASS);\r\n switch (changeType) {\r\n case \"update\":\r\n (0, _iterator.each)(change.rowIndices, function(index, rowIndex) {\r\n var $newRowElement = that._getRowElements(newTableElement).eq(index);\r\n var changeType = change.changeTypes && change.changeTypes[index];\r\n var item = change.items && change.items[index];\r\n executors.push(function() {\r\n var $rowsElement = that._getRowElements();\r\n var $rowElement = $rowsElement.eq(rowIndex);\r\n switch (changeType) {\r\n case \"update\":\r\n if (item) {\r\n var columnIndices = change.columnIndices && change.columnIndices[index];\r\n if ((0, _type.isDefined)(item.visible) && item.visible !== $rowElement.is(\":visible\")) {\r\n $rowElement.toggle(item.visible)\r\n } else {\r\n if (columnIndices) {\r\n that._updateCells($rowElement, $newRowElement, columnIndices)\r\n } else {\r\n $rowElement.replaceWith($newRowElement)\r\n }\r\n }\r\n }\r\n break;\r\n case \"insert\":\r\n if (!$rowsElement.length) {\r\n if (tableElement) {\r\n var target = $newRowElement.is(\"tbody\") ? tableElement : tableElement.children(\"tbody\");\r\n $newRowElement.prependTo(target)\r\n }\r\n } else {\r\n if ($rowElement.length) {\r\n $newRowElement.insertBefore($rowElement)\r\n } else {\r\n $newRowElement.insertAfter($rowsElement.last())\r\n }\r\n }\r\n if (highlightChanges && change.isLiveUpdate) {\r\n $newRowElement.addClass(rowInsertedClass)\r\n }\r\n break;\r\n case \"remove\":\r\n $rowElement.remove()\r\n }\r\n })\r\n });\r\n (0, _iterator.each)(executors, function() {\r\n this()\r\n });\r\n newTableElement.remove();\r\n break;\r\n default:\r\n that.setTableElement(newTableElement);\r\n contentElement.addClass(that.addWidgetPrefix(CONTENT_CLASS));\r\n that._renderContent(contentElement, newTableElement)\r\n }\r\n },\r\n _createEmptyRow: function(className, isFixed, height) {\r\n var that = this;\r\n var $cell;\r\n var $row = that._createRow();\r\n var columns = isFixed ? this.getFixedColumns() : this.getColumns();\r\n $row.addClass(className).toggleClass(COLUMN_LINES_CLASS, that.option(\"showColumnLines\"));\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = that._createCell({\r\n column: columns[i],\r\n rowType: \"freeSpace\",\r\n columnIndex: i,\r\n columns: columns\r\n });\r\n (0, _type.isNumeric)(height) && $cell.css(\"height\", height);\r\n $row.append($cell)\r\n }\r\n that.setAria(\"role\", \"presentation\", $row);\r\n return $row\r\n },\r\n _appendEmptyRow: function($table, $emptyRow, location) {\r\n var $tBodies = this._getBodies($table);\r\n var isTableContainer = !$tBodies.length || $emptyRow.is(\"tbody\");\r\n var $container = isTableContainer ? $table : $tBodies;\r\n if (\"top\" === location) {\r\n $container.first().prepend($emptyRow);\r\n if (isTableContainer) {\r\n var $colgroup = $container.children(\"colgroup\");\r\n $container.prepend($colgroup)\r\n }\r\n } else {\r\n $container.last().append($emptyRow)\r\n }\r\n },\r\n _renderFreeSpaceRow: function($tableElement) {\r\n var $freeSpaceRowElement = this._createEmptyRow(FREE_SPACE_CLASS);\r\n $freeSpaceRowElement = this._wrapRowIfNeed($tableElement, $freeSpaceRowElement);\r\n this._appendEmptyRow($tableElement, $freeSpaceRowElement)\r\n },\r\n _checkRowKeys: function(options) {\r\n var that = this;\r\n var rows = that._getRows(options);\r\n var keyExpr = that._dataController.store() && that._dataController.store().key();\r\n keyExpr && rows.some(function(row) {\r\n if (\"data\" === row.rowType && void 0 === row.key) {\r\n that._dataController.fireError(\"E1046\", keyExpr);\r\n return true\r\n }\r\n })\r\n },\r\n _needUpdateRowHeight: function(itemsCount) {\r\n return itemsCount > 0 && !this._rowHeight\r\n },\r\n _getRowsHeight: function($tableElement) {\r\n var $rowElements = $tableElement.children(\"tbody\").children().not(\".dx-virtual-row\").not(\".\" + FREE_SPACE_CLASS);\r\n return $rowElements.toArray().reduce(function(sum, row) {\r\n return sum + (0, _position.getBoundingRect)(row).height\r\n }, 0)\r\n },\r\n _updateRowHeight: function() {\r\n var that = this;\r\n var $tableElement = that.getTableElement();\r\n var itemsCount = that._dataController.items().length;\r\n if ($tableElement && that._needUpdateRowHeight(itemsCount)) {\r\n var rowsHeight = that._getRowsHeight($tableElement);\r\n that._rowHeight = rowsHeight / itemsCount\r\n }\r\n },\r\n _findContentElement: function() {\r\n var $content = this.element();\r\n var scrollable = this.getScrollable();\r\n if ($content) {\r\n if (scrollable) {\r\n $content = scrollable.$content()\r\n }\r\n return $content.children().first()\r\n }\r\n },\r\n _getRowElements: function(tableElement) {\r\n var $rows = this.callBase(tableElement);\r\n return $rows && $rows.not(\".\" + FREE_SPACE_CLASS)\r\n },\r\n _getFreeSpaceRowElements: function($table) {\r\n var tableElements = $table || this.getTableElements();\r\n return tableElements && tableElements.children(\"tbody\").children(\".\" + FREE_SPACE_CLASS)\r\n },\r\n _getNoDataText: function() {\r\n return this.option(\"noDataText\")\r\n },\r\n _rowClick: function(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", (0, _extend.extend)({\r\n evaluate: function(expr) {\r\n var getter = (0, _data.compileGetter)(expr);\r\n return getter(item.data)\r\n }\r\n }, e, item))\r\n },\r\n _rowDblClick: function(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowDblClick\", (0, _extend.extend)({}, e, item))\r\n },\r\n _getColumnsCountBeforeGroups: function(columns) {\r\n for (var i = 0; i < columns.length; i++) {\r\n if (\"groupExpand\" === columns[i].type) {\r\n return i\r\n }\r\n }\r\n return 0\r\n },\r\n _getGroupCellOptions: function(options) {\r\n var columnsCountBeforeGroups = this._getColumnsCountBeforeGroups(options.columns);\r\n var columnIndex = (options.row.groupIndex || 0) + columnsCountBeforeGroups;\r\n return {\r\n columnIndex: columnIndex,\r\n colspan: options.columns.length - columnIndex - 1\r\n }\r\n },\r\n _renderCells: function($row, options) {\r\n if (\"group\" === options.row.rowType) {\r\n this._renderGroupedCells($row, options)\r\n } else {\r\n if (options.row.values) {\r\n this.callBase($row, options)\r\n }\r\n }\r\n },\r\n _renderGroupedCells: function($row, options) {\r\n var row = options.row;\r\n var expandColumn;\r\n var columns = options.columns;\r\n var rowIndex = row.rowIndex;\r\n var isExpanded;\r\n var groupCellOptions = this._getGroupCellOptions(options);\r\n for (var i = 0; i <= groupCellOptions.columnIndex; i++) {\r\n if (i === groupCellOptions.columnIndex && columns[i].allowCollapsing && \"infinite\" !== options.scrollingMode) {\r\n isExpanded = !!row.isExpanded;\r\n expandColumn = columns[i]\r\n } else {\r\n isExpanded = null;\r\n expandColumn = {\r\n command: \"expand\",\r\n cssClass: columns[i].cssClass\r\n }\r\n }\r\n this._renderCell($row, {\r\n value: isExpanded,\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: expandColumn,\r\n columnIndex: i\r\n })\r\n }\r\n var groupColumnAlignment = (0, _position.getDefaultAlignment)(this.option(\"rtlEnabled\"));\r\n var groupColumn = (0, _extend.extend)({}, columns[groupCellOptions.columnIndex], {\r\n command: null,\r\n cssClass: null,\r\n width: null,\r\n showWhenGrouped: false,\r\n alignment: groupColumnAlignment\r\n });\r\n if (groupCellOptions.colspan > 1) {\r\n groupColumn.colspan = groupCellOptions.colspan\r\n }\r\n this._renderCell($row, {\r\n value: row.values[row.groupIndex],\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: groupColumn,\r\n columnIndex: groupCellOptions.columnIndex\r\n })\r\n },\r\n _renderRows: function($table, options) {\r\n var that = this;\r\n var scrollingMode = that.option(\"scrolling.mode\");\r\n that.callBase($table, (0, _extend.extend)({\r\n scrollingMode: scrollingMode\r\n }, options));\r\n that._checkRowKeys(options.change);\r\n that._renderFreeSpaceRow($table);\r\n if (!that._hasHeight) {\r\n that.updateFreeSpaceRowHeight($table)\r\n }\r\n },\r\n _renderRow: function($table, options) {\r\n var that = this;\r\n var row = options.row;\r\n var rowTemplate = that.option(\"rowTemplate\");\r\n if ((\"data\" === row.rowType || \"group\" === row.rowType) && !(0, _type.isDefined)(row.groupIndex) && rowTemplate) {\r\n that.renderTemplate($table, rowTemplate, (0, _extend.extend)({\r\n columns: options.columns\r\n }, row), true)\r\n } else {\r\n that.callBase($table, options)\r\n }\r\n },\r\n _renderTable: function(options) {\r\n var that = this;\r\n var $table = that.callBase(options);\r\n var resizeCompletedHandler = function resizeCompletedHandler() {\r\n var scrollableInstance = that.getScrollable();\r\n if (scrollableInstance && that.element().closest((0, _window.getWindow)().document).length) {\r\n that.resizeCompleted.remove(resizeCompletedHandler);\r\n scrollableInstance._visibilityChanged(true)\r\n }\r\n };\r\n if (!(0, _type.isDefined)(that.getTableElement())) {\r\n that.setTableElement($table);\r\n that._renderScrollable(true);\r\n that.resizeCompleted.add(resizeCompletedHandler)\r\n } else {\r\n that._renderScrollable()\r\n }\r\n return $table\r\n },\r\n _createTable: function() {\r\n var $table = this.callBase.apply(this, arguments);\r\n if (this.option(\"rowTemplate\")) {\r\n $table.appendTo(this.component.$element())\r\n }\r\n return $table\r\n },\r\n _renderCore: function(change) {\r\n var that = this;\r\n var $element = that.element();\r\n $element.addClass(that.addWidgetPrefix(ROWS_VIEW_CLASS)).toggleClass(that.addWidgetPrefix(NOWRAP_CLASS), !that.option(\"wordWrapEnabled\"));\r\n $element.toggleClass(EMPTY_CLASS, 0 === that._dataController.items().length);\r\n that.setAria(\"role\", \"presentation\", $element);\r\n var $table = that._renderTable({\r\n change: change\r\n });\r\n that._updateContent($table, change);\r\n that.callBase(change);\r\n that._lastColumnWidths = null\r\n },\r\n _getRows: function(change) {\r\n return change && change.items || this._dataController.items()\r\n },\r\n _getCellOptions: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var row = options.row;\r\n var data = row.data;\r\n var summaryCells = row && row.summaryCells;\r\n var value = options.value;\r\n var displayValue = _uiGrid_core.default.getDisplayValue(column, value, data, row.rowType);\r\n var parameters = this.callBase(options);\r\n parameters.value = value;\r\n parameters.oldValue = options.oldValue;\r\n parameters.displayValue = displayValue;\r\n parameters.row = row;\r\n parameters.key = row.key;\r\n parameters.data = data;\r\n parameters.rowType = row.rowType;\r\n parameters.values = row.values;\r\n parameters.text = !column.command ? _uiGrid_core.default.formatValue(displayValue, column) : \"\";\r\n parameters.rowIndex = row.rowIndex;\r\n parameters.summaryItems = summaryCells && summaryCells[options.columnIndex];\r\n parameters.resized = column.resizedCallbacks;\r\n if ((0, _type.isDefined)(column.groupIndex) && !column.command) {\r\n var groupingTextsOptions = that.option(\"grouping.texts\");\r\n var scrollingMode = that.option(\"scrolling.mode\");\r\n if (\"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n parameters.groupContinuesMessage = data && data.isContinuationOnNextPage && groupingTextsOptions && groupingTextsOptions.groupContinuesMessage;\r\n parameters.groupContinuedMessage = data && data.isContinuation && groupingTextsOptions && groupingTextsOptions.groupContinuedMessage\r\n }\r\n }\r\n return parameters\r\n },\r\n _setRowsOpacityCore: function($rows, visibleColumns, columnIndex, value) {\r\n var columnsController = this._columnsController;\r\n var columns = columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n (0, _iterator.each)($rows, function(rowIndex, row) {\r\n if (!(0, _renderer.default)(row).hasClass(GROUP_ROW_CLASS)) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n if ((0, _type.isNumeric)(columnID) && columnsController.isParentBandColumn(visibleColumns[i].index, columnID) || visibleColumns[i].index === columnIndex) {\r\n $rows.eq(rowIndex).children().eq(i).css({\r\n opacity: value\r\n });\r\n if (!(0, _type.isNumeric)(columnID)) {\r\n break\r\n }\r\n }\r\n }\r\n }\r\n })\r\n },\r\n _getDevicePixelRatio: function() {\r\n return (0, _window.getWindow)().devicePixelRatio\r\n },\r\n renderNoDataText: _uiGrid_core.default.renderNoDataText,\r\n getCellOptions: function(rowIndex, columnIdentifier) {\r\n var rowOptions = this._dataController.items()[rowIndex];\r\n var cellOptions;\r\n var column;\r\n if (rowOptions) {\r\n if ((0, _type.isString)(columnIdentifier)) {\r\n column = this._columnsController.columnOption(columnIdentifier)\r\n } else {\r\n column = this._columnsController.getVisibleColumns()[columnIdentifier]\r\n }\r\n if (column) {\r\n cellOptions = this._getCellOptions({\r\n value: column.calculateCellValue(rowOptions.data),\r\n rowIndex: rowOptions.rowIndex,\r\n row: rowOptions,\r\n column: column\r\n })\r\n }\r\n }\r\n return cellOptions\r\n },\r\n getRow: function(index) {\r\n if (index >= 0) {\r\n var rows = this._getRowElements();\r\n if (rows.length > index) {\r\n return (0, _renderer.default)(rows[index])\r\n }\r\n }\r\n },\r\n updateFreeSpaceRowHeight: function($table) {\r\n var _this3 = this;\r\n var dataController = this._dataController;\r\n var itemCount = dataController.items(true).length;\r\n var contentElement = this._findContentElement();\r\n var freeSpaceRowElements = this._getFreeSpaceRowElements($table);\r\n if (freeSpaceRowElements && contentElement && dataController.totalCount() >= 0) {\r\n var isFreeSpaceRowVisible = false;\r\n if (itemCount > 0) {\r\n if (!this._hasHeight) {\r\n var freeSpaceRowCount = dataController.pageSize() - itemCount;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (freeSpaceRowCount > 0 && dataController.pageCount() > 1 && \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n (0, _style.setHeight)(freeSpaceRowElements, freeSpaceRowCount * this._rowHeight);\r\n isFreeSpaceRowVisible = true\r\n }\r\n if (!isFreeSpaceRowVisible && $table) {\r\n (0, _style.setHeight)(freeSpaceRowElements, 0)\r\n } else {\r\n freeSpaceRowElements.toggle(isFreeSpaceRowVisible)\r\n }\r\n this._updateLastRowBorder(isFreeSpaceRowVisible)\r\n } else {\r\n freeSpaceRowElements.hide();\r\n (0, _common.deferUpdate)(function() {\r\n var scrollbarWidth = _this3.getScrollbarWidth(true);\r\n var elementHeightWithoutScrollbar = _this3.element().height() - scrollbarWidth;\r\n var contentHeight = contentElement.outerHeight();\r\n var showFreeSpaceRow = elementHeightWithoutScrollbar - contentHeight > 0;\r\n var rowsHeight = _this3._getRowsHeight(contentElement.children().first());\r\n var $tableElement = $table || _this3.getTableElements();\r\n var borderTopWidth = Math.ceil(parseFloat($tableElement.css(\"borderTopWidth\")));\r\n var heightCorrection = _this3._getHeightCorrection();\r\n var resultHeight = elementHeightWithoutScrollbar - rowsHeight - borderTopWidth - heightCorrection;\r\n if (showFreeSpaceRow) {\r\n (0, _common.deferRender)(function() {\r\n freeSpaceRowElements.css(\"height\", resultHeight);\r\n isFreeSpaceRowVisible = true;\r\n freeSpaceRowElements.show()\r\n })\r\n }(0, _common.deferRender)(function() {\r\n return _this3._updateLastRowBorder(isFreeSpaceRowVisible)\r\n })\r\n })\r\n }\r\n } else {\r\n freeSpaceRowElements.css(\"height\", 0);\r\n freeSpaceRowElements.show();\r\n this._updateLastRowBorder(true)\r\n }\r\n }\r\n },\r\n _getHeightCorrection: function() {\r\n var isZoomedWebkit = _browser.default.webkit && this._getDevicePixelRatio() >= 2;\r\n var hasExtraBorderTop = _browser.default.mozilla && _browser.default.version >= 70 && !this.option(\"showRowLines\");\r\n return isZoomedWebkit || hasExtraBorderTop ? 1 : 0\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n this.callBase(e);\r\n this._fireColumnResizedCallbacks()\r\n }\r\n },\r\n getScrollable: function() {\r\n return this._scrollable\r\n },\r\n init: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n that._editorFactoryController = that.getController(\"editorFactory\");\r\n that._rowHeight = 0;\r\n that._scrollTop = 0;\r\n that._scrollLeft = -1;\r\n that._scrollRight = 0;\r\n that._hasHeight = false;\r\n dataController.loadingChanged.add(function(isLoading, messageText) {\r\n that.setLoading(isLoading, messageText)\r\n });\r\n dataController.dataSourceChanged.add(function() {\r\n if (that._scrollLeft >= 0) {\r\n that._handleScroll({\r\n component: that.getScrollable(),\r\n scrollOffset: {\r\n top: that._scrollTop,\r\n left: that._scrollLeft\r\n }\r\n })\r\n }\r\n })\r\n },\r\n _handleDataChanged: function(change) {\r\n var that = this;\r\n switch (change.changeType) {\r\n case \"refresh\":\r\n case \"prepend\":\r\n case \"append\":\r\n case \"update\":\r\n that.render(null, change);\r\n break;\r\n default:\r\n that._update(change)\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"isScrollbarVisible\", \"getTopVisibleRowData\", \"getScrollbarWidth\", \"getCellElement\", \"getRowElement\", \"getScrollable\"]\r\n },\r\n contentWidth: function() {\r\n return this.element().width() - this.getScrollbarWidth()\r\n },\r\n getScrollbarWidth: function(isHorizontal) {\r\n var scrollableContainer = this._scrollableContainer && this._scrollableContainer.get(0);\r\n var scrollbarWidth = 0;\r\n if (scrollableContainer) {\r\n if (!isHorizontal) {\r\n scrollbarWidth = scrollableContainer.clientWidth ? scrollableContainer.offsetWidth - scrollableContainer.clientWidth : 0\r\n } else {\r\n scrollbarWidth = scrollableContainer.clientHeight ? scrollableContainer.offsetHeight - scrollableContainer.clientHeight : 0;\r\n scrollbarWidth += getScrollableBottomPadding(this)\r\n }\r\n }\r\n return scrollbarWidth > 0 ? scrollbarWidth : 0\r\n },\r\n _fireColumnResizedCallbacks: function() {\r\n var that = this;\r\n var lastColumnWidths = that._lastColumnWidths || [];\r\n var columnWidths = [];\r\n var columns = that.getColumns();\r\n for (var i = 0; i < columns.length; i++) {\r\n columnWidths[i] = columns[i].visibleWidth;\r\n if (columns[i].resizedCallbacks && !(0, _type.isDefined)(columns[i].groupIndex) && lastColumnWidths[i] !== columnWidths[i]) {\r\n columns[i].resizedCallbacks.fire(columnWidths[i])\r\n }\r\n }\r\n that._lastColumnWidths = columnWidths\r\n },\r\n _updateLastRowBorder: function(isFreeSpaceRowVisible) {\r\n if (this.option(\"showBorders\") && this.option(\"showRowLines\") && !isFreeSpaceRowVisible) {\r\n this.element().addClass(LAST_ROW_BORDER)\r\n } else {\r\n this.element().removeClass(LAST_ROW_BORDER)\r\n }\r\n },\r\n _updateScrollable: function() {\r\n var dxScrollable = _ui.default.getInstance(this.element());\r\n if (dxScrollable) {\r\n dxScrollable.update();\r\n this._updateHorizontalScrollPosition()\r\n }\r\n },\r\n _updateHorizontalScrollPosition: function() {\r\n var scrollable = this.getScrollable();\r\n var scrollLeft = scrollable && scrollable.scrollOffset().left;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n var maxHorizontalScrollOffset = getMaxHorizontalScrollOffset(scrollable);\r\n var scrollRight = maxHorizontalScrollOffset - scrollLeft;\r\n if (scrollRight !== this._scrollRight) {\r\n this._scrollLeft = maxHorizontalScrollOffset - this._scrollRight\r\n }\r\n }\r\n if (this._scrollLeft >= 0 && scrollLeft !== this._scrollLeft) {\r\n scrollable.scrollTo({\r\n x: this._scrollLeft\r\n })\r\n }\r\n },\r\n _resizeCore: function() {\r\n var that = this;\r\n that._fireColumnResizedCallbacks();\r\n that._updateRowHeight();\r\n (0, _common.deferRender)(function() {\r\n that._renderScrollable();\r\n that.renderNoDataText();\r\n that.updateFreeSpaceRowHeight();\r\n (0, _common.deferUpdate)(function() {\r\n that._updateScrollable()\r\n })\r\n })\r\n },\r\n scrollTo: function(location) {\r\n var $element = this.element();\r\n var dxScrollable = $element && _ui.default.getInstance($element);\r\n if (dxScrollable) {\r\n dxScrollable.scrollTo(location)\r\n }\r\n },\r\n height: function(_height, hasHeight) {\r\n var that = this;\r\n var $element = this.element();\r\n if (0 === arguments.length) {\r\n return $element ? $element.outerHeight(true) : 0\r\n }\r\n that._hasHeight = void 0 === hasHeight ? \"auto\" !== _height : hasHeight;\r\n if ((0, _type.isDefined)(_height) && $element) {\r\n (0, _style.setHeight)($element, _height)\r\n }\r\n },\r\n setLoading: function(isLoading, messageText) {\r\n var that = this;\r\n var loadPanel = that._loadPanel;\r\n var dataController = that._dataController;\r\n var loadPanelOptions = that.option(\"loadPanel\") || {};\r\n var animation = dataController.isLoaded() ? loadPanelOptions.animation : null;\r\n var $element = that.element();\r\n if (!(0, _window.hasWindow)()) {\r\n return\r\n }\r\n if (!loadPanel && void 0 !== messageText && dataController.isLocalStore() && \"auto\" === loadPanelOptions.enabled && $element) {\r\n that._renderLoadPanel($element, $element.parent());\r\n loadPanel = that._loadPanel\r\n }\r\n if (loadPanel) {\r\n var visibilityOptions = {\r\n message: messageText || loadPanelOptions.text,\r\n animation: animation,\r\n visible: isLoading\r\n };\r\n clearTimeout(that._hideLoadingTimeoutID);\r\n if (loadPanel.option(\"visible\") && !isLoading) {\r\n that._hideLoadingTimeoutID = setTimeout(function() {\r\n loadPanel.option(visibilityOptions)\r\n }, LOADPANEL_HIDE_TIMEOUT)\r\n } else {\r\n loadPanel.option(visibilityOptions)\r\n }\r\n }\r\n },\r\n setRowsOpacity: function(columnIndex, value) {\r\n var $rows = this._getRowElements().not(\".\" + GROUP_ROW_CLASS) || [];\r\n this._setRowsOpacityCore($rows, this.getColumns(), columnIndex, value)\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var $cells = this.callBase.apply(this, arguments);\r\n if ($cells) {\r\n var groupCellIndex = $cells.filter(\".\" + GROUP_CELL_CLASS).index();\r\n if (groupCellIndex >= 0 && $cells.length > groupCellIndex + 1) {\r\n return $cells.slice(0, groupCellIndex + 1)\r\n }\r\n }\r\n return $cells\r\n },\r\n getTopVisibleItemIndex: function(isFloor) {\r\n var that = this;\r\n var itemIndex = 0;\r\n var prevOffsetTop = 0;\r\n var offsetTop = 0;\r\n var scrollPosition = that._scrollTop;\r\n var $contentElement = that._findContentElement();\r\n var contentElementOffsetTop = $contentElement && $contentElement.offset().top;\r\n var items = that._dataController.items();\r\n var tableElement = that.getTableElement();\r\n if (items.length && tableElement) {\r\n var rowElements = that._getRowElements(tableElement).filter(\":visible\");\r\n for (itemIndex = 0; itemIndex < items.length; itemIndex++) {\r\n prevOffsetTop = offsetTop;\r\n var rowElement = rowElements.eq(itemIndex);\r\n if (rowElement.length) {\r\n offsetTop = rowElement.offset().top - contentElementOffsetTop;\r\n if (offsetTop > scrollPosition) {\r\n if (itemIndex) {\r\n if (isFloor || 2 * scrollPosition < Math.round(offsetTop + prevOffsetTop)) {\r\n itemIndex--\r\n }\r\n }\r\n break\r\n }\r\n }\r\n }\r\n if (itemIndex && itemIndex === items.length) {\r\n itemIndex--\r\n }\r\n }\r\n return itemIndex\r\n },\r\n getTopVisibleRowData: function() {\r\n var itemIndex = this.getTopVisibleItemIndex();\r\n var items = this._dataController.items();\r\n if (items[itemIndex]) {\r\n return items[itemIndex].data\r\n }\r\n },\r\n _scrollToElement: function($element, offset) {\r\n var scrollable = this.getScrollable();\r\n scrollable && scrollable.scrollToElement($element, offset)\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n that.callBase(args);\r\n switch (args.name) {\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n case \"showRowLines\":\r\n case \"rowAlternationEnabled\":\r\n case \"rowTemplate\":\r\n case \"twoWayBindingEnabled\":\r\n that._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"scrolling\":\r\n that._rowHeight = null;\r\n that._tableElement = null;\r\n args.handled = true;\r\n break;\r\n case \"rtlEnabled\":\r\n that._rowHeight = null;\r\n that._tableElement = null;\r\n break;\r\n case \"loadPanel\":\r\n that._tableElement = null;\r\n that._invalidate(true, \"loadPanel.enabled\" !== args.fullName);\r\n args.handled = true;\r\n break;\r\n case \"noDataText\":\r\n that.renderNoDataText();\r\n args.handled = true\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n this._scrollable && this._scrollable.dispose()\r\n },\r\n setScrollerSpacing: function() {}\r\n }\r\n }())\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.items_list.thumbnails.list_box.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _hold = _interopRequireDefault(require(\"../../events/hold\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _bindable_template = require(\"../../core/templates/bindable_template\");\r\nvar _scroll_view = _interopRequireDefault(require(\"../scroll_view\"));\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"../collection/ui.collection_widget.edit\"));\r\nvar _selection = _interopRequireDefault(require(\"../selection/selection\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_THUMBNAILS_VIEW_PORT_CLASS = \"dx-filemanager-thumbnails-view-port\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_LIST_CONTAINER_CLASS = \"dx-filemanager-thumbnails-container\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_CLASS = \"dx-filemanager-thumbnails-item\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_NAME_CLASS = \"dx-filemanager-thumbnails-item-name\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_SPACER_CLASS = \"dx-filemanager-thumbnails-item-spacer\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_DATA_KEY = \"dxFileManagerItemData\";\r\nvar FILE_MANAGER_THUMBNAILS_LIST_BOX_NAMESPACE = \"dxFileManagerThumbnailsListBox\";\r\nvar FILE_MANAGER_THUMBNAILS_LIST_BOX_HOLD_EVENT_NAME = (0, _index.addNamespace)(_hold.default.name, FILE_MANAGER_THUMBNAILS_LIST_BOX_NAMESPACE);\r\nvar FileManagerThumbnailListBox = function(_CollectionWidget) {\r\n _inheritsLoose(FileManagerThumbnailListBox, _CollectionWidget);\r\n\r\n function FileManagerThumbnailListBox() {\r\n return _CollectionWidget.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerThumbnailListBox.prototype;\r\n _proto._initMarkup = function() {\r\n this._initActions();\r\n this._lockFocusedItemProcessing = false;\r\n this.$element().addClass(FILE_MANAGER_THUMBNAILS_VIEW_PORT_CLASS);\r\n this._renderScrollView();\r\n this._renderItemsContainer();\r\n this._createScrollViewControl();\r\n _CollectionWidget.prototype._initMarkup.call(this);\r\n this.onFocusedItemChanged = this._onFocusedItemChanged.bind(this);\r\n this._layoutUtils = new ListBoxLayoutUtils(this._scrollView, this.$element(), this._$itemContainer, this.itemElements().first());\r\n this._syncFocusedItemKey()\r\n };\r\n _proto._initActions = function() {\r\n this._actions = {\r\n onItemEnterKeyPressed: this._createActionByOption(\"onItemEnterKeyPressed\"),\r\n onFocusedItemChanged: this._createActionByOption(\"onFocusedItemChanged\")\r\n }\r\n };\r\n _proto._initTemplates = function() {\r\n _CollectionWidget.prototype._initTemplates.call(this);\r\n this._itemThumbnailTemplate = this.option(\"itemThumbnailTemplate\");\r\n this._getTooltipText = this.option(\"getTooltipText\");\r\n this._templateManager.addDefaultTemplates({\r\n item: new _bindable_template.BindableTemplate(function($container, data, itemModel) {\r\n var $itemElement = this._getDefaultItemTemplate(itemModel, $container);\r\n $container.append($itemElement)\r\n }.bind(this), [\"fileItem\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n };\r\n _proto._createScrollViewControl = function() {\r\n if (!this._scrollView) {\r\n this._scrollView = this._createComponent(this._$scrollView, _scroll_view.default, {\r\n scrollByContent: true,\r\n scrollByThumb: true,\r\n useKeyboard: false,\r\n showScrollbar: \"onHover\"\r\n })\r\n }\r\n };\r\n _proto._renderScrollView = function() {\r\n if (!this._$scrollView) {\r\n this._$scrollView = (0, _renderer.default)(\"
\").appendTo(this.$element())\r\n }\r\n };\r\n _proto._renderItemsContainer = function() {\r\n if (!this._$itemContainer) {\r\n this._$itemContainer = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_THUMBNAILS_ITEM_LIST_CONTAINER_CLASS).appendTo(this._$scrollView)\r\n }\r\n };\r\n _proto._render = function() {\r\n _CollectionWidget.prototype._render.call(this);\r\n this._detachEventHandlers();\r\n this._attachEventHandlers()\r\n };\r\n _proto._clean = function() {\r\n this._detachEventHandlers();\r\n _CollectionWidget.prototype._clean.call(this)\r\n };\r\n _proto._supportedKeys = function() {\r\n return (0, _extend.extend)(_CollectionWidget.prototype._supportedKeys.call(this), {\r\n upArrow: function(e) {\r\n this._beforeKeyProcessing(e);\r\n this._processArrowKeys(-1, false, e)\r\n },\r\n downArrow: function(e) {\r\n this._beforeKeyProcessing(e);\r\n this._processArrowKeys(1, false, e)\r\n },\r\n home: function(e) {\r\n this._beforeKeyProcessing(e);\r\n this._processHomeEndKeys(0, true, e)\r\n },\r\n end: function(e) {\r\n this._beforeKeyProcessing(e);\r\n this._processHomeEndKeys(this._getItemsLength() - 1, true, e)\r\n },\r\n pageUp: function(e) {\r\n this._beforeKeyProcessing(e);\r\n this._processPageChange(true, e)\r\n },\r\n pageDown: function(e) {\r\n this._beforeKeyProcessing(e);\r\n this._processPageChange(false, e)\r\n },\r\n enter: function(e) {\r\n this._beforeKeyProcessing(e);\r\n this._actions.onItemEnterKeyPressed(this._getFocusedItem())\r\n },\r\n A: function(e) {\r\n this._beforeKeyProcessing(e);\r\n if ((0, _index.isCommandKeyPressed)(e)) {\r\n this.selectAll()\r\n }\r\n }\r\n })\r\n };\r\n _proto._beforeKeyProcessing = function(e) {\r\n e.preventDefault();\r\n this._layoutUtils.reset()\r\n };\r\n _proto._processArrowKeys = function(offset, horizontal, eventArgs) {\r\n var item = this._getFocusedItem();\r\n if (item) {\r\n if (!horizontal) {\r\n var layout = this._layoutUtils.getLayoutModel();\r\n if (!layout) {\r\n return\r\n }\r\n offset *= layout.itemPerRowCount\r\n }\r\n var newItemIndex = this._getIndexByItem(item) + offset;\r\n this._focusItemByIndex(newItemIndex, true, eventArgs)\r\n }\r\n };\r\n _proto._processHomeEndKeys = function(index, scrollToItem, eventArgs) {\r\n this._focusItemByIndex(index, scrollToItem, eventArgs)\r\n };\r\n _proto._processPageChange = function(pageUp, eventArgs) {\r\n var item = this._getFocusedItem();\r\n if (!item) {\r\n return\r\n }\r\n var layout = this._layoutUtils.getLayoutModel();\r\n if (!layout) {\r\n return\r\n }\r\n var itemLayout = this._layoutUtils.createItemLayoutModel(this._getIndexByItem(item));\r\n var rowOffset = pageUp ? layout.rowPerPageRate : -layout.rowPerPageRate;\r\n var newRowRate = itemLayout.itemRowIndex - rowOffset;\r\n var roundFunc = pageUp ? Math.ceil : Math.floor;\r\n var newRowIndex = roundFunc(newRowRate);\r\n var newItemIndex = newRowIndex * layout.itemPerRowCount + itemLayout.itemColumnIndex;\r\n if (newItemIndex < 0) {\r\n newItemIndex = 0\r\n } else {\r\n if (newItemIndex >= this._getItemsLength()) {\r\n newItemIndex = this._getItemsLength() - 1\r\n }\r\n }\r\n this._focusItemByIndex(newItemIndex, true, eventArgs)\r\n };\r\n _proto._processLongTap = function(e) {\r\n var $targetItem = this._closestItemElement((0, _renderer.default)(e.target));\r\n var itemIndex = this._getIndexByItemElement($targetItem);\r\n this._selection.changeItemSelection(itemIndex, {\r\n control: true\r\n })\r\n };\r\n _proto._attachEventHandlers = function() {\r\n var _this = this;\r\n if (\"multiple\" === this.option(\"selectionMode\")) {\r\n _events_engine.default.on(this._itemContainer(), FILE_MANAGER_THUMBNAILS_LIST_BOX_HOLD_EVENT_NAME, \".\".concat(this._itemContentClass()), function(e) {\r\n _this._processLongTap(e);\r\n e.stopPropagation()\r\n })\r\n }\r\n _events_engine.default.on(this._itemContainer(), \"mousedown selectstart\", function(e) {\r\n if (e.shiftKey) {\r\n e.preventDefault()\r\n }\r\n })\r\n };\r\n _proto._detachEventHandlers = function() {\r\n _events_engine.default.off(this._itemContainer(), FILE_MANAGER_THUMBNAILS_LIST_BOX_HOLD_EVENT_NAME);\r\n _events_engine.default.off(this._itemContainer(), \"mousedown selectstart\")\r\n };\r\n _proto._itemContainer = function() {\r\n return this._$itemContainer\r\n };\r\n _proto._itemClass = function() {\r\n return FILE_MANAGER_THUMBNAILS_ITEM_CLASS\r\n };\r\n _proto._itemDataKey = function() {\r\n return FILE_MANAGER_THUMBNAILS_ITEM_DATA_KEY\r\n };\r\n _proto._getDefaultItemTemplate = function(fileItemInfo, $itemElement) {\r\n $itemElement.attr(\"title\", this._getTooltipText(fileItemInfo));\r\n var $itemThumbnail = this._itemThumbnailTemplate(fileItemInfo);\r\n var $itemSpacer = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_THUMBNAILS_ITEM_SPACER_CLASS);\r\n var $itemName = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_THUMBNAILS_ITEM_NAME_CLASS).text(fileItemInfo.fileItem.name);\r\n $itemElement.append($itemThumbnail, $itemSpacer, $itemName)\r\n };\r\n _proto._itemSelectHandler = function(e) {\r\n var options = {};\r\n if (\"multiple\" === this.option(\"selectionMode\")) {\r\n if (!this._isPreserveSelectionMode) {\r\n this._isPreserveSelectionMode = (0, _index.isCommandKeyPressed)(e) || e.shiftKey\r\n }\r\n options = {\r\n control: this._isPreserveSelectionMode,\r\n shift: e.shiftKey\r\n }\r\n }\r\n var index = this._getIndexByItemElement(e.currentTarget);\r\n this._selection.changeItemSelection(index, options)\r\n };\r\n _proto._initSelectionModule = function() {\r\n var _this2 = this;\r\n _CollectionWidget.prototype._initSelectionModule.call(this);\r\n var options = (0, _extend.extend)(this._selection.options, {\r\n selectedKeys: this.option(\"selectedItemKeys\"),\r\n onSelectionChanged: function(args) {\r\n _this2.option(\"selectedItems\", _this2._getItemsByKeys(args.selectedItemKeys, args.selectedItems));\r\n _this2._updateSelectedItems(args)\r\n }\r\n });\r\n this._selection = new _selection.default(options)\r\n };\r\n _proto._updateSelectedItems = function(args) {\r\n var _this3 = this;\r\n var addedItemKeys = args.addedItemKeys;\r\n var removedItemKeys = args.removedItemKeys;\r\n if (this._rendered && (addedItemKeys.length || removedItemKeys.length)) {\r\n var selectionChangePromise = this._selectionChangePromise;\r\n if (!this._rendering) {\r\n var addedSelection = [];\r\n var normalizedIndex;\r\n var removedSelection = [];\r\n this._editStrategy.beginCache();\r\n for (var i = 0; i < removedItemKeys.length; i++) {\r\n normalizedIndex = this._getIndexByKey(removedItemKeys[i]);\r\n removedSelection.push(normalizedIndex);\r\n this._removeSelection(normalizedIndex)\r\n }\r\n for (var _i = 0; _i < addedItemKeys.length; _i++) {\r\n normalizedIndex = this._getIndexByKey(addedItemKeys[_i]);\r\n addedSelection.push(normalizedIndex);\r\n this._addSelection(normalizedIndex)\r\n }\r\n this._editStrategy.endCache();\r\n this._updateSelection(addedSelection, removedSelection)\r\n }(0, _deferred.when)(selectionChangePromise).done(function() {\r\n return _this3._fireSelectionChangeEvent(args)\r\n })\r\n }\r\n };\r\n _proto._fireSelectionChangeEvent = function(args) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })(args)\r\n };\r\n _proto._updateSelection = function(addedSelection, removedSelection) {\r\n var selectedItemsCount = this.getSelectedItems().length;\r\n if (0 === selectedItemsCount) {\r\n this._isPreserveSelectionMode = false\r\n }\r\n };\r\n _proto._normalizeSelectedItems = function() {\r\n var newKeys = this._getKeysByItems(this.option(\"selectedItems\"));\r\n var oldKeys = this._selection.getSelectedItemKeys();\r\n if (!this._compareKeys(oldKeys, newKeys)) {\r\n this._selection.setSelection(newKeys)\r\n }\r\n return (new _deferred.Deferred).resolve().promise()\r\n };\r\n _proto._focusOutHandler = function() {};\r\n _proto._getItems = function() {\r\n return this.option(\"items\") || []\r\n };\r\n _proto._getItemsLength = function() {\r\n return this._getItems().length\r\n };\r\n _proto._getIndexByItemElement = function(itemElement) {\r\n return this._editStrategy.getNormalizedIndex(itemElement)\r\n };\r\n _proto._getItemByIndex = function(index) {\r\n return this._getItems()[index]\r\n };\r\n _proto._getFocusedItem = function() {\r\n return this.getItemByItemElement(this.option(\"focusedElement\"))\r\n };\r\n _proto._focusItem = function(item, scrollToItem) {\r\n this.option(\"focusedElement\", this.getItemElementByItem(item));\r\n if (scrollToItem) {\r\n this._layoutUtils.scrollToItem(this._getIndexByItem(item))\r\n }\r\n };\r\n _proto._focusItemByIndex = function(index, scrollToItem, eventArgs) {\r\n if (index >= 0 && index < this._getItemsLength()) {\r\n var item = this._getItemByIndex(index);\r\n this._focusItem(item, scrollToItem, eventArgs)\r\n }\r\n };\r\n _proto._syncFocusedItemKey = function() {\r\n var _this4 = this;\r\n if (!this._syncFocusedItemKeyDeferred) {\r\n this._syncFocusedItemKeyDeferred = new _deferred.Deferred\r\n }\r\n var deferred = this._syncFocusedItemKeyDeferred;\r\n if (this._dataSource && this._dataSource.isLoading()) {\r\n return deferred.promise()\r\n }\r\n var focusedItemKey = this.option(\"focusedItemKey\");\r\n if ((0, _type.isDefined)(focusedItemKey)) {\r\n var items = this.option(\"items\");\r\n var focusedItem = (0, _array.find)(items, function(item) {\r\n return _this4.keyOf(item) === focusedItemKey\r\n });\r\n if (focusedItem) {\r\n this._focusItem(focusedItem, true);\r\n deferred.resolve()\r\n } else {\r\n this.option(\"focusedItemKey\", void 0);\r\n deferred.reject()\r\n }\r\n } else {\r\n deferred.resolve()\r\n }\r\n this._syncFocusedItemKeyDeferred = null;\r\n return deferred.promise()\r\n };\r\n _proto._onFocusedItemChanged = function() {\r\n var focusedItem = this._getFocusedItem();\r\n var newFocusedItemKey = this.keyOf(focusedItem);\r\n var oldFocusedItemKey = this.option(\"focusedItemKey\");\r\n if (newFocusedItemKey !== oldFocusedItemKey) {\r\n this._lockFocusedItemProcessing = true;\r\n this.option(\"focusedItemKey\", newFocusedItemKey);\r\n this._lockFocusedItemProcessing = false;\r\n this._raiseFocusedItemChanged(focusedItem)\r\n }\r\n };\r\n _proto._raiseFocusedItemChanged = function(focusedItem) {\r\n var args = {\r\n item: focusedItem,\r\n itemElement: this.option(\"focusedElement\")\r\n };\r\n this._actions.onFocusedItemChanged(args)\r\n };\r\n _proto._changeItemSelection = function(item, select) {\r\n if (this.isItemSelected(item) === select) {\r\n return\r\n }\r\n var itemElement = this.getItemElementByItem(item);\r\n var index = this._getIndexByItemElement(itemElement);\r\n this._selection.changeItemSelection(index, {\r\n control: this._isPreserveSelectionMode\r\n })\r\n };\r\n _proto._chooseSelectOption = function() {\r\n return \"selectedItemKeys\"\r\n };\r\n _proto.getSelectedItems = function() {\r\n return this._selection.getSelectedItems()\r\n };\r\n _proto.getItemElementByItem = function(item) {\r\n return this._editStrategy.getItemElement(item)\r\n };\r\n _proto.getItemByItemElement = function(itemElement) {\r\n return this._getItemByIndex(this._getIndexByItemElement(itemElement))\r\n };\r\n _proto.selectAll = function() {\r\n if (\"multiple\" !== this.option(\"selectionMode\")) {\r\n return\r\n }\r\n this._selection.selectAll();\r\n this._isPreserveSelectionMode = true\r\n };\r\n _proto.selectItem = function(item) {\r\n this._changeItemSelection(item, true)\r\n };\r\n _proto.deselectItem = function(item) {\r\n this._changeItemSelection(item, false)\r\n };\r\n _proto.clearSelection = function() {\r\n this._selection.deselectAll()\r\n };\r\n _proto._optionChanged = function(args) {\r\n var _this5 = this;\r\n switch (args.name) {\r\n case \"items\":\r\n if (this._layoutUtils) {\r\n this._layoutUtils.updateItems(this.itemElements().first())\r\n }\r\n _CollectionWidget.prototype._optionChanged.call(this, args);\r\n break;\r\n case \"focusedItemKey\":\r\n if (this._lockFocusedItemProcessing) {\r\n break\r\n }\r\n if ((0, _type.isDefined)(args.value)) {\r\n this._syncFocusedItemKey().done(function() {\r\n var focusedItem = _this5._getFocusedItem();\r\n _this5._raiseFocusedItemChanged(focusedItem)\r\n })\r\n } else {\r\n this.option(\"focusedElement\", null);\r\n this._raiseFocusedItemChanged(null)\r\n }\r\n break;\r\n case \"onItemEnterKeyPressed\":\r\n case \"onFocusedItemChanged\":\r\n this._actions[args.name] = this._createActionByOption(args.name);\r\n break;\r\n default:\r\n _CollectionWidget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n return FileManagerThumbnailListBox\r\n}(_uiCollection_widget.default);\r\nvar ListBoxLayoutUtils = function() {\r\n function ListBoxLayoutUtils(scrollView, $viewPort, $itemContainer, $item) {\r\n this._layoutModel = null;\r\n this._scrollView = scrollView;\r\n this._$viewPort = $viewPort;\r\n this._$itemContainer = $itemContainer;\r\n this._$item = $item\r\n }\r\n var _proto2 = ListBoxLayoutUtils.prototype;\r\n _proto2.updateItems = function($item) {\r\n this._$item = $item\r\n };\r\n _proto2.reset = function() {\r\n this._layoutModel = null\r\n };\r\n _proto2.getLayoutModel = function() {\r\n if (!this._layoutModel) {\r\n this._layoutModel = this._createLayoutModel()\r\n }\r\n return this._layoutModel\r\n };\r\n _proto2._createLayoutModel = function() {\r\n if (!this._$item) {\r\n return null\r\n }\r\n var itemWidth = this._$item.outerWidth(true);\r\n if (0 === itemWidth) {\r\n return null\r\n }\r\n var itemHeight = this._$item.outerHeight(true);\r\n var viewPortWidth = this._$itemContainer.innerWidth();\r\n var viewPortHeight = this._$viewPort.innerHeight();\r\n var viewPortScrollTop = this._scrollView.scrollTop();\r\n var viewPortScrollBottom = viewPortScrollTop + viewPortHeight;\r\n var itemPerRowCount = Math.floor(viewPortWidth / itemWidth);\r\n var rowPerPageRate = viewPortHeight / itemHeight;\r\n return {\r\n itemWidth: itemWidth,\r\n itemHeight: itemHeight,\r\n viewPortWidth: viewPortWidth,\r\n viewPortHeight: viewPortHeight,\r\n viewPortScrollTop: viewPortScrollTop,\r\n viewPortScrollBottom: viewPortScrollBottom,\r\n itemPerRowCount: itemPerRowCount,\r\n rowPerPageRate: rowPerPageRate\r\n }\r\n };\r\n _proto2.createItemLayoutModel = function(index) {\r\n var layout = this.getLayoutModel();\r\n if (!layout) {\r\n return null\r\n }\r\n var itemRowIndex = Math.floor(index / layout.itemPerRowCount);\r\n var itemColumnIndex = index % layout.itemPerRowCount;\r\n var itemTop = itemRowIndex * layout.itemHeight;\r\n var itemBottom = itemTop + layout.itemHeight;\r\n return {\r\n itemRowIndex: itemRowIndex,\r\n itemColumnIndex: itemColumnIndex,\r\n itemTop: itemTop,\r\n itemBottom: itemBottom\r\n }\r\n };\r\n _proto2.scrollToItem = function(index) {\r\n var layout = this.getLayoutModel();\r\n if (!layout) {\r\n return\r\n }\r\n var itemRowIndex = Math.floor(index / layout.itemPerRowCount);\r\n var itemTop = itemRowIndex * layout.itemHeight;\r\n var itemBottom = itemTop + layout.itemHeight;\r\n var newScrollTop = layout.viewPortScrollTop;\r\n if (itemTop < layout.viewPortScrollTop) {\r\n newScrollTop = itemTop\r\n } else {\r\n if (itemBottom > layout.viewPortScrollBottom) {\r\n newScrollTop = itemBottom - layout.viewPortHeight\r\n }\r\n }\r\n this._scrollView.scrollTo(newScrollTop)\r\n };\r\n return ListBoxLayoutUtils\r\n}();\r\nvar _default = FileManagerThumbnailListBox;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (format_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"./core/utils/type\");\r\nvar _date = _interopRequireDefault(require(\"./core/utils/date\"));\r\nvar _number = _interopRequireDefault(require(\"./localization/number\"));\r\nvar _date2 = _interopRequireDefault(require(\"./localization/date\"));\r\nvar _dependency_injector = _interopRequireDefault(require(\"./core/utils/dependency_injector\"));\r\nrequire(\"./localization/currency\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = (0, _dependency_injector.default)({\r\n format: function(value, _format) {\r\n var formatIsValid = (0, _type.isString)(_format) && \"\" !== _format || (0, _type.isPlainObject)(_format) || (0, _type.isFunction)(_format);\r\n var valueIsValid = (0, _type.isNumeric)(value) || (0, _type.isDate)(value);\r\n if (!formatIsValid || !valueIsValid) {\r\n return (0, _type.isDefined)(value) ? value.toString() : \"\"\r\n }\r\n if ((0, _type.isFunction)(_format)) {\r\n return _format(value)\r\n }\r\n if ((0, _type.isString)(_format)) {\r\n _format = {\r\n type: _format\r\n }\r\n }\r\n if ((0, _type.isNumeric)(value)) {\r\n return _number.default.format(value, _format)\r\n }\r\n if ((0, _type.isDate)(value)) {\r\n return _date2.default.format(value, _format)\r\n }\r\n },\r\n getTimeFormat: function(showSecond) {\r\n return showSecond ? \"longtime\" : \"shorttime\"\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!Array.isArray(format)) {\r\n return format\r\n }\r\n if (1 === format.length) {\r\n return format[0]\r\n }\r\n return function(date) {\r\n return format.map(function(formatPart) {\r\n return _date2.default.format(date, formatPart)\r\n }).join(\" \")\r\n }\r\n },\r\n getDateFormatByDifferences: function(dateDifferences, intervalFormat) {\r\n var resultFormat = [];\r\n var needSpecialSecondFormatter = intervalFormat && dateDifferences.millisecond && !(dateDifferences.year || dateDifferences.month || dateDifferences.day);\r\n if (needSpecialSecondFormatter) {\r\n var secondFormatter = function(date) {\r\n return date.getSeconds() + date.getMilliseconds() / 1e3 + \"s\"\r\n };\r\n resultFormat.push(secondFormatter)\r\n } else {\r\n if (dateDifferences.millisecond) {\r\n resultFormat.push(\"millisecond\")\r\n }\r\n }\r\n if (dateDifferences.hour || dateDifferences.minute || !needSpecialSecondFormatter && dateDifferences.second) {\r\n resultFormat.unshift(this.getTimeFormat(dateDifferences.second))\r\n }\r\n if (dateDifferences.year && dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat && \"month\" === intervalFormat) {\r\n return \"monthandyear\"\r\n } else {\r\n resultFormat.unshift(\"shortdate\");\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n }\r\n if (dateDifferences.year && dateDifferences.month) {\r\n return \"monthandyear\"\r\n }\r\n if (dateDifferences.year && dateDifferences.quarter) {\r\n return \"quarterandyear\"\r\n }\r\n if (dateDifferences.year) {\r\n return \"year\"\r\n }\r\n if (dateDifferences.quarter) {\r\n return \"quarter\"\r\n }\r\n if (dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat) {\r\n var monthDayFormatter = function(date) {\r\n return _date2.default.getMonthNames(\"abbreviated\")[date.getMonth()] + \" \" + _date2.default.format(date, \"day\")\r\n };\r\n resultFormat.unshift(monthDayFormatter)\r\n } else {\r\n resultFormat.unshift(\"monthandday\")\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n if (dateDifferences.month) {\r\n return \"month\"\r\n }\r\n if (dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift(\"day\")\r\n } else {\r\n var dayFormatter = function(date) {\r\n return _date2.default.format(date, \"dayofweek\") + \", \" + _date2.default.format(date, \"day\")\r\n };\r\n resultFormat.unshift(dayFormatter)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n },\r\n getDateFormatByTicks: function(ticks) {\r\n var maxDiff;\r\n var currentDiff;\r\n var i;\r\n if (ticks.length > 1) {\r\n maxDiff = _date.default.getDatesDifferences(ticks[0], ticks[1]);\r\n for (i = 1; i < ticks.length - 1; i++) {\r\n currentDiff = _date.default.getDatesDifferences(ticks[i], ticks[i + 1]);\r\n if (maxDiff.count < currentDiff.count) {\r\n maxDiff = currentDiff\r\n }\r\n }\r\n } else {\r\n maxDiff = {\r\n year: true,\r\n month: true,\r\n day: true,\r\n hour: ticks[0].getHours() > 0,\r\n minute: ticks[0].getMinutes() > 0,\r\n second: ticks[0].getSeconds() > 0,\r\n millisecond: ticks[0].getMilliseconds() > 0\r\n }\r\n }\r\n var resultFormat = this.getDateFormatByDifferences(maxDiff);\r\n return resultFormat\r\n },\r\n getDateFormatByTickInterval: function(startValue, endValue, tickInterval) {\r\n var dateUnitInterval;\r\n var dateDifferencesConverter = {\r\n week: \"day\"\r\n };\r\n var correctDateDifferences = function(dateDifferences, tickInterval, value) {\r\n switch (tickInterval) {\r\n case \"year\":\r\n case \"quarter\":\r\n dateDifferences.month = value;\r\n case \"month\":\r\n dateDifferences.day = value;\r\n case \"week\":\r\n case \"day\":\r\n dateDifferences.hour = value;\r\n case \"hour\":\r\n dateDifferences.minute = value;\r\n case \"minute\":\r\n dateDifferences.second = value;\r\n case \"second\":\r\n dateDifferences.millisecond = value\r\n }\r\n };\r\n var correctDifferencesByMaxDate = function(differences, minDate, maxDate) {\r\n if (!maxDate.getMilliseconds() && maxDate.getSeconds()) {\r\n if (maxDate.getSeconds() - minDate.getSeconds() === 1) {\r\n differences.millisecond = true;\r\n differences.second = false\r\n }\r\n } else {\r\n if (!maxDate.getSeconds() && maxDate.getMinutes()) {\r\n if (maxDate.getMinutes() - minDate.getMinutes() === 1) {\r\n differences.second = true;\r\n differences.minute = false\r\n }\r\n } else {\r\n if (!maxDate.getMinutes() && maxDate.getHours()) {\r\n if (maxDate.getHours() - minDate.getHours() === 1) {\r\n differences.minute = true;\r\n differences.hour = false\r\n }\r\n } else {\r\n if (!maxDate.getHours() && maxDate.getDate() > 1) {\r\n if (maxDate.getDate() - minDate.getDate() === 1) {\r\n differences.hour = true;\r\n differences.day = false\r\n }\r\n } else {\r\n if (1 === maxDate.getDate() && maxDate.getMonth()) {\r\n if (maxDate.getMonth() - minDate.getMonth() === 1) {\r\n differences.day = true;\r\n differences.month = false\r\n }\r\n } else {\r\n if (!maxDate.getMonth() && maxDate.getFullYear()) {\r\n if (maxDate.getFullYear() - minDate.getFullYear() === 1) {\r\n differences.month = true;\r\n differences.year = false\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n tickInterval = (0, _type.isString)(tickInterval) ? tickInterval.toLowerCase() : tickInterval;\r\n var dateDifferences = _date.default.getDatesDifferences(startValue, endValue);\r\n if (startValue !== endValue) {\r\n correctDifferencesByMaxDate(dateDifferences, startValue > endValue ? endValue : startValue, startValue > endValue ? startValue : endValue)\r\n }\r\n dateUnitInterval = _date.default.getDateUnitInterval(dateDifferences);\r\n correctDateDifferences(dateDifferences, dateUnitInterval, true);\r\n dateUnitInterval = _date.default.getDateUnitInterval(tickInterval || \"second\");\r\n correctDateDifferences(dateDifferences, dateUnitInterval, false);\r\n dateDifferences[dateDifferencesConverter[dateUnitInterval] || dateUnitInterval] = true;\r\n var resultFormat = this.getDateFormatByDifferences(dateDifferences);\r\n return resultFormat\r\n }\r\n});\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.grouping.core.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.createOffsetFilter = createOffsetFilter;\r\nexports.GroupingHelper = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _utils = _interopRequireDefault(require(\"../../data/utils\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction createOffsetFilter(path, storeLoadOptions, lastLevelOnly) {\r\n var groups = _utils.default.normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = lastLevelOnly ? path.length - 1 : 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n var selector = groups[j].selector;\r\n if (i === j && (null === path[j] || false === path[j] || true === path[j])) {\r\n if (false === path[j]) {\r\n filterElement.push([selector, \"=\", groups[j].desc ? true : null])\r\n } else {\r\n if (path[j] ? !groups[j].desc : groups[j].desc) {\r\n filterElement.push([selector, \"<>\", path[j]])\r\n } else {\r\n filterElement.push([selector, \"<>\", null]);\r\n filterElement.push([selector, \"=\", null])\r\n }\r\n }\r\n } else {\r\n var currentFilter = [selector, i === j ? groups[j].desc ? \">\" : \"<\" : \"=\", path[j]];\r\n if (\"<\" === currentFilter[1]) {\r\n filterElement.push([currentFilter, \"or\", [selector, \"=\", null]])\r\n } else {\r\n filterElement.push(currentFilter)\r\n }\r\n }\r\n }\r\n filter.push(_uiData_grid.default.combineFilters(filterElement))\r\n }\r\n filter = _uiData_grid.default.combineFilters(filter, \"or\");\r\n return _uiData_grid.default.combineFilters([filter, storeLoadOptions.filter])\r\n}\r\nvar GroupingHelper = _class.default.inherit(function() {\r\n var findGroupInfoByKey = function(groupsInfo, key) {\r\n var hash = groupsInfo.hash;\r\n return hash && hash[JSON.stringify(key)]\r\n };\r\n var getGroupInfoIndexByOffset = function(groupsInfo, offset) {\r\n var leftIndex = 0;\r\n var rightIndex = groupsInfo.length - 1;\r\n if (!groupsInfo.length) {\r\n return 0\r\n }\r\n do {\r\n var middleIndex = rightIndex + leftIndex >> 1;\r\n if (groupsInfo[middleIndex].offset > offset) {\r\n rightIndex = middleIndex\r\n } else {\r\n leftIndex = middleIndex\r\n }\r\n } while (rightIndex - leftIndex > 1);\r\n var index;\r\n for (index = leftIndex; index <= rightIndex; index++) {\r\n if (groupsInfo[index].offset > offset) {\r\n break\r\n }\r\n }\r\n return index\r\n };\r\n var cleanGroupsInfo = function cleanGroupsInfo(groupsInfo, groupIndex, groupsCount) {\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n if (groupIndex + 1 >= groupsCount) {\r\n groupsInfo[i].children = []\r\n } else {\r\n cleanGroupsInfo(groupsInfo[i].children, groupIndex + 1, groupsCount)\r\n }\r\n }\r\n };\r\n var calculateItemsCount = function calculateItemsCount(that, items, groupsCount) {\r\n var result = 0;\r\n if (items) {\r\n if (!groupsCount) {\r\n result = items.length\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n if (that.isGroupItemCountable(items[i])) {\r\n result++\r\n }\r\n result += calculateItemsCount(that, items[i].items, groupsCount - 1)\r\n }\r\n }\r\n }\r\n return result\r\n };\r\n return {\r\n ctor: function(dataSourceAdapter) {\r\n this._dataSource = dataSourceAdapter;\r\n this.reset()\r\n },\r\n reset: function() {\r\n this._groupsInfo = [];\r\n this._totalCountCorrection = 0\r\n },\r\n totalCountCorrection: function() {\r\n return this._totalCountCorrection\r\n },\r\n updateTotalItemsCount: function(totalCountCorrection) {\r\n this._totalCountCorrection = totalCountCorrection || 0\r\n },\r\n isGroupItemCountable: function(item) {\r\n return !this._isVirtualPaging() || !item.isContinuation\r\n },\r\n _isVirtualPaging: function() {\r\n var scrollingMode = this._dataSource.option(\"scrolling.mode\");\r\n return \"virtual\" === scrollingMode || \"infinite\" === scrollingMode\r\n },\r\n itemsCount: function itemsCount() {\r\n var dataSourceAdapter = this._dataSource;\r\n var dataSource = dataSourceAdapter._dataSource;\r\n var groupCount = _uiData_grid.default.normalizeSortingInfo(dataSource.group() || []).length;\r\n var itemsCount = calculateItemsCount(this, dataSource.items(), groupCount);\r\n return itemsCount\r\n },\r\n foreachGroups: function(callback, childrenAtFirst, foreachCollapsedGroups, updateOffsets, updateParentOffsets) {\r\n var that = this;\r\n\r\n function foreachGroupsCore(groupsInfo, callback, childrenAtFirst, parents) {\r\n var callbackResults = [];\r\n\r\n function executeCallback(callback, data, parents, callbackResults) {\r\n var callbackResult = data && callback(data, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n return callbackResult\r\n }\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n parents.push(groupsInfo[i].data);\r\n if (!childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.isExpanded || foreachCollapsedGroups) {\r\n var children = groupsInfo[i].children;\r\n var callbackResult = children.length && foreachGroupsCore(children, callback, childrenAtFirst, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n if (false === callbackResult) {\r\n return false\r\n }\r\n }\r\n if (childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.offset !== groupsInfo[i].offset) {\r\n updateOffsets = true\r\n }\r\n parents.pop()\r\n }\r\n var currentParents = updateParentOffsets && parents.slice(0);\r\n return updateOffsets && _deferred.when.apply(_renderer.default, callbackResults).always(function() {\r\n that._updateGroupInfoOffsets(groupsInfo, currentParents)\r\n })\r\n }\r\n return foreachGroupsCore(that._groupsInfo, callback, childrenAtFirst, [])\r\n },\r\n _updateGroupInfoOffsets: function(groupsInfo, parents) {\r\n parents = parents || [];\r\n for (var index = 0; index < groupsInfo.length; index++) {\r\n var groupInfo = groupsInfo[index];\r\n if (groupInfo.data && groupInfo.data.offset !== groupInfo.offset) {\r\n groupInfo.offset = groupInfo.data.offset;\r\n for (var parentIndex = 0; parentIndex < parents.length; parentIndex++) {\r\n parents[parentIndex].offset = groupInfo.offset\r\n }\r\n }\r\n }\r\n groupsInfo.sort(function(a, b) {\r\n return a.offset - b.offset\r\n })\r\n },\r\n findGroupInfo: function(path) {\r\n var that = this;\r\n var groupInfo;\r\n var groupsInfo = that._groupsInfo;\r\n for (var pathIndex = 0; groupsInfo && pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n groupsInfo = groupInfo && groupInfo.children\r\n }\r\n return groupInfo && groupInfo.data\r\n },\r\n addGroupInfo: function(groupInfoData) {\r\n var that = this;\r\n var groupInfo;\r\n var path = groupInfoData.path;\r\n var groupsInfo = that._groupsInfo;\r\n for (var pathIndex = 0; pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n if (!groupInfo) {\r\n groupInfo = {\r\n key: path[pathIndex],\r\n offset: groupInfoData.offset,\r\n data: {\r\n offset: groupInfoData.offset,\r\n isExpanded: true,\r\n path: path.slice(0, pathIndex + 1)\r\n },\r\n children: []\r\n };\r\n var index = getGroupInfoIndexByOffset(groupsInfo, groupInfoData.offset);\r\n groupsInfo.splice(index, 0, groupInfo);\r\n groupsInfo.hash = groupsInfo.hash || {};\r\n groupsInfo.hash[JSON.stringify(groupInfo.key)] = groupInfo\r\n }\r\n if (pathIndex === path.length - 1) {\r\n groupInfo.data = groupInfoData;\r\n if (groupInfo.offset !== groupInfoData.offset) {\r\n that._updateGroupInfoOffsets(groupsInfo)\r\n }\r\n }\r\n groupsInfo = groupInfo.children\r\n }\r\n },\r\n allowCollapseAll: function() {\r\n return true\r\n },\r\n refresh: function(options) {\r\n var that = this;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var groups = _utils.default.normalizeSortingInfo(storeLoadOptions.group || []);\r\n var oldGroups = \"_group\" in that ? _utils.default.normalizeSortingInfo(that._group || []) : groups;\r\n var groupsCount = Math.min(oldGroups.length, groups.length);\r\n that._group = storeLoadOptions.group;\r\n for (var groupIndex = 0; groupIndex < groupsCount; groupIndex++) {\r\n if (oldGroups[groupIndex].selector !== groups[groupIndex].selector) {\r\n groupsCount = groupIndex;\r\n break\r\n }\r\n }\r\n if (!groupsCount) {\r\n that.reset()\r\n } else {\r\n cleanGroupsInfo(that._groupsInfo, 0, groupsCount)\r\n }\r\n },\r\n handleDataLoading: function() {},\r\n handleDataLoaded: function(options, callBase) {\r\n callBase(options)\r\n },\r\n handleDataLoadedCore: function(options, callBase) {\r\n callBase(options)\r\n }\r\n }\r\n}());\r\nexports.GroupingHelper = GroupingHelper;\r\n","/**\r\n * DevExtreme (file_management/remote_provider.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _ajax = _interopRequireDefault(require(\"../core/utils/ajax\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _guid = _interopRequireDefault(require(\"../core/guid\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _provider_base = _interopRequireDefault(require(\"./provider_base\"));\r\nvar _data = require(\"../core/utils/data\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar FILE_CHUNK_BLOB_NAME = \"chunk\";\r\nvar RemoteFileSystemProvider = function(_FileSystemProviderBa) {\r\n _inheritsLoose(RemoteFileSystemProvider, _FileSystemProviderBa);\r\n\r\n function RemoteFileSystemProvider(options) {\r\n var _this;\r\n options = (0, _common.ensureDefined)(options, {});\r\n _this = _FileSystemProviderBa.call(this, options) || this;\r\n _this._endpointUrl = options.endpointUrl;\r\n _this._hasSubDirsGetter = (0, _data.compileGetter)(options.hasSubDirectoriesExpr || \"hasSubDirectories\");\r\n return _this\r\n }\r\n var _proto = RemoteFileSystemProvider.prototype;\r\n _proto.getItems = function(parentDir) {\r\n var _this2 = this;\r\n var pathInfo = parentDir.getFullPathInfo();\r\n return this._getEntriesByPath(pathInfo).then(function(result) {\r\n return _this2._convertDataObjectsToFileItems(result.result, pathInfo)\r\n })\r\n };\r\n _proto.renameItem = function(item, name) {\r\n return this._executeRequest(\"Rename\", {\r\n pathInfo: item.getFullPathInfo(),\r\n isDirectory: item.isDirectory,\r\n name: name\r\n })\r\n };\r\n _proto.createDirectory = function(parentDir, name) {\r\n return this._executeRequest(\"CreateDir\", {\r\n pathInfo: parentDir.getFullPathInfo(),\r\n name: name\r\n })\r\n };\r\n _proto.deleteItems = function(items) {\r\n var _this3 = this;\r\n return items.map(function(item) {\r\n return _this3._executeRequest(\"Remove\", {\r\n pathInfo: item.getFullPathInfo(),\r\n isDirectory: item.isDirectory\r\n })\r\n })\r\n };\r\n _proto.moveItems = function(items, destinationDirectory) {\r\n var _this4 = this;\r\n return items.map(function(item) {\r\n return _this4._executeRequest(\"Move\", {\r\n sourcePathInfo: item.getFullPathInfo(),\r\n sourceIsDirectory: item.isDirectory,\r\n destinationPathInfo: destinationDirectory.getFullPathInfo()\r\n })\r\n })\r\n };\r\n _proto.copyItems = function(items, destinationFolder) {\r\n var _this5 = this;\r\n return items.map(function(item) {\r\n return _this5._executeRequest(\"Copy\", {\r\n sourcePathInfo: item.getFullPathInfo(),\r\n sourceIsDirectory: item.isDirectory,\r\n destinationPathInfo: destinationFolder.getFullPathInfo()\r\n })\r\n })\r\n };\r\n _proto.uploadFileChunk = function(fileData, chunksInfo, destinationDirectory) {\r\n if (0 === chunksInfo.chunkIndex) {\r\n chunksInfo.customData.uploadId = new _guid.default\r\n }\r\n var args = {\r\n destinationPathInfo: destinationDirectory.getFullPathInfo(),\r\n chunkMetadata: JSON.stringify({\r\n UploadId: chunksInfo.customData.uploadId,\r\n FileName: fileData.name,\r\n Index: chunksInfo.chunkIndex,\r\n TotalCount: chunksInfo.chunkCount,\r\n FileSize: fileData.size\r\n })\r\n };\r\n var formData = new window.FormData;\r\n formData.append(FILE_CHUNK_BLOB_NAME, chunksInfo.chunkBlob);\r\n formData.append(\"arguments\", JSON.stringify(args));\r\n formData.append(\"command\", \"UploadChunk\");\r\n var deferred = new _deferred.Deferred;\r\n _ajax.default.sendRequest({\r\n url: this._endpointUrl,\r\n method: \"POST\",\r\n dataType: \"json\",\r\n data: formData,\r\n upload: {\r\n onprogress: _common.noop,\r\n onloadstart: _common.noop,\r\n onabort: _common.noop\r\n },\r\n cache: false\r\n }).done(function(result) {\r\n !result.success && deferred.reject(result) || deferred.resolve()\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n };\r\n _proto.abortFileUpload = function(fileData, chunksInfo, destinationDirectory) {\r\n return this._executeRequest(\"AbortUpload\", {\r\n uploadId: chunksInfo.customData.uploadId\r\n })\r\n };\r\n _proto.downloadItems = function(items) {\r\n var args = this._getDownloadArgs(items);\r\n var $form = (0, _renderer.default)(\"
\").css({\r\n display: \"none\"\r\n }).attr({\r\n method: \"post\",\r\n action: args.url\r\n });\r\n [\"command\", \"arguments\"].forEach(function(name) {\r\n (0, _renderer.default)(\"\").attr({\r\n type: \"hidden\",\r\n name: name,\r\n value: args[name]\r\n }).appendTo($form)\r\n });\r\n $form.appendTo(\"body\");\r\n _events_engine.default.trigger($form, \"submit\");\r\n setTimeout(function() {\r\n return $form.remove()\r\n })\r\n };\r\n _proto.getItemsContent = function(items) {\r\n var args = this._getDownloadArgs(items);\r\n var formData = new window.FormData;\r\n formData.append(\"command\", args.command);\r\n formData.append(\"arguments\", args.arguments);\r\n return _ajax.default.sendRequest({\r\n url: args.url,\r\n method: \"POST\",\r\n responseType: \"arraybuffer\",\r\n data: formData,\r\n upload: {\r\n onprogress: _common.noop,\r\n onloadstart: _common.noop,\r\n onabort: _common.noop\r\n },\r\n cache: false\r\n })\r\n };\r\n _proto._getDownloadArgs = function(items) {\r\n var pathInfoList = items.map(function(item) {\r\n return item.getFullPathInfo()\r\n });\r\n var args = {\r\n pathInfoList: pathInfoList\r\n };\r\n var argsStr = JSON.stringify(args);\r\n return {\r\n url: this._endpointUrl,\r\n arguments: argsStr,\r\n command: \"Download\"\r\n }\r\n };\r\n _proto._getItemsIds = function(items) {\r\n return items.map(function(it) {\r\n return it.relativeName\r\n })\r\n };\r\n _proto._getEntriesByPath = function(pathInfo) {\r\n return this._executeRequest(\"GetDirContents\", {\r\n pathInfo: pathInfo\r\n })\r\n };\r\n _proto._executeRequest = function(command, args) {\r\n var method = \"GetDirContents\" === command ? \"GET\" : \"POST\";\r\n var deferred = new _deferred.Deferred;\r\n _ajax.default.sendRequest({\r\n url: this._getEndpointUrl(command, args),\r\n method: method,\r\n dataType: \"json\",\r\n cache: false\r\n }).then(function(result) {\r\n !result.success && deferred.reject(result) || deferred.resolve(result)\r\n }, function(e) {\r\n return deferred.reject(e)\r\n });\r\n return deferred.promise()\r\n };\r\n _proto._getEndpointUrl = function(command, args) {\r\n var queryString = this._getQueryString({\r\n command: command,\r\n arguments: JSON.stringify(args)\r\n });\r\n var separator = this._endpointUrl && this._endpointUrl.indexOf(\"?\") > 0 ? \"&\" : \"?\";\r\n return this._endpointUrl + separator + queryString\r\n };\r\n _proto._getQueryString = function(params) {\r\n var pairs = [];\r\n var keys = Object.keys(params);\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n var value = params[key];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n if (null === value) {\r\n value = \"\"\r\n }\r\n if (Array.isArray(value)) {\r\n this._processQueryStringArrayParam(key, value, pairs)\r\n } else {\r\n var pair = this._getQueryStringPair(key, value);\r\n pairs.push(pair)\r\n }\r\n }\r\n return pairs.join(\"&\")\r\n };\r\n _proto._processQueryStringArrayParam = function(key, array, pairs) {\r\n var _this6 = this;\r\n (0, _iterator.each)(array, function(_, item) {\r\n var pair = _this6._getQueryStringPair(key, item);\r\n pairs.push(pair)\r\n })\r\n };\r\n _proto._getQueryStringPair = function(key, value) {\r\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(value)\r\n };\r\n _proto._hasSubDirs = function(dataObj) {\r\n var hasSubDirs = this._hasSubDirsGetter(dataObj);\r\n return \"boolean\" === typeof hasSubDirs ? hasSubDirs : true\r\n };\r\n _proto._getKeyExpr = function(options) {\r\n return options.keyExpr || \"key\"\r\n };\r\n return RemoteFileSystemProvider\r\n}(_provider_base.default);\r\nvar _default = RemoteFileSystemProvider;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/progress_bar.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _track_bar = _interopRequireDefault(require(\"./track_bar\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar PROGRESSBAR_CLASS = \"dx-progressbar\";\r\nvar PROGRESSBAR_CONTAINER_CLASS = \"dx-progressbar-container\";\r\nvar PROGRESSBAR_RANGE_CONTAINER_CLASS = \"dx-progressbar-range-container\";\r\nvar PROGRESSBAR_RANGE_CLASS = \"dx-progressbar-range\";\r\nvar PROGRESSBAR_WRAPPER_CLASS = \"dx-progressbar-wrapper\";\r\nvar PROGRESSBAR_STATUS_CLASS = \"dx-progressbar-status\";\r\nvar PROGRESSBAR_INDETERMINATE_SEGMENT_CONTAINER = \"dx-progressbar-animating-container\";\r\nvar PROGRESSBAR_INDETERMINATE_SEGMENT = \"dx-progressbar-animating-segment\";\r\nvar ProgressBar = _track_bar.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n value: 0,\r\n statusFormat: function(ratio) {\r\n return \"Progress: \" + Math.round(100 * ratio) + \"%\"\r\n },\r\n showStatus: true,\r\n onComplete: null,\r\n activeStateEnabled: false,\r\n statusPosition: \"bottom left\",\r\n _animatingSegmentCount: 0\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n return \"android\" === _device.platform\r\n },\r\n options: {\r\n _animatingSegmentCount: 2\r\n }\r\n }])\r\n },\r\n _initMarkup: function() {\r\n this._renderStatus();\r\n this._createCompleteAction();\r\n this.callBase();\r\n this.$element().addClass(PROGRESSBAR_CLASS);\r\n this._$wrapper.addClass(PROGRESSBAR_WRAPPER_CLASS);\r\n this._$bar.addClass(PROGRESSBAR_CONTAINER_CLASS);\r\n this.setAria(\"role\", \"progressbar\");\r\n (0, _renderer.default)(\"
\").addClass(PROGRESSBAR_RANGE_CONTAINER_CLASS).appendTo(this._$wrapper).append(this._$bar);\r\n this._$range.addClass(PROGRESSBAR_RANGE_CLASS);\r\n this._toggleStatus(this.option(\"showStatus\"))\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _createCompleteAction: function() {\r\n this._completeAction = this._createActionByOption(\"onComplete\")\r\n },\r\n _renderStatus: function() {\r\n this._$status = (0, _renderer.default)(\"
\").addClass(PROGRESSBAR_STATUS_CLASS)\r\n },\r\n _renderIndeterminateState: function() {\r\n this._$segmentContainer = (0, _renderer.default)(\"
\").addClass(PROGRESSBAR_INDETERMINATE_SEGMENT_CONTAINER);\r\n var segments = this.option(\"_animatingSegmentCount\");\r\n for (var i = 0; i < segments; i++) {\r\n (0, _renderer.default)(\"
\").addClass(PROGRESSBAR_INDETERMINATE_SEGMENT).addClass(PROGRESSBAR_INDETERMINATE_SEGMENT + \"-\" + (i + 1)).appendTo(this._$segmentContainer)\r\n }\r\n this._$segmentContainer.appendTo(this._$wrapper)\r\n },\r\n _toggleStatus: function(value) {\r\n var splitPosition = this.option(\"statusPosition\").split(\" \");\r\n if (value) {\r\n if (\"top\" === splitPosition[0] || \"left\" === splitPosition[0]) {\r\n this._$status.prependTo(this._$wrapper)\r\n } else {\r\n this._$status.appendTo(this._$wrapper)\r\n }\r\n } else {\r\n this._$status.detach()\r\n }\r\n this._togglePositionClass()\r\n },\r\n _togglePositionClass: function() {\r\n var position = this.option(\"statusPosition\");\r\n var splitPosition = position.split(\" \");\r\n this._$wrapper.removeClass(\"dx-position-top-left dx-position-top-right dx-position-bottom-left dx-position-bottom-right dx-position-left dx-position-right\");\r\n var positionClass = \"dx-position-\" + splitPosition[0];\r\n if (splitPosition[1]) {\r\n positionClass += \"-\" + splitPosition[1]\r\n }\r\n this._$wrapper.addClass(positionClass)\r\n },\r\n _toggleIndeterminateState: function(value) {\r\n if (value) {\r\n this._renderIndeterminateState();\r\n this._$bar.toggle(false)\r\n } else {\r\n this._$bar.toggle(true);\r\n this._$segmentContainer.remove();\r\n delete this._$segmentContainer\r\n }\r\n },\r\n _renderValue: function() {\r\n var val = this.option(\"value\");\r\n var max = this.option(\"max\");\r\n if (!val && 0 !== val) {\r\n this._toggleIndeterminateState(true);\r\n return\r\n }\r\n if (this._$segmentContainer) {\r\n this._toggleIndeterminateState(false)\r\n }\r\n if (val === max) {\r\n this._completeAction()\r\n }\r\n this.callBase();\r\n this._setStatus()\r\n },\r\n _setStatus: function() {\r\n var format = this.option(\"statusFormat\");\r\n if ((0, _type.isFunction)(format)) {\r\n format = format.bind(this)\r\n } else {\r\n format = function(value) {\r\n return value\r\n }\r\n }\r\n var statusText = format(this._currentRatio, this.option(\"value\"));\r\n this._$status.text(statusText)\r\n },\r\n _dispose: function() {\r\n this._$status.remove();\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"statusFormat\":\r\n this._setStatus();\r\n break;\r\n case \"showStatus\":\r\n this._toggleStatus(args.value);\r\n break;\r\n case \"statusPosition\":\r\n this._toggleStatus(this.option(\"showStatus\"));\r\n break;\r\n case \"onComplete\":\r\n this._createCompleteAction();\r\n break;\r\n case \"_animatingSegmentCount\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxProgressBar\", ProgressBar);\r\nvar _default = ProgressBar;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.context_menu.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _element = require(\"../../core/element\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _context_menu = _interopRequireDefault(require(\"../context_menu\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar CONTEXT_MENU = \"dx-context-menu\";\r\nvar viewName = {\r\n columnHeadersView: \"header\",\r\n rowsView: \"content\",\r\n footerView: \"footer\",\r\n headerPanel: \"headerPanel\"\r\n};\r\nvar VIEW_NAMES = [\"columnHeadersView\", \"rowsView\", \"footerView\", \"headerPanel\"];\r\nvar ContextMenuController = _uiGrid_core.default.ViewController.inherit({\r\n init: function() {\r\n this.createAction(\"onContextMenuPreparing\")\r\n },\r\n getContextMenuItems: function(dxEvent) {\r\n if (!dxEvent) {\r\n return false\r\n }\r\n var that = this;\r\n var $targetElement = (0, _renderer.default)(dxEvent.target);\r\n var $element;\r\n var $targetRowElement;\r\n var $targetCellElement;\r\n var menuItems;\r\n (0, _iterator.each)(VIEW_NAMES, function() {\r\n var view = that.getView(this);\r\n $element = view && view.element();\r\n if ($element && ($element.is($targetElement) || $element.find($targetElement).length)) {\r\n $targetCellElement = $targetElement.closest(\".dx-row > td, .dx-row > tr\");\r\n $targetRowElement = $targetCellElement.parent();\r\n var rowIndex = view.getRowIndex($targetRowElement);\r\n var columnIndex = $targetCellElement[0] && $targetCellElement[0].cellIndex;\r\n var rowOptions = $targetRowElement.data(\"options\");\r\n var options = {\r\n event: dxEvent,\r\n targetElement: (0, _element.getPublicElement)($targetElement),\r\n target: viewName[this],\r\n rowIndex: rowIndex,\r\n row: view._getRows()[rowIndex],\r\n columnIndex: columnIndex,\r\n column: rowOptions && rowOptions.cells[columnIndex].column\r\n };\r\n options.items = view.getContextMenuItems && view.getContextMenuItems(options);\r\n that.executeAction(\"onContextMenuPreparing\", options);\r\n that._contextMenuPrepared(options);\r\n menuItems = options.items;\r\n if (menuItems) {\r\n return false\r\n }\r\n }\r\n });\r\n return menuItems\r\n },\r\n _contextMenuPrepared: _common.noop\r\n});\r\nvar ContextMenuView = _uiGrid_core.default.View.inherit({\r\n _renderCore: function() {\r\n var that = this;\r\n var $element = that.element().addClass(CONTEXT_MENU);\r\n this.setAria(\"role\", \"presentation\", $element);\r\n this._createComponent($element, _context_menu.default, {\r\n onPositioning: function(actionArgs) {\r\n var event = actionArgs.event;\r\n var contextMenuInstance = actionArgs.component;\r\n var items = that.getController(\"contextMenu\").getContextMenuItems(event);\r\n if (items) {\r\n contextMenuInstance.option(\"items\", items);\r\n event.stopPropagation()\r\n } else {\r\n actionArgs.cancel = true\r\n }\r\n },\r\n onItemClick: function(params) {\r\n params.itemData.onItemClick && params.itemData.onItemClick(params)\r\n },\r\n cssClass: that.getWidgetContainerClass(),\r\n target: that.component.$element()\r\n })\r\n }\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n onContextMenuPreparing: null\r\n }\r\n },\r\n controllers: {\r\n contextMenu: ContextMenuController\r\n },\r\n views: {\r\n contextMenuView: ContextMenuView\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nmodule.exports = function (instance, list) {\n return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.base\"));\r\nrequire(\"./ui.data_grid.state_storing\");\r\nrequire(\"./ui.data_grid.selection\");\r\nrequire(\"./ui.data_grid.column_chooser\");\r\nrequire(\"./ui.data_grid.grouping\");\r\nrequire(\"./ui.data_grid.master_detail\");\r\nrequire(\"./ui.data_grid.editing\");\r\nrequire(\"./ui.data_grid.validating\");\r\nrequire(\"./ui.data_grid.virtual_scrolling\");\r\nrequire(\"./ui.data_grid.filter_row\");\r\nrequire(\"./ui.data_grid.header_filter\");\r\nrequire(\"./ui.data_grid.filter_sync\");\r\nrequire(\"./ui.data_grid.filter_builder\");\r\nrequire(\"./ui.data_grid.filter_panel\");\r\nrequire(\"./ui.data_grid.search\");\r\nrequire(\"./ui.data_grid.pager\");\r\nrequire(\"./ui.data_grid.columns_resizing_reordering\");\r\nrequire(\"./ui.data_grid.keyboard_navigation\");\r\nrequire(\"./ui.data_grid.summary\");\r\nrequire(\"./ui.data_grid.column_fixing\");\r\nrequire(\"./ui.data_grid.adaptivity\");\r\nrequire(\"./ui.data_grid.virtual_columns\");\r\nrequire(\"./ui.data_grid.export\");\r\nrequire(\"./ui.data_grid.focus\");\r\nrequire(\"./ui.data_grid.row_dragging\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _uiData_grid.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.file.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\nvar _excel2 = _interopRequireDefault(require(\"./excel.cell_format_helper\"));\r\nvar _excel3 = _interopRequireDefault(require(\"./excel.fill_helper\"));\r\nvar _excel4 = _interopRequireDefault(require(\"./excel.font_helper\"));\r\nvar _excel5 = _interopRequireDefault(require(\"./excel.number_format_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ExcelFile = function() {\r\n function ExcelFile() {\r\n this._cellFormatTags = [];\r\n this._fillTags = [];\r\n this._fontTags = [];\r\n this._numberFormatTags = [];\r\n this._fillTags.push(_excel3.default.tryCreateTag({\r\n patternFill: {\r\n patternType: \"none\"\r\n }\r\n }))\r\n }\r\n var _proto = ExcelFile.prototype;\r\n _proto.registerCellFormat = function(cellFormat) {\r\n var result;\r\n var cellFormatTag = _excel2.default.tryCreateTag(cellFormat, {\r\n registerFill: this.registerFill.bind(this),\r\n registerFont: this.registerFont.bind(this),\r\n registerNumberFormat: this.registerNumberFormat.bind(this)\r\n });\r\n if ((0, _type.isDefined)(cellFormatTag)) {\r\n for (var i = 0; i < this._cellFormatTags.length; i++) {\r\n if (_excel2.default.areEqual(this._cellFormatTags[i], cellFormatTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n result = this._cellFormatTags.push(cellFormatTag) - 1\r\n }\r\n }\r\n return result\r\n };\r\n ExcelFile.copyCellFormat = function(source) {\r\n return _excel2.default.copy(source)\r\n };\r\n _proto.generateCellFormatsXml = function() {\r\n var cellFormatTagsAsXmlStringsArray = this._cellFormatTags.map(function(tag) {\r\n return _excel2.default.toXml(tag)\r\n });\r\n return _excel.default.toXml(\"cellXfs\", {\r\n count: cellFormatTagsAsXmlStringsArray.length\r\n }, cellFormatTagsAsXmlStringsArray.join(\"\"))\r\n };\r\n _proto.registerFill = function(fill) {\r\n var result;\r\n var fillTag = _excel3.default.tryCreateTag(fill);\r\n if ((0, _type.isDefined)(fillTag)) {\r\n for (var i = 0; i < this._fillTags.length; i++) {\r\n if (_excel3.default.areEqual(this._fillTags[i], fillTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n if (this._fillTags.length < 2) {\r\n this._fillTags.push(_excel3.default.tryCreateTag({\r\n patternFill: {\r\n patternType: \"Gray125\"\r\n }\r\n }))\r\n }\r\n result = this._fillTags.push(fillTag) - 1\r\n }\r\n }\r\n return result\r\n };\r\n _proto.generateFillsXml = function() {\r\n var tagsAsXmlStringsArray = this._fillTags.map(function(tag) {\r\n return _excel3.default.toXml(tag)\r\n });\r\n return _excel.default.toXml(\"fills\", {\r\n count: tagsAsXmlStringsArray.length\r\n }, tagsAsXmlStringsArray.join(\"\"))\r\n };\r\n _proto.registerFont = function(font) {\r\n var result;\r\n var fontTag = _excel4.default.tryCreateTag(font);\r\n if ((0, _type.isDefined)(fontTag)) {\r\n for (var i = 0; i < this._fontTags.length; i++) {\r\n if (_excel4.default.areEqual(this._fontTags[i], fontTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n result = this._fontTags.push(fontTag) - 1\r\n }\r\n }\r\n return result\r\n };\r\n _proto.generateFontsXml = function() {\r\n var xmlStringsArray = this._fontTags.map(function(tag) {\r\n return _excel4.default.toXml(tag)\r\n });\r\n return _excel.default.toXml(\"fonts\", {\r\n count: xmlStringsArray.length\r\n }, xmlStringsArray.join(\"\"))\r\n };\r\n _proto._convertNumberFormatIndexToId = function(index) {\r\n var CUSTOM_FORMAT_ID_START_VALUE = 165;\r\n return CUSTOM_FORMAT_ID_START_VALUE + index\r\n };\r\n _proto.registerNumberFormat = function(numberFormat) {\r\n var result;\r\n var tag = _excel5.default.tryCreateTag(numberFormat);\r\n if ((0, _type.isDefined)(tag)) {\r\n for (var i = 0; i < this._numberFormatTags.length; i++) {\r\n if (_excel5.default.areEqual(this._numberFormatTags[i], tag)) {\r\n result = this._numberFormatTags[i][_excel5.default.ID_PROPERTY_NAME];\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n tag[_excel5.default.ID_PROPERTY_NAME] = this._convertNumberFormatIndexToId(this._numberFormatTags.length);\r\n result = tag[_excel5.default.ID_PROPERTY_NAME];\r\n this._numberFormatTags.push(tag)\r\n }\r\n }\r\n return result\r\n };\r\n _proto.generateNumberFormatsXml = function() {\r\n if (this._numberFormatTags.length > 0) {\r\n var xmlStringsArray = this._numberFormatTags.map(function(tag) {\r\n return _excel5.default.toXml(tag)\r\n });\r\n return _excel.default.toXml(\"numFmts\", {\r\n count: xmlStringsArray.length\r\n }, xmlStringsArray.join(\"\"))\r\n } else {\r\n return \"\"\r\n }\r\n };\r\n return ExcelFile\r\n}();\r\nexports.default = ExcelFile;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.editor_factory.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _position = _interopRequireDefault(require(\"../../animation/position\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position2 = require(\"../../core/utils/position\");\r\nvar _ui = _interopRequireDefault(require(\"../shared/ui.editor_factory_mixin\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUS_OVERLAY_CLASS = \"focus-overlay\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar FOCUSED_ELEMENT_CLASS = \"dx-focused\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar MODULE_NAMESPACE = \"dxDataGridEditorFactory\";\r\nvar UPDATE_FOCUS_EVENTS = (0, _index.addNamespace)([_pointer.default.down, \"focusin\", _click.name].join(\" \"), MODULE_NAMESPACE);\r\nvar DX_HIDDEN = \"dx-hidden\";\r\nvar EditorFactory = _uiGrid_core.default.ViewController.inherit({\r\n _getFocusedElement: function($dataGridElement) {\r\n var rowSelector = this.option(\"focusedRowEnabled\") ? \"tr[tabindex]:focus\" : \"tr[tabindex]:not(.dx-data-row):focus\";\r\n var focusedElementSelector = \"td[tabindex]:focus, \".concat(rowSelector, \", input:focus, textarea:focus, .dx-lookup-field:focus, .dx-checkbox:focus, .dx-switch:focus, .dx-dropdownbutton .dx-buttongroup:focus\");\r\n return $dataGridElement.find(focusedElementSelector)\r\n },\r\n _getFocusCellSelector: function() {\r\n return \".dx-row > td\"\r\n },\r\n _updateFocusCore: function() {\r\n var $focus = this._$focusedElement;\r\n var $dataGridElement = this.component && this.component.$element();\r\n var $focusCell;\r\n var hideBorders;\r\n if ($dataGridElement) {\r\n $focus = this._getFocusedElement($dataGridElement);\r\n if ($focus.length) {\r\n if (!$focus.hasClass(CELL_FOCUS_DISABLED_CLASS) && !$focus.hasClass(ROW_CLASS)) {\r\n $focusCell = $focus.closest(this._getFocusCellSelector() + \", .\" + CELL_FOCUS_DISABLED_CLASS);\r\n hideBorders = $focusCell.get(0) !== $focus.get(0) && $focusCell.hasClass(EDITOR_INLINE_BLOCK);\r\n $focus = $focusCell\r\n }\r\n if ($focus.length && !$focus.hasClass(CELL_FOCUS_DISABLED_CLASS)) {\r\n this.focus($focus, hideBorders);\r\n return\r\n }\r\n }\r\n }\r\n this.loseFocus()\r\n },\r\n _updateFocus: function(e) {\r\n var that = this;\r\n var isFocusOverlay = e && e.event && (0, _renderer.default)(e.event.target).hasClass(that.addWidgetPrefix(FOCUS_OVERLAY_CLASS));\r\n that._isFocusOverlay = that._isFocusOverlay || isFocusOverlay;\r\n clearTimeout(that._updateFocusTimeoutID);\r\n that._updateFocusTimeoutID = setTimeout(function() {\r\n delete that._updateFocusTimeoutID;\r\n if (!that._isFocusOverlay) {\r\n that._updateFocusCore()\r\n }\r\n that._isFocusOverlay = false\r\n })\r\n },\r\n _updateFocusOverlaySize: function($element, position) {\r\n $element.hide();\r\n var location = _position.default.calculate($element, (0, _extend.extend)({\r\n collision: \"fit\"\r\n }, position));\r\n if (location.h.oversize > 0) {\r\n $element.outerWidth($element.outerWidth() - location.h.oversize)\r\n }\r\n if (location.v.oversize > 0) {\r\n $element.outerHeight($element.outerHeight() - location.v.oversize)\r\n }\r\n $element.show()\r\n },\r\n callbackNames: function() {\r\n return [\"focused\"]\r\n },\r\n focus: function($element, hideBorder) {\r\n var that = this;\r\n if (void 0 === $element) {\r\n return that._$focusedElement\r\n } else {\r\n if ($element) {\r\n if (!$element.is(that._$focusedElement)) {\r\n that._$focusedElement && that._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS)\r\n }\r\n that._$focusedElement = $element;\r\n clearTimeout(that._focusTimeoutID);\r\n that._focusTimeoutID = setTimeout(function() {\r\n delete that._focusTimeoutID;\r\n that.renderFocusOverlay($element, hideBorder);\r\n $element.addClass(FOCUSED_ELEMENT_CLASS);\r\n that.focused.fire($element)\r\n })\r\n }\r\n }\r\n },\r\n refocus: function() {\r\n var $focus = this.focus();\r\n this.focus($focus)\r\n },\r\n renderFocusOverlay: function($element, hideBorder) {\r\n var that = this;\r\n if (!_uiGrid_core2.default.isElementInCurrentGrid(this, $element)) {\r\n return\r\n }\r\n if (!that._$focusOverlay) {\r\n that._$focusOverlay = (0, _renderer.default)(\"
\").addClass(that.addWidgetPrefix(FOCUS_OVERLAY_CLASS))\r\n }\r\n if (hideBorder) {\r\n that._$focusOverlay.addClass(DX_HIDDEN)\r\n } else {\r\n if ($element.length) {\r\n var align = _browser.default.msie ? \"left bottom\" : _browser.default.mozilla ? \"right bottom\" : \"left top\";\r\n var $content = $element.closest(\".\" + that.addWidgetPrefix(CONTENT_CLASS));\r\n var elemCoord = (0, _position2.getBoundingRect)($element.get(0));\r\n that._$focusOverlay.removeClass(DX_HIDDEN).appendTo($content).outerWidth(elemCoord.right - elemCoord.left + 1).outerHeight(elemCoord.bottom - elemCoord.top + 1);\r\n var focusOverlayPosition = {\r\n precise: true,\r\n my: align,\r\n at: align,\r\n of: $element,\r\n boundary: $content.length && $content\r\n };\r\n that._updateFocusOverlaySize(that._$focusOverlay, focusOverlayPosition);\r\n _position.default.setup(that._$focusOverlay, focusOverlayPosition);\r\n that._$focusOverlay.css(\"visibility\", \"visible\")\r\n }\r\n }\r\n },\r\n resize: function() {\r\n var $focusedElement = this._$focusedElement;\r\n if ($focusedElement) {\r\n this.focus($focusedElement)\r\n }\r\n },\r\n loseFocus: function() {\r\n this._$focusedElement && this._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS);\r\n this._$focusedElement = null;\r\n this._$focusOverlay && this._$focusOverlay.addClass(DX_HIDDEN)\r\n },\r\n init: function() {\r\n this.createAction(\"onEditorPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this.createAction(\"onEditorPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this._updateFocusHandler = this._updateFocusHandler || this.createAction(this._updateFocus.bind(this));\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), UPDATE_FOCUS_EVENTS, this._updateFocusHandler);\r\n this._attachContainerEventHandlers()\r\n },\r\n _attachContainerEventHandlers: function() {\r\n var that = this;\r\n var $container = that.component && that.component.$element();\r\n if ($container) {\r\n _events_engine.default.on($container, (0, _index.addNamespace)(\"keydown\", MODULE_NAMESPACE), function(e) {\r\n if (\"tab\" === (0, _index.normalizeKeyName)(e)) {\r\n that._updateFocusHandler(e)\r\n }\r\n })\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._focusTimeoutID);\r\n clearTimeout(this._updateFocusTimeoutID);\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), UPDATE_FOCUS_EVENTS, this._updateFocusHandler)\r\n }\r\n}).include(_ui.default);\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {}\r\n },\r\n controllers: {\r\n editorFactory: EditorFactory\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n var C = typedArraySpeciesConstructor(O);\n return new C(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","/**\r\n * DevExtreme (core/utils/svg.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getSvgMarkup = getSvgMarkup;\r\nexports.getSvgElement = getSvgElement;\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _window = require(\"./window\");\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\n\r\nfunction getMarkup(element, backgroundColor) {\r\n var temp = _dom_adapter.default.createElement(\"div\");\r\n var clone = element.cloneNode(true);\r\n if (backgroundColor) {\r\n (0, _renderer.default)(clone).css(\"backgroundColor\", backgroundColor)\r\n }\r\n temp.appendChild(clone);\r\n return temp.innerHTML\r\n}\r\n\r\nfunction fixNamespaces(markup) {\r\n var first = true;\r\n if (markup.indexOf(\"xmlns:xlink\") === -1) {\r\n markup = markup.replace(\"\").attr(\"type\", \"file\")\r\n};\r\nvar isFormDataSupported = function() {\r\n return !!window.FormData\r\n};\r\nvar FileUploader = function(_Editor) {\r\n _inheritsLoose(FileUploader, _Editor);\r\n\r\n function FileUploader() {\r\n return _Editor.apply(this, arguments) || this\r\n }\r\n var _proto = FileUploader.prototype;\r\n _proto._supportedKeys = function() {\r\n var _this = this;\r\n var click = function(e) {\r\n e.preventDefault();\r\n var $selectButton = _this._selectButton.$element();\r\n _events_engine.default.trigger($selectButton, _click.name)\r\n };\r\n return (0, _extend.extend)(_Editor.prototype._supportedKeys.call(this), {\r\n space: click,\r\n enter: click\r\n })\r\n };\r\n _proto._setOptionsByReference = function() {\r\n _Editor.prototype._setOptionsByReference.call(this);\r\n (0, _extend.extend)(this._optionsByReference, {\r\n value: true\r\n })\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Editor.prototype._getDefaultOptions.call(this), {\r\n chunkSize: 0,\r\n value: [],\r\n selectButtonText: _message.default.format(\"dxFileUploader-selectFile\"),\r\n uploadButtonText: _message.default.format(\"dxFileUploader-upload\"),\r\n labelText: _message.default.format(\"dxFileUploader-dropFile\"),\r\n name: \"files[]\",\r\n multiple: false,\r\n accept: \"\",\r\n uploadUrl: \"/\",\r\n allowCanceling: true,\r\n showFileList: true,\r\n progress: 0,\r\n dialogTrigger: void 0,\r\n dropZone: void 0,\r\n readyToUploadMessage: _message.default.format(\"dxFileUploader-readyToUpload\"),\r\n uploadedMessage: _message.default.format(\"dxFileUploader-uploaded\"),\r\n uploadFailedMessage: _message.default.format(\"dxFileUploader-uploadFailedMessage\"),\r\n uploadAbortedMessage: _message.default.format(\"dxFileUploader-uploadAbortedMessage\"),\r\n uploadMode: \"instantly\",\r\n uploadMethod: \"POST\",\r\n uploadHeaders: {},\r\n uploadCustomData: {},\r\n onBeforeSend: null,\r\n onUploadStarted: null,\r\n onUploaded: null,\r\n onFilesUploaded: null,\r\n onProgress: null,\r\n onUploadError: null,\r\n onUploadAborted: null,\r\n onDropZoneEnter: null,\r\n onDropZoneLeave: null,\r\n allowedFileExtensions: [],\r\n maxFileSize: 0,\r\n minFileSize: 0,\r\n inputAttr: {},\r\n invalidFileExtensionMessage: _message.default.format(\"dxFileUploader-invalidFileExtension\"),\r\n invalidMaxFileSizeMessage: _message.default.format(\"dxFileUploader-invalidMaxFileSize\"),\r\n invalidMinFileSizeMessage: _message.default.format(\"dxFileUploader-invalidMinFileSize\"),\r\n extendSelection: true,\r\n validationMessageMode: \"always\",\r\n uploadFile: null,\r\n uploadChunk: null,\r\n abortUpload: null,\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n useNativeInputClick: false,\r\n useDragOver: true,\r\n nativeDropSupported: true,\r\n _uploadButtonType: \"normal\"\r\n })\r\n };\r\n _proto._defaultOptionsRules = function() {\r\n return _Editor.prototype._defaultOptionsRules.call(this).concat([{\r\n device: function() {\r\n return \"desktop\" === _devices.default.real().deviceType && !_devices.default.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: [{\r\n platform: \"android\"\r\n }],\r\n options: {\r\n validationMessageOffset: {\r\n v: 0\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" !== _devices.default.real().deviceType\r\n },\r\n options: {\r\n useDragOver: false\r\n }\r\n }, {\r\n device: function() {\r\n return !isFormDataSupported()\r\n },\r\n options: {\r\n uploadMode: \"useForm\"\r\n }\r\n }, {\r\n device: function() {\r\n return _browser.default.msie || \"desktop\" !== _devices.default.real().deviceType\r\n },\r\n options: {\r\n nativeDropSupported: false\r\n }\r\n }, {\r\n device: function() {\r\n return (0, _themes.isMaterial)()\r\n },\r\n options: {\r\n _uploadButtonType: \"default\"\r\n }\r\n }])\r\n };\r\n _proto._initOptions = function(options) {\r\n var isLabelTextDefined = \"labelText\" in options;\r\n _Editor.prototype._initOptions.call(this, options);\r\n if (!isLabelTextDefined && !this._shouldDragOverBeRendered()) {\r\n this.option(\"labelText\", \"\")\r\n }\r\n };\r\n _proto._init = function() {\r\n _Editor.prototype._init.call(this);\r\n this._initFileInput();\r\n this._initLabel();\r\n this._setUploadStrategy();\r\n this._createFiles();\r\n this._createBeforeSendAction();\r\n this._createUploadStartedAction();\r\n this._createUploadedAction();\r\n this._createFilesUploadedAction();\r\n this._createProgressAction();\r\n this._createUploadErrorAction();\r\n this._createUploadAbortedAction();\r\n this._createDropZoneEnterAction();\r\n this._createDropZoneLeaveAction()\r\n };\r\n _proto._setUploadStrategy = function() {\r\n var strategy = null;\r\n if (this.option(\"chunkSize\") > 0) {\r\n var uploadChunk = this.option(\"uploadChunk\");\r\n strategy = uploadChunk && (0, _type.isFunction)(uploadChunk) ? new CustomChunksFileUploadStrategy(this) : new DefaultChunksFileUploadStrategy(this)\r\n } else {\r\n var uploadFile = this.option(\"uploadFile\");\r\n strategy = uploadFile && (0, _type.isFunction)(uploadFile) ? new CustomWholeFileUploadStrategy(this) : new DefaultWholeFileUploadStrategy(this)\r\n }\r\n this._uploadStrategy = strategy\r\n };\r\n _proto._initFileInput = function() {\r\n var _this2 = this;\r\n this._isCustomClickEvent = false;\r\n if (!this._$fileInput) {\r\n this._$fileInput = renderFileUploaderInput();\r\n _events_engine.default.on(this._$fileInput, \"change\", this._inputChangeHandler.bind(this));\r\n _events_engine.default.on(this._$fileInput, \"click\", function(e) {\r\n e.stopPropagation();\r\n return _this2.option(\"useNativeInputClick\") || _this2._isCustomClickEvent\r\n })\r\n }\r\n this._$fileInput.prop({\r\n multiple: this.option(\"multiple\"),\r\n accept: this.option(\"accept\"),\r\n tabIndex: -1\r\n })\r\n };\r\n _proto._inputChangeHandler = function() {\r\n if (this._doPreventInputChange) {\r\n return\r\n }\r\n var fileName = this._$fileInput.val().replace(/^.*\\\\/, \"\");\r\n var files = this._$fileInput.prop(\"files\");\r\n if (files && !files.length && \"useForm\" !== this.option(\"uploadMode\")) {\r\n return\r\n }\r\n var value = files ? this._getFiles(files) : [{\r\n name: fileName\r\n }];\r\n this._changeValue(value);\r\n if (\"instantly\" === this.option(\"uploadMode\")) {\r\n this._uploadFiles()\r\n }\r\n };\r\n _proto._shouldFileListBeExtended = function() {\r\n return \"useForm\" !== this.option(\"uploadMode\") && this.option(\"extendSelection\") && this.option(\"multiple\")\r\n };\r\n _proto._removeDuplicates = function(files, value) {\r\n var result = [];\r\n for (var i = 0; i < value.length; i++) {\r\n if (!this._isFileInArray(files, value[i])) {\r\n result.push(value[i])\r\n }\r\n }\r\n return result\r\n };\r\n _proto._isFileInArray = function(files, file) {\r\n for (var i = 0; i < files.length; i++) {\r\n var item = files[i];\r\n if (item.size === file.size && item.name === file.name) {\r\n return true\r\n }\r\n }\r\n return false\r\n };\r\n _proto._changeValue = function(value) {\r\n var files = this._shouldFileListBeExtended() ? this.option(\"value\").slice() : [];\r\n if (\"instantly\" !== this.option(\"uploadMode\")) {\r\n value = this._removeDuplicates(files, value)\r\n }\r\n this.option(\"value\", files.concat(value))\r\n };\r\n _proto._getFiles = function(fileList) {\r\n var values = [];\r\n (0, _iterator.each)(fileList, function(_, value) {\r\n return values.push(value)\r\n });\r\n return values\r\n };\r\n _proto._getFile = function(fileData) {\r\n var targetFileValue = (0, _type.isNumeric)(fileData) ? this.option(\"value\")[fileData] : fileData;\r\n return this._files.filter(function(file) {\r\n return file.value === targetFileValue\r\n })[0]\r\n };\r\n _proto._initLabel = function() {\r\n if (!this._$inputLabel) {\r\n this._$inputLabel = (0, _renderer.default)(\"
\")\r\n }\r\n this._updateInputLabelText()\r\n };\r\n _proto._updateInputLabelText = function() {\r\n var correctedValue = this._isInteractionDisabled() ? \"\" : this.option(\"labelText\");\r\n this._$inputLabel.text(correctedValue)\r\n };\r\n _proto._focusTarget = function() {\r\n return this.$element().find(\".\" + FILEUPLOADER_BUTTON_CLASS)\r\n };\r\n _proto._getSubmitElement = function() {\r\n return this._$fileInput\r\n };\r\n _proto._initMarkup = function() {\r\n _Editor.prototype._initMarkup.call(this);\r\n this.$element().addClass(FILEUPLOADER_CLASS);\r\n this._renderWrapper();\r\n this._renderInputWrapper();\r\n this._renderSelectButton();\r\n this._renderInputContainer();\r\n this._renderUploadButton();\r\n this._preventRecreatingFiles = true\r\n };\r\n _proto._render = function() {\r\n this._preventRecreatingFiles = false;\r\n this._attachDragEventHandlers(this._$inputWrapper);\r\n this._attachDragEventHandlers(this.option(\"dropZone\"));\r\n this._renderFiles();\r\n _Editor.prototype._render.call(this)\r\n };\r\n _proto._createFileProgressBar = function(file) {\r\n file.progressBar = this._createProgressBar(file.value.size);\r\n file.progressBar.$element().appendTo(file.$file);\r\n this._initStatusMessage(file);\r\n this._ensureCancelButtonInitialized(file)\r\n };\r\n _proto._setStatusMessage = function(file, message) {\r\n var _this3 = this;\r\n setTimeout(function() {\r\n if (_this3.option(\"showFileList\")) {\r\n if (file.$statusMessage) {\r\n file.$statusMessage.text(message);\r\n file.$statusMessage.css(\"display\", \"\");\r\n file.progressBar.$element().remove()\r\n }\r\n }\r\n }, FILEUPLOADER_AFTER_LOAD_DELAY)\r\n };\r\n _proto._getUploadAbortedStatusMessage = function() {\r\n return \"instantly\" === this.option(\"uploadMode\") ? this.option(\"uploadAbortedMessage\") : this.option(\"readyToUploadMessage\")\r\n };\r\n _proto._createFiles = function() {\r\n var _this4 = this;\r\n var value = this.option(\"value\");\r\n if (this._files && (0 === value.length || !this._shouldFileListBeExtended())) {\r\n this._preventFilesUploading(this._files);\r\n this._files = null\r\n }\r\n if (!this._files) {\r\n this._files = []\r\n }(0, _iterator.each)(value.slice(this._files.length), function(_, value) {\r\n var file = _this4._createFile(value);\r\n _this4._validateFile(file);\r\n _this4._files.push(file)\r\n })\r\n };\r\n _proto._preventFilesUploading = function(files) {\r\n var _this5 = this;\r\n files.forEach(function(file) {\r\n return _this5._uploadStrategy.abortUpload(file)\r\n })\r\n };\r\n _proto._validateFile = function(file) {\r\n file.isValidFileExtension = this._validateFileExtension(file);\r\n file.isValidMinSize = this._validateMinFileSize(file);\r\n file.isValidMaxSize = this._validateMaxFileSize(file)\r\n };\r\n _proto._validateFileExtension = function(file) {\r\n var allowedExtensions = this.option(\"allowedFileExtensions\");\r\n var fileExtension = file.value.name.substring(file.value.name.lastIndexOf(\".\")).toLowerCase();\r\n if (0 === allowedExtensions.length) {\r\n return true\r\n }\r\n for (var i = 0; i < allowedExtensions.length; i++) {\r\n if (fileExtension === allowedExtensions[i].toLowerCase()) {\r\n return true\r\n }\r\n }\r\n return false\r\n };\r\n _proto._validateMaxFileSize = function(file) {\r\n var fileSize = file.value.size;\r\n var maxFileSize = this.option(\"maxFileSize\");\r\n return maxFileSize > 0 ? fileSize <= maxFileSize : true\r\n };\r\n _proto._validateMinFileSize = function(file) {\r\n var fileSize = file.value.size;\r\n var minFileSize = this.option(\"minFileSize\");\r\n return minFileSize > 0 ? fileSize >= minFileSize : true\r\n };\r\n _proto._createBeforeSendAction = function() {\r\n this._beforeSendAction = this._createActionByOption(\"onBeforeSend\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n };\r\n _proto._createUploadStartedAction = function() {\r\n this._uploadStartedAction = this._createActionByOption(\"onUploadStarted\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n };\r\n _proto._createUploadedAction = function() {\r\n this._uploadedAction = this._createActionByOption(\"onUploaded\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n };\r\n _proto._createFilesUploadedAction = function() {\r\n this._filesUploadedAction = this._createActionByOption(\"onFilesUploaded\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n };\r\n _proto._createProgressAction = function() {\r\n this._progressAction = this._createActionByOption(\"onProgress\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n };\r\n _proto._createUploadAbortedAction = function() {\r\n this._uploadAbortedAction = this._createActionByOption(\"onUploadAborted\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n };\r\n _proto._createUploadErrorAction = function() {\r\n this._uploadErrorAction = this._createActionByOption(\"onUploadError\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n };\r\n _proto._createDropZoneEnterAction = function() {\r\n this._dropZoneEnterAction = this._createActionByOption(\"onDropZoneEnter\")\r\n };\r\n _proto._createDropZoneLeaveAction = function() {\r\n this._dropZoneLeaveAction = this._createActionByOption(\"onDropZoneLeave\")\r\n };\r\n _proto._createFile = function(value) {\r\n return {\r\n value: value,\r\n loadedSize: 0,\r\n onProgress: (0, _callbacks.default)(),\r\n onAbort: (0, _callbacks.default)(),\r\n onLoad: (0, _callbacks.default)(),\r\n onError: (0, _callbacks.default)(),\r\n onLoadStart: (0, _callbacks.default)(),\r\n isValidFileExtension: true,\r\n isValidMaxSize: true,\r\n isValidMinSize: true,\r\n isValid: function() {\r\n return this.isValidFileExtension && this.isValidMaxSize && this.isValidMinSize\r\n },\r\n isInitialized: false\r\n }\r\n };\r\n _proto._resetFileState = function(file) {\r\n file.isAborted = false;\r\n file.uploadStarted = false;\r\n file.isStartLoad = false;\r\n file.loadedSize = 0;\r\n file.chunksData = void 0;\r\n file.request = void 0\r\n };\r\n _proto._renderFiles = function() {\r\n var _this$_validationMess, _this6 = this;\r\n var value = this.option(\"value\");\r\n if (!this._$filesContainer) {\r\n this._$filesContainer = (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_FILES_CONTAINER_CLASS).appendTo(this._$content)\r\n } else {\r\n if (!this._shouldFileListBeExtended() || 0 === value.length) {\r\n this._$filesContainer.empty()\r\n }\r\n }\r\n var showFileList = this.option(\"showFileList\");\r\n if (showFileList) {\r\n (0, _iterator.each)(this._files, function(_, file) {\r\n if (!file.$file) {\r\n _this6._renderFile(file)\r\n }\r\n })\r\n }\r\n this.$element().toggleClass(FILEUPLOADER_SHOW_FILE_LIST_CLASS, showFileList);\r\n this._toggleFileUploaderEmptyClassName();\r\n this._updateFileNameMaxWidth();\r\n null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.repaint()\r\n };\r\n _proto._renderFile = function(file) {\r\n var value = file.value;\r\n var $fileContainer = (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_FILE_CONTAINER_CLASS).appendTo(this._$filesContainer);\r\n this._renderFileButtons(file, $fileContainer);\r\n file.$file = (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_FILE_CLASS).appendTo($fileContainer);\r\n var $fileInfo = (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_FILE_INFO_CLASS).appendTo(file.$file);\r\n file.$statusMessage = (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_FILE_STATUS_MESSAGE_CLASS).appendTo(file.$file);\r\n (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_FILE_NAME_CLASS).text(value.name).appendTo($fileInfo);\r\n if ((0, _type.isDefined)(value.size)) {\r\n (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_FILE_SIZE_CLASS).text(this._getFileSize(value.size)).appendTo($fileInfo)\r\n }\r\n if (file.isValid()) {\r\n file.$statusMessage.text(this.option(\"readyToUploadMessage\"))\r\n } else {\r\n if (!file.isValidFileExtension) {\r\n file.$statusMessage.append(this._createValidationElement(\"invalidFileExtensionMessage\"))\r\n }\r\n if (!file.isValidMaxSize) {\r\n file.$statusMessage.append(this._createValidationElement(\"invalidMaxFileSizeMessage\"))\r\n }\r\n if (!file.isValidMinSize) {\r\n file.$statusMessage.append(this._createValidationElement(\"invalidMinFileSizeMessage\"))\r\n }\r\n $fileContainer.addClass(FILEUPLOADER_INVALID_CLASS)\r\n }\r\n };\r\n _proto._createValidationElement = function(key) {\r\n return (0, _renderer.default)(\"\").text(this.option(key))\r\n };\r\n _proto._updateFileNameMaxWidth = function() {\r\n var cancelButtonsCount = this.option(\"allowCanceling\") && \"useForm\" !== this.option(\"uploadMode\") ? 1 : 0;\r\n var uploadButtonsCount = \"useButtons\" === this.option(\"uploadMode\") ? 1 : 0;\r\n var filesContainerWidth = this._$filesContainer.find(\".\" + FILEUPLOADER_FILE_CONTAINER_CLASS).first().width() || this._$filesContainer.width();\r\n var $buttonContainer = this._$filesContainer.find(\".\" + FILEUPLOADER_BUTTON_CONTAINER_CLASS).eq(0);\r\n var buttonsWidth = $buttonContainer.width() * (cancelButtonsCount + uploadButtonsCount);\r\n var $fileSize = this._$filesContainer.find(\".\" + FILEUPLOADER_FILE_SIZE_CLASS).eq(0);\r\n var prevFileSize = $fileSize.text();\r\n $fileSize.text(\"1000 Mb\");\r\n var fileSizeWidth = $fileSize.width();\r\n $fileSize.text(prevFileSize);\r\n this._$filesContainer.find(\".\" + FILEUPLOADER_FILE_NAME_CLASS).css(\"maxWidth\", filesContainerWidth - buttonsWidth - fileSizeWidth)\r\n };\r\n _proto._renderFileButtons = function(file, $container) {\r\n var $cancelButton = this._getCancelButton(file);\r\n $cancelButton && $container.append($cancelButton);\r\n var $uploadButton = this._getUploadButton(file);\r\n $uploadButton && $container.append($uploadButton)\r\n };\r\n _proto._getCancelButton = function(file) {\r\n var _this7 = this;\r\n if (\"useForm\" === this.option(\"uploadMode\")) {\r\n return null\r\n }\r\n file.cancelButton = this._createComponent((0, _renderer.default)(\"
\").addClass(FILEUPLOADER_BUTTON_CLASS + \" \" + FILEUPLOADER_CANCEL_BUTTON_CLASS), _button.default, {\r\n onClick: function() {\r\n return _this7._removeFile(file)\r\n },\r\n icon: \"close\",\r\n visible: this.option(\"allowCanceling\"),\r\n disabled: this.option(\"readOnly\"),\r\n integrationOptions: {}\r\n });\r\n return (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_BUTTON_CONTAINER_CLASS).append(file.cancelButton.$element())\r\n };\r\n _proto._getUploadButton = function(file) {\r\n var _this8 = this;\r\n if (!file.isValid() || \"useButtons\" !== this.option(\"uploadMode\")) {\r\n return null\r\n }\r\n file.uploadButton = this._createComponent((0, _renderer.default)(\"
\").addClass(FILEUPLOADER_BUTTON_CLASS + \" \" + FILEUPLOADER_UPLOAD_BUTTON_CLASS), _button.default, {\r\n onClick: function() {\r\n return _this8._uploadFile(file)\r\n },\r\n icon: \"upload\"\r\n });\r\n file.onLoadStart.add(function() {\r\n return file.uploadButton.option({\r\n visible: false,\r\n disabled: true\r\n })\r\n });\r\n file.onAbort.add(function() {\r\n return file.uploadButton.option({\r\n visible: true,\r\n disabled: false\r\n })\r\n });\r\n return (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_BUTTON_CONTAINER_CLASS).append(file.uploadButton.$element())\r\n };\r\n _proto._removeFile = function(file) {\r\n var _file$$file;\r\n null === (_file$$file = file.$file) || void 0 === _file$$file ? void 0 : _file$$file.parent().remove();\r\n this._files.splice((0, _array.inArray)(file, this._files), 1);\r\n var value = this.option(\"value\").slice();\r\n value.splice((0, _array.inArray)(file.value, value), 1);\r\n this._preventRecreatingFiles = true;\r\n this.option(\"value\", value);\r\n this._preventRecreatingFiles = false;\r\n this._toggleFileUploaderEmptyClassName();\r\n this._doPreventInputChange = true;\r\n this._$fileInput.val(\"\");\r\n this._doPreventInputChange = false\r\n };\r\n _proto.removeFile = function(fileData) {\r\n if (\"useForm\" === this.option(\"uploadMode\") || !(0, _type.isDefined)(fileData)) {\r\n return\r\n }\r\n var file = this._getFile(fileData);\r\n if (file) {\r\n if (file.uploadStarted) {\r\n this._preventFilesUploading([file])\r\n }\r\n this._removeFile(file)\r\n }\r\n };\r\n _proto._toggleFileUploaderEmptyClassName = function() {\r\n this.$element().toggleClass(FILEUPLOADER_EMPTY_CLASS, !this._files.length || this._hasInvalidFile(this._files))\r\n };\r\n _proto._hasInvalidFile = function(files) {\r\n for (var i = 0; i < files.length; i++) {\r\n if (!files[i].isValid()) {\r\n return true\r\n }\r\n }\r\n return false\r\n };\r\n _proto._getFileSize = function(size) {\r\n var i = 0;\r\n var labels = [_message.default.format(\"dxFileUploader-bytes\"), _message.default.format(\"dxFileUploader-kb\"), _message.default.format(\"dxFileUploader-Mb\"), _message.default.format(\"dxFileUploader-Gb\")];\r\n var count = labels.length - 1;\r\n while (i < count && size >= 1024) {\r\n size /= 1024;\r\n i++\r\n }\r\n return Math.round(size) + \" \" + labels[i]\r\n };\r\n _proto._renderSelectButton = function() {\r\n var $button = (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_BUTTON_CLASS).appendTo(this._$inputWrapper);\r\n this._selectButton = this._createComponent($button, _button.default, {\r\n text: this.option(\"selectButtonText\"),\r\n focusStateEnabled: false,\r\n integrationOptions: {},\r\n disabled: this.option(\"readOnly\")\r\n });\r\n this._selectFileDialogHandler = this._selectButtonClickHandler.bind(this);\r\n if (\"desktop\" === _devices.default.real().deviceType) {\r\n this._selectButton.option(\"onClick\", this._selectFileDialogHandler)\r\n } else {\r\n this._attachSelectFileDialogHandler(this._selectButton.$element())\r\n }\r\n this._attachSelectFileDialogHandler(this.option(\"dialogTrigger\"))\r\n };\r\n _proto._selectButtonClickHandler = function() {\r\n if (this.option(\"useNativeInputClick\")) {\r\n return\r\n }\r\n if (this._isInteractionDisabled()) {\r\n return false\r\n }\r\n this._isCustomClickEvent = true;\r\n _events_engine.default.trigger(this._$fileInput, \"click\");\r\n this._isCustomClickEvent = false\r\n };\r\n _proto._attachSelectFileDialogHandler = function(target) {\r\n if (!(0, _type.isDefined)(target)) {\r\n return\r\n }\r\n this._detachSelectFileDialogHandler(target);\r\n _events_engine.default.on((0, _renderer.default)(target), \"click\", this._selectFileDialogHandler)\r\n };\r\n _proto._detachSelectFileDialogHandler = function(target) {\r\n if (!(0, _type.isDefined)(target)) {\r\n return\r\n }\r\n _events_engine.default.off((0, _renderer.default)(target), \"click\", this._selectFileDialogHandler)\r\n };\r\n _proto._renderUploadButton = function() {\r\n if (\"useButtons\" !== this.option(\"uploadMode\")) {\r\n return\r\n }\r\n var $uploadButton = (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_BUTTON_CLASS).addClass(FILEUPLOADER_UPLOAD_BUTTON_CLASS).appendTo(this._$content);\r\n this._uploadButton = this._createComponent($uploadButton, _button.default, {\r\n text: this.option(\"uploadButtonText\"),\r\n onClick: this._uploadButtonClickHandler.bind(this),\r\n type: this.option(\"_uploadButtonType\"),\r\n integrationOptions: {}\r\n })\r\n };\r\n _proto._uploadButtonClickHandler = function() {\r\n this._uploadFiles()\r\n };\r\n _proto._shouldDragOverBeRendered = function() {\r\n return !this.option(\"readOnly\") && (\"useForm\" !== this.option(\"uploadMode\") || this.option(\"nativeDropSupported\"))\r\n };\r\n _proto._isInteractionDisabled = function() {\r\n return this.option(\"readOnly\") || this.option(\"disabled\")\r\n };\r\n _proto._renderInputContainer = function() {\r\n this._$inputContainer = (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_INPUT_CONTAINER_CLASS).appendTo(this._$inputWrapper);\r\n this._$fileInput.addClass(FILEUPLOADER_INPUT_CLASS);\r\n this._renderInput();\r\n var labelId = \"dx-fileuploader-input-label-\".concat(new _guid.default);\r\n this._$inputLabel.attr(\"id\", labelId).addClass(FILEUPLOADER_INPUT_LABEL_CLASS).appendTo(this._$inputContainer);\r\n this.setAria(\"labelledby\", labelId, this._$fileInput)\r\n };\r\n _proto._renderInput = function() {\r\n if (this.option(\"useNativeInputClick\")) {\r\n this._selectButton.option(\"template\", this._selectButtonInputTemplate.bind(this))\r\n } else {\r\n this._$fileInput.appendTo(this._$inputContainer);\r\n this._selectButton.option(\"template\", \"content\")\r\n }\r\n this._applyInputAttributes(this.option(\"inputAttr\"))\r\n };\r\n _proto._selectButtonInputTemplate = function(data, content) {\r\n var $content = (0, _renderer.default)(content);\r\n var $text = (0, _renderer.default)(\"\").addClass(\"dx-button-text\").text(data.text);\r\n $content.append($text).append(this._$fileInput);\r\n return $content\r\n };\r\n _proto._renderInputWrapper = function() {\r\n this._$inputWrapper = (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_INPUT_WRAPPER_CLASS).appendTo(this._$content)\r\n };\r\n _proto._detachDragEventHandlers = function(target) {\r\n if (!(0, _type.isDefined)(target)) {\r\n return\r\n }\r\n _events_engine.default.off((0, _renderer.default)(target), (0, _index.addNamespace)(\"\", this.NAME))\r\n };\r\n _proto._attachDragEventHandlers = function(target) {\r\n var isCustomTarget = target !== this._$inputWrapper;\r\n if (!(0, _type.isDefined)(target) || !this._shouldDragOverBeRendered()) {\r\n return\r\n }\r\n this._detachDragEventHandlers(target);\r\n target = (0, _renderer.default)(target);\r\n this._dragEventsTargets = [];\r\n _events_engine.default.on(target, (0, _index.addNamespace)(\"dragenter\", this.NAME), this._dragEnterHandler.bind(this, isCustomTarget));\r\n _events_engine.default.on(target, (0, _index.addNamespace)(\"dragover\", this.NAME), this._dragOverHandler.bind(this));\r\n _events_engine.default.on(target, (0, _index.addNamespace)(\"dragleave\", this.NAME), this._dragLeaveHandler.bind(this, isCustomTarget));\r\n _events_engine.default.on(target, (0, _index.addNamespace)(\"drop\", this.NAME), this._dropHandler.bind(this, isCustomTarget))\r\n };\r\n _proto._applyInputAttributes = function(customAttributes) {\r\n this._$fileInput.attr(customAttributes)\r\n };\r\n _proto._useInputForDrop = function() {\r\n return this.option(\"nativeDropSupported\") && \"useForm\" === this.option(\"uploadMode\")\r\n };\r\n _proto._dragEnterHandler = function(isCustomTarget, e) {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (!this._useInputForDrop()) {\r\n e.preventDefault()\r\n }\r\n this._tryToggleDropZoneActive(true, isCustomTarget, e);\r\n this._updateEventTargets(e)\r\n };\r\n _proto._dragOverHandler = function(e) {\r\n if (!this._useInputForDrop()) {\r\n e.preventDefault()\r\n }\r\n e.originalEvent.dataTransfer.dropEffect = \"copy\"\r\n };\r\n _proto._dragLeaveHandler = function(isCustomTarget, e) {\r\n if (!this._useInputForDrop()) {\r\n e.preventDefault()\r\n }\r\n this._updateEventTargets(e);\r\n this._tryToggleDropZoneActive(false, isCustomTarget, e)\r\n };\r\n _proto._updateEventTargets = function(e) {\r\n var targetIndex = this._dragEventsTargets.indexOf(e.target);\r\n var isTargetExists = targetIndex !== -1;\r\n if (\"dragenter\" === e.type) {\r\n !isTargetExists && this._dragEventsTargets.push(e.target)\r\n } else {\r\n isTargetExists && this._dragEventsTargets.splice(targetIndex, 1)\r\n }\r\n };\r\n _proto._tryToggleDropZoneActive = function(active, isCustom, event) {\r\n var classAction = active ? \"addClass\" : \"removeClass\";\r\n var mouseAction = active ? \"_dropZoneEnterAction\" : \"_dropZoneLeaveAction\";\r\n if (!this._dragEventsTargets.length) {\r\n this[mouseAction]({\r\n event: event,\r\n dropZoneElement: event.currentTarget\r\n });\r\n if (!isCustom) {\r\n this.$element()[classAction](FILEUPLOADER_DRAGOVER_CLASS)\r\n }\r\n }\r\n };\r\n _proto._dropHandler = function(isCustomTarget, e) {\r\n this._dragEventsTargets = [];\r\n if (!isCustomTarget) {\r\n this.$element().removeClass(FILEUPLOADER_DRAGOVER_CLASS)\r\n }\r\n if (this._useInputForDrop() || isCustomTarget && this._isInteractionDisabled()) {\r\n return\r\n }\r\n e.preventDefault();\r\n var fileList = e.originalEvent.dataTransfer.files;\r\n var files = this._getFiles(fileList);\r\n if (!this.option(\"multiple\") && files.length > 1) {\r\n return\r\n }\r\n this._changeValue(this._filterFiles(files));\r\n if (\"instantly\" === this.option(\"uploadMode\")) {\r\n this._uploadFiles()\r\n }\r\n };\r\n _proto._handleAllFilesUploaded = function() {\r\n var areAllFilesLoaded = this._files.every(function(file) {\r\n return !file.isValid() || file._isError || file._isLoaded || file.isAborted\r\n });\r\n if (areAllFilesLoaded) {\r\n this._filesUploadedAction()\r\n }\r\n };\r\n _proto._filterFiles = function(files) {\r\n if (!files.length) {\r\n return files\r\n }\r\n var accept = this.option(\"accept\");\r\n if (!accept.length) {\r\n return files\r\n }\r\n var result = [];\r\n var allowedTypes = this._getAllowedFileTypes(accept);\r\n for (var i = 0, n = files.length; i < n; i++) {\r\n if (this._isFileTypeAllowed(files[i], allowedTypes)) {\r\n result.push(files[i])\r\n }\r\n }\r\n return result\r\n };\r\n _proto._getAllowedFileTypes = function(acceptSting) {\r\n if (!acceptSting.length) {\r\n return []\r\n }\r\n return acceptSting.split(\",\").map(function(item) {\r\n return item.trim()\r\n })\r\n };\r\n _proto._isFileTypeAllowed = function(file, allowedTypes) {\r\n for (var i = 0, n = allowedTypes.length; i < n; i++) {\r\n var allowedType = allowedTypes[i];\r\n if (\".\" === allowedType[0]) {\r\n allowedType = allowedType.replace(\".\", \"\\\\.\");\r\n if (file.name.match(new RegExp(allowedType + \"$\", \"i\"))) {\r\n return true\r\n }\r\n } else {\r\n allowedType = allowedType.replace(new RegExp(\"\\\\*\", \"g\"), \"\");\r\n if (file.type.match(new RegExp(allowedType, \"i\"))) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n };\r\n _proto._renderWrapper = function() {\r\n var $wrapper = (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_WRAPPER_CLASS).appendTo(this.$element());\r\n var $container = (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_CONTAINER_CLASS).appendTo($wrapper);\r\n this._$content = (0, _renderer.default)(\"
\").addClass(FILEUPLOADER_CONTENT_CLASS).appendTo($container)\r\n };\r\n _proto._clean = function() {\r\n this._$fileInput.detach();\r\n delete this._$filesContainer;\r\n if (this._files) {\r\n this._files.forEach(function(file) {\r\n file.$file = null;\r\n file.$statusMessage = null\r\n })\r\n }\r\n _Editor.prototype._clean.call(this)\r\n };\r\n _proto.abortUpload = function(fileData) {\r\n if (\"useForm\" === this.option(\"uploadMode\")) {\r\n return\r\n }\r\n if ((0, _type.isDefined)(fileData)) {\r\n var file = this._getFile(fileData);\r\n if (file) {\r\n this._preventFilesUploading([file])\r\n }\r\n } else {\r\n this._preventFilesUploading(this._files)\r\n }\r\n };\r\n _proto.upload = function(fileData) {\r\n if (\"useForm\" === this.option(\"uploadMode\")) {\r\n return\r\n }\r\n if ((0, _type.isDefined)(fileData)) {\r\n var file = this._getFile(fileData);\r\n if (file && isFormDataSupported()) {\r\n this._uploadFile(file)\r\n }\r\n } else {\r\n this._uploadFiles()\r\n }\r\n };\r\n _proto._uploadFiles = function() {\r\n var _this9 = this;\r\n if (isFormDataSupported()) {\r\n (0, _iterator.each)(this._files, function(_, file) {\r\n return _this9._uploadFile(file)\r\n })\r\n }\r\n };\r\n _proto._uploadFile = function(file) {\r\n this._uploadStrategy.upload(file)\r\n };\r\n _proto._updateProgressBar = function(file, loadedFileData) {\r\n file.progressBar && file.progressBar.option({\r\n value: loadedFileData.loaded,\r\n showStatus: true\r\n });\r\n this._progressAction({\r\n file: file.value,\r\n segmentSize: loadedFileData.currentSegmentSize,\r\n bytesLoaded: loadedFileData.loaded,\r\n bytesTotal: loadedFileData.total,\r\n event: loadedFileData.event,\r\n request: file.request\r\n })\r\n };\r\n _proto._updateTotalProgress = function(totalFilesSize, totalLoadedFilesSize) {\r\n var progress = totalFilesSize ? this._getProgressValue(totalLoadedFilesSize / totalFilesSize) : 0;\r\n this.option(\"progress\", progress);\r\n this._setLoadedSize(totalLoadedFilesSize)\r\n };\r\n _proto._getProgressValue = function(ratio) {\r\n return Math.floor(100 * ratio)\r\n };\r\n _proto._initStatusMessage = function(file) {\r\n file.$statusMessage.css(\"display\", \"none\")\r\n };\r\n _proto._ensureCancelButtonInitialized = function(file) {\r\n var _this10 = this;\r\n if (file.isInitialized) {\r\n return\r\n }\r\n file.cancelButton.option(\"onClick\", function() {\r\n _this10._preventFilesUploading([file]);\r\n _this10._removeFile(file)\r\n });\r\n var hideCancelButton = function() {\r\n setTimeout(function() {\r\n file.cancelButton.option({\r\n visible: false\r\n })\r\n }, FILEUPLOADER_AFTER_LOAD_DELAY)\r\n };\r\n file.onLoad.add(hideCancelButton);\r\n file.onError.add(hideCancelButton)\r\n };\r\n _proto._createProgressBar = function(fileSize) {\r\n var _this11 = this;\r\n return this._createComponent((0, _renderer.default)(\"
\"), _progress_bar.default, {\r\n value: void 0,\r\n min: 0,\r\n max: fileSize,\r\n statusFormat: function(ratio) {\r\n return _this11._getProgressValue(ratio) + \"%\"\r\n },\r\n showStatus: false,\r\n statusPosition: \"right\"\r\n })\r\n };\r\n _proto._getTotalFilesSize = function() {\r\n var _this12 = this;\r\n if (!this._totalFilesSize) {\r\n this._totalFilesSize = 0;\r\n (0, _iterator.each)(this._files, function(_, file) {\r\n _this12._totalFilesSize += file.value.size\r\n })\r\n }\r\n return this._totalFilesSize\r\n };\r\n _proto._getTotalLoadedFilesSize = function() {\r\n var _this13 = this;\r\n if (!this._totalLoadedFilesSize) {\r\n this._totalLoadedFilesSize = 0;\r\n (0, _iterator.each)(this._files, function(_, file) {\r\n _this13._totalLoadedFilesSize += file.loadedSize\r\n })\r\n }\r\n return this._totalLoadedFilesSize\r\n };\r\n _proto._setLoadedSize = function(value) {\r\n this._totalLoadedFilesSize = value\r\n };\r\n _proto._recalculateProgress = function() {\r\n this._totalFilesSize = 0;\r\n this._totalLoadedFilesSize = 0;\r\n this._updateTotalProgress(this._getTotalFilesSize(), this._getTotalLoadedFilesSize())\r\n };\r\n _proto._updateReadOnlyState = function() {\r\n var readOnly = this.option(\"readOnly\");\r\n this._selectButton.option(\"disabled\", readOnly);\r\n this._files.forEach(function(file) {\r\n var _file$cancelButton;\r\n return null === (_file$cancelButton = file.cancelButton) || void 0 === _file$cancelButton ? void 0 : _file$cancelButton.option(\"disabled\", readOnly)\r\n });\r\n this._updateInputLabelText();\r\n this._attachDragEventHandlers(this._$inputWrapper)\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name,\r\n value = args.value,\r\n previousValue = args.previousValue;\r\n switch (name) {\r\n case \"height\":\r\n case \"width\":\r\n this._updateFileNameMaxWidth();\r\n _Editor.prototype._optionChanged.call(this, args);\r\n break;\r\n case \"value\":\r\n !value.length && this._$fileInput.val(\"\");\r\n if (!this._preventRecreatingFiles) {\r\n this._createFiles();\r\n this._renderFiles()\r\n }\r\n this._recalculateProgress();\r\n _Editor.prototype._optionChanged.call(this, args);\r\n break;\r\n case \"name\":\r\n this._initFileInput();\r\n _Editor.prototype._optionChanged.call(this, args);\r\n break;\r\n case \"accept\":\r\n this._initFileInput();\r\n break;\r\n case \"multiple\":\r\n this._initFileInput();\r\n if (!args.value) {\r\n this.reset()\r\n }\r\n break;\r\n case \"readOnly\":\r\n this._updateReadOnlyState();\r\n _Editor.prototype._optionChanged.call(this, args);\r\n break;\r\n case \"selectButtonText\":\r\n this._selectButton.option(\"text\", value);\r\n break;\r\n case \"uploadButtonText\":\r\n this._uploadButton && this._uploadButton.option(\"text\", value);\r\n break;\r\n case \"_uploadButtonType\":\r\n this._uploadButton && this._uploadButton.option(\"type\", value);\r\n break;\r\n case \"dialogTrigger\":\r\n this._detachSelectFileDialogHandler(previousValue);\r\n this._attachSelectFileDialogHandler(value);\r\n break;\r\n case \"dropZone\":\r\n this._detachDragEventHandlers(previousValue);\r\n this._attachDragEventHandlers(value);\r\n break;\r\n case \"maxFileSize\":\r\n case \"minFileSize\":\r\n case \"allowedFileExtensions\":\r\n case \"invalidFileExtensionMessage\":\r\n case \"invalidMaxFileSizeMessage\":\r\n case \"invalidMinFileSizeMessage\":\r\n case \"readyToUploadMessage\":\r\n case \"uploadedMessage\":\r\n case \"uploadFailedMessage\":\r\n case \"uploadAbortedMessage\":\r\n this._invalidate();\r\n break;\r\n case \"labelText\":\r\n this._updateInputLabelText();\r\n break;\r\n case \"showFileList\":\r\n if (!this._preventRecreatingFiles) {\r\n this._renderFiles()\r\n }\r\n break;\r\n case \"uploadFile\":\r\n case \"uploadChunk\":\r\n case \"chunkSize\":\r\n this._setUploadStrategy();\r\n break;\r\n case \"abortUpload\":\r\n case \"uploadUrl\":\r\n case \"progress\":\r\n case \"uploadMethod\":\r\n case \"uploadHeaders\":\r\n case \"uploadCustomData\":\r\n case \"extendSelection\":\r\n break;\r\n case \"allowCanceling\":\r\n case \"uploadMode\":\r\n this.reset();\r\n this._invalidate();\r\n break;\r\n case \"onBeforeSend\":\r\n this._createBeforeSendAction();\r\n break;\r\n case \"onUploadStarted\":\r\n this._createUploadStartedAction();\r\n break;\r\n case \"onUploaded\":\r\n this._createUploadedAction();\r\n break;\r\n case \"onFilesUploaded\":\r\n this._createFilesUploadedAction();\r\n break;\r\n case \"onProgress\":\r\n this._createProgressAction();\r\n break;\r\n case \"onUploadError\":\r\n this._createUploadErrorAction();\r\n break;\r\n case \"onUploadAborted\":\r\n this._createUploadAbortedAction();\r\n break;\r\n case \"onDropZoneEnter\":\r\n this._createDropZoneEnterAction();\r\n break;\r\n case \"onDropZoneLeave\":\r\n this._createDropZoneLeaveAction();\r\n break;\r\n case \"useNativeInputClick\":\r\n this._renderInput();\r\n break;\r\n case \"useDragOver\":\r\n this._attachDragEventHandlers(this._$inputWrapper);\r\n break;\r\n case \"nativeDropSupported\":\r\n this._invalidate();\r\n break;\r\n case \"inputAttr\":\r\n this._applyInputAttributes(this.option(name));\r\n break;\r\n default:\r\n _Editor.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto.reset = function() {\r\n this.option(\"value\", [])\r\n };\r\n return FileUploader\r\n}(_editor.default);\r\nvar FileBlobReader = function() {\r\n function FileBlobReader(file, chunkSize) {\r\n this.file = file;\r\n this.chunkSize = chunkSize;\r\n this.index = 0\r\n }\r\n var _proto2 = FileBlobReader.prototype;\r\n _proto2.read = function() {\r\n if (!this.file) {\r\n return null\r\n }\r\n var result = this.createBlobResult(this.file, this.index, this.chunkSize);\r\n if (result.isCompleted) {\r\n this.file = null\r\n }\r\n this.index++;\r\n return result\r\n };\r\n _proto2.createBlobResult = function(file, index, chunkSize) {\r\n var currentPosition = index * chunkSize;\r\n return {\r\n blob: this.sliceFile(file, currentPosition, chunkSize),\r\n index: index,\r\n isCompleted: currentPosition + chunkSize >= file.size\r\n }\r\n };\r\n _proto2.sliceFile = function(file, startPos, length) {\r\n if (file.slice) {\r\n return file.slice(startPos, startPos + length)\r\n }\r\n if (file.webkitSlice) {\r\n return file.webkitSlice(startPos, startPos + length)\r\n }\r\n return null\r\n };\r\n return FileBlobReader\r\n}();\r\nvar FileUploadStrategyBase = function() {\r\n function FileUploadStrategyBase(fileUploader) {\r\n this.fileUploader = fileUploader\r\n }\r\n var _proto3 = FileUploadStrategyBase.prototype;\r\n _proto3.upload = function(file) {\r\n if (file.isInitialized && file.isAborted) {\r\n this.fileUploader._resetFileState(file)\r\n }\r\n if (file.isValid() && !file.uploadStarted) {\r\n this._prepareFileBeforeUpload(file);\r\n this._uploadCore(file)\r\n }\r\n };\r\n _proto3.abortUpload = function abortUpload(file) {\r\n var _this14 = this;\r\n if (file._isError || file._isLoaded || file.isAborted || !file.uploadStarted) {\r\n return\r\n }\r\n file.isAborted = true;\r\n file.request && file.request.abort();\r\n if (this._isCustomCallback(\"abortUpload\")) {\r\n var abortUpload = this.fileUploader.option(\"abortUpload\");\r\n var arg = this._createUploadArgument(file);\r\n var deferred = null;\r\n try {\r\n var result = abortUpload(file.value, arg);\r\n deferred = (0, _deferred.fromPromise)(result)\r\n } catch (error) {\r\n deferred = (new _deferred.Deferred).reject(error).promise()\r\n }\r\n deferred.done(function() {\r\n return file.onAbort.fire()\r\n }).fail(function(error) {\r\n return _this14._handleFileError(file, error)\r\n })\r\n }\r\n };\r\n _proto3._beforeSend = function(xhr, file) {\r\n var arg = this._createUploadArgument(file);\r\n this.fileUploader._beforeSendAction({\r\n request: xhr,\r\n file: file.value,\r\n uploadInfo: arg\r\n });\r\n file.request = xhr\r\n };\r\n _proto3._createUploadArgument = function(file) {};\r\n _proto3._uploadCore = function(file) {};\r\n _proto3._isCustomCallback = function(name) {\r\n var callback = this.fileUploader.option(name);\r\n return callback && (0, _type.isFunction)(callback)\r\n };\r\n _proto3._handleFileError = function(file, error) {\r\n file._isError = true;\r\n file.onError.fire(error)\r\n };\r\n _proto3._prepareFileBeforeUpload = function(file) {\r\n if (file.$file) {\r\n var _file$progressBar;\r\n null === (_file$progressBar = file.progressBar) || void 0 === _file$progressBar ? void 0 : _file$progressBar.dispose();\r\n this.fileUploader._createFileProgressBar(file)\r\n }\r\n if (file.isInitialized) {\r\n return\r\n }\r\n file.onLoadStart.add(this._onUploadStarted.bind(this, file));\r\n file.onLoad.add(this._onLoadedHandler.bind(this, file));\r\n file.onError.add(this._onErrorHandler.bind(this, file));\r\n file.onAbort.add(this._onAbortHandler.bind(this, file));\r\n file.onProgress.add(this._onProgressHandler.bind(this, file));\r\n file.isInitialized = true\r\n };\r\n _proto3._isStatusError = function(status) {\r\n return 400 <= status && status < 500 || 500 <= status && status < 600\r\n };\r\n _proto3._onUploadStarted = function(file, e) {\r\n file.uploadStarted = true;\r\n this.fileUploader._uploadStartedAction({\r\n file: file.value,\r\n event: e,\r\n request: file.request\r\n })\r\n };\r\n _proto3._onAbortHandler = function(file, e) {\r\n var args = {\r\n file: file.value,\r\n event: e,\r\n request: file.request,\r\n message: this.fileUploader._getUploadAbortedStatusMessage()\r\n };\r\n this.fileUploader._uploadAbortedAction(args);\r\n this.fileUploader._setStatusMessage(file, args.message);\r\n this.fileUploader._handleAllFilesUploaded()\r\n };\r\n _proto3._onErrorHandler = function(file, error) {\r\n var args = {\r\n file: file.value,\r\n event: void 0,\r\n request: file.request,\r\n error: error,\r\n message: this.fileUploader.option(\"uploadFailedMessage\")\r\n };\r\n this.fileUploader._uploadErrorAction(args);\r\n this.fileUploader._setStatusMessage(file, args.message);\r\n this.fileUploader._handleAllFilesUploaded()\r\n };\r\n _proto3._onLoadedHandler = function(file, e) {\r\n var args = {\r\n file: file.value,\r\n event: e,\r\n request: file.request,\r\n message: this.fileUploader.option(\"uploadedMessage\")\r\n };\r\n file._isLoaded = true;\r\n this.fileUploader._uploadedAction(args);\r\n this.fileUploader._setStatusMessage(file, args.message);\r\n this.fileUploader._handleAllFilesUploaded()\r\n };\r\n _proto3._onProgressHandler = function(file, e) {\r\n if (file) {\r\n var totalFilesSize = this.fileUploader._getTotalFilesSize();\r\n var totalLoadedFilesSize = this.fileUploader._getTotalLoadedFilesSize();\r\n var loadedSize = Math.min(e.loaded, file.value.size);\r\n var segmentSize = loadedSize - file.loadedSize;\r\n file.loadedSize = loadedSize;\r\n this.fileUploader._updateTotalProgress(totalFilesSize, totalLoadedFilesSize + segmentSize);\r\n this.fileUploader._updateProgressBar(file, this._getLoadedData(loadedSize, e.total, segmentSize, e))\r\n }\r\n };\r\n _proto3._getLoadedData = function(loaded, total, currentSegmentSize, event) {\r\n return {\r\n loaded: loaded,\r\n total: total,\r\n currentSegmentSize: currentSegmentSize\r\n }\r\n };\r\n _proto3._extendFormData = function(formData) {\r\n var formDataEntries = this.fileUploader.option(\"uploadCustomData\");\r\n for (var entryName in formDataEntries) {\r\n if (Object.prototype.hasOwnProperty.call(formDataEntries, entryName) && (0, _type.isDefined)(formDataEntries[entryName])) {\r\n formData.append(entryName, formDataEntries[entryName])\r\n }\r\n }\r\n };\r\n return FileUploadStrategyBase\r\n}();\r\nvar ChunksFileUploadStrategyBase = function(_FileUploadStrategyBa) {\r\n _inheritsLoose(ChunksFileUploadStrategyBase, _FileUploadStrategyBa);\r\n\r\n function ChunksFileUploadStrategyBase(fileUploader) {\r\n var _this15;\r\n _this15 = _FileUploadStrategyBa.call(this, fileUploader) || this;\r\n _this15.chunkSize = _this15.fileUploader.option(\"chunkSize\");\r\n return _this15\r\n }\r\n var _proto4 = ChunksFileUploadStrategyBase.prototype;\r\n _proto4._uploadCore = function(file) {\r\n var realFile = file.value;\r\n var chunksData = {\r\n name: realFile.name,\r\n loadedBytes: 0,\r\n type: realFile.type,\r\n blobReader: new FileBlobReader(realFile, this.chunkSize),\r\n guid: new _guid.default,\r\n fileSize: realFile.size,\r\n count: Math.ceil(realFile.size / this.chunkSize),\r\n customData: {}\r\n };\r\n file.chunksData = chunksData;\r\n this._sendChunk(file, chunksData)\r\n };\r\n _proto4._sendChunk = function(file, chunksData) {\r\n var _this16 = this;\r\n var chunk = chunksData.blobReader.read();\r\n chunksData.currentChunk = chunk;\r\n if (chunk) {\r\n this._sendChunkCore(file, chunksData, chunk).done(function() {\r\n if (file.isAborted) {\r\n return\r\n }\r\n chunksData.loadedBytes += chunk.blob.size;\r\n file.onProgress.fire({\r\n loaded: chunksData.loadedBytes,\r\n total: file.value.size\r\n });\r\n if (chunk.isCompleted) {\r\n file.onLoad.fire()\r\n }\r\n setTimeout(function() {\r\n return _this16._sendChunk(file, chunksData)\r\n })\r\n }).fail(function(error) {\r\n if (_this16._shouldHandleError(error)) {\r\n _this16._handleFileError(file, error)\r\n }\r\n })\r\n }\r\n };\r\n _proto4._sendChunkCore = function(file, chunksData, chunk) {};\r\n _proto4._shouldHandleError = function(error) {};\r\n _proto4._tryRaiseStartLoad = function(file) {\r\n if (!file.isStartLoad) {\r\n file.isStartLoad = true;\r\n file.onLoadStart.fire()\r\n }\r\n };\r\n _proto4._getEvent = function(e) {\r\n return null\r\n };\r\n _proto4._createUploadArgument = function(file) {\r\n return this._createChunksInfo(file.chunksData)\r\n };\r\n _proto4._createChunksInfo = function(chunksData) {\r\n return {\r\n bytesUploaded: chunksData.loadedBytes,\r\n chunkCount: chunksData.count,\r\n customData: chunksData.customData,\r\n chunkBlob: chunksData.currentChunk.blob,\r\n chunkIndex: chunksData.currentChunk.index\r\n }\r\n };\r\n return ChunksFileUploadStrategyBase\r\n}(FileUploadStrategyBase);\r\nvar DefaultChunksFileUploadStrategy = function(_ChunksFileUploadStra) {\r\n _inheritsLoose(DefaultChunksFileUploadStrategy, _ChunksFileUploadStra);\r\n\r\n function DefaultChunksFileUploadStrategy() {\r\n return _ChunksFileUploadStra.apply(this, arguments) || this\r\n }\r\n var _proto5 = DefaultChunksFileUploadStrategy.prototype;\r\n _proto5._sendChunkCore = function(file, chunksData, chunk) {\r\n var _this17 = this;\r\n return _ajax.default.sendRequest({\r\n url: this.fileUploader.option(\"uploadUrl\"),\r\n method: this.fileUploader.option(\"uploadMethod\"),\r\n headers: this.fileUploader.option(\"uploadHeaders\"),\r\n beforeSend: function(xhr) {\r\n return _this17._beforeSend(xhr, file)\r\n },\r\n upload: {\r\n onloadstart: function() {\r\n return _this17._tryRaiseStartLoad(file)\r\n },\r\n onabort: function() {\r\n return file.onAbort.fire()\r\n }\r\n },\r\n data: this._createFormData({\r\n fileName: chunksData.name,\r\n blobName: this.fileUploader.option(\"name\"),\r\n blob: chunk.blob,\r\n index: chunk.index,\r\n count: chunksData.count,\r\n type: chunksData.type,\r\n guid: chunksData.guid,\r\n size: chunksData.fileSize\r\n })\r\n })\r\n };\r\n _proto5._shouldHandleError = function(e) {\r\n return this._isStatusError(e.status)\r\n };\r\n _proto5._createFormData = function(options) {\r\n var formData = new window.FormData;\r\n formData.append(options.blobName, options.blob);\r\n formData.append(FILEUPLOADER_CHUNK_META_DATA_NAME, JSON.stringify({\r\n FileName: options.fileName,\r\n Index: options.index,\r\n TotalCount: options.count,\r\n FileSize: options.size,\r\n FileType: options.type,\r\n FileGuid: options.guid\r\n }));\r\n this._extendFormData(formData);\r\n return formData\r\n };\r\n return DefaultChunksFileUploadStrategy\r\n}(ChunksFileUploadStrategyBase);\r\nvar CustomChunksFileUploadStrategy = function(_ChunksFileUploadStra2) {\r\n _inheritsLoose(CustomChunksFileUploadStrategy, _ChunksFileUploadStra2);\r\n\r\n function CustomChunksFileUploadStrategy() {\r\n return _ChunksFileUploadStra2.apply(this, arguments) || this\r\n }\r\n var _proto6 = CustomChunksFileUploadStrategy.prototype;\r\n _proto6._sendChunkCore = function(file, chunksData) {\r\n this._tryRaiseStartLoad(file);\r\n var chunksInfo = this._createChunksInfo(chunksData);\r\n var uploadChunk = this.fileUploader.option(\"uploadChunk\");\r\n try {\r\n var result = uploadChunk(file.value, chunksInfo);\r\n return (0, _deferred.fromPromise)(result)\r\n } catch (error) {\r\n return (new _deferred.Deferred).reject(error).promise()\r\n }\r\n };\r\n _proto6._shouldHandleError = function(e) {\r\n return true\r\n };\r\n return CustomChunksFileUploadStrategy\r\n}(ChunksFileUploadStrategyBase);\r\nvar WholeFileUploadStrategyBase = function(_FileUploadStrategyBa2) {\r\n _inheritsLoose(WholeFileUploadStrategyBase, _FileUploadStrategyBa2);\r\n\r\n function WholeFileUploadStrategyBase() {\r\n return _FileUploadStrategyBa2.apply(this, arguments) || this\r\n }\r\n var _proto7 = WholeFileUploadStrategyBase.prototype;\r\n _proto7._uploadCore = function(file) {\r\n var _this18 = this;\r\n file.loadedSize = 0;\r\n this._uploadFile(file).done(function() {\r\n if (!file.isAborted) {\r\n file.onLoad.fire()\r\n }\r\n }).fail(function(error) {\r\n if (_this18._shouldHandleError(file, error)) {\r\n _this18._handleFileError(file, error)\r\n }\r\n })\r\n };\r\n _proto7._uploadFile = function(file) {};\r\n _proto7._shouldHandleError = function(file, e) {};\r\n _proto7._handleProgress = function(file, e) {\r\n if (file._isError) {\r\n return\r\n }\r\n file._isProgressStarted = true;\r\n file.onProgress.fire(e)\r\n };\r\n _proto7._getLoadedData = function(loaded, total, segmentSize, event) {\r\n var result = _FileUploadStrategyBa2.prototype._getLoadedData.call(this, loaded, total, segmentSize, event);\r\n result.event = event;\r\n return result\r\n };\r\n return WholeFileUploadStrategyBase\r\n}(FileUploadStrategyBase);\r\nvar DefaultWholeFileUploadStrategy = function(_WholeFileUploadStrat) {\r\n _inheritsLoose(DefaultWholeFileUploadStrategy, _WholeFileUploadStrat);\r\n\r\n function DefaultWholeFileUploadStrategy() {\r\n return _WholeFileUploadStrat.apply(this, arguments) || this\r\n }\r\n var _proto8 = DefaultWholeFileUploadStrategy.prototype;\r\n _proto8._uploadFile = function(file) {\r\n var _this19 = this;\r\n return _ajax.default.sendRequest({\r\n url: this.fileUploader.option(\"uploadUrl\"),\r\n method: this.fileUploader.option(\"uploadMethod\"),\r\n headers: this.fileUploader.option(\"uploadHeaders\"),\r\n beforeSend: function(xhr) {\r\n return _this19._beforeSend(xhr, file)\r\n },\r\n upload: {\r\n onprogress: function(e) {\r\n return _this19._handleProgress(file, e)\r\n },\r\n onloadstart: function() {\r\n return file.onLoadStart.fire()\r\n },\r\n onabort: function() {\r\n return file.onAbort.fire()\r\n }\r\n },\r\n data: this._createFormData(this.fileUploader.option(\"name\"), file.value)\r\n })\r\n };\r\n _proto8._shouldHandleError = function(file, e) {\r\n return this._isStatusError(e.status) || !file._isProgressStarted\r\n };\r\n _proto8._createFormData = function(fieldName, fieldValue) {\r\n var formData = new window.FormData;\r\n formData.append(fieldName, fieldValue, fieldValue.name);\r\n this._extendFormData(formData);\r\n return formData\r\n };\r\n return DefaultWholeFileUploadStrategy\r\n}(WholeFileUploadStrategyBase);\r\nvar CustomWholeFileUploadStrategy = function(_WholeFileUploadStrat2) {\r\n _inheritsLoose(CustomWholeFileUploadStrategy, _WholeFileUploadStrat2);\r\n\r\n function CustomWholeFileUploadStrategy() {\r\n return _WholeFileUploadStrat2.apply(this, arguments) || this\r\n }\r\n var _proto9 = CustomWholeFileUploadStrategy.prototype;\r\n _proto9._uploadFile = function(file) {\r\n var _this20 = this;\r\n file.onLoadStart.fire();\r\n var progressCallback = function(loadedBytes) {\r\n var arg = {\r\n loaded: loadedBytes,\r\n total: file.size\r\n };\r\n _this20._handleProgress(file, arg)\r\n };\r\n var uploadFile = this.fileUploader.option(\"uploadFile\");\r\n try {\r\n var result = uploadFile(file.value, progressCallback);\r\n return (0, _deferred.fromPromise)(result)\r\n } catch (error) {\r\n return (new _deferred.Deferred).reject(error).promise()\r\n }\r\n };\r\n _proto9._shouldHandleError = function(file, e) {\r\n return true\r\n };\r\n return CustomWholeFileUploadStrategy\r\n}(WholeFileUploadStrategyBase);\r\n(0, _component_registrator.default)(\"dxFileUploader\", FileUploader);\r\nvar _default = FileUploader;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.modules.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _window = require(\"../../core/utils/window\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar WIDGET_WITH_LEGACY_CONTAINER_NAME = \"dxDataGrid\";\r\nvar ModuleItem = _class.default.inherit({\r\n _endUpdateCore: function() {},\r\n ctor: function(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 (0, _iterator.each)(this.callbackNames() || [], function(index, name) {\r\n var flags = that.callbackFlags(name) || {};\r\n flags.unique = true, flags.syncStrategy = true;\r\n that[this] = (0, _callbacks.default)(flags)\r\n })\r\n },\r\n init: function() {},\r\n callbackNames: function() {},\r\n callbackFlags: function() {},\r\n publicMethods: function() {},\r\n beginUpdate: function() {\r\n this._updateLockCount++\r\n },\r\n endUpdate: function() {\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: function(name) {\r\n var component = this.component;\r\n var optionCache = component._optionCache;\r\n if (1 === arguments.length && optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = component.option(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return component.option.apply(component, arguments)\r\n },\r\n _silentOption: function(name, value) {\r\n var component = this.component;\r\n var optionCache = component._optionCache;\r\n if (optionCache) {\r\n optionCache[name] = value\r\n }\r\n return component._setOptionWithoutOptionChange(name, value)\r\n },\r\n localize: function(name) {\r\n var optionCache = this.component._optionCache;\r\n if (optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = _message.default.format(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return _message.default.format(name)\r\n },\r\n on: function() {\r\n return this.component.on.apply(this.component, arguments)\r\n },\r\n off: function() {\r\n return this.component.off.apply(this.component, arguments)\r\n },\r\n optionChanged: function(args) {\r\n if (args.name in this._actions) {\r\n this.createAction(args.name, this._actionConfigs[args.name]);\r\n args.handled = true\r\n }\r\n },\r\n getAction: function(actionName) {\r\n return this._actions[actionName]\r\n },\r\n setAria: function(name, value, $target) {\r\n var target = $target.get(0);\r\n var prefix = \"role\" !== name && \"id\" !== name ? \"aria-\" : \"\";\r\n if (target.setAttribute) {\r\n target.setAttribute(prefix + name, value)\r\n } else {\r\n $target.attr(prefix + name, value)\r\n }\r\n },\r\n _createComponent: function() {\r\n return this.component._createComponent.apply(this.component, arguments)\r\n },\r\n getController: function(name) {\r\n return this.component._controllers[name]\r\n },\r\n createAction: function(actionName, config) {\r\n if ((0, _type.isFunction)(actionName)) {\r\n var action = this.component._createAction(actionName.bind(this), config);\r\n return function(e) {\r\n action({\r\n event: e\r\n })\r\n }\r\n } else {\r\n this._actions[actionName] = this.component._createActionByOption(actionName, config);\r\n this._actionConfigs[actionName] = config\r\n }\r\n },\r\n executeAction: function(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n dispose: function() {\r\n var that = this;\r\n (0, _iterator.each)(that.callbackNames() || [], function() {\r\n that[this].empty()\r\n })\r\n },\r\n addWidgetPrefix: function(className) {\r\n var componentName = this.component.NAME;\r\n return \"dx-\" + componentName.slice(2).toLowerCase() + (className ? \"-\" + className : \"\")\r\n },\r\n getWidgetContainerClass: function() {\r\n var containerName = this.component.NAME === WIDGET_WITH_LEGACY_CONTAINER_NAME ? null : \"container\";\r\n return this.addWidgetPrefix(containerName)\r\n }\r\n});\r\nvar Controller = ModuleItem;\r\nvar ViewController = Controller.inherit({\r\n getView: function(name) {\r\n return this.component._views[name]\r\n },\r\n getViews: function() {\r\n return this.component._views\r\n }\r\n});\r\nvar View = ModuleItem.inherit({\r\n _isReady: function() {\r\n return this.component.isReady()\r\n },\r\n _endUpdateCore: function() {\r\n this.callBase();\r\n if (!this._isReady() && this._requireReady) {\r\n this._requireRender = false;\r\n this.component._requireResize = false\r\n }\r\n if (this._requireRender) {\r\n this._requireRender = false;\r\n this.render(this._$parent)\r\n }\r\n },\r\n _invalidate: function(requireResize, requireReady) {\r\n this._requireRender = true;\r\n this.component._requireResize = (0, _window.hasWindow)() && (this.component._requireResize || requireResize);\r\n this._requireReady = this._requireReady || requireReady\r\n },\r\n _renderCore: function() {},\r\n _resizeCore: function() {},\r\n _afterRender: function() {},\r\n _parentElement: function() {\r\n return this._$parent\r\n },\r\n ctor: function(component) {\r\n this.callBase(component);\r\n this.renderCompleted = (0, _callbacks.default)();\r\n this.resizeCompleted = (0, _callbacks.default)()\r\n },\r\n element: function() {\r\n return this._$element\r\n },\r\n getElementHeight: function() {\r\n var $element = this.element();\r\n if (!$element) {\r\n return 0\r\n }\r\n var marginTop = parseFloat($element.css(\"marginTop\")) || 0;\r\n var marginBottom = parseFloat($element.css(\"marginBottom\")) || 0;\r\n var offsetHeight = $element.get(0).offsetHeight;\r\n return offsetHeight + marginTop + marginBottom\r\n },\r\n isVisible: function() {\r\n return true\r\n },\r\n getTemplate: function(name) {\r\n return this.component._getTemplate(name)\r\n },\r\n render: function($parent, options) {\r\n var $element = this._$element;\r\n var isVisible = this.isVisible();\r\n if (!$element && !$parent) {\r\n return\r\n }\r\n this._requireReady = false;\r\n if (!$element) {\r\n $element = this._$element = (0, _renderer.default)(\"
\").appendTo($parent);\r\n this._$parent = $parent\r\n }\r\n $element.toggleClass(\"dx-hidden\", !isVisible);\r\n if (isVisible) {\r\n this.component._optionCache = {};\r\n this._renderCore(options);\r\n this.component._optionCache = void 0;\r\n this._afterRender($parent);\r\n this.renderCompleted.fire(options)\r\n }\r\n },\r\n resize: function() {\r\n this.isResizing = true;\r\n this._resizeCore();\r\n this.resizeCompleted.fire();\r\n this.isResizing = false\r\n },\r\n focus: function() {\r\n _events_engine.default.trigger(this.element(), \"focus\")\r\n }\r\n});\r\nvar MODULES_ORDER_MAX_INDEX = 1e6;\r\nvar processModules = function(that, componentClass) {\r\n var modules = componentClass.modules;\r\n var modulesOrder = componentClass.modulesOrder;\r\n var controllerTypes = componentClass.controllerTypes || {};\r\n var viewTypes = componentClass.viewTypes || {};\r\n if (!componentClass.controllerTypes) {\r\n if (modulesOrder) {\r\n modules.sort(function(module1, module2) {\r\n var orderIndex1 = (0, _array.inArray)(module1.name, modulesOrder);\r\n var orderIndex2 = (0, _array.inArray)(module2.name, modulesOrder);\r\n if (orderIndex1 < 0) {\r\n orderIndex1 = MODULES_ORDER_MAX_INDEX\r\n }\r\n if (orderIndex2 < 0) {\r\n orderIndex2 = MODULES_ORDER_MAX_INDEX\r\n }\r\n return orderIndex1 - orderIndex2\r\n })\r\n }(0, _iterator.each)(modules, function() {\r\n var controllers = this.controllers;\r\n var moduleName = this.name;\r\n var views = this.views;\r\n controllers && (0, _iterator.each)(controllers, function(name, type) {\r\n if (controllerTypes[name]) {\r\n throw _ui.default.Error(\"E1001\", moduleName, name)\r\n } else {\r\n if (!(type && type.subclassOf && type.subclassOf(Controller))) {\r\n type.subclassOf(Controller);\r\n throw _ui.default.Error(\"E1002\", moduleName, name)\r\n }\r\n }\r\n controllerTypes[name] = type\r\n });\r\n views && (0, _iterator.each)(views, function(name, type) {\r\n if (viewTypes[name]) {\r\n throw _ui.default.Error(\"E1003\", moduleName, name)\r\n } else {\r\n if (!(type && type.subclassOf && type.subclassOf(View))) {\r\n throw _ui.default.Error(\"E1004\", moduleName, name)\r\n }\r\n }\r\n viewTypes[name] = type\r\n })\r\n });\r\n (0, _iterator.each)(modules, function() {\r\n var extenders = this.extenders;\r\n if (extenders) {\r\n extenders.controllers && (0, _iterator.each)(extenders.controllers, function(name, extender) {\r\n if (controllerTypes[name]) {\r\n controllerTypes[name] = controllerTypes[name].inherit(extender)\r\n }\r\n });\r\n extenders.views && (0, _iterator.each)(extenders.views, function(name, extender) {\r\n if (viewTypes[name]) {\r\n viewTypes[name] = viewTypes[name].inherit(extender)\r\n }\r\n })\r\n }\r\n });\r\n componentClass.controllerTypes = controllerTypes;\r\n componentClass.viewTypes = viewTypes\r\n }\r\n var registerPublicMethods = function(that, name, moduleItem) {\r\n var publicMethods = moduleItem.publicMethods();\r\n if (publicMethods) {\r\n (0, _iterator.each)(publicMethods, function(index, methodName) {\r\n if (moduleItem[methodName]) {\r\n if (!that[methodName]) {\r\n that[methodName] = function() {\r\n return moduleItem[methodName].apply(moduleItem, arguments)\r\n }\r\n } else {\r\n throw _ui.default.Error(\"E1005\", methodName)\r\n }\r\n } else {\r\n throw _ui.default.Error(\"E1006\", name, methodName)\r\n }\r\n })\r\n }\r\n };\r\n var createModuleItems = function(moduleTypes) {\r\n var moduleItems = {};\r\n (0, _iterator.each)(moduleTypes, function(name, moduleType) {\r\n var moduleItem = new moduleType(that);\r\n moduleItem.name = name;\r\n registerPublicMethods(that, name, moduleItem);\r\n moduleItems[name] = moduleItem\r\n });\r\n return moduleItems\r\n };\r\n that._controllers = createModuleItems(controllerTypes);\r\n that._views = createModuleItems(viewTypes)\r\n};\r\nvar callModuleItemsMethod = function(that, methodName, args) {\r\n args = args || [];\r\n if (that._controllers) {\r\n (0, _iterator.each)(that._controllers, function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n })\r\n }\r\n if (that._views) {\r\n (0, _iterator.each)(that._views, function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n })\r\n }\r\n};\r\nvar _default = {\r\n modules: [],\r\n View: View,\r\n ViewController: ViewController,\r\n Controller: Controller,\r\n registerModule: function(name, module) {\r\n var modules = this.modules;\r\n for (var i = 0; i < modules.length; i++) {\r\n if (modules[i].name === name) {\r\n return\r\n }\r\n }\r\n module.name = name;\r\n modules.push(module);\r\n delete this.controllerTypes;\r\n delete this.viewTypes\r\n },\r\n registerModulesOrder: function(moduleNames) {\r\n this.modulesOrder = moduleNames\r\n },\r\n unregisterModule: function(name) {\r\n this.modules = (0, _common.grep)(this.modules, function(module) {\r\n return module.name !== name\r\n });\r\n delete this.controllerTypes;\r\n delete this.viewTypes\r\n },\r\n processModules: processModules,\r\n callModuleItemsMethod: callModuleItemsMethod\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.columns_view.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nexports.ColumnsView = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _element_data = require(\"../../core/element_data\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _double_click = require(\"../../events/double_click\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _style = require(\"../../core/utils/style\");\r\nvar _element = require(\"../../core/element\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar iteratorUtils = _interopRequireWildcard(require(\"../../core/utils/iterator\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _uiGrid_core3 = _interopRequireDefault(require(\"./ui.grid_core.column_state_mixin\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SCROLL_CONTAINER_CLASS = \"scroll-container\";\r\nvar GROUP_SPACE_CLASS = \"group-space\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar TABLE_CLASS = \"table\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar CELL_UPDATED_ANIMATION_CLASS = \"cell-updated-animation\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"0.0001px\";\r\nvar CELL_HINT_VISIBLE = \"dxCellHintVisible\";\r\nvar FORM_FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar appendElementTemplate = {\r\n render: function(options) {\r\n options.container.append(options.content)\r\n }\r\n};\r\nvar subscribeToRowEvents = function(that, $table) {\r\n var touchTarget;\r\n var touchCurrentTarget;\r\n var timeoutId;\r\n\r\n function clearTouchTargets(timeout) {\r\n return setTimeout(function() {\r\n touchTarget = touchCurrentTarget = null\r\n }, timeout)\r\n }\r\n _events_engine.default.on($table, \"touchstart touchend\", \".dx-row\", function(e) {\r\n clearTimeout(timeoutId);\r\n if (\"touchstart\" === e.type) {\r\n touchTarget = e.target;\r\n touchCurrentTarget = e.currentTarget;\r\n timeoutId = clearTouchTargets(1e3)\r\n } else {\r\n timeoutId = clearTouchTargets()\r\n }\r\n });\r\n _events_engine.default.on($table, [_click.name, _double_click.name, _pointer.default.down].join(\" \"), \".dx-row\", {\r\n useNative: that._isNativeClick()\r\n }, that.createAction(function(e) {\r\n var event = e.event;\r\n if (touchTarget) {\r\n event.target = touchTarget;\r\n event.currentTarget = touchCurrentTarget\r\n }\r\n if (!(0, _renderer.default)(event.target).closest(\"a\").length) {\r\n e.rowIndex = that.getRowIndex(event.currentTarget);\r\n if (e.rowIndex >= 0) {\r\n e.rowElement = (0, _element.getPublicElement)((0, _renderer.default)(event.currentTarget));\r\n e.columns = that.getColumns();\r\n if (event.type === _pointer.default.down) {\r\n that._rowPointerDown(e)\r\n } else {\r\n if (event.type === _click.name) {\r\n that._rowClick(e)\r\n } else {\r\n that._rowDblClick(e)\r\n }\r\n }\r\n }\r\n }\r\n }))\r\n};\r\nvar getWidthStyle = function(width) {\r\n if (\"auto\" === width) {\r\n return \"\"\r\n }\r\n return (0, _type.isNumeric)(width) ? width + \"px\" : width\r\n};\r\nvar setCellWidth = function(cell, column, width) {\r\n cell.style.width = cell.style.maxWidth = \"auto\" === column.width ? \"\" : width\r\n};\r\nvar copyAttributes = function(element, newElement) {\r\n if (!element || !newElement) {\r\n return\r\n }\r\n var oldAttributes = element.attributes;\r\n var newAttributes = newElement.attributes;\r\n var i;\r\n for (i = 0; i < oldAttributes.length; i++) {\r\n var name = oldAttributes[i].nodeName;\r\n if (!newElement.hasAttribute(name)) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n for (i = 0; i < newAttributes.length; i++) {\r\n element.setAttribute(newAttributes[i].nodeName, newAttributes[i].nodeValue)\r\n }\r\n};\r\nvar ColumnsView = _uiGrid_core.default.View.inherit(_uiGrid_core3.default).inherit({\r\n _createScrollableOptions: function() {\r\n var that = this;\r\n var scrollingOptions = that.option(\"scrolling\");\r\n var useNativeScrolling = that.option(\"scrolling.useNative\");\r\n var options = (0, _extend.extend)({\r\n pushBackValue: 0\r\n }, scrollingOptions, {\r\n direction: \"both\",\r\n bounceEnabled: false,\r\n useKeyboard: false\r\n });\r\n if (void 0 === useNativeScrolling) {\r\n useNativeScrolling = true\r\n }\r\n if (\"auto\" === useNativeScrolling) {\r\n delete options.useNative;\r\n delete options.useSimulatedScrollbar\r\n } else {\r\n options.useNative = !!useNativeScrolling;\r\n options.useSimulatedScrollbar = !useNativeScrolling\r\n }\r\n return options\r\n },\r\n _updateCell: function($cell, parameters) {\r\n if (parameters.rowType) {\r\n this._cellPrepared($cell, parameters)\r\n }\r\n },\r\n _createCell: function(options) {\r\n var column = options.column;\r\n var alignment = column.alignment || (0, _position.getDefaultAlignment)(this.option(\"rtlEnabled\"));\r\n var cell = _dom_adapter.default.createElement(\"td\");\r\n cell.style.textAlign = alignment;\r\n var $cell = (0, _renderer.default)(cell);\r\n if (\"data\" === options.rowType && column.headerId && !column.type) {\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n this.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n }\r\n if (column.cssClass) {\r\n $cell.addClass(column.cssClass)\r\n }\r\n if (\"expand\" === column.command) {\r\n $cell.addClass(column.cssClass);\r\n $cell.addClass(this.addWidgetPrefix(GROUP_SPACE_CLASS))\r\n }\r\n if (column.colspan > 1) {\r\n $cell.attr(\"colSpan\", column.colspan)\r\n } else {\r\n if (!column.isBand && \"auto\" !== column.visibleWidth && !this.option(\"legacyRendering\") && this.option(\"columnAutoWidth\")) {\r\n if (column.width || column.minWidth) {\r\n cell.style.minWidth = getWidthStyle(column.minWidth || column.width)\r\n }\r\n if (column.width) {\r\n setCellWidth(cell, column, getWidthStyle(column.width))\r\n }\r\n }\r\n }\r\n return $cell\r\n },\r\n _createRow: function(rowObject) {\r\n var $element = (0, _renderer.default)(\"\").addClass(ROW_CLASS);\r\n this.setAria(\"role\", \"row\", $element);\r\n return $element\r\n },\r\n _isAltRow: function(row) {\r\n return row && row.dataIndex % 2 === 1\r\n },\r\n _createTable: function(columns, isAppend) {\r\n var that = this;\r\n var $table = (0, _renderer.default)(\"\").addClass(that.addWidgetPrefix(TABLE_CLASS)).addClass(that.addWidgetPrefix(TABLE_FIXED_CLASS));\r\n if (columns && !isAppend) {\r\n $table.append(that._createColGroup(columns));\r\n if (_browser.default.safari) {\r\n $table.append((0, _renderer.default)(\"\").append(\"\"))\r\n }\r\n that.setAria(\"role\", \"presentation\", $table)\r\n } else {\r\n that.setAria(\"hidden\", true, $table)\r\n }\r\n this.setAria(\"role\", \"presentation\", (0, _renderer.default)(\"\").appendTo($table));\r\n if (isAppend) {\r\n return $table\r\n }\r\n if (_browser.default.mozilla) {\r\n _events_engine.default.on($table, \"mousedown\", \"td\", function(e) {\r\n if (e.ctrlKey) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n if (that.option(\"cellHintEnabled\")) {\r\n _events_engine.default.on($table, \"mousemove\", \".dx-row > td\", this.createAction(function(args) {\r\n var e = args.event;\r\n var $element = (0, _renderer.default)(e.target);\r\n var $cell = (0, _renderer.default)(e.currentTarget);\r\n var $row = $cell.parent();\r\n var isDataRow = $row.hasClass(\"dx-data-row\");\r\n var isHeaderRow = $row.hasClass(\"dx-header-row\");\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isMasterDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isFilterRow = $row.hasClass(that.addWidgetPrefix(FILTER_ROW_CLASS));\r\n var visibleColumns = that._columnsController.getVisibleColumns();\r\n var rowOptions = $row.data(\"options\");\r\n var columnIndex = $cell.index();\r\n var cellOptions = rowOptions && rowOptions.cells && rowOptions.cells[columnIndex];\r\n var column = cellOptions ? cellOptions.column : visibleColumns[columnIndex];\r\n var msieCorrection = _browser.default.msie ? 1 : 0;\r\n if (!isMasterDetailRow && !isFilterRow && (!isDataRow || isDataRow && column && !column.cellTemplate) && (!isHeaderRow || isHeaderRow && column && !column.headerCellTemplate) && (!isGroupRow || isGroupRow && column && (void 0 === column.groupIndex || !column.groupCellTemplate))) {\r\n if ($element.data(CELL_HINT_VISIBLE)) {\r\n $element.removeAttr(\"title\");\r\n $element.data(CELL_HINT_VISIBLE, false)\r\n }\r\n var difference = $element[0].scrollWidth - $element[0].clientWidth - msieCorrection;\r\n if (difference > 0 && !(0, _type.isDefined)($element.attr(\"title\"))) {\r\n $element.attr(\"title\", $element.text());\r\n $element.data(CELL_HINT_VISIBLE, true)\r\n }\r\n }\r\n }))\r\n }\r\n var getOptions = function(event) {\r\n var $cell = (0, _renderer.default)(event.currentTarget);\r\n var $fieldItemContent = (0, _renderer.default)(event.target).closest(\".\" + FORM_FIELD_ITEM_CONTENT_CLASS);\r\n var rowOptions = $cell.parent().data(\"options\");\r\n var options = rowOptions && rowOptions.cells && rowOptions.cells[$cell.index()];\r\n if (!$cell.closest(\"table\").is(event.delegateTarget)) {\r\n return\r\n }\r\n var resultOptions = (0, _extend.extend)({}, options, {\r\n cellElement: (0, _element.getPublicElement)($cell),\r\n event: event,\r\n eventType: event.type\r\n });\r\n if ($fieldItemContent.length) {\r\n var formItemOptions = $fieldItemContent.data(\"dx-form-item\");\r\n if (formItemOptions.column) {\r\n resultOptions.column = formItemOptions.column;\r\n resultOptions.columnIndex = that._columnsController.getVisibleIndex(resultOptions.column.index)\r\n }\r\n }\r\n return resultOptions\r\n };\r\n _events_engine.default.on($table, \"mouseover\", \".dx-row > td\", function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellHoverChanged\", options)\r\n });\r\n _events_engine.default.on($table, \"mouseout\", \".dx-row > td\", function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellHoverChanged\", options)\r\n });\r\n _events_engine.default.on($table, _click.name, \".dx-row > td\", function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellClick\", options)\r\n });\r\n _events_engine.default.on($table, _double_click.name, \".dx-row > td\", function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellDblClick\", options)\r\n });\r\n subscribeToRowEvents(that, $table);\r\n return $table\r\n },\r\n _isNativeClick: _common.noop,\r\n _rowPointerDown: _common.noop,\r\n _rowClick: _common.noop,\r\n _rowDblClick: _common.noop,\r\n _createColGroup: function(columns) {\r\n var colgroupElement = (0, _renderer.default)(\"\");\r\n for (var i = 0; i < columns.length; i++) {\r\n var colspan = columns[i].colspan || 1;\r\n for (var j = 0; j < colspan; j++) {\r\n colgroupElement.append(this._createCol(columns[i]))\r\n }\r\n }\r\n return colgroupElement\r\n },\r\n _createCol: function(column) {\r\n var width = column.visibleWidth || column.width;\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n var col = (0, _renderer.default)(\"\");\r\n (0, _style.setWidth)(col, width);\r\n return col\r\n },\r\n renderDelayedTemplates: function() {\r\n var delayedTemplates = this._delayedTemplates;\r\n var syncTemplates = delayedTemplates.filter(function(template) {\r\n return !template.async\r\n });\r\n var asyncTemplates = delayedTemplates.filter(function(template) {\r\n return template.async\r\n });\r\n this._delayedTemplates = [];\r\n this._renderDelayedTemplatesCore(syncTemplates);\r\n this._renderDelayedTemplatesCoreAsync(asyncTemplates)\r\n },\r\n _renderDelayedTemplatesCoreAsync: function(templates) {\r\n var that = this;\r\n if (templates.length) {\r\n (0, _window.getWindow)().setTimeout(function() {\r\n that._renderDelayedTemplatesCore(templates, true)\r\n })\r\n }\r\n },\r\n _renderDelayedTemplatesCore: function(templates, isAsync) {\r\n var date = new Date;\r\n while (templates.length) {\r\n var templateParameters = templates.shift();\r\n var options = templateParameters.options;\r\n var doc = _dom_adapter.default.getDocument();\r\n if (!isAsync || (0, _renderer.default)(options.container).closest(doc).length) {\r\n templateParameters.template.render(options)\r\n }\r\n if (isAsync && new Date - date > 30) {\r\n this._renderDelayedTemplatesCoreAsync(templates);\r\n break\r\n }\r\n }\r\n if (!templates.length && this._delayedTemplates.length) {\r\n this.renderDelayedTemplates()\r\n }\r\n },\r\n _processTemplate: function(template) {\r\n var that = this;\r\n var renderingTemplate;\r\n if (template && template.render && !(0, _type.isRenderer)(template)) {\r\n renderingTemplate = {\r\n allowRenderToDetachedContainer: template.allowRenderToDetachedContainer,\r\n render: function(options) {\r\n template.render(options.container, options.model);\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else {\r\n if ((0, _type.isFunction)(template)) {\r\n renderingTemplate = {\r\n render: function(options) {\r\n var renderedTemplate = template((0, _element.getPublicElement)(options.container), options.model);\r\n if (renderedTemplate && (renderedTemplate.nodeType || (0, _type.isRenderer)(renderedTemplate))) {\r\n options.container.append(renderedTemplate)\r\n }\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else {\r\n var templateID = (0, _type.isString)(template) ? template : (0, _renderer.default)(template).attr(\"id\");\r\n if (!templateID) {\r\n renderingTemplate = that.getTemplate(template)\r\n } else {\r\n if (!that._templatesCache[templateID]) {\r\n that._templatesCache[templateID] = that.getTemplate(template)\r\n }\r\n renderingTemplate = that._templatesCache[templateID]\r\n }\r\n }\r\n }\r\n return renderingTemplate\r\n },\r\n renderTemplate: function(container, template, options, allowRenderToDetachedContainer) {\r\n var that = this;\r\n var renderingTemplate = that._processTemplate(template, options);\r\n var column = options.column;\r\n var isDataRow = \"data\" === options.rowType;\r\n var templateDeferred = new _deferred.Deferred;\r\n var templateOptions = {\r\n container: container,\r\n model: options,\r\n deferred: templateDeferred,\r\n onRendered: function() {\r\n templateDeferred.resolve()\r\n }\r\n };\r\n if (renderingTemplate) {\r\n options.component = that.component;\r\n var async = column && (column.renderAsync && isDataRow || that.option(\"renderAsync\") && (false !== column.renderAsync && (column.command || column.showEditorAlways) && isDataRow || \"filter\" === options.rowType));\r\n if ((renderingTemplate.allowRenderToDetachedContainer || allowRenderToDetachedContainer) && !async) {\r\n renderingTemplate.render(templateOptions)\r\n } else {\r\n that._delayedTemplates.push({\r\n template: renderingTemplate,\r\n options: templateOptions,\r\n async: async\r\n })\r\n }\r\n } else {\r\n templateDeferred.reject()\r\n }\r\n return templateDeferred.promise()\r\n },\r\n _getBodies: function(tableElement) {\r\n return (0, _renderer.default)(tableElement).children(\"tbody\").not(\".dx-header\").not(\".dx-footer\")\r\n },\r\n _wrapRowIfNeed: function($table, $row) {\r\n var $tBodies = this.option(\"rowTemplate\") && this._getBodies(this._tableElement || $table);\r\n if ($tBodies && $tBodies.filter(\".\" + ROW_CLASS).length) {\r\n var $tbody = (0, _renderer.default)(\"\").addClass($row.attr(\"class\"));\r\n this.setAria(\"role\", \"presentation\", $tbody);\r\n return $tbody.append($row)\r\n }\r\n return $row\r\n },\r\n _appendRow: function($table, $row, appendTemplate) {\r\n appendTemplate = appendTemplate || appendElementTemplate;\r\n appendTemplate.render({\r\n content: $row,\r\n container: $table\r\n })\r\n },\r\n _resizeCore: function() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n },\r\n _renderCore: function(e) {\r\n var $root = this.element().parent();\r\n if (!$root || $root.parent().length) {\r\n this.renderDelayedTemplates(e)\r\n }\r\n },\r\n _renderTable: function(options) {\r\n options = options || {};\r\n options.columns = this._columnsController.getVisibleColumns();\r\n var changeType = options.change && options.change.changeType;\r\n var $table = this._createTable(options.columns, \"append\" === changeType || \"prepend\" === changeType || \"update\" === changeType);\r\n this._renderRows($table, options);\r\n return $table\r\n },\r\n _renderRows: function($table, options) {\r\n var that = this;\r\n var rows = that._getRows(options.change);\r\n var columnIndices = options.change && options.change.columnIndices || [];\r\n var changeTypes = options.change && options.change.changeTypes || [];\r\n for (var i = 0; i < rows.length; i++) {\r\n that._renderRow($table, (0, _extend.extend)({\r\n row: rows[i],\r\n columnIndices: columnIndices[i],\r\n changeType: changeTypes[i]\r\n }, options))\r\n }\r\n },\r\n _renderRow: function($table, options) {\r\n if (!options.columnIndices) {\r\n options.row.cells = []\r\n }\r\n var $row = this._createRow(options.row);\r\n var $wrappedRow = this._wrapRowIfNeed($table, $row);\r\n if (\"remove\" !== options.changeType) {\r\n this._renderCells($row, options)\r\n }\r\n this._appendRow($table, $wrappedRow);\r\n var rowOptions = (0, _extend.extend)({\r\n columns: options.columns\r\n }, options.row);\r\n this._addWatchMethod(rowOptions, options.row);\r\n this._rowPrepared($wrappedRow, rowOptions, options.row)\r\n },\r\n _needRenderCell: function(columnIndex, columnIndices) {\r\n return !columnIndices || columnIndices.indexOf(columnIndex) >= 0\r\n },\r\n _renderCells: function($row, options) {\r\n var that = this;\r\n var columnIndex = 0;\r\n var row = options.row;\r\n var columns = options.columns;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n that._renderCell($row, (0, _extend.extend)({\r\n column: columns[i],\r\n columnIndex: columnIndex,\r\n value: row.values && row.values[columnIndex],\r\n oldValue: row.oldValues && row.oldValues[columnIndex]\r\n }, options))\r\n }\r\n if (columns[i].colspan > 1) {\r\n columnIndex += columns[i].colspan\r\n } else {\r\n columnIndex++\r\n }\r\n }\r\n },\r\n _updateCells: function($rowElement, $newRowElement, columnIndices) {\r\n var $cells = $rowElement.children();\r\n var $newCells = $newRowElement.children();\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var cellUpdatedClass = this.addWidgetPrefix(CELL_UPDATED_ANIMATION_CLASS);\r\n columnIndices.forEach(function(columnIndex, index) {\r\n var $cell = $cells.eq(columnIndex);\r\n var $newCell = $newCells.eq(index);\r\n $cell.replaceWith($newCell);\r\n if (highlightChanges && !$newCell.hasClass(\"dx-command-expand\")) {\r\n $newCell.addClass(cellUpdatedClass)\r\n }\r\n });\r\n copyAttributes($rowElement.get(0), $newRowElement.get(0))\r\n },\r\n _setCellAriaAttributes: function($cell, cellOptions) {\r\n if (\"freeSpace\" !== cellOptions.rowType) {\r\n this.setAria(\"selected\", false, $cell);\r\n this.setAria(\"role\", \"gridcell\", $cell);\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var ariaColIndex = cellOptions.columnIndex + columnIndexOffset + 1;\r\n this.setAria(\"colindex\", ariaColIndex, $cell)\r\n }\r\n },\r\n _renderCell: function($row, options) {\r\n var cellOptions = this._getCellOptions(options);\r\n if (options.columnIndices) {\r\n if (options.row.cells) {\r\n options.row.cells[cellOptions.columnIndex] = cellOptions\r\n }\r\n } else {\r\n options.row.cells.push(cellOptions)\r\n }\r\n var $cell = this._createCell(cellOptions);\r\n this._setCellAriaAttributes($cell, cellOptions);\r\n this._renderCellContent($cell, cellOptions);\r\n $row.get(0).appendChild($cell.get(0));\r\n return $cell\r\n },\r\n _renderCellContent: function($cell, options) {\r\n var _this = this;\r\n var template = this._getCellTemplate(options);\r\n (0, _deferred.when)(!template || this.renderTemplate($cell, template, options)).done(function() {\r\n _this._updateCell($cell, options)\r\n })\r\n },\r\n _getCellTemplate: function() {},\r\n _getRows: function() {\r\n return []\r\n },\r\n _getCellOptions: function(options) {\r\n var cellOptions = {\r\n column: options.column,\r\n columnIndex: options.columnIndex,\r\n rowType: options.row.rowType,\r\n isAltRow: this._isAltRow(options.row)\r\n };\r\n this._addWatchMethod(cellOptions);\r\n return cellOptions\r\n },\r\n _addWatchMethod: function(options, source) {\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n return\r\n }\r\n var watchers = [];\r\n source = source || options;\r\n source.watch = source.watch || function(getter, updateFunc) {\r\n var oldValue = getter(source.data);\r\n var watcher = function(row) {\r\n var newValue = getter(source.data);\r\n if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {\r\n if (row) {\r\n updateFunc(newValue, oldValue)\r\n }\r\n oldValue = newValue\r\n }\r\n };\r\n watchers.push(watcher);\r\n var stopWatch = function() {\r\n var index = watchers.indexOf(watcher);\r\n if (index >= 0) {\r\n watchers.splice(index, 1)\r\n }\r\n };\r\n return stopWatch\r\n };\r\n source.update = source.update || function(row) {\r\n if (row) {\r\n this.data = options.data = row.data;\r\n this.rowIndex = options.rowIndex = row.rowIndex;\r\n this.dataIndex = options.dataIndex = row.dataIndex;\r\n this.isExpanded = options.isExpanded = row.isExpanded;\r\n if (options.row) {\r\n options.row = row\r\n }\r\n }\r\n watchers.forEach(function(watcher) {\r\n watcher(row)\r\n })\r\n };\r\n if (source !== options) {\r\n options.watch = source.watch.bind(source)\r\n }\r\n return options\r\n },\r\n _cellPrepared: function(cell, options) {\r\n options.cellElement = (0, _element.getPublicElement)((0, _renderer.default)(cell));\r\n this.executeAction(\"onCellPrepared\", options)\r\n },\r\n _rowPrepared: function($row, options) {\r\n (0, _element_data.data)($row.get(0), \"options\", options);\r\n options.rowElement = (0, _element.getPublicElement)($row);\r\n this.executeAction(\"onRowPrepared\", options)\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (_uiGrid_core2.default.checkChanges(optionNames, [\"width\", \"visibleWidth\"])) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var widths = iteratorUtils.map(visibleColumns, function(column) {\r\n var width = column.visibleWidth || column.width;\r\n return (0, _type.isDefined)(width) ? width : \"auto\"\r\n });\r\n this.setColumnWidths({\r\n widths: widths,\r\n optionNames: optionNames\r\n });\r\n return\r\n }\r\n if (!this._requireReady) {\r\n this.render()\r\n }\r\n },\r\n getCellIndex: function($cell) {\r\n var cellIndex = $cell.length ? $cell[0].cellIndex : -1;\r\n return cellIndex\r\n },\r\n getTableElements: function() {\r\n return this._tableElement || (0, _renderer.default)()\r\n },\r\n getTableElement: function() {\r\n return this._tableElement\r\n },\r\n setTableElement: function(tableElement) {\r\n this._tableElement = tableElement\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n switch (args.name) {\r\n case \"cellHintEnabled\":\r\n case \"onCellPrepared\":\r\n case \"onRowPrepared\":\r\n case \"onCellHoverChanged\":\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n },\r\n init: function() {\r\n var that = this;\r\n that._scrollLeft = -1;\r\n that._columnsController = that.getController(\"columns\");\r\n that._dataController = that.getController(\"data\");\r\n that._delayedTemplates = [];\r\n that._templatesCache = {};\r\n that.createAction(\"onCellClick\");\r\n that.createAction(\"onRowClick\");\r\n that.createAction(\"onCellDblClick\");\r\n that.createAction(\"onRowDblClick\");\r\n that.createAction(\"onCellHoverChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onCellPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n that.createAction(\"onRowPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\",\r\n afterExecute: function(e) {\r\n that._afterRowPrepared(e)\r\n }\r\n });\r\n that._columnsController.columnsChanged.add(that._columnOptionChanged.bind(that));\r\n that._dataController && that._dataController.changed.add(that._handleDataChanged.bind(that))\r\n },\r\n _afterRowPrepared: _common.noop,\r\n _handleDataChanged: function() {},\r\n callbackNames: function() {\r\n return [\"scrollChanged\"]\r\n },\r\n scrollTo: function(pos) {\r\n var $element = this.element();\r\n var $scrollContainer = $element && $element.children(\".\" + this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).not(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS));\r\n if ((0, _type.isDefined)(pos) && (0, _type.isDefined)(pos.left) && this._scrollLeft !== pos.left) {\r\n this._scrollLeft = pos.left;\r\n $scrollContainer && $scrollContainer.scrollLeft(pos.left)\r\n }\r\n },\r\n _wrapTableInScrollContainer: function($table) {\r\n var _this2 = this;\r\n var $scrollContainer = (0, _renderer.default)(\"
\");\r\n _events_engine.default.on($scrollContainer, \"scroll\", function() {\r\n var scrollLeft = $scrollContainer.scrollLeft();\r\n if (scrollLeft !== _this2._scrollLeft) {\r\n _this2.scrollChanged.fire({\r\n left: scrollLeft\r\n }, _this2.name)\r\n }\r\n });\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_CLASS)).addClass(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).append($table).appendTo(this.element());\r\n this.setAria(\"role\", \"presentation\", $scrollContainer);\r\n return $scrollContainer\r\n },\r\n _updateContent: function($newTableElement) {\r\n this.setTableElement($newTableElement);\r\n this._wrapTableInScrollContainer($newTableElement)\r\n },\r\n _findContentElement: _common.noop,\r\n _getWidths: function($cellElements) {\r\n var result = [];\r\n var legacyRendering = this.option(\"legacyRendering\");\r\n var width;\r\n if ($cellElements) {\r\n iteratorUtils.each($cellElements, function(index, item) {\r\n width = item.offsetWidth;\r\n if (item.getBoundingClientRect) {\r\n var clientRect = (0, _position.getBoundingRect)(item);\r\n if (clientRect.width > width - 1) {\r\n width = legacyRendering ? Math.ceil(clientRect.width) : clientRect.width\r\n }\r\n }\r\n result.push(width)\r\n })\r\n }\r\n return result\r\n },\r\n getColumnWidths: function($tableElement) {\r\n var that = this;\r\n var result = [];\r\n var $rows;\r\n var $cells;\r\n (this.option(\"forceApplyBindings\") || _common.noop)();\r\n $tableElement = $tableElement || that.getTableElement();\r\n if ($tableElement) {\r\n $rows = $tableElement.children(\"tbody:not(.dx-header)\").children();\r\n for (var i = 0; i < $rows.length; i++) {\r\n var $row = $rows.eq(i);\r\n var isRowVisible = \"none\" !== $row.get(0).style.display && !$row.hasClass(\"dx-state-invisible\");\r\n if (!$row.is(\".\" + GROUP_ROW_CLASS) && !$row.is(\".\" + DETAIL_ROW_CLASS) && isRowVisible) {\r\n $cells = $row.children(\"td\");\r\n break\r\n }\r\n }\r\n result = that._getWidths($cells)\r\n }\r\n return result\r\n },\r\n getVisibleColumnIndex: function(columnIndex, rowIndex) {\r\n return columnIndex\r\n },\r\n setColumnWidths: function(_ref) {\r\n var widths = _ref.widths,\r\n $tableElement = _ref.$tableElement,\r\n columns = _ref.columns,\r\n fixed = _ref.fixed;\r\n var $cols;\r\n var width;\r\n var minWidth;\r\n var columnIndex;\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var legacyRendering = this.option(\"legacyRendering\");\r\n $tableElement = $tableElement || this.getTableElement();\r\n if ($tableElement && $tableElement.length && widths) {\r\n columnIndex = 0;\r\n $cols = $tableElement.children(\"colgroup\").children(\"col\");\r\n (0, _style.setWidth)($cols, \"auto\");\r\n columns = columns || this.getColumns(null, $tableElement);\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!legacyRendering && columnAutoWidth && !fixed) {\r\n width = columns[i].width;\r\n if (width && !columns[i].command) {\r\n width = columns[i].visibleWidth || width;\r\n width = getWidthStyle(width);\r\n minWidth = getWidthStyle(columns[i].minWidth || width);\r\n var $rows = $rows || $tableElement.children().children(\".dx-row\").not(\".\" + GROUP_ROW_CLASS).not(\".\" + DETAIL_ROW_CLASS);\r\n for (var rowIndex = 0; rowIndex < $rows.length; rowIndex++) {\r\n var visibleIndex = this.getVisibleColumnIndex(i, rowIndex);\r\n var cell = $rows[rowIndex].cells[visibleIndex];\r\n if (cell) {\r\n setCellWidth(cell, columns[i], width);\r\n cell.style.minWidth = minWidth\r\n }\r\n }\r\n }\r\n }\r\n if (columns[i].colspan) {\r\n columnIndex += columns[i].colspan;\r\n continue\r\n }\r\n width = widths[columnIndex];\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n if (\"number\" === typeof width) {\r\n width = width.toFixed(3) + \"px\"\r\n }(0, _style.setWidth)($cols.eq(columnIndex), (0, _type.isDefined)(width) ? width : \"auto\");\r\n columnIndex++\r\n }\r\n }\r\n },\r\n getCellElements: function(rowIndex) {\r\n return this._getCellElementsCore(rowIndex)\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var $row = this._getRowElements().eq(rowIndex);\r\n return $row.children()\r\n },\r\n _getCellElement: function(rowIndex, columnIdentifier) {\r\n var that = this;\r\n var $cell;\r\n var $cells = that.getCellElements(rowIndex);\r\n var columnVisibleIndex = that._getVisibleColumnIndex($cells, rowIndex, columnIdentifier);\r\n if ($cells.length && columnVisibleIndex >= 0) {\r\n $cell = $cells.eq(columnVisibleIndex)\r\n }\r\n if ($cell && $cell.length) {\r\n return $cell\r\n }\r\n },\r\n _getRowElement: function(rowIndex) {\r\n var that = this;\r\n var $rowElement = (0, _renderer.default)();\r\n var $tableElements = that.getTableElements();\r\n iteratorUtils.each($tableElements, function(_, tableElement) {\r\n $rowElement = $rowElement.add(that._getRowElements((0, _renderer.default)(tableElement)).eq(rowIndex))\r\n });\r\n if ($rowElement.length) {\r\n return $rowElement\r\n }\r\n },\r\n getCellElement: function(rowIndex, columnIdentifier) {\r\n return (0, _element.getPublicElement)(this._getCellElement(rowIndex, columnIdentifier))\r\n },\r\n getRowElement: function(rowIndex) {\r\n var $rows = this._getRowElement(rowIndex);\r\n var elements = [];\r\n if ($rows && !(0, _element.getPublicElement)($rows).get) {\r\n for (var i = 0; i < $rows.length; i++) {\r\n elements.push($rows[i])\r\n }\r\n } else {\r\n elements = $rows\r\n }\r\n return elements\r\n },\r\n _getVisibleColumnIndex: function($cells, rowIndex, columnIdentifier) {\r\n if ((0, _type.isString)(columnIdentifier)) {\r\n var columnIndex = this._columnsController.columnOption(columnIdentifier, \"index\");\r\n return this._columnsController.getVisibleIndex(columnIndex)\r\n }\r\n return columnIdentifier\r\n },\r\n getColumnElements: function() {},\r\n getColumns: function(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n },\r\n getCell: function(cellPosition, rows) {\r\n var $rows = rows || this._getRowElements();\r\n var $cells;\r\n if ($rows.length > 0 && cellPosition.rowIndex >= 0) {\r\n if (\"virtual\" !== this.option(\"scrolling.mode\")) {\r\n cellPosition.rowIndex = cellPosition.rowIndex < $rows.length ? cellPosition.rowIndex : $rows.length - 1\r\n }\r\n $cells = this.getCellElements(cellPosition.rowIndex);\r\n if ($cells && $cells.length > 0) {\r\n return $cells.eq($cells.length > cellPosition.columnIndex ? cellPosition.columnIndex : $cells.length - 1)\r\n }\r\n }\r\n },\r\n getRowsCount: function() {\r\n var tableElement = this.getTableElement();\r\n if (tableElement && 1 === tableElement.length) {\r\n return tableElement[0].rows.length\r\n }\r\n return 0\r\n },\r\n _getRowElementsCore: function(tableElement) {\r\n tableElement = tableElement || this.getTableElement();\r\n if (tableElement) {\r\n var tBodies = this.option(\"rowTemplate\") && tableElement.find(\"> tbody.\" + ROW_CLASS);\r\n return tBodies && tBodies.length ? tBodies : tableElement.find(\"> tbody > .\" + ROW_CLASS + \", > .\" + ROW_CLASS)\r\n }\r\n return (0, _renderer.default)()\r\n },\r\n _getRowElements: function(tableElement) {\r\n return this._getRowElementsCore(tableElement)\r\n },\r\n getRowIndex: function($row) {\r\n return this._getRowElements().index($row)\r\n },\r\n getBoundingRect: function() {},\r\n getName: function() {},\r\n setScrollerSpacing: function(width) {\r\n var that = this;\r\n var $element = that.element();\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n $element && $element.css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n },\r\n isScrollbarVisible: function(isHorizontal) {\r\n var $element = this.element();\r\n var $tableElement = this._tableElement;\r\n if ($element && $tableElement) {\r\n return isHorizontal ? $tableElement.outerWidth() - $element.width() > 0 : $tableElement.outerHeight() - $element.height() > 0\r\n }\r\n return false\r\n }\r\n});\r\nexports.ColumnsView = ColumnsView;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.sorting_mixin.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SORT_CLASS = \"dx-sort\";\r\nvar SORT_NONE_CLASS = \"dx-sort-none\";\r\nvar SORTUP_CLASS = \"dx-sort-up\";\r\nvar SORTDOWN_CLASS = \"dx-sort-down\";\r\nvar SORT_INDEX_CLASS = \"dx-sort-index\";\r\nvar SORT_INDEX_ICON_CLASS = \"dx-sort-index-icon\";\r\nvar HEADERS_ACTION_CLASS = \"action\";\r\nvar _default = {\r\n _applyColumnState: function(options) {\r\n var that = this;\r\n var ariaSortState;\r\n var $sortIndicator;\r\n var sortingMode = that.option(\"sorting.mode\");\r\n var rootElement = options.rootElement;\r\n var column = options.column;\r\n var $indicatorsContainer = that._getIndicatorContainer(rootElement);\r\n if (\"sort\" === options.name) {\r\n rootElement.find(\".\" + SORT_CLASS).remove();\r\n !$indicatorsContainer.children().length && $indicatorsContainer.remove();\r\n var isSortingAllowed = (\"single\" === sortingMode || \"multiple\" === sortingMode) && column.allowSorting;\r\n if (!(0, _type.isDefined)(column.groupIndex) && (isSortingAllowed || (0, _type.isDefined)(column.sortOrder))) {\r\n ariaSortState = \"asc\" === column.sortOrder ? \"ascending\" : \"descending\";\r\n $sortIndicator = that.callBase(options).toggleClass(SORTUP_CLASS, \"asc\" === column.sortOrder).toggleClass(SORTDOWN_CLASS, \"desc\" === column.sortOrder);\r\n var hasSeveralSortIndexes = that.getController && !!that.getController(\"columns\").columnOption(\"sortIndex:1\");\r\n if (hasSeveralSortIndexes && that.option(\"sorting.showSortIndexes\") && column.sortIndex >= 0) {\r\n (0, _renderer.default)(\"\").addClass(SORT_INDEX_ICON_CLASS).text(column.sortIndex + 1).appendTo($sortIndicator);\r\n $sortIndicator.addClass(SORT_INDEX_CLASS)\r\n }\r\n options.rootElement.addClass(that.addWidgetPrefix(HEADERS_ACTION_CLASS))\r\n }\r\n if (!(0, _type.isDefined)(column.sortOrder)) {\r\n that.setAria(\"sort\", \"none\", rootElement)\r\n } else {\r\n that.setAria(\"sort\", ariaSortState, rootElement)\r\n }\r\n return $sortIndicator\r\n } else {\r\n return that.callBase(options)\r\n }\r\n },\r\n _getIndicatorClassName: function(name) {\r\n if (\"sort\" === name) {\r\n return SORT_CLASS\r\n } else {\r\n if (\"sortIndex\" === name) {\r\n return SORT_INDEX_ICON_CLASS\r\n }\r\n }\r\n return this.callBase(name)\r\n },\r\n _renderIndicator: function(options) {\r\n var column = options.column;\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"sort\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (!(0, _type.isDefined)(column.sortOrder)) {\r\n $indicator && $indicator.addClass(SORT_NONE_CLASS)\r\n }\r\n if ($container.children().length && (!rtlEnabled && \"left\" === options.columnAlignment || rtlEnabled && \"right\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n if (\"sort\" === indicatorName && (0, _type.isDefined)(column.groupIndex)) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getIndicatorElements: function($cell, returnAll) {\r\n var $indicatorElements = this.callBase($cell);\r\n return returnAll ? $indicatorElements : $indicatorElements && $indicatorElements.not(\".\" + SORT_NONE_CLASS)\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.dialog.folder_chooser.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _uiFile_manager = require(\"./ui.file_manager.common\");\r\nvar _uiFile_managerDialog = _interopRequireDefault(require(\"./ui.file_manager.dialog.js\"));\r\nvar _uiFile_manager2 = _interopRequireDefault(require(\"./ui.file_manager.files_tree_view\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_DIALOG_FOLDER_CHOOSER = \"dx-filemanager-dialog-folder-chooser\";\r\nvar FILE_MANAGER_DIALOG_FOLDER_CHOOSER_POPUP = \"dx-filemanager-dialog-folder-chooser-popup\";\r\nvar FileManagerFolderChooserDialog = function(_FileManagerDialogBas) {\r\n _inheritsLoose(FileManagerFolderChooserDialog, _FileManagerDialogBas);\r\n\r\n function FileManagerFolderChooserDialog() {\r\n return _FileManagerDialogBas.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerFolderChooserDialog.prototype;\r\n _proto.show = function() {\r\n var _this$_filesTreeView;\r\n this._resetDialogSelectedDirectory();\r\n null === (_this$_filesTreeView = this._filesTreeView) || void 0 === _this$_filesTreeView ? void 0 : _this$_filesTreeView.refresh();\r\n _FileManagerDialogBas.prototype.show.call(this)\r\n };\r\n _proto.switchToCopyDialog = function(targetItemInfos) {\r\n this._targetItemInfos = targetItemInfos;\r\n this._setTitle(_message.default.format(\"dxFileManager-dialogDirectoryChooserCopyTitle\"));\r\n this._setButtonText(_message.default.format(\"dxFileManager-dialogDirectoryChooserCopyButtonText\"))\r\n };\r\n _proto.switchToMoveDialog = function(targetItemInfos) {\r\n this._targetItemInfos = targetItemInfos;\r\n this._setTitle(_message.default.format(\"dxFileManager-dialogDirectoryChooserMoveTitle\"));\r\n this._setButtonText(_message.default.format(\"dxFileManager-dialogDirectoryChooserMoveButtonText\"))\r\n };\r\n _proto._getDialogOptions = function() {\r\n return (0, _extend.extend)(_FileManagerDialogBas.prototype._getDialogOptions.call(this), {\r\n contentCssClass: FILE_MANAGER_DIALOG_FOLDER_CHOOSER,\r\n popupCssClass: FILE_MANAGER_DIALOG_FOLDER_CHOOSER_POPUP\r\n })\r\n };\r\n _proto._createContentTemplate = function(element) {\r\n var _this = this;\r\n _FileManagerDialogBas.prototype._createContentTemplate.call(this, element);\r\n this._filesTreeView = this._createComponent((0, _renderer.default)(\"
\"), _uiFile_manager2.default, {\r\n getDirectories: this.option(\"getDirectories\"),\r\n getCurrentDirectory: function() {\r\n return _this._getDialogSelectedDirectory()\r\n },\r\n onDirectoryClick: function(e) {\r\n return _this._onFilesTreeViewDirectoryClick(e)\r\n },\r\n onFilesTreeViewContentReady: function() {\r\n return _this._toggleUnavailableLocationsDisabled(true)\r\n }\r\n });\r\n this._$contentElement.append(this._filesTreeView.$element())\r\n };\r\n _proto._getDialogResult = function() {\r\n var result = this._getDialogSelectedDirectory();\r\n return result ? {\r\n folder: result\r\n } : result\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_FileManagerDialogBas.prototype._getDefaultOptions.call(this), {\r\n getItems: null\r\n })\r\n };\r\n _proto._getDialogSelectedDirectory = function() {\r\n return this._selectedDirectoryInfo\r\n };\r\n _proto._resetDialogSelectedDirectory = function() {\r\n this._selectedDirectoryInfo = null\r\n };\r\n _proto._onFilesTreeViewDirectoryClick = function(_ref) {\r\n var itemData = _ref.itemData;\r\n this._selectedDirectoryInfo = itemData;\r\n this._filesTreeView.updateCurrentDirectory()\r\n };\r\n _proto._onPopupShown = function() {\r\n this._toggleUnavailableLocationsDisabled(true);\r\n _FileManagerDialogBas.prototype._onPopupShown.call(this)\r\n };\r\n _proto._onPopupHidden = function() {\r\n this._toggleUnavailableLocationsDisabled(false);\r\n _FileManagerDialogBas.prototype._onPopupHidden.call(this)\r\n };\r\n _proto._toggleUnavailableLocationsDisabled = function(isDisabled) {\r\n var _this2 = this;\r\n if (!this._filesTreeView) {\r\n return\r\n }\r\n var locations = this._getLocationsToProcess(isDisabled);\r\n this._filesTreeView.toggleDirectoryExpandedStateRecursive(locations.locationsToExpand[0], isDisabled).then(function() {\r\n return _this2._filesTreeView.toggleDirectoryLineExpandedState(locations.locationsToCollapse, !isDisabled).then(function() {\r\n return locations.locationKeysToDisable.forEach(function(key) {\r\n return _this2._filesTreeView.toggleNodeDisabledState(key, isDisabled)\r\n })\r\n })\r\n })\r\n };\r\n _proto._getLocationsToProcess = function(isDisabled) {\r\n var _expandMap$keys;\r\n var expandLocations = {};\r\n var collapseLocations = {};\r\n this._targetItemInfos.forEach(function(itemInfo) {\r\n if (itemInfo.parentDirectory) {\r\n expandLocations[itemInfo.parentDirectory.getInternalKey()] = itemInfo.parentDirectory\r\n }\r\n if (itemInfo.fileItem.isDirectory) {\r\n collapseLocations[itemInfo.getInternalKey()] = itemInfo\r\n }\r\n });\r\n var expandMap = (0, _uiFile_manager.getMapFromObject)(expandLocations);\r\n var collapseMap = (0, _uiFile_manager.getMapFromObject)(collapseLocations);\r\n return {\r\n locationsToExpand: isDisabled ? expandMap.values : [],\r\n locationsToCollapse: isDisabled ? collapseMap.values : [],\r\n locationKeysToDisable: (_expandMap$keys = expandMap.keys).concat.apply(_expandMap$keys, _toConsumableArray(collapseMap.keys))\r\n }\r\n };\r\n return FileManagerFolderChooserDialog\r\n}(_uiFile_managerDialog.default);\r\nvar _default = FileManagerFolderChooserDialog;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.focus.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ROW_FOCUSED_CLASS = \"dx-row-focused\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row.\" + ROW_FOCUSED_CLASS;\r\nvar TABLE_POSTFIX_CLASS = \"table\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FocusController = _uiGrid_core.default.ViewController.inherit(function() {\r\n return {\r\n init: function() {\r\n this._dataController = this.getController(\"data\");\r\n this._keyboardController = this.getController(\"keyboardNavigation\");\r\n this.component._optionsByReference.focusedRowKey = true\r\n },\r\n optionChanged: function(args) {\r\n if (\"focusedRowIndex\" === args.name) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n this._focusRowByIndex(args.value);\r\n this._triggerFocusedRowChangedIfNeed(focusedRowKey, args.value);\r\n args.handled = true\r\n } else {\r\n if (\"focusedRowKey\" === args.name) {\r\n var focusedRowIndex = this.option(\"focusedRowIndex\");\r\n this._focusRowByKey(args.value);\r\n this._triggerFocusedRowChangedIfNeed(args.value, focusedRowIndex);\r\n args.handled = true\r\n } else {\r\n if (\"focusedColumnIndex\" === args.name) {\r\n args.handled = true\r\n } else {\r\n if (\"focusedRowEnabled\" === args.name) {\r\n args.handled = true\r\n } else {\r\n if (\"autoNavigateToFocusedRow\" === args.name) {\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _triggerFocusedRowChangedIfNeed: function(focusedRowKey, focusedRowIndex) {\r\n var focusedRowIndexByKey = this.getFocusedRowIndexByKey(focusedRowKey);\r\n if (focusedRowIndex === focusedRowIndexByKey) {\r\n var rowIndex = this._dataController.getRowIndexByKey(focusedRowKey);\r\n if (rowIndex >= 0) {\r\n var $rowElement = (0, _renderer.default)(this.getView(\"rowsView\").getRowElement(rowIndex));\r\n this.getController(\"keyboardNavigation\")._fireFocusedRowChanged($rowElement, focusedRowIndex)\r\n }\r\n }\r\n },\r\n isAutoNavigateToFocusedRow: function() {\r\n return \"infinite\" !== this.option(\"scrolling.mode\") && this.option(\"autoNavigateToFocusedRow\")\r\n },\r\n _focusRowByIndex: function(index) {\r\n if (!this.option(\"focusedRowEnabled\")) {\r\n return\r\n }\r\n index = void 0 !== index ? index : this.option(\"focusedRowIndex\");\r\n if (index < 0) {\r\n if (this.isAutoNavigateToFocusedRow()) {\r\n this._resetFocusedRow()\r\n }\r\n } else {\r\n this._focusRowByIndexCore(index)\r\n }\r\n },\r\n _focusRowByIndexCore: function(index) {\r\n var _this = this;\r\n var dataController = this.getController(\"data\");\r\n var pageSize = dataController.pageSize();\r\n var setKeyByIndex = function() {\r\n if (_this._isValidFocusedRowIndex(index)) {\r\n var visibleIndex = index - dataController.getRowIndexOffset(true);\r\n var lastItemIndex = dataController._getLastItemIndex();\r\n var rowIndex = Math.min(visibleIndex, lastItemIndex);\r\n var focusedRowKey = dataController.getKeyByRowIndex(rowIndex, true);\r\n if ((0, _type.isDefined)(focusedRowKey) && !_this.isRowFocused(focusedRowKey)) {\r\n _this.option(\"focusedRowKey\", focusedRowKey)\r\n }\r\n }\r\n };\r\n if (pageSize >= 0) {\r\n if (!this._isLocalRowIndex(index)) {\r\n var pageIndex = Math.floor(index / dataController.pageSize());\r\n (0, _deferred.when)(dataController.pageIndex(pageIndex), dataController.waitReady()).done(function() {\r\n setKeyByIndex()\r\n })\r\n } else {\r\n setKeyByIndex()\r\n }\r\n }\r\n },\r\n _isLocalRowIndex: function(index) {\r\n var dataController = this.getController(\"data\");\r\n var isVirtualScrolling = this.getController(\"keyboardNavigation\")._isVirtualScrolling();\r\n if (isVirtualScrolling) {\r\n var pageIndex = Math.floor(index / dataController.pageSize());\r\n var virtualItems = dataController.virtualItemsCount();\r\n var virtualItemsBegin = virtualItems ? virtualItems.begin : -1;\r\n var visibleRowsCount = dataController.getVisibleRows().length + dataController.getRowIndexOffset();\r\n var visiblePagesCount = Math.ceil(visibleRowsCount / dataController.pageSize());\r\n return virtualItemsBegin <= index && visiblePagesCount > pageIndex\r\n }\r\n return true\r\n },\r\n _setFocusedRowKeyByIndex: function(index) {\r\n var dataController = this.getController(\"data\");\r\n if (this._isValidFocusedRowIndex(index)) {\r\n var rowIndex = Math.min(index - dataController.getRowIndexOffset(), dataController.items().length - 1);\r\n var focusedRowKey = dataController.getKeyByRowIndex(rowIndex);\r\n if ((0, _type.isDefined)(focusedRowKey) && !this.isRowFocused(focusedRowKey)) {\r\n this.option(\"focusedRowKey\", focusedRowKey)\r\n }\r\n }\r\n },\r\n _focusRowByKey: function(key) {\r\n if (!(0, _type.isDefined)(key)) {\r\n this._resetFocusedRow()\r\n } else {\r\n this._navigateToRow(key, true)\r\n }\r\n },\r\n _resetFocusedRow: function() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var isFocusedRowKeyDefined = (0, _type.isDefined)(focusedRowKey);\r\n if (!isFocusedRowKeyDefined && this.option(\"focusedRowIndex\") < 0) {\r\n return\r\n }\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n if (isFocusedRowKeyDefined) {\r\n this.option(\"focusedRowKey\", void 0)\r\n }\r\n keyboardController.setFocusedRowIndex(-1);\r\n this.option(\"focusedRowIndex\", -1);\r\n this.getController(\"data\").updateItems({\r\n changeType: \"updateFocusedRow\",\r\n focusedRowKey: void 0\r\n });\r\n keyboardController._fireFocusedRowChanged(void 0, -1)\r\n },\r\n _isValidFocusedRowIndex: function(rowIndex) {\r\n var dataController = this.getController(\"data\");\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n return !row || \"data\" === row.rowType || \"group\" === row.rowType\r\n },\r\n publicMethods: function() {\r\n return [\"navigateToRow\", \"isRowFocused\"]\r\n },\r\n navigateToRow: function(key) {\r\n if (!this.isAutoNavigateToFocusedRow()) {\r\n this.option(\"focusedRowIndex\", -1)\r\n }\r\n this._navigateToRow(key)\r\n },\r\n _navigateToRow: function(key, needFocusRow) {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n var isAutoNavigate = that.isAutoNavigateToFocusedRow();\r\n var d = new _deferred.Deferred;\r\n if (void 0 === key || !dataController.dataSource()) {\r\n return d.reject().promise()\r\n }\r\n var rowIndexByKey = that.getFocusedRowIndexByKey(key);\r\n if (!isAutoNavigate && needFocusRow || rowIndexByKey >= 0) {\r\n that._navigateTo(key, d, needFocusRow)\r\n } else {\r\n dataController.getPageIndexByKey(key).done(function(pageIndex) {\r\n if (pageIndex < 0) {\r\n d.resolve(-1);\r\n return\r\n }\r\n if (pageIndex === dataController.pageIndex()) {\r\n dataController.reload().done(function() {\r\n if (that.isRowFocused(key)) {\r\n d.resolve(that.getFocusedRowIndexByKey(key))\r\n } else {\r\n that._navigateTo(key, d, needFocusRow)\r\n }\r\n }).fail(d.reject)\r\n } else {\r\n dataController.pageIndex(pageIndex).done(function() {\r\n that._navigateTo(key, d, needFocusRow)\r\n }).fail(d.reject)\r\n }\r\n }).fail(d.reject)\r\n }\r\n return d.promise()\r\n },\r\n _navigateTo: function(key, deferred, needFocusRow) {\r\n var visibleRowIndex = this.getController(\"data\").getRowIndexByKey(key);\r\n var isVirtualRowRenderingMode = \"virtual\" === this.option(\"scrolling.rowRenderingMode\");\r\n var isAutoNavigate = this.isAutoNavigateToFocusedRow();\r\n if (isAutoNavigate && isVirtualRowRenderingMode && visibleRowIndex < 0) {\r\n this._navigateToVirtualRow(key, deferred, needFocusRow)\r\n } else {\r\n this._navigateToVisibleRow(key, deferred, needFocusRow)\r\n }\r\n },\r\n _navigateToVisibleRow: function(key, deferred, needFocusRow) {\r\n if (needFocusRow) {\r\n this._triggerUpdateFocusedRow(key, deferred)\r\n } else {\r\n this.getView(\"rowsView\").scrollToRowElement(key)\r\n }\r\n },\r\n _navigateToVirtualRow: function(key, deferred, needFocusRow) {\r\n var that = this;\r\n var dataController = this.getController(\"data\");\r\n var rowsScrollController = dataController._rowsScrollController;\r\n var rowIndex = _uiGrid_core2.default.getIndexByKey(key, dataController.items(true));\r\n var scrollable = that.getView(\"rowsView\").getScrollable();\r\n if (rowsScrollController && scrollable && rowIndex >= 0) {\r\n var focusedRowIndex = rowIndex + dataController.getRowIndexOffset(true);\r\n var offset = rowsScrollController.getItemOffset(focusedRowIndex);\r\n if (needFocusRow) {\r\n var triggerUpdateFocusedRow = function triggerUpdateFocusedRow() {\r\n that.component.off(\"contentReady\", triggerUpdateFocusedRow);\r\n that._triggerUpdateFocusedRow(key, deferred)\r\n };\r\n that.component.on(\"contentReady\", triggerUpdateFocusedRow)\r\n }\r\n scrollable.scrollTo({\r\n y: offset\r\n })\r\n }\r\n },\r\n _triggerUpdateFocusedRow: function(key, deferred) {\r\n var dataController = this.getController(\"data\");\r\n var focusedRowIndex = this.getFocusedRowIndexByKey(key);\r\n if (this._isValidFocusedRowIndex(focusedRowIndex)) {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n dataController.updateItems({\r\n changeType: \"updateFocusedRow\",\r\n focusedRowKey: key\r\n })\r\n } else {\r\n this.getView(\"rowsView\").scrollToRowElement(key)\r\n }\r\n this.getController(\"keyboardNavigation\").setFocusedRowIndex(focusedRowIndex);\r\n deferred && deferred.resolve(focusedRowIndex)\r\n } else {\r\n deferred && deferred.resolve(-1)\r\n }\r\n },\r\n getFocusedRowIndexByKey: function(key) {\r\n var dataController = this.getController(\"data\");\r\n var loadedRowIndex = dataController.getRowIndexByKey(key, true);\r\n return loadedRowIndex >= 0 ? loadedRowIndex + dataController.getRowIndexOffset(true) : -1\r\n },\r\n _focusRowByKeyOrIndex: function() {\r\n var _this2 = this;\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var currentFocusedRowIndex = this.option(\"focusedRowIndex\");\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var dataController = this.getController(\"data\");\r\n if ((0, _type.isDefined)(focusedRowKey)) {\r\n var visibleRowIndex = dataController.getRowIndexByKey(focusedRowKey);\r\n if (visibleRowIndex >= 0) {\r\n if (keyboardController._isVirtualScrolling()) {\r\n currentFocusedRowIndex = visibleRowIndex + dataController.getRowIndexOffset()\r\n }\r\n keyboardController.setFocusedRowIndex(currentFocusedRowIndex);\r\n this._triggerUpdateFocusedRow(focusedRowKey)\r\n } else {\r\n this._navigateToRow(focusedRowKey, true).done(function(focusedRowIndex) {\r\n if (currentFocusedRowIndex >= 0 && focusedRowIndex < 0) {\r\n _this2._focusRowByIndex()\r\n }\r\n })\r\n }\r\n } else {\r\n if (currentFocusedRowIndex >= 0) {\r\n this.getController(\"focus\")._focusRowByIndex(currentFocusedRowIndex)\r\n }\r\n }\r\n },\r\n isRowFocused: function(key) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n if ((0, _type.isDefined)(focusedRowKey)) {\r\n return (0, _common.equalByValue)(key, this.option(\"focusedRowKey\"))\r\n }\r\n },\r\n updateFocusedRow: function(change) {\r\n var that = this;\r\n var focusedRowIndex = that._dataController.getRowIndexByKey(change.focusedRowKey);\r\n var rowsView = that.getView(\"rowsView\");\r\n var $tableElement;\r\n (0, _iterator.each)(rowsView.getTableElements(), function(index, element) {\r\n var _change$items;\r\n var isMainTable = 0 === index;\r\n $tableElement = (0, _renderer.default)(element);\r\n that._clearPreviousFocusedRow($tableElement, focusedRowIndex);\r\n that._prepareFocusedRow({\r\n changedItem: null === change || void 0 === change ? void 0 : null === (_change$items = change.items) || void 0 === _change$items ? void 0 : _change$items[focusedRowIndex],\r\n $tableElement: $tableElement,\r\n focusedRowIndex: focusedRowIndex,\r\n isMainTable: isMainTable\r\n })\r\n })\r\n },\r\n _clearPreviousFocusedRow: function($tableElement, focusedRowIndex) {\r\n var _this3 = this;\r\n var isNotMasterDetailFocusedRow = function(_, focusedRow) {\r\n var $focusedRowTable = (0, _renderer.default)(focusedRow).closest(\".\".concat(_this3.addWidgetPrefix(TABLE_POSTFIX_CLASS)));\r\n return $tableElement.is($focusedRowTable)\r\n };\r\n var $prevRowFocusedElement = $tableElement.find(FOCUSED_ROW_SELECTOR).filter(isNotMasterDetailFocusedRow);\r\n $prevRowFocusedElement.removeClass(ROW_FOCUSED_CLASS).removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabindex\");\r\n $prevRowFocusedElement.children(\"td\").removeAttr(\"tabindex\");\r\n if (0 !== focusedRowIndex) {\r\n var $firstRow = (0, _renderer.default)(this.getView(\"rowsView\").getRowElement(0));\r\n $firstRow.removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabIndex\")\r\n }\r\n },\r\n _prepareFocusedRow: function(options) {\r\n var $row;\r\n var changedItem = options.changedItem;\r\n if (changedItem && (\"data\" === changedItem.rowType || \"group\" === changedItem.rowType)) {\r\n var focusedRowIndex = options.focusedRowIndex;\r\n var $tableElement = options.$tableElement;\r\n var isMainTable = options.isMainTable;\r\n var tabIndex = this.option(\"tabindex\") || 0;\r\n var rowsView = this.getView(\"rowsView\");\r\n $row = (0, _renderer.default)(rowsView._getRowElements($tableElement).eq(focusedRowIndex));\r\n $row.addClass(ROW_FOCUSED_CLASS).attr(\"tabindex\", tabIndex);\r\n if (isMainTable) {\r\n rowsView.scrollToElementVertically($row)\r\n }\r\n }\r\n return $row\r\n }\r\n }\r\n}());\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n focusedRowEnabled: false,\r\n autoNavigateToFocusedRow: true,\r\n focusedRowKey: void 0,\r\n focusedRowIndex: -1,\r\n focusedColumnIndex: -1\r\n }\r\n },\r\n controllers: {\r\n focus: FocusController\r\n },\r\n extenders: {\r\n controllers: {\r\n keyboardNavigation: {\r\n init: function() {\r\n var rowIndex = this.option(\"focusedRowIndex\");\r\n var columnIndex = this.option(\"focusedColumnIndex\");\r\n this.createAction(\"onFocusedRowChanging\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedRowChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedCellChanging\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedCellChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.callBase();\r\n this.setRowFocusType();\r\n this._focusedCellPosition = {};\r\n if ((0, _type.isDefined)(rowIndex)) {\r\n this._focusedCellPosition.rowIndex = this.option(\"focusedRowIndex\")\r\n }\r\n if ((0, _type.isDefined)(columnIndex)) {\r\n this._focusedCellPosition.columnIndex = this.option(\"focusedColumnIndex\")\r\n }\r\n },\r\n setFocusedRowIndex: function(rowIndex) {\r\n var dataController = this.getController(\"data\");\r\n this.callBase(rowIndex);\r\n var visibleRowIndex = rowIndex - dataController.getRowIndexOffset();\r\n var visibleRow = dataController.getVisibleRows()[visibleRowIndex];\r\n if (!visibleRow || !visibleRow.isNewRow) {\r\n this.option(\"focusedRowIndex\", rowIndex)\r\n }\r\n },\r\n setFocusedColumnIndex: function(columnIndex) {\r\n this.callBase(columnIndex);\r\n this.option(\"focusedColumnIndex\", columnIndex)\r\n },\r\n _escapeKeyHandler: function(eventArgs, isEditing) {\r\n if (isEditing || !this.option(\"focusedRowEnabled\")) {\r\n this.callBase(eventArgs, isEditing);\r\n return\r\n }\r\n if (this.isCellFocusType()) {\r\n this.setRowFocusType();\r\n this._focus(this._getCellElementFromTarget(eventArgs.originalEvent.target), true)\r\n }\r\n },\r\n _updateFocusedCellPosition: function($cell, direction) {\r\n var prevRowIndex = this.option(\"focusedRowIndex\");\r\n var prevColumnIndex = this.option(\"focusedColumnIndex\");\r\n var position = this.callBase($cell, direction);\r\n if (position && position.columnIndex >= 0) {\r\n this._fireFocusedCellChanged($cell, prevColumnIndex, prevRowIndex)\r\n }\r\n }\r\n },\r\n editorFactory: {\r\n renderFocusOverlay: function($element, hideBorder) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var focusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var editingController = this.getController(\"editing\");\r\n var isRowElement = \"row\" === keyboardController._getElementType($element);\r\n var $cell;\r\n if (!focusedRowEnabled || !keyboardController.isRowFocusType() || editingController.isEditing()) {\r\n this.callBase($element, hideBorder)\r\n } else {\r\n if (focusedRowEnabled) {\r\n if (isRowElement && !$element.hasClass(ROW_FOCUSED_CLASS)) {\r\n $cell = keyboardController.getFirstValidCellInRow($element);\r\n keyboardController.focus($cell)\r\n }\r\n }\r\n }\r\n }\r\n },\r\n columns: {\r\n getSortDataSourceParameters: function(_, sortByKey) {\r\n var _this4 = this;\r\n var result = this.callBase.apply(this, arguments);\r\n var dataController = this.getController(\"data\");\r\n var dataSource = dataController._dataSource;\r\n var store = dataController.store();\r\n var key = store && store.key();\r\n var remoteOperations = dataSource && dataSource.remoteOperations() || {};\r\n var isLocalOperations = Object.keys(remoteOperations).every(function(operationName) {\r\n return !remoteOperations[operationName]\r\n });\r\n if (key && (this.option(\"focusedRowEnabled\") && false !== this.getController(\"focus\").isAutoNavigateToFocusedRow() || sortByKey)) {\r\n key = Array.isArray(key) ? key : [key];\r\n var notSortedKeys = key.filter(function(key) {\r\n return !_this4.columnOption(key, \"sortOrder\")\r\n });\r\n if (notSortedKeys.length) {\r\n result = result || [];\r\n if (isLocalOperations) {\r\n result.push({\r\n selector: dataSource.getDataIndexGetter(),\r\n desc: false\r\n })\r\n } else {\r\n notSortedKeys.forEach(function(notSortedKey) {\r\n return result.push({\r\n selector: notSortedKey,\r\n desc: false\r\n })\r\n })\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n data: {\r\n _applyChange: function(change) {\r\n if (change && \"updateFocusedRow\" === change.changeType) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireChanged: function(e) {\r\n this.callBase(e);\r\n if (this.option(\"focusedRowEnabled\") && this._dataSource) {\r\n var isPartialUpdate = \"update\" === e.changeType && e.repaintChangesOnly;\r\n var isPartialUpdateWithDeleting = isPartialUpdate && e.changeTypes && e.changeTypes.indexOf(\"remove\") >= 0;\r\n if (\"refresh\" === e.changeType && e.items.length || isPartialUpdateWithDeleting) {\r\n this._updatePageIndexes();\r\n this.processUpdateFocusedRow(e)\r\n } else {\r\n if (\"append\" === e.changeType || \"prepend\" === e.changeType) {\r\n this._updatePageIndexes()\r\n }\r\n }\r\n }\r\n },\r\n _updatePageIndexes: function() {\r\n var prevRenderingPageIndex = this._lastRenderingPageIndex || 0;\r\n var renderingPageIndex = this._rowsScrollController ? this._rowsScrollController.pageIndex() : 0;\r\n this._lastRenderingPageIndex = renderingPageIndex;\r\n this._isPagingByRendering = renderingPageIndex !== prevRenderingPageIndex\r\n },\r\n isPagingByRendering: function() {\r\n return this._isPagingByRendering\r\n },\r\n processUpdateFocusedRow: function(e) {\r\n var operationTypes = e.operationTypes || {};\r\n var focusController = this.getController(\"focus\");\r\n var reload = operationTypes.reload,\r\n fullReload = operationTypes.fullReload;\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var isVirtualScrolling = keyboardController._isVirtualScrolling();\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var isAutoNavigate = focusController.isAutoNavigateToFocusedRow();\r\n if (reload && !fullReload && (0, _type.isDefined)(focusedRowKey)) {\r\n focusController._navigateToRow(focusedRowKey, true).done(function(focusedRowIndex) {\r\n if (focusedRowIndex < 0) {\r\n focusController._focusRowByIndex()\r\n }\r\n })\r\n } else {\r\n if (operationTypes.paging && !isVirtualScrolling) {\r\n if (isAutoNavigate) {\r\n var rowIndexByKey = this.getRowIndexByKey(focusedRowKey);\r\n var isValidRowIndexByKey = rowIndexByKey >= 0;\r\n var focusedRowIndex = this.option(\"focusedRowIndex\");\r\n var needFocusRowByIndex = focusedRowIndex >= 0 && (focusedRowIndex === rowIndexByKey || !isValidRowIndexByKey);\r\n if (needFocusRowByIndex) {\r\n focusController._focusRowByIndex()\r\n }\r\n } else {\r\n if (this.getRowIndexByKey(focusedRowKey) < 0) {\r\n this.option(\"focusedRowIndex\", -1)\r\n }\r\n }\r\n } else {\r\n if (operationTypes.fullReload) {\r\n focusController._focusRowByKeyOrIndex()\r\n }\r\n }\r\n }\r\n },\r\n getPageIndexByKey: function(key) {\r\n var that = this;\r\n var d = new _deferred.Deferred;\r\n that.getGlobalRowIndexByKey(key).done(function(globalIndex) {\r\n d.resolve(globalIndex >= 0 ? Math.floor(globalIndex / that.pageSize()) : -1)\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n getGlobalRowIndexByKey: function(key) {\r\n if (this._dataSource.group()) {\r\n return this._calculateGlobalRowIndexByGroupedData(key)\r\n }\r\n return this._calculateGlobalRowIndexByFlatData(key)\r\n },\r\n _calculateGlobalRowIndexByFlatData: function(key, groupFilter, useGroup) {\r\n var that = this;\r\n var deferred = new _deferred.Deferred;\r\n var dataSource = that._dataSource;\r\n var filter = that._generateFilterByKey(key);\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter),\r\n skip: 0,\r\n take: 1\r\n }).done(function(data) {\r\n if (data.length > 0) {\r\n filter = that._generateOperationFilterByKey(key, data[0], useGroup);\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter, groupFilter),\r\n skip: 0,\r\n take: 1,\r\n requireTotalCount: true\r\n }).done(function(_, extra) {\r\n deferred.resolve(extra.totalCount)\r\n })\r\n } else {\r\n deferred.resolve(-1)\r\n }\r\n });\r\n return deferred.promise()\r\n },\r\n _concatWithCombinedFilter: function(filter, groupFilter) {\r\n var combinedFilter = this.getCombinedFilter();\r\n return _uiGrid_core2.default.combineFilters([filter, combinedFilter, groupFilter])\r\n },\r\n _generateBooleanFilter: function(selector, value, sortInfo) {\r\n var result;\r\n if (false === value) {\r\n result = [selector, \"=\", sortInfo.desc ? true : null]\r\n } else {\r\n if (true === value ? !sortInfo.desc : sortInfo.desc) {\r\n result = [selector, \"<>\", value]\r\n }\r\n }\r\n return result\r\n },\r\n _generateOperationFilterByKey: function(key, rowData, useGroup) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var filter = that._generateFilterByKey(key, \"<\");\r\n var sort = that._columnsController.getSortDataSourceParameters(!dataSource.remoteOperations().filtering, true);\r\n if (useGroup) {\r\n var group = that._columnsController.getGroupDataSourceParameters(!dataSource.remoteOperations().filtering);\r\n if (group) {\r\n sort = sort ? group.concat(sort) : group\r\n }\r\n }\r\n if (sort) {\r\n sort.slice().reverse().forEach(function(sortInfo) {\r\n var selector = sortInfo.selector;\r\n var getter;\r\n if (\"function\" === typeof selector) {\r\n getter = selector\r\n } else {\r\n getter = that._columnsController.columnOption(selector, \"selector\")\r\n }\r\n var value = getter ? getter(rowData) : rowData[selector];\r\n filter = [\r\n [selector, \"=\", value], \"and\", filter\r\n ];\r\n if (null === value || (0, _type.isBoolean)(value)) {\r\n var booleanFilter = that._generateBooleanFilter(selector, value, sortInfo);\r\n if (booleanFilter) {\r\n filter = [booleanFilter, \"or\", filter]\r\n }\r\n } else {\r\n var filterOperation = sortInfo.desc ? \">\" : \"<\";\r\n var sortFilter = [selector, filterOperation, value];\r\n if (!sortInfo.desc) {\r\n sortFilter = [sortFilter, \"or\", [selector, \"=\", null]]\r\n }\r\n filter = [sortFilter, \"or\", filter]\r\n }\r\n })\r\n }\r\n return filter\r\n },\r\n _generateFilterByKey: function(key, operation) {\r\n var dataSourceKey = this._dataSource.key();\r\n var filter = [];\r\n if (!operation) {\r\n operation = \"=\"\r\n }\r\n if (Array.isArray(dataSourceKey)) {\r\n for (var i = 0; i < dataSourceKey.length; ++i) {\r\n var keyPart = key[dataSourceKey[i]];\r\n if (keyPart) {\r\n if (filter.length > 0) {\r\n filter.push(\"and\")\r\n }\r\n filter.push([dataSourceKey[i], operation, keyPart])\r\n }\r\n }\r\n } else {\r\n filter = [dataSourceKey, operation, key]\r\n }\r\n return filter\r\n },\r\n _getLastItemIndex: function() {\r\n return this.items(true).length - 1\r\n }\r\n },\r\n editing: {\r\n _deleteRowCore: function(rowIndex) {\r\n var _this5 = this;\r\n var deferred = this.callBase.apply(this, arguments);\r\n var dataController = this.getController(\"data\");\r\n var rowKey = dataController.getKeyByRowIndex(rowIndex);\r\n deferred.done(function() {\r\n var rowIndex = dataController.getRowIndexByKey(rowKey);\r\n var visibleRows = dataController.getVisibleRows();\r\n if (rowIndex === -1 && !visibleRows.length) {\r\n _this5.getController(\"focus\")._resetFocusedRow()\r\n }\r\n })\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (this.option(\"focusedRowEnabled\") && row) {\r\n if (this.getController(\"focus\").isRowFocused(row.key)) {\r\n $row.addClass(ROW_FOCUSED_CLASS)\r\n }\r\n }\r\n return $row\r\n },\r\n _checkRowKeys: function(options) {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"focusedRowEnabled\") && this.option(\"dataSource\")) {\r\n var store = this._dataController.store();\r\n if (store && !store.key()) {\r\n this._dataController.fireError(\"E1042\", \"Row focusing\")\r\n }\r\n }\r\n },\r\n _update: function(change) {\r\n if (\"updateFocusedRow\" === change.changeType) {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.getController(\"focus\").updateFocusedRow(change)\r\n }\r\n } else {\r\n this.callBase(change)\r\n }\r\n },\r\n updateFocusElementTabIndex: function($cellElements, preventScroll) {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this._setFocusedRowElementTabIndex(preventScroll)\r\n } else {\r\n this.callBase($cellElements)\r\n }\r\n },\r\n _setFocusedRowElementTabIndex: function(preventScroll) {\r\n var _this6 = this;\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var tabIndex = this.option(\"tabIndex\") || 0;\r\n var dataController = this._dataController;\r\n var columnsController = this._columnsController;\r\n var rowIndex = dataController.getRowIndexByKey(focusedRowKey);\r\n var columnIndex = this.option(\"focusedColumnIndex\");\r\n var $row = this._findRowElementForTabIndex();\r\n if (!(0, _type.isDefined)(this._scrollToFocusOnResize)) {\r\n this._scrollToFocusOnResize = function() {\r\n _this6.scrollToElementVertically(_this6._findRowElementForTabIndex());\r\n _this6.resizeCompleted.remove(_this6._scrollToFocusOnResize)\r\n }\r\n }\r\n $row.attr(\"tabIndex\", tabIndex);\r\n if (rowIndex >= 0 && !preventScroll) {\r\n if (columnIndex < 0) {\r\n columnIndex = 0\r\n }\r\n rowIndex += dataController.getRowIndexOffset();\r\n columnIndex += columnsController.getColumnIndexOffset();\r\n this.getController(\"keyboardNavigation\").setFocusedCellPosition(rowIndex, columnIndex);\r\n if (this.getController(\"focus\").isAutoNavigateToFocusedRow()) {\r\n var dataSource = dataController.dataSource();\r\n var operationTypes = dataSource && dataSource.operationTypes();\r\n if (operationTypes && !operationTypes.paging && !dataController.isPagingByRendering()) {\r\n this.resizeCompleted.remove(this._scrollToFocusOnResize);\r\n this.resizeCompleted.add(this._scrollToFocusOnResize)\r\n }\r\n }\r\n }\r\n },\r\n _findRowElementForTabIndex: function() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var rowIndex = this._dataController.getRowIndexByKey(focusedRowKey);\r\n return (0, _renderer.default)(this.getRowElement(rowIndex >= 0 ? rowIndex : 0))\r\n },\r\n scrollToRowElement: function(key) {\r\n var rowIndex = this.getController(\"data\").getRowIndexByKey(key);\r\n var $row = (0, _renderer.default)(this.getRow(rowIndex));\r\n this.scrollToElementVertically($row)\r\n },\r\n scrollToElementVertically: function($row) {\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n var position = scrollable.getScrollElementPosition($row, \"vertical\");\r\n scrollable.scrollTo({\r\n top: position\r\n })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.virtual_columns.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _uiGrid_core = require(\"./ui.grid_core.virtual_columns_core\");\r\nvar DEFAULT_COLUMN_WIDTH = 50;\r\nvar VirtualScrollingRowsViewExtender = {\r\n _resizeCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this._columnsController.resize()\r\n },\r\n _handleScroll: function(e) {\r\n var that = this;\r\n var scrollable = this.getScrollable();\r\n var left = e.scrollOffset.left;\r\n that.callBase.apply(that, arguments);\r\n if (that.option(\"rtlEnabled\") && scrollable) {\r\n left = scrollable.$content().width() - scrollable.$element().width() - left\r\n }\r\n that._columnsController.setScrollPosition(left)\r\n }\r\n};\r\nvar HeaderFooterViewExtender = {\r\n _renderCore: function() {\r\n var that = this;\r\n var scrollLeft = that._scrollLeft;\r\n that.callBase.apply(that, arguments);\r\n if (that._columnsController.isVirtualMode() && scrollLeft >= 0) {\r\n that._scrollLeft = 0;\r\n that.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n }\r\n};\r\nvar ColumnsControllerExtender = function() {\r\n var getWidths = function(columns) {\r\n return columns.map(function(column) {\r\n return column.visibleWidth || parseFloat(column.width) || DEFAULT_COLUMN_WIDTH\r\n })\r\n };\r\n var members = {\r\n init: function() {\r\n var that = this;\r\n that.callBase();\r\n that._beginPageIndex = 0;\r\n that._endPageIndex = 0;\r\n that._position = 0;\r\n that._virtualVisibleColumns = {}\r\n },\r\n resetColumnsCache: function() {\r\n this.callBase();\r\n this._virtualVisibleColumns = {}\r\n },\r\n getBeginPageIndex: function(position) {\r\n var visibleColumns = this.getVisibleColumns(void 0, true);\r\n var widths = getWidths(visibleColumns);\r\n var currentPosition = 0;\r\n for (var index = 0; index < widths.length; index++) {\r\n if (currentPosition >= position) {\r\n return Math.floor(index / this.getColumnPageSize())\r\n }\r\n currentPosition += widths[index]\r\n }\r\n return 0\r\n },\r\n getTotalWidth: function() {\r\n var width = this.option(\"width\");\r\n if (\"number\" === typeof width) {\r\n return width\r\n }\r\n return this.getController(\"resizing\")._lastWidth || this.component.$element().outerWidth()\r\n },\r\n getEndPageIndex: function(position) {\r\n var visibleColumns = this.getVisibleColumns(void 0, true);\r\n var widths = getWidths(visibleColumns);\r\n var currentPosition = 0;\r\n position += this.getTotalWidth();\r\n for (var index = 0; index < widths.length; index++) {\r\n if (currentPosition >= position) {\r\n return Math.ceil(index / this.getColumnPageSize())\r\n }\r\n currentPosition += widths[index]\r\n }\r\n return Math.ceil(widths.length / this.getColumnPageSize())\r\n },\r\n getColumnPageSize: function() {\r\n return this.option(\"scrolling.columnPageSize\")\r\n },\r\n _fireColumnsChanged: function() {\r\n var date = new Date;\r\n this.columnsChanged.fire({\r\n optionNames: {\r\n all: true,\r\n length: 1\r\n },\r\n changeTypes: {\r\n columns: true,\r\n length: 1\r\n }\r\n });\r\n this._renderTime = new Date - date\r\n },\r\n setScrollPosition: function(position) {\r\n var that = this;\r\n var renderingThreshold = that.option(\"scrolling.columnRenderingThreshold\");\r\n if (that._renderTime > renderingThreshold) {\r\n clearTimeout(that._changedTimeout);\r\n that._changedTimeout = setTimeout(function() {\r\n that._setScrollPositionCore(position)\r\n }, that.option(\"scrolling.timeout\"))\r\n } else {\r\n that._setScrollPositionCore(position)\r\n }\r\n },\r\n isVirtualMode: function() {\r\n return (0, _window.hasWindow)() && \"virtual\" === this.option(\"scrolling.columnRenderingMode\")\r\n },\r\n resize: function() {\r\n this._setScrollPositionCore(this._position)\r\n },\r\n _setScrollPositionCore: function(position) {\r\n var that = this;\r\n if (that.isVirtualMode()) {\r\n var beginPageIndex = that.getBeginPageIndex(position);\r\n var endPageIndex = that.getEndPageIndex(position);\r\n var needColumnsChanged = position < that._position ? that._beginPageIndex > beginPageIndex : that._endPageIndex < endPageIndex;\r\n that._position = position;\r\n if (needColumnsChanged) {\r\n that._beginPageIndex = beginPageIndex;\r\n that._endPageIndex = endPageIndex;\r\n that._fireColumnsChanged()\r\n }\r\n }\r\n },\r\n getFixedColumns: function(rowIndex, isBase) {\r\n var fixedColumns = this.callBase(rowIndex);\r\n if (this.isVirtualMode() && !isBase && fixedColumns.length) {\r\n var transparentColumnIndex = fixedColumns.map(function(c) {\r\n return c.command\r\n }).indexOf(\"transparent\");\r\n fixedColumns[transparentColumnIndex].colspan = this.getVisibleColumns().length - this.callBase().length + 1;\r\n return fixedColumns\r\n }\r\n return fixedColumns\r\n },\r\n getVisibleColumns: function(rowIndex, isBase) {\r\n if (isBase || !this.isVirtualMode()) {\r\n return this.callBase(rowIndex)\r\n }\r\n if (!this._beginPageIndex && !this._endPageIndex) {\r\n this._beginPageIndex = this.getBeginPageIndex(this._position);\r\n this._endPageIndex = this.getEndPageIndex(this._position)\r\n }\r\n var beginPageIndex = this._beginPageIndex;\r\n var endPageIndex = this._endPageIndex;\r\n var visibleColumnsHash = rowIndex + \"-\" + beginPageIndex + \"-\" + endPageIndex;\r\n if (this._virtualVisibleColumns[visibleColumnsHash]) {\r\n return this._virtualVisibleColumns[visibleColumnsHash]\r\n }\r\n var visibleColumns = this.callBase();\r\n var rowCount = this.getRowCount();\r\n var pageSize = this.getColumnPageSize();\r\n var startIndex = beginPageIndex * pageSize;\r\n var endIndex = endPageIndex * pageSize;\r\n var fixedColumns = this.getFixedColumns(void 0, true);\r\n var transparentColumnIndex = fixedColumns.map(function(c) {\r\n return c.command\r\n }).indexOf(\"transparent\");\r\n var beginFixedColumnCount = fixedColumns.length ? transparentColumnIndex : 0;\r\n var beginFixedColumns = visibleColumns.slice(0, beginFixedColumnCount);\r\n var beginColumns = visibleColumns.slice(beginFixedColumnCount, startIndex);\r\n var beginWidth = getWidths(beginColumns).reduce(function(a, b) {\r\n return a + b\r\n }, 0);\r\n if (!beginWidth) {\r\n startIndex = 0\r\n }\r\n var endFixedColumnCount = fixedColumns.length ? fixedColumns.length - transparentColumnIndex - 1 : 0;\r\n var endFixedColumns = visibleColumns.slice(visibleColumns.length - endFixedColumnCount);\r\n var endColumns = visibleColumns.slice(endIndex, visibleColumns.length - endFixedColumnCount);\r\n var endWidth = getWidths(endColumns).reduce(function(a, b) {\r\n return a + b\r\n }, 0);\r\n if (!endWidth) {\r\n endIndex = visibleColumns.length\r\n }\r\n if (rowCount > 1 && \"number\" === typeof rowIndex) {\r\n var columnsInfo = [];\r\n for (var i = 0; i < rowCount; i++) {\r\n columnsInfo.push(this.callBase(i))\r\n }\r\n beginFixedColumns = (0, _uiGrid_core.createColumnsInfo)(columnsInfo, 0, beginFixedColumns.length)[rowIndex] || [];\r\n endFixedColumns = (0, _uiGrid_core.createColumnsInfo)(columnsInfo, visibleColumns.length - endFixedColumns.length, visibleColumns.length)[rowIndex] || [];\r\n visibleColumns = (0, _uiGrid_core.createColumnsInfo)(columnsInfo, startIndex, endIndex)[rowIndex] || []\r\n } else {\r\n visibleColumns = visibleColumns.slice(startIndex, endIndex)\r\n }\r\n if (beginWidth) {\r\n visibleColumns.unshift({\r\n command: \"virtual\",\r\n width: beginWidth\r\n });\r\n visibleColumns = beginFixedColumns.concat(visibleColumns)\r\n }\r\n if (endWidth) {\r\n visibleColumns.push({\r\n command: \"virtual\",\r\n width: endWidth\r\n });\r\n visibleColumns = visibleColumns.concat(endFixedColumns)\r\n }\r\n this._virtualVisibleColumns[visibleColumnsHash] = visibleColumns;\r\n return visibleColumns\r\n },\r\n getColumnIndexOffset: function() {\r\n var offset = 0;\r\n if (this._beginPageIndex > 0) {\r\n var fixedColumns = this.getFixedColumns();\r\n var transparentColumnIndex = fixedColumns.map(function(c) {\r\n return c.command\r\n }).indexOf(\"transparent\");\r\n var leftFixedColumnCount = transparentColumnIndex >= 0 ? transparentColumnIndex : 0;\r\n offset = this._beginPageIndex * this.getColumnPageSize() - leftFixedColumnCount - 1\r\n }\r\n return offset > 0 ? offset : 0\r\n },\r\n dispose: function() {\r\n clearTimeout(this._changedTimeout);\r\n this.callBase.apply(this, arguments)\r\n }\r\n };\r\n return members\r\n}();\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n scrolling: {\r\n columnRenderingMode: \"standard\",\r\n columnPageSize: 5,\r\n columnRenderingThreshold: 300\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n columns: ColumnsControllerExtender\r\n },\r\n views: {\r\n columnHeadersView: HeaderFooterViewExtender,\r\n footerView: HeaderFooterViewExtender,\r\n rowsView: VirtualScrollingRowsViewExtender\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.keyboard_navigation.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.keyboard_navigation\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"keyboardNavigation\", _uiGrid_core.default);\r\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar Array = global.Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar un$Sort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!un$Sort && !(fails(function () {\n un$Sort(new Uint16Array(2), null);\n}) && fails(function () {\n un$Sort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!un$Sort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n un$Sort(array, function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n if (STABLE_SORT) return un$Sort(this, comparefn);\n\n return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","import { ItiBaseDto } from '@/iti-core-vue';\nimport { Rol } from './rol';\nimport { User } from './user';\n\n\nexport class CollaborativeAreaMember extends ItiBaseDto {\n public roleId !: number;\n // public role !: Rol;\n public roleInAmbit !: Rol;\n public userId !: number;\n public user !: User;\n public ambitId !: number; \n}","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _notify = _interopRequireDefault(require(\"../notify\"));\r\nvar _uiFile_manager = require(\"./ui.file_manager.common\");\r\nvar _file_items_controller = _interopRequireDefault(require(\"./file_items_controller\"));\r\nvar _uiFile_manager2 = require(\"./ui.file_manager.command_manager\");\r\nvar _uiFile_manager3 = _interopRequireDefault(require(\"./ui.file_manager.context_menu\"));\r\nvar _uiFile_manager4 = _interopRequireDefault(require(\"./ui.file_manager.files_tree_view\"));\r\nvar _uiFile_managerItem_list = _interopRequireDefault(require(\"./ui.file_manager.item_list.details\"));\r\nvar _uiFile_managerItem_list2 = _interopRequireDefault(require(\"./ui.file_manager.item_list.thumbnails\"));\r\nvar _uiFile_manager5 = _interopRequireDefault(require(\"./ui.file_manager.toolbar\"));\r\nvar _uiFile_manager6 = _interopRequireDefault(require(\"./ui.file_manager.notification\"));\r\nvar _uiFile_manager7 = _interopRequireDefault(require(\"./ui.file_manager.editing\"));\r\nvar _uiFile_manager8 = _interopRequireDefault(require(\"./ui.file_manager.breadcrumbs\"));\r\nvar _uiFile_manager9 = _interopRequireDefault(require(\"./ui.file_manager.adaptivity\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_CLASS = \"dx-filemanager\";\r\nvar FILE_MANAGER_WRAPPER_CLASS = FILE_MANAGER_CLASS + \"-wrapper\";\r\nvar FILE_MANAGER_CONTAINER_CLASS = FILE_MANAGER_CLASS + \"-container\";\r\nvar FILE_MANAGER_DIRS_PANEL_CLASS = FILE_MANAGER_CLASS + \"-dirs-panel\";\r\nvar FILE_MANAGER_INACTIVE_AREA_CLASS = FILE_MANAGER_CLASS + \"-inactive-area\";\r\nvar FILE_MANAGER_EDITING_CONTAINER_CLASS = FILE_MANAGER_CLASS + \"-editing-container\";\r\nvar FILE_MANAGER_ITEMS_PANEL_CLASS = FILE_MANAGER_CLASS + \"-items-panel\";\r\nvar FILE_MANAGER_ITEM_CUSTOM_THUMBNAIL_CLASS = FILE_MANAGER_CLASS + \"-item-custom-thumbnail\";\r\nvar PARENT_DIRECTORY_KEY_PREFIX = \"[*DXPDK*]$40F96F03-FBD8-43DF-91BE-F55F4B8BA871$\";\r\nvar VIEW_AREAS = {\r\n folders: \"navPane\",\r\n items: \"itemView\"\r\n};\r\nvar FileManager = function(_Widget) {\r\n _inheritsLoose(FileManager, _Widget);\r\n\r\n function FileManager() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = FileManager.prototype;\r\n _proto._initTemplates = function() {};\r\n _proto._initMarkup = function() {\r\n _Widget.prototype._initMarkup.call(this);\r\n this._initActions();\r\n this._firstItemViewLoad = true;\r\n this._lockSelectionProcessing = false;\r\n this._lockFocusedItemProcessing = false;\r\n this._itemKeyToFocus = void 0;\r\n this._controller = new _file_items_controller.default({\r\n currentPath: this.option(\"currentPath\"),\r\n currentPathKeys: this.option(\"currentPathKeys\"),\r\n rootText: this.option(\"rootFolderName\"),\r\n fileProvider: this.option(\"fileSystemProvider\"),\r\n allowedFileExtensions: this.option(\"allowedFileExtensions\"),\r\n uploadMaxFileSize: this.option(\"upload\").maxFileSize,\r\n uploadChunkSize: this.option(\"upload\").chunkSize,\r\n onInitialized: this._onControllerInitialized.bind(this),\r\n onDataLoading: this._onDataLoading.bind(this),\r\n onSelectedDirectoryChanged: this._onSelectedDirectoryChanged.bind(this)\r\n });\r\n this._commandManager = new _uiFile_manager2.FileManagerCommandManager(this.option(\"permissions\"));\r\n this.$element().addClass(FILE_MANAGER_CLASS);\r\n this._createNotificationControl();\r\n this._initCommandManager();\r\n this._setItemsViewAreaActive(false)\r\n };\r\n _proto._createNotificationControl = function() {\r\n var _this = this;\r\n var $notificationControl = (0, _renderer.default)(\"
\").addClass(\"dx-filemanager-notification-container\").appendTo(this.$element());\r\n this._notificationControl = this._createComponent($notificationControl, _uiFile_manager6.default, {\r\n progressPanelContainer: this.$element(),\r\n contentTemplate: function(container, notificationControl) {\r\n return _this._createWrapper(container, notificationControl)\r\n },\r\n onActionProgress: function(e) {\r\n return _this._onActionProgress(e)\r\n },\r\n positionTarget: \".\".concat(FILE_MANAGER_CONTAINER_CLASS)\r\n })\r\n };\r\n _proto._createWrapper = function(container, notificationControl) {\r\n var _this2 = this;\r\n this._$wrapper = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_WRAPPER_CLASS).appendTo(container);\r\n this._createEditing(notificationControl);\r\n var $toolbar = (0, _renderer.default)(\"
\").appendTo(this._$wrapper);\r\n this._toolbar = this._createComponent($toolbar, _uiFile_manager5.default, {\r\n commandManager: this._commandManager,\r\n generalItems: this.option(\"toolbar.items\"),\r\n fileItems: this.option(\"toolbar.fileSelectionItems\"),\r\n itemViewMode: this.option(\"itemView\").mode,\r\n onItemClick: function(args) {\r\n return _this2._actions.onToolbarItemClick(args)\r\n }\r\n });\r\n this._createAdaptivityControl()\r\n };\r\n _proto._createAdaptivityControl = function() {\r\n var _this3 = this;\r\n var $container = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_CONTAINER_CLASS).appendTo(this._$wrapper);\r\n this._adaptivityControl = this._createComponent($container, _uiFile_manager9.default, {\r\n drawerTemplate: function(container) {\r\n return _this3._createFilesTreeView(container)\r\n },\r\n contentTemplate: function(container) {\r\n return _this3._createItemsPanel(container)\r\n },\r\n onAdaptiveStateChanged: function(e) {\r\n return _this3._onAdaptiveStateChanged(e)\r\n }\r\n })\r\n };\r\n _proto._createEditing = function(notificationControl) {\r\n var _this4 = this;\r\n var $editingContainer = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_EDITING_CONTAINER_CLASS).appendTo(this.$element());\r\n this._editing = this._createComponent($editingContainer, _uiFile_manager7.default, {\r\n controller: this._controller,\r\n model: {\r\n getMultipleSelectedItems: this._getMultipleSelectedItems.bind(this)\r\n },\r\n getItemThumbnail: this._getItemThumbnailInfo.bind(this),\r\n notificationControl: notificationControl,\r\n uploadDropZonePlaceholderContainer: this.$element(),\r\n onSuccess: function(_ref) {\r\n var updatedOnlyFiles = _ref.updatedOnlyFiles;\r\n return _this4._redrawComponent(updatedOnlyFiles)\r\n },\r\n onCreating: function() {\r\n return _this4._setItemsViewAreaActive(false)\r\n },\r\n onError: function(e) {\r\n return _this4._onEditingError(e)\r\n }\r\n })\r\n };\r\n _proto._createItemsPanel = function($container) {\r\n this._$itemsPanel = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_ITEMS_PANEL_CLASS).appendTo($container);\r\n this._createBreadcrumbs(this._$itemsPanel);\r\n this._createItemView(this._$itemsPanel);\r\n if (this._commandManager.isCommandAvailable(\"upload\")) {\r\n this._editing.setUploaderDropZone(this._$itemsPanel)\r\n }\r\n };\r\n _proto._createFilesTreeView = function(container) {\r\n var _this5 = this;\r\n this._filesTreeViewContextMenu = this._createContextMenu(false, VIEW_AREAS.folders);\r\n var $filesTreeView = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_DIRS_PANEL_CLASS).appendTo(container);\r\n this._filesTreeView = this._createComponent($filesTreeView, _uiFile_manager4.default, {\r\n storeExpandedState: true,\r\n contextMenu: this._filesTreeViewContextMenu,\r\n getDirectories: this.getDirectories.bind(this),\r\n getCurrentDirectory: this._getCurrentDirectory.bind(this),\r\n onDirectoryClick: this._onFilesTreeViewDirectoryClick.bind(this),\r\n onClick: function() {\r\n return _this5._setItemsViewAreaActive(false)\r\n }\r\n });\r\n this._filesTreeView.updateCurrentDirectory()\r\n };\r\n _proto._createItemView = function($container, viewMode) {\r\n var _this6 = this;\r\n this._itemViewContextMenu = this._createContextMenu(true, VIEW_AREAS.items);\r\n var itemViewOptions = this.option(\"itemView\");\r\n var options = {\r\n selectionMode: this.option(\"selectionMode\"),\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n focusedItemKey: this.option(\"focusedItemKey\"),\r\n contextMenu: this._itemViewContextMenu,\r\n getItems: this._getItemViewItems.bind(this),\r\n onError: function(_ref2) {\r\n var error = _ref2.error;\r\n return _this6._showError(error)\r\n },\r\n onSelectionChanged: this._onItemViewSelectionChanged.bind(this),\r\n onFocusedItemChanged: this._onItemViewFocusedItemChanged.bind(this),\r\n onSelectedItemOpened: this._onSelectedItemOpened.bind(this),\r\n onContextMenuShowing: function() {\r\n return _this6._onContextMenuShowing(VIEW_AREAS.items)\r\n },\r\n getItemThumbnail: this._getItemThumbnailInfo.bind(this),\r\n customizeDetailColumns: this.option(\"customizeDetailColumns\"),\r\n detailColumns: this.option(\"itemView.details.columns\")\r\n };\r\n var $itemView = (0, _renderer.default)(\"
\").appendTo($container);\r\n viewMode = viewMode || itemViewOptions.mode;\r\n var widgetClass = \"thumbnails\" === viewMode ? _uiFile_managerItem_list2.default : _uiFile_managerItem_list.default;\r\n this._itemView = this._createComponent($itemView, widgetClass, options);\r\n _events_engine.default.on($itemView, \"click\", this._onItemViewClick.bind(this))\r\n };\r\n _proto._createBreadcrumbs = function($container) {\r\n var _this7 = this;\r\n var $breadcrumbs = (0, _renderer.default)(\"
\").appendTo($container);\r\n this._breadcrumbs = this._createComponent($breadcrumbs, _uiFile_manager8.default, {\r\n rootFolderDisplayName: this.option(\"rootFolderName\"),\r\n onCurrentDirectoryChanging: function(_ref3) {\r\n var currentDirectory = _ref3.currentDirectory;\r\n return _this7._setCurrentDirectory(currentDirectory, true)\r\n }\r\n });\r\n this._breadcrumbs.setCurrentDirectory(this._getCurrentDirectory())\r\n };\r\n _proto._createContextMenu = function(isolateCreationItemCommands, viewArea) {\r\n var _this8 = this;\r\n var $contextMenu = (0, _renderer.default)(\"
\").appendTo(this._$wrapper);\r\n return this._createComponent($contextMenu, _uiFile_manager3.default, {\r\n commandManager: this._commandManager,\r\n items: this.option(\"contextMenu.items\"),\r\n onItemClick: function(args) {\r\n return _this8._actions.onContextMenuItemClick(args)\r\n },\r\n onContextMenuShowing: function() {\r\n return _this8._onContextMenuShowing(viewArea)\r\n },\r\n isolateCreationItemCommands: isolateCreationItemCommands,\r\n viewArea: viewArea\r\n })\r\n };\r\n _proto._initCommandManager = function() {\r\n var _this9 = this;\r\n var actions = (0, _extend.extend)(this._editing.getCommandActions(), {\r\n refresh: function() {\r\n return _this9._refreshAndShowProgress()\r\n },\r\n thumbnails: function() {\r\n return _this9.option(\"itemView.mode\", \"thumbnails\")\r\n },\r\n details: function() {\r\n return _this9.option(\"itemView.mode\", \"details\")\r\n },\r\n clearSelection: function() {\r\n return _this9._clearSelection()\r\n },\r\n showNavPane: function() {\r\n return _this9._adaptivityControl.toggleDrawer()\r\n }\r\n });\r\n this._commandManager.registerActions(actions)\r\n };\r\n _proto._onFilesTreeViewDirectoryClick = function(_ref4) {\r\n var itemData = _ref4.itemData;\r\n this._setCurrentDirectory(itemData);\r\n this._setItemsViewAreaActive(false)\r\n };\r\n _proto._onItemViewSelectionChanged = function(_ref5) {\r\n var selectedItemInfos = _ref5.selectedItemInfos,\r\n selectedItems = _ref5.selectedItems,\r\n selectedItemKeys = _ref5.selectedItemKeys,\r\n currentSelectedItemKeys = _ref5.currentSelectedItemKeys,\r\n currentDeselectedItemKeys = _ref5.currentDeselectedItemKeys;\r\n this._lockSelectionProcessing = true;\r\n this.option(\"selectedItemKeys\", selectedItemKeys);\r\n this._lockSelectionProcessing = false;\r\n this._actions.onSelectionChanged({\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n currentSelectedItemKeys: currentSelectedItemKeys,\r\n currentDeselectedItemKeys: currentDeselectedItemKeys\r\n });\r\n this._updateToolbar(selectedItemInfos);\r\n this._setItemsViewAreaActive(true)\r\n };\r\n _proto._onItemViewFocusedItemChanged = function(e) {\r\n this._lockFocusedItemProcessing = true;\r\n this.option(\"focusedItemKey\", e.itemKey);\r\n this._lockFocusedItemProcessing = false;\r\n this._actions.onFocusedItemChanged({\r\n item: e.item,\r\n itemElement: e.itemElement\r\n })\r\n };\r\n _proto._onAdaptiveStateChanged = function(_ref6) {\r\n var enabled = _ref6.enabled;\r\n this._commandManager.setCommandEnabled(\"showNavPane\", enabled);\r\n this._updateToolbar()\r\n };\r\n _proto._onActionProgress = function(_ref7) {\r\n var message = _ref7.message,\r\n status = _ref7.status;\r\n this._toolbar.updateRefreshItem(message, status);\r\n this._updateToolbar()\r\n };\r\n _proto._onEditingError = function(e) {\r\n var args = (0, _uiFile_manager.extendAttributes)({}, e, [\"errorCode\", \"errorText\", \"fileSystemItem\"]);\r\n this._actions.onErrorOccurred(args);\r\n e.errorText = args.errorText\r\n };\r\n _proto._refreshAndShowProgress = function() {\r\n var _this10 = this;\r\n return (0, _deferred.when)(this._notificationControl.tryShowProgressPanel(), this._controller.refresh()).then(function() {\r\n return _this10._filesTreeView.refresh()\r\n })\r\n };\r\n _proto._updateToolbar = function(selectedItems) {\r\n var items = selectedItems || this._getSelectedItemInfos();\r\n this._toolbar.update(items)\r\n };\r\n _proto._setItemsViewAreaActive = function(active) {\r\n if (this._itemsViewAreaActive === active) {\r\n return\r\n }\r\n this._itemsViewAreaActive = active;\r\n var $activeArea = null;\r\n var $inactiveArea = null;\r\n if (active) {\r\n $activeArea = this._itemView.$element();\r\n $inactiveArea = this._filesTreeView.$element()\r\n } else {\r\n $activeArea = this._filesTreeView.$element();\r\n $inactiveArea = this._itemView.$element()\r\n }\r\n $activeArea.removeClass(FILE_MANAGER_INACTIVE_AREA_CLASS);\r\n $inactiveArea.addClass(FILE_MANAGER_INACTIVE_AREA_CLASS)\r\n };\r\n _proto._switchView = function(viewMode) {\r\n this._disposeWidget(this._itemView.option(\"contextMenu\"));\r\n this._disposeWidget(this._itemView);\r\n this._createItemView(this._$itemsPanel, viewMode);\r\n this._toolbar.option({\r\n itemViewMode: viewMode\r\n })\r\n };\r\n _proto._disposeWidget = function(widget) {\r\n widget.dispose();\r\n widget.$element().remove()\r\n };\r\n _proto._clearSelection = function() {\r\n this._itemView.clearSelection()\r\n };\r\n _proto._getMultipleSelectedItems = function() {\r\n return this._itemsViewAreaActive ? this._getSelectedItemInfos() : [this._getCurrentDirectory()]\r\n };\r\n _proto._showError = function(message) {\r\n this._showNotification(message, false)\r\n };\r\n _proto._showNotification = function(message, isSuccess) {\r\n (0, _notify.default)({\r\n message: message,\r\n width: 450\r\n }, isSuccess ? \"success\" : \"error\", 5e3)\r\n };\r\n _proto._redrawComponent = function(onlyFileItemsView) {\r\n var _this11 = this;\r\n this._itemView.refresh().then(function() {\r\n return !onlyFileItemsView && _this11._filesTreeView.refresh()\r\n })\r\n };\r\n _proto._getItemViewItems = function() {\r\n var _this12 = this;\r\n var showFolders = this.option(\"itemView\").showFolders;\r\n var result = this._controller.getCurrentItems(!showFolders);\r\n this._updateToolbarWithSelectionOnFirstLoad(result);\r\n if (this.option(\"itemView.showParentFolder\")) {\r\n result = (0, _deferred.when)(result).then(function(items) {\r\n return _this12._getPreparedItemViewItems(items)\r\n })\r\n }\r\n return result\r\n };\r\n _proto._updateToolbarWithSelectionOnFirstLoad = function(itemsResult) {\r\n var _this13 = this;\r\n if (!this._firstItemViewLoad) {\r\n return\r\n }\r\n this._firstItemViewLoad = false;\r\n var selectedItemKeys = this.option(\"selectedItemKeys\");\r\n if (selectedItemKeys.length > 0) {\r\n (0, _deferred.when)(itemsResult).done(function(items) {\r\n var selectedItems = (0, _uiFile_manager.findItemsByKeys)(items, selectedItemKeys);\r\n if (selectedItems.length > 0) {\r\n _this13._updateToolbar(selectedItems)\r\n }\r\n })\r\n }\r\n };\r\n _proto._getPreparedItemViewItems = function(items) {\r\n var selectedDir = this._getCurrentDirectory();\r\n if (selectedDir.fileItem.isRoot()) {\r\n return items\r\n }\r\n var parentDirItem = selectedDir.fileItem.createClone();\r\n parentDirItem.isParentFolder = true;\r\n parentDirItem.name = \"..\";\r\n parentDirItem.relativeName = \"..\";\r\n parentDirItem.key = \"\".concat(PARENT_DIRECTORY_KEY_PREFIX).concat(selectedDir.fileItem.key);\r\n var itemsCopy = _toConsumableArray(items);\r\n itemsCopy.unshift({\r\n fileItem: parentDirItem,\r\n icon: \"parentfolder\"\r\n });\r\n return itemsCopy\r\n };\r\n _proto._onItemViewClick = function() {\r\n this._setItemsViewAreaActive(true)\r\n };\r\n _proto._onContextMenuShowing = function(viewArea) {\r\n this._setItemsViewAreaActive(viewArea === VIEW_AREAS.items)\r\n };\r\n _proto._getItemThumbnailInfo = function(fileInfo) {\r\n var func = this.option(\"customizeThumbnail\");\r\n var thumbnail = (0, _type.isFunction)(func) ? func(fileInfo.fileItem) : fileInfo.fileItem.thumbnail;\r\n if (thumbnail) {\r\n return {\r\n thumbnail: thumbnail,\r\n cssClass: FILE_MANAGER_ITEM_CUSTOM_THUMBNAIL_CLASS\r\n }\r\n }\r\n return {\r\n thumbnail: fileInfo.icon\r\n }\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {\r\n fileSystemProvider: null,\r\n currentPath: \"\",\r\n currentPathKeys: [],\r\n rootFolderName: _message.default.format(\"dxFileManager-rootDirectoryName\"),\r\n selectionMode: \"multiple\",\r\n selectedItemKeys: [],\r\n focusedItemKey: void 0,\r\n toolbar: {\r\n items: [\"showNavPane\", \"create\", \"upload\", \"switchView\", {\r\n name: \"separator\",\r\n location: \"after\"\r\n }, \"refresh\"],\r\n fileSelectionItems: [\"download\", \"separator\", \"move\", \"copy\", \"rename\", \"separator\", \"delete\", \"clearSelection\", {\r\n name: \"separator\",\r\n location: \"after\"\r\n }, \"refresh\"]\r\n },\r\n contextMenu: {\r\n items: [\"create\", \"upload\", \"rename\", \"move\", \"copy\", \"delete\", \"refresh\", \"download\"]\r\n },\r\n itemView: {\r\n details: {\r\n columns: [\"thumbnail\", \"name\", \"dateModified\", \"size\"]\r\n },\r\n mode: \"details\",\r\n showFolders: true,\r\n showParentFolder: true\r\n },\r\n customizeThumbnail: null,\r\n customizeDetailColumns: null,\r\n onContextMenuItemClick: null,\r\n onCurrentDirectoryChanged: null,\r\n onSelectedFileOpened: null,\r\n onSelectionChanged: null,\r\n onFocusedItemChanged: null,\r\n onToolbarItemClick: null,\r\n onErrorOccurred: null,\r\n allowedFileExtensions: [],\r\n upload: {\r\n maxFileSize: 0,\r\n chunkSize: 2e5\r\n },\r\n permissions: {\r\n create: false,\r\n copy: false,\r\n move: false,\r\n \"delete\": false,\r\n rename: false,\r\n upload: false,\r\n download: false\r\n }\r\n })\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"currentPath\":\r\n this._controller.setCurrentPath(args.value);\r\n break;\r\n case \"currentPathKeys\":\r\n this._controller.setCurrentPathByKeys(args.value);\r\n break;\r\n case \"selectedItemKeys\":\r\n if (!this._lockSelectionProcessing && this._itemView) {\r\n this._itemView.option(\"selectedItemKeys\", args.value)\r\n }\r\n break;\r\n case \"focusedItemKey\":\r\n if (!this._lockFocusedItemProcessing && this._itemView) {\r\n this._itemView.option(\"focusedItemKey\", args.value)\r\n }\r\n break;\r\n case \"fileSystemProvider\":\r\n case \"selectionMode\":\r\n case \"customizeThumbnail\":\r\n case \"customizeDetailColumns\":\r\n case \"rootFolderName\":\r\n case \"allowedFileExtensions\":\r\n case \"permissions\":\r\n case \"upload\":\r\n this.repaint();\r\n break;\r\n case \"itemView\":\r\n if (\"itemView.mode\" === args.fullName) {\r\n this._switchView(args.value)\r\n } else {\r\n this.repaint()\r\n }\r\n break;\r\n case \"toolbar\":\r\n var toolbarOptions = {};\r\n if (\"toolbar\" === args.fullName) {\r\n if (args.value.items) {\r\n toolbarOptions.generalItems = args.value.items\r\n }\r\n if (args.value.fileSelectionItems) {\r\n toolbarOptions.fileItems = args.value.fileSelectionItems\r\n }\r\n }\r\n if (0 === args.fullName.indexOf(\"toolbar.items\")) {\r\n toolbarOptions.generalItems = this.option(\"toolbar.items\")\r\n }\r\n if (0 === args.fullName.indexOf(\"toolbar.fileSelectionItems\")) {\r\n toolbarOptions.fileItems = this.option(\"toolbar.fileSelectionItems\")\r\n }\r\n this._toolbar.option(toolbarOptions);\r\n break;\r\n case \"contextMenu\":\r\n if (\"contextMenu\" === args.fullName && args.value.items || 0 === args.fullName.indexOf(\"contextMenu.items\")) {\r\n var contextMenuItems = this.option(\"contextMenu.items\");\r\n this._filesTreeViewContextMenu.option(\"items\", contextMenuItems);\r\n this._itemViewContextMenu.option(\"items\", contextMenuItems)\r\n }\r\n break;\r\n case \"onContextMenuItemClick\":\r\n case \"onCurrentDirectoryChanged\":\r\n case \"onSelectedFileOpened\":\r\n case \"onSelectionChanged\":\r\n case \"onFocusedItemChanged\":\r\n case \"onToolbarItemClick\":\r\n case \"onErrorOccurred\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto._initActions = function() {\r\n this._actions = {\r\n onContextMenuItemClick: this._createActionByOption(\"onContextMenuItemClick\"),\r\n onCurrentDirectoryChanged: this._createActionByOption(\"onCurrentDirectoryChanged\"),\r\n onSelectedFileOpened: this._createActionByOption(\"onSelectedFileOpened\"),\r\n onSelectionChanged: this._createActionByOption(\"onSelectionChanged\"),\r\n onFocusedItemChanged: this._createActionByOption(\"onFocusedItemChanged\"),\r\n onToolbarItemClick: this._createActionByOption(\"onToolbarItemClick\"),\r\n onErrorOccurred: this._createActionByOption(\"onErrorOccurred\")\r\n }\r\n };\r\n _proto.executeCommand = function(commandName) {\r\n return this._commandManager.executeCommand(commandName)\r\n };\r\n _proto._setCurrentDirectory = function(directoryInfo, checkActuality) {\r\n this._controller.setCurrentDirectory(directoryInfo, checkActuality)\r\n };\r\n _proto._getCurrentDirectory = function() {\r\n return this._controller.getCurrentDirectory()\r\n };\r\n _proto._onControllerInitialized = function(_ref8) {\r\n var controller = _ref8.controller;\r\n this._controller = this._controller || controller;\r\n var currentDirectory = controller.getCurrentDirectory();\r\n if (!currentDirectory.fileItem.isRoot()) {\r\n this._syncToCurrentDirectory()\r\n }\r\n };\r\n _proto._onDataLoading = function(_ref9) {\r\n var operation = _ref9.operation;\r\n var options = null;\r\n if (\"navigation\" === operation) {\r\n options = {\r\n focusedItemKey: this._itemKeyToFocus\r\n };\r\n this._itemKeyToFocus = void 0\r\n }\r\n this._itemView.refresh(options)\r\n };\r\n _proto._onSelectedDirectoryChanged = function() {\r\n var currentDirectory = this._getCurrentDirectory();\r\n this._syncToCurrentDirectory();\r\n this._actions.onCurrentDirectoryChanged({\r\n directory: currentDirectory.fileItem\r\n })\r\n };\r\n _proto._syncToCurrentDirectory = function() {\r\n var currentDirectory = this._getCurrentDirectory();\r\n var currentPath = this._controller.getCurrentPath();\r\n var currentPathKeys = currentDirectory.fileItem.pathKeys;\r\n if (this._filesTreeView) {\r\n this._filesTreeView.updateCurrentDirectory()\r\n }\r\n if (this._breadcrumbs) {\r\n this._breadcrumbs.setCurrentDirectory(currentDirectory)\r\n }\r\n var options = {\r\n currentPath: currentPath\r\n };\r\n if (!(0, _common.equalByValue)(this.option(\"currentPathKeys\"), currentPathKeys)) {\r\n options.currentPathKeys = currentPathKeys\r\n }\r\n this.option(options)\r\n };\r\n _proto.getDirectories = function(parentDirectoryInfo, skipNavigationOnError) {\r\n return this._controller.getDirectories(parentDirectoryInfo, skipNavigationOnError)\r\n };\r\n _proto._getSelectedItemInfos = function() {\r\n return this._itemView ? this._itemView.getSelectedItems() : []\r\n };\r\n _proto.refresh = function() {\r\n return this.executeCommand(\"refresh\")\r\n };\r\n _proto.getCurrentDirectory = function() {\r\n var directoryInfo = this._getCurrentDirectory();\r\n return directoryInfo && directoryInfo.fileItem || null\r\n };\r\n _proto.getSelectedItems = function() {\r\n return this._getSelectedItemInfos().map(function(itemInfo) {\r\n return itemInfo.fileItem\r\n })\r\n };\r\n _proto._onSelectedItemOpened = function(_ref10) {\r\n var fileItemInfo = _ref10.fileItemInfo;\r\n var fileItem = fileItemInfo.fileItem;\r\n if (!fileItem.isDirectory) {\r\n this._actions.onSelectedFileOpened({\r\n file: fileItem\r\n });\r\n return\r\n }\r\n if (fileItem.isParentFolder) {\r\n this._itemKeyToFocus = this._getCurrentDirectory().fileItem.key\r\n }\r\n var newCurrentDirectory = fileItem.isParentFolder ? this._getCurrentDirectory().parentDirectory : fileItemInfo;\r\n this._setCurrentDirectory(newCurrentDirectory);\r\n if (newCurrentDirectory) {\r\n this._filesTreeView.toggleDirectoryExpandedState(newCurrentDirectory.parentDirectory, true)\r\n }\r\n };\r\n return FileManager\r\n}(_ui.default);\r\n(0, _component_registrator.default)(\"dxFileManager\", FileManager);\r\nvar _default = FileManager;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.export = _export;\r\nObject.defineProperty(exports, \"fileSaver\", {\r\n enumerable: true,\r\n get: function() {\r\n return _file_saver.fileSaver\r\n }\r\n});\r\nexports.svg = exports.pdf = exports.image = exports.excel = void 0;\r\nvar _file_saver = require(\"./exporter/file_saver\");\r\nvar _excel_creator = require(\"./exporter/excel_creator\");\r\nvar _image_creator = require(\"./exporter/image_creator\");\r\nvar _svg_creator = require(\"./exporter/svg_creator\");\r\nvar _type = require(\"./core/utils/type\");\r\nvar _deferred = require(\"./core/utils/deferred\");\r\nvar _excel_format_converter = _interopRequireDefault(require(\"./exporter/excel_format_converter\"));\r\nvar _pdf_creator = require(\"./exporter/pdf_creator\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _export(data, options, getData) {\r\n if (!data) {\r\n return (new _deferred.Deferred).resolve()\r\n }\r\n var exportingAction = options.exportingAction;\r\n var exportedAction = options.exportedAction;\r\n var fileSavingAction = options.fileSavingAction;\r\n var eventArgs = {\r\n fileName: options.fileName,\r\n format: options.format,\r\n cancel: false\r\n };\r\n (0, _type.isFunction)(exportingAction) && exportingAction(eventArgs);\r\n if (!eventArgs.cancel) {\r\n return getData(data, options).then(function(blob) {\r\n (0, _type.isFunction)(exportedAction) && exportedAction();\r\n if ((0, _type.isFunction)(fileSavingAction)) {\r\n eventArgs.data = blob;\r\n fileSavingAction(eventArgs)\r\n }\r\n if (!eventArgs.cancel) {\r\n _file_saver.fileSaver.saveAs(eventArgs.fileName, options.format, blob, options.proxyUrl, options.forceProxy)\r\n }\r\n })\r\n }\r\n return (new _deferred.Deferred).resolve()\r\n}\r\nvar excel = {\r\n creator: _excel_creator.ExcelCreator,\r\n getData: _excel_creator.getData,\r\n formatConverter: _excel_format_converter.default\r\n};\r\nexports.excel = excel;\r\nvar image = {\r\n creator: _image_creator.imageCreator,\r\n getData: _image_creator.getData,\r\n testFormats: _image_creator.testFormats\r\n};\r\nexports.image = image;\r\nvar pdf = {\r\n getData: _pdf_creator.getData\r\n};\r\nexports.pdf = pdf;\r\nvar svg = {\r\n creator: _svg_creator.svgCreator,\r\n getData: _svg_creator.getData\r\n};\r\nexports.svg = svg;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","/**\r\n * DevExtreme (ui/tree_view/ui.tree_view.search.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.search_box_mixin\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiTree_view = _interopRequireDefault(require(\"./ui.tree_view.base\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CONTAINER_CLASS = \"\".concat(WIDGET_CLASS, \"-node-container\");\r\nvar TreeViewSearch = _uiTree_view.default.inherit(_ui.default).inherit({\r\n _addWidgetPrefix: function(className) {\r\n return \"\".concat(WIDGET_CLASS, \"-\").concat(className)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"searchValue\":\r\n if (this._showCheckboxes() && this._isRecursiveSelection()) {\r\n this._removeSelection()\r\n }\r\n this._initDataAdapter();\r\n this._updateSearch();\r\n this._repaintContainer();\r\n break;\r\n case \"searchExpr\":\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"searchMode\":\r\n this.option(\"expandNodesRecursive\") ? this._updateDataAdapter() : this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _updateDataAdapter: function() {\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", false);\r\n this._initDataAdapter();\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", true)\r\n },\r\n _getDataAdapterOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n searchValue: this.option(\"searchValue\"),\r\n searchMode: this.option(\"searchMode\") || \"contains\",\r\n searchExpr: this.option(\"searchExpr\")\r\n })\r\n },\r\n _updateSearch: function() {\r\n if (this._searchEditor) {\r\n var editorOptions = this._getSearchEditorOptions();\r\n this._searchEditor.option(editorOptions)\r\n }\r\n },\r\n _repaintContainer: function() {\r\n var $container = this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first();\r\n var rootNodes;\r\n if ($container.length) {\r\n $container.empty();\r\n rootNodes = this._dataAdapter.getRootNodes();\r\n this._renderEmptyMessage(rootNodes);\r\n this._renderItems($container, rootNodes);\r\n this._fireContentReadyAction()\r\n }\r\n },\r\n _itemContainer: function(isSearchMode) {\r\n if (this._scrollableContainer && isSearchMode) {\r\n return (0, _renderer.default)(this._scrollableContainer.content())\r\n }\r\n return this.callBase()\r\n },\r\n _addWidgetClass: function() {\r\n this.$element().addClass(this._widgetClass())\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._removeSearchBox()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxTreeView\", TreeViewSearch);\r\nvar _default = TreeViewSearch;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","var $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.es/ecma262/#sec-number.parseint\n// eslint-disable-next-line es/no-number-parseint -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, {\n parseInt: parseInt\n});\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.column_headers.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _uiGrid_core = require(\"./ui.grid_core.columns_view\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiGrid_core2 = require(\"./ui.grid_core.accessibility\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_CLASS = \"headers\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar ROW_CLASS_SELECTOR = \".dx-row\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar CONTEXT_MENU_SORT_ASC_ICON = \"context-menu-sort-asc\";\r\nvar CONTEXT_MENU_SORT_DESC_ICON = \"context-menu-sort-desc\";\r\nvar CONTEXT_MENU_SORT_NONE_ICON = \"context-menu-sort-none\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar VISIBILITY_HIDDEN_CLASS = \"dx-visibility-hidden\";\r\nvar TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX = \"dx-text-content-alignment-\";\r\nvar SORT_INDICATOR_CLASS = \"dx-sort-indicator\";\r\nvar SORT_INDEX_INDICATOR_CLASS = \"dx-sort-index-indicator\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar HEADER_FILTER_INDICATOR_CLASS = \"dx-header-filter-indicator\";\r\nvar MULTI_ROW_HEADER_CLASS = \"dx-header-multi-row\";\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n showColumnHeaders: true,\r\n cellHintEnabled: true\r\n }\r\n },\r\n views: {\r\n columnHeadersView: _uiGrid_core.ColumnsView.inherit(function() {\r\n var createCellContent = function(that, $cell, options) {\r\n var $cellContent = (0, _renderer.default)(\"
\").addClass(that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n that.setAria(\"role\", \"presentation\", $cellContent);\r\n addCssClassesToCellContent(that, $cell, options.column, $cellContent);\r\n var showColumnLines = that.option(\"showColumnLines\");\r\n var contentAlignment = that.getController(\"columns\").getHeaderContentAlignment(options.column.alignment);\r\n return $cellContent[showColumnLines || \"right\" === contentAlignment ? \"appendTo\" : \"prependTo\"]($cell)\r\n };\r\n\r\n function addCssClassesToCellContent(that, $cell, column, $cellContent) {\r\n var $indicatorElements = that._getIndicatorElements($cell, true);\r\n var $visibleIndicatorElements = that._getIndicatorElements($cell);\r\n var indicatorCount = $indicatorElements && $indicatorElements.length;\r\n var columnAlignment = that._getColumnAlignment(column.alignment);\r\n var sortIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sort\"));\r\n var sortIndexIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sortIndex\"));\r\n var $sortIndicator = $visibleIndicatorElements.filter(sortIndicatorClassName);\r\n var $sortIndexIndicator = $visibleIndicatorElements.children().filter(sortIndexIndicatorClassName);\r\n $cellContent = $cellContent || $cell.children(\".\" + that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n $cellContent.toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + columnAlignment, indicatorCount > 0).toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + (\"left\" === columnAlignment ? \"right\" : \"left\"), indicatorCount > 0 && \"center\" === column.alignment).toggleClass(SORT_INDICATOR_CLASS, !!$sortIndicator.length).toggleClass(SORT_INDEX_INDICATOR_CLASS, !!$sortIndexIndicator.length).toggleClass(HEADER_FILTER_INDICATOR_CLASS, !!$visibleIndicatorElements.filter(\".\" + that._getIndicatorClassName(\"headerFilter\")).length)\r\n }\r\n return {\r\n _createTable: function() {\r\n var $table = this.callBase.apply(this, arguments);\r\n _events_engine.default.on($table, \"mousedown selectstart\", this.createAction(function(e) {\r\n var event = e.event;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n }));\r\n return $table\r\n },\r\n _isLegacyKeyboardNavigation: function() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n },\r\n _getDefaultTemplate: function(column) {\r\n var that = this;\r\n return function($container, options) {\r\n var $content = column.command ? $container : createCellContent(that, $container, options);\r\n var caption = \"expand\" !== column.command && column.caption;\r\n if (caption) {\r\n $content.text(caption)\r\n } else {\r\n if (column.command) {\r\n $container.html(\" \")\r\n }\r\n }\r\n }\r\n },\r\n _getHeaderTemplate: function(column) {\r\n return column.headerCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n },\r\n _processTemplate: function(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var column = options.column;\r\n var renderingTemplate = that.callBase(template);\r\n if (\"header\" === options.rowType && renderingTemplate && column.headerCellTemplate && !column.command) {\r\n resultTemplate = {\r\n render: function(options) {\r\n var $content = createCellContent(that, options.container, options.model);\r\n renderingTemplate.render((0, _extend.extend)({}, options, {\r\n container: $content\r\n }))\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n _handleDataChanged: function(e) {\r\n if (\"refresh\" !== e.changeType) {\r\n return\r\n }\r\n if (this._isGroupingChanged || this._requireReady) {\r\n this._isGroupingChanged = false;\r\n this.render()\r\n }\r\n },\r\n _renderCell: function($row, options) {\r\n var $cell = this.callBase($row, options);\r\n if (\"header\" === options.row.rowType) {\r\n $cell.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n if (options.column && !options.column.type) {\r\n $cell.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n }\r\n }\r\n return $cell\r\n },\r\n _setCellAriaAttributes: function($cell, cellOptions) {\r\n this.callBase($cell, cellOptions);\r\n if (\"header\" === cellOptions.rowType) {\r\n this.setAria(\"role\", \"columnheader\", $cell);\r\n if (cellOptions.column && !cellOptions.column.command && !cellOptions.column.isBand) {\r\n $cell.attr(\"id\", cellOptions.column.headerId);\r\n this.setAria(\"label\", _message.default.format(\"dxDataGrid-ariaColumn\") + \" \" + cellOptions.column.caption, $cell)\r\n }\r\n }\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row).toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n if (\"header\" === row.rowType) {\r\n $row.addClass(HEADER_ROW_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n (0, _uiGrid_core2.registerKeyboardAction)(\"columnHeaders\", this, $row, \"td\", this._handleActionKeyDown.bind(this))\r\n }\r\n }\r\n return $row\r\n },\r\n _handleActionKeyDown: function(args) {\r\n var event = args.event;\r\n var $target = (0, _renderer.default)(event.target);\r\n this._lastActionElement = event.target;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n var headerFilterController = this.getController(\"headerFilter\");\r\n var $column = $target.closest(\"td\");\r\n var columnIndex = this.getColumnIndexByElement($column);\r\n if (columnIndex >= 0) {\r\n headerFilterController.showHeaderFilterMenu(columnIndex, false)\r\n }\r\n } else {\r\n var $row = $target.closest(ROW_CLASS_SELECTOR);\r\n this._processHeaderAction(event, $row)\r\n }\r\n event.preventDefault()\r\n },\r\n _renderCore: function() {\r\n var that = this;\r\n var $container = that.element();\r\n if (that._tableElement && !that._dataController.isLoaded() && !that._hasRowElements) {\r\n return\r\n }\r\n $container.addClass(that.addWidgetPrefix(HEADERS_CLASS)).toggleClass(that.addWidgetPrefix(NOWRAP_CLASS), !that.option(\"wordWrapEnabled\")).empty();\r\n that.setAria(\"role\", \"presentation\", $container);\r\n that._updateContent(that._renderTable());\r\n if (that.getRowCount() > 1) {\r\n $container.addClass(MULTI_ROW_HEADER_CLASS)\r\n }\r\n that.callBase.apply(that, arguments)\r\n },\r\n _renderRows: function() {\r\n var that = this;\r\n if (that._dataController.isLoaded() || that._hasRowElements) {\r\n that.callBase.apply(that, arguments);\r\n that._hasRowElements = true\r\n }\r\n },\r\n _getRowVisibleColumns: function(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n },\r\n _renderRow: function($table, options) {\r\n options.columns = this._getRowVisibleColumns(options.row.rowIndex);\r\n this.callBase($table, options)\r\n },\r\n _createCell: function(options) {\r\n var column = options.column;\r\n var $cellElement = this.callBase.apply(this, arguments);\r\n column.rowspan > 1 && \"header\" === options.rowType && $cellElement.attr(\"rowSpan\", column.rowspan);\r\n return $cellElement\r\n },\r\n _getRows: function() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n if (this.option(\"showColumnHeaders\")) {\r\n for (var i = 0; i < rowCount; i++) {\r\n result.push({\r\n rowType: \"header\",\r\n rowIndex: i\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _getCellTemplate: function(options) {\r\n if (\"header\" === options.rowType) {\r\n return this._getHeaderTemplate(options.column)\r\n }\r\n },\r\n _columnOptionChanged: function(e) {\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n if (changeTypes.grouping) {\r\n this._isGroupingChanged = true;\r\n return\r\n }\r\n this.callBase(e);\r\n if (optionNames.width || optionNames.visible) {\r\n this.resizeCompleted.fire()\r\n }\r\n },\r\n _isElementVisible: function(elementOptions) {\r\n return elementOptions && elementOptions.visible\r\n },\r\n _alignCaptionByCenter: function($cell) {\r\n var $indicatorsContainer = this._getIndicatorContainer($cell, true);\r\n if ($indicatorsContainer && $indicatorsContainer.length) {\r\n $indicatorsContainer.filter(\".\" + VISIBILITY_HIDDEN_CLASS).remove();\r\n $indicatorsContainer = this._getIndicatorContainer($cell);\r\n $indicatorsContainer.clone().addClass(VISIBILITY_HIDDEN_CLASS).css(\"float\", \"\").insertBefore($cell.children(\".\" + this.addWidgetPrefix(CELL_CONTENT_CLASS)))\r\n }\r\n },\r\n _updateCell: function($cell, options) {\r\n if (\"header\" === options.rowType && \"center\" === options.column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n var $indicatorElement = this.callBase.apply(this, arguments);\r\n if (\"center\" === column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n addCssClassesToCellContent(this, $cell, column);\r\n return $indicatorElement\r\n },\r\n _getIndicatorContainer: function($cell, returnAll) {\r\n var $indicatorsContainer = this.callBase($cell);\r\n return returnAll ? $indicatorsContainer : $indicatorsContainer.filter(\":not(.\" + VISIBILITY_HIDDEN_CLASS + \")\")\r\n },\r\n _isSortableElement: function() {\r\n return true\r\n },\r\n getHeadersRowHeight: function() {\r\n var $tableElement = this.getTableElement();\r\n var $headerRows = $tableElement && $tableElement.find(\".\" + HEADER_ROW_CLASS);\r\n return $headerRows && $headerRows.toArray().reduce(function(sum, headerRow) {\r\n return sum + (0, _renderer.default)(headerRow).height()\r\n }, 0) || 0\r\n },\r\n getHeaderElement: function(index) {\r\n var columnElements = this.getColumnElements();\r\n return columnElements && columnElements.eq(index)\r\n },\r\n getColumnElements: function(index, bandColumnIndex) {\r\n var that = this;\r\n var $cellElement;\r\n var columnsController = that._columnsController;\r\n var rowCount = that.getRowCount();\r\n if (that.option(\"showColumnHeaders\")) {\r\n if (rowCount > 1 && (!(0, _type.isDefined)(index) || (0, _type.isDefined)(bandColumnIndex))) {\r\n var result = [];\r\n var visibleColumns = (0, _type.isDefined)(bandColumnIndex) ? columnsController.getChildrenByBandColumn(bandColumnIndex, true) : columnsController.getVisibleColumns();\r\n (0, _iterator.each)(visibleColumns, function(_, column) {\r\n var rowIndex = (0, _type.isDefined)(index) ? index : columnsController.getRowIndex(column.index);\r\n $cellElement = that._getCellElement(rowIndex, columnsController.getVisibleIndex(column.index, rowIndex));\r\n $cellElement && result.push($cellElement.get(0))\r\n });\r\n return (0, _renderer.default)(result)\r\n } else {\r\n if (!index || index < rowCount) {\r\n return that.getCellElements(index || 0)\r\n }\r\n }\r\n }\r\n },\r\n getColumnIndexByElement: function($cell) {\r\n var cellIndex = this.getCellIndex($cell);\r\n var $row = $cell.closest(\".dx-row\");\r\n var rowIndex = $row[0].rowIndex;\r\n var column = this.getColumns(rowIndex)[cellIndex];\r\n return column ? column.index : -1\r\n },\r\n getVisibleColumnIndex: function(columnIndex, rowIndex) {\r\n var column = this.getColumns()[columnIndex];\r\n return column ? this._columnsController.getVisibleIndex(column.index, rowIndex) : -1\r\n },\r\n getColumnWidths: function() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n return this._getWidths($columnElements)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n allowDragging: function(column, sourceLocation, draggingPanels) {\r\n var i;\r\n var draggableColumnCount = 0;\r\n var rowIndex = column && this._columnsController.getRowIndex(column.index);\r\n var columns = this.getColumns(0 === rowIndex ? 0 : null);\r\n var canHideColumn = (null === column || void 0 === column ? void 0 : column.allowHiding) && columns.length > 1;\r\n var allowDrag = function(column) {\r\n return column.allowReordering || column.allowGrouping || column.allowHiding\r\n };\r\n for (i = 0; i < columns.length; i++) {\r\n if (allowDrag(columns[i])) {\r\n draggableColumnCount++\r\n }\r\n }\r\n if (draggableColumnCount <= 1 && !canHideColumn) {\r\n return false\r\n } else {\r\n if (!draggingPanels) {\r\n return (this.option(\"allowColumnReordering\") || this._columnsController.isColumnOptionUsed(\"allowReordering\")) && column && column.allowReordering\r\n }\r\n }\r\n for (i = 0; i < draggingPanels.length; i++) {\r\n var draggingPanel = draggingPanels[i];\r\n if (draggingPanel && draggingPanel.allowDragging(column, sourceLocation)) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n getBoundingRect: function() {\r\n var that = this;\r\n var $columnElements = that.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n var offset = that.getTableElement().offset();\r\n return {\r\n top: offset.top\r\n }\r\n }\r\n return null\r\n },\r\n getName: function() {\r\n return \"headers\"\r\n },\r\n getColumnCount: function() {\r\n var $columnElements = this.getColumnElements();\r\n return $columnElements ? $columnElements.length : 0\r\n },\r\n isVisible: function() {\r\n return this.option(\"showColumnHeaders\")\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n switch (args.name) {\r\n case \"showColumnHeaders\":\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n that._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n getContextMenuItems: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n if (options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var sortingOptions = that.option(\"sorting\");\r\n if (sortingOptions && \"none\" !== sortingOptions.mode && column && column.allowSorting) {\r\n var onItemClick = function(params) {\r\n setTimeout(function() {\r\n that._columnsController.changeSortOrder(column.index, params.itemData.value)\r\n })\r\n };\r\n return [{\r\n text: sortingOptions.ascendingText,\r\n value: \"asc\",\r\n disabled: \"asc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_ASC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.descendingText,\r\n value: \"desc\",\r\n disabled: \"desc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_DESC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.clearText,\r\n value: \"none\",\r\n disabled: !column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_NONE_ICON,\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n },\r\n getRowCount: function() {\r\n return this._columnsController && this._columnsController.getRowCount()\r\n },\r\n setRowsOpacity: function(columnIndex, value, rowIndex) {\r\n var that = this;\r\n var i;\r\n var columnElements;\r\n var rowCount = that.getRowCount();\r\n var columns = that._columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n var setColumnOpacity = function(index, column) {\r\n if (column.ownerBand === columnID) {\r\n columnElements.eq(index).css({\r\n opacity: value\r\n });\r\n if (column.isBand) {\r\n that.setRowsOpacity(column.index, value, i + 1)\r\n }\r\n }\r\n };\r\n if ((0, _type.isDefined)(columnID)) {\r\n rowIndex = rowIndex || 0;\r\n for (i = rowIndex; i < rowCount; i++) {\r\n columnElements = that.getCellElements(i);\r\n (0, _iterator.each)(that.getColumns(i), setColumnOpacity)\r\n }\r\n }\r\n }\r\n }\r\n }())\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/filter_builder/filter_builder.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _tree_view = _interopRequireDefault(require(\"../tree_view\"));\r\nvar _popup = _interopRequireDefault(require(\"../popup\"));\r\nvar _utils = require(\"../overlay/utils\");\r\nvar _ui2 = _interopRequireDefault(require(\"../shared/ui.editor_factory_mixin\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _utils2 = require(\"./utils\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar FILTER_BUILDER_CLASS = \"dx-filterbuilder\";\r\nvar FILTER_BUILDER_GROUP_CLASS = FILTER_BUILDER_CLASS + \"-group\";\r\nvar FILTER_BUILDER_GROUP_ITEM_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-item\";\r\nvar FILTER_BUILDER_GROUP_CONTENT_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-content\";\r\nvar FILTER_BUILDER_GROUP_OPERATIONS_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-operations\";\r\nvar FILTER_BUILDER_GROUP_OPERATION_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-operation\";\r\nvar FILTER_BUILDER_ACTION_CLASS = FILTER_BUILDER_CLASS + \"-action\";\r\nvar FILTER_BUILDER_IMAGE_CLASS = FILTER_BUILDER_ACTION_CLASS + \"-icon\";\r\nvar FILTER_BUILDER_IMAGE_ADD_CLASS = \"dx-icon-plus\";\r\nvar FILTER_BUILDER_IMAGE_REMOVE_CLASS = \"dx-icon-remove\";\r\nvar FILTER_BUILDER_ITEM_TEXT_CLASS = FILTER_BUILDER_CLASS + \"-text\";\r\nvar FILTER_BUILDER_ITEM_FIELD_CLASS = FILTER_BUILDER_CLASS + \"-item-field\";\r\nvar FILTER_BUILDER_ITEM_OPERATION_CLASS = FILTER_BUILDER_CLASS + \"-item-operation\";\r\nvar FILTER_BUILDER_ITEM_VALUE_CLASS = FILTER_BUILDER_CLASS + \"-item-value\";\r\nvar FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS = FILTER_BUILDER_CLASS + \"-item-value-text\";\r\nvar FILTER_BUILDER_OVERLAY_CLASS = FILTER_BUILDER_CLASS + \"-overlay\";\r\nvar FILTER_BUILDER_FILTER_OPERATIONS_CLASS = FILTER_BUILDER_CLASS + \"-operations\";\r\nvar FILTER_BUILDER_FIELDS_CLASS = FILTER_BUILDER_CLASS + \"-fields\";\r\nvar FILTER_BUILDER_ADD_CONDITION_CLASS = FILTER_BUILDER_CLASS + \"-add-condition\";\r\nvar ACTIVE_CLASS = \"dx-state-active\";\r\nvar FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS = FILTER_BUILDER_CLASS + \"-menu-custom-operation\";\r\nvar SOURCE = \"filterBuilder\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar TAB_KEY = \"tab\";\r\nvar ENTER_KEY = \"enter\";\r\nvar ESCAPE_KEY = \"escape\";\r\nvar ACTIONS = [{\r\n name: \"onEditorPreparing\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n }\r\n}, {\r\n name: \"onEditorPrepared\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n }\r\n}, {\r\n name: \"onValueChanged\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }\r\n}];\r\nvar OPERATORS = {\r\n and: \"and\",\r\n or: \"or\",\r\n notAnd: \"!and\",\r\n notOr: \"!or\"\r\n};\r\nvar EditorFactory = _class.default.inherit(_ui2.default);\r\nvar FilterBuilder = _ui.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n onEditorPreparing: null,\r\n onEditorPrepared: null,\r\n onValueChanged: null,\r\n fields: [],\r\n defaultGroupOperation: \"and\",\r\n groupOperations: [\"and\", \"or\", \"notAnd\", \"notOr\"],\r\n maxGroupLevel: void 0,\r\n value: null,\r\n allowHierarchicalFields: false,\r\n groupOperationDescriptions: {\r\n and: _message.default.format(\"dxFilterBuilder-and\"),\r\n or: _message.default.format(\"dxFilterBuilder-or\"),\r\n notAnd: _message.default.format(\"dxFilterBuilder-notAnd\"),\r\n notOr: _message.default.format(\"dxFilterBuilder-notOr\")\r\n },\r\n customOperations: [],\r\n closePopupOnTargetScroll: true,\r\n filterOperationDescriptions: {\r\n between: _message.default.format(\"dxFilterBuilder-filterOperationBetween\"),\r\n equal: _message.default.format(\"dxFilterBuilder-filterOperationEquals\"),\r\n notEqual: _message.default.format(\"dxFilterBuilder-filterOperationNotEquals\"),\r\n lessThan: _message.default.format(\"dxFilterBuilder-filterOperationLess\"),\r\n lessThanOrEqual: _message.default.format(\"dxFilterBuilder-filterOperationLessOrEquals\"),\r\n greaterThan: _message.default.format(\"dxFilterBuilder-filterOperationGreater\"),\r\n greaterThanOrEqual: _message.default.format(\"dxFilterBuilder-filterOperationGreaterOrEquals\"),\r\n startsWith: _message.default.format(\"dxFilterBuilder-filterOperationStartsWith\"),\r\n contains: _message.default.format(\"dxFilterBuilder-filterOperationContains\"),\r\n notContains: _message.default.format(\"dxFilterBuilder-filterOperationNotContains\"),\r\n endsWith: _message.default.format(\"dxFilterBuilder-filterOperationEndsWith\"),\r\n isBlank: _message.default.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: _message.default.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n }\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"closePopupOnTargetScroll\":\r\n break;\r\n case \"onEditorPreparing\":\r\n case \"onEditorPrepared\":\r\n case \"onValueChanged\":\r\n this._initActions();\r\n break;\r\n case \"customOperations\":\r\n this._initCustomOperations();\r\n this._invalidate();\r\n break;\r\n case \"fields\":\r\n case \"defaultGroupOperation\":\r\n case \"maxGroupLevel\":\r\n case \"groupOperations\":\r\n case \"allowHierarchicalFields\":\r\n case \"groupOperationDescriptions\":\r\n case \"filterOperationDescriptions\":\r\n this._invalidate();\r\n break;\r\n case \"value\":\r\n if (args.value !== args.previousValue) {\r\n var disableInvalidateForValue = this._disableInvalidateForValue;\r\n if (!disableInvalidateForValue) {\r\n this._initModel();\r\n this._invalidate()\r\n }\r\n this._disableInvalidateForValue = false;\r\n this.executeAction(\"onValueChanged\", {\r\n value: args.value,\r\n previousValue: args.previousValue\r\n });\r\n this._disableInvalidateForValue = disableInvalidateForValue\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getFilterExpression: function() {\r\n var fields = this._getNormalizedFields();\r\n var value = (0, _extend.extend)(true, [], this._model);\r\n return (0, _utils2.getFilterExpression)((0, _utils2.getNormalizedFilter)(value), fields, this._customOperations, SOURCE)\r\n },\r\n _getNormalizedFields: function() {\r\n return (0, _utils2.getNormalizedFields)(this.option(\"fields\"))\r\n },\r\n _updateFilter: function() {\r\n this._disableInvalidateForValue = true;\r\n var value = (0, _extend.extend)(true, [], this._model);\r\n var normalizedValue = (0, _utils2.getNormalizedFilter)(value);\r\n var oldValue = (0, _utils2.getNormalizedFilter)(this._getModel(this.option(\"value\")));\r\n if (JSON.stringify(oldValue) !== JSON.stringify(normalizedValue)) {\r\n this.option(\"value\", normalizedValue)\r\n }\r\n this._disableInvalidateForValue = false;\r\n this._fireContentReadyAction()\r\n },\r\n _init: function() {\r\n this._initCustomOperations();\r\n this._initModel();\r\n this._initEditorFactory();\r\n this._initActions();\r\n this.callBase()\r\n },\r\n _initEditorFactory: function() {\r\n this._editorFactory = new EditorFactory\r\n },\r\n _initCustomOperations: function() {\r\n this._customOperations = (0, _utils2.getMergedOperations)(this.option(\"customOperations\"), this.option(\"filterOperationDescriptions.between\"), this)\r\n },\r\n _getModel: function(value) {\r\n return (0, _utils2.convertToInnerStructure)(value, this._customOperations)\r\n },\r\n _initModel: function() {\r\n this._model = this._getModel(this.option(\"value\"))\r\n },\r\n _initActions: function() {\r\n var that = this;\r\n that._actions = {};\r\n ACTIONS.forEach(function(action) {\r\n var actionConfig = (0, _extend.extend)({}, action.config);\r\n that._actions[action.name] = that._createActionByOption(action.name, actionConfig)\r\n })\r\n },\r\n executeAction: function(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(FILTER_BUILDER_CLASS);\r\n this.callBase();\r\n this._createGroupElementByCriteria(this._model).appendTo(this.$element())\r\n },\r\n _createConditionElement: function(condition, parent) {\r\n return (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_GROUP_CLASS).append(this._createConditionItem(condition, parent))\r\n },\r\n _createGroupElementByCriteria: function(criteria, parent) {\r\n var groupLevel = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;\r\n var $group = this._createGroupElement(criteria, parent, groupLevel);\r\n var $groupContent = $group.find(\".\" + FILTER_BUILDER_GROUP_CONTENT_CLASS);\r\n var groupCriteria = (0, _utils2.getGroupCriteria)(criteria);\r\n for (var i = 0; i < groupCriteria.length; i++) {\r\n var innerCriteria = groupCriteria[i];\r\n if ((0, _utils2.isGroup)(innerCriteria)) {\r\n this._createGroupElementByCriteria(innerCriteria, criteria, groupLevel + 1).appendTo($groupContent)\r\n } else {\r\n if ((0, _utils2.isCondition)(innerCriteria)) {\r\n this._createConditionElement(innerCriteria, criteria).appendTo($groupContent)\r\n }\r\n }\r\n }\r\n return $group\r\n },\r\n _createGroupElement: function(criteria, parent, groupLevel) {\r\n var _this = this;\r\n var $groupItem = (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_GROUP_ITEM_CLASS);\r\n var $groupContent = (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_GROUP_CONTENT_CLASS);\r\n var $group = (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_GROUP_CLASS).append($groupItem).append($groupContent);\r\n if (null != parent) {\r\n this._createRemoveButton(function() {\r\n (0, _utils2.removeItem)(parent, criteria);\r\n $group.remove();\r\n _this._updateFilter()\r\n }).appendTo($groupItem)\r\n }\r\n this._createGroupOperationButton(criteria).appendTo($groupItem);\r\n this._createAddButton(function() {\r\n var newGroup = (0, _utils2.createEmptyGroup)(_this.option(\"defaultGroupOperation\"));\r\n (0, _utils2.addItem)(newGroup, criteria);\r\n _this._createGroupElement(newGroup, criteria, groupLevel + 1).appendTo($groupContent);\r\n _this._updateFilter()\r\n }, function() {\r\n var field = _this.option(\"fields\")[0];\r\n var newCondition = (0, _utils2.createCondition)(field, _this._customOperations);\r\n (0, _utils2.addItem)(newCondition, criteria);\r\n _this._createConditionElement(newCondition, criteria).appendTo($groupContent);\r\n _this._updateFilter()\r\n }, groupLevel).appendTo($groupItem);\r\n return $group\r\n },\r\n _createButton: function(caption) {\r\n return (0, _renderer.default)(\"
\").text(caption)\r\n },\r\n _createGroupOperationButton: function(criteria) {\r\n var _this2 = this;\r\n var groupOperations = this._getGroupOperations(criteria);\r\n var groupMenuItem = (0, _utils2.getGroupMenuItem)(criteria, groupOperations);\r\n var caption = groupMenuItem.text;\r\n var $operationButton = groupOperations && groupOperations.length < 2 ? this._createButton(caption).addClass(DISABLED_STATE_CLASS) : this._createButtonWithMenu({\r\n caption: caption,\r\n menu: {\r\n items: groupOperations,\r\n displayExpr: \"text\",\r\n keyExpr: \"value\",\r\n onItemClick: function(e) {\r\n if (groupMenuItem !== e.itemData) {\r\n (0, _utils2.setGroupValue)(criteria, e.itemData.value);\r\n $operationButton.html(e.itemData.text);\r\n groupMenuItem = e.itemData;\r\n _this2._updateFilter()\r\n }\r\n },\r\n onContentReady: function(e) {\r\n e.component.selectItem(groupMenuItem)\r\n },\r\n cssClass: FILTER_BUILDER_GROUP_OPERATIONS_CLASS\r\n }\r\n });\r\n return $operationButton.addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_GROUP_OPERATION_CLASS).attr(\"tabindex\", 0)\r\n },\r\n _createButtonWithMenu: function(options) {\r\n var that = this;\r\n var removeMenu = function() {\r\n that.$element().find(\".\" + ACTIVE_CLASS).removeClass(ACTIVE_CLASS);\r\n that.$element().find(\".dx-overlay .dx-treeview\").remove();\r\n that.$element().find(\".dx-overlay\").remove()\r\n };\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var menuOnItemClickWrapper = function(handler) {\r\n return function(e) {\r\n handler(e);\r\n if (\"dxclick\" === e.event.type) {\r\n removeMenu()\r\n }\r\n }\r\n };\r\n var position = rtlEnabled ? \"right\" : \"left\";\r\n var $button = this._createButton(options.caption);\r\n (0, _extend.extend)(options.menu, {\r\n focusStateEnabled: true,\r\n selectionMode: \"single\",\r\n onItemClick: menuOnItemClickWrapper(options.menu.onItemClick),\r\n onHiding: function(e) {\r\n $button.removeClass(ACTIVE_CLASS)\r\n },\r\n position: {\r\n my: position + \" top\",\r\n at: position + \" bottom\",\r\n offset: \"0 1\",\r\n of: $button,\r\n collision: \"flip\"\r\n },\r\n animation: null,\r\n onHidden: function() {\r\n removeMenu()\r\n },\r\n cssClass: FILTER_BUILDER_OVERLAY_CLASS + \" \" + options.menu.cssClass,\r\n rtlEnabled: rtlEnabled\r\n });\r\n options.popup = {\r\n onShown: function(info) {\r\n var treeViewElement = (0, _renderer.default)(info.component.content()).find(\".dx-treeview\");\r\n var treeView = treeViewElement.dxTreeView(\"instance\");\r\n _events_engine.default.on(treeViewElement, \"keyup keydown\", function(e) {\r\n var keyName = (0, _index.normalizeKeyName)(e);\r\n if (\"keydown\" === e.type && keyName === TAB_KEY || \"keyup\" === e.type && (keyName === ESCAPE_KEY || keyName === ENTER_KEY)) {\r\n info.component.hide();\r\n _events_engine.default.trigger(options.menu.position.of, \"focus\")\r\n }\r\n });\r\n treeView.focus();\r\n treeView.option(\"focusedElement\", null)\r\n }\r\n };\r\n this._subscribeOnClickAndEnterKey($button, function() {\r\n removeMenu();\r\n that._createPopupWithTreeView(options, that.$element());\r\n $button.addClass(ACTIVE_CLASS)\r\n });\r\n return $button\r\n },\r\n _hasValueButton: function(condition) {\r\n var customOperation = (0, _utils2.getCustomOperation)(this._customOperations, condition[1]);\r\n return customOperation ? false !== customOperation.hasValue : null !== condition[2]\r\n },\r\n _createOperationButtonWithMenu: function(condition, field) {\r\n var _this3 = this;\r\n var that = this;\r\n var availableOperations = (0, _utils2.getAvailableOperations)(field, this.option(\"filterOperationDescriptions\"), this._customOperations);\r\n var currentOperation = (0, _utils2.getOperationFromAvailable)((0, _utils2.getOperationValue)(condition), availableOperations);\r\n var $operationButton = this._createButtonWithMenu({\r\n caption: currentOperation.text,\r\n menu: {\r\n items: availableOperations,\r\n displayExpr: \"text\",\r\n onItemRendered: function(e) {\r\n e.itemData.isCustom && (0, _renderer.default)(e.itemElement).addClass(FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS)\r\n },\r\n onContentReady: function(e) {\r\n e.component.selectItem(currentOperation)\r\n },\r\n onItemClick: function(e) {\r\n if (currentOperation !== e.itemData) {\r\n currentOperation = e.itemData;\r\n (0, _utils2.updateConditionByOperation)(condition, currentOperation.value, that._customOperations);\r\n var $valueButton = $operationButton.siblings().filter(\".\" + FILTER_BUILDER_ITEM_VALUE_CLASS);\r\n if (that._hasValueButton(condition)) {\r\n if (0 !== $valueButton.length) {\r\n $valueButton.remove()\r\n }\r\n that._createValueButton(condition, field).appendTo($operationButton.parent())\r\n } else {\r\n $valueButton.remove()\r\n }\r\n $operationButton.html(currentOperation.text);\r\n _this3._updateFilter()\r\n }\r\n },\r\n cssClass: FILTER_BUILDER_FILTER_OPERATIONS_CLASS\r\n }\r\n }).addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_OPERATION_CLASS).attr(\"tabindex\", 0);\r\n return $operationButton\r\n },\r\n _createOperationAndValueButtons: function(condition, field, $item) {\r\n this._createOperationButtonWithMenu(condition, field).appendTo($item);\r\n if (this._hasValueButton(condition)) {\r\n this._createValueButton(condition, field).appendTo($item)\r\n }\r\n },\r\n _createFieldButtonWithMenu: function(fields, condition, field) {\r\n var _this4 = this;\r\n var that = this;\r\n var allowHierarchicalFields = this.option(\"allowHierarchicalFields\");\r\n var items = (0, _utils2.getItems)(fields, allowHierarchicalFields);\r\n var item = (0, _utils2.getField)(field.name || field.dataField, items);\r\n var getFullCaption = function(item, items) {\r\n return allowHierarchicalFields ? (0, _utils2.getCaptionWithParents)(item, items) : item.caption\r\n };\r\n var $fieldButton = this._createButtonWithMenu({\r\n caption: getFullCaption(item, items),\r\n menu: {\r\n items: items,\r\n dataStructure: \"plain\",\r\n keyExpr: \"id\",\r\n parentId: \"parentId\",\r\n displayExpr: \"caption\",\r\n onItemClick: function(e) {\r\n if (item !== e.itemData) {\r\n item = e.itemData;\r\n condition[0] = item.name || item.dataField;\r\n condition[2] = \"object\" === item.dataType ? null : \"\";\r\n (0, _utils2.updateConditionByOperation)(condition, (0, _utils2.getDefaultOperation)(item), that._customOperations);\r\n $fieldButton.siblings().filter(\".\" + FILTER_BUILDER_ITEM_TEXT_CLASS).remove();\r\n that._createOperationAndValueButtons(condition, item, $fieldButton.parent());\r\n var caption = getFullCaption(item, e.component.option(\"items\"));\r\n $fieldButton.html(caption);\r\n _this4._updateFilter()\r\n }\r\n },\r\n onContentReady: function(e) {\r\n e.component.selectItem(item)\r\n },\r\n cssClass: FILTER_BUILDER_FIELDS_CLASS\r\n }\r\n }).addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_FIELD_CLASS).attr(\"tabindex\", 0);\r\n return $fieldButton\r\n },\r\n _createConditionItem: function(condition, parent) {\r\n var _this5 = this;\r\n var $item = (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_GROUP_ITEM_CLASS);\r\n var fields = this._getNormalizedFields();\r\n var field = (0, _utils2.getField)(condition[0], fields);\r\n this._createRemoveButton(function() {\r\n (0, _utils2.removeItem)(parent, condition);\r\n var isSingleChild = 1 === $item.parent().children().length;\r\n if (isSingleChild) {\r\n $item.parent().remove()\r\n } else {\r\n $item.remove()\r\n }\r\n _this5._updateFilter()\r\n }).appendTo($item);\r\n this._createFieldButtonWithMenu(fields, condition, field).appendTo($item);\r\n this._createOperationAndValueButtons(condition, field, $item);\r\n return $item\r\n },\r\n _getGroupOperations: function(criteria) {\r\n var groupOperations = this.option(\"groupOperations\");\r\n var groupOperationDescriptions = this.option(\"groupOperationDescriptions\");\r\n if (!groupOperations || !groupOperations.length) {\r\n groupOperations = [(0, _utils2.getGroupValue)(criteria).replace(\"!\", \"not\")]\r\n }\r\n return groupOperations.map(function(operation) {\r\n return {\r\n text: groupOperationDescriptions[operation],\r\n value: OPERATORS[operation]\r\n }\r\n })\r\n },\r\n _createRemoveButton: function(handler) {\r\n var $removeButton = (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_IMAGE_CLASS).addClass(FILTER_BUILDER_IMAGE_REMOVE_CLASS).addClass(FILTER_BUILDER_ACTION_CLASS).attr(\"tabindex\", 0);\r\n this._subscribeOnClickAndEnterKey($removeButton, handler);\r\n return $removeButton\r\n },\r\n _createAddButton: function(addGroupHandler, addConditionHandler, groupLevel) {\r\n var $button;\r\n var maxGroupLevel = this.option(\"maxGroupLevel\");\r\n if ((0, _type.isDefined)(maxGroupLevel) && groupLevel >= maxGroupLevel) {\r\n $button = this._createButton();\r\n this._subscribeOnClickAndEnterKey($button, addConditionHandler)\r\n } else {\r\n $button = this._createButtonWithMenu({\r\n menu: {\r\n items: [{\r\n caption: _message.default.format(\"dxFilterBuilder-addCondition\"),\r\n click: addConditionHandler\r\n }, {\r\n caption: _message.default.format(\"dxFilterBuilder-addGroup\"),\r\n click: addGroupHandler\r\n }],\r\n displayExpr: \"caption\",\r\n onItemClick: function(e) {\r\n e.itemData.click()\r\n },\r\n cssClass: FILTER_BUILDER_ADD_CONDITION_CLASS\r\n }\r\n })\r\n }\r\n return $button.addClass(FILTER_BUILDER_IMAGE_CLASS).addClass(FILTER_BUILDER_IMAGE_ADD_CLASS).addClass(FILTER_BUILDER_ACTION_CLASS).attr(\"tabindex\", 0)\r\n },\r\n _createValueText: function(item, field, $container) {\r\n var that = this;\r\n var $text = (0, _renderer.default)(\"
\").html(\" \").addClass(FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS).attr(\"tabindex\", 0).appendTo($container);\r\n var value = item[2];\r\n var customOperation = (0, _utils2.getCustomOperation)(that._customOperations, item[1]);\r\n if (!customOperation && field.lookup) {\r\n (0, _utils2.getCurrentLookupValueText)(field, value, function(result) {\r\n (0, _utils2.renderValueText)($text, result)\r\n })\r\n } else {\r\n (0, _deferred.when)((0, _utils2.getCurrentValueText)(field, value, customOperation)).done(function(result) {\r\n (0, _utils2.renderValueText)($text, result, customOperation)\r\n })\r\n }\r\n that._subscribeOnClickAndEnterKey($text, function(e) {\r\n if (\"keyup\" === e.type) {\r\n e.stopPropagation()\r\n }\r\n that._createValueEditorWithEvents(item, field, $container)\r\n });\r\n return $text\r\n },\r\n _updateConditionValue: function(item, value, callback) {\r\n var areValuesDifferent = item[2] !== value;\r\n if (areValuesDifferent) {\r\n item[2] = value\r\n }\r\n callback();\r\n this._updateFilter()\r\n },\r\n _addDocumentKeyUp: function($editor, handler) {\r\n var isComposing = false;\r\n var hasCompositionJustEnded = false;\r\n var document = _dom_adapter.default.getDocument();\r\n var documentKeyUpHandler = function(e) {\r\n if (isComposing || hasCompositionJustEnded) {\r\n hasCompositionJustEnded = false;\r\n return\r\n }\r\n handler(e)\r\n };\r\n _events_engine.default.on(document, \"keyup\", documentKeyUpHandler);\r\n var input = $editor.find(\"input\");\r\n _events_engine.default.on(input, \"compositionstart\", function() {\r\n isComposing = true\r\n });\r\n _events_engine.default.on(input, \"compositionend\", function() {\r\n isComposing = false;\r\n hasCompositionJustEnded = true\r\n });\r\n _events_engine.default.on(input, \"keydown\", function(event) {\r\n if (229 !== event.which) {\r\n hasCompositionJustEnded = false\r\n }\r\n });\r\n this._documentKeyUpHandler = documentKeyUpHandler\r\n },\r\n _addDocumentClick: function($editor, closeEditorFunc) {\r\n var _this6 = this;\r\n var document = _dom_adapter.default.getDocument();\r\n var documentClickHandler = function(e) {\r\n if (!_this6._isFocusOnEditorParts($editor, e.target)) {\r\n _events_engine.default.trigger($editor.find(\"input\"), \"change\");\r\n closeEditorFunc()\r\n }\r\n };\r\n _events_engine.default.on(document, \"dxpointerdown\", documentClickHandler);\r\n this._documentClickHandler = documentClickHandler\r\n },\r\n _isFocusOnEditorParts: function($editor, target) {\r\n var activeElement = target || _dom_adapter.default.getActiveElement();\r\n return (0, _renderer.default)(activeElement).closest($editor.children()).length || (0, _renderer.default)(activeElement).closest(\".dx-dropdowneditor-overlay\").length\r\n },\r\n _removeEvents: function() {\r\n var document = _dom_adapter.default.getDocument();\r\n (0, _type.isDefined)(this._documentKeyUpHandler) && _events_engine.default.off(document, \"keyup\", this._documentKeyUpHandler);\r\n (0, _type.isDefined)(this._documentClickHandler) && _events_engine.default.off(document, \"dxpointerdown\", this._documentClickHandler)\r\n },\r\n _dispose: function() {\r\n this._removeEvents();\r\n this.callBase()\r\n },\r\n _createValueEditorWithEvents: function(item, field, $container) {\r\n var _this7 = this;\r\n var value = item[2];\r\n var createValueText = function() {\r\n $container.empty();\r\n _this7._removeEvents();\r\n return _this7._createValueText(item, field, $container)\r\n };\r\n var closeEditor = function() {\r\n _this7._updateConditionValue(item, value, function() {\r\n createValueText()\r\n })\r\n };\r\n var options = {\r\n value: \"\" === value ? null : value,\r\n filterOperation: (0, _utils2.getOperationValue)(item),\r\n setValue: function(data) {\r\n value = null === data ? \"\" : data\r\n },\r\n closeEditor: closeEditor,\r\n text: $container.text()\r\n };\r\n $container.empty();\r\n var $editor = this._createValueEditor($container, field, options);\r\n _events_engine.default.trigger($editor.find(\"input\").not(\":hidden\").eq(0), \"focus\");\r\n this._removeEvents();\r\n this._addDocumentClick($editor, closeEditor);\r\n this._addDocumentKeyUp($editor, function(e) {\r\n var keyName = (0, _index.normalizeKeyName)(e);\r\n if (keyName === TAB_KEY) {\r\n if (_this7._isFocusOnEditorParts($editor)) {\r\n return\r\n }\r\n _this7._updateConditionValue(item, value, function() {\r\n createValueText();\r\n if (e.shiftKey) {\r\n _events_engine.default.trigger($container.prev(), \"focus\")\r\n }\r\n })\r\n }\r\n if (keyName === ESCAPE_KEY) {\r\n _events_engine.default.trigger(createValueText(), \"focus\")\r\n }\r\n if (keyName === ENTER_KEY) {\r\n _this7._updateConditionValue(item, value, function() {\r\n _events_engine.default.trigger(createValueText(), \"focus\")\r\n })\r\n }\r\n });\r\n this._fireContentReadyAction()\r\n },\r\n _createValueButton: function(item, field) {\r\n var $valueButton = (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_VALUE_CLASS);\r\n this._createValueText(item, field, $valueButton);\r\n return $valueButton\r\n },\r\n _createValueEditor: function($container, field, options) {\r\n var $editor = (0, _renderer.default)(\"
\").attr(\"tabindex\", 0).appendTo($container);\r\n var customOperation = (0, _utils2.getCustomOperation)(this._customOperations, options.filterOperation);\r\n var editorTemplate = customOperation && customOperation.editorTemplate ? customOperation.editorTemplate : field.editorTemplate;\r\n if (editorTemplate) {\r\n var template = this._getTemplate(editorTemplate);\r\n template.render({\r\n model: (0, _extend.extend)({\r\n field: field\r\n }, options),\r\n container: $editor\r\n })\r\n } else {\r\n this._editorFactory.createEditor.call(this, $editor, (0, _extend.extend)({}, field, options, {\r\n parentType: SOURCE\r\n }))\r\n }\r\n return $editor\r\n },\r\n _createPopupWithTreeView: function(options, $container) {\r\n var that = this;\r\n var $popup = (0, _renderer.default)(\"
\").addClass(options.menu.cssClass).appendTo($container);\r\n this._createComponent($popup, _popup.default, {\r\n onHiding: options.menu.onHiding,\r\n onHidden: options.menu.onHidden,\r\n rtlEnabled: options.menu.rtlEnabled,\r\n position: options.menu.position,\r\n animation: options.menu.animation,\r\n contentTemplate: function(contentElement) {\r\n var $menuContainer = (0, _renderer.default)(\"
\").appendTo(contentElement);\r\n that._createComponent($menuContainer, _tree_view.default, options.menu);\r\n this.repaint()\r\n },\r\n maxHeight: function() {\r\n return (0, _utils.getElementMaxHeightByWindow)(options.menu.position.of)\r\n },\r\n visible: true,\r\n focusStateEnabled: false,\r\n closeOnTargetScroll: this.option(\"closePopupOnTargetScroll\"),\r\n closeOnOutsideClick: true,\r\n onShown: options.popup.onShown,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n showTitle: false\r\n })\r\n },\r\n _subscribeOnClickAndEnterKey: function($button, handler) {\r\n _events_engine.default.on($button, \"dxclick\", handler);\r\n _events_engine.default.on($button, \"keyup\", function(e) {\r\n if ((0, _index.normalizeKeyName)(e) === ENTER_KEY) {\r\n handler(e)\r\n }\r\n })\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxFilterBuilder\", FilterBuilder);\r\nvar _default = FilterBuilder;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = arraySlice(aTypedArray(this), start, end);\n var C = typedArraySpeciesConstructor(this);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.search.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.search\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"search\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.virtual_scrolling_core.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getContentHeightLimit = getContentHeightLimit;\r\nexports.subscribeToExternalScrollers = subscribeToExternalScrollers;\r\nexports.VirtualScrollController = exports.getPixelRatio = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _position = _interopRequireDefault(require(\"../../animation/position\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar isVirtualMode = function(that) {\r\n return that.option(\"scrolling.mode\") === SCROLLING_MODE_VIRTUAL || that._isVirtual\r\n};\r\nvar isAppendMode = function(that) {\r\n return that.option(\"scrolling.mode\") === SCROLLING_MODE_INFINITE && !that._isVirtual\r\n};\r\nvar needTwoPagesLoading = function(that) {\r\n return that.option(\"scrolling.loadTwoPagesOnStart\") || that._isVirtual || that._viewportItemIndex > 0\r\n};\r\nvar getPixelRatio = function(window) {\r\n return window.devicePixelRatio || 1\r\n};\r\nexports.getPixelRatio = getPixelRatio;\r\n\r\nfunction getContentHeightLimit(browser) {\r\n if (browser.msie) {\r\n return 4e6\r\n } else {\r\n if (browser.mozilla) {\r\n return 8e6\r\n }\r\n }\r\n return 15e6 / getPixelRatio((0, _window.getWindow)())\r\n}\r\n\r\nfunction subscribeToExternalScrollers($element, scrollChangedHandler, $targetElement) {\r\n var $scrollElement;\r\n var scrollableArray = [];\r\n var scrollToArray = [];\r\n var disposeArray = [];\r\n $targetElement = $targetElement || $element;\r\n\r\n function getElementOffset(scrollable) {\r\n var $scrollableElement = scrollable.element ? scrollable.$element() : scrollable;\r\n var scrollableOffset = _position.default.offset($scrollableElement);\r\n if (!scrollableOffset) {\r\n return $element.offset().top\r\n }\r\n return scrollable.scrollTop() - (scrollableOffset.top - $element.offset().top)\r\n }\r\n\r\n function createWindowScrollHandler(scrollable) {\r\n return function() {\r\n var scrollTop = scrollable.scrollTop() - getElementOffset(scrollable);\r\n scrollTop = scrollTop > 0 ? scrollTop : 0;\r\n scrollChangedHandler(scrollTop)\r\n }\r\n }\r\n var widgetScrollStrategy = {\r\n on: function(scrollable, eventName, handler) {\r\n scrollable.on(\"scroll\", handler)\r\n },\r\n off: function(scrollable, eventName, handler) {\r\n scrollable.off(\"scroll\", handler)\r\n }\r\n };\r\n\r\n function subscribeToScrollEvents($scrollElement) {\r\n var isDocument = \"#document\" === $scrollElement.get(0).nodeName;\r\n var scrollable = $scrollElement.data(\"dxScrollable\");\r\n var eventsStrategy = widgetScrollStrategy;\r\n if (!scrollable) {\r\n scrollable = isDocument && (0, _renderer.default)((0, _window.getWindow)()) || \"auto\" === $scrollElement.css(\"overflowY\") && $scrollElement;\r\n eventsStrategy = _events_engine.default;\r\n if (!scrollable) {\r\n return\r\n }\r\n }\r\n var handler = createWindowScrollHandler(scrollable);\r\n eventsStrategy.on(scrollable, \"scroll\", handler);\r\n scrollToArray.push(function(pos) {\r\n var topOffset = getElementOffset(scrollable);\r\n var scrollMethod = scrollable.scrollTo ? \"scrollTo\" : \"scrollTop\";\r\n if (pos - topOffset >= 0) {\r\n scrollable[scrollMethod](pos + topOffset)\r\n }\r\n });\r\n scrollableArray.push(scrollable);\r\n disposeArray.push(function() {\r\n eventsStrategy.off(scrollable, \"scroll\", handler)\r\n })\r\n }\r\n for ($scrollElement = $targetElement.parent(); $scrollElement.length; $scrollElement = $scrollElement.parent()) {\r\n subscribeToScrollEvents($scrollElement)\r\n }\r\n return {\r\n scrollTo: function(pos) {\r\n (0, _iterator.each)(scrollToArray, function(_, scrollTo) {\r\n scrollTo(pos)\r\n })\r\n },\r\n dispose: function() {\r\n (0, _iterator.each)(disposeArray, function(_, dispose) {\r\n dispose()\r\n })\r\n }\r\n }\r\n}\r\nvar VirtualScrollController = _class.default.inherit(function() {\r\n var getViewportPageCount = function(that) {\r\n var pageSize = that._dataSource.pageSize();\r\n var preventPreload = that.option(\"scrolling.preventPreload\");\r\n if (preventPreload) {\r\n return 0\r\n }\r\n var realViewportSize = that._viewportSize;\r\n if (isVirtualMode(that) && !that.option(\"legacyRendering\") && that.option(\"scrolling.removeInvisiblePages\")) {\r\n realViewportSize = 0;\r\n var viewportSize = that._viewportSize * that._viewportItemSize;\r\n var offset = that.getContentOffset();\r\n var position = that._position || 0;\r\n var virtualItemsCount = that.virtualItemsCount();\r\n var totalItemsCount = that._dataSource.totalItemsCount();\r\n for (var itemIndex = virtualItemsCount.begin; itemIndex < totalItemsCount; itemIndex++) {\r\n if (offset >= position + viewportSize) {\r\n break\r\n }\r\n var itemSize = that._itemSizes[itemIndex] || that._viewportItemSize;\r\n offset += itemSize;\r\n if (offset >= position) {\r\n realViewportSize++\r\n }\r\n }\r\n }\r\n return pageSize && realViewportSize > 0 ? Math.ceil(realViewportSize / pageSize) : 1\r\n };\r\n var getPreloadPageCount = function(that, previous) {\r\n var preloadEnabled = that.option(\"scrolling.preloadEnabled\");\r\n var pageCount = getViewportPageCount(that);\r\n if (pageCount) {\r\n if (previous) {\r\n pageCount = preloadEnabled ? 1 : 0\r\n } else {\r\n if (preloadEnabled) {\r\n pageCount++\r\n }\r\n if (isAppendMode(that) || !needTwoPagesLoading(that)) {\r\n pageCount--\r\n }\r\n }\r\n }\r\n return pageCount\r\n };\r\n var getPageIndexForLoad = function(that) {\r\n var result = -1;\r\n var beginPageIndex = getBeginPageIndex(that);\r\n var dataSource = that._dataSource;\r\n if (beginPageIndex < 0) {\r\n result = that._pageIndex\r\n } else {\r\n if (!that._cache[that._pageIndex - beginPageIndex]) {\r\n result = that._pageIndex\r\n } else {\r\n if (beginPageIndex >= 0 && that._viewportSize >= 0) {\r\n if (beginPageIndex > 0) {\r\n var needToLoadPageBeforeLast = getEndPageIndex(that) + 1 === dataSource.pageCount() && that._cache.length < getPreloadPageCount(that) + 1;\r\n var needToLoadPrevPage = needToLoadPageBeforeLast || that._pageIndex === beginPageIndex && getPreloadPageCount(that, true);\r\n if (needToLoadPrevPage) {\r\n result = beginPageIndex - 1\r\n }\r\n }\r\n if (result < 0) {\r\n var needToLoadNextPage = beginPageIndex + that._cache.length <= that._pageIndex + getPreloadPageCount(that);\r\n if (needToLoadNextPage) {\r\n result = beginPageIndex + that._cache.length\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (that._loadingPageIndexes[result]) {\r\n result = -1\r\n }\r\n return result\r\n };\r\n\r\n function getBeginPageIndex(that) {\r\n return that._cache.length ? that._cache[0].pageIndex : -1\r\n }\r\n\r\n function getEndPageIndex(that) {\r\n return that._cache.length ? that._cache[that._cache.length - 1].pageIndex : -1\r\n }\r\n var fireChanged = function(that, changed, args) {\r\n that._isChangedFiring = true;\r\n changed(args);\r\n that._isChangedFiring = false\r\n };\r\n var processDelayChanged = function(that, changed, args) {\r\n if (that._isDelayChanged) {\r\n that._isDelayChanged = false;\r\n fireChanged(that, changed, args);\r\n return true\r\n }\r\n };\r\n var processChanged = function(that, changed, changeType, isDelayChanged, removeCacheItem) {\r\n var dataSource = that._dataSource;\r\n var items = dataSource.items().slice();\r\n var change = (0, _type.isObject)(changeType) ? changeType : void 0;\r\n var isPrepend = \"prepend\" === changeType;\r\n var viewportItems = dataSource.viewportItems();\r\n if (changeType && (0, _type.isString)(changeType) && !that._isDelayChanged) {\r\n change = {\r\n changeType: changeType,\r\n items: items\r\n };\r\n if (removeCacheItem) {\r\n change.removeCount = removeCacheItem.itemsCount;\r\n if (change.removeCount && dataSource.correctCount) {\r\n change.removeCount = dataSource.correctCount(viewportItems, change.removeCount, isPrepend)\r\n }\r\n }\r\n }\r\n var removeItemCount = removeCacheItem ? removeCacheItem.itemsLength : 0;\r\n if (removeItemCount && dataSource.correctCount) {\r\n removeItemCount = dataSource.correctCount(viewportItems, removeItemCount, isPrepend)\r\n }\r\n if (\"append\" === changeType) {\r\n viewportItems.push.apply(viewportItems, items);\r\n if (removeCacheItem) {\r\n viewportItems.splice(0, removeItemCount)\r\n }\r\n } else {\r\n if (isPrepend) {\r\n viewportItems.unshift.apply(viewportItems, items);\r\n if (removeCacheItem) {\r\n viewportItems.splice(-removeItemCount)\r\n }\r\n } else {\r\n that._dataSource.viewportItems(items)\r\n }\r\n }\r\n dataSource.updateLoading();\r\n that._lastPageIndex = that.pageIndex();\r\n that._isDelayChanged = isDelayChanged;\r\n if (!isDelayChanged) {\r\n fireChanged(that, changed, change)\r\n }\r\n };\r\n var loadCore = function(that, pageIndex) {\r\n var dataSource = that._dataSource;\r\n if (pageIndex === that.pageIndex() || !dataSource.isLoading() && pageIndex < dataSource.pageCount() || !dataSource.hasKnownLastPage() && pageIndex === dataSource.pageCount()) {\r\n dataSource.pageIndex(pageIndex);\r\n that._loadingPageIndexes[pageIndex] = true;\r\n return (0, _deferred.when)(dataSource.load()).always(function() {\r\n that._loadingPageIndexes[pageIndex] = false\r\n })\r\n }\r\n };\r\n return {\r\n ctor: function(component, dataSource, isVirtual) {\r\n var that = this;\r\n that._dataSource = dataSource;\r\n that.component = component;\r\n that._pageIndex = that._lastPageIndex = dataSource.pageIndex();\r\n that._viewportSize = 0;\r\n that._viewportItemSize = 20;\r\n that._viewportItemIndex = -1;\r\n that._itemSizes = {};\r\n that._sizeRatio = 1;\r\n that._items = [];\r\n that._cache = [];\r\n that._isVirtual = isVirtual;\r\n that._loadingPageIndexes = {};\r\n that.positionChanged = (0, _callbacks.default)()\r\n },\r\n getItemSizes: function() {\r\n return this._itemSizes\r\n },\r\n option: function() {\r\n return this.component.option.apply(this.component, arguments)\r\n },\r\n virtualItemsCount: function() {\r\n var that = this;\r\n var pageIndex;\r\n var itemsCount = 0;\r\n if (isVirtualMode(that)) {\r\n pageIndex = getBeginPageIndex(that);\r\n if (pageIndex < 0) {\r\n pageIndex = that._dataSource.pageIndex()\r\n }\r\n var beginItemsCount = pageIndex * that._dataSource.pageSize();\r\n itemsCount = that._cache.length * that._dataSource.pageSize();\r\n var endItemsCount = Math.max(0, that._dataSource.totalItemsCount() - itemsCount - beginItemsCount);\r\n return {\r\n begin: beginItemsCount,\r\n end: endItemsCount\r\n }\r\n }\r\n },\r\n setViewportPosition: function(position) {\r\n var that = this;\r\n var result = new _deferred.Deferred;\r\n var scrollingTimeout = Math.min(that.option(\"scrolling.timeout\") || 0, that._dataSource.changingDuration());\r\n if (scrollingTimeout < that.option(\"scrolling.renderingThreshold\")) {\r\n scrollingTimeout = that.option(\"scrolling.minTimeout\") || 0\r\n }\r\n clearTimeout(that._scrollTimeoutID);\r\n if (scrollingTimeout > 0) {\r\n that._scrollTimeoutID = setTimeout(function() {\r\n that._setViewportPositionCore(position);\r\n result.resolve()\r\n }, scrollingTimeout)\r\n } else {\r\n that._setViewportPositionCore(position);\r\n result.resolve()\r\n }\r\n return result.promise()\r\n },\r\n getViewportPosition: function() {\r\n return this._position || 0\r\n },\r\n getItemIndexByPosition: function() {\r\n var that = this;\r\n var position = that._position;\r\n var defaultItemSize = that.getItemSize();\r\n var offset = 0;\r\n var itemOffset = 0;\r\n var itemOffsetsWithSize = Object.keys(that._itemSizes).concat(-1);\r\n for (var i = 0; i < itemOffsetsWithSize.length && offset < position; i++) {\r\n var itemOffsetWithSize = parseInt(itemOffsetsWithSize[i]);\r\n var itemOffsetDiff = (position - offset) / defaultItemSize;\r\n if (itemOffsetWithSize < 0 || itemOffset + itemOffsetDiff < itemOffsetWithSize) {\r\n itemOffset += itemOffsetDiff;\r\n break\r\n } else {\r\n itemOffsetDiff = itemOffsetWithSize - itemOffset;\r\n offset += itemOffsetDiff * defaultItemSize;\r\n itemOffset += itemOffsetDiff\r\n }\r\n var itemSize = that._itemSizes[itemOffsetWithSize];\r\n offset += itemSize;\r\n itemOffset += offset < position ? 1 : (position - offset + itemSize) / itemSize\r\n }\r\n return Math.round(50 * itemOffset) / 50\r\n },\r\n _setViewportPositionCore: function(position) {\r\n this._position = position;\r\n var itemIndex = this.getItemIndexByPosition();\r\n var result = this.setViewportItemIndex(itemIndex);\r\n this.positionChanged.fire();\r\n return result\r\n },\r\n setContentSize: function(size) {\r\n var that = this;\r\n var sizes = Array.isArray(size) && size;\r\n var virtualItemsCount = that.virtualItemsCount();\r\n if (sizes) {\r\n size = sizes.reduce(function(a, b) {\r\n return a + b\r\n }, 0)\r\n }\r\n that._contentSize = size;\r\n if (virtualItemsCount) {\r\n if (sizes) {\r\n sizes.forEach(function(size, index) {\r\n that._itemSizes[virtualItemsCount.begin + index] = size\r\n })\r\n }\r\n var virtualContentSize = (virtualItemsCount.begin + virtualItemsCount.end + that.itemsCount()) * that._viewportItemSize;\r\n var contentHeightLimit = getContentHeightLimit(_browser.default);\r\n if (virtualContentSize > contentHeightLimit) {\r\n that._sizeRatio = contentHeightLimit / virtualContentSize\r\n } else {\r\n that._sizeRatio = 1\r\n }\r\n }\r\n },\r\n getItemSize: function() {\r\n return this._viewportItemSize * this._sizeRatio\r\n },\r\n getItemOffset: function(itemIndex, isEnd) {\r\n var that = this;\r\n var virtualItemsCount = that.virtualItemsCount();\r\n var itemCount = itemIndex;\r\n if (!virtualItemsCount) {\r\n return 0\r\n }\r\n var offset = 0;\r\n var totalItemsCount = that._dataSource.totalItemsCount();\r\n Object.keys(that._itemSizes).forEach(function(currentItemIndex) {\r\n if (!itemCount) {\r\n return\r\n }\r\n if (isEnd ? currentItemIndex >= totalItemsCount - itemIndex : currentItemIndex < itemIndex) {\r\n offset += that._itemSizes[currentItemIndex];\r\n itemCount--\r\n }\r\n });\r\n return Math.floor(offset + itemCount * that._viewportItemSize * that._sizeRatio)\r\n },\r\n getContentOffset: function(type) {\r\n var isEnd = \"end\" === type;\r\n var virtualItemsCount = this.virtualItemsCount();\r\n if (!virtualItemsCount) {\r\n return 0\r\n }\r\n return this.getItemOffset(isEnd ? virtualItemsCount.end : virtualItemsCount.begin, isEnd)\r\n },\r\n getVirtualContentSize: function() {\r\n var that = this;\r\n var virtualItemsCount = that.virtualItemsCount();\r\n return virtualItemsCount ? that.getContentOffset(\"begin\") + that.getContentOffset(\"end\") + that._contentSize : 0\r\n },\r\n getViewportItemIndex: function() {\r\n return this._viewportItemIndex\r\n },\r\n setViewportItemIndex: function(itemIndex) {\r\n var that = this;\r\n var pageSize = that._dataSource.pageSize();\r\n var pageCount = that._dataSource.pageCount();\r\n var virtualMode = isVirtualMode(that);\r\n var appendMode = isAppendMode(that);\r\n var totalItemsCount = that._dataSource.totalItemsCount();\r\n var newPageIndex;\r\n that._viewportItemIndex = itemIndex;\r\n if (pageSize && (virtualMode || appendMode) && totalItemsCount >= 0) {\r\n if (that._viewportSize && itemIndex + that._viewportSize >= totalItemsCount && !that._isVirtual) {\r\n if (that._dataSource.hasKnownLastPage()) {\r\n newPageIndex = pageCount - 1;\r\n var lastPageSize = totalItemsCount % pageSize;\r\n if (newPageIndex > 0 && lastPageSize > 0 && lastPageSize < that._viewportSize) {\r\n newPageIndex--\r\n }\r\n } else {\r\n newPageIndex = pageCount\r\n }\r\n } else {\r\n newPageIndex = Math.floor(itemIndex / pageSize);\r\n var maxPageIndex = pageCount - 1;\r\n newPageIndex = Math.max(newPageIndex, 0);\r\n newPageIndex = Math.min(newPageIndex, maxPageIndex)\r\n }\r\n that.pageIndex(newPageIndex);\r\n return that.load()\r\n }\r\n },\r\n viewportItemSize: function(size) {\r\n if (void 0 !== size) {\r\n this._viewportItemSize = size\r\n }\r\n return this._viewportItemSize\r\n },\r\n viewportSize: function(size) {\r\n if (void 0 !== size) {\r\n this._viewportSize = size\r\n }\r\n return this._viewportSize\r\n },\r\n pageIndex: function(_pageIndex) {\r\n if (isVirtualMode(this) || isAppendMode(this)) {\r\n if (void 0 !== _pageIndex) {\r\n this._pageIndex = _pageIndex\r\n }\r\n return this._pageIndex\r\n } else {\r\n return this._dataSource.pageIndex(_pageIndex)\r\n }\r\n },\r\n beginPageIndex: function beginPageIndex(defaultPageIndex) {\r\n var beginPageIndex = getBeginPageIndex(this);\r\n if (beginPageIndex < 0) {\r\n beginPageIndex = void 0 !== defaultPageIndex ? defaultPageIndex : this.pageIndex()\r\n }\r\n return beginPageIndex\r\n },\r\n endPageIndex: function endPageIndex() {\r\n var endPageIndex = getEndPageIndex(this);\r\n return endPageIndex > 0 ? endPageIndex : this._lastPageIndex\r\n },\r\n pageSize: function() {\r\n return this._dataSource.pageSize()\r\n },\r\n load: function() {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var result;\r\n if (isVirtualMode(that) || isAppendMode(that)) {\r\n var pageIndexForLoad = getPageIndexForLoad(that);\r\n if (pageIndexForLoad >= 0) {\r\n var loadResult = loadCore(that, pageIndexForLoad);\r\n if (loadResult) {\r\n result = new _deferred.Deferred;\r\n loadResult.done(function() {\r\n var delayDeferred = that._delayDeferred;\r\n if (delayDeferred) {\r\n delayDeferred.done(result.resolve).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n }).fail(result.reject);\r\n dataSource.updateLoading()\r\n }\r\n }\r\n } else {\r\n result = dataSource.load()\r\n }\r\n if (!result && that._lastPageIndex !== that.pageIndex()) {\r\n that._dataSource.onChanged({\r\n changeType: \"pageIndex\"\r\n })\r\n }\r\n return result || (new _deferred.Deferred).resolve()\r\n },\r\n loadIfNeed: function() {\r\n var that = this;\r\n if ((isVirtualMode(that) || isAppendMode(that)) && !that._dataSource.isLoading() && (!that._isChangedFiring || that._isVirtual)) {\r\n var position = that.getViewportPosition();\r\n if (position > 0) {\r\n that._setViewportPositionCore(position)\r\n } else {\r\n that.load()\r\n }\r\n }\r\n },\r\n handleDataChanged: function(callBase, e) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var lastCacheLength = that._cache.length;\r\n var changeType;\r\n var removeInvisiblePages;\r\n if (e && e.changes) {\r\n fireChanged(that, callBase, e)\r\n } else {\r\n if (isVirtualMode(that) || isAppendMode(that)) {\r\n var beginPageIndex = getBeginPageIndex(that);\r\n if (beginPageIndex >= 0) {\r\n if (isVirtualMode(that) && beginPageIndex + that._cache.length !== dataSource.pageIndex() && beginPageIndex - 1 !== dataSource.pageIndex()) {\r\n lastCacheLength = 0;\r\n that._cache = []\r\n }\r\n if (isAppendMode(that)) {\r\n if (0 === dataSource.pageIndex()) {\r\n that._cache = []\r\n } else {\r\n if (dataSource.pageIndex() < getEndPageIndex(that)) {\r\n fireChanged(that, callBase, {\r\n changeType: \"append\",\r\n items: []\r\n });\r\n return\r\n }\r\n }\r\n }\r\n }\r\n var cacheItem = {\r\n pageIndex: dataSource.pageIndex(),\r\n itemsLength: dataSource.items(true).length,\r\n itemsCount: that.itemsCount(true)\r\n };\r\n if (!that.option(\"legacyRendering\") && that.option(\"scrolling.removeInvisiblePages\") && isVirtualMode(that)) {\r\n removeInvisiblePages = that._cache.length > Math.max(getPreloadPageCount(this) + (that.option(\"scrolling.preloadEnabled\") ? 1 : 0), 2)\r\n } else {\r\n processDelayChanged(that, callBase, {\r\n isDelayed: true\r\n })\r\n }\r\n var removeCacheItem;\r\n if (beginPageIndex === dataSource.pageIndex() + 1) {\r\n if (removeInvisiblePages) {\r\n removeCacheItem = that._cache.pop()\r\n }\r\n changeType = \"prepend\";\r\n that._cache.unshift(cacheItem)\r\n } else {\r\n if (removeInvisiblePages) {\r\n removeCacheItem = that._cache.shift()\r\n }\r\n changeType = \"append\";\r\n that._cache.push(cacheItem)\r\n }\r\n var isDelayChanged = isVirtualMode(that) && 0 === lastCacheLength && needTwoPagesLoading(that);\r\n processChanged(that, callBase, that._cache.length > 1 ? changeType : void 0, isDelayChanged, removeCacheItem);\r\n that._delayDeferred = that.load().done(function() {\r\n if (processDelayChanged(that, callBase)) {\r\n that.load()\r\n }\r\n })\r\n } else {\r\n processChanged(that, callBase, e)\r\n }\r\n }\r\n },\r\n itemsCount: function itemsCount(isBase) {\r\n var itemsCount = 0;\r\n if (!isBase && isVirtualMode(this)) {\r\n (0, _iterator.each)(this._cache, function() {\r\n itemsCount += this.itemsCount\r\n })\r\n } else {\r\n itemsCount = this._dataSource.itemsCount()\r\n }\r\n return itemsCount\r\n },\r\n reset: function(isRefresh) {\r\n this._loadingPageIndexes = {};\r\n this._cache = [];\r\n if (!isRefresh) {\r\n this._itemSizes = {}\r\n }\r\n },\r\n subscribeToWindowScrollEvents: function($element) {\r\n var that = this;\r\n that._windowScroll = that._windowScroll || subscribeToExternalScrollers($element, function(scrollTop) {\r\n if (that.viewportItemSize()) {\r\n that.setViewportPosition(scrollTop)\r\n }\r\n })\r\n },\r\n dispose: function() {\r\n clearTimeout(this._scrollTimeoutID);\r\n this._windowScroll && this._windowScroll.dispose();\r\n this._windowScroll = null\r\n },\r\n scrollTo: function(pos) {\r\n this._windowScroll && this._windowScroll.scrollTo(pos)\r\n }\r\n }\r\n}());\r\nexports.VirtualScrollController = VirtualScrollController;\r\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperties = require('../internals/object-define-properties').f;\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) == '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() == ':') {\n if (charAt(input, 1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex == 8) return;\n if (chr() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (chr() == ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length == 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n buffer += toLowerCase(chr);\n } else if (chr == ':') {\n if (stateOverride && (\n (url.isSpecial() != hasOwn(specialSchemes, buffer)) ||\n (buffer == 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr == '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '/' || (chr == '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr == '/' || chr == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr != '/' && chr != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr == '[') seenBracket = true;\n else if (chr == ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (chr == EOF) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr == '/' || chr == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr != '/' && chr != '\\\\') continue;\n } else if (!stateOverride && chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n state = PATH;\n if (chr != '/') continue;\n } break;\n\n case PATH:\n if (\n chr == EOF || chr == '/' ||\n (chr == '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr == '?' || chr == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n if (chr == \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr == '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) == '[') {\n if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme == 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username != '' || this.password != '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port == '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search == '') {\n this.query = null;\n } else {\n if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash == '') {\n this.fragment = null;\n return;\n }\n if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor('serialize', 'setHref'),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor('getOrigin'),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor('getProtocol', 'setProtocol'),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor('getUsername', 'setUsername'),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor('getPassword', 'setPassword'),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor('getHost', 'setHost'),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor('getHostname', 'setHostname'),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor('getPort', 'setPort'),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor('getPathname', 'setPathname'),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor('getSearch', 'setSearch'),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor('getSearchParams'),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor('getHash', 'setHash')\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.adaptivity.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _ui2 = _interopRequireDefault(require(\"../drawer/ui.drawer\"));\r\nvar _splitter = _interopRequireDefault(require(\"../splitter\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar ADAPTIVE_STATE_SCREEN_WIDTH = 573;\r\nvar FILE_MANAGER_ADAPTIVITY_DRAWER_PANEL_CLASS = \"dx-filemanager-adaptivity-drawer-panel\";\r\nvar DRAWER_PANEL_CONTENT_INITIAL = \"dx-drawer-panel-content-initial\";\r\nvar DRAWER_PANEL_CONTENT_ADAPTIVE = \"dx-drawer-panel-content-adaptive\";\r\nvar FileManagerAdaptivityControl = function(_Widget) {\r\n _inheritsLoose(FileManagerAdaptivityControl, _Widget);\r\n\r\n function FileManagerAdaptivityControl() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerAdaptivityControl.prototype;\r\n _proto._initMarkup = function() {\r\n _Widget.prototype._initMarkup.call(this);\r\n this._initActions();\r\n this._isInAdaptiveState = false;\r\n var $drawer = (0, _renderer.default)(\"
\").appendTo(this.$element());\r\n (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_ADAPTIVITY_DRAWER_PANEL_CLASS).appendTo($drawer);\r\n this._drawer = this._createComponent($drawer, _ui2.default);\r\n this._drawer.option({\r\n opened: true,\r\n template: this._createDrawerTemplate.bind(this)\r\n });\r\n (0, _renderer.default)(this._drawer.content()).addClass(DRAWER_PANEL_CONTENT_INITIAL);\r\n var $drawerContent = $drawer.find(\".\".concat(FILE_MANAGER_ADAPTIVITY_DRAWER_PANEL_CLASS)).first();\r\n var contentRenderer = this.option(\"contentTemplate\");\r\n if ((0, _type.isFunction)(contentRenderer)) {\r\n contentRenderer($drawerContent)\r\n }\r\n this._updateDrawerMaxSize()\r\n };\r\n _proto._createDrawerTemplate = function(container) {\r\n this.option(\"drawerTemplate\")(container);\r\n this._splitter = this._createComponent(\"
\", _splitter.default, {\r\n container: this.$element(),\r\n leftElement: (0, _renderer.default)(this._drawer.content()),\r\n rightElement: (0, _renderer.default)(this._drawer.viewContent()),\r\n onApplyPanelSize: this._onApplyPanelSize.bind(this),\r\n onActiveStateChanged: this._onActiveStateChanged.bind(this)\r\n });\r\n this._splitter.$element().appendTo(container);\r\n this._splitter.disableSplitterCalculation(true)\r\n };\r\n _proto._render = function() {\r\n _Widget.prototype._render.call(this);\r\n this._checkAdaptiveState()\r\n };\r\n _proto._onApplyPanelSize = function(e) {\r\n if (!(0, _window.hasWindow)()) {\r\n return\r\n }\r\n if (!this._splitter.isSplitterMoved()) {\r\n this._setDrawerWidth(\"\");\r\n return\r\n }(0, _renderer.default)(this._drawer.content()).removeClass(DRAWER_PANEL_CONTENT_INITIAL);\r\n this._setDrawerWidth(e.leftPanelWidth)\r\n };\r\n _proto._onActiveStateChanged = function(_ref) {\r\n var isActive = _ref.isActive;\r\n this._splitter.disableSplitterCalculation(!isActive);\r\n !isActive && this._splitter.$element().css(\"left\", \"auto\")\r\n };\r\n _proto._setDrawerWidth = function(width) {\r\n (0, _renderer.default)(this._drawer.content()).css(\"width\", width);\r\n this._updateDrawerMaxSize();\r\n this._drawer.resizeViewContent()\r\n };\r\n _proto._updateDrawerMaxSize = function() {\r\n this._drawer.option(\"maxSize\", this._drawer.getRealPanelWidth())\r\n };\r\n _proto._dimensionChanged = function(dimension) {\r\n if (!dimension || \"height\" !== dimension) {\r\n this._checkAdaptiveState()\r\n }\r\n };\r\n _proto._checkAdaptiveState = function() {\r\n var oldState = this._isInAdaptiveState;\r\n this._isInAdaptiveState = this._isSmallScreen();\r\n if (oldState !== this._isInAdaptiveState) {\r\n this.toggleDrawer(!this._isInAdaptiveState, true);\r\n (0, _renderer.default)(this._drawer.content()).toggleClass(DRAWER_PANEL_CONTENT_ADAPTIVE, this._isInAdaptiveState);\r\n this._raiseAdaptiveStateChanged(this._isInAdaptiveState)\r\n }\r\n if (this._isInAdaptiveState && this._isDrawerOpened()) {\r\n this._updateDrawerMaxSize()\r\n }\r\n };\r\n _proto._isSmallScreen = function() {\r\n return (0, _renderer.default)(window).width() <= ADAPTIVE_STATE_SCREEN_WIDTH\r\n };\r\n _proto._isDrawerOpened = function() {\r\n return this._drawer.option(\"opened\")\r\n };\r\n _proto._initActions = function() {\r\n this._actions = {\r\n onAdaptiveStateChanged: this._createActionByOption(\"onAdaptiveStateChanged\")\r\n }\r\n };\r\n _proto._raiseAdaptiveStateChanged = function(enabled) {\r\n this._actions.onAdaptiveStateChanged({\r\n enabled: enabled\r\n })\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {\r\n drawerTemplate: null,\r\n contentTemplate: null,\r\n onAdaptiveStateChanged: null\r\n })\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"drawerTemplate\":\r\n case \"contentTemplate\":\r\n this.repaint();\r\n break;\r\n case \"onAdaptiveStateChanged\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto.isInAdaptiveState = function() {\r\n return this._isInAdaptiveState\r\n };\r\n _proto.toggleDrawer = function(showing, skipAnimation) {\r\n this._updateDrawerMaxSize();\r\n this._drawer.option(\"animationEnabled\", !skipAnimation);\r\n this._drawer.toggle(showing);\r\n var isSplitterActive = this._isDrawerOpened() && !this.isInAdaptiveState();\r\n this._splitter.toggleDisabled(!isSplitterActive)\r\n };\r\n return FileManagerAdaptivityControl\r\n}(_ui.default);\r\nvar _default = FileManagerAdaptivityControl;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.data_source_adapter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.data_source_adapter\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar dataSourceAdapterType = _uiGrid_core.default;\r\nvar _default = {\r\n extend: function(extender) {\r\n dataSourceAdapterType = dataSourceAdapterType.inherit(extender)\r\n },\r\n create: function(component) {\r\n return new dataSourceAdapterType(component)\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.dialog.name_editor.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _text_box = _interopRequireDefault(require(\"../text_box\"));\r\nvar _uiFile_managerDialog = _interopRequireDefault(require(\"./ui.file_manager.dialog.js\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_DIALOG_NAME_EDITOR = \"dx-filemanager-dialog-name-editor\";\r\nvar FILE_MANAGER_DIALOG_NAME_EDITOR_POPUP = \"dx-filemanager-dialog-name-editor-popup\";\r\nvar FileManagerNameEditorDialog = function(_FileManagerDialogBas) {\r\n _inheritsLoose(FileManagerNameEditorDialog, _FileManagerDialogBas);\r\n\r\n function FileManagerNameEditorDialog() {\r\n return _FileManagerDialogBas.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerNameEditorDialog.prototype;\r\n _proto.show = function(name) {\r\n name = name || \"\";\r\n if (this._nameTextBox) {\r\n this._nameTextBox.option(\"value\", name)\r\n } else {\r\n this._initialNameValue = name\r\n }\r\n _FileManagerDialogBas.prototype.show.call(this)\r\n };\r\n _proto._onPopupShown = function() {\r\n if (!this._nameTextBox) {\r\n return\r\n }\r\n var $textBoxInput = this._nameTextBox._input();\r\n $textBoxInput.length && $textBoxInput[0].select();\r\n this._nameTextBox.focus()\r\n };\r\n _proto._getDialogOptions = function() {\r\n return (0, _extend.extend)(_FileManagerDialogBas.prototype._getDialogOptions.call(this), {\r\n title: this.option(\"title\"),\r\n buttonText: this.option(\"buttonText\"),\r\n contentCssClass: FILE_MANAGER_DIALOG_NAME_EDITOR,\r\n popupCssClass: FILE_MANAGER_DIALOG_NAME_EDITOR_POPUP\r\n })\r\n };\r\n _proto._createContentTemplate = function(element) {\r\n _FileManagerDialogBas.prototype._createContentTemplate.call(this, element);\r\n this._nameTextBox = this._createComponent((0, _renderer.default)(\"
\"), _text_box.default, {\r\n value: this._initialNameValue,\r\n onEnterKey: this._applyDialogChanges.bind(this)\r\n });\r\n this._$contentElement.append(this._nameTextBox.$element())\r\n };\r\n _proto._getDialogResult = function() {\r\n var nameValue = this._nameTextBox.option(\"value\");\r\n return nameValue ? {\r\n name: nameValue\r\n } : null\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_FileManagerDialogBas.prototype._getDefaultOptions.call(this), {\r\n title: \"\",\r\n buttonText: \"\"\r\n })\r\n };\r\n return FileManagerNameEditorDialog\r\n}(_uiFile_managerDialog.default);\r\nvar _default = FileManagerNameEditorDialog;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.common.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getMapFromObject = exports.findItemsByKeys = exports.extendAttributes = exports.getDisplayFileSize = exports.whenSome = void 0;\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\n\r\nfunction _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\nvar whenSome = function(arg, onSuccess, onError) {\r\n onSuccess = onSuccess || _common.noop;\r\n onError = onError || _common.noop;\r\n if (!Array.isArray(arg)) {\r\n arg = [arg]\r\n }\r\n var deferreds = arg.map(function(item, index) {\r\n return (0, _deferred.when)(item).then(function(result) {\r\n (0, _type.isFunction)(onSuccess) && onSuccess({\r\n item: item,\r\n index: index,\r\n result: result\r\n });\r\n return result\r\n }, function(error) {\r\n if (!error) {\r\n error = {}\r\n }\r\n error.index = index;\r\n (0, _type.isFunction)(onError) && onError(error);\r\n return (new _deferred.Deferred).resolve().promise()\r\n })\r\n });\r\n return _deferred.when.apply(null, deferreds)\r\n};\r\nexports.whenSome = whenSome;\r\nvar getDisplayFileSize = function(byteSize) {\r\n var sizesTitles = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\"];\r\n var index = 0;\r\n var displaySize = byteSize;\r\n while (displaySize >= 1024 && index <= sizesTitles.length - 1) {\r\n displaySize /= 1024;\r\n index++\r\n }\r\n displaySize = Math.round(10 * displaySize) / 10;\r\n return \"\".concat(displaySize, \" \").concat(sizesTitles[index])\r\n};\r\nexports.getDisplayFileSize = getDisplayFileSize;\r\nvar extendAttributes = function(targetObject, sourceObject, objectKeysArray) {\r\n objectKeysArray.forEach(function(objectKey) {\r\n (0, _extend.extend)(true, targetObject, (0, _type.isDefined)(sourceObject[objectKey]) ? _defineProperty({}, objectKey, sourceObject[objectKey]) : {})\r\n });\r\n return targetObject\r\n};\r\nexports.extendAttributes = extendAttributes;\r\nvar findItemsByKeys = function(itemInfos, keys) {\r\n var itemMap = {};\r\n keys.forEach(function(key) {\r\n itemMap[key] = null\r\n });\r\n itemInfos.forEach(function(itemInfo) {\r\n var key = itemInfo.fileItem.key;\r\n if (Object.prototype.hasOwnProperty.call(itemMap, key)) {\r\n itemMap[key] = itemInfo\r\n }\r\n });\r\n var result = [];\r\n keys.forEach(function(key) {\r\n var itemInfo = itemMap[key];\r\n if (itemInfo) {\r\n result.push(itemInfo)\r\n }\r\n });\r\n return result\r\n};\r\nexports.findItemsByKeys = findItemsByKeys;\r\nvar getMapFromObject = function(object) {\r\n var keys = Object.keys(object);\r\n var values = [];\r\n keys.forEach(function(key) {\r\n return values.push(object[key])\r\n });\r\n return {\r\n keys: keys,\r\n values: values\r\n }\r\n};\r\nexports.getMapFromObject = getMapFromObject;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.header_filter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _filtering = _interopRequireDefault(require(\"../shared/filtering\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _uiGrid_core3 = require(\"./ui.grid_core.header_filter_core\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _utils = require(\"../../data/data_source/utils\");\r\nvar _date = _interopRequireDefault(require(\"../../localization/date\"));\r\nvar _variable_wrapper = _interopRequireDefault(require(\"../../core/utils/variable_wrapper\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _accessibility = require(\"../shared/accessibility\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DATE_INTERVAL_FORMATS = {\r\n month: function(value) {\r\n return _date.default.getMonthNames()[value - 1]\r\n },\r\n quarter: function(value) {\r\n return _date.default.format(new Date(2e3, 3 * value - 1), \"quarter\")\r\n }\r\n};\r\nvar HeaderFilterController = _uiGrid_core.default.ViewController.inherit(function() {\r\n var getFormatOptions = function(value, column, currentLevel) {\r\n var groupInterval = _filtering.default.getGroupInterval(column);\r\n var result = _uiGrid_core2.default.getFormatOptionsByColumn(column, \"headerFilter\");\r\n if (groupInterval) {\r\n result.groupInterval = groupInterval[currentLevel];\r\n if (_uiGrid_core2.default.isDateType(column.dataType)) {\r\n result.format = DATE_INTERVAL_FORMATS[groupInterval[currentLevel]]\r\n } else {\r\n if (\"number\" === column.dataType) {\r\n result.getDisplayFormat = function() {\r\n var formatOptions = {\r\n format: column.format,\r\n target: \"headerFilter\"\r\n };\r\n var firstValueText = _uiGrid_core2.default.formatValue(value, formatOptions);\r\n var secondValue = value + groupInterval[currentLevel];\r\n var secondValueText = _uiGrid_core2.default.formatValue(secondValue, formatOptions);\r\n return firstValueText && secondValueText ? firstValueText + \" - \" + secondValueText : \"\"\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n };\r\n return {\r\n init: function() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._headerFilterView = this.getView(\"headerFilterView\")\r\n },\r\n _updateSelectedState: function(items, column) {\r\n var i = items.length;\r\n var isExclude = \"exclude\" === column.filterType;\r\n while (i--) {\r\n var item = items[i];\r\n if (\"items\" in items[i]) {\r\n this._updateSelectedState(items[i].items, column)\r\n }(0, _uiGrid_core3.updateHeaderFilterItemSelectionState)(item, _uiGrid_core2.default.getIndexByKey(items[i].value, column.filterValues, null) > -1, isExclude)\r\n }\r\n },\r\n _normalizeGroupItem: function(item, currentLevel, options) {\r\n var value;\r\n var displayValue;\r\n var path = options.path;\r\n var valueSelector = options.valueSelector;\r\n var displaySelector = options.displaySelector;\r\n var column = options.column;\r\n if (valueSelector && displaySelector) {\r\n value = valueSelector(item);\r\n displayValue = displaySelector(item)\r\n } else {\r\n value = item.key;\r\n displayValue = value\r\n }\r\n if (!(0, _type.isObject)(item)) {\r\n item = {}\r\n } else {\r\n item = (0, _extend.extend)({}, item)\r\n }\r\n path.push(value);\r\n if (1 === path.length) {\r\n item.value = path[0]\r\n } else {\r\n item.value = path.join(\"/\")\r\n }\r\n item.text = this.getHeaderItemText(displayValue, column, currentLevel, options.headerFilterOptions);\r\n return item\r\n },\r\n getHeaderItemText: function(displayValue, column, currentLevel, headerFilterOptions) {\r\n var text = _uiGrid_core2.default.formatValue(displayValue, getFormatOptions(displayValue, column, currentLevel));\r\n if (!text) {\r\n text = headerFilterOptions.texts.emptyValue\r\n }\r\n return text\r\n },\r\n _processGroupItems: function(groupItems, currentLevel, path, options) {\r\n var that = this;\r\n var displaySelector;\r\n var valueSelector;\r\n var column = options.column;\r\n var lookup = column.lookup;\r\n var level = options.level;\r\n path = path || [];\r\n currentLevel = currentLevel || 0;\r\n if (lookup) {\r\n displaySelector = (0, _data.compileGetter)(lookup.displayExpr);\r\n valueSelector = (0, _data.compileGetter)(lookup.valueExpr)\r\n }\r\n for (var i = 0; i < groupItems.length; i++) {\r\n groupItems[i] = that._normalizeGroupItem(groupItems[i], currentLevel, {\r\n column: options.column,\r\n headerFilterOptions: options.headerFilterOptions,\r\n displaySelector: displaySelector,\r\n valueSelector: valueSelector,\r\n path: path\r\n });\r\n if (\"items\" in groupItems[i]) {\r\n if (currentLevel === level || !(0, _type.isDefined)(groupItems[i].value)) {\r\n delete groupItems[i].items\r\n } else {\r\n that._processGroupItems(groupItems[i].items, currentLevel + 1, path, options)\r\n }\r\n }\r\n path.pop()\r\n }\r\n },\r\n getDataSource: function(column) {\r\n var that = this;\r\n var dataSource = that._dataController.dataSource();\r\n var group = _uiGrid_core2.default.getHeaderFilterGroupParameters(column, dataSource && dataSource.remoteOperations().grouping);\r\n var headerFilterDataSource = column.headerFilter && column.headerFilter.dataSource;\r\n var headerFilterOptions = that.option(\"headerFilter\");\r\n var isLookup = false;\r\n var options = {\r\n component: that.component\r\n };\r\n if (!dataSource) {\r\n return\r\n }\r\n if ((0, _type.isDefined)(headerFilterDataSource) && !(0, _type.isFunction)(headerFilterDataSource)) {\r\n options.dataSource = (0, _utils.normalizeDataSourceOptions)(headerFilterDataSource)\r\n } else {\r\n if (column.lookup) {\r\n isLookup = true;\r\n var lookupDataSourceOptions;\r\n if (column.lookup.items) {\r\n lookupDataSourceOptions = column.lookup.items\r\n } else {\r\n lookupDataSourceOptions = column.lookup.dataSource;\r\n if ((0, _type.isFunction)(lookupDataSourceOptions) && !_variable_wrapper.default.isWrapped(lookupDataSourceOptions)) {\r\n lookupDataSourceOptions = lookupDataSourceOptions({})\r\n }\r\n }\r\n options.dataSource = (0, _utils.normalizeDataSourceOptions)(lookupDataSourceOptions)\r\n } else {\r\n var cutoffLevel = Array.isArray(group) ? group.length - 1 : 0;\r\n that._currentColumn = column;\r\n var filter = that._dataController.getCombinedFilter();\r\n that._currentColumn = null;\r\n options.dataSource = {\r\n filter: filter,\r\n group: group,\r\n useDefaultSearch: true,\r\n load: function(options) {\r\n var d = new _deferred.Deferred;\r\n options.dataField = column.dataField || column.name;\r\n dataSource.load(options).done(function(data) {\r\n that._processGroupItems(data, null, null, {\r\n level: cutoffLevel,\r\n column: column,\r\n headerFilterOptions: headerFilterOptions\r\n });\r\n d.resolve(data)\r\n }).fail(d.reject);\r\n return d\r\n }\r\n }\r\n }\r\n }\r\n if ((0, _type.isFunction)(headerFilterDataSource)) {\r\n headerFilterDataSource.call(column, options)\r\n }\r\n var origPostProcess = options.dataSource.postProcess;\r\n options.dataSource.postProcess = function(data) {\r\n var items = data;\r\n if (isLookup) {\r\n if (0 === this.pageIndex() && !this.searchValue()) {\r\n items = items.slice(0);\r\n items.unshift(null)\r\n }\r\n that._processGroupItems(items, null, null, {\r\n level: 0,\r\n column: column,\r\n headerFilterOptions: headerFilterOptions\r\n })\r\n }\r\n items = origPostProcess && origPostProcess.call(this, items) || items;\r\n that._updateSelectedState(items, column);\r\n return items\r\n };\r\n return options.dataSource\r\n },\r\n getCurrentColumn: function() {\r\n return this._currentColumn\r\n },\r\n showHeaderFilterMenu: function(columnIndex, isGroupPanel) {\r\n var columnsController = this._columnsController;\r\n var column = (0, _extend.extend)(true, {}, this._columnsController.getColumns()[columnIndex]);\r\n if (column) {\r\n var visibleIndex = columnsController.getVisibleIndex(columnIndex);\r\n var view = isGroupPanel ? this.getView(\"headerPanel\") : this.getView(\"columnHeadersView\");\r\n var $columnElement = $columnElement || view.getColumnElements().eq(isGroupPanel ? column.groupIndex : visibleIndex);\r\n this.showHeaderFilterMenuBase({\r\n columnElement: $columnElement,\r\n column: column,\r\n applyFilter: true,\r\n apply: function() {\r\n columnsController.columnOption(columnIndex, {\r\n filterValues: this.filterValues,\r\n filterType: this.filterType\r\n })\r\n }\r\n })\r\n }\r\n },\r\n showHeaderFilterMenuBase: function(options) {\r\n var _this = this;\r\n var that = this;\r\n var column = options.column;\r\n if (column) {\r\n var groupInterval = _filtering.default.getGroupInterval(column);\r\n var dataSource = that._dataController.dataSource();\r\n var remoteFiltering = dataSource && dataSource.remoteOperations().filtering;\r\n (0, _extend.extend)(options, column, {\r\n type: groupInterval && groupInterval.length > 1 ? \"tree\" : \"list\",\r\n remoteFiltering: remoteFiltering,\r\n onShowing: function(e) {\r\n var dxResizableInstance = e.component.overlayContent().dxResizable(\"instance\");\r\n dxResizableInstance && dxResizableInstance.option(\"onResizeEnd\", function(e) {\r\n var columnsController = that.getController(\"columns\");\r\n var headerFilterByColumn = columnsController.columnOption(options.dataField, \"headerFilter\");\r\n headerFilterByColumn = headerFilterByColumn || {};\r\n headerFilterByColumn.width = e.width;\r\n headerFilterByColumn.height = e.height;\r\n columnsController.columnOption(options.dataField, \"headerFilter\", headerFilterByColumn, true)\r\n })\r\n },\r\n onHidden: function() {\r\n return (0, _accessibility.restoreFocus)(_this)\r\n }\r\n });\r\n options.dataSource = that.getDataSource(options);\r\n if (options.isFilterBuilder) {\r\n options.dataSource.filter = null;\r\n options.alignment = \"right\"\r\n }\r\n that._headerFilterView.showHeaderFilterMenu(options.columnElement, options)\r\n }\r\n },\r\n hideHeaderFilterMenu: function() {\r\n this._headerFilterView.hideHeaderFilterMenu()\r\n }\r\n }\r\n}());\r\nvar ColumnHeadersViewHeaderFilterExtender = (0, _extend.extend)({}, _uiGrid_core3.headerFilterMixin, {\r\n _renderCellContent: function($cell, options) {\r\n var that = this;\r\n var $headerFilterIndicator;\r\n var column = options.column;\r\n if (!column.command && (0, _uiGrid_core3.allowHeaderFiltering)(column) && that.option(\"headerFilter.visible\") && \"header\" === options.rowType) {\r\n $headerFilterIndicator = that._applyColumnState({\r\n name: \"headerFilter\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: that.option(\"showColumnLines\")\r\n });\r\n $headerFilterIndicator && that._subscribeToIndicatorEvent($headerFilterIndicator, column, \"headerFilter\")\r\n }\r\n that.callBase($cell, options)\r\n },\r\n _subscribeToIndicatorEvent: function($indicator, column, indicatorName) {\r\n var that = this;\r\n if (\"headerFilter\" === indicatorName) {\r\n _events_engine.default.on($indicator, _click.name, that.createAction(function(e) {\r\n e.event.stopPropagation();\r\n that.getController(\"headerFilter\").showHeaderFilterMenu(column.index, false)\r\n }))\r\n }\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n var $indicator = this.callBase($cell, column, indicatorName);\r\n $indicator && this._subscribeToIndicatorEvent($indicator, column, indicatorName)\r\n },\r\n _updateHeaderFilterIndicators: function() {\r\n if (this.option(\"headerFilter.visible\")) {\r\n this._updateIndicators(\"headerFilter\")\r\n }\r\n },\r\n _needUpdateFilterIndicators: function() {\r\n return true\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (_uiGrid_core2.default.checkChanges(optionNames, [\"filterValues\", \"filterType\"])) {\r\n if (this._needUpdateFilterIndicators()) {\r\n this._updateHeaderFilterIndicators()\r\n }\r\n return\r\n }\r\n this.callBase(e)\r\n }\r\n});\r\nvar HeaderPanelHeaderFilterExtender = (0, _extend.extend)({}, _uiGrid_core3.headerFilterMixin, {\r\n _createGroupPanelItem: function($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = that.callBase.apply(that, arguments);\r\n var $headerFilterIndicator;\r\n if (!groupColumn.command && (0, _uiGrid_core3.allowHeaderFiltering)(groupColumn) && that.option(\"headerFilter.visible\")) {\r\n $headerFilterIndicator = that._applyColumnState({\r\n name: \"headerFilter\",\r\n rootElement: $item,\r\n column: {\r\n alignment: (0, _position.getDefaultAlignment)(that.option(\"rtlEnabled\")),\r\n filterValues: groupColumn.filterValues,\r\n allowHeaderFiltering: true\r\n },\r\n showColumnLines: true\r\n });\r\n $headerFilterIndicator && _events_engine.default.on($headerFilterIndicator, _click.name, that.createAction(function(e) {\r\n var event = e.event;\r\n event.stopPropagation();\r\n that.getController(\"headerFilter\").showHeaderFilterMenu(groupColumn.index, true)\r\n }))\r\n }\r\n return $item\r\n }\r\n});\r\n\r\nfunction invertFilterExpression(filter) {\r\n return [\"!\", filter]\r\n}\r\nvar DataControllerFilterRowExtender = {\r\n skipCalculateColumnFilters: function() {\r\n return false\r\n },\r\n _calculateAdditionalFilter: function() {\r\n if (this.skipCalculateColumnFilters()) {\r\n return this.callBase()\r\n }\r\n var that = this;\r\n var filters = [that.callBase()];\r\n var columns = that._columnsController.getVisibleColumns(null, true);\r\n var headerFilterController = that.getController(\"headerFilter\");\r\n var currentColumn = headerFilterController.getCurrentColumn();\r\n (0, _iterator.each)(columns, function(_, column) {\r\n var filter;\r\n if (currentColumn && currentColumn.index === column.index) {\r\n return\r\n }\r\n if ((0, _uiGrid_core3.allowHeaderFiltering)(column) && column.calculateFilterExpression && Array.isArray(column.filterValues) && column.filterValues.length) {\r\n var filterValues = [];\r\n (0, _iterator.each)(column.filterValues, function(_, filterValue) {\r\n if (Array.isArray(filterValue)) {\r\n filter = filterValue\r\n } else {\r\n if (column.deserializeValue && !_uiGrid_core2.default.isDateType(column.dataType) && \"number\" !== column.dataType) {\r\n filterValue = column.deserializeValue(filterValue)\r\n }\r\n filter = column.createFilterExpression(filterValue, \"=\", \"headerFilter\")\r\n }\r\n if (filter) {\r\n filter.columnIndex = column.index\r\n }\r\n filterValues.push(filter)\r\n });\r\n filterValues = _uiGrid_core2.default.combineFilters(filterValues, \"or\");\r\n filters.push(\"exclude\" === column.filterType ? [\"!\", filterValues] : filterValues)\r\n }\r\n });\r\n return _uiGrid_core2.default.combineFilters(filters)\r\n }\r\n};\r\nvar _default = {\r\n invertFilterExpression: invertFilterExpression,\r\n defaultOptions: function() {\r\n return {\r\n headerFilter: {\r\n visible: false,\r\n width: 252,\r\n height: 325,\r\n allowSearch: false,\r\n searchTimeout: 500,\r\n texts: {\r\n emptyValue: _message.default.format(\"dxDataGrid-headerFilterEmptyValue\"),\r\n ok: _message.default.format(\"dxDataGrid-headerFilterOK\"),\r\n cancel: _message.default.format(\"dxDataGrid-headerFilterCancel\")\r\n }\r\n }\r\n }\r\n },\r\n controllers: {\r\n headerFilter: HeaderFilterController\r\n },\r\n views: {\r\n headerFilterView: _uiGrid_core3.HeaderFilterView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: DataControllerFilterRowExtender\r\n },\r\n views: {\r\n columnHeadersView: ColumnHeadersViewHeaderFilterExtender,\r\n headerPanel: HeaderPanelHeaderFilterExtender\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/svg_creator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getData = getData;\r\nexports.svgCreator = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _ajax = _interopRequireDefault(require(\"../core/utils/ajax\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _svg = require(\"../core/utils/svg\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar svgCreator = {\r\n _markup: \"\",\r\n _imageArray: {},\r\n _imageDeferreds: [],\r\n _getBinaryFile: function(src, callback) {\r\n _ajax.default.sendRequest({\r\n url: src,\r\n method: \"GET\",\r\n responseType: \"arraybuffer\"\r\n }).done(callback).fail(function() {\r\n callback(false)\r\n })\r\n },\r\n _loadImages: function() {\r\n var that = this;\r\n (0, _iterator.each)(that._imageArray, function(src) {\r\n var deferred = new _deferred.Deferred;\r\n that._imageDeferreds.push(deferred);\r\n that._getBinaryFile(src, function(response) {\r\n if (!response) {\r\n delete that._imageArray[src];\r\n deferred.resolve();\r\n return\r\n }\r\n var i;\r\n var binary = \"\";\r\n var bytes = new Uint8Array(response);\r\n var length = bytes.byteLength;\r\n for (i = 0; i < length; i++) {\r\n binary += String.fromCharCode(bytes[i])\r\n }\r\n that._imageArray[src] = \"data:image/png;base64,\" + window.btoa(binary);\r\n deferred.resolve()\r\n })\r\n })\r\n },\r\n _parseImages: function(element) {\r\n var href;\r\n var that = this;\r\n if (\"image\" === element.tagName) {\r\n href = (0, _renderer.default)(element).attr(\"href\") || (0, _renderer.default)(element).attr(\"xlink:href\");\r\n if (!that._imageArray[href]) {\r\n that._imageArray[href] = \"\"\r\n }\r\n }(0, _iterator.each)(element.childNodes, function(_, element) {\r\n that._parseImages(element)\r\n })\r\n },\r\n _prepareImages: function(svgElem) {\r\n this._parseImages(svgElem);\r\n this._loadImages();\r\n return _deferred.when.apply(_renderer.default, this._imageDeferreds)\r\n },\r\n getData: function(data, options) {\r\n var markup;\r\n var that = this;\r\n var xmlVersion = '';\r\n var svgElem = (0, _svg.getSvgElement)(data);\r\n var $svgObject = (0, _renderer.default)(svgElem);\r\n markup = xmlVersion + (0, _svg.getSvgMarkup)($svgObject.get(0), options.backgroundColor);\r\n return that._prepareImages(svgElem).then(function() {\r\n (0, _iterator.each)(that._imageArray, function(href, dataURI) {\r\n var regexpString = \"href=['|\\\"]\".concat(href, \"['|\\\"]\");\r\n markup = markup.replace(new RegExp(regexpString, \"gi\"), 'href=\"'.concat(dataURI, '\"'))\r\n });\r\n return (0, _type.isFunction)(window.Blob) ? that._getBlob(markup) : that._getBase64(markup)\r\n })\r\n },\r\n _getBlob: function(markup) {\r\n return new window.Blob([markup], {\r\n type: \"image/svg+xml\"\r\n })\r\n },\r\n _getBase64: function(markup) {\r\n return window.btoa(markup)\r\n }\r\n};\r\nexports.svgCreator = svgCreator;\r\n\r\nfunction getData(data, options) {\r\n return svgCreator.getData(data, options)\r\n}\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar apply = require('../internals/function-apply');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n var length = arguments.length;\n return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);\n});\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.data_source_adapter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\nvar _uiData_grid = _interopRequireDefault(require(\"../data_grid/ui.data_grid.core\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _array_store = _interopRequireDefault(require(\"../../data/array_store\"));\r\nvar _array_utils = require(\"../../data/array_utils\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _uiData_grid.default.Controller.inherit(function() {\r\n function cloneItems(items, groupCount) {\r\n if (items) {\r\n items = items.slice(0);\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n items[i] = (0, _extend.extend)({\r\n key: items[i].key\r\n }, items[i]);\r\n items[i].items = cloneItems(items[i].items, groupCount - 1)\r\n }\r\n }\r\n }\r\n return items\r\n }\r\n\r\n function calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload) {\r\n var operationTypes = {\r\n reload: true,\r\n fullReload: true\r\n };\r\n if (lastLoadOptions) {\r\n operationTypes = {\r\n sorting: !_uiData_grid.default.equalSortParameters(loadOptions.sort, lastLoadOptions.sort),\r\n grouping: !_uiData_grid.default.equalSortParameters(loadOptions.group, lastLoadOptions.group, true),\r\n groupExpanding: !_uiData_grid.default.equalSortParameters(loadOptions.group, lastLoadOptions.group) || lastLoadOptions.groupExpand,\r\n filtering: !_uiData_grid.default.equalFilterParameters(loadOptions.filter, lastLoadOptions.filter),\r\n pageIndex: loadOptions.pageIndex !== lastLoadOptions.pageIndex,\r\n skip: loadOptions.skip !== lastLoadOptions.skip,\r\n take: loadOptions.take !== lastLoadOptions.take,\r\n fullReload: isFullReload\r\n };\r\n operationTypes.reload = isFullReload || operationTypes.sorting || operationTypes.grouping || operationTypes.filtering;\r\n operationTypes.paging = operationTypes.pageIndex || operationTypes.take\r\n }\r\n return operationTypes\r\n }\r\n\r\n function executeTask(action, timeout) {\r\n if ((0, _type.isDefined)(timeout)) {\r\n (0, _common.executeAsync)(action, timeout)\r\n } else {\r\n action()\r\n }\r\n }\r\n\r\n function createEmptyPagesData() {\r\n return {\r\n pages: {}\r\n }\r\n }\r\n\r\n function getPageDataFromCache(options) {\r\n return options.cachedPagesData.pages[options.pageIndex]\r\n }\r\n\r\n function setPageDataToCache(options, data) {\r\n var pageIndex = options.pageIndex;\r\n if (void 0 !== pageIndex) {\r\n options.cachedPagesData.pages[pageIndex] = data\r\n }\r\n }\r\n return {\r\n init: function(dataSource, remoteOperations) {\r\n var that = this;\r\n that._dataSource = dataSource;\r\n that._remoteOperations = remoteOperations || {};\r\n that._isLastPage = !dataSource.isLastPage();\r\n that._hasLastPage = false;\r\n that._currentTotalCount = 0;\r\n that._cachedPagesData = createEmptyPagesData();\r\n that._lastOperationTypes = {};\r\n that._eventsStrategy = dataSource._eventsStrategy;\r\n that._skipCorrection = 0;\r\n that._isLoadingAll = false;\r\n that.changed = (0, _callbacks.default)();\r\n that.loadingChanged = (0, _callbacks.default)();\r\n that.loadError = (0, _callbacks.default)();\r\n that.customizeStoreLoadOptions = (0, _callbacks.default)();\r\n that.changing = (0, _callbacks.default)();\r\n that._dataChangedHandler = that._handleDataChanged.bind(that);\r\n that._dataLoadingHandler = that._handleDataLoading.bind(that);\r\n that._dataLoadedHandler = that._handleDataLoaded.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._pushHandler = that._handlePush.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n dataSource.on(\"changed\", that._dataChangedHandler);\r\n dataSource.on(\"customizeStoreLoadOptions\", that._dataLoadingHandler);\r\n dataSource.on(\"customizeLoadResult\", that._dataLoadedHandler);\r\n dataSource.on(\"loadingChanged\", that._loadingChangedHandler);\r\n dataSource.on(\"loadError\", that._loadErrorHandler);\r\n dataSource.on(\"changing\", that._changingHandler);\r\n dataSource.store().on(\"push\", that._pushHandler);\r\n (0, _iterator.each)(dataSource, function(memberName, member) {\r\n if (!that[memberName] && (0, _type.isFunction)(member)) {\r\n that[memberName] = function() {\r\n return this._dataSource[memberName].apply(this._dataSource, arguments)\r\n }\r\n }\r\n })\r\n },\r\n remoteOperations: function() {\r\n return this._remoteOperations\r\n },\r\n dispose: function(isSharedDataSource) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var store = dataSource.store();\r\n dataSource.off(\"changed\", that._dataChangedHandler);\r\n dataSource.off(\"customizeStoreLoadOptions\", that._dataLoadingHandler);\r\n dataSource.off(\"customizeLoadResult\", that._dataLoadedHandler);\r\n dataSource.off(\"loadingChanged\", that._loadingChangedHandler);\r\n dataSource.off(\"loadError\", that._loadErrorHandler);\r\n dataSource.off(\"changing\", that._changingHandler);\r\n store && store.off(\"push\", that._pushHandler);\r\n if (!isSharedDataSource) {\r\n dataSource.dispose()\r\n }\r\n },\r\n refresh: function(options, operationTypes) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n if (operationTypes.reload) {\r\n that.resetCurrentTotalCount();\r\n that._isLastPage = !dataSource.paginate();\r\n that._hasLastPage = that._isLastPage\r\n }\r\n },\r\n resetCurrentTotalCount: function() {\r\n this._currentTotalCount = 0;\r\n this._skipCorrection = 0\r\n },\r\n resetCache: function() {\r\n this._cachedStoreData = void 0;\r\n this._cachedPagingData = void 0\r\n },\r\n resetPagesCache: function() {\r\n this._cachedPagesData = createEmptyPagesData()\r\n },\r\n _needClearStoreDataCache: function() {\r\n var remoteOperations = this.remoteOperations();\r\n var operationTypes = calculateOperationTypes(this._lastLoadOptions || {}, {});\r\n var isLocalOperations = Object.keys(remoteOperations).every(function(operationName) {\r\n return !operationTypes[operationName] || !remoteOperations[operationName]\r\n });\r\n return !isLocalOperations\r\n },\r\n push: function(changes, fromStore) {\r\n var store = this.store();\r\n if (this._needClearStoreDataCache()) {\r\n this._cachedStoreData = void 0\r\n }\r\n this._cachedPagingData = void 0;\r\n this.resetPagesCache(true);\r\n if (this._cachedStoreData) {\r\n (0, _array_utils.applyBatch)({\r\n keyInfo: store,\r\n data: this._cachedStoreData,\r\n changes: changes\r\n })\r\n }\r\n if (!fromStore) {\r\n this._applyBatch(changes)\r\n }\r\n },\r\n getDataIndexGetter: function() {\r\n var _this = this;\r\n if (!this._dataIndexGetter) {\r\n var indexByKey;\r\n var storeData;\r\n var store = this.store();\r\n this._dataIndexGetter = function(data) {\r\n var isCacheUpdated = storeData && storeData !== _this._cachedStoreData;\r\n if (!indexByKey || isCacheUpdated) {\r\n storeData = _this._cachedStoreData || [];\r\n indexByKey = {};\r\n for (var i = 0; i < storeData.length; i++) {\r\n indexByKey[(0, _common.getKeyHash)(store.keyOf(storeData[i]))] = i\r\n }\r\n }\r\n return indexByKey[(0, _common.getKeyHash)(store.keyOf(data))]\r\n }\r\n }\r\n return this._dataIndexGetter\r\n },\r\n _getKeyInfo: function() {\r\n return this.store()\r\n },\r\n _applyBatch: function(changes) {\r\n var _this2 = this;\r\n var keyInfo = this._getKeyInfo();\r\n var dataSource = this._dataSource;\r\n var groupCount = _uiData_grid.default.normalizeSortingInfo(this.group()).length;\r\n var totalCount = this.totalCount();\r\n var isVirtualMode = \"virtual\" === this.option(\"scrolling.mode\");\r\n changes = changes.filter(function(change) {\r\n return !dataSource.paginate() || \"insert\" !== change.type || void 0 !== change.index\r\n });\r\n var getItemCount = function() {\r\n return groupCount ? _this2.itemsCount() : _this2._items.length\r\n };\r\n var oldItemCount = getItemCount();\r\n (0, _array_utils.applyBatch)({\r\n keyInfo: keyInfo,\r\n data: this._items,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true\r\n });\r\n (0, _array_utils.applyBatch)({\r\n keyInfo: keyInfo,\r\n data: dataSource.items(),\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true\r\n });\r\n if (this._currentTotalCount > 0 || isVirtualMode && totalCount === oldItemCount) {\r\n this._skipCorrection += getItemCount() - oldItemCount\r\n }\r\n changes.splice(0, changes.length)\r\n },\r\n _handlePush: function(changes) {\r\n this.push(changes, true)\r\n },\r\n _handleChanging: function(e) {\r\n this.changing.fire(e);\r\n this._applyBatch(e.changes)\r\n },\r\n _needCleanCacheByOperation: function(operationType, remoteOperations) {\r\n var operationTypesByOrder = [\"filtering\", \"sorting\", \"paging\"];\r\n var operationTypeIndex = operationTypesByOrder.indexOf(operationType);\r\n var currentOperationTypes = operationTypeIndex >= 0 ? operationTypesByOrder.slice(operationTypeIndex) : [operationType];\r\n return currentOperationTypes.some(function(operationType) {\r\n return remoteOperations[operationType]\r\n })\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n var that = this;\r\n var cachedStoreData = that._cachedStoreData;\r\n var cachedPagingData = that._cachedPagingData;\r\n var cachedPagesData = that._cachedPagesData;\r\n if (options.storeLoadOptions.filter && !options.remoteOperations.filtering || options.storeLoadOptions.sort && !options.remoteOperations.sorting) {\r\n options.remoteOperations = {\r\n filtering: options.remoteOperations.filtering\r\n }\r\n }\r\n if (operationTypes.fullReload) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0;\r\n cachedPagesData = createEmptyPagesData()\r\n } else {\r\n if (operationTypes.reload) {\r\n cachedPagingData = void 0;\r\n cachedPagesData = createEmptyPagesData()\r\n } else {\r\n if (operationTypes.take || operationTypes.groupExpanding) {\r\n cachedPagesData = createEmptyPagesData()\r\n }\r\n }(0, _iterator.each)(operationTypes, function(operationType, value) {\r\n if (value && that._needCleanCacheByOperation(operationType, options.remoteOperations)) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0\r\n }\r\n })\r\n }\r\n if (cachedPagingData) {\r\n options.remoteOperations.paging = false\r\n }\r\n options.cachedStoreData = cachedStoreData;\r\n options.cachedPagingData = cachedPagingData;\r\n options.cachedPagesData = cachedPagesData;\r\n if (!options.isCustomLoading) {\r\n that._cachedStoreData = cachedStoreData;\r\n that._cachedPagingData = cachedPagingData;\r\n that._cachedPagesData = cachedPagesData\r\n }\r\n },\r\n _handleDataLoading: function(options) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var lastLoadOptions = that._lastLoadOptions;\r\n that.customizeStoreLoadOptions.fire(options);\r\n options.delay = this.option(\"loadingTimeout\");\r\n options.originalStoreLoadOptions = options.storeLoadOptions;\r\n options.remoteOperations = (0, _extend.extend)({}, this.remoteOperations());\r\n var isFullReload = !that.isLoaded() && !that._isRefreshing;\r\n if (that.option(\"integrationOptions.renderedOnServer\") && !that.isLoaded()) {\r\n options.delay = void 0\r\n }\r\n var loadOptions = (0, _extend.extend)({\r\n pageIndex: that.pageIndex()\r\n }, options.storeLoadOptions);\r\n var operationTypes = calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload);\r\n that._customizeRemoteOperations(options, operationTypes);\r\n if (!options.isCustomLoading) {\r\n var isRefreshing = that._isRefreshing;\r\n options.pageIndex = dataSource.pageIndex();\r\n options.lastLoadOptions = loadOptions;\r\n options.operationTypes = operationTypes;\r\n that._loadingOperationTypes = operationTypes;\r\n that._isRefreshing = true;\r\n (0, _deferred.when)(isRefreshing || that._isRefreshed || that.refresh(options, operationTypes)).done(function() {\r\n if (that._lastOperationId === options.operationId) {\r\n that._isRefreshed = true;\r\n that.load().always(function() {\r\n that._isRefreshed = false\r\n })\r\n }\r\n }).fail(function() {\r\n dataSource.cancel(options.operationId)\r\n }).always(function() {\r\n that._isRefreshing = false\r\n });\r\n dataSource.cancel(that._lastOperationId);\r\n that._lastOperationId = options.operationId;\r\n if (that._isRefreshing) {\r\n dataSource.cancel(that._lastOperationId)\r\n }\r\n }\r\n this._handleDataLoadingCore(options)\r\n },\r\n _handleDataLoadingCore: function(options) {\r\n var remoteOperations = options.remoteOperations;\r\n options.loadOptions = {};\r\n var cachedExtra = options.cachedPagesData.extra;\r\n var localLoadOptionNames = {\r\n filter: !remoteOperations.filtering,\r\n sort: !remoteOperations.sorting,\r\n group: !remoteOperations.grouping,\r\n summary: !remoteOperations.summary,\r\n skip: !remoteOperations.paging,\r\n take: !remoteOperations.paging,\r\n requireTotalCount: cachedExtra && \"totalCount\" in cachedExtra || !remoteOperations.paging\r\n };\r\n (0, _iterator.each)(options.storeLoadOptions, function(optionName, optionValue) {\r\n if (localLoadOptionNames[optionName]) {\r\n options.loadOptions[optionName] = optionValue;\r\n delete options.storeLoadOptions[optionName]\r\n }\r\n });\r\n if (cachedExtra) {\r\n options.extra = cachedExtra\r\n }\r\n options.data = getPageDataFromCache(options) || options.cachedStoreData\r\n },\r\n _handleDataLoaded: function(options) {\r\n var _this3 = this;\r\n var loadOptions = options.loadOptions;\r\n var localPaging = options.remoteOperations && !options.remoteOperations.paging;\r\n var cachedPagesData = options.cachedPagesData;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var needCache = false !== this.option(\"cacheEnabled\") && storeLoadOptions;\r\n var needPageCache = needCache && !options.isCustomLoading && cachedPagesData && (!localPaging || storeLoadOptions.group) && !this.option(\"legacyRendering\");\r\n var needPagingCache = needCache && localPaging;\r\n var needStoreCache = needPagingCache && !options.isCustomLoading;\r\n if (!loadOptions) {\r\n this._dataSource.cancel(options.operationId);\r\n return\r\n }\r\n if (options.lastLoadOptions) {\r\n this._lastLoadOptions = options.lastLoadOptions;\r\n Object.keys(options.operationTypes).forEach(function(operationType) {\r\n _this3._lastOperationTypes[operationType] = _this3._lastOperationTypes[operationType] || options.operationTypes[operationType]\r\n })\r\n }\r\n if (localPaging) {\r\n options.skip = loadOptions.skip;\r\n options.take = loadOptions.take;\r\n delete loadOptions.skip;\r\n delete loadOptions.take\r\n }\r\n if (loadOptions.group) {\r\n loadOptions.group = options.group || loadOptions.group\r\n }\r\n var groupCount = _uiData_grid.default.normalizeSortingInfo(storeLoadOptions.group || loadOptions.group).length;\r\n if (!needPageCache || !getPageDataFromCache(options)) {\r\n if (needPagingCache && options.cachedPagingData) {\r\n options.data = cloneItems(options.cachedPagingData, groupCount)\r\n } else {\r\n if (needStoreCache) {\r\n if (!this._cachedStoreData) {\r\n this._cachedStoreData = cloneItems(options.data, _uiData_grid.default.normalizeSortingInfo(storeLoadOptions.group).length)\r\n } else {\r\n if (options.mergeStoreLoadData) {\r\n options.data = this._cachedStoreData = this._cachedStoreData.concat(options.data)\r\n }\r\n }\r\n }\r\n new _array_store.default(options.data).load(loadOptions).done(function(data) {\r\n options.data = data;\r\n if (needStoreCache) {\r\n _this3._cachedPagingData = cloneItems(options.data, groupCount)\r\n }\r\n }).fail(function(error) {\r\n options.data = (new _deferred.Deferred).reject(error)\r\n })\r\n }\r\n if (loadOptions.requireTotalCount && localPaging) {\r\n options.extra = (0, _type.isPlainObject)(options.extra) ? options.extra : {};\r\n options.extra.totalCount = options.data.length\r\n }\r\n if (options.extra && options.extra.totalCount >= 0 && (false === storeLoadOptions.requireTotalCount || false === loadOptions.requireTotalCount)) {\r\n options.extra.totalCount = -1\r\n }\r\n this._handleDataLoadedCore(options);\r\n if (needPageCache) {\r\n cachedPagesData.extra = cachedPagesData.extra || (0, _extend.extend)({}, options.extra);\r\n (0, _deferred.when)(options.data).done(function(data) {\r\n setPageDataToCache(options, cloneItems(data, groupCount))\r\n })\r\n }\r\n }\r\n options.storeLoadOptions = options.originalStoreLoadOptions\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n if (options.remoteOperations && !options.remoteOperations.paging && Array.isArray(options.data)) {\r\n if (void 0 !== options.skip) {\r\n options.data = options.data.slice(options.skip)\r\n }\r\n if (void 0 !== options.take) {\r\n options.data = options.data.slice(0, options.take)\r\n }\r\n }\r\n },\r\n _handleLoadingChanged: function(isLoading) {\r\n this.loadingChanged.fire(isLoading)\r\n },\r\n _handleLoadError: function(error) {\r\n this.loadError.fire(error);\r\n this.changed.fire({\r\n changeType: \"loadError\",\r\n error: error\r\n })\r\n },\r\n _handleDataChanged: function(args) {\r\n var that = this;\r\n var currentTotalCount;\r\n var dataSource = that._dataSource;\r\n var isLoading = false;\r\n var itemsCount = that.itemsCount();\r\n that._isLastPage = !itemsCount || !that.pageSize() || itemsCount < that.pageSize();\r\n if (that._isLastPage) {\r\n that._hasLastPage = true\r\n }\r\n if (dataSource.totalCount() >= 0) {\r\n if (dataSource.pageIndex() >= that.pageCount()) {\r\n dataSource.pageIndex(that.pageCount() - 1);\r\n that.pageIndex(dataSource.pageIndex());\r\n that.resetPagesCache();\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n } else {\r\n if (!args || (0, _type.isDefined)(args.changeType)) {\r\n currentTotalCount = dataSource.pageIndex() * that.pageSize() + itemsCount;\r\n that._currentTotalCount = Math.max(that._currentTotalCount, currentTotalCount);\r\n if (0 === itemsCount && dataSource.pageIndex() >= that.pageCount()) {\r\n dataSource.pageIndex(that.pageCount() - 1);\r\n if (\"infinite\" !== that.option(\"scrolling.mode\")) {\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n }\r\n }\r\n }\r\n if (!isLoading) {\r\n that._operationTypes = that._lastOperationTypes;\r\n that._lastOperationTypes = {};\r\n that.component._optionCache = {};\r\n that.changed.fire(args);\r\n that.component._optionCache = void 0\r\n }\r\n },\r\n _scheduleCustomLoadCallbacks: function(deferred) {\r\n var that = this;\r\n that._isCustomLoading = true;\r\n deferred.always(function() {\r\n that._isCustomLoading = false\r\n })\r\n },\r\n loadingOperationTypes: function() {\r\n return this._loadingOperationTypes\r\n },\r\n operationTypes: function() {\r\n return this._operationTypes\r\n },\r\n lastLoadOptions: function() {\r\n return this._lastLoadOptions || {}\r\n },\r\n isLastPage: function() {\r\n return this._isLastPage\r\n },\r\n totalCount: function() {\r\n return parseInt((this._currentTotalCount || this._dataSource.totalCount()) + this._skipCorrection)\r\n },\r\n itemsCount: function() {\r\n return this._dataSource.items().length\r\n },\r\n totalItemsCount: function() {\r\n return this.totalCount()\r\n },\r\n pageSize: function() {\r\n var dataSource = this._dataSource;\r\n if (!arguments.length && !dataSource.paginate()) {\r\n return 0\r\n }\r\n return dataSource.pageSize.apply(dataSource, arguments)\r\n },\r\n pageCount: function() {\r\n var that = this;\r\n var count = that.totalItemsCount() - that._skipCorrection;\r\n var pageSize = that.pageSize();\r\n if (pageSize && count > 0) {\r\n return Math.max(1, Math.ceil(count / pageSize))\r\n }\r\n return 1\r\n },\r\n hasKnownLastPage: function() {\r\n return this._hasLastPage || this._dataSource.totalCount() >= 0\r\n },\r\n loadFromStore: function(loadOptions, store) {\r\n var dataSource = this._dataSource;\r\n var d = new _deferred.Deferred;\r\n if (!dataSource) {\r\n return\r\n }\r\n store = store || dataSource.store();\r\n store.load(loadOptions).done(function(data, extra) {\r\n if (data && !Array.isArray(data) && Array.isArray(data.data)) {\r\n extra = data;\r\n data = data.data\r\n }\r\n d.resolve(data, extra)\r\n }).fail(d.reject);\r\n return d\r\n },\r\n isCustomLoading: function() {\r\n return !!this._isCustomLoading\r\n },\r\n load: function(options) {\r\n var _this4 = this;\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new _deferred.Deferred;\r\n if (options) {\r\n var store = dataSource.store();\r\n var dataSourceLoadOptions = dataSource.loadOptions();\r\n var loadResult = {\r\n storeLoadOptions: options,\r\n isCustomLoading: true\r\n };\r\n (0, _iterator.each)(store._customLoadOptions() || [], function(_, optionName) {\r\n if (!(optionName in loadResult.storeLoadOptions)) {\r\n loadResult.storeLoadOptions[optionName] = dataSourceLoadOptions[optionName]\r\n }\r\n });\r\n this._isLoadingAll = options.isLoadingAll;\r\n that._scheduleCustomLoadCallbacks(d);\r\n dataSource._scheduleLoadCallbacks(d);\r\n that._handleDataLoading(loadResult);\r\n executeTask(function() {\r\n if (!dataSource.store()) {\r\n return d.reject(\"canceled\")\r\n }(0, _deferred.when)(loadResult.data || that.loadFromStore(loadResult.storeLoadOptions)).done(function(data, extra) {\r\n loadResult.data = data;\r\n loadResult.extra = extra || {};\r\n that._handleDataLoaded(loadResult);\r\n if (options.requireTotalCount && void 0 === loadResult.extra.totalCount) {\r\n loadResult.extra.totalCount = store.totalCount(loadResult.storeLoadOptions)\r\n }(0, _deferred.when)(loadResult.data, loadResult.extra.totalCount).done(function(data, totalCount) {\r\n loadResult.extra.totalCount = totalCount;\r\n d.resolve(data, loadResult.extra)\r\n }).fail(d.reject)\r\n }).fail(d.reject)\r\n }, that.option(\"loadingTimeout\"));\r\n return d.fail(function() {\r\n that._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n }).always(function() {\r\n _this4._isLoadingAll = false\r\n }).promise()\r\n } else {\r\n return dataSource.load()\r\n }\r\n },\r\n reload: function(full) {\r\n return full ? this._dataSource.reload() : this._dataSource.load()\r\n },\r\n getCachedStoreData: function() {\r\n return this._cachedStoreData\r\n }\r\n }\r\n}());\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/drawer/ui.drawer.rendering.strategy.shrink.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _uiDrawer = require(\"./ui.drawer.animation\");\r\nvar _uiDrawerRendering = _interopRequireDefault(require(\"./ui.drawer.rendering.strategy\"));\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _inflector = require(\"../../core/utils/inflector\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar ShrinkStrategy = function(_DrawerStrategy) {\r\n _inheritsLoose(ShrinkStrategy, _DrawerStrategy);\r\n\r\n function ShrinkStrategy() {\r\n return _DrawerStrategy.apply(this, arguments) || this\r\n }\r\n var _proto = ShrinkStrategy.prototype;\r\n _proto._internalRenderPosition = function(changePositionUsingFxAnimation, whenAnimationCompleted) {\r\n var drawer = this.getDrawerInstance();\r\n var direction = drawer.calcTargetPosition();\r\n var $panel = (0, _renderer.default)(drawer.content());\r\n var panelSize = this._getPanelSize(drawer.option(\"opened\"));\r\n var panelOffset = this._getPanelOffset(drawer.option(\"opened\"));\r\n var revealMode = drawer.option(\"revealMode\");\r\n if (changePositionUsingFxAnimation) {\r\n if (\"slide\" === revealMode) {\r\n _uiDrawer.animation.margin({\r\n complete: function() {\r\n whenAnimationCompleted.resolve()\r\n },\r\n $element: $panel,\r\n duration: drawer.option(\"animationDuration\"),\r\n direction: direction,\r\n margin: panelOffset\r\n })\r\n } else {\r\n if (\"expand\" === revealMode) {\r\n _uiDrawer.animation.size({\r\n complete: function() {\r\n whenAnimationCompleted.resolve()\r\n },\r\n $element: $panel,\r\n duration: drawer.option(\"animationDuration\"),\r\n direction: direction,\r\n size: panelSize\r\n })\r\n }\r\n }\r\n } else {\r\n if (\"slide\" === revealMode) {\r\n $panel.css(\"margin\" + (0, _inflector.camelize)(direction, true), panelOffset)\r\n } else {\r\n if (\"expand\" === revealMode) {\r\n $panel.css(drawer.isHorizontalDirection() ? \"width\" : \"height\", panelSize)\r\n }\r\n }\r\n }\r\n };\r\n _proto.isViewContentFirst = function(position, isRtl) {\r\n return (isRtl ? \"left\" === position : \"right\" === position) || \"bottom\" === position\r\n };\r\n return ShrinkStrategy\r\n}(_uiDrawerRendering.default);\r\nvar _default = ShrinkStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.focus.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.focus\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _uiData_grid2 = require(\"./ui.data_grid.utils\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\n_uiData_grid.default.registerModule(\"focus\", (0, _extend.extend)(true, {}, _uiGrid_core.default, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n changeRowExpand: function(path, isRowClick) {\r\n if (this.option(\"focusedRowEnabled\") && Array.isArray(path) && this.isRowExpanded(path)) {\r\n var keyboardNavigation = this.getController(\"keyboardNavigation\");\r\n if ((!isRowClick || !keyboardNavigation.isKeyboardEnabled()) && this._isFocusedRowInsideGroup(path)) {\r\n this.option(\"focusedRowKey\", path)\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isFocusedRowInsideGroup: function(path) {\r\n var columnsController = this.getController(\"columns\");\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var rowIndex = this.getRowIndexByKey(focusedRowKey);\r\n var focusedRow = rowIndex >= 0 && this.getVisibleRows()[rowIndex];\r\n var groups = columnsController.getGroupDataSourceParameters(true);\r\n if (focusedRow) {\r\n for (var i = 0; i < path.length; ++i) {\r\n var getter = (0, _data.compileGetter)(groups[i] && groups[i].selector);\r\n if (getter(focusedRow.data) !== path[i]) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n },\r\n _getGroupPath: function(group) {\r\n var groupPath = [group.key];\r\n var items = group.items;\r\n while (items && items[0]) {\r\n var item = items[0];\r\n if (void 0 !== item.key) {\r\n groupPath.push(item.key)\r\n }\r\n items = item.items\r\n }\r\n return groupPath\r\n },\r\n _expandGroupByPath: function(that, groupPath, level) {\r\n var d = new _deferred.Deferred;\r\n level++;\r\n that.expandRow(groupPath.slice(0, level)).done(function() {\r\n if (level === groupPath.length) {\r\n d.resolve()\r\n } else {\r\n that._expandGroupByPath(that, groupPath, level).done(d.resolve).fail(d.reject)\r\n }\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n _calculateGlobalRowIndexByGroupedData: function(key) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var filter = that._generateFilterByKey(key);\r\n var deferred = new _deferred.Deferred;\r\n var isGroupKey = Array.isArray(key);\r\n var group = dataSource.group();\r\n if (isGroupKey) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n if (!dataSource._grouping._updatePagingOptions) {\r\n that._calculateGlobalRowIndexByFlatData(key, null, true).done(deferred.resolve).fail(deferred.reject);\r\n return deferred\r\n }\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter),\r\n group: group\r\n }).done(function(data) {\r\n if (!data || 0 === data.length || !(0, _type.isDefined)(data[0].key) || data[0].key === -1) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n var groupPath = that._getGroupPath(data[0]);\r\n that._expandGroupByPath(that, groupPath, 0).done(function() {\r\n that._calculateExpandedRowGlobalIndex(deferred, key, groupPath, group)\r\n }).fail(deferred.reject)\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _calculateExpandedRowGlobalIndex: function(deferred, key, groupPath, group) {\r\n var groupFilter = (0, _uiData_grid2.createGroupFilter)(groupPath, {\r\n group: group\r\n });\r\n var dataSource = this._dataSource;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrolling = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var pageSize = dataSource.pageSize();\r\n var groupOffset;\r\n dataSource._grouping._updatePagingOptions({\r\n skip: 0,\r\n take: MAX_SAFE_INTEGER\r\n }, function(groupInfo, totalOffset) {\r\n if ((0, _common.equalByValue)(groupInfo.path, groupPath)) {\r\n groupOffset = totalOffset\r\n }\r\n });\r\n this._calculateGlobalRowIndexByFlatData(key, groupFilter).done(function(dataOffset) {\r\n var count;\r\n var groupContinuationCount;\r\n if (dataOffset < 0) {\r\n deferred.resolve(-1);\r\n return\r\n }\r\n var currentPageOffset = groupOffset % pageSize || pageSize;\r\n count = currentPageOffset + dataOffset - groupPath.length;\r\n if (isVirtualScrolling) {\r\n groupContinuationCount = 0\r\n } else {\r\n groupContinuationCount = Math.floor(count / (pageSize - groupPath.length)) * groupPath.length\r\n }\r\n count = groupOffset + dataOffset + groupContinuationCount;\r\n deferred.resolve(count)\r\n }).fail(deferred.reject)\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.columns_controller.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.columns_controller\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"columns\", {\r\n defaultOptions: function() {\r\n return (0, _extend.extend)(true, {}, _uiGrid_core.default.defaultOptions(), {\r\n commonColumnSettings: {\r\n allowExporting: true\r\n }\r\n })\r\n },\r\n controllers: _uiGrid_core.default.controllers\r\n});\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.master_detail.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar MASTER_DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n masterDetail: {\r\n enabled: false,\r\n autoExpandAll: false,\r\n template: null\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n columns: {\r\n _getExpandColumnsCore: function() {\r\n var expandColumns = this.callBase();\r\n if (this.option(\"masterDetail.enabled\")) {\r\n expandColumns.push({\r\n type: \"detailExpand\",\r\n cellTemplate: _uiGrid_core.default.getExpandCellTemplate()\r\n })\r\n }\r\n return expandColumns\r\n }\r\n },\r\n data: function() {\r\n var initMasterDetail = function(that) {\r\n that._expandedItems = [];\r\n that._isExpandAll = that.option(\"masterDetail.autoExpandAll\")\r\n };\r\n return {\r\n init: function() {\r\n var that = this;\r\n initMasterDetail(that);\r\n that.callBase()\r\n },\r\n expandAll: function(groupIndex) {\r\n var that = this;\r\n if (groupIndex < 0) {\r\n that._isExpandAll = true;\r\n that._expandedItems = [];\r\n that.updateItems()\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n collapseAll: function(groupIndex) {\r\n var that = this;\r\n if (groupIndex < 0) {\r\n that._isExpandAll = false;\r\n that._expandedItems = [];\r\n that.updateItems()\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n isRowExpanded: function(key) {\r\n var that = this;\r\n var expandIndex = _uiGrid_core.default.getIndexByKey(key, that._expandedItems);\r\n if (Array.isArray(key)) {\r\n return that.callBase.apply(that, arguments)\r\n } else {\r\n return !!(that._isExpandAll ^ (expandIndex >= 0 && that._expandedItems[expandIndex].visible))\r\n }\r\n },\r\n _getRowIndicesForExpand: function(key) {\r\n var rowIndex = this.getRowIndexByKey(key);\r\n return [rowIndex, rowIndex + 1]\r\n },\r\n _changeRowExpandCore: function(key) {\r\n var that = this;\r\n var result;\r\n if (Array.isArray(key)) {\r\n result = that.callBase.apply(that, arguments)\r\n } else {\r\n var expandIndex = _uiGrid_core.default.getIndexByKey(key, that._expandedItems);\r\n if (expandIndex >= 0) {\r\n var visible = that._expandedItems[expandIndex].visible;\r\n that._expandedItems[expandIndex].visible = !visible\r\n } else {\r\n that._expandedItems.push({\r\n key: key,\r\n visible: true\r\n })\r\n }\r\n that.updateItems({\r\n changeType: \"update\",\r\n rowIndices: that._getRowIndicesForExpand(key)\r\n });\r\n result = (new _deferred.Deferred).resolve()\r\n }\r\n return result\r\n },\r\n _processDataItem: function(data, options) {\r\n var that = this;\r\n var dataItem = that.callBase.apply(that, arguments);\r\n dataItem.isExpanded = that.isRowExpanded(dataItem.key);\r\n if (void 0 === options.detailColumnIndex) {\r\n options.detailColumnIndex = -1;\r\n (0, _iterator.each)(options.visibleColumns, function(index, column) {\r\n if (\"expand\" === column.command && !(0, _type.isDefined)(column.groupIndex)) {\r\n options.detailColumnIndex = index;\r\n return false\r\n }\r\n })\r\n }\r\n if (options.detailColumnIndex >= 0) {\r\n dataItem.values[options.detailColumnIndex] = dataItem.isExpanded\r\n }\r\n return dataItem\r\n },\r\n _processItems: function(items, change) {\r\n var that = this;\r\n var changeType = change.changeType;\r\n var result = [];\r\n items = that.callBase.apply(that, arguments);\r\n if (\"loadingAll\" === changeType) {\r\n return items\r\n }\r\n if (\"refresh\" === changeType) {\r\n that._expandedItems = (0, _common.grep)(that._expandedItems, function(item) {\r\n return item.visible\r\n })\r\n }(0, _iterator.each)(items, function(index, item) {\r\n result.push(item);\r\n var expandIndex = _uiGrid_core.default.getIndexByKey(item.key, that._expandedItems);\r\n if (\"data\" === item.rowType && (item.isExpanded || expandIndex >= 0) && !item.isNewRow) {\r\n result.push({\r\n visible: item.isExpanded,\r\n rowType: \"detail\",\r\n key: item.key,\r\n data: item.data,\r\n values: []\r\n })\r\n }\r\n });\r\n return result\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n var isEnabledChanged;\r\n var isAutoExpandAllChanged;\r\n if (\"masterDetail\" === args.name) {\r\n args.name = \"dataSource\";\r\n switch (args.fullName) {\r\n case \"masterDetail\":\r\n var value = args.value || {};\r\n var previousValue = args.previousValue || {};\r\n isEnabledChanged = value.enabled !== previousValue.enabled;\r\n isAutoExpandAllChanged = value.autoExpandAll !== previousValue.autoExpandAll;\r\n break;\r\n case \"masterDetail.enabled\":\r\n isEnabledChanged = true;\r\n break;\r\n case \"masterDetail.autoExpandAll\":\r\n isAutoExpandAllChanged = true\r\n }\r\n if (isEnabledChanged || isAutoExpandAllChanged) {\r\n initMasterDetail(that)\r\n }\r\n }\r\n that.callBase(args)\r\n }\r\n }\r\n }(),\r\n resizing: {\r\n fireContentReadyAction: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateParentDataGrids(this.component.$element())\r\n },\r\n _updateParentDataGrids: function($element) {\r\n var _this = this;\r\n var $masterDetailRow = $element.closest(\".\" + MASTER_DETAIL_ROW_CLASS);\r\n if ($masterDetailRow.length) {\r\n (0, _deferred.when)(this._updateMasterDataGrid($masterDetailRow, $element)).done(function() {\r\n _this._updateParentDataGrids($masterDetailRow.parent())\r\n })\r\n }\r\n },\r\n _updateMasterDataGrid: function($masterDetailRow, $detailElement) {\r\n var masterRowOptions = (0, _renderer.default)($masterDetailRow).data(\"options\");\r\n var masterDataGrid = (0, _renderer.default)($masterDetailRow).closest(\".\" + this.getWidgetContainerClass()).parent().data(\"dxDataGrid\");\r\n if (masterRowOptions && masterDataGrid) {\r\n if (masterDataGrid.getView(\"rowsView\").isFixedColumns()) {\r\n this._updateFixedMasterDetailGrids(masterDataGrid, masterRowOptions.rowIndex, $detailElement)\r\n } else {\r\n var scrollable = masterDataGrid.getScrollable();\r\n return scrollable && scrollable.update()\r\n }\r\n }\r\n },\r\n _updateFixedMasterDetailGrids: function(masterDataGrid, masterRowIndex, $detailElement) {\r\n var _this2 = this;\r\n var $rows = (0, _renderer.default)(masterDataGrid.getRowElement(masterRowIndex));\r\n if ($rows && 2 === $rows.length && $rows.eq(0).height() !== $rows.eq(1).height()) {\r\n var detailElementWidth = $detailElement.width();\r\n return masterDataGrid.updateDimensions().done(function() {\r\n var isDetailHorizontalScrollCanBeShown = _this2.option(\"columnAutoWidth\") && true === masterDataGrid.option(\"scrolling.useNative\");\r\n var isDetailGridWidthChanged = isDetailHorizontalScrollCanBeShown && detailElementWidth !== $detailElement.width();\r\n if (isDetailHorizontalScrollCanBeShown && isDetailGridWidthChanged) {\r\n _this2.updateDimensions()\r\n }\r\n })\r\n }\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"masterDetail.template\")) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n if ($rowsTable) {\r\n $rowsTable.find(\".dx-master-detail-cell\").css(\"maxWidth\", isBestFit ? 0 : \"\")\r\n }\r\n }\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: function() {\r\n return {\r\n _getCellTemplate: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var editingController = that.getController(\"editing\");\r\n var isEditRow = editingController && editingController.isEditRow(options.rowIndex);\r\n var template;\r\n if (\"detail\" === column.command && !isEditRow) {\r\n template = that.option(\"masterDetail.template\") || {\r\n allowRenderToDetachedContainer: false,\r\n render: that._getDefaultTemplate(column)\r\n }\r\n } else {\r\n template = that.callBase.apply(that, arguments)\r\n }\r\n return template\r\n },\r\n _isDetailRow: function(row) {\r\n return row && row.rowType && 0 === row.rowType.indexOf(\"detail\")\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (row && this._isDetailRow(row)) {\r\n this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n $row.addClass(MASTER_DETAIL_ROW_CLASS);\r\n if ((0, _type.isDefined)(row.visible)) {\r\n $row.toggle(row.visible)\r\n }\r\n }\r\n return $row\r\n },\r\n _renderCells: function($row, options) {\r\n var row = options.row;\r\n var $detailCell;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (row.rowType && this._isDetailRow(row)) {\r\n if (this._needRenderCell(0, options.columnIndices)) {\r\n $detailCell = this._renderCell($row, {\r\n value: null,\r\n row: row,\r\n rowIndex: row.rowIndex,\r\n column: {\r\n command: \"detail\"\r\n },\r\n columnIndex: 0\r\n });\r\n $detailCell.addClass(CELL_FOCUS_DISABLED_CLASS).addClass(MASTER_DETAIL_CELL_CLASS).attr(\"colSpan\", visibleColumns.length)\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }()\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.tag_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar tagHelper = {\r\n toXml: function(tagName, attributes, content) {\r\n var result = [\"<\", tagName];\r\n for (var attributeName in attributes) {\r\n var attributeValue = attributes[attributeName];\r\n if ((0, _type.isDefined)(attributeValue)) {\r\n result.push(\" \", attributeName, '=\"', attributeValue, '\"')\r\n }\r\n }\r\n if ((0, _type.isDefined)(content) && \"\" !== content) {\r\n result.push(\">\", content, \"\")\r\n } else {\r\n result.push(\" />\")\r\n }\r\n return result.join(\"\")\r\n }\r\n};\r\nvar _default = tagHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.file_uploader.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _guid = _interopRequireDefault(require(\"../../core/guid\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _file_uploader = _interopRequireDefault(require(\"../file_uploader\"));\r\nvar _uiFile_manager = require(\"./ui.file_manager.common\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_FILE_UPLOADER_CLASS = \"dx-filemanager-fileuploader\";\r\nvar FILE_MANAGER_FILE_UPLOADER_DROPZONE_PLACEHOLER_CLASS = \"dx-filemanager-fileuploader-dropzone-placeholder\";\r\nvar FileManagerFileUploader = function(_Widget) {\r\n _inheritsLoose(FileManagerFileUploader, _Widget);\r\n\r\n function FileManagerFileUploader() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerFileUploader.prototype;\r\n _proto._initMarkup = function() {\r\n this._initActions();\r\n this.$element().addClass(FILE_MANAGER_FILE_UPLOADER_CLASS);\r\n this._uploaderInfos = [];\r\n this._createInternalFileUploader();\r\n this._createDropZonePlaceholder();\r\n this._setDropZonePlaceholderVisible(false);\r\n _Widget.prototype._initMarkup.call(this)\r\n };\r\n _proto._createInternalFileUploader = function() {\r\n var _this = this;\r\n var chunkSize = this._getController().chunkSize;\r\n var $fileUploader = (0, _renderer.default)(\"
\").appendTo(this.$element());\r\n var fileUploader = this._createComponent($fileUploader, _file_uploader.default, {\r\n name: \"file\",\r\n multiple: true,\r\n showFileList: false,\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n labelText: \"\",\r\n readyToUploadMessage: \"\",\r\n accept: \"*\",\r\n chunkSize: chunkSize,\r\n dropZone: this.option(\"dropZone\"),\r\n onValueChanged: function(e) {\r\n return _this._onFileUploaderValueChanged(e)\r\n },\r\n onProgress: function(e) {\r\n return _this._onFileUploaderProgress(e)\r\n },\r\n onUploaded: function(e) {\r\n return _this._onFileUploaderUploaded(e)\r\n },\r\n onUploadAborted: function(e) {\r\n return _this._onFileUploaderUploadAborted(e)\r\n },\r\n onUploadError: function(e) {\r\n return _this._onFileUploaderUploadError(e)\r\n },\r\n onDropZoneEnter: function() {\r\n return _this._setDropZonePlaceholderVisible(true)\r\n },\r\n onDropZoneLeave: function() {\r\n return _this._setDropZonePlaceholderVisible(false)\r\n }\r\n });\r\n fileUploader.option({\r\n uploadChunk: function(file, chunksData) {\r\n return _this._fileUploaderUploadChunk(fileUploader, file, chunksData)\r\n },\r\n abortUpload: function(file, chunksData) {\r\n return _this._fileUploaderAbortUpload(fileUploader, file, chunksData)\r\n }\r\n });\r\n var uploaderInfo = {\r\n fileUploader: fileUploader\r\n };\r\n this._uploaderInfos.push(uploaderInfo)\r\n };\r\n _proto.tryUpload = function() {\r\n var info = this._findAndUpdateAvailableUploaderInfo();\r\n if (info) {\r\n info.fileUploader._selectButtonClickHandler()\r\n }\r\n };\r\n _proto.cancelUpload = function(sessionId) {\r\n this._cancelUpload(sessionId)\r\n };\r\n _proto.cancelFileUpload = function(sessionId, fileIndex) {\r\n this._cancelUpload(sessionId, fileIndex)\r\n };\r\n _proto._cancelUpload = function(sessionId, fileIndex) {\r\n var _this$_findUploaderIn = this._findUploaderInfoBySessionId(sessionId),\r\n fileUploader = _this$_findUploaderIn.fileUploader;\r\n fileUploader.abortUpload(fileIndex)\r\n };\r\n _proto._fileUploaderUploadChunk = function(fileUploader, file, chunksInfo) {\r\n var _this$_findSessionByF = this._findSessionByFile(fileUploader, file),\r\n session = _this$_findSessionByF.session,\r\n fileIndex = _this$_findSessionByF.fileIndex;\r\n var controller = session.controller;\r\n chunksInfo.fileIndex = fileIndex;\r\n return controller.uploadFileChunk(file, chunksInfo)\r\n };\r\n _proto._fileUploaderAbortUpload = function(fileUploader, file, chunksInfo) {\r\n var _this$_findSessionByF2 = this._findSessionByFile(fileUploader, file),\r\n session = _this$_findSessionByF2.session,\r\n fileIndex = _this$_findSessionByF2.fileIndex;\r\n var controller = session.controller;\r\n chunksInfo.fileIndex = fileIndex;\r\n return controller.abortFileUpload(file, chunksInfo)\r\n };\r\n _proto._onFileUploaderValueChanged = function(_ref) {\r\n var _this2 = this;\r\n var component = _ref.component,\r\n value = _ref.value;\r\n if (0 === value.length) {\r\n return\r\n }\r\n var files = value.slice();\r\n var uploaderInfo = this._findUploaderInfo(component);\r\n this._uploadFiles(uploaderInfo, files);\r\n setTimeout(function() {\r\n if (!_this2._findAndUpdateAvailableUploaderInfo()) {\r\n _this2._createInternalFileUploader()\r\n }\r\n })\r\n };\r\n _proto._onFileUploaderProgress = function(_ref2) {\r\n var component = _ref2.component,\r\n file = _ref2.file,\r\n bytesLoaded = _ref2.bytesLoaded,\r\n bytesTotal = _ref2.bytesTotal;\r\n var _this$_findSessionByF3 = this._findSessionByFile(component, file),\r\n session = _this$_findSessionByF3.session,\r\n fileIndex = _this$_findSessionByF3.fileIndex;\r\n var fileValue = 0 !== bytesTotal ? bytesLoaded / bytesTotal : 1;\r\n var commonValue = component.option(\"progress\") / 100;\r\n var args = {\r\n sessionId: session.id,\r\n fileIndex: fileIndex,\r\n commonValue: commonValue,\r\n fileValue: fileValue\r\n };\r\n this._raiseUploadProgress(args)\r\n };\r\n _proto._onFileUploaderUploaded = function(_ref3) {\r\n var component = _ref3.component,\r\n file = _ref3.file;\r\n var deferred = this._getDeferredForFile(component, file);\r\n deferred.resolve()\r\n };\r\n _proto._onFileUploaderUploadAborted = function(_ref4) {\r\n var component = _ref4.component,\r\n file = _ref4.file;\r\n var deferred = this._getDeferredForFile(component, file);\r\n deferred.resolve({\r\n canceled: true\r\n })\r\n };\r\n _proto._onFileUploaderUploadError = function(_ref5) {\r\n var component = _ref5.component,\r\n file = _ref5.file,\r\n error = _ref5.error;\r\n var deferred = this._getDeferredForFile(component, file);\r\n deferred.reject(error)\r\n };\r\n _proto._createDropZonePlaceholder = function() {\r\n this._$dropZonePlaceholder = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_FILE_UPLOADER_DROPZONE_PLACEHOLER_CLASS).appendTo(this.option(\"dropZonePlaceholderContainer\"))\r\n };\r\n _proto._adjustDropZonePlaceholder = function() {\r\n if (!(0, _window.hasWindow)()) {\r\n return\r\n }\r\n var $dropZoneTarget = this.option(\"dropZone\");\r\n var placeholderBorderTopWidth = parseFloat(this._$dropZonePlaceholder.css(\"borderTopWidth\"));\r\n var placeholderBorderLeftWidth = parseFloat(this._$dropZonePlaceholder.css(\"borderLeftWidth\"));\r\n var $placeholderContainer = this.option(\"dropZonePlaceholderContainer\");\r\n var containerBorderBottomWidth = parseFloat($placeholderContainer.css(\"borderBottomWidth\"));\r\n var containerBorderLeftWidth = parseFloat($placeholderContainer.css(\"borderLeftWidth\"));\r\n var containerHeight = $placeholderContainer.innerHeight();\r\n var containerOffset = $placeholderContainer.offset();\r\n var dropZoneOffset = $dropZoneTarget.offset();\r\n this._$dropZonePlaceholder.css({\r\n top: dropZoneOffset.top - containerOffset.top - containerHeight - containerBorderBottomWidth,\r\n left: dropZoneOffset.left - containerOffset.left - containerBorderLeftWidth\r\n });\r\n this._$dropZonePlaceholder.height($dropZoneTarget.get(0).offsetHeight - 2 * placeholderBorderTopWidth);\r\n this._$dropZonePlaceholder.width($dropZoneTarget.get(0).offsetWidth - 2 * placeholderBorderLeftWidth)\r\n };\r\n _proto._setDropZonePlaceholderVisible = function(visible) {\r\n if (visible) {\r\n this._adjustDropZonePlaceholder();\r\n this._$dropZonePlaceholder.css(\"display\", \"\")\r\n } else {\r\n this._$dropZonePlaceholder.css(\"display\", \"none\")\r\n }\r\n };\r\n _proto._uploadFiles = function(uploaderInfo, files) {\r\n this._setDropZonePlaceholderVisible(false);\r\n var sessionId = (new _guid.default).toString();\r\n var controller = this._getController();\r\n var deferreds = files.map(function() {\r\n return new _deferred.Deferred\r\n });\r\n var session = {\r\n id: sessionId,\r\n controller: controller,\r\n files: files,\r\n deferreds: deferreds\r\n };\r\n uploaderInfo.session = session;\r\n var sessionInfo = {\r\n sessionId: sessionId,\r\n deferreds: deferreds,\r\n files: files\r\n };\r\n this._raiseUploadSessionStarted(sessionInfo);\r\n return (0, _uiFile_manager.whenSome)(deferreds).always(function() {\r\n return setTimeout(function() {\r\n uploaderInfo.fileUploader.reset();\r\n uploaderInfo.session = null\r\n })\r\n })\r\n };\r\n _proto._getDeferredForFile = function(fileUploader, file) {\r\n var _this$_findSessionByF4 = this._findSessionByFile(fileUploader, file),\r\n session = _this$_findSessionByF4.session,\r\n fileIndex = _this$_findSessionByF4.fileIndex;\r\n return session.deferreds[fileIndex]\r\n };\r\n _proto._findSessionByFile = function(fileUploader, file) {\r\n var uploaderInfo = this._findUploaderInfo(fileUploader);\r\n var session = uploaderInfo.session;\r\n var fileIndex = session.files.indexOf(file);\r\n return {\r\n session: session,\r\n fileIndex: fileIndex\r\n }\r\n };\r\n _proto._findUploaderInfoBySessionId = function(sessionId) {\r\n for (var i = 0; i < this._uploaderInfos.length; i++) {\r\n var uploaderInfo = this._uploaderInfos[i];\r\n var session = uploaderInfo.session;\r\n if (session && session.id === sessionId) {\r\n return uploaderInfo\r\n }\r\n }\r\n return null\r\n };\r\n _proto._findAndUpdateAvailableUploaderInfo = function() {\r\n var _info;\r\n var info = null;\r\n for (var i = 0; i < this._uploaderInfos.length; i++) {\r\n var currentInfo = this._uploaderInfos[i];\r\n currentInfo.fileUploader.option(\"dropZone\", \"\");\r\n if (!info && !currentInfo.session) {\r\n info = currentInfo\r\n }\r\n }\r\n null === (_info = info) || void 0 === _info ? void 0 : _info.fileUploader.option(\"dropZone\", this.option(\"dropZone\"));\r\n return info\r\n };\r\n _proto._findUploaderInfo = function(fileUploader) {\r\n for (var i = 0; i < this._uploaderInfos.length; i++) {\r\n var info = this._uploaderInfos[i];\r\n if (info.fileUploader === fileUploader) {\r\n return info\r\n }\r\n }\r\n return null\r\n };\r\n _proto._getController = function() {\r\n var controllerGetter = this.option(\"getController\");\r\n return controllerGetter()\r\n };\r\n _proto._raiseUploadSessionStarted = function(sessionInfo) {\r\n this._actions.onUploadSessionStarted({\r\n sessionInfo: sessionInfo\r\n })\r\n };\r\n _proto._raiseUploadProgress = function(args) {\r\n this._actions.onUploadProgress(args)\r\n };\r\n _proto._initActions = function() {\r\n this._actions = {\r\n onUploadSessionStarted: this._createActionByOption(\"onUploadSessionStarted\"),\r\n onUploadProgress: this._createActionByOption(\"onUploadProgress\")\r\n }\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {\r\n getController: null,\r\n onUploadSessionStarted: null,\r\n onUploadProgress: null\r\n })\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"getController\":\r\n this.repaint();\r\n break;\r\n case \"onUploadSessionStarted\":\r\n case \"onUploadProgress\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n case \"dropZone\":\r\n this._findAndUpdateAvailableUploaderInfo();\r\n this._adjustDropZonePlaceholder();\r\n break;\r\n case \"dropZonePlaceholderContainer\":\r\n this._$dropZonePlaceholder.detach();\r\n this._$dropZonePlaceholder.appendTo(args.value);\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n return FileManagerFileUploader\r\n}(_ui.default);\r\nvar _default = FileManagerFileUploader;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/toolbar/ui.toolbar.strategy.action_sheet.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _uiToolbar = _interopRequireDefault(require(\"./ui.toolbar.strategy\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _action_sheet = _interopRequireDefault(require(\"../action_sheet\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ActionSheetStrategy = _uiToolbar.default.inherit({\r\n NAME: \"actionSheet\",\r\n _getMenuItemTemplate: function() {\r\n return this._toolbar._getTemplate(\"actionSheetItem\")\r\n },\r\n render: function() {\r\n if (!this._hasVisibleMenuItems()) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _menuWidgetClass: function() {\r\n return _action_sheet.default\r\n },\r\n _menuContainer: function() {\r\n return this._toolbar.$element()\r\n },\r\n _widgetOptions: function() {\r\n return (0, _extend.extend)({}, this.callBase(), {\r\n target: this._$button,\r\n showTitle: false\r\n })\r\n },\r\n _menuButtonOptions: function() {\r\n return (0, _extend.extend)({}, this.callBase(), {\r\n icon: \"overflow\"\r\n })\r\n },\r\n _toggleMenu: function() {\r\n this.callBase.apply(this, arguments);\r\n this._menu.toggle(this._menuShown);\r\n this._menuShown = false\r\n }\r\n});\r\nvar _default = ActionSheetStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","/**\r\n * DevExtreme (exporter/excel_creator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getData = getData;\r\nexports.ExcelCreator = void 0;\r\nvar _class = _interopRequireDefault(require(\"../core/class\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"../ui/widget/ui.errors\"));\r\nvar _string = require(\"../core/utils/string\");\r\nvar _jszip = _interopRequireDefault(require(\"jszip\"));\r\nvar _file_saver = require(\"./file_saver\");\r\nvar _excel_format_converter = _interopRequireDefault(require(\"./excel_format_converter\"));\r\nvar _excel = _interopRequireDefault(require(\"./excel/excel.file\"));\r\nvar _deferred = require(\"../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nvar XML_TAG = '';\r\nvar GROUP_SHEET_PR_XML = '';\r\nvar SINGLE_SHEET_PR_XML = \"\";\r\nvar BASE_STYLE_XML2 = '';\r\nvar OPEN_XML_FORMAT_URL = \"http://schemas.openxmlformats.org\";\r\nvar RELATIONSHIP_PART_NAME = \"rels\";\r\nvar XL_FOLDER_NAME = \"xl\";\r\nvar WORKBOOK_FILE_NAME = \"workbook.xml\";\r\nvar CONTENTTYPES_FILE_NAME = \"[Content_Types].xml\";\r\nvar SHAREDSTRING_FILE_NAME = \"sharedStrings.xml\";\r\nvar STYLE_FILE_NAME = \"styles.xml\";\r\nvar WORKSHEETS_FOLDER = \"worksheets\";\r\nvar WORKSHEET_FILE_NAME = \"sheet1.xml\";\r\nvar WORKSHEET_HEADER_XML = '';\r\nvar VALID_TYPES = {\r\n \"boolean\": \"b\",\r\n date: \"d\",\r\n number: \"n\",\r\n string: \"s\"\r\n};\r\nvar EXCEL_START_TIME = Date.UTC(1899, 11, 30);\r\nvar DAYS_COUNT_BEFORE_29_FEB_1900 = 60;\r\nvar MAX_DIGIT_WIDTH_IN_PIXELS = 7;\r\nvar UNSUPPORTED_FORMAT_MAPPING = {\r\n quarter: \"shortDate\",\r\n quarterAndYear: \"shortDate\",\r\n minute: \"longTime\",\r\n millisecond: \"longTime\"\r\n};\r\nvar ExcelCreator = _class.default.inherit({\r\n _getXMLTag: function(tagName, attributes, content) {\r\n var result = \"<\" + tagName;\r\n var i;\r\n var length = attributes.length;\r\n var attr;\r\n for (i = 0; i < length; i++) {\r\n attr = attributes[i];\r\n if (void 0 !== attr.value) {\r\n result = result + \" \" + attr.name + '=\"' + attr.value + '\"'\r\n }\r\n }\r\n return (0, _type.isDefined)(content) ? result + \">\" + content + \"\" : result + \" />\"\r\n },\r\n _convertToExcelCellRef: function(zeroBasedRowIndex, zeroBasedCellIndex) {\r\n var columnName = \"\";\r\n var max = 26;\r\n var charCode;\r\n var isCellIndexFound;\r\n while (!isCellIndexFound) {\r\n charCode = 65 + (zeroBasedCellIndex >= max ? zeroBasedCellIndex % max : Math.ceil(zeroBasedCellIndex));\r\n columnName = String.fromCharCode(charCode) + columnName;\r\n if (zeroBasedCellIndex >= max) {\r\n zeroBasedCellIndex = Math.floor(zeroBasedCellIndex / max) - 1\r\n } else {\r\n isCellIndexFound = true\r\n }\r\n }\r\n return columnName + (zeroBasedRowIndex + 1)\r\n },\r\n _convertToExcelCellRefAndTrackMaxIndex: function(rowIndex, cellIndex) {\r\n if (this._maxRowIndex < Number(rowIndex)) {\r\n this._maxRowIndex = Number(rowIndex)\r\n }\r\n if (this._maxColumnIndex < Number(cellIndex)) {\r\n this._maxColumnIndex = Number(cellIndex)\r\n }\r\n return this._convertToExcelCellRef(rowIndex, cellIndex)\r\n },\r\n _getDataType: function(dataType) {\r\n return VALID_TYPES[dataType] || VALID_TYPES.string\r\n },\r\n _tryGetExcelCellDataType: function(object) {\r\n if ((0, _type.isDefined)(object)) {\r\n if (\"number\" === typeof object) {\r\n if (isFinite(object)) {\r\n return VALID_TYPES.number\r\n } else {\r\n return VALID_TYPES.string\r\n }\r\n } else {\r\n if ((0, _type.isString)(object)) {\r\n return VALID_TYPES.string\r\n } else {\r\n if ((0, _type.isDate)(object)) {\r\n return VALID_TYPES.number\r\n } else {\r\n if ((0, _type.isBoolean)(object)) {\r\n return VALID_TYPES.boolean\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _formatObjectConverter: function(format, dataType) {\r\n var result = {\r\n format: format,\r\n precision: format && format.precision,\r\n dataType: dataType\r\n };\r\n if ((0, _type.isObject)(format)) {\r\n return (0, _extend.extend)(result, format, {\r\n format: format.formatter || format.type,\r\n currency: format.currency\r\n })\r\n }\r\n return result\r\n },\r\n _tryConvertToExcelNumberFormat: function(format, dataType) {\r\n var newFormat = this._formatObjectConverter(format, dataType);\r\n format = newFormat.format;\r\n var currency = newFormat.currency;\r\n dataType = newFormat.dataType;\r\n if ((0, _type.isDefined)(format) && \"date\" === dataType) {\r\n format = UNSUPPORTED_FORMAT_MAPPING[format && format.type || format] || format\r\n }\r\n return _excel_format_converter.default.convertFormat(format, newFormat.precision, dataType, currency)\r\n },\r\n _appendString: function(value) {\r\n if ((0, _type.isDefined)(value)) {\r\n value = String(value);\r\n if (value.length) {\r\n value = (0, _string.encodeHtml)(value);\r\n if (void 0 === this._stringHash[value]) {\r\n this._stringHash[value] = this._stringArray.length;\r\n this._stringArray.push(value)\r\n }\r\n return this._stringHash[value]\r\n }\r\n }\r\n },\r\n _tryGetExcelDateValue: function(date) {\r\n var days;\r\n var totalTime;\r\n if ((0, _type.isDate)(date)) {\r\n days = Math.floor((Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - EXCEL_START_TIME) / 864e5);\r\n if (days < DAYS_COUNT_BEFORE_29_FEB_1900) {\r\n days--\r\n }\r\n totalTime = (3600 * date.getHours() + 60 * date.getMinutes() + date.getSeconds()) / 86400;\r\n return days + totalTime\r\n }\r\n },\r\n _prepareValue: function(rowIndex, cellIndex) {\r\n var dataProvider = this._dataProvider;\r\n var _ref = dataProvider.getCellData(rowIndex, cellIndex) || {},\r\n cellSourceData = _ref.cellSourceData;\r\n var _ref2 = dataProvider.getCellData(rowIndex, cellIndex) || {},\r\n value = _ref2.value;\r\n var sourceValue;\r\n var type = this._getDataType(dataProvider.getCellType(rowIndex, cellIndex));\r\n if (type === VALID_TYPES.date && !(0, _type.isDate)(value)) {\r\n type = VALID_TYPES.string\r\n }\r\n switch (type) {\r\n case VALID_TYPES.string:\r\n sourceValue = value;\r\n value = this._appendString(value);\r\n break;\r\n case VALID_TYPES.date:\r\n sourceValue = value;\r\n value = this._tryGetExcelDateValue(value);\r\n type = VALID_TYPES.number\r\n }\r\n return {\r\n value: value,\r\n type: type,\r\n sourceValue: sourceValue,\r\n cellSourceData: cellSourceData\r\n }\r\n },\r\n _callCustomizeExcelCell: function(_ref3) {\r\n var dataProvider = _ref3.dataProvider,\r\n value = _ref3.value,\r\n style = _ref3.style,\r\n sourceData = _ref3.sourceData;\r\n var styleCopy = _excel.default.copyCellFormat(style);\r\n var args = {\r\n value: value,\r\n numberFormat: styleCopy.numberFormat,\r\n clearStyle: function() {\r\n this.horizontalAlignment = null;\r\n this.verticalAlignment = null;\r\n this.wrapTextEnabled = null;\r\n this.font = null;\r\n this.numberFormat = null\r\n }\r\n };\r\n if ((0, _type.isDefined)(styleCopy)) {\r\n if ((0, _type.isDefined)(styleCopy.alignment)) {\r\n args.horizontalAlignment = styleCopy.alignment.horizontal;\r\n args.verticalAlignment = styleCopy.alignment.vertical;\r\n args.wrapTextEnabled = styleCopy.alignment.wrapText\r\n }\r\n args.backgroundColor = styleCopy.backgroundColor;\r\n args.fillPatternType = styleCopy.fillPatternType;\r\n args.fillPatternColor = styleCopy.fillPatternColor;\r\n args.font = styleCopy.font\r\n }\r\n dataProvider.customizeExcelCell(args, sourceData);\r\n var newStyle = styleCopy || {};\r\n newStyle.font = args.font;\r\n newStyle.alignment = newStyle.alignment || {};\r\n newStyle.alignment.horizontal = args.horizontalAlignment;\r\n newStyle.alignment.vertical = args.verticalAlignment;\r\n newStyle.alignment.wrapText = args.wrapTextEnabled;\r\n newStyle.backgroundColor = args.backgroundColor;\r\n newStyle.fillPatternType = args.fillPatternType;\r\n newStyle.fillPatternColor = args.fillPatternColor;\r\n newStyle.numberFormat = args.numberFormat;\r\n return {\r\n value: args.value,\r\n style: newStyle\r\n }\r\n },\r\n _getDataArray: function() {\r\n var that = this;\r\n var rowIndex;\r\n var cellIndex;\r\n var cellsArray;\r\n var cellData;\r\n var result = [];\r\n var dataProvider = that._dataProvider;\r\n var rowsLength = dataProvider.getRowsCount();\r\n var columns = dataProvider.getColumns();\r\n var cellsLength;\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n cellsArray = [];\r\n cellsLength = columns.length;\r\n for (cellIndex = 0; cellIndex !== cellsLength; cellIndex++) {\r\n cellData = that._prepareValue(rowIndex, cellIndex);\r\n var styleArrayIndex = dataProvider.getStyleId(rowIndex, cellIndex);\r\n var cellStyleId = this._styleArrayIndexToCellStyleIdMap[styleArrayIndex];\r\n if (dataProvider.hasCustomizeExcelCell && dataProvider.hasCustomizeExcelCell()) {\r\n var value = cellData.sourceValue || cellData.value;\r\n var modifiedExcelCell = this._callCustomizeExcelCell({\r\n dataProvider: dataProvider,\r\n value: value,\r\n style: that._styleArray[styleArrayIndex],\r\n sourceData: cellData.cellSourceData\r\n });\r\n if (modifiedExcelCell.value !== value) {\r\n if (_typeof(modifiedExcelCell.value) !== _typeof(value) || \"number\" === typeof modifiedExcelCell.value && !isFinite(modifiedExcelCell.value)) {\r\n var cellDataType = this._tryGetExcelCellDataType(modifiedExcelCell.value);\r\n if ((0, _type.isDefined)(cellDataType)) {\r\n cellData.type = cellDataType\r\n }\r\n }\r\n switch (cellData.type) {\r\n case VALID_TYPES.string:\r\n cellData.value = this._appendString(modifiedExcelCell.value);\r\n break;\r\n case VALID_TYPES.date:\r\n cellData.value = modifiedExcelCell.value;\r\n break;\r\n case VALID_TYPES.number:\r\n var newValue = modifiedExcelCell.value;\r\n var excelDateValue = this._tryGetExcelDateValue(newValue);\r\n if ((0, _type.isDefined)(excelDateValue)) {\r\n newValue = excelDateValue\r\n }\r\n cellData.value = newValue;\r\n break;\r\n default:\r\n cellData.value = modifiedExcelCell.value\r\n }\r\n }\r\n cellStyleId = this._excelFile.registerCellFormat(modifiedExcelCell.style)\r\n }\r\n cellsArray.push({\r\n style: cellStyleId,\r\n value: cellData.value,\r\n type: cellData.type\r\n })\r\n }\r\n if (!that._needSheetPr && dataProvider.getGroupLevel(rowIndex) > 0) {\r\n that._needSheetPr = true\r\n }\r\n result.push(cellsArray)\r\n }\r\n return result\r\n },\r\n _calculateWidth: function(pixelsWidth) {\r\n pixelsWidth = parseInt(pixelsWidth, 10);\r\n if (!pixelsWidth || pixelsWidth < 5) {\r\n pixelsWidth = 100\r\n }\r\n return Math.min(255, Math.floor((pixelsWidth - 5) / MAX_DIGIT_WIDTH_IN_PIXELS * 100 + .5) / 100)\r\n },\r\n _prepareStyleData: function() {\r\n var _this = this;\r\n var that = this;\r\n var styles = that._dataProvider.getStyles();\r\n that._dataProvider.getColumns().forEach(function(column) {\r\n that._colsArray.push(that._calculateWidth(column.width))\r\n });\r\n var fonts = [{\r\n size: 11,\r\n color: {\r\n theme: 1\r\n },\r\n name: \"Calibri\",\r\n family: 2,\r\n scheme: \"minor\",\r\n bold: false\r\n }, {\r\n size: 11,\r\n color: {\r\n theme: 1\r\n },\r\n name: \"Calibri\",\r\n family: 2,\r\n scheme: \"minor\",\r\n bold: true\r\n }];\r\n this._excelFile.registerFont(fonts[0]);\r\n this._excelFile.registerFont(fonts[1]);\r\n styles.forEach(function(style) {\r\n var numberFormat = that._tryConvertToExcelNumberFormat(style.format, style.dataType);\r\n if (!(0, _type.isDefined)(numberFormat)) {\r\n numberFormat = 0\r\n }\r\n that._styleArray.push({\r\n font: fonts[Number(!!style.bold)],\r\n numberFormat: numberFormat,\r\n alignment: {\r\n vertical: \"top\",\r\n wrapText: !!style.wrapText,\r\n horizontal: style.alignment || \"left\"\r\n }\r\n })\r\n });\r\n that._styleArrayIndexToCellStyleIdMap = that._styleArray.map(function(item) {\r\n return _this._excelFile.registerCellFormat(item)\r\n })\r\n },\r\n _prepareCellData: function() {\r\n this._cellsArray = this._getDataArray()\r\n },\r\n _createXMLRelationships: function(xmlRelationships) {\r\n return this._getXMLTag(\"Relationships\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/package/2006/relationships\"\r\n }], xmlRelationships)\r\n },\r\n _createXMLRelationship: function(id, type, target) {\r\n return this._getXMLTag(\"Relationship\", [{\r\n name: \"Id\",\r\n value: \"rId\" + id\r\n }, {\r\n name: \"Type\",\r\n value: OPEN_XML_FORMAT_URL + \"/officeDocument/2006/relationships/\" + type\r\n }, {\r\n name: \"Target\",\r\n value: target\r\n }])\r\n },\r\n _getWorkbookContent: function() {\r\n var content = 'Sheet!$1:$1';\r\n return XML_TAG + this._getXMLTag(\"workbook\", [{\r\n name: \"xmlns:r\",\r\n value: OPEN_XML_FORMAT_URL + \"/officeDocument/2006/relationships\"\r\n }, {\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }], content)\r\n },\r\n _getContentTypesContent: function() {\r\n return XML_TAG + ''\r\n },\r\n _generateStylesXML: function() {\r\n var that = this;\r\n var folder = that._zip.folder(XL_FOLDER_NAME);\r\n var XML = \"\";\r\n XML += this._excelFile.generateNumberFormatsXml();\r\n XML += this._excelFile.generateFontsXml();\r\n XML += this._excelFile.generateFillsXml();\r\n XML += BASE_STYLE_XML2;\r\n XML += this._excelFile.generateCellFormatsXml();\r\n XML += that._getXMLTag(\"cellStyles\", [{\r\n name: \"count\",\r\n value: 1\r\n }], that._getXMLTag(\"cellStyle\", [{\r\n name: \"name\",\r\n value: \"Normal\"\r\n }, {\r\n name: \"xfId\",\r\n value: 0\r\n }, {\r\n name: \"builtinId\",\r\n value: 0\r\n }]));\r\n XML = XML_TAG + that._getXMLTag(\"styleSheet\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }], XML);\r\n folder.file(STYLE_FILE_NAME, XML);\r\n that._styleArray = []\r\n },\r\n _generateStringsXML: function() {\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var stringIndex;\r\n var stringsLength = this._stringArray.length;\r\n var sharedStringXml = XML_TAG;\r\n for (stringIndex = 0; stringIndex < stringsLength; stringIndex++) {\r\n this._stringArray[stringIndex] = this._getXMLTag(\"si\", [], this._getXMLTag(\"t\", [], this._stringArray[stringIndex]))\r\n }\r\n sharedStringXml += this._getXMLTag(\"sst\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }, {\r\n name: \"count\",\r\n value: this._stringArray.length\r\n }, {\r\n name: \"uniqueCount\",\r\n value: this._stringArray.length\r\n }], this._stringArray.join(\"\"));\r\n folder.file(SHAREDSTRING_FILE_NAME, sharedStringXml);\r\n this._stringArray = []\r\n },\r\n _getPaneXML: function() {\r\n var attributes = [{\r\n name: \"activePane\",\r\n value: \"bottomLeft\"\r\n }, {\r\n name: \"state\",\r\n value: \"frozen\"\r\n }];\r\n var frozenArea = this._dataProvider.getFrozenArea();\r\n if (!(frozenArea.x || frozenArea.y)) {\r\n return \"\"\r\n }\r\n if (frozenArea.x) {\r\n attributes.push({\r\n name: \"xSplit\",\r\n value: frozenArea.x\r\n })\r\n }\r\n if (frozenArea.y) {\r\n attributes.push({\r\n name: \"ySplit\",\r\n value: frozenArea.y\r\n })\r\n }\r\n attributes.push({\r\n name: \"topLeftCell\",\r\n value: this._convertToExcelCellRefAndTrackMaxIndex(frozenArea.y, frozenArea.x)\r\n });\r\n return this._getXMLTag(\"pane\", attributes)\r\n },\r\n _getAutoFilterXML: function(maxCellIndex) {\r\n if (this._options.autoFilterEnabled) {\r\n return ''\r\n }\r\n return \"\"\r\n },\r\n _getIgnoredErrorsXML: function(maxCellIndex) {\r\n if (this._options.ignoreErrors) {\r\n return ''\r\n }\r\n return \"\"\r\n },\r\n _generateWorksheetXML: function() {\r\n var colIndex;\r\n var rowIndex;\r\n var cellData;\r\n var xmlCells;\r\n var xmlRows = [];\r\n var rowsLength = this._cellsArray.length;\r\n var cellsLength;\r\n var colsLength = this._colsArray.length;\r\n var rSpans = \"1:\" + colsLength;\r\n var headerRowCount = this._dataProvider.getHeaderRowCount ? this._dataProvider.getHeaderRowCount() : 1;\r\n var xmlResult = [WORKSHEET_HEADER_XML];\r\n xmlResult.push(this._needSheetPr ? GROUP_SHEET_PR_XML : SINGLE_SHEET_PR_XML);\r\n xmlResult.push('');\r\n xmlResult.push(\"');\r\n xmlResult.push(this._getPaneXML());\r\n xmlResult.push(\"\");\r\n xmlResult.push(' 0 ? this._dataProvider.getGroupLevel(0) : 0) + '\"');\r\n xmlResult.push(' x14ac:dyDescent=\"0.25\"/>');\r\n for (colIndex = 0; colIndex < colsLength; colIndex++) {\r\n this._colsArray[colIndex] = this._getXMLTag(\"col\", [{\r\n name: \"width\",\r\n value: this._colsArray[colIndex]\r\n }, {\r\n name: \"min\",\r\n value: Number(colIndex) + 1\r\n }, {\r\n name: \"max\",\r\n value: Number(colIndex) + 1\r\n }, {\r\n name: \"customWidth\",\r\n value: 1\r\n }])\r\n }\r\n xmlResult.push(this._getXMLTag(\"cols\", [], this._colsArray.join(\"\")) + \"\");\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n xmlCells = [];\r\n cellsLength = this._cellsArray[rowIndex].length;\r\n for (colIndex = 0; colIndex < cellsLength; colIndex++) {\r\n rowIndex = Number(rowIndex);\r\n cellData = this._cellsArray[rowIndex][colIndex];\r\n xmlCells.push(this._getXMLTag(\"c\", [{\r\n name: \"r\",\r\n value: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex, colIndex)\r\n }, {\r\n name: \"s\",\r\n value: cellData.style\r\n }, {\r\n name: \"t\",\r\n value: cellData.type\r\n }], (0, _type.isDefined)(cellData.value) ? this._getXMLTag(\"v\", [], cellData.value) : null))\r\n }\r\n xmlRows.push(this._getXMLTag(\"row\", [{\r\n name: \"r\",\r\n value: Number(rowIndex) + 1\r\n }, {\r\n name: \"spans\",\r\n value: rSpans\r\n }, {\r\n name: \"outlineLevel\",\r\n value: rowIndex >= headerRowCount ? this._dataProvider.getGroupLevel(rowIndex) : 0\r\n }, {\r\n name: \"x14ac:dyDescent\",\r\n value: \"0.25\"\r\n }], xmlCells.join(\"\")));\r\n this._cellsArray[rowIndex] = null;\r\n if (xmlRows.length > 1e4) {\r\n xmlResult.push(xmlRows.join(\"\"));\r\n xmlRows = []\r\n }\r\n }\r\n xmlResult.push(xmlRows.join(\"\"));\r\n xmlRows = [];\r\n var rightBottomCellRef = this._convertToExcelCellRef(this._maxRowIndex, this._maxColumnIndex);\r\n xmlResult.push(\"\" + this._getAutoFilterXML(rightBottomCellRef) + this._generateMergingXML() + this._getIgnoredErrorsXML(rightBottomCellRef) + \"\");\r\n this._zip.folder(XL_FOLDER_NAME).folder(WORKSHEETS_FOLDER).file(WORKSHEET_FILE_NAME, xmlResult.join(\"\"));\r\n this._colsArray = [];\r\n this._cellsArray = [];\r\n xmlResult = []\r\n },\r\n _generateMergingXML: function() {\r\n var k;\r\n var l;\r\n var cellIndex;\r\n var rowIndex;\r\n var rowsLength = (0, _type.isDefined)(this._dataProvider.getHeaderRowCount) ? this._dataProvider.getHeaderRowCount() : this._dataProvider.getRowsCount();\r\n var columnsLength = this._dataProvider.getColumns().length;\r\n var usedArea = [];\r\n var mergeArray = [];\r\n var mergeIndex;\r\n var mergeXML = \"\";\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n for (cellIndex = 0; cellIndex !== columnsLength; cellIndex++) {\r\n if (!(0, _type.isDefined)(usedArea[rowIndex]) || !(0, _type.isDefined)(usedArea[rowIndex][cellIndex])) {\r\n var cellMerge = this._dataProvider.getCellMerging(rowIndex, cellIndex);\r\n if (cellMerge.colspan || cellMerge.rowspan) {\r\n mergeArray.push({\r\n start: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex, cellIndex),\r\n end: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex + (cellMerge.rowspan || 0), cellIndex + (cellMerge.colspan || 0))\r\n });\r\n for (k = rowIndex; k <= rowIndex + cellMerge.rowspan || 0; k++) {\r\n for (l = cellIndex; l <= cellIndex + cellMerge.colspan || 0; l++) {\r\n if (!(0, _type.isDefined)(usedArea[k])) {\r\n usedArea[k] = []\r\n }\r\n usedArea[k][l] = true\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n var mergeArrayLength = mergeArray.length;\r\n for (mergeIndex = 0; mergeIndex < mergeArrayLength; mergeIndex++) {\r\n mergeXML += this._getXMLTag(\"mergeCell\", [{\r\n name: \"ref\",\r\n value: mergeArray[mergeIndex].start + \":\" + mergeArray[mergeIndex].end\r\n }])\r\n }\r\n return mergeXML.length ? this._getXMLTag(\"mergeCells\", [{\r\n name: \"count\",\r\n value: mergeArrayLength\r\n }], mergeXML) : \"\"\r\n },\r\n _generateCommonXML: function() {\r\n var relsFileContent = XML_TAG + this._createXMLRelationships(this._createXMLRelationship(1, \"officeDocument\", \"xl/\" + WORKBOOK_FILE_NAME));\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var relsXML = XML_TAG;\r\n this._zip.folder(\"_\" + RELATIONSHIP_PART_NAME).file(\".\" + RELATIONSHIP_PART_NAME, relsFileContent);\r\n var xmlRelationships = this._createXMLRelationship(1, \"worksheet\", \"worksheets/\" + WORKSHEET_FILE_NAME) + this._createXMLRelationship(2, \"styles\", STYLE_FILE_NAME) + this._createXMLRelationship(3, \"sharedStrings\", SHAREDSTRING_FILE_NAME);\r\n relsXML += this._createXMLRelationships(xmlRelationships);\r\n folder.folder(\"_\" + RELATIONSHIP_PART_NAME).file(WORKBOOK_FILE_NAME + \".rels\", relsXML);\r\n folder.file(WORKBOOK_FILE_NAME, this._getWorkbookContent());\r\n this._zip.file(CONTENTTYPES_FILE_NAME, this._getContentTypesContent())\r\n },\r\n _generateContent: function() {\r\n this._prepareStyleData();\r\n this._prepareCellData();\r\n this._generateWorkXML();\r\n this._generateCommonXML()\r\n },\r\n _generateWorkXML: function() {\r\n this._generateStylesXML();\r\n this._generateStringsXML();\r\n this._generateWorksheetXML()\r\n },\r\n ctor: function(dataProvider, options) {\r\n this._rtlEnabled = options && !!options.rtlEnabled;\r\n this._options = options;\r\n this._maxRowIndex = 0;\r\n this._maxColumnIndex = 0;\r\n this._stringArray = [];\r\n this._stringHash = {};\r\n this._styleArray = [];\r\n this._colsArray = [];\r\n this._cellsArray = [];\r\n this._needSheetPr = false;\r\n this._dataProvider = dataProvider;\r\n this._excelFile = new _excel.default;\r\n if ((0, _type.isDefined)(ExcelCreator.JSZip)) {\r\n this._zip = new ExcelCreator.JSZip\r\n } else {\r\n this._zip = null\r\n }\r\n },\r\n _checkZipState: function() {\r\n if (!this._zip) {\r\n throw _ui.default.Error(\"E1041\", \"JSZip\")\r\n }\r\n },\r\n ready: function() {\r\n return this._dataProvider.ready()\r\n },\r\n getData: function(isBlob) {\r\n var options = {\r\n type: isBlob ? \"blob\" : \"base64\",\r\n compression: \"DEFLATE\",\r\n mimeType: _file_saver.MIME_TYPES.EXCEL\r\n };\r\n var deferred = new _deferred.Deferred;\r\n this._checkZipState();\r\n this._generateContent();\r\n if (this._zip.generateAsync) {\r\n this._zip.generateAsync(options).then(deferred.resolve)\r\n } else {\r\n deferred.resolve(this._zip.generate(options))\r\n }\r\n return deferred\r\n }\r\n});\r\nexports.ExcelCreator = ExcelCreator;\r\nExcelCreator.JSZip = _jszip.default;\r\n\r\nfunction getData(data, options) {\r\n var excelCreator = new ExcelCreator(data, options);\r\n excelCreator._checkZipState();\r\n return excelCreator.ready().then(function() {\r\n return excelCreator.getData((0, _type.isFunction)((0, _window.getWindow)().Blob))\r\n })\r\n}\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.context_menu.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.context_menu\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"contextMenu\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.item_list.details.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiFile_manager = require(\"./ui.file_manager.common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _ui = _interopRequireDefault(require(\"../data_grid/ui.data_grid\"));\r\nvar _uiFile_manager2 = _interopRequireDefault(require(\"./ui.file_manager.item_list\"));\r\nvar _uiFile_manager3 = _interopRequireDefault(require(\"./ui.file_manager.file_actions_button\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_DETAILS_ITEM_LIST_CLASS = \"dx-filemanager-details\";\r\nvar FILE_MANAGER_DETAILS_ITEM_THUMBNAIL_CLASS = \"dx-filemanager-details-item-thumbnail\";\r\nvar FILE_MANAGER_DETAILS_ITEM_NAME_CLASS = \"dx-filemanager-details-item-name\";\r\nvar FILE_MANAGER_DETAILS_ITEM_NAME_WRAPPER_CLASS = \"dx-filemanager-details-item-name-wrapper\";\r\nvar FILE_MANAGER_DETAILS_ITEM_IS_DIRECTORY_CLASS = \"dx-filemanager-details-item-is-directory\";\r\nvar FILE_MANAGER_PARENT_DIRECTORY_ITEM = \"dx-filemanager-parent-directory-item\";\r\nvar DATA_GRID_DATA_ROW_CLASS = \"dx-data-row\";\r\nvar DEFAULT_COLUMN_CONFIGS = {\r\n thumbnail: {\r\n caption: \"\",\r\n calculateSortValue: \"isDirectory\",\r\n width: 36,\r\n alignment: \"center\",\r\n cssClass: FILE_MANAGER_DETAILS_ITEM_IS_DIRECTORY_CLASS\r\n },\r\n name: {\r\n caption: _message.default.format(\"dxFileManager-listDetailsColumnCaptionName\")\r\n },\r\n dateModified: {\r\n caption: _message.default.format(\"dxFileManager-listDetailsColumnCaptionDateModified\"),\r\n width: 110,\r\n hidingPriority: 1\r\n },\r\n size: {\r\n caption: _message.default.format(\"dxFileManager-listDetailsColumnCaptionFileSize\"),\r\n width: 90,\r\n alignment: \"right\",\r\n hidingPriority: 0\r\n },\r\n isParentFolder: {\r\n caption: \"isParentFolder\",\r\n visible: false,\r\n sortIndex: 0,\r\n sortOrder: \"asc\"\r\n }\r\n};\r\nvar FileManagerDetailsItemList = function(_FileManagerItemListB) {\r\n _inheritsLoose(FileManagerDetailsItemList, _FileManagerItemListB);\r\n\r\n function FileManagerDetailsItemList() {\r\n return _FileManagerItemListB.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerDetailsItemList.prototype;\r\n _proto._initMarkup = function() {\r\n var _this = this;\r\n this._itemCount = 0;\r\n this._focusedItem = null;\r\n this._hasParentDirectoryItem = false;\r\n this._parentDirectoryItemKey = null;\r\n this._selectAllCheckBox = null;\r\n this._selectAllCheckBoxUpdating = false;\r\n this.$element().addClass(FILE_MANAGER_DETAILS_ITEM_LIST_CLASS);\r\n this._createFilesView();\r\n this._contextMenu.option(\"onContextMenuHidden\", function() {\r\n return _this._onContextMenuHidden()\r\n });\r\n _FileManagerItemListB.prototype._initMarkup.call(this)\r\n };\r\n _proto._createFilesView = function() {\r\n var _this2 = this;\r\n var $filesView = (0, _renderer.default)(\"
\").appendTo(this.$element());\r\n var selectionMode = this._isMultipleSelectionMode() ? \"multiple\" : \"none\";\r\n this._filesView = this._createComponent($filesView, _ui.default, {\r\n dataSource: this._createDataSource(),\r\n hoverStateEnabled: true,\r\n selection: {\r\n mode: selectionMode,\r\n showCheckBoxesMode: this._isDesktop() ? \"onClick\" : \"none\"\r\n },\r\n selectedRowKeys: this.option(\"selectedItemKeys\"),\r\n focusedRowKey: this.option(\"focusedItemKey\"),\r\n focusedRowEnabled: true,\r\n allowColumnResizing: true,\r\n scrolling: {\r\n mode: \"virtual\"\r\n },\r\n sorting: {\r\n mode: \"single\",\r\n showSortIndexes: false\r\n },\r\n showColumnLines: false,\r\n showRowLines: false,\r\n columnHidingEnabled: false,\r\n columns: this._createColumns(),\r\n onEditorPreparing: this._onEditorPreparing.bind(this),\r\n onRowPrepared: this._onRowPrepared.bind(this),\r\n onContextMenuPreparing: this._onContextMenuPreparing.bind(this),\r\n onSelectionChanged: this._onFilesViewSelectionChanged.bind(this),\r\n onFocusedRowChanged: this._onFilesViewFocusedRowChanged.bind(this),\r\n onOptionChanged: this._onFilesViewOptionChanged.bind(this),\r\n onContentReady: function() {\r\n var _this2$_refreshDeferr;\r\n return null === (_this2$_refreshDeferr = _this2._refreshDeferred) || void 0 === _this2$_refreshDeferr ? void 0 : _this2$_refreshDeferr.resolve()\r\n }\r\n })\r\n };\r\n _proto._createColumns = function() {\r\n var _this3 = this;\r\n var columns = this.option(\"detailColumns\");\r\n columns = columns.slice(0);\r\n columns = columns.map(function(column) {\r\n var extendedItem = column;\r\n if ((0, _type.isString)(column)) {\r\n extendedItem = {\r\n dataField: column\r\n }\r\n }\r\n return _this3._getPreparedColumn(extendedItem)\r\n });\r\n var customizeDetailColumns = this.option(\"customizeDetailColumns\");\r\n if ((0, _type.isFunction)(customizeDetailColumns)) {\r\n columns = customizeDetailColumns(columns)\r\n }\r\n columns.push(this._getPreparedColumn({\r\n dataField: \"isParentFolder\"\r\n }));\r\n columns.forEach(function(column) {\r\n return _this3._updateColumnDataField(column)\r\n });\r\n return columns\r\n };\r\n _proto._getPreparedColumn = function(columnOptions) {\r\n var result = {};\r\n var resultCssClass = \"\";\r\n if (this._isDefaultColumn(columnOptions.dataField)) {\r\n var defaultConfig = (0, _extend.extend)(true, {}, DEFAULT_COLUMN_CONFIGS[columnOptions.dataField]);\r\n resultCssClass = defaultConfig.cssClass || \"\";\r\n switch (columnOptions.dataField) {\r\n case \"thumbnail\":\r\n defaultConfig.cellTemplate = this._createThumbnailColumnCell.bind(this);\r\n defaultConfig.calculateSortValue = \"fileItem.\".concat(defaultConfig.calculateSortValue);\r\n break;\r\n case \"name\":\r\n defaultConfig.cellTemplate = this._createNameColumnCell.bind(this);\r\n defaultConfig.caption = _message.default.format(\"dxFileManager-listDetailsColumnCaptionName\");\r\n break;\r\n case \"size\":\r\n defaultConfig.calculateCellValue = this._calculateSizeColumnCellValue.bind(this);\r\n defaultConfig.caption = _message.default.format(\"dxFileManager-listDetailsColumnCaptionFileSize\");\r\n defaultConfig.calculateSortValue = function(rowData) {\r\n return rowData.fileItem.isDirectory ? -1 : rowData.fileItem.size\r\n };\r\n break;\r\n case \"dateModified\":\r\n defaultConfig.caption = _message.default.format(\"dxFileManager-listDetailsColumnCaptionDateModified\")\r\n }(0, _extend.extend)(true, result, defaultConfig)\r\n }(0, _uiFile_manager.extendAttributes)(result, columnOptions, [\"alignment\", \"caption\", \"dataField\", \"dataType\", \"hidingPriority\", \"sortIndex\", \"sortOrder\", \"visible\", \"visibleIndex\", \"width\"]);\r\n if (columnOptions.cssClass) {\r\n resultCssClass = \"\".concat(resultCssClass, \" \").concat(columnOptions.cssClass)\r\n }\r\n if (resultCssClass) {\r\n result.cssClass = resultCssClass\r\n }\r\n return result\r\n };\r\n _proto._updateColumnDataField = function(column) {\r\n var dataItemSuffix = this._isDefaultColumn(column.dataField) ? \"\" : \"dataItem.\";\r\n column.dataField = \"fileItem.\" + dataItemSuffix + column.dataField;\r\n return column\r\n };\r\n _proto._isDefaultColumn = function(columnDataField) {\r\n return !!DEFAULT_COLUMN_CONFIGS[columnDataField]\r\n };\r\n _proto._onFileItemActionButtonClick = function(_ref) {\r\n var component = _ref.component,\r\n element = _ref.element,\r\n event = _ref.event;\r\n event.stopPropagation();\r\n var $row = component.$element().closest(this._getItemSelector());\r\n var fileItemInfo = $row.data(\"item\");\r\n this._selectItem(fileItemInfo);\r\n this._showContextMenu(this._getFileItemsForContextMenu(fileItemInfo), element, fileItemInfo);\r\n this._activeFileActionsButton = component;\r\n this._activeFileActionsButton.setActive(true)\r\n };\r\n _proto._onContextMenuHidden = function() {\r\n if (this._activeFileActionsButton) {\r\n this._activeFileActionsButton.setActive(false)\r\n }\r\n };\r\n _proto._getItemThumbnailCssClass = function() {\r\n return FILE_MANAGER_DETAILS_ITEM_THUMBNAIL_CLASS\r\n };\r\n _proto._getItemSelector = function() {\r\n return \".\".concat(DATA_GRID_DATA_ROW_CLASS)\r\n };\r\n _proto._onItemDblClick = function(e) {\r\n var $row = (0, _renderer.default)(e.currentTarget);\r\n var fileItemInfo = $row.data(\"item\");\r\n this._raiseSelectedItemOpened(fileItemInfo)\r\n };\r\n _proto._isAllItemsSelected = function() {\r\n var selectableItemsCount = this._hasParentDirectoryItem ? this._itemCount - 1 : this._itemCount;\r\n var selectedRowKeys = this._filesView.option(\"selectedRowKeys\");\r\n if (!selectedRowKeys.length) {\r\n return false\r\n }\r\n return selectedRowKeys.length >= selectableItemsCount ? true : void 0\r\n };\r\n _proto._onEditorPreparing = function(_ref2) {\r\n var _this4 = this;\r\n var component = _ref2.component,\r\n command = _ref2.command,\r\n row = _ref2.row,\r\n parentType = _ref2.parentType,\r\n editorOptions = _ref2.editorOptions;\r\n if (!this._filesView) {\r\n this._filesView = component\r\n }\r\n if (\"select\" === command && row) {\r\n if (this._isParentDirectoryItem(row.data)) {\r\n editorOptions.disabled = true\r\n }\r\n } else {\r\n if (\"headerRow\" === parentType) {\r\n editorOptions.onInitialized = function(_ref3) {\r\n var component = _ref3.component;\r\n _this4._selectAllCheckBox = component\r\n };\r\n editorOptions.value = this._isAllItemsSelected();\r\n editorOptions.onValueChanged = function(args) {\r\n return _this4._onSelectAllCheckBoxValueChanged(args)\r\n }\r\n }\r\n }\r\n };\r\n _proto._onSelectAllCheckBoxValueChanged = function(_ref4) {\r\n var event = _ref4.event,\r\n previousValue = _ref4.previousValue,\r\n value = _ref4.value;\r\n if (!event) {\r\n if (previousValue && !this._selectAllCheckBoxUpdating && this._selectAllCheckBox) {\r\n this._selectAllCheckBox.option(\"value\", previousValue)\r\n }\r\n return\r\n }\r\n if (this._isAllItemsSelected() === value) {\r\n return\r\n }\r\n if (value) {\r\n this._filesView.selectAll()\r\n } else {\r\n this._filesView.deselectAll()\r\n }\r\n event.preventDefault()\r\n };\r\n _proto._onRowPrepared = function(_ref5) {\r\n var rowType = _ref5.rowType,\r\n rowElement = _ref5.rowElement,\r\n data = _ref5.data;\r\n if (\"data\" === rowType) {\r\n var $row = (0, _renderer.default)(rowElement);\r\n $row.data(\"item\", data);\r\n if (this._isParentDirectoryItem(data)) {\r\n $row.addClass(FILE_MANAGER_PARENT_DIRECTORY_ITEM)\r\n }\r\n }\r\n };\r\n _proto._onContextMenuPreparing = function(e) {\r\n if (!this._isDesktop()) {\r\n return\r\n }\r\n var fileItems = null;\r\n var item = null;\r\n if (e.row && \"data\" === e.row.rowType) {\r\n item = e.row.data;\r\n this._selectItem(item);\r\n fileItems = this._getFileItemsForContextMenu(item)\r\n }\r\n e.items = this._contextMenu.createContextMenuItems(fileItems, null, item);\r\n this._raiseContextMenuShowing()\r\n };\r\n _proto._onFilesViewSelectionChanged = function(_ref6) {\r\n var component = _ref6.component,\r\n selectedRowsData = _ref6.selectedRowsData,\r\n selectedRowKeys = _ref6.selectedRowKeys,\r\n currentSelectedRowKeys = _ref6.currentSelectedRowKeys,\r\n currentDeselectedRowKeys = _ref6.currentDeselectedRowKeys;\r\n this._filesView = this._filesView || component;\r\n if (this._selectAllCheckBox) {\r\n this._selectAllCheckBoxUpdating = true;\r\n this._selectAllCheckBox.option(\"value\", this._isAllItemsSelected());\r\n this._selectAllCheckBoxUpdating = false\r\n }\r\n var selectedItems = selectedRowsData.map(function(itemInfo) {\r\n return itemInfo.fileItem\r\n });\r\n this._tryRaiseSelectionChanged({\r\n selectedItemInfos: selectedRowsData,\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedRowKeys,\r\n currentSelectedItemKeys: currentSelectedRowKeys,\r\n currentDeselectedItemKeys: currentDeselectedRowKeys\r\n })\r\n };\r\n _proto._onFilesViewFocusedRowChanged = function(e) {\r\n var _e$row2;\r\n if (!this._isMultipleSelectionMode()) {\r\n var _e$row;\r\n this._selectItemSingleSelection(null === (_e$row = e.row) || void 0 === _e$row ? void 0 : _e$row.data)\r\n }\r\n var fileSystemItem = (null === (_e$row2 = e.row) || void 0 === _e$row2 ? void 0 : _e$row2.data.fileItem) || null;\r\n this._onFocusedItemChanged({\r\n item: fileSystemItem,\r\n itemKey: null === fileSystemItem || void 0 === fileSystemItem ? void 0 : fileSystemItem.key,\r\n itemElement: e.rowElement\r\n })\r\n };\r\n _proto._onFilesViewOptionChanged = function(_ref7) {\r\n var fullName = _ref7.fullName;\r\n if (fullName.indexOf(\"sortOrder\") > -1) {\r\n this._filesView.columnOption(\"isParentFolder\", {\r\n sortOrder: \"asc\",\r\n sortIndex: 0\r\n })\r\n }\r\n };\r\n _proto._createThumbnailColumnCell = function(container, cellInfo) {\r\n this._getItemThumbnailContainer(cellInfo.data).appendTo(container)\r\n };\r\n _proto._createNameColumnCell = function(container, cellInfo) {\r\n var _this5 = this;\r\n var $button = (0, _renderer.default)(\"
\");\r\n var $name = (0, _renderer.default)(\"\").text(cellInfo.data.fileItem.name).addClass(FILE_MANAGER_DETAILS_ITEM_NAME_CLASS);\r\n var $wrapper = (0, _renderer.default)(\"
\").append($name, $button).addClass(FILE_MANAGER_DETAILS_ITEM_NAME_WRAPPER_CLASS);\r\n (0, _renderer.default)(container).append($wrapper);\r\n this._createComponent($button, _uiFile_manager3.default, {\r\n onClick: function(e) {\r\n return _this5._onFileItemActionButtonClick(e)\r\n }\r\n })\r\n };\r\n _proto._calculateSizeColumnCellValue = function(rowData) {\r\n return rowData.fileItem.isDirectory ? \"\" : (0, _uiFile_manager.getDisplayFileSize)(rowData.fileItem.size)\r\n };\r\n _proto._selectItem = function(fileItemInfo) {\r\n var selectItemFunc = this._isMultipleSelectionMode() ? this._selectItemMultipleSelection : this._selectItemSingleSelection;\r\n selectItemFunc.call(this, fileItemInfo)\r\n };\r\n _proto._deselectItem = function(item) {\r\n this._filesView.deselectRows([item.fileItem.key])\r\n };\r\n _proto._selectItemSingleSelection = function(fileItemInfo) {\r\n if (!this._focusedItem || !fileItemInfo || this._focusedItem.fileItem.key !== fileItemInfo.fileItem.key) {\r\n var oldFocusedItem = this._focusedItem;\r\n this._focusedItem = fileItemInfo;\r\n var deselectedKeys = [];\r\n if (oldFocusedItem) {\r\n deselectedKeys.push(oldFocusedItem.fileItem.key)\r\n }\r\n var selectedItems = [];\r\n var selectedKeys = [];\r\n if (fileItemInfo) {\r\n selectedItems.push(fileItemInfo.fileItem);\r\n selectedKeys.push(fileItemInfo.fileItem.key)\r\n }\r\n this._raiseSelectionChanged({\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedKeys,\r\n currentSelectedItemKeys: [].concat(selectedKeys),\r\n currentDeselectedItemKeys: deselectedKeys\r\n })\r\n }\r\n };\r\n _proto._selectItemMultipleSelection = function(_ref8) {\r\n var fileItem = _ref8.fileItem;\r\n if (!this._filesView.isRowSelected(fileItem.key)) {\r\n var selectionController = this._filesView.getController(\"selection\");\r\n var preserve = selectionController.isSelectionWithCheckboxes();\r\n this._filesView.selectRows([fileItem.key], preserve)\r\n }\r\n };\r\n _proto._setSelectedItemKeys = function(itemKeys) {\r\n this._filesView.option(\"selectedRowKeys\", itemKeys)\r\n };\r\n _proto._setFocusedItemKey = function(itemKey) {\r\n this._filesView.option(\"focusedRowKey\", itemKey)\r\n };\r\n _proto.clearSelection = function() {\r\n if (this._isMultipleSelectionMode()) {\r\n this._filesView.clearSelection()\r\n } else {\r\n this._filesView.option(\"focusedRowIndex\", -1)\r\n }\r\n };\r\n _proto.refresh = function(options) {\r\n var actualOptions = {\r\n dataSource: this._createDataSource()\r\n };\r\n if (options && Object.prototype.hasOwnProperty.call(options, \"focusedItemKey\")) {\r\n if ((0, _type.isDefined)(options.focusedItemKey)) {\r\n actualOptions.focusedRowKey = options.focusedItemKey\r\n } else {\r\n actualOptions.focusedRowIndex = -1\r\n }\r\n }\r\n this._filesView.option(actualOptions);\r\n this._refreshDeferred = new _deferred.Deferred;\r\n return this._refreshDeferred.promise()\r\n };\r\n _proto.getSelectedItems = function() {\r\n if (this._isMultipleSelectionMode()) {\r\n return this._filesView.getSelectedRowsData()\r\n }\r\n return this._focusedItem && !this._isParentDirectoryItem(this._focusedItem) ? [this._focusedItem] : []\r\n };\r\n return FileManagerDetailsItemList\r\n}(_uiFile_manager2.default);\r\nvar _default = FileManagerDetailsItemList;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (typedArraySpeciesConstructor(O))(length);\n });\n});\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.master_detail.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.master_detail\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"masterDetail\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.column_chooser.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.ColumnChooserView = exports.ColumnChooserController = void 0;\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.column_chooser\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ColumnChooserController = _uiGrid_core.default.controllers.columnChooser;\r\nexports.ColumnChooserController = ColumnChooserController;\r\nvar ColumnChooserView = _uiGrid_core.default.views.columnChooserView;\r\nexports.ColumnChooserView = ColumnChooserView;\r\n_uiData_grid.default.registerModule(\"columnChooser\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/drawer/ui.drawer.animation.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.animation = void 0;\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _inflector = require(\"../../core/utils/inflector\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar animation = {\r\n moveTo: function(config) {\r\n var $element = config.$element;\r\n var position = config.position;\r\n var direction = config.direction || \"left\";\r\n var toConfig = {};\r\n var animationType;\r\n switch (direction) {\r\n case \"right\":\r\n toConfig.transform = \"translate(\" + position + \"px, 0px)\";\r\n animationType = \"custom\";\r\n break;\r\n case \"left\":\r\n toConfig.left = position;\r\n animationType = \"slide\";\r\n break;\r\n case \"top\":\r\n case \"bottom\":\r\n toConfig.top = position;\r\n animationType = \"slide\"\r\n }\r\n _fx.default.animate($element, {\r\n type: animationType,\r\n to: toConfig,\r\n duration: config.duration,\r\n complete: config.complete\r\n })\r\n },\r\n margin: function margin(config) {\r\n var $element = config.$element;\r\n var margin = config.margin;\r\n var direction = config.direction || \"left\";\r\n var toConfig = {};\r\n toConfig[\"margin\" + (0, _inflector.camelize)(direction, true)] = margin;\r\n _fx.default.animate($element, {\r\n to: toConfig,\r\n duration: config.duration,\r\n complete: config.complete\r\n })\r\n },\r\n fade: function($element, config, duration, completeAction) {\r\n _fx.default.animate($element, {\r\n type: \"fade\",\r\n to: config.to,\r\n from: config.from,\r\n duration: duration,\r\n complete: completeAction\r\n })\r\n },\r\n size: function size(config) {\r\n var $element = config.$element;\r\n var size = config.size;\r\n var direction = config.direction || \"left\";\r\n var marginTop = config.marginTop || 0;\r\n var duration = config.duration;\r\n var toConfig = {};\r\n if (\"right\" === direction || \"left\" === direction) {\r\n toConfig.width = size\r\n } else {\r\n toConfig.height = size\r\n }\r\n if (\"bottom\" === direction) {\r\n toConfig.marginTop = marginTop\r\n }\r\n _fx.default.animate($element, {\r\n to: toConfig,\r\n duration: duration,\r\n complete: config.complete\r\n })\r\n },\r\n complete: function($element) {\r\n _fx.default.stop($element, true)\r\n }\r\n};\r\nexports.animation = animation;\r\n","/**\r\n * DevExtreme (ui/overlay/utils.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getElementMaxHeightByWindow = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _type = require(\"../../core/utils/type\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar WINDOW_HEIGHT_PERCENT = .9;\r\nvar getElementMaxHeightByWindow = function($element, startLocation) {\r\n var $window = (0, _renderer.default)((0, _window.getWindow)());\r\n var _$element$offset = $element.offset(),\r\n elementOffset = _$element$offset.top;\r\n var actualOffset;\r\n if ((0, _type.isNumeric)(startLocation)) {\r\n if (startLocation < elementOffset) {\r\n return elementOffset - startLocation\r\n } else {\r\n actualOffset = $window.innerHeight() - startLocation + $window.scrollTop()\r\n }\r\n } else {\r\n var offsetTop = elementOffset - $window.scrollTop();\r\n var offsetBottom = $window.innerHeight() - offsetTop - $element.outerHeight();\r\n actualOffset = Math.max(offsetTop, offsetBottom)\r\n }\r\n return actualOffset * WINDOW_HEIGHT_PERCENT\r\n};\r\nexports.getElementMaxHeightByWindow = getElementMaxHeightByWindow;\r\n","import { ItiBaseDto } from '@/iti-core-vue';\n\nexport class CollaborativeAreaType extends ItiBaseDto {\n public name !: string;\n\n constructor(id: number, name: string) {\n super();\n this.id = id;\n this.name = name;\n }\n}","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.context_menu.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _ui2 = _interopRequireDefault(require(\"../context_menu/ui.context_menu\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILEMANAGER_CONTEXT_MEMU_CLASS = \"dx-filemanager-context-menu\";\r\nvar DEFAULT_CONTEXT_MENU_ITEMS = {\r\n create: {},\r\n upload: {},\r\n download: {},\r\n rename: {},\r\n move: {},\r\n copy: {},\r\n \"delete\": {},\r\n refresh: {\r\n beginGroup: true\r\n }\r\n};\r\nvar DEFAULT_ITEM_ALLOWED_PROPERTIES = [\"beginGroup\", \"closeMenuOnClick\", \"disabled\", \"icon\", \"selectable\", \"selected\", \"text\", \"visible\"];\r\nvar FileManagerContextMenu = function(_Widget) {\r\n _inheritsLoose(FileManagerContextMenu, _Widget);\r\n\r\n function FileManagerContextMenu() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerContextMenu.prototype;\r\n _proto._initMarkup = function() {\r\n var _this = this;\r\n this._initActions();\r\n this._isVisible = false;\r\n var $menu = (0, _renderer.default)(\"
\").appendTo(this.$element());\r\n this._contextMenu = this._createComponent($menu, _ui2.default, {\r\n cssClass: FILEMANAGER_CONTEXT_MEMU_CLASS,\r\n showEvent: \"\",\r\n onItemClick: function(args) {\r\n return _this._onContextMenuItemClick(args.itemData.name, args)\r\n },\r\n onShowing: function() {\r\n return _this._actions.onContextMenuShowing()\r\n },\r\n onHidden: function() {\r\n return _this._onContextMenuHidden()\r\n }\r\n });\r\n _Widget.prototype._initMarkup.call(this)\r\n };\r\n _proto.showAt = function(fileItems, element, offset, targetFileItem) {\r\n if (this._isVisible) {\r\n this._raiseContextMenuHidden()\r\n }\r\n this._isVisible = true;\r\n var items = this.createContextMenuItems(fileItems, null, targetFileItem);\r\n var position = {\r\n of: element,\r\n at: \"top left\",\r\n my: \"top left\",\r\n offset: \"\"\r\n };\r\n if (offset) {\r\n position.offset = offset.offsetX + \" \" + offset.offsetY\r\n } else {\r\n position.my = \"left top\";\r\n position.at = \"left bottom\";\r\n position.boundaryOffset = \"1\"\r\n }\r\n this._contextMenu.option({\r\n dataSource: items,\r\n target: element,\r\n position: position\r\n });\r\n this._contextMenu.show()\r\n };\r\n _proto.createContextMenuItems = function(fileItems, contextMenuItems, targetFileItem) {\r\n var _this2 = this;\r\n this._targetFileItems = fileItems;\r\n this._targetFileItem = (0, _type.isDefined)(targetFileItem) ? targetFileItem : null === fileItems || void 0 === fileItems ? void 0 : fileItems[0];\r\n var result = [];\r\n var itemArray = contextMenuItems || this.option(\"items\");\r\n itemArray.forEach(function(srcItem) {\r\n var commandName = (0, _type.isString)(srcItem) ? srcItem : srcItem.name;\r\n var item = _this2._configureItemByCommandName(commandName, srcItem, fileItems, _this2._targetFileItem);\r\n if (_this2._isContextMenuItemAvailable(item, fileItems)) {\r\n result.push(item)\r\n }\r\n });\r\n return result\r\n };\r\n _proto._isContextMenuItemAvailable = function(menuItem, fileItems) {\r\n if (!this._isDefaultItem(menuItem.name) || !menuItem._autoHide) {\r\n return (0, _common.ensureDefined)(menuItem.visible, true)\r\n }\r\n if (this._isIsolatedCreationItemCommand(menuItem.name) && fileItems && fileItems.length) {\r\n return false\r\n }\r\n return this._commandManager.isCommandAvailable(menuItem.name, fileItems)\r\n };\r\n _proto._isIsolatedCreationItemCommand = function(commandName) {\r\n return (\"create\" === commandName || \"upload\" === commandName) && this.option(\"isolateCreationItemCommands\")\r\n };\r\n _proto._isDefaultItem = function(commandName) {\r\n return !!DEFAULT_CONTEXT_MENU_ITEMS[commandName]\r\n };\r\n _proto._extendAttributes = function(targetObject, sourceObject, objectKeysArray) {\r\n objectKeysArray.forEach(function(objectKey) {\r\n (0, _extend.extend)(targetObject, (0, _type.isDefined)(sourceObject[objectKey]) ? _defineProperty({}, objectKey, sourceObject[objectKey]) : {})\r\n })\r\n };\r\n _proto._configureItemByCommandName = function(commandName, item, fileItems, targetFileItem) {\r\n if (!this._isDefaultItem(commandName)) {\r\n var res = (0, _extend.extend)(true, {}, item);\r\n res.originalItemData = item;\r\n this._addItemClickHandler(commandName, res);\r\n if (Array.isArray(item.items)) {\r\n res.items = this.createContextMenuItems(fileItems, item.items, targetFileItem)\r\n }\r\n return res\r\n }\r\n var result = this._createMenuItemByCommandName(commandName);\r\n var defaultConfig = DEFAULT_CONTEXT_MENU_ITEMS[commandName];\r\n (0, _extend.extend)(result, defaultConfig);\r\n result.originalItemData = item;\r\n this._extendAttributes(result, item, DEFAULT_ITEM_ALLOWED_PROPERTIES);\r\n if (!(0, _type.isDefined)(result.visible)) {\r\n result._autoHide = true\r\n }\r\n if (commandName && !result.name) {\r\n (0, _extend.extend)(result, {\r\n name: commandName\r\n })\r\n }\r\n return result\r\n };\r\n _proto._createMenuItemByCommandName = function(commandName) {\r\n var _this$_commandManager = this._commandManager.getCommandByName(commandName),\r\n text = _this$_commandManager.text,\r\n icon = _this$_commandManager.icon;\r\n var menuItem = {\r\n name: commandName,\r\n text: text,\r\n icon: icon\r\n };\r\n this._addItemClickHandler(commandName, menuItem);\r\n return menuItem\r\n };\r\n _proto._addItemClickHandler = function(commandName, contextMenuItem) {\r\n var _this3 = this;\r\n contextMenuItem.onItemClick = function(args) {\r\n return _this3._onContextMenuItemClick(commandName, args)\r\n }\r\n };\r\n _proto._onContextMenuItemClick = function(commandName, args) {\r\n var _this$_targetFileItem;\r\n var changedArgs = (0, _extend.extend)(true, {}, args);\r\n changedArgs.itemData = args.itemData.originalItemData;\r\n changedArgs.fileSystemItem = null === (_this$_targetFileItem = this._targetFileItem) || void 0 === _this$_targetFileItem ? void 0 : _this$_targetFileItem.fileItem;\r\n changedArgs.viewArea = this.option(\"viewArea\");\r\n this._actions.onItemClick(changedArgs);\r\n if (this._isDefaultItem(commandName)) {\r\n var targetFileItems = this._isIsolatedCreationItemCommand(commandName) ? null : this._targetFileItems;\r\n this._commandManager.executeCommand(commandName, targetFileItems)\r\n }\r\n };\r\n _proto._initActions = function() {\r\n this._actions = {\r\n onContextMenuHidden: this._createActionByOption(\"onContextMenuHidden\"),\r\n onContextMenuShowing: this._createActionByOption(\"onContextMenuShowing\"),\r\n onItemClick: this._createActionByOption(\"onItemClick\")\r\n }\r\n };\r\n _proto._onContextMenuHidden = function() {\r\n this._isVisible = false;\r\n this._raiseContextMenuHidden()\r\n };\r\n _proto._raiseContextMenuHidden = function() {\r\n this._actions.onContextMenuHidden()\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {\r\n commandManager: null,\r\n onContextMenuHidden: null,\r\n onItemClick: null\r\n })\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"commandManager\":\r\n this.repaint();\r\n break;\r\n case \"items\":\r\n if (this._isVisible) {\r\n var items = this.createContextMenuItems(this._targetFileItems);\r\n this._contextMenu.option(\"dataSource\", items)\r\n }\r\n break;\r\n case \"onItemClick\":\r\n case \"onContextMenuShowing\":\r\n case \"onContextMenuHidden\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _createClass(FileManagerContextMenu, [{\r\n key: \"_commandManager\",\r\n get: function() {\r\n return this.option(\"commandManager\")\r\n }\r\n }]);\r\n return FileManagerContextMenu\r\n}(_ui.default);\r\nvar _default = FileManagerContextMenu;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/toast.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../core/dom_adapter\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _ready_callbacks = _interopRequireDefault(require(\"../core/utils/ready_callbacks\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _array = require(\"../core/utils/array\");\r\nvar _pointer = _interopRequireDefault(require(\"../events/pointer\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _overlay = _interopRequireDefault(require(\"./overlay\"));\r\nvar _themes = require(\"./themes\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar ready = _ready_callbacks.default.add;\r\nvar TOAST_CLASS = \"dx-toast\";\r\nvar TOAST_CLASS_PREFIX = TOAST_CLASS + \"-\";\r\nvar TOAST_WRAPPER_CLASS = TOAST_CLASS_PREFIX + \"wrapper\";\r\nvar TOAST_CONTENT_CLASS = TOAST_CLASS_PREFIX + \"content\";\r\nvar TOAST_MESSAGE_CLASS = TOAST_CLASS_PREFIX + \"message\";\r\nvar TOAST_ICON_CLASS = TOAST_CLASS_PREFIX + \"icon\";\r\nvar WIDGET_NAME = \"dxToast\";\r\nvar toastTypes = [\"info\", \"warning\", \"error\", \"success\"];\r\nvar TOAST_STACK = [];\r\nvar FIRST_Z_INDEX_OFFSET = 8e3;\r\nvar visibleToastInstance = null;\r\nvar POSITION_ALIASES = {\r\n top: {\r\n my: \"top\",\r\n at: \"top\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n bottom: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: null,\r\n offset: \"0 -20\"\r\n },\r\n center: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n right: {\r\n my: \"center right\",\r\n at: \"center right\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n left: {\r\n my: \"center left\",\r\n at: \"center left\",\r\n of: null,\r\n offset: \"0 0\"\r\n }\r\n};\r\nready(function() {\r\n _events_engine.default.subscribeGlobal(_dom_adapter.default.getDocument(), _pointer.default.down, function(e) {\r\n for (var i = TOAST_STACK.length - 1; i >= 0; i--) {\r\n if (!TOAST_STACK[i]._proxiedDocumentDownHandler(e)) {\r\n return\r\n }\r\n }\r\n })\r\n});\r\nvar Toast = _overlay.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n message: \"\",\r\n type: \"info\",\r\n displayTime: 2e3,\r\n position: \"bottom center\",\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n to: 0\r\n }\r\n },\r\n shading: false,\r\n height: \"auto\",\r\n hideTopOverlayHandler: null,\r\n closeOnSwipe: true,\r\n closeOnClick: false,\r\n resizeEnabled: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n closeOnOutsideClick: true,\r\n width: \"auto\",\r\n position: {\r\n at: \"bottom left\",\r\n my: \"bottom left\",\r\n offset: \"20 -20\"\r\n },\r\n animation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 200,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 200,\r\n to: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: function(_device) {\r\n var isPhone = \"phone\" === _device.deviceType;\r\n var isAndroid = \"android\" === _device.platform;\r\n return isPhone && isAndroid\r\n },\r\n options: {\r\n width: function() {\r\n var _window$visualViewpor;\r\n return (null === window || void 0 === window ? void 0 : null === (_window$visualViewpor = window.visualViewport) || void 0 === _window$visualViewpor ? void 0 : _window$visualViewpor.width) || (0, _renderer.default)(window).width()\r\n },\r\n position: {\r\n at: \"bottom center\",\r\n my: \"bottom center\",\r\n offset: \"0 0\"\r\n }\r\n }\r\n }, {\r\n device: function(_device2) {\r\n return \"phone\" === _device2.deviceType\r\n },\r\n options: {\r\n width: function() {\r\n var _window$visualViewpor2;\r\n return (null === window || void 0 === window ? void 0 : null === (_window$visualViewpor2 = window.visualViewport) || void 0 === _window$visualViewpor2 ? void 0 : _window$visualViewpor2.width) || (0, _renderer.default)(window).width()\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return (0, _themes.isMaterial)()\r\n },\r\n options: {\r\n minWidth: 344,\r\n maxWidth: 568,\r\n displayTime: 4e3\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._posStringToObject()\r\n },\r\n _renderContentImpl: function() {\r\n if (this.option(\"message\")) {\r\n this._message = (0, _renderer.default)(\"
\").addClass(TOAST_MESSAGE_CLASS).text(this.option(\"message\")).appendTo(this.$content())\r\n }\r\n this.setAria(\"role\", \"alert\", this._message);\r\n if ((0, _array.inArray)(this.option(\"type\").toLowerCase(), toastTypes) > -1) {\r\n this.$content().prepend((0, _renderer.default)(\"
\").addClass(TOAST_ICON_CLASS))\r\n }\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(TOAST_CLASS);\r\n this._wrapper().addClass(TOAST_WRAPPER_CLASS);\r\n this._$content.addClass(TOAST_CLASS_PREFIX + String(this.option(\"type\")).toLowerCase());\r\n this.$content().addClass(TOAST_CONTENT_CLASS);\r\n this._toggleCloseEvents(\"Swipe\");\r\n this._toggleCloseEvents(\"Click\")\r\n },\r\n _renderScrollTerminator: _common.noop,\r\n _toggleCloseEvents: function(event) {\r\n var dxEvent = \"dx\" + event.toLowerCase();\r\n _events_engine.default.off(this._$content, dxEvent);\r\n this.option(\"closeOn\" + event) && _events_engine.default.on(this._$content, dxEvent, this.hide.bind(this))\r\n },\r\n _posStringToObject: function() {\r\n if (!(0, _type.isString)(this.option(\"position\"))) {\r\n return\r\n }\r\n var verticalPosition = this.option(\"position\").split(\" \")[0];\r\n var horizontalPosition = this.option(\"position\").split(\" \")[1];\r\n this.option(\"position\", (0, _extend.extend)({}, POSITION_ALIASES[verticalPosition]));\r\n switch (horizontalPosition) {\r\n case \"center\":\r\n case \"left\":\r\n case \"right\":\r\n this.option(\"position\").at += \" \" + horizontalPosition;\r\n this.option(\"position\").my += \" \" + horizontalPosition\r\n }\r\n },\r\n _show: function() {\r\n if (visibleToastInstance && visibleToastInstance !== this) {\r\n clearTimeout(visibleToastInstance._hideTimeout);\r\n visibleToastInstance.hide()\r\n }\r\n visibleToastInstance = this;\r\n return this.callBase.apply(this, arguments).done(function() {\r\n clearTimeout(this._hideTimeout);\r\n this._hideTimeout = setTimeout(this.hide.bind(this), this.option(\"displayTime\"))\r\n }.bind(this))\r\n },\r\n _hide: function() {\r\n visibleToastInstance = null;\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _overlayStack: function() {\r\n return TOAST_STACK\r\n },\r\n _zIndexInitValue: function() {\r\n return this.callBase() + FIRST_Z_INDEX_OFFSET\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._hideTimeout);\r\n visibleToastInstance = null;\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"type\":\r\n this._$content.removeClass(TOAST_CLASS_PREFIX + args.previousValue);\r\n this._$content.addClass(TOAST_CLASS_PREFIX + String(args.value).toLowerCase());\r\n break;\r\n case \"message\":\r\n if (this._message) {\r\n this._message.text(args.value)\r\n }\r\n break;\r\n case \"closeOnSwipe\":\r\n this._toggleCloseEvents(\"Swipe\");\r\n break;\r\n case \"closeOnClick\":\r\n this._toggleCloseEvents(\"Click\");\r\n break;\r\n case \"displayTime\":\r\n case \"position\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n(0, _component_registrator.default)(WIDGET_NAME, Toast);\r\nvar _default = Toast;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (file_management/object_provider.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _array = require(\"../core/utils/array\");\r\nvar _common = require(\"../core/utils/common\");\r\nvar _data = require(\"../core/utils/data\");\r\nvar _guid = _interopRequireDefault(require(\"../core/guid\"));\r\nvar _type = require(\"../core/utils/type\");\r\nvar _errors = _interopRequireDefault(require(\"../data/errors\"));\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _window = require(\"../core/utils/window\");\r\nvar _file_saver = require(\"../exporter/file_saver\");\r\nvar _ui = _interopRequireDefault(require(\"../ui/widget/ui.errors\"));\r\nvar _jszip = _interopRequireDefault(require(\"jszip\"));\r\nvar _provider_base = _interopRequireDefault(require(\"./provider_base\"));\r\nvar _errors2 = _interopRequireDefault(require(\"./errors\"));\r\nvar _utils = require(\"./utils\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar ObjectFileSystemProvider = function(_FileSystemProviderBa) {\r\n _inheritsLoose(ObjectFileSystemProvider, _FileSystemProviderBa);\r\n\r\n function ObjectFileSystemProvider(options) {\r\n var _this;\r\n options = (0, _common.ensureDefined)(options, {});\r\n _this = _FileSystemProviderBa.call(this, options) || this;\r\n var initialArray = options.data;\r\n if (initialArray && !Array.isArray(initialArray)) {\r\n throw _errors.default.errors.Error(\"E4006\")\r\n }\r\n var itemsExpr = options.itemsExpr || \"items\";\r\n _this._subFileItemsGetter = (0, _data.compileGetter)(itemsExpr);\r\n _this._subFileItemsSetter = _this._getSetter(itemsExpr);\r\n var contentExpr = options.contentExpr || \"content\";\r\n _this._contentGetter = (0, _data.compileGetter)(contentExpr);\r\n _this._contentSetter = _this._getSetter(contentExpr);\r\n var nameExpr = _this._getNameExpr(options);\r\n _this._nameSetter = _this._getSetter(nameExpr);\r\n var isDirExpr = _this._getIsDirExpr(options);\r\n _this._getIsDirSetter = _this._getSetter(isDirExpr);\r\n var keyExpr = _this._getKeyExpr(options);\r\n _this._keySetter = _this._getSetter(keyExpr);\r\n var sizeExpr = _this._getSizeExpr(options);\r\n _this._sizeSetter = _this._getSetter(sizeExpr);\r\n var dateModifiedExpr = _this._getDateModifiedExpr(options);\r\n _this._dateModifiedSetter = _this._getSetter(dateModifiedExpr);\r\n _this._data = initialArray || [];\r\n return _this\r\n }\r\n var _proto = ObjectFileSystemProvider.prototype;\r\n _proto.getItems = function(parentDir) {\r\n var _this2 = this;\r\n return this._executeActionAsDeferred(function() {\r\n return _this2._getItems(parentDir)\r\n }, true)\r\n };\r\n _proto.renameItem = function(item, name) {\r\n var _this3 = this;\r\n return this._executeActionAsDeferred(function() {\r\n return _this3._renameItemCore(item, name)\r\n })\r\n };\r\n _proto._renameItemCore = function(item, name) {\r\n if (!item) {\r\n return\r\n }\r\n var dataItem = this._findDataObject(item);\r\n this._nameSetter(dataItem, name);\r\n item.name = name;\r\n item.key = this._ensureDataObjectKey(dataItem)\r\n };\r\n _proto.createDirectory = function(parentDir, name) {\r\n var _this4 = this;\r\n return this._executeActionAsDeferred(function() {\r\n _this4._validateDirectoryExists(parentDir);\r\n _this4._createDataObject(parentDir, name, true)\r\n })\r\n };\r\n _proto.deleteItems = function(items) {\r\n var _this5 = this;\r\n return items.map(function(item) {\r\n return _this5._executeActionAsDeferred(function() {\r\n return _this5._deleteItem(item)\r\n })\r\n })\r\n };\r\n _proto.moveItems = function(items, destinationDir) {\r\n var _this6 = this;\r\n var destinationDataItem = this._findDataObject(destinationDir);\r\n var array = this._getDirectoryDataItems(destinationDataItem);\r\n var deferreds = items.map(function(item) {\r\n return _this6._executeActionAsDeferred(function() {\r\n _this6._checkAbilityToMoveOrCopyItem(item, destinationDir);\r\n var dataItem = _this6._findDataObject(item);\r\n _this6._deleteItem(item);\r\n array.push(dataItem)\r\n })\r\n });\r\n return deferreds\r\n };\r\n _proto.copyItems = function(items, destinationDir) {\r\n var _this7 = this;\r\n var destinationDataItem = this._findDataObject(destinationDir);\r\n var array = this._getDirectoryDataItems(destinationDataItem);\r\n var deferreds = items.map(function(item) {\r\n return _this7._executeActionAsDeferred(function() {\r\n _this7._checkAbilityToMoveOrCopyItem(item, destinationDir);\r\n var dataItem = _this7._findDataObject(item);\r\n var copiedItem = _this7._createCopy(dataItem);\r\n array.push(copiedItem)\r\n })\r\n });\r\n return deferreds\r\n };\r\n _proto.uploadFileChunk = function(fileData, chunksInfo, destinationDirectory) {\r\n var _this8 = this;\r\n if (chunksInfo.chunkIndex > 0) {\r\n return chunksInfo.customData.deferred\r\n }\r\n this._validateDirectoryExists(destinationDirectory);\r\n var deferred = chunksInfo.customData.deferred = new _deferred.Deferred;\r\n var reader = this._createFileReader();\r\n reader.readAsDataURL(fileData);\r\n reader.onload = function() {\r\n var content = reader.result.split(\",\")[1];\r\n var dataObj = _this8._createDataObject(destinationDirectory, fileData.name, false);\r\n _this8._sizeSetter(dataObj, fileData.size);\r\n _this8._dateModifiedSetter(dataObj, fileData.lastModifiedDate);\r\n _this8._contentSetter(dataObj, content);\r\n deferred.resolve()\r\n };\r\n reader.onerror = function(error) {\r\n return deferred.reject(error)\r\n };\r\n return deferred\r\n };\r\n _proto.downloadItems = function(items) {\r\n if (1 === items.length) {\r\n this._downloadSingleFile(items[0])\r\n } else {\r\n this._downloadMultipleFiles(items)\r\n }\r\n };\r\n _proto._downloadSingleFile = function(file) {\r\n var content = this._getFileContent(file);\r\n var byteString = window.atob(content);\r\n var arrayBuffer = new ArrayBuffer(byteString.length);\r\n var array = new Uint8Array(arrayBuffer);\r\n for (var i = 0; i < byteString.length; i++) {\r\n array[i] = byteString.charCodeAt(i)\r\n }\r\n var blob = new window.Blob([arrayBuffer], {\r\n type: \"application/octet-stream\"\r\n });\r\n _file_saver.fileSaver.saveAs(file.name, null, blob)\r\n };\r\n _proto._downloadMultipleFiles = function(files) {\r\n var _this9 = this;\r\n var jsZip = getJSZip();\r\n var zip = new jsZip;\r\n files.forEach(function(file) {\r\n return zip.file(file.name, _this9._getFileContent(file), {\r\n base64: true\r\n })\r\n });\r\n var options = {\r\n type: \"blob\",\r\n compression: \"DEFLATE\",\r\n mimeType: \"application/zip\"\r\n };\r\n var deferred = new _deferred.Deferred;\r\n if (zip.generateAsync) {\r\n zip.generateAsync(options).then(deferred.resolve)\r\n } else {\r\n deferred.resolve(zip.generate(options))\r\n }\r\n deferred.done(function(blob) {\r\n return _file_saver.fileSaver.saveAs(\"files.zip\", null, blob)\r\n })\r\n };\r\n _proto._getFileContent = function(file) {\r\n var dataItem = this._findDataObject(file);\r\n return this._contentGetter(dataItem) || \"\"\r\n };\r\n _proto._validateDirectoryExists = function(directoryInfo) {\r\n if (!this._isFileItemExists(directoryInfo) || this._isDirGetter(directoryInfo.fileItem)) {\r\n throw {\r\n errorId: _errors2.default.DirectoryNotFound,\r\n fileItem: directoryInfo\r\n }\r\n }\r\n };\r\n _proto._checkAbilityToMoveOrCopyItem = function(item, destinationDir) {\r\n var _this10 = this;\r\n var dataItem = this._findDataObject(item);\r\n var itemKey = this._getKeyFromDataObject(dataItem, item.parentPath);\r\n var pathInfo = destinationDir.getFullPathInfo();\r\n var currentPath = \"\";\r\n pathInfo.forEach(function(info) {\r\n currentPath = (0, _utils.pathCombine)(currentPath, info.name);\r\n var pathKey = _this10._getDataObjectKey(info.key, currentPath);\r\n if (pathKey === itemKey) {\r\n throw {\r\n errorId: _errors2.default.Other,\r\n fileItem: item\r\n }\r\n }\r\n })\r\n };\r\n _proto._createDataObject = function(parentDir, name, isDirectory) {\r\n var dataObj = {};\r\n this._nameSetter(dataObj, name);\r\n this._getIsDirSetter(dataObj, isDirectory);\r\n this._keySetter(dataObj, String(new _guid.default));\r\n var parentDataItem = this._findDataObject(parentDir);\r\n var array = this._getDirectoryDataItems(parentDataItem);\r\n array.push(dataObj);\r\n return dataObj\r\n };\r\n _proto._createCopy = function(dataObj) {\r\n var _this11 = this;\r\n var copyObj = {};\r\n this._nameSetter(copyObj, this._nameGetter(dataObj));\r\n this._getIsDirSetter(copyObj, this._isDirGetter(dataObj));\r\n var items = this._subFileItemsGetter(dataObj);\r\n if (Array.isArray(items)) {\r\n var itemsCopy = [];\r\n items.forEach(function(childItem) {\r\n var childCopy = _this11._createCopy(childItem);\r\n itemsCopy.push(childCopy)\r\n });\r\n this._subFileItemsSetter(copyObj, itemsCopy)\r\n }\r\n return copyObj\r\n };\r\n _proto._deleteItem = function(fileItem) {\r\n var dataItem = this._findDataObject(fileItem);\r\n var parentDirDataObj = this._findFileItemObj(fileItem.pathInfo);\r\n var array = this._getDirectoryDataItems(parentDirDataObj);\r\n var index = array.indexOf(dataItem);\r\n array.splice(index, 1)\r\n };\r\n _proto._getDirectoryDataItems = function(directoryDataObj) {\r\n if (!directoryDataObj) {\r\n return this._data\r\n }\r\n var dataItems = this._subFileItemsGetter(directoryDataObj);\r\n if (!Array.isArray(dataItems)) {\r\n dataItems = [];\r\n this._subFileItemsSetter(directoryDataObj, dataItems)\r\n }\r\n return dataItems\r\n };\r\n _proto._getItems = function(parentDir) {\r\n this._validateDirectoryExists(parentDir);\r\n var pathInfo = parentDir.getFullPathInfo();\r\n var parentDirKey = pathInfo && pathInfo.length > 0 ? pathInfo[pathInfo.length - 1].key : null;\r\n var dirFileObjects = this._data;\r\n if (parentDirKey) {\r\n var directoryEntry = this._findFileItemObj(pathInfo);\r\n dirFileObjects = directoryEntry && this._subFileItemsGetter(directoryEntry) || []\r\n }\r\n this._ensureKeysForDuplicateNameItems(dirFileObjects);\r\n return this._convertDataObjectsToFileItems(dirFileObjects, pathInfo)\r\n };\r\n _proto._ensureKeysForDuplicateNameItems = function(dataObjects) {\r\n var _this12 = this;\r\n var names = {};\r\n dataObjects.forEach(function(obj) {\r\n var name = _this12._nameGetter(obj);\r\n if (names[name]) {\r\n _this12._ensureDataObjectKey(obj)\r\n } else {\r\n names[name] = true\r\n }\r\n })\r\n };\r\n _proto._findDataObject = function(item) {\r\n if (item.isRoot()) {\r\n return null\r\n }\r\n var result = this._findFileItemObj(item.getFullPathInfo());\r\n if (!result) {\r\n throw {\r\n errorId: item.isDirectory ? _errors2.default.DirectoryNotFound : _errors2.default.FileNotFound,\r\n fileItem: item\r\n }\r\n }\r\n return result\r\n };\r\n _proto._findFileItemObj = function(pathInfo) {\r\n var _this13 = this;\r\n if (!Array.isArray(pathInfo)) {\r\n pathInfo = []\r\n }\r\n var currentPath = \"\";\r\n var fileItemObj = null;\r\n var fileItemObjects = this._data;\r\n var _loop = function(i) {\r\n fileItemObj = (0, _array.find)(fileItemObjects, function(item) {\r\n var hasCorrectFileItemType = _this13._isDirGetter(item) || i === pathInfo.length - 1;\r\n return _this13._getKeyFromDataObject(item, currentPath) === pathInfo[i].key && _this13._nameGetter(item) === pathInfo[i].name && hasCorrectFileItemType\r\n });\r\n if (fileItemObj) {\r\n currentPath = (0, _utils.pathCombine)(currentPath, _this13._nameGetter(fileItemObj));\r\n fileItemObjects = _this13._subFileItemsGetter(fileItemObj)\r\n }\r\n };\r\n for (var i = 0; i < pathInfo.length && (0 === i || fileItemObj); i++) {\r\n _loop(i)\r\n }\r\n return fileItemObj\r\n };\r\n _proto._getKeyFromDataObject = function(dataObj, defaultKeyPrefix) {\r\n var key = this._keyGetter(dataObj);\r\n var relativeName = (0, _utils.pathCombine)(defaultKeyPrefix, this._nameGetter(dataObj));\r\n return this._getDataObjectKey(key, relativeName)\r\n };\r\n _proto._getDataObjectKey = function(key, relativeName) {\r\n return key ? key : relativeName\r\n };\r\n _proto._ensureDataObjectKey = function(dataObj) {\r\n var key = this._keyGetter(dataObj);\r\n if (!key) {\r\n key = String(new _guid.default);\r\n this._keySetter(dataObj, key)\r\n }\r\n return key\r\n };\r\n _proto._hasSubDirs = function(dataObj) {\r\n var subItems = (0, _common.ensureDefined)(this._subFileItemsGetter(dataObj), []);\r\n if (!Array.isArray(subItems)) {\r\n return true\r\n }\r\n for (var i = 0; i < subItems.length; i++) {\r\n if (true === this._isDirGetter(subItems[i])) {\r\n return true\r\n }\r\n }\r\n return false\r\n };\r\n _proto._getSetter = function(expr) {\r\n return (0, _type.isFunction)(expr) ? expr : (0, _data.compileSetter)(expr)\r\n };\r\n _proto._isFileItemExists = function(fileItem) {\r\n return fileItem.isDirectory && fileItem.isRoot() || !!this._findFileItemObj(fileItem.getFullPathInfo())\r\n };\r\n _proto._createFileReader = function() {\r\n return new window.FileReader\r\n };\r\n return ObjectFileSystemProvider\r\n}(_provider_base.default);\r\n\r\nfunction getJSZip() {\r\n if (!_jszip.default) {\r\n throw _ui.default.Error(\"E1041\", \"JSZip\")\r\n }\r\n return _jszip.default\r\n}\r\nvar _default = ObjectFileSystemProvider;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.number_format_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar numberFormatHelper = {\r\n ID_PROPERTY_NAME: \"id\",\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (\"string\" === typeof sourceObj) {\r\n result = {\r\n formatCode: sourceObj\r\n };\r\n if (numberFormatHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return numberFormatHelper.isEmpty(leftTag) && numberFormatHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && leftTag.formatCode === rightTag.formatCode\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || !(0, _type.isDefined)(tag.formatCode) || \"\" === tag.formatCode\r\n },\r\n toXml: function(tag) {\r\n return _excel.default.toXml(\"numFmt\", {\r\n numFmtId: tag[numberFormatHelper.ID_PROPERTY_NAME],\r\n formatCode: tag.formatCode\r\n })\r\n }\r\n};\r\nvar _default = numberFormatHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/tree_view/ui.tree_view.base.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _element = require(\"../../core/element\");\r\nvar _check_box = _interopRequireDefault(require(\"../check_box\"));\r\nvar _ui = _interopRequireDefault(require(\"../hierarchical_collection/ui.hierarchical_collection_widget\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _double_click = require(\"../../events/double_click\");\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _ui2 = _interopRequireDefault(require(\"../scroll_view/ui.scrollable\"));\r\nvar _load_indicator = _interopRequireDefault(require(\"../load_indicator\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _ui3 = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CLASS = \"\".concat(WIDGET_CLASS, \"-node\");\r\nvar NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container\");\r\nvar NODE_LOAD_INDICATOR_CLASS = \"\".concat(NODE_CLASS, \"-loadindicator\");\r\nvar OPENED_NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container-opened\");\r\nvar IS_LEAF = \"\".concat(NODE_CLASS, \"-is-leaf\");\r\nvar ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-item\");\r\nvar ITEM_WITH_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-with-checkbox\");\r\nvar ITEM_WITHOUT_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-without-checkbox\");\r\nvar ITEM_DATA_KEY = \"\".concat(ITEM_CLASS, \"-data\");\r\nvar TOGGLE_ITEM_VISIBILITY_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility\");\r\nvar LOAD_INDICATOR_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator\");\r\nvar LOAD_INDICATOR_WRAPPER_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator-wrapper\");\r\nvar TOGGLE_ITEM_VISIBILITY_OPENED_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility-opened\");\r\nvar SELECT_ALL_ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-select-all-item\");\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar SELECTED_ITEM_CLASS = \"dx-state-selected\";\r\nvar EXPAND_EVENT_NAMESPACE = \"dxTreeView_expand\";\r\nvar DATA_ITEM_ID = \"data-item-id\";\r\nvar TreeViewBase = _ui.default.inherit({\r\n _supportedKeys: function(e) {\r\n var _this = this;\r\n var click = function(e) {\r\n var $itemElement = (0, _renderer.default)(_this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n e.target = $itemElement;\r\n e.currentTarget = $itemElement;\r\n _this._itemClickHandler(e, $itemElement.children(\".\" + ITEM_CLASS));\r\n var expandEventName = _this._getEventNameByOption(_this.option(\"expandEvent\"));\r\n var expandByClick = expandEventName === (0, _index.addNamespace)(_click.name, EXPAND_EVENT_NAMESPACE);\r\n if (expandByClick) {\r\n _this._expandEventHandler(e)\r\n }\r\n };\r\n var select = function(e) {\r\n e.preventDefault();\r\n var $focusedElement = (0, _renderer.default)(_this.option(\"focusedElement\"));\r\n var checkboxInstance = _this._getCheckBoxInstance($focusedElement);\r\n if (!checkboxInstance.option(\"disabled\")) {\r\n var currentState = checkboxInstance.option(\"value\");\r\n _this._updateItemSelection(!currentState, $focusedElement.find(\".\" + ITEM_CLASS).get(0), true)\r\n }\r\n };\r\n var toggleExpandedNestedItems = function(state, e) {\r\n if (!this.option(\"expandAllEnabled\")) {\r\n return\r\n }\r\n e.preventDefault();\r\n var $rootElement = (0, _renderer.default)(this.option(\"focusedElement\"));\r\n if (!$rootElement.length) {\r\n return\r\n }\r\n var rootItem = this._getItemData($rootElement.find(\".\".concat(ITEM_CLASS)));\r\n this._toggleExpandedNestedItems([rootItem], state)\r\n };\r\n return (0, _extend.extend)(this.callBase(), {\r\n enter: this._showCheckboxes() ? select : click,\r\n space: this._showCheckboxes() ? select : click,\r\n asterisk: toggleExpandedNestedItems.bind(this, true),\r\n minus: toggleExpandedNestedItems.bind(this, false)\r\n })\r\n },\r\n _toggleExpandedNestedItems: function(items, state) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n var item = items[i];\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n this._toggleExpandedState(node, state);\r\n this._toggleExpandedNestedItems(item.items, state)\r\n }\r\n },\r\n _getNodeElement: function(node, cache) {\r\n var key = this._encodeString(node.internalFields.key);\r\n if (cache) {\r\n if (!cache.$nodeByKey) {\r\n cache.$nodeByKey = {};\r\n this.$element().find(\".\".concat(NODE_CLASS)).each(function() {\r\n var $node = (0, _renderer.default)(this);\r\n var key = $node.attr(DATA_ITEM_ID);\r\n cache.$nodeByKey[key] = $node\r\n })\r\n }\r\n return cache.$nodeByKey[key] || (0, _renderer.default)()\r\n }\r\n var element = this.$element().get(0).querySelector(\"[\".concat(DATA_ITEM_ID, '=\"').concat(key, '\"]'));\r\n return (0, _renderer.default)(element)\r\n },\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _widgetClass: function() {\r\n return WIDGET_CLASS\r\n },\r\n _getDefaultOptions: function() {\r\n var defaultOptions = (0, _extend.extend)(this.callBase(), {\r\n animationEnabled: true,\r\n dataStructure: \"tree\",\r\n deferRendering: true,\r\n expandAllEnabled: false,\r\n hasItemsExpr: \"hasItems\",\r\n selectNodesRecursive: true,\r\n expandNodesRecursive: true,\r\n showCheckBoxesMode: \"none\",\r\n selectAllText: _message.default.format(\"dxList-selectAll\"),\r\n onItemSelectionChanged: null,\r\n onItemExpanded: null,\r\n onItemCollapsed: null,\r\n scrollDirection: \"vertical\",\r\n virtualModeEnabled: false,\r\n rootValue: 0,\r\n focusStateEnabled: false,\r\n selectionMode: \"multiple\",\r\n expandEvent: \"dblclick\",\r\n selectByClick: false,\r\n createChildren: null,\r\n onSelectAllValueChanged: null\r\n });\r\n return (0, _extend.extend)(true, defaultOptions, {\r\n integrationOptions: {\r\n useDeferUpdateForTemplates: false\r\n }\r\n })\r\n },\r\n _initSelectedItems: _common.noop,\r\n _syncSelectionOptions: _common.asyncNoop,\r\n _fireSelectionChanged: function() {\r\n var selectionChangePromise = this._selectionChangePromise;\r\n (0, _deferred.when)(selectionChangePromise).done(function() {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })()\r\n }.bind(this))\r\n },\r\n _createSelectAllValueChangedAction: function() {\r\n this._selectAllValueChangedAction = this._createActionByOption(\"onSelectAllValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _fireSelectAllValueChanged: function(value) {\r\n this._selectAllValueChangedAction({\r\n value: value\r\n })\r\n },\r\n _checkBoxModeChange: function(value, previousValue) {\r\n if (\"none\" === previousValue || \"none\" === value) {\r\n this.repaint();\r\n return\r\n }\r\n var selectAllExists = this._$selectAllItem && this._$selectAllItem.length;\r\n switch (value) {\r\n case \"selectAll\":\r\n if (!selectAllExists) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem()\r\n }\r\n break;\r\n case \"normal\":\r\n if (selectAllExists) {\r\n this._$selectAllItem.remove();\r\n delete this._$selectAllItem\r\n }\r\n }\r\n },\r\n _removeSelection: function() {\r\n var that = this;\r\n (0, _iterator.each)(this._dataAdapter.getFullData(), function(_, node) {\r\n if (!that._hasChildren(node)) {\r\n return\r\n }\r\n that._dataAdapter.toggleSelection(node.internalFields.key, false, true)\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name,\r\n value = args.value,\r\n previousValue = args.previousValue;\r\n switch (name) {\r\n case \"selectAllText\":\r\n if (this._$selectAllItem) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"text\", value)\r\n }\r\n break;\r\n case \"showCheckBoxesMode\":\r\n this._checkBoxModeChange(value, previousValue);\r\n break;\r\n case \"scrollDirection\":\r\n this._scrollableContainer.option(\"direction\", value);\r\n break;\r\n case \"items\":\r\n delete this._$selectAllItem;\r\n this.callBase(args);\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initDataAdapter();\r\n this._filter = {};\r\n break;\r\n case \"hasItemsExpr\":\r\n this._initAccessors();\r\n this.repaint();\r\n break;\r\n case \"expandEvent\":\r\n this._initExpandEvent();\r\n break;\r\n case \"deferRendering\":\r\n case \"dataStructure\":\r\n case \"rootValue\":\r\n case \"createChildren\":\r\n case \"expandNodesRecursive\":\r\n case \"onItemSelectionChanged\":\r\n case \"onItemExpanded\":\r\n case \"onItemCollapsed\":\r\n case \"expandAllEnabled\":\r\n case \"animationEnabled\":\r\n case \"virtualModeEnabled\":\r\n case \"selectByClick\":\r\n break;\r\n case \"selectionMode\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n this._createSelectAllValueChangedAction();\r\n break;\r\n case \"selectNodesRecursive\":\r\n this._dataAdapter.setOption(\"recursiveSelection\", args.value);\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _initDataSource: function() {\r\n if (this._useCustomChildrenLoader()) {\r\n this._loadChildrenByCustomLoader(null).done(function(newItems) {\r\n if (newItems && newItems.length) {\r\n this.option(\"items\", newItems)\r\n }\r\n }.bind(this))\r\n } else {\r\n this.callBase();\r\n this._isVirtualMode() && this._initVirtualMode()\r\n }\r\n },\r\n _initVirtualMode: function() {\r\n var filter = this._filter;\r\n if (!filter.custom) {\r\n filter.custom = this._dataSource.filter()\r\n }\r\n if (!filter.internal) {\r\n filter.internal = [this.option(\"parentIdExpr\"), this.option(\"rootValue\")]\r\n }\r\n },\r\n _useCustomChildrenLoader: function() {\r\n return (0, _type.isFunction)(this.option(\"createChildren\")) && this._isDataStructurePlain()\r\n },\r\n _loadChildrenByCustomLoader: function(parentNode) {\r\n var invocationResult = this.option(\"createChildren\").call(this, parentNode);\r\n if (Array.isArray(invocationResult)) {\r\n return (new _deferred.Deferred).resolve(invocationResult).promise()\r\n }\r\n if (invocationResult && (0, _type.isFunction)(invocationResult.then)) {\r\n return (0, _deferred.fromPromise)(invocationResult)\r\n }\r\n return (new _deferred.Deferred).resolve([]).promise()\r\n },\r\n _combineFilter: function() {\r\n if (!this._filter.custom || !this._filter.custom.length) {\r\n return this._filter.internal\r\n }\r\n return [this._filter.custom, this._filter.internal]\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._renderEmptyMessage()\r\n },\r\n _init: function() {\r\n this._filter = {};\r\n this.callBase();\r\n this._initStoreChangeHandlers()\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && this._isVirtualMode() && items.length) {\r\n return\r\n }\r\n this.option(\"items\", newItems)\r\n },\r\n _removeTreeViewLoadIndicator: function() {\r\n if (!this._treeViewLoadIndicator) {\r\n return\r\n }\r\n this._treeViewLoadIndicator.remove();\r\n this._treeViewLoadIndicator = null\r\n },\r\n _createTreeViewLoadIndicator: function() {\r\n this._treeViewLoadIndicator = (0, _renderer.default)(\"
\").addClass(LOAD_INDICATOR_CLASS);\r\n this._createComponent(this._treeViewLoadIndicator, _load_indicator.default, {});\r\n return this._treeViewLoadIndicator\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n var resultFilter;\r\n if (this._isVirtualMode()) {\r\n resultFilter = this._combineFilter();\r\n this._dataSource.filter(resultFilter)\r\n }\r\n if (isLoading && !this._dataSource.isLoaded()) {\r\n this.option(\"items\", []);\r\n var $wrapper = (0, _renderer.default)(\"
\").addClass(LOAD_INDICATOR_WRAPPER_CLASS);\r\n this._createTreeViewLoadIndicator().appendTo($wrapper);\r\n this.itemsContainer().append($wrapper);\r\n if (this._isVirtualMode() && this._dataSource.filter() !== resultFilter) {\r\n this._dataSource.filter([])\r\n }\r\n } else {\r\n this._removeTreeViewLoadIndicator()\r\n }\r\n },\r\n _initStoreChangeHandlers: function() {\r\n var _this2 = this;\r\n if (\"plain\" !== this.option(\"dataStructure\")) {\r\n return\r\n }\r\n this._dataSource && this._dataSource.store().on(\"inserted\", function(newItem) {\r\n _this2.option().items = _this2.option(\"items\").concat(newItem);\r\n _this2._dataAdapter.addItem(newItem);\r\n if (!_this2._dataAdapter.isFiltered(newItem)) {\r\n return\r\n }\r\n _this2._updateLevel(_this2._parentIdGetter(newItem))\r\n }).on(\"removed\", function(removedKey) {\r\n var node = _this2._dataAdapter.getNodeByKey(removedKey);\r\n if ((0, _type.isDefined)(node)) {\r\n _this2.option(\"items\")[_this2._dataAdapter.getIndexByKey(node.internalFields.key)] = 0;\r\n _this2._markChildrenItemsToRemove(node);\r\n _this2._removeItems();\r\n _this2._dataAdapter.removeItem(removedKey);\r\n _this2._updateLevel(_this2._parentIdGetter(node))\r\n }\r\n })\r\n },\r\n _markChildrenItemsToRemove: function(node) {\r\n var _this3 = this;\r\n var keys = node.internalFields.childrenKeys;\r\n (0, _iterator.each)(keys, function(_, key) {\r\n _this3.option(\"items\")[_this3._dataAdapter.getIndexByKey(key)] = 0;\r\n _this3._markChildrenItemsToRemove(_this3._dataAdapter.getNodeByKey(key))\r\n })\r\n },\r\n _removeItems: function() {\r\n var _this4 = this;\r\n var items = (0, _extend.extend)(true, [], this.option(\"items\"));\r\n var counter = 0;\r\n (0, _iterator.each)(items, function(index, item) {\r\n if (!item) {\r\n _this4.option(\"items\").splice(index - counter, 1);\r\n counter++\r\n }\r\n })\r\n },\r\n _updateLevel: function(parentId) {\r\n var $container = this._getContainerByParentKey(parentId);\r\n this._renderItems($container, this._dataAdapter.getChildrenNodes(parentId))\r\n },\r\n _getOldContainer: function($itemElement) {\r\n if ($itemElement.length) {\r\n return $itemElement.children(\".\".concat(NODE_CONTAINER_CLASS))\r\n }\r\n if (this._scrollableContainer) {\r\n return this._scrollableContainer.$content().children()\r\n }\r\n return (0, _renderer.default)()\r\n },\r\n _getContainerByParentKey: function(parentId) {\r\n var node = this._dataAdapter.getNodeByKey(parentId);\r\n var $itemElement = node ? this._getNodeElement(node) : [];\r\n this._getOldContainer($itemElement).remove();\r\n var $container = this._renderNodeContainer($itemElement);\r\n if (this._isRootLevel(parentId)) {\r\n if (!this._scrollableContainer) {\r\n this._renderScrollableContainer()\r\n }\r\n this._scrollableContainer.$content().append($container)\r\n }\r\n return $container\r\n },\r\n _isRootLevel: function(parentId) {\r\n return parentId === this.option(\"rootValue\")\r\n },\r\n _getAccessors: function() {\r\n var accessors = this.callBase();\r\n accessors.push(\"hasItems\");\r\n return accessors\r\n },\r\n _getDataAdapterOptions: function() {\r\n return {\r\n rootValue: this.option(\"rootValue\"),\r\n multipleSelection: !this._isSingleSelection(),\r\n recursiveSelection: this._isRecursiveSelection(),\r\n recursiveExpansion: this.option(\"expandNodesRecursive\"),\r\n selectionRequired: this.option(\"selectionRequired\"),\r\n dataType: this.option(\"dataStructure\"),\r\n sort: this._dataSource && this._dataSource.sort()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._renderScrollableContainer();\r\n this._renderEmptyMessage(this._dataAdapter.getRootNodes());\r\n this.callBase();\r\n this.setAria(\"role\", \"tree\")\r\n },\r\n _renderContentImpl: function() {\r\n var $nodeContainer = this._renderNodeContainer();\r\n this._scrollableContainer.$content().append($nodeContainer);\r\n if (!this.option(\"items\") || !this.option(\"items\").length) {\r\n return\r\n }\r\n this._renderItems($nodeContainer, this._dataAdapter.getRootNodes());\r\n this._initExpandEvent();\r\n if (this._selectAllEnabled()) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem($nodeContainer)\r\n }\r\n },\r\n _isVirtualMode: function() {\r\n return this.option(\"virtualModeEnabled\") && this._isDataStructurePlain() && !!this.option(\"dataSource\")\r\n },\r\n _isDataStructurePlain: function() {\r\n return \"plain\" === this.option(\"dataStructure\")\r\n },\r\n _fireContentReadyAction: function() {\r\n var dataSource = this.getDataSource();\r\n var skipContentReadyAction = dataSource && !dataSource.isLoaded();\r\n if (this._scrollableContainer && (0, _window.hasWindow)()) {\r\n this._scrollableContainer.update()\r\n }\r\n if (!skipContentReadyAction) {\r\n this.callBase()\r\n }\r\n if (this._scrollableContainer && (0, _window.hasWindow)()) {\r\n this._scrollableContainer.update()\r\n }\r\n },\r\n _renderScrollableContainer: function() {\r\n this._scrollableContainer = this._createComponent((0, _renderer.default)(\"
\").appendTo(this.$element()), _ui2.default, {\r\n direction: this.option(\"scrollDirection\"),\r\n useKeyboard: false\r\n })\r\n },\r\n _renderNodeContainer: function($parent) {\r\n var $container = (0, _renderer.default)(\"
    \").addClass(NODE_CONTAINER_CLASS);\r\n this.setAria(\"role\", \"group\", $container);\r\n if ($parent && $parent.length) {\r\n var itemData = this._getItemData($parent.children(\".\" + ITEM_CLASS));\r\n if (this._expandedGetter(itemData)) {\r\n $container.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n $container.appendTo($parent)\r\n }\r\n return $container\r\n },\r\n _createDOMElement: function($nodeContainer, node) {\r\n var $node = (0, _renderer.default)(\"
  • \").addClass(NODE_CLASS).attr(DATA_ITEM_ID, this._encodeString(node.internalFields.key)).prependTo($nodeContainer);\r\n this.setAria({\r\n role: \"treeitem\",\r\n label: this._displayGetter(node.internalFields.item) || \"\",\r\n expanded: node.internalFields.expanded || false,\r\n level: this._getLevel($nodeContainer)\r\n }, $node);\r\n return $node\r\n },\r\n _getLevel: function($nodeContainer) {\r\n var parent = $nodeContainer.parent();\r\n return parent.hasClass(\"dx-scrollable-content\") ? 1 : parseInt(parent.attr(\"aria-level\")) + 1\r\n },\r\n _showCheckboxes: function() {\r\n return \"none\" !== this.option(\"showCheckBoxesMode\")\r\n },\r\n _selectAllEnabled: function() {\r\n return \"selectAll\" === this.option(\"showCheckBoxesMode\") && !this._isSingleSelection()\r\n },\r\n _renderItems: function($nodeContainer, nodes) {\r\n var length = nodes.length - 1;\r\n for (var i = length; i >= 0; i--) {\r\n this._renderItem(i, nodes[i], $nodeContainer)\r\n }\r\n this._renderedItemsCount += nodes.length\r\n },\r\n _renderItem: function(nodeIndex, node, $nodeContainer) {\r\n var $node = this._createDOMElement($nodeContainer, node);\r\n var nodeData = node.internalFields;\r\n var showCheckBox = this._showCheckboxes();\r\n $node.addClass(showCheckBox ? ITEM_WITH_CHECKBOX_CLASS : ITEM_WITHOUT_CHECKBOX_CLASS);\r\n $node.toggleClass(INVISIBLE_STATE_CLASS, false === nodeData.item.visible);\r\n showCheckBox && this._renderCheckBox($node, node);\r\n this.setAria(\"selected\", nodeData.selected, $node);\r\n this._toggleSelectedClass($node, nodeData.selected);\r\n this.callBase(this._renderedItemsCount + nodeIndex, nodeData.item, $node);\r\n if (false !== nodeData.item.visible) {\r\n this._renderChildren($node, node)\r\n }\r\n },\r\n _setAriaSelected: function() {},\r\n _renderChildren: function($node, node) {\r\n var _this5 = this;\r\n if (!this._hasChildren(node)) {\r\n this._addLeafClass($node);\r\n return\r\n }\r\n this._renderToggleItemVisibilityIcon($node, node);\r\n if (this.option(\"deferRendering\") && !node.internalFields.expanded) {\r\n return\r\n }\r\n this._loadSublevel(node).done(function(childNodes) {\r\n _this5._renderSublevel($node, _this5._getActualNode(node), childNodes)\r\n })\r\n },\r\n _getActualNode: function(cachedNode) {\r\n return this._dataAdapter.getNodeByKey(cachedNode.internalFields.key)\r\n },\r\n _hasChildren: function(node) {\r\n if (this._isVirtualMode() || this._useCustomChildrenLoader()) {\r\n return false !== this._hasItemsGetter(node.internalFields.item)\r\n }\r\n return this.callBase(node)\r\n },\r\n _loadSublevel: function(node) {\r\n var _this6 = this;\r\n var deferred = new _deferred.Deferred;\r\n var childrenNodes = this._getChildNodes(node);\r\n if (childrenNodes.length) {\r\n deferred.resolve(childrenNodes)\r\n } else {\r\n this._loadNestedItems(node).done(function(items) {\r\n deferred.resolve(_this6._dataAdapter.getNodesByItems(items))\r\n })\r\n }\r\n return deferred.promise()\r\n },\r\n _renderSublevel: function($node, node, childNodes) {\r\n var $nestedNodeContainer = this._renderNodeContainer($node, node);\r\n var childNodesByChildrenKeys = childNodes.filter(function(childNode) {\r\n return node.internalFields.childrenKeys.indexOf(childNode.internalFields.key) !== -1\r\n });\r\n this._renderItems($nestedNodeContainer, childNodesByChildrenKeys);\r\n if (childNodesByChildrenKeys.length && !node.internalFields.selected) {\r\n var firstChild = childNodesByChildrenKeys[0];\r\n this._updateParentsState(firstChild, this._getNodeElement(firstChild))\r\n }\r\n this._normalizeIconState($node, childNodesByChildrenKeys.length);\r\n if (node.internalFields.expanded) {\r\n $nestedNodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n },\r\n _executeItemRenderAction: function(itemIndex, itemData, itemElement) {\r\n var node = this._getNode(itemElement);\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: itemIndex,\r\n itemData: itemData,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _addLeafClass: function($node) {\r\n $node.addClass(IS_LEAF)\r\n },\r\n _expandEventHandler: function(e) {\r\n var $nodeElement = (0, _renderer.default)(e.currentTarget.parentNode);\r\n if (!$nodeElement.hasClass(IS_LEAF)) {\r\n this._toggleExpandedState(e.currentTarget, void 0, e)\r\n }\r\n },\r\n _initExpandEvent: function() {\r\n var expandedEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var $itemsContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n _events_engine.default.off($itemsContainer, \".\" + EXPAND_EVENT_NAMESPACE, itemSelector);\r\n _events_engine.default.on($itemsContainer, expandedEventName, itemSelector, this._expandEventHandler.bind(this))\r\n },\r\n _getEventNameByOption: function(name) {\r\n var event = \"click\" === name ? _click.name : _double_click.name;\r\n return (0, _index.addNamespace)(event, EXPAND_EVENT_NAMESPACE)\r\n },\r\n _getNode: function(identifier) {\r\n if (!(0, _type.isDefined)(identifier)) {\r\n return null\r\n }\r\n if (identifier.internalFields) {\r\n return identifier\r\n }\r\n if ((0, _type.isPrimitive)(identifier)) {\r\n return this._dataAdapter.getNodeByKey(identifier)\r\n }\r\n var itemElement = (0, _renderer.default)(identifier).get(0);\r\n if (!itemElement) {\r\n return null\r\n }\r\n if (_dom_adapter.default.isElementNode(itemElement)) {\r\n return this._getNodeByElement(itemElement)\r\n }\r\n return this._dataAdapter.getNodeByItem(itemElement)\r\n },\r\n _getNodeByElement: function(itemElement) {\r\n var $node = (0, _renderer.default)(itemElement).closest(\".\" + NODE_CLASS);\r\n var key = this._decodeString($node.attr(DATA_ITEM_ID));\r\n return this._dataAdapter.getNodeByKey(key)\r\n },\r\n _toggleExpandedState: function(itemElement, state, e) {\r\n var node = this._getNode(itemElement);\r\n if (!node) {\r\n return (new _deferred.Deferred).reject().promise()\r\n }\r\n if (node.internalFields.disabled) {\r\n return (new _deferred.Deferred).reject().promise()\r\n }\r\n var currentState = node.internalFields.expanded;\r\n if (currentState === state) {\r\n return (new _deferred.Deferred).resolve().promise()\r\n }\r\n if (this._hasChildren(node)) {\r\n var $node = this._getNodeElement(node);\r\n if ($node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS, \":not(.\").concat(INVISIBLE_STATE_CLASS, \")\")).length) {\r\n return (new _deferred.Deferred).reject().promise()\r\n }\r\n this._createLoadIndicator($node)\r\n }\r\n if (!(0, _type.isDefined)(state)) {\r\n state = !currentState\r\n }\r\n this._dataAdapter.toggleExpansion(node.internalFields.key, state);\r\n return this._updateExpandedItemsUI(node, state, e)\r\n },\r\n _createLoadIndicator: function($node) {\r\n var $icon = $node.children(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n if ($icon.hasClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS) || $nodeContainer.not(\":empty\").length) {\r\n return\r\n }\r\n this._createComponent((0, _renderer.default)(\"
    \").addClass(NODE_LOAD_INDICATOR_CLASS), _load_indicator.default, {}).$element().appendTo($node);\r\n $icon.hide()\r\n },\r\n _renderToggleItemVisibilityIcon: function($node, node) {\r\n var $icon = (0, _renderer.default)(\"
    \").addClass(TOGGLE_ITEM_VISIBILITY_CLASS).appendTo($node);\r\n if (node.internalFields.expanded) {\r\n $icon.addClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS);\r\n $node.parent().addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n if (node.internalFields.disabled) {\r\n $icon.addClass(DISABLED_STATE_CLASS)\r\n }\r\n this._renderToggleItemVisibilityIconClick($icon, node)\r\n },\r\n _renderToggleItemVisibilityIconClick: function($icon, node) {\r\n var _this7 = this;\r\n var eventName = (0, _index.addNamespace)(_click.name, this.NAME);\r\n _events_engine.default.off($icon, eventName);\r\n _events_engine.default.on($icon, eventName, function(e) {\r\n _this7._toggleExpandedState(node.internalFields.key, void 0, e)\r\n })\r\n },\r\n _updateExpandedItemsUI: function(node, state, e) {\r\n var $node = this._getNodeElement(node);\r\n var isHiddenNode = !$node.length || state && $node.is(\":hidden\");\r\n if (this.option(\"expandNodesRecursive\") && isHiddenNode) {\r\n var parentNode = this._getNode(node.internalFields.parentKey);\r\n if (parentNode) {\r\n this._updateExpandedItemsUI(parentNode, state, e)\r\n }\r\n }\r\n var $icon = $node.children(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n $icon.toggleClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS, state);\r\n var nodeContainerExists = $nodeContainer.length > 0;\r\n var completionCallback = new _deferred.Deferred;\r\n if (!state || nodeContainerExists && !$nodeContainer.is(\":empty\")) {\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n if (0 === node.internalFields.childrenKeys.length && (this._isVirtualMode() || this._useCustomChildrenLoader())) {\r\n this._loadNestedItemsWithUpdate(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n this._renderSublevel($node, node, this._getChildNodes(node));\r\n this._fireContentReadyAction();\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n },\r\n _loadNestedItemsWithUpdate: function(node, state, e, completionCallback) {\r\n var _this8 = this;\r\n var $node = this._getNodeElement(node);\r\n this._loadNestedItems(node).done(function(items) {\r\n var actualNodeData = _this8._getActualNode(node);\r\n _this8._renderSublevel($node, actualNodeData, _this8._dataAdapter.getNodesByItems(items));\r\n if (!items || !items.length) {\r\n return\r\n }\r\n _this8._fireContentReadyAction();\r\n _this8._animateNodeContainer(actualNodeData, state, e, completionCallback)\r\n })\r\n },\r\n _loadNestedItems: function(node) {\r\n var _this9 = this;\r\n if (this._useCustomChildrenLoader()) {\r\n var publicNode = this._dataAdapter.getPublicNode(node);\r\n return this._loadChildrenByCustomLoader(publicNode).done(function(newItems) {\r\n if (!_this9._areNodesExists(newItems)) {\r\n _this9._appendItems(newItems)\r\n }\r\n })\r\n }\r\n if (!this._isVirtualMode()) {\r\n return (new _deferred.Deferred).resolve([]).promise()\r\n }\r\n this._filter.internal = [this.option(\"parentIdExpr\"), node.internalFields.key];\r\n this._dataSource.filter(this._combineFilter());\r\n return this._dataSource.load().done(function(newItems) {\r\n if (!_this9._areNodesExists(newItems)) {\r\n _this9._appendItems(newItems)\r\n }\r\n })\r\n },\r\n _areNodesExists: function(newItems, items) {\r\n var keyOfRootItem = this.keyOf(newItems[0]);\r\n var fullData = this._dataAdapter.getFullData();\r\n return !!this._dataAdapter.getNodeByKey(keyOfRootItem, fullData)\r\n },\r\n _appendItems: function(newItems) {\r\n this.option().items = this.option(\"items\").concat(newItems);\r\n this._initDataAdapter()\r\n },\r\n _animateNodeContainer: function(node, state, e, completionCallback) {\r\n var $node = this._getNodeElement(node);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n if (node && completionCallback && 0 === $nodeContainer.length) {\r\n completionCallback.resolve()\r\n }\r\n $nodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS);\r\n var nodeHeight = $nodeContainer.height();\r\n _fx.default.stop($nodeContainer, true);\r\n _fx.default.animate($nodeContainer, {\r\n type: \"custom\",\r\n duration: this.option(\"animationEnabled\") ? 400 : 0,\r\n from: {\r\n maxHeight: state ? 0 : nodeHeight\r\n },\r\n to: {\r\n maxHeight: state ? nodeHeight : 0\r\n },\r\n complete: function() {\r\n $nodeContainer.css(\"maxHeight\", \"none\");\r\n $nodeContainer.toggleClass(OPENED_NODE_CONTAINER_CLASS, state);\r\n this.setAria(\"expanded\", state, $node);\r\n this._scrollableContainer.update();\r\n this._fireExpandedStateUpdatedEvent(state, node, e);\r\n if (completionCallback) {\r\n completionCallback.resolve()\r\n }\r\n }.bind(this)\r\n })\r\n },\r\n _fireExpandedStateUpdatedEvent: function(isExpanded, node, e) {\r\n if (!this._hasChildren(node)) {\r\n return\r\n }\r\n var optionName = isExpanded ? \"onItemExpanded\" : \"onItemCollapsed\";\r\n if ((0, _type.isDefined)(e)) {\r\n this._itemDXEventHandler(e, optionName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n } else {\r\n var target = this._getNodeElement(node);\r\n this._itemEventHandler(target, optionName, {\r\n event: e,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n }\r\n },\r\n _normalizeIconState: function($node, hasNewItems) {\r\n var $loadIndicator = $node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS));\r\n $loadIndicator.length && _load_indicator.default.getInstance($loadIndicator).option(\"visible\", false);\r\n if (hasNewItems) {\r\n var $icon = $node.find(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS);\r\n $icon.show();\r\n return\r\n }\r\n $node.find(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS).removeClass(TOGGLE_ITEM_VISIBILITY_CLASS);\r\n $node.addClass(IS_LEAF)\r\n },\r\n _emptyMessageContainer: function() {\r\n return this._scrollableContainer ? this._scrollableContainer.content() : this.callBase()\r\n },\r\n _renderContent: function() {\r\n var items = this.option(\"items\");\r\n if (items && items.length) {\r\n this._contentAlreadyRendered = true\r\n }\r\n this.callBase()\r\n },\r\n _renderSelectAllItem: function($container) {\r\n $container = $container || this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first();\r\n this._$selectAllItem = (0, _renderer.default)(\"
    \").addClass(SELECT_ALL_ITEM_CLASS);\r\n var value = this._dataAdapter.isAllSelected();\r\n this._createComponent(this._$selectAllItem, _check_box.default, {\r\n value: value,\r\n text: this.option(\"selectAllText\"),\r\n onValueChanged: this._onSelectAllCheckboxValueChanged.bind(this)\r\n });\r\n this._toggleSelectedClass(this._$selectAllItem, value);\r\n $container.before(this._$selectAllItem)\r\n },\r\n _onSelectAllCheckboxValueChanged: function(args) {\r\n this._toggleSelectAll(args);\r\n this._fireSelectAllValueChanged(args.value)\r\n },\r\n _toggleSelectAll: function(args) {\r\n this._dataAdapter.toggleSelectAll(args.value);\r\n this._updateItemsUI();\r\n this._fireSelectionChanged()\r\n },\r\n _renderCheckBox: function($node, node) {\r\n var $checkbox = (0, _renderer.default)(\"
    \").appendTo($node);\r\n this._createComponent($checkbox, _check_box.default, {\r\n value: node.internalFields.selected,\r\n onValueChanged: this._changeCheckboxValue.bind(this),\r\n focusStateEnabled: false,\r\n disabled: this._disabledGetter(node)\r\n })\r\n },\r\n _toggleSelectedClass: function($node, value) {\r\n $node.toggleClass(SELECTED_ITEM_CLASS, !!value)\r\n },\r\n _toggleNodeDisabledState: function(node, state) {\r\n var $node = this._getNodeElement(node);\r\n var $item = $node.find(\".\" + ITEM_CLASS).eq(0);\r\n this._dataAdapter.toggleNodeDisabledState(node.internalFields.key, state);\r\n $item.toggleClass(DISABLED_STATE_CLASS, !!state);\r\n if (this._showCheckboxes()) {\r\n var checkbox = this._getCheckBoxInstance($node);\r\n checkbox.option(\"disabled\", !!state)\r\n }\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n if (property === this.option(\"disabledExpr\")) {\r\n this._toggleNodeDisabledState(node, value)\r\n }\r\n },\r\n _changeCheckboxValue: function(e) {\r\n var $node = (0, _renderer.default)(e.element).parent(\".\" + NODE_CLASS);\r\n var $item = $node.children(\".\" + ITEM_CLASS);\r\n var item = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n var value = e.value;\r\n if (node && node.internalFields.selected === value) {\r\n return\r\n }\r\n this._updateItemSelection(value, item, e.event)\r\n },\r\n _isSingleSelection: function() {\r\n return \"single\" === this.option(\"selectionMode\")\r\n },\r\n _isRecursiveSelection: function() {\r\n return this.option(\"selectNodesRecursive\") && \"single\" !== this.option(\"selectionMode\")\r\n },\r\n _isLastSelectedBranch: function(publicNode, selectedNodesKeys, deep) {\r\n var keyIndex = selectedNodesKeys.indexOf(publicNode.key);\r\n if (keyIndex >= 0) {\r\n selectedNodesKeys.splice(keyIndex, 1)\r\n }\r\n if (deep) {\r\n (0, _iterator.each)(publicNode.children, function(_, childNode) {\r\n this._isLastSelectedBranch(childNode, selectedNodesKeys, true)\r\n }.bind(this))\r\n }\r\n if (publicNode.parent) {\r\n this._isLastSelectedBranch(publicNode.parent, selectedNodesKeys)\r\n }\r\n return 0 === selectedNodesKeys.length\r\n },\r\n _isLastRequired: function(node) {\r\n var selectionRequired = this.option(\"selectionRequired\");\r\n var isSingleMode = this._isSingleSelection();\r\n var selectedNodesKeys = this.getSelectedNodeKeys();\r\n if (!selectionRequired) {\r\n return\r\n }\r\n if (isSingleMode) {\r\n return 1 === selectedNodesKeys.length\r\n } else {\r\n return this._isLastSelectedBranch(node.internalFields.publicNode, selectedNodesKeys.slice(), true)\r\n }\r\n },\r\n _updateItemSelection: function(value, itemElement, dxEvent) {\r\n var _this10 = this;\r\n var node = this._getNode(itemElement);\r\n if (!node || false === node.visible) {\r\n return false\r\n }\r\n if (node.internalFields.selected === value) {\r\n return true\r\n }\r\n if (!value && this._isLastRequired(node)) {\r\n if (this._showCheckboxes()) {\r\n var $node = this._getNodeElement(node);\r\n this._getCheckBoxInstance($node).option(\"value\", true)\r\n }\r\n return false\r\n }\r\n if (value && this._isSingleSelection()) {\r\n var selectedKeys = this.getSelectedNodeKeys();\r\n (0, _iterator.each)(selectedKeys, function(index, key) {\r\n _this10._dataAdapter.toggleSelection(key, false);\r\n _this10._updateItemsUI();\r\n _this10._fireItemSelectionChanged(_this10._getNode(key))\r\n })\r\n }\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value);\r\n var isAllSelected = this._dataAdapter.isAllSelected();\r\n var needFireSelectAllChanged = this._selectAllEnabled() && this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\") !== isAllSelected;\r\n this._updateItemsUI();\r\n this._fireItemSelectionChanged(node, dxEvent);\r\n this._fireSelectionChanged();\r\n if (needFireSelectAllChanged) {\r\n this._fireSelectAllValueChanged(isAllSelected)\r\n }\r\n return true\r\n },\r\n _fireItemSelectionChanged: function(node, dxEvent) {\r\n var initiator = dxEvent || this._findItemElementByItem(node.internalFields.item);\r\n var handler = dxEvent ? this._itemDXEventHandler : this._itemEventHandler;\r\n handler.call(this, initiator, \"onItemSelectionChanged\", {\r\n node: this._dataAdapter.getPublicNode(node),\r\n itemData: node.internalFields.item\r\n })\r\n },\r\n _getCheckBoxInstance: function($node) {\r\n return $node.children(\".dx-checkbox\").dxCheckBox(\"instance\")\r\n },\r\n _updateItemsUI: function() {\r\n var _this11 = this;\r\n var cache = {};\r\n (0, _iterator.each)(this._dataAdapter.getData(), function(_, node) {\r\n var $node = _this11._getNodeElement(node, cache);\r\n var nodeSelection = node.internalFields.selected;\r\n if (!$node.length) {\r\n return\r\n }\r\n _this11._toggleSelectedClass($node, nodeSelection);\r\n _this11.setAria(\"selected\", nodeSelection, $node);\r\n if (_this11._showCheckboxes()) {\r\n _this11._getCheckBoxInstance($node).option(\"value\", nodeSelection)\r\n }\r\n });\r\n if (this._selectAllEnabled()) {\r\n var selectAllCheckbox = this._$selectAllItem.dxCheckBox(\"instance\");\r\n selectAllCheckbox._setOptionWithoutOptionChange(\"onValueChanged\", void 0);\r\n selectAllCheckbox.option(\"value\", this._dataAdapter.isAllSelected());\r\n selectAllCheckbox._setOptionWithoutOptionChange(\"onValueChanged\", this._onSelectAllCheckboxValueChanged.bind(this))\r\n }\r\n },\r\n _updateParentsState: function(node, $node) {\r\n if (!$node) {\r\n return\r\n }\r\n var parentNode = this._dataAdapter.getNodeByKey(node.internalFields.parentKey);\r\n var $parentNode = (0, _renderer.default)($node.parents(\".\" + NODE_CLASS)[0]);\r\n if (this._showCheckboxes()) {\r\n var parentValue = parentNode.internalFields.selected;\r\n this._getCheckBoxInstance($parentNode).option(\"value\", parentValue);\r\n this._toggleSelectedClass($parentNode, parentValue)\r\n }\r\n if (parentNode.internalFields.parentKey !== this.option(\"rootValue\")) {\r\n this._updateParentsState(parentNode, $parentNode)\r\n }\r\n },\r\n _itemEventHandlerImpl: function(initiator, action, actionArgs) {\r\n var $itemElement = (0, _renderer.default)(initiator).closest(\".\" + NODE_CLASS).children(\".\" + ITEM_CLASS);\r\n return action((0, _extend.extend)(this._extendActionArgs($itemElement), actionArgs))\r\n },\r\n _itemContextMenuHandler: function(e) {\r\n this._createEventHandler(\"onItemContextMenu\", e)\r\n },\r\n _itemHoldHandler: function(e) {\r\n this._createEventHandler(\"onItemHold\", e)\r\n },\r\n _createEventHandler: function(eventName, e) {\r\n var node = this._getNodeByElement(e.currentTarget);\r\n this._itemDXEventHandler(e, eventName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _attachClickEvent: function() {\r\n var clickSelector = \".\" + this._itemClass();\r\n var pointerDownSelector = \".\" + NODE_CLASS + \", .\" + SELECT_ALL_ITEM_CLASS;\r\n var eventName = (0, _index.addNamespace)(_click.name, this.NAME);\r\n var pointerDownEvent = (0, _index.addNamespace)(_pointer.default.down, this.NAME);\r\n var $itemContainer = this._itemContainer();\r\n var that = this;\r\n _events_engine.default.off($itemContainer, eventName, clickSelector);\r\n _events_engine.default.off($itemContainer, pointerDownEvent, pointerDownSelector);\r\n _events_engine.default.on($itemContainer, eventName, clickSelector, function(e) {\r\n that._itemClickHandler(e, (0, _renderer.default)(this))\r\n });\r\n _events_engine.default.on($itemContainer, pointerDownEvent, pointerDownSelector, function(e) {\r\n that._itemPointerDownHandler(e)\r\n })\r\n },\r\n _itemClickHandler: function(e, $item) {\r\n var itemData = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n this._itemDXEventHandler(e, \"onItemClick\", {\r\n node: this._dataAdapter.getPublicNode(node)\r\n });\r\n if (this.option(\"selectByClick\") && !e.isDefaultPrevented()) {\r\n this._updateItemSelection(!node.internalFields.selected, itemData, e)\r\n }\r\n },\r\n _updateSelectionToFirstItem: function($items, startIndex) {\r\n var itemIndex = startIndex;\r\n while (itemIndex >= 0) {\r\n var $item = (0, _renderer.default)($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\" + ITEM_CLASS).get(0));\r\n itemIndex--\r\n }\r\n },\r\n _updateSelectionToLastItem: function($items, startIndex) {\r\n var length = $items.length;\r\n var itemIndex = startIndex;\r\n while (itemIndex < length) {\r\n var $item = (0, _renderer.default)($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\" + ITEM_CLASS).get(0));\r\n itemIndex++\r\n }\r\n },\r\n _focusInHandler: function(e) {\r\n var _this12 = this;\r\n this._updateFocusState(e, true);\r\n if (this.option(\"focusedElement\")) {\r\n clearTimeout(this._setFocusedItemTimeout);\r\n this._setFocusedItemTimeout = setTimeout(function() {\r\n _this12._setFocusedItem((0, _renderer.default)(_this12.option(\"focusedElement\")))\r\n });\r\n return\r\n }\r\n var $activeItem = this._getActiveItem();\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($activeItem.closest(\".\" + NODE_CLASS)))\r\n },\r\n _setFocusedItem: function($target) {\r\n if (!$target || !$target.length) {\r\n return\r\n }\r\n if (!$target.children().hasClass(DISABLED_STATE_CLASS)) {\r\n this.callBase($target)\r\n }\r\n },\r\n _itemPointerDownHandler: function(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n var $target = (0, _renderer.default)(e.target).closest(\".\" + NODE_CLASS + \", .\" + SELECT_ALL_ITEM_CLASS);\r\n if (!$target.length) {\r\n return\r\n }\r\n var itemElement = $target.hasClass(DISABLED_STATE_CLASS) ? null : $target;\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)(itemElement))\r\n },\r\n _findNonDisabledNodes: function($nodes) {\r\n return $nodes.not(function() {\r\n return (0, _renderer.default)(this).children(\".\" + ITEM_CLASS).hasClass(DISABLED_STATE_CLASS)\r\n })\r\n },\r\n _moveFocus: function(location, e) {\r\n var FOCUS_UP = \"up\";\r\n var FOCUS_DOWN = \"down\";\r\n var FOCUS_FIRST = \"first\";\r\n var FOCUS_LAST = \"last\";\r\n var FOCUS_LEFT = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n var FOCUS_RIGHT = this.option(\"rtlEnabled\") ? \"left\" : \"right\";\r\n this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).each(function() {\r\n _fx.default.stop(this, true)\r\n });\r\n var $items = this._findNonDisabledNodes(this._nodeElements());\r\n if (!$items || !$items.length) {\r\n return\r\n }\r\n switch (location) {\r\n case FOCUS_UP:\r\n var $prevItem = this._prevItem($items);\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($prevItem));\r\n var prevItemElement = this._getNodeItemElement($prevItem);\r\n this._scrollableContainer.scrollToElement(prevItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, prevItemElement)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n var $nextItem = this._nextItem($items);\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($nextItem));\r\n var nextItemElement = this._getNodeItemElement($nextItem);\r\n this._scrollableContainer.scrollToElement(nextItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, nextItemElement)\r\n }\r\n break;\r\n case FOCUS_FIRST:\r\n var $firstItem = $items.first();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToFirstItem($items, $items.index(this._prevItem($items)))\r\n }\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($firstItem));\r\n this._scrollableContainer.scrollToElement(this._getNodeItemElement($firstItem));\r\n break;\r\n case FOCUS_LAST:\r\n var $lastItem = $items.last();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToLastItem($items, $items.index(this._nextItem($items)))\r\n }\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($lastItem));\r\n this._scrollableContainer.scrollToElement(this._getNodeItemElement($lastItem));\r\n break;\r\n case FOCUS_RIGHT:\r\n this._expandFocusedContainer();\r\n break;\r\n case FOCUS_LEFT:\r\n this._collapseFocusedContainer();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n },\r\n _getNodeItemElement: function($node) {\r\n return $node.find(\".\" + ITEM_CLASS).get(0)\r\n },\r\n _nodeElements: function() {\r\n return this.$element().find(\".\" + NODE_CLASS).not(\":hidden\")\r\n },\r\n _expandFocusedContainer: function() {\r\n var $focusedNode = (0, _renderer.default)(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length || $focusedNode.hasClass(IS_LEAF)) {\r\n return\r\n }\r\n var $node = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if ($node.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var $nextItem = this._nextItem(this._findNonDisabledNodes(this._nodeElements()));\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($nextItem));\r\n this._scrollableContainer.scrollToElement(this._getNodeItemElement($nextItem));\r\n return\r\n }\r\n var node = this._getNodeByElement($focusedNode.children(\".\" + ITEM_CLASS));\r\n this._toggleExpandedState(node, true)\r\n },\r\n _getClosestNonDisabledNode: function($node) {\r\n do {\r\n $node = $node.parent().closest(\".\" + NODE_CLASS)\r\n } while ($node.children(\".dx-treeview-item.dx-state-disabled\").length);\r\n return $node\r\n },\r\n _collapseFocusedContainer: function() {\r\n var $focusedNode = (0, _renderer.default)(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length) {\r\n return\r\n }\r\n var nodeElement = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if (!$focusedNode.hasClass(IS_LEAF) && nodeElement.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var node = this._getNodeByElement($focusedNode.children(\".\" + ITEM_CLASS));\r\n this._toggleExpandedState(node, false)\r\n } else {\r\n var collapsedNode = this._getClosestNonDisabledNode($focusedNode);\r\n collapsedNode.length && this.option(\"focusedElement\", (0, _element.getPublicElement)(collapsedNode));\r\n this._scrollableContainer.scrollToElement(this._getNodeItemElement(collapsedNode))\r\n }\r\n },\r\n _encodeString: function(value) {\r\n return (0, _type.isString)(value) ? encodeURI(value) : value\r\n },\r\n _decodeString: function(value) {\r\n return (0, _type.isString)(value) ? decodeURI(value) : value\r\n },\r\n updateDimensions: function() {\r\n var _this13 = this;\r\n var deferred = new _deferred.Deferred;\r\n if (this._scrollableContainer) {\r\n this._scrollableContainer.update().done(function() {\r\n deferred.resolveWith(_this13)\r\n })\r\n } else {\r\n deferred.resolveWith(this)\r\n }\r\n return deferred.promise()\r\n },\r\n selectItem: function(itemElement) {\r\n return this._updateItemSelection(true, itemElement)\r\n },\r\n unselectItem: function(itemElement) {\r\n return this._updateItemSelection(false, itemElement)\r\n },\r\n expandItem: function(itemElement) {\r\n return this._toggleExpandedState(itemElement, true)\r\n },\r\n collapseItem: function(itemElement) {\r\n return this._toggleExpandedState(itemElement, false)\r\n },\r\n getNodes: function() {\r\n return this._dataAdapter.getTreeNodes()\r\n },\r\n getSelectedNodes: function() {\r\n var _this14 = this;\r\n return this.getSelectedNodeKeys().map(function(key) {\r\n var node = _this14._dataAdapter.getNodeByKey(key);\r\n return _this14._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n getSelectedNodesKeys: function() {\r\n _ui3.default.log(\"W0002\", \"dxTreeView\", \"getSelectedNodesKeys\", \"20.1\", \"Use the 'getSelectedNodeKeys' method instead\");\r\n return this.getSelectedNodeKeys()\r\n },\r\n getSelectedNodeKeys: function() {\r\n return this._dataAdapter.getSelectedNodesKeys()\r\n },\r\n selectAll: function() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", true)\r\n } else {\r\n this._toggleSelectAll({\r\n value: true\r\n })\r\n }\r\n },\r\n unselectAll: function() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", false)\r\n } else {\r\n this._toggleSelectAll({\r\n value: false\r\n })\r\n }\r\n },\r\n expandAll: function() {\r\n var dataAdapter = this._dataAdapter;\r\n (0, _iterator.each)(dataAdapter.getData(), function(_, node) {\r\n return dataAdapter.toggleExpansion(node.internalFields.key, true)\r\n });\r\n this.repaint()\r\n },\r\n collapseAll: function() {\r\n (0, _iterator.each)(this._dataAdapter.getExpandedNodesKeys(), function(_, key) {\r\n this._toggleExpandedState(key, false)\r\n }.bind(this))\r\n },\r\n scrollToItem: function(keyOrItemOrElement) {\r\n var _this15 = this;\r\n var node = this._getNode(keyOrItemOrElement);\r\n if (!node) {\r\n return (new _deferred.Deferred).reject().promise()\r\n }\r\n var nodeKeysToExpand = [];\r\n var parentNode = node.internalFields.publicNode.parent;\r\n while (null != parentNode) {\r\n if (!parentNode.expanded) {\r\n nodeKeysToExpand.push(parentNode.key)\r\n }\r\n parentNode = parentNode.parent\r\n }\r\n var scrollCallback = new _deferred.Deferred;\r\n this._expandNodes(nodeKeysToExpand.reverse()).always(function() {\r\n var $element = _this15._getNodeElement(node);\r\n if ($element && $element.length) {\r\n _this15._scrollableContainer.scrollToElementTopLeft($element);\r\n scrollCallback.resolve()\r\n } else {\r\n scrollCallback.reject()\r\n }\r\n });\r\n return scrollCallback.promise()\r\n },\r\n _expandNodes: function(keysToExpand) {\r\n var _this16 = this;\r\n if (!keysToExpand || 0 === keysToExpand.length) {\r\n return (new _deferred.Deferred).resolve().promise()\r\n }\r\n var resultCallback = new _deferred.Deferred;\r\n var callbacksByNodes = keysToExpand.map(function(key) {\r\n return _this16.expandItem(key)\r\n });\r\n _deferred.when.apply(_renderer.default, callbacksByNodes).done(function() {\r\n return resultCallback.resolve()\r\n }).fail(function() {\r\n return resultCallback.reject()\r\n });\r\n return resultCallback.promise()\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._setFocusedItemTimeout)\r\n }\r\n});\r\nvar _default = TreeViewBase;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/toolbar/ui.toolbar.menu.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _uiList = require(\"../list/ui.list.base\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TOOLBAR_MENU_ACTION_CLASS = \"dx-toolbar-menu-action\";\r\nvar TOOLBAR_HIDDEN_BUTTON_CLASS = \"dx-toolbar-hidden-button\";\r\nvar TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS = \"dx-toolbar-hidden-button-group\";\r\nvar TOOLBAR_MENU_SECTION_CLASS = \"dx-toolbar-menu-section\";\r\nvar TOOLBAR_MENU_LAST_SECTION_CLASS = \"dx-toolbar-menu-last-section\";\r\nvar ToolbarMenu = _uiList.ListBase.inherit({\r\n _activeStateUnit: \".\" + TOOLBAR_MENU_ACTION_CLASS,\r\n _initMarkup: function() {\r\n this._renderSections();\r\n this.callBase()\r\n },\r\n _getSections: function() {\r\n return this._itemContainer().children()\r\n },\r\n _itemElements: function() {\r\n return this._getSections().children(this._itemSelector())\r\n },\r\n _renderSections: function() {\r\n var that = this;\r\n var $container = this._itemContainer();\r\n (0, _iterator.each)([\"before\", \"center\", \"after\", \"menu\"], function() {\r\n var sectionName = \"_$\" + this + \"Section\";\r\n var $section = that[sectionName];\r\n if (!$section) {\r\n that[sectionName] = $section = (0, _renderer.default)(\"
    \").addClass(TOOLBAR_MENU_SECTION_CLASS)\r\n }\r\n $section.appendTo($container)\r\n })\r\n },\r\n _renderItems: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateSections()\r\n },\r\n _updateSections: function() {\r\n var $sections = this.$element().find(\".\" + TOOLBAR_MENU_SECTION_CLASS);\r\n $sections.removeClass(TOOLBAR_MENU_LAST_SECTION_CLASS);\r\n $sections.not(\":empty\").eq(-1).addClass(TOOLBAR_MENU_LAST_SECTION_CLASS)\r\n },\r\n _renderItem: function(index, item, itemContainer, $after) {\r\n var location = item.location || \"menu\";\r\n var $container = this[\"_$\" + location + \"Section\"];\r\n var itemElement = this.callBase(index, item, $container, $after);\r\n if (this._getItemTemplateName({\r\n itemData: item\r\n })) {\r\n itemElement.addClass(\"dx-toolbar-menu-custom\")\r\n }\r\n if (\"menu\" === location || \"dxButton\" === item.widget || \"dxButtonGroup\" === item.widget || item.isAction) {\r\n itemElement.addClass(TOOLBAR_MENU_ACTION_CLASS)\r\n }\r\n if (\"dxButton\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_CLASS)\r\n }\r\n if (\"dxButtonGroup\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS)\r\n }\r\n itemElement.addClass(item.cssClass);\r\n return itemElement\r\n },\r\n _getItemTemplateName: function(args) {\r\n var template = this.callBase(args);\r\n var data = args.itemData;\r\n var menuTemplate = data && data.menuItemTemplate;\r\n return menuTemplate || template\r\n },\r\n _itemClickHandler: function(e, args, config) {\r\n if ((0, _renderer.default)(e.target).closest(\".\" + TOOLBAR_MENU_ACTION_CLASS).length) {\r\n this.callBase(e, args, config)\r\n }\r\n },\r\n _clean: function() {\r\n this._getSections().empty();\r\n this.callBase()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxToolbarMenu\", ToolbarMenu);\r\nvar _default = ToolbarMenu;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (file_management/utils.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.pathCombine = exports.getEscapedFileName = exports.getPathParts = exports.getParentPath = exports.getName = exports.getFileExtension = exports.PATH_SEPARATOR = void 0;\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar PATH_SEPARATOR = \"/\";\r\nexports.PATH_SEPARATOR = PATH_SEPARATOR;\r\nvar getFileExtension = function(path) {\r\n var index = path.lastIndexOf(\".\");\r\n return index !== -1 ? path.substr(index) : \"\"\r\n};\r\nexports.getFileExtension = getFileExtension;\r\nvar getName = function(path) {\r\n var index = path.lastIndexOf(PATH_SEPARATOR);\r\n return index !== -1 ? path.substr(index + PATH_SEPARATOR.length) : path\r\n};\r\nexports.getName = getName;\r\nvar getParentPath = function(path) {\r\n var index = path.lastIndexOf(PATH_SEPARATOR);\r\n return index !== -1 ? path.substr(0, index) : \"\"\r\n};\r\nexports.getParentPath = getParentPath;\r\nvar getPathParts = function(path, includeFullPath) {\r\n if (!path || \"/\" === path) {\r\n return []\r\n }\r\n var result = [];\r\n var pathPart = \"\";\r\n for (var i = 0; i < path.length; i++) {\r\n var char = path.charAt(i);\r\n if (char === PATH_SEPARATOR) {\r\n var nextChar = path.charAt(i + 1);\r\n if (nextChar !== PATH_SEPARATOR) {\r\n if (pathPart) {\r\n result.push(pathPart);\r\n pathPart = \"\"\r\n }\r\n char = nextChar\r\n }\r\n i++\r\n }\r\n pathPart += char\r\n }\r\n if (pathPart) {\r\n result.push(pathPart)\r\n }\r\n if (includeFullPath) {\r\n for (var _i = 0; _i < result.length; _i++) {\r\n result[_i] = pathCombine(0 === _i ? \"\" : result[_i - 1], getEscapedFileName(result[_i]))\r\n }\r\n }\r\n return result\r\n};\r\nexports.getPathParts = getPathParts;\r\nvar getEscapedFileName = function(fileName) {\r\n return fileName.replace(/\\//g, \"//\")\r\n};\r\nexports.getEscapedFileName = getEscapedFileName;\r\nvar pathCombine = function() {\r\n var result = \"\";\r\n (0, _iterator.each)(arguments, function(_, arg) {\r\n if (arg) {\r\n if (result) {\r\n result += PATH_SEPARATOR\r\n }\r\n result += arg\r\n }\r\n });\r\n return result\r\n};\r\nexports.pathCombine = pathCombine;\r\n","/*!\n * devextreme-vue\n * Version: 20.2.7\n * Build date: Thu Apr 22 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxUpload = exports.DxToolbarItem = exports.DxToolbar = exports.DxPermissions = exports.DxItemView = exports.DxItem = exports.DxFileSelectionItem = exports.DxDetails = exports.DxContextMenuItem = exports.DxContextMenu = exports.DxColumn = exports.DxFileManager = void 0;\nvar file_manager_1 = require(\"devextreme/ui/file_manager\");\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxFileManager = index_1.createComponent({\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n allowedFileExtensions: Array,\n contextMenu: Object,\n currentPath: String,\n currentPathKeys: Array,\n customizeDetailColumns: Function,\n customizeThumbnail: Function,\n disabled: Boolean,\n elementAttr: Object,\n fileSystemProvider: Object,\n focusedItemKey: String,\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n itemView: Object,\n onContentReady: Function,\n onContextMenuItemClick: Function,\n onCurrentDirectoryChanged: Function,\n onDisposing: Function,\n onErrorOccurred: Function,\n onFocusedItemChanged: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onSelectedFileOpened: Function,\n onSelectionChanged: Function,\n onToolbarItemClick: Function,\n permissions: Object,\n rootFolderName: String,\n rtlEnabled: Boolean,\n selectedItemKeys: Array,\n selectionMode: String,\n tabIndex: Number,\n toolbar: Object,\n upload: Object,\n visible: Boolean,\n width: [Function, Number, String]\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:allowedFileExtensions\": null,\n \"update:contextMenu\": null,\n \"update:currentPath\": null,\n \"update:currentPathKeys\": null,\n \"update:customizeDetailColumns\": null,\n \"update:customizeThumbnail\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:fileSystemProvider\": null,\n \"update:focusedItemKey\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:itemView\": null,\n \"update:onContentReady\": null,\n \"update:onContextMenuItemClick\": null,\n \"update:onCurrentDirectoryChanged\": null,\n \"update:onDisposing\": null,\n \"update:onErrorOccurred\": null,\n \"update:onFocusedItemChanged\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onSelectedFileOpened\": null,\n \"update:onSelectionChanged\": null,\n \"update:onToolbarItemClick\": null,\n \"update:permissions\": null,\n \"update:rootFolderName\": null,\n \"update:rtlEnabled\": null,\n \"update:selectedItemKeys\": null,\n \"update:selectionMode\": null,\n \"update:tabIndex\": null,\n \"update:toolbar\": null,\n \"update:upload\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = file_manager_1.default;\n this.$_expectedChildren = {\n contextMenu: { isCollectionItem: false, optionName: \"contextMenu\" },\n itemView: { isCollectionItem: false, optionName: \"itemView\" },\n permissions: { isCollectionItem: false, optionName: \"permissions\" },\n toolbar: { isCollectionItem: false, optionName: \"toolbar\" },\n upload: { isCollectionItem: false, optionName: \"upload\" }\n };\n }\n});\nexports.DxFileManager = DxFileManager;\nvar DxColumn = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:caption\": null,\n \"update:cssClass\": null,\n \"update:dataField\": null,\n \"update:dataType\": null,\n \"update:hidingPriority\": null,\n \"update:sortIndex\": null,\n \"update:sortOrder\": null,\n \"update:visible\": null,\n \"update:visibleIndex\": null,\n \"update:width\": null,\n },\n props: {\n alignment: String,\n caption: String,\n cssClass: String,\n dataField: String,\n dataType: String,\n hidingPriority: Number,\n sortIndex: Number,\n sortOrder: String,\n visible: Boolean,\n visibleIndex: Number,\n width: [Number, String]\n }\n});\nexports.DxColumn = DxColumn;\nDxColumn.$_optionName = \"columns\";\nDxColumn.$_isCollectionItem = true;\nvar DxContextMenu = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:items\": null,\n },\n props: {\n items: Array\n }\n});\nexports.DxContextMenu = DxContextMenu;\nDxContextMenu.$_optionName = \"contextMenu\";\nDxContextMenu.$_expectedChildren = {\n contextMenuItem: { isCollectionItem: true, optionName: \"items\" },\n item: { isCollectionItem: true, optionName: \"items\" }\n};\nvar DxContextMenuItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:beginGroup\": null,\n \"update:closeMenuOnClick\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:icon\": null,\n \"update:items\": null,\n \"update:name\": null,\n \"update:selectable\": null,\n \"update:selected\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n beginGroup: Boolean,\n closeMenuOnClick: Boolean,\n disabled: Boolean,\n html: String,\n icon: String,\n items: Array,\n name: String,\n selectable: Boolean,\n selected: Boolean,\n template: {},\n text: String,\n visible: Boolean\n }\n});\nexports.DxContextMenuItem = DxContextMenuItem;\nDxContextMenuItem.$_optionName = \"items\";\nDxContextMenuItem.$_isCollectionItem = true;\nvar DxDetails = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:columns\": null,\n },\n props: {\n columns: Array\n }\n});\nexports.DxDetails = DxDetails;\nDxDetails.$_optionName = \"details\";\nDxDetails.$_expectedChildren = {\n column: { isCollectionItem: true, optionName: \"columns\" }\n};\nvar DxFileSelectionItem = 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:icon\": 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 icon: String,\n locateInMenu: String,\n location: String,\n menuItemTemplate: {},\n name: String,\n options: Object,\n showText: String,\n template: {},\n text: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxFileSelectionItem = DxFileSelectionItem;\nDxFileSelectionItem.$_optionName = \"fileSelectionItems\";\nDxFileSelectionItem.$_isCollectionItem = true;\nvar DxItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:beginGroup\": null,\n \"update:closeMenuOnClick\": null,\n \"update:cssClass\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:icon\": null,\n \"update:items\": null,\n \"update:locateInMenu\": null,\n \"update:location\": null,\n \"update:menuItemTemplate\": null,\n \"update:name\": null,\n \"update:options\": null,\n \"update:selectable\": null,\n \"update:selected\": 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 beginGroup: Boolean,\n closeMenuOnClick: Boolean,\n cssClass: String,\n disabled: Boolean,\n html: String,\n icon: String,\n items: Array,\n locateInMenu: String,\n location: String,\n menuItemTemplate: {},\n name: String,\n options: Object,\n selectable: Boolean,\n selected: Boolean,\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 DxItemView = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:details\": null,\n \"update:mode\": null,\n \"update:showFolders\": null,\n \"update:showParentFolder\": null,\n },\n props: {\n details: Object,\n mode: String,\n showFolders: Boolean,\n showParentFolder: Boolean\n }\n});\nexports.DxItemView = DxItemView;\nDxItemView.$_optionName = \"itemView\";\nDxItemView.$_expectedChildren = {\n details: { isCollectionItem: false, optionName: \"details\" }\n};\nvar DxPermissions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:copy\": null,\n \"update:create\": null,\n \"update:delete\": null,\n \"update:download\": null,\n \"update:move\": null,\n \"update:rename\": null,\n \"update:upload\": null,\n },\n props: {\n copy: Boolean,\n create: Boolean,\n delete: Boolean,\n download: Boolean,\n move: Boolean,\n rename: Boolean,\n upload: Boolean\n }\n});\nexports.DxPermissions = DxPermissions;\nDxPermissions.$_optionName = \"permissions\";\nvar DxToolbar = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:fileSelectionItems\": null,\n \"update:items\": null,\n },\n props: {\n fileSelectionItems: Array,\n items: Array\n }\n});\nexports.DxToolbar = DxToolbar;\nDxToolbar.$_optionName = \"toolbar\";\nDxToolbar.$_expectedChildren = {\n fileSelectionItem: { isCollectionItem: true, optionName: \"fileSelectionItems\" },\n item: { isCollectionItem: true, optionName: \"items\" },\n toolbarItem: { isCollectionItem: true, optionName: \"items\" }\n};\nvar DxToolbarItem = 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:icon\": 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 icon: String,\n locateInMenu: String,\n location: String,\n menuItemTemplate: {},\n name: String,\n options: Object,\n showText: String,\n template: {},\n text: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxToolbarItem = DxToolbarItem;\nDxToolbarItem.$_optionName = \"items\";\nDxToolbarItem.$_isCollectionItem = true;\nvar DxUpload = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:chunkSize\": null,\n \"update:maxFileSize\": null,\n },\n props: {\n chunkSize: Number,\n maxFileSize: Number\n }\n});\nexports.DxUpload = DxUpload;\nDxUpload.$_optionName = \"upload\";\nexports.default = DxFileManager;\n","/**\r\n * DevExtreme (file_management/errors.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar ErrorCode = {\r\n NoAccess: 0,\r\n FileExists: 1,\r\n FileNotFound: 2,\r\n DirectoryExists: 3,\r\n DirectoryNotFound: 4,\r\n WrongFileExtension: 5,\r\n MaxFileSizeExceeded: 6,\r\n InvalidSymbols: 7,\r\n Other: 32767\r\n};\r\nvar _default = ErrorCode;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","import { Component, Vue, Prop } from 'vue-property-decorator';\nimport { itiHttpService } from '@/iti-core-vue';\nimport { API } from '@/shared/api';\nimport CustomFileSystemProvider from 'devextreme/file_management/custom_provider';\nimport { DxFileManager, DxPermissions, DxItemView, DxToolbar, DxItem, DxUpload } from 'devextreme-vue/file-manager';\nimport { DxPopup } from 'devextreme-vue/popup';\nimport FileSystemItem from 'devextreme/file_management/file_system_item';\nimport { locale, loadMessages } from \"devextreme/localization\";\nimport es from \"../../../public/assets/lang/es.json\";\nimport va from \"../../../public/assets/lang/va.json\";\nimport fileModule from '@/store/modules/file.module';\nimport collaborativeAreaModule from '@/store/modules/collaborative-area.module';\n\n@Component({\n components: {\n DxFileManager,\n DxPermissions,\n DxPopup,\n DxItemView,\n DxToolbar,\n DxItem,\n DxUpload,\n },\n})\nexport default class FileManager extends Vue {\n @Prop() public collaborativeAreaId!: String;\n public bytes: Uint8Array = new Uint8Array();\n public chunksSum: number = 0;\n public isCollaborativeArea = false;\n public ambitId: String = '-1';\n public currentPath:String = fileModule.filePath.path;\n\n public remoteProvider = new CustomFileSystemProvider({\n keyExpr: \"id\",\n getItems: async (dir: FileSystemItem) => {\n var parentId = 0;\n if(dir.path != '') parentId = dir.dataItem.id;\n if(this.collaborativeAreaId != undefined ) this.ambitId = this.collaborativeAreaId;\n else {\n if(dir.path != '' && dir.dataItem.parentId == -1) {\n this.ambitId = dir.dataItem.ambitId;\n parentId = 0;\n }\n }\n return itiHttpService.get(API.fileManager + '?parentId=' + parentId \n + '&collaborativeAreaId=' \n + this.ambitId).catch();\n\n },\n createDirectory: (dir, nombre) => {\n var parentId = 0;\n if(dir.path != '') parentId = dir.dataItem.id;\n return itiHttpService.post(API.fileManager + '/PostDirectory' + '?userId=1' \n + '&name=' + nombre + '&parentId=' \n + parentId + '&collaborativeAreaId=' \n + this.ambitId,'').catch();\n },\n renameItem: (item: FileSystemItem, nombre) => {\n return itiHttpService.put(API.fileManager + '/ChangeName?id=' + item.dataItem.id + '&newName=' \n + nombre,'').catch();\n },\n moveItem: (dirSrc, dir) => {\n var dstParentId = 0;\n if(dir.path != '') dstParentId = dir.dataItem.id;\n return itiHttpService.put(API.fileManager + '/MoveFile?id=' + dirSrc.dataItem.id \n + '&dstParentId=' + dstParentId\n ,'').catch();\n },\n deleteItem: (item) => {\n //console.log(item.dataItem.id);\n return itiHttpService.delete(API.fileManager + '?id=' + item.dataItem.id,'').catch();\n },\n copyItem: (file, dstDir) => {\n var parentId = 0;\n if(dstDir.path != '') parentId = dstDir.dataItem.id;\n return itiHttpService.put(API.fileManager + '/CopyFile?id=' + file.dataItem.id \n + '&dstParentId=' + parentId\n ,'').catch();\n },\n downloadItems: (item) => {\n itiHttpService.get(API.fileManager + '/DownloadFile?id=' + item[0].dataItem.id).then((response) => {\n const uintArray: Uint8Array = new Uint8Array(Buffer.from(response, 'base64'));\n var blob = new Blob([uintArray]);\n var link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.download = item[0].name;\n link.click();\n })\n \n },\n uploadFileChunk: (fileData, chunksInfo, dir) => {\n var parentId = 0;\n if(dir.path != '') parentId = dir.dataItem.id;\n chunksInfo.chunkBlob.arrayBuffer().then(buffer => {\n let unit8Array = new Uint8Array(buffer);\n var mergedArray = new Uint8Array(this.bytes.length + unit8Array.length);\n mergedArray.set(this.bytes);\n mergedArray.set(unit8Array, this.bytes.length);\n this.bytes = mergedArray;\n this.chunksSum = this.chunksSum + 1;\n if(chunksInfo.chunkCount == this.chunksSum) {\n itiHttpService.post(API.fileManager + '/PostFile' + '?userId=1' \n + '&name=' + fileData.name + '&parentId=' \n + parentId + '&length=' \n + fileData.size + '&collaborativeAreaId=' \n + this.ambitId\n + '&chunkIndex=' + chunksInfo.chunkIndex,\n JSON.stringify(this.convertToBytes(this.bytes))).catch();\n this.bytes = new Uint8Array();\n this.chunksSum = 0;\n this.refresh(dir);\n }\n }); \n \n },\n })\n\n public created() {\n locale(this.language);\n loadMessages(va);\n loadMessages(es);\n }\n\n fileManager!: any;\n public mounted() {\n if(this.collaborativeAreaId != undefined)\n collaborativeAreaModule.getCollaborativeAreaById(Number.parseInt(this.collaborativeAreaId.toString()));\n if(fileModule.filePath.ambitId != this.collaborativeAreaId){\n fileModule.setPath(['','']);\n }\n this.fileManager = (this.$refs['fileManager'] as DxFileManager).instance;\n }\n \n public get language() {\n return this.$root.$i18n.locale.toString();\n }\n\n public convertToBytes(unit8Array: Uint8Array) {\n var binary: string = '';\n for(let i = 0; i < unit8Array.byteLength; i++)\n binary += String.fromCharCode(unit8Array[i]);\n return btoa(binary);\n }\n\n public get height() {\n return window.innerHeight - 220;\n }\n\n public get width() {\n return window.innerWidth;\n }\n\n public refresh(dir: FileSystemItem) {\n this.remoteProvider.getItems(dir);\n this.fileManager.repaint();\n }\n\n public backToHome() {\n this.$router.back();\n }\n\n public goToAreaHome() {\n this.$router.push({ name: 'CollaborativeAreaDetails', params: { id: this.collaborativeArea.id.toString() } });\n }\n\n public get collaborativeArea() {\n return collaborativeAreaModule.selectedCollaborativeArea;\n }\n}\n\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.accessibility.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nexports.registerKeyboardAction = void 0;\r\nvar accessibility = _interopRequireWildcard(require(\"../../ui/shared/accessibility\"));\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\r\nvar registerKeyboardAction = function(viewName, instance, $element, selector, action) {\r\n var keyboardController = instance.getController(\"keyboardNavigation\");\r\n if (instance.option(\"useLegacyKeyboardNavigation\") || keyboardController && !keyboardController.isKeyboardEnabled()) {\r\n return\r\n }\r\n var executeKeyDown = function(args) {\r\n instance.executeAction(\"onKeyDown\", args)\r\n };\r\n instance.createAction(\"onKeyDown\");\r\n accessibility.registerKeyboardAction(viewName, instance, $element, selector, action, executeKeyDown)\r\n};\r\nexports.registerKeyboardAction = registerKeyboardAction;\r\n","/**\r\n * DevExtreme (ui/hierarchical_collection/ui.hierarchical_collection_widget.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _icon = require(\"../../core/utils/icon\");\r\nvar _ui = _interopRequireDefault(require(\"./ui.data_adapter\"));\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"../collection/ui.collection_widget.edit\"));\r\nvar _bindable_template = require(\"../../core/templates/bindable_template\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _common = require(\"../../core/utils/common\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar HierarchicalCollectionWidget = _uiCollection_widget.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n keyExpr: \"id\",\r\n displayExpr: \"text\",\r\n selectedExpr: \"selected\",\r\n disabledExpr: \"disabled\",\r\n itemsExpr: \"items\",\r\n hoverStateEnabled: true,\r\n parentIdExpr: \"parentId\",\r\n expandedExpr: \"expanded\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === _devices.default.real().deviceType && !_devices.default.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this._initDynamicTemplates()\r\n },\r\n _initDataSource: function() {\r\n this.callBase();\r\n this._dataSource && this._dataSource.paginate(false)\r\n },\r\n _initDataAdapter: function() {\r\n var accessors = this._createDataAdapterAccessors();\r\n this._dataAdapter = new _ui.default((0, _extend.extend)({\r\n dataAccessors: {\r\n getters: accessors.getters,\r\n setters: accessors.setters\r\n },\r\n items: this.option(\"items\")\r\n }, this._getDataAdapterOptions()))\r\n },\r\n _getDataAdapterOptions: _common.noop,\r\n _initDynamicTemplates: function() {\r\n var that = this;\r\n this._templateManager.addDefaultTemplates({\r\n item: new _bindable_template.BindableTemplate(function($container, itemData) {\r\n $container.html(itemData.html).append(this._getIconContainer(itemData)).append(this._getTextContainer(itemData)).append(this._getPopoutContainer(itemData));\r\n that._addContentClasses(itemData, $container.parent())\r\n }.bind(this), [\"text\", \"html\", \"items\", \"icon\"], this.option(\"integrationOptions.watchMethod\"), {\r\n text: this._displayGetter,\r\n items: this._itemsGetter\r\n })\r\n })\r\n },\r\n _getIconContainer: function(itemData) {\r\n return itemData.icon ? (0, _icon.getImageContainer)(itemData.icon) : void 0\r\n },\r\n _getTextContainer: function(itemData) {\r\n return (0, _renderer.default)(\"\").text(itemData.text)\r\n },\r\n _getPopoutContainer: _common.noop,\r\n _addContentClasses: _common.noop,\r\n _initAccessors: function() {\r\n var that = this;\r\n (0, _iterator.each)(this._getAccessors(), function(_, accessor) {\r\n that._compileAccessor(accessor)\r\n });\r\n this._compileDisplayGetter()\r\n },\r\n _getAccessors: function() {\r\n return [\"key\", \"selected\", \"items\", \"disabled\", \"parentId\", \"expanded\"]\r\n },\r\n _getChildNodes: function(node) {\r\n var that = this;\r\n var arr = [];\r\n (0, _iterator.each)(node.internalFields.childrenKeys, function(_, key) {\r\n var childNode = that._dataAdapter.getNodeByKey(key);\r\n arr.push(childNode)\r\n });\r\n return arr\r\n },\r\n _hasChildren: function(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n },\r\n _compileAccessor: function(optionName) {\r\n var getter = \"_\" + optionName + \"Getter\";\r\n var setter = \"_\" + optionName + \"Setter\";\r\n var optionExpr = this.option(optionName + \"Expr\");\r\n if (!optionExpr) {\r\n this[getter] = _common.noop;\r\n this[setter] = _common.noop;\r\n return\r\n } else {\r\n if ((0, _type.isFunction)(optionExpr)) {\r\n this[setter] = function(obj, value) {\r\n obj[optionExpr()] = value\r\n };\r\n this[getter] = function(obj) {\r\n return obj[optionExpr()]\r\n };\r\n return\r\n }\r\n }\r\n this[getter] = (0, _data.compileGetter)(optionExpr);\r\n this[setter] = (0, _data.compileSetter)(optionExpr)\r\n },\r\n _createDataAdapterAccessors: function() {\r\n var that = this;\r\n var accessors = {\r\n getters: {},\r\n setters: {}\r\n };\r\n (0, _iterator.each)(this._getAccessors(), function(_, accessor) {\r\n var getterName = \"_\" + accessor + \"Getter\";\r\n var setterName = \"_\" + accessor + \"Setter\";\r\n var newAccessor = \"parentId\" === accessor ? \"parentKey\" : accessor;\r\n accessors.getters[newAccessor] = that[getterName];\r\n accessors.setters[newAccessor] = that[setterName]\r\n });\r\n accessors.getters.display = !this._displayGetter ? function(itemData) {\r\n return itemData.text\r\n } : this._displayGetter;\r\n return accessors\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._addWidgetClass()\r\n },\r\n _addWidgetClass: function() {\r\n this._focusTarget().addClass(this._widgetClass())\r\n },\r\n _widgetClass: _common.noop,\r\n _renderItemFrame: function(index, itemData) {\r\n var $itemFrame = this.callBase.apply(this, arguments);\r\n $itemFrame.toggleClass(DISABLED_STATE_CLASS, !!this._disabledGetter(itemData));\r\n return $itemFrame\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"displayExpr\":\r\n case \"keyExpr\":\r\n this._initAccessors();\r\n this._initDynamicTemplates();\r\n this.repaint();\r\n break;\r\n case \"itemsExpr\":\r\n case \"selectedExpr\":\r\n case \"disabledExpr\":\r\n case \"expandedExpr\":\r\n case \"parentIdExpr\":\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"items\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar _default = HierarchicalCollectionWidget;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/drawer/ui.drawer.rendering.strategy.push.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _uiDrawer = require(\"./ui.drawer.animation\");\r\nvar _uiDrawerRendering = _interopRequireDefault(require(\"./ui.drawer.rendering.strategy\"));\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _translator = require(\"../../animation/translator\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar PushStrategy = function(_DrawerStrategy) {\r\n _inheritsLoose(PushStrategy, _DrawerStrategy);\r\n\r\n function PushStrategy() {\r\n return _DrawerStrategy.apply(this, arguments) || this\r\n }\r\n var _proto = PushStrategy.prototype;\r\n _proto._internalRenderPosition = function(changePositionUsingFxAnimation, whenAnimationCompleted) {\r\n var drawer = this.getDrawerInstance();\r\n var openedPanelSize = this._getPanelSize(true);\r\n var contentPosition = this._getPanelSize(drawer.option(\"opened\")) * drawer._getPositionCorrection();\r\n (0, _renderer.default)(drawer.content()).css(drawer.isHorizontalDirection() ? \"width\" : \"height\", openedPanelSize);\r\n if (drawer.getMinSize()) {\r\n var paddingCssPropertyName = \"padding\";\r\n switch (drawer.calcTargetPosition()) {\r\n case \"left\":\r\n paddingCssPropertyName += \"Right\";\r\n break;\r\n case \"right\":\r\n paddingCssPropertyName += \"Left\";\r\n break;\r\n case \"top\":\r\n paddingCssPropertyName += \"Bottom\";\r\n break;\r\n case \"bottom\":\r\n paddingCssPropertyName += \"Top\"\r\n }(0, _renderer.default)(drawer.viewContent()).css(paddingCssPropertyName, drawer.getMinSize())\r\n } else {}\r\n if (changePositionUsingFxAnimation) {\r\n _uiDrawer.animation.moveTo({\r\n $element: (0, _renderer.default)(drawer.viewContent()),\r\n position: contentPosition,\r\n direction: drawer.calcTargetPosition(),\r\n duration: drawer.option(\"animationDuration\"),\r\n complete: function() {\r\n whenAnimationCompleted.resolve()\r\n }\r\n })\r\n } else {\r\n if (drawer.isHorizontalDirection()) {\r\n (0, _translator.move)((0, _renderer.default)(drawer.viewContent()), {\r\n left: contentPosition\r\n })\r\n } else {\r\n (0, _translator.move)((0, _renderer.default)(drawer.viewContent()), {\r\n top: contentPosition\r\n })\r\n }\r\n }\r\n };\r\n _proto.onPanelContentRendered = function() {\r\n (0, _renderer.default)(this.getDrawerInstance().viewContent()).addClass(\"dx-theme-background-color\")\r\n };\r\n return PushStrategy\r\n}(_uiDrawerRendering.default);\r\nvar _default = PushStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","/**\r\n * DevExtreme (localization.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.disableIntl = disableIntl;\r\nObject.defineProperty(exports, \"message\", {\r\n enumerable: true,\r\n get: function() {\r\n return _message.default\r\n }\r\n});\r\nObject.defineProperty(exports, \"number\", {\r\n enumerable: true,\r\n get: function() {\r\n return _number.default\r\n }\r\n});\r\nObject.defineProperty(exports, \"date\", {\r\n enumerable: true,\r\n get: function() {\r\n return _date.default\r\n }\r\n});\r\nexports.parseDate = exports.formatDate = exports.parseNumber = exports.formatNumber = exports.formatMessage = exports.loadMessages = exports.locale = void 0;\r\nvar _core = _interopRequireDefault(require(\"./localization/core\"));\r\nvar _message = _interopRequireDefault(require(\"./localization/message\"));\r\nvar _number = _interopRequireDefault(require(\"./localization/number\"));\r\nvar _date = _interopRequireDefault(require(\"./localization/date\"));\r\nrequire(\"./localization/currency\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar locale = _core.default.locale.bind(_core.default);\r\nexports.locale = locale;\r\nvar loadMessages = _message.default.load.bind(_message.default);\r\nexports.loadMessages = loadMessages;\r\nvar formatMessage = _message.default.format.bind(_message.default);\r\nexports.formatMessage = formatMessage;\r\nvar formatNumber = _number.default.format.bind(_number.default);\r\nexports.formatNumber = formatNumber;\r\nvar parseNumber = _number.default.parse.bind(_number.default);\r\nexports.parseNumber = parseNumber;\r\nvar formatDate = _date.default.format.bind(_date.default);\r\nexports.formatDate = formatDate;\r\nvar parseDate = _date.default.parse.bind(_date.default);\r\nexports.parseDate = parseDate;\r\n\r\nfunction disableIntl() {\r\n if (\"intl\" === _number.default.engine()) {\r\n _number.default.resetInjection()\r\n }\r\n if (\"intl\" === _date.default.engine()) {\r\n _date.default.resetInjection()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.columns_resizing_reordering.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _drag = require(\"../../events/drag\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _swatch_container = _interopRequireDefault(require(\"../widget/swatch_container\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar COLUMNS_SEPARATOR_CLASS = \"columns-separator\";\r\nvar COLUMNS_SEPARATOR_TRANSPARENT = \"columns-separator-transparent\";\r\nvar DRAGGING_HEADER_CLASS = \"drag-header\";\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_DRAG_ACTION_CLASS = \"drag-action\";\r\nvar TRACKER_CLASS = \"tracker\";\r\nvar HEADERS_DROP_HIGHLIGHT_CLASS = \"drop-highlight\";\r\nvar BLOCK_SEPARATOR_CLASS = \"dx-block-separator\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar WIDGET_CLASS = \"dx-widget\";\r\nvar DRAGGING_COMMAND_CELL_CLASS = \"dx-drag-command-cell\";\r\nvar MODULE_NAMESPACE = \"dxDataGridResizingReordering\";\r\nvar COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH = 10;\r\nvar DRAGGING_DELTA = 5;\r\nvar COLUMN_OPACITY = .5;\r\nvar allowResizing = function(that) {\r\n return that.option(\"allowColumnResizing\") || that.getController(\"columns\").isColumnOptionUsed(\"allowResizing\")\r\n};\r\nvar allowReordering = function(that) {\r\n return that.option(\"allowColumnReordering\") || that.getController(\"columns\").isColumnOptionUsed(\"allowReordering\")\r\n};\r\nvar TrackerView = _uiGrid_core.default.View.inherit({\r\n _renderCore: function() {\r\n this.callBase();\r\n this.element().addClass(this.addWidgetPrefix(TRACKER_CLASS));\r\n this.hide()\r\n },\r\n _unsubscribeFromCallback: function() {\r\n if (this._positionChanged) {\r\n this._tablePositionController.positionChanged.remove(this._positionChanged)\r\n }\r\n },\r\n _subscribeToCallback: function() {\r\n var that = this;\r\n that._positionChanged = function(position) {\r\n var $element = that.element();\r\n if ($element && $element.hasClass(that.addWidgetPrefix(TRACKER_CLASS))) {\r\n $element.css({\r\n top: position.top\r\n });\r\n $element.height(position.height)\r\n }\r\n };\r\n this._tablePositionController.positionChanged.add(that._positionChanged)\r\n },\r\n optionChanged: function(args) {\r\n if (\"allowColumnResizing\" === args.name) {\r\n this._unsubscribeFromCallback();\r\n if (args.value) {\r\n this._subscribeToCallback();\r\n this._invalidate()\r\n }\r\n }\r\n this.callBase(args)\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._tablePositionController = this.getController(\"tablePosition\");\r\n this._subscribeToCallback()\r\n },\r\n isVisible: function() {\r\n return allowResizing(this)\r\n },\r\n show: function() {\r\n this.element().show()\r\n },\r\n hide: function() {\r\n this.element() && this.element().hide()\r\n },\r\n setHeight: function(value) {\r\n this.element().height(value)\r\n },\r\n dispose: function() {\r\n this._unsubscribeFromCallback();\r\n this.callBase()\r\n }\r\n});\r\nvar SeparatorView = _uiGrid_core.default.View.inherit({\r\n _renderSeparator: function() {},\r\n _renderCore: function(options) {\r\n this.callBase(options);\r\n this._isShown = true;\r\n this._renderSeparator();\r\n this.hide()\r\n },\r\n show: function() {\r\n this._isShown = true\r\n },\r\n hide: function() {\r\n this._isShown = false\r\n },\r\n height: function(value) {\r\n var $element = this.element();\r\n if ($element) {\r\n if ((0, _type.isDefined)(value)) {\r\n $element.height(value)\r\n } else {\r\n return $element.height()\r\n }\r\n }\r\n },\r\n width: function(value) {\r\n var $element = this.element();\r\n if ($element) {\r\n if ((0, _type.isDefined)(value)) {\r\n $element.width(value)\r\n } else {\r\n return $element.width()\r\n }\r\n }\r\n }\r\n});\r\nvar ColumnsSeparatorView = SeparatorView.inherit({\r\n _renderSeparator: function() {\r\n this.callBase();\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(COLUMNS_SEPARATOR_CLASS))\r\n },\r\n _subscribeToCallback: function() {\r\n var that = this;\r\n var $element;\r\n that._positionChanged = function(position) {\r\n $element = that.element();\r\n if ($element) {\r\n $element.css({\r\n top: position.top\r\n });\r\n $element.height(position.height)\r\n }\r\n };\r\n that._tablePositionController.positionChanged.add(that._positionChanged)\r\n },\r\n _unsubscribeFromCallback: function() {\r\n this._positionChanged && this._tablePositionController.positionChanged.remove(this._positionChanged)\r\n },\r\n _init: function() {\r\n this._isTransparent = allowResizing(this);\r\n if (this.isVisible()) {\r\n this._subscribeToCallback()\r\n }\r\n },\r\n isVisible: function() {\r\n return this.option(\"showColumnHeaders\") && (allowReordering(this) || allowResizing(this))\r\n },\r\n optionChanged: function(args) {\r\n if (\"allowColumnResizing\" === args.name) {\r\n if (args.value) {\r\n this._init();\r\n this._invalidate();\r\n this.hide(true)\r\n } else {\r\n this._unsubscribeFromCallback();\r\n this._isTransparent = allowResizing(this);\r\n this.hide(true)\r\n }\r\n }\r\n this.callBase(args)\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._tablePositionController = this.getController(\"tablePosition\");\r\n this._init()\r\n },\r\n show: function() {\r\n var that = this;\r\n var $element = this.element();\r\n if ($element && !that._isShown) {\r\n if (that._isTransparent) {\r\n $element.removeClass(that.addWidgetPrefix(COLUMNS_SEPARATOR_TRANSPARENT))\r\n } else {\r\n $element.show()\r\n }\r\n }\r\n this.callBase()\r\n },\r\n hide: function(force) {\r\n var $element = this.element();\r\n var columnsSeparatorTransparent = this.addWidgetPrefix(COLUMNS_SEPARATOR_TRANSPARENT);\r\n if ($element && (this._isShown || force)) {\r\n if (this._isTransparent) {\r\n $element.addClass(columnsSeparatorTransparent);\r\n $element.css(\"left\", \"\");\r\n $element.show()\r\n } else {\r\n if ($element.hasClass(columnsSeparatorTransparent)) {\r\n $element.removeClass(columnsSeparatorTransparent)\r\n }\r\n $element.hide()\r\n }\r\n }\r\n this.callBase()\r\n },\r\n moveByX: function(outerX) {\r\n var $element = this.element();\r\n if ($element) {\r\n $element.css(\"left\", outerX - this._parentElement().offset().left)\r\n }\r\n },\r\n changeCursor: function(cursorName) {\r\n cursorName = (0, _type.isDefined)(cursorName) ? cursorName : \"\";\r\n var $element = this.element();\r\n if ($element) {\r\n $element.css(\"cursor\", cursorName)\r\n }\r\n },\r\n dispose: function() {\r\n this._unsubscribeFromCallback();\r\n this.callBase()\r\n }\r\n});\r\nvar BlockSeparatorView = SeparatorView.inherit({\r\n init: function() {\r\n var that = this;\r\n this.callBase();\r\n this.getController(\"data\").loadingChanged.add(function(isLoading) {\r\n if (!isLoading) {\r\n that.hide()\r\n }\r\n })\r\n },\r\n _renderSeparator: function() {\r\n this.callBase();\r\n this.element().addClass(BLOCK_SEPARATOR_CLASS).html(\" \")\r\n },\r\n hide: function() {\r\n var that = this;\r\n var $parent = this._parentElement();\r\n var $element = this.element();\r\n if ($element && this._isShown) {\r\n $element.css(\"display\", \"none\")\r\n }\r\n if ($parent && !$parent.children(\".\" + BLOCK_SEPARATOR_CLASS).length) {\r\n $parent.prepend(that.element())\r\n }\r\n that.callBase()\r\n },\r\n isVisible: function() {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n var columnChooserOptions = this.option(\"columnChooser\");\r\n return groupPanelOptions && groupPanelOptions.visible || columnChooserOptions && columnChooserOptions.enabled\r\n },\r\n show: function(targetLocation) {\r\n var that = this;\r\n var $element = this.element();\r\n var startAnimate = function(toOptions) {\r\n _fx.default.stop($element, true);\r\n _fx.default.animate($element, {\r\n type: \"slide\",\r\n from: {\r\n width: 0,\r\n display: toOptions.display\r\n },\r\n to: toOptions,\r\n duration: 300,\r\n easing: \"swing\"\r\n })\r\n };\r\n if ($element && !that._isShown) {\r\n switch (targetLocation) {\r\n case \"group\":\r\n startAnimate({\r\n width: \"50px\",\r\n display: \"inline-block\"\r\n });\r\n break;\r\n case \"columnChooser\":\r\n startAnimate({\r\n width: \"100%\",\r\n display: \"block\"\r\n });\r\n break;\r\n default:\r\n $element.css(\"display\", \"\")\r\n }\r\n }\r\n that.callBase()\r\n }\r\n});\r\nvar DraggingHeaderView = _uiGrid_core.default.View.inherit({\r\n _isDragging: false,\r\n isDragging: function() {\r\n return this._isDragging\r\n },\r\n _getDraggingPanelByPos: function(pos) {\r\n var that = this;\r\n var result;\r\n (0, _iterator.each)(that._dragOptions.draggingPanels, function(index, draggingPanel) {\r\n if (draggingPanel) {\r\n var boundingRect = draggingPanel.getBoundingRect();\r\n if (boundingRect && (void 0 === boundingRect.bottom || pos.y < boundingRect.bottom) && (void 0 === boundingRect.top || pos.y > boundingRect.top) && (void 0 === boundingRect.left || pos.x > boundingRect.left) && (void 0 === boundingRect.right || pos.x < boundingRect.right)) {\r\n result = draggingPanel;\r\n return false\r\n }\r\n }\r\n });\r\n return result\r\n },\r\n _renderCore: function() {\r\n this.element().addClass(this.addWidgetPrefix(DRAGGING_HEADER_CLASS) + \" \" + this.addWidgetPrefix(CELL_CONTENT_CLASS) + \" \" + WIDGET_CLASS).hide()\r\n },\r\n _resetTargetColumnOptions: function() {\r\n var params = this._dropOptions;\r\n params.targetColumnIndex = -1;\r\n delete params.targetColumnElement;\r\n delete params.isLast;\r\n delete params.posX;\r\n delete params.posY\r\n },\r\n _getVisibleIndexObject: function(rowIndex, visibleIndex) {\r\n if ((0, _type.isDefined)(rowIndex)) {\r\n return {\r\n columnIndex: visibleIndex,\r\n rowIndex: rowIndex\r\n }\r\n }\r\n return visibleIndex\r\n },\r\n dispose: function() {\r\n var element = this.element();\r\n this._dragOptions = null;\r\n element && element.parent().find(\".\" + this.addWidgetPrefix(DRAGGING_HEADER_CLASS)).remove()\r\n },\r\n isVisible: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var commonColumnSettings = columnsController.getCommonSettings();\r\n return this.option(\"showColumnHeaders\") && (allowReordering(this) || commonColumnSettings.allowGrouping || commonColumnSettings.allowHiding)\r\n },\r\n init: function() {\r\n var that = this;\r\n this.callBase();\r\n this._controller = this.getController(\"draggingHeader\");\r\n this._columnsResizerViewController = this.getController(\"columnsResizer\");\r\n this.getController(\"data\").loadingChanged.add(function(isLoading) {\r\n var element = that.element();\r\n if (!isLoading && element) {\r\n element.hide()\r\n }\r\n })\r\n },\r\n dragHeader: function(options) {\r\n var that = this;\r\n var columnElement = options.columnElement;\r\n var isCommandColumn = !!options.sourceColumn.type;\r\n that._isDragging = true;\r\n that._dragOptions = options;\r\n that._dropOptions = {\r\n sourceIndex: options.index,\r\n sourceColumnIndex: that._getVisibleIndexObject(options.rowIndex, options.columnIndex),\r\n sourceColumnElement: options.columnElement,\r\n sourceLocation: options.sourceLocation\r\n };\r\n var document = _dom_adapter.default.getDocument();\r\n that._onSelectStart = document.onselectstart;\r\n document.onselectstart = function() {\r\n return false\r\n };\r\n that._controller.drag(that._dropOptions);\r\n that.element().css({\r\n textAlign: columnElement && columnElement.css(\"textAlign\"),\r\n height: columnElement && (isCommandColumn && columnElement.get(0).clientHeight || columnElement.height()),\r\n width: columnElement && (isCommandColumn && columnElement.get(0).clientWidth || columnElement.width()),\r\n whiteSpace: columnElement && columnElement.css(\"whiteSpace\")\r\n }).addClass(that.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS)).toggleClass(DRAGGING_COMMAND_CELL_CLASS, isCommandColumn).text(isCommandColumn ? \"\" : options.sourceColumn.caption);\r\n that.element().appendTo(_swatch_container.default.getSwatchContainer(columnElement))\r\n },\r\n moveHeader: function(args) {\r\n var e = args.event;\r\n var that = e.data.that;\r\n var eventData = (0, _index.eventData)(e);\r\n var isResizing = that._columnsResizerViewController ? that._columnsResizerViewController.isResizing() : false;\r\n var dragOptions = that._dragOptions;\r\n if (that._isDragging && !isResizing) {\r\n var $element = that.element();\r\n var moveDeltaX = Math.abs(eventData.x - dragOptions.columnElement.offset().left - dragOptions.deltaX);\r\n var moveDeltaY = Math.abs(eventData.y - dragOptions.columnElement.offset().top - dragOptions.deltaY);\r\n if ($element.is(\":visible\") || moveDeltaX > DRAGGING_DELTA || moveDeltaY > DRAGGING_DELTA) {\r\n $element.show();\r\n var newLeft = eventData.x - dragOptions.deltaX;\r\n var newTop = eventData.y - dragOptions.deltaY;\r\n $element.css({\r\n left: newLeft,\r\n top: newTop\r\n });\r\n that.dockHeader(eventData)\r\n }\r\n e.preventDefault()\r\n }\r\n },\r\n dockHeader: function(eventData) {\r\n var that = this;\r\n var targetDraggingPanel = that._getDraggingPanelByPos(eventData);\r\n var controller = that._controller;\r\n var params = that._dropOptions;\r\n var dragOptions = that._dragOptions;\r\n if (targetDraggingPanel) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var isVerticalOrientation = \"columnChooser\" === targetDraggingPanel.getName();\r\n var axisName = isVerticalOrientation ? \"y\" : \"x\";\r\n var targetLocation = targetDraggingPanel.getName();\r\n var rowIndex = \"headers\" === targetLocation ? dragOptions.rowIndex : void 0;\r\n var sourceColumn = dragOptions.sourceColumn;\r\n var columnElements = targetDraggingPanel.getColumnElements(rowIndex, null === sourceColumn || void 0 === sourceColumn ? void 0 : sourceColumn.ownerBand) || [];\r\n var pointsByTarget = dragOptions.pointsByTarget = dragOptions.pointsByTarget || {};\r\n var pointsByColumns = \"columnChooser\" === targetLocation ? [] : pointsByTarget[targetLocation] || controller._generatePointsByColumns((0, _extend.extend)({}, dragOptions, {\r\n targetDraggingPanel: targetDraggingPanel,\r\n columns: targetDraggingPanel.getColumns(rowIndex),\r\n columnElements: columnElements,\r\n isVerticalOrientation: isVerticalOrientation,\r\n startColumnIndex: \"headers\" === targetLocation && (0, _renderer.default)(columnElements[0]).index()\r\n }));\r\n pointsByTarget[targetLocation] = pointsByColumns;\r\n params.targetLocation = targetLocation;\r\n if (pointsByColumns.length > 0) {\r\n for (var i = 0; i < pointsByColumns.length; i++) {\r\n var centerPosition = pointsByColumns[i + 1] && (pointsByColumns[i][axisName] + pointsByColumns[i + 1][axisName]) / 2;\r\n if (void 0 === centerPosition || (rtlEnabled && \"x\" === axisName ? eventData[axisName] > centerPosition : eventData[axisName] < centerPosition)) {\r\n params.targetColumnIndex = that._getVisibleIndexObject(rowIndex, pointsByColumns[i].columnIndex);\r\n if (columnElements[i]) {\r\n params.targetColumnElement = columnElements.eq(i);\r\n params.isLast = false\r\n } else {\r\n params.targetColumnElement = columnElements.last();\r\n params.isLast = true\r\n }\r\n params.posX = pointsByColumns[i].x;\r\n params.posY = pointsByColumns[i].y;\r\n controller.dock(params);\r\n break\r\n }\r\n }\r\n } else {\r\n that._resetTargetColumnOptions();\r\n controller.dock(params)\r\n }\r\n }\r\n },\r\n dropHeader: function(args) {\r\n var e = args.event;\r\n var that = e.data.that;\r\n var controller = that._controller;\r\n that.element().hide();\r\n if (controller && that._isDragging) {\r\n controller.drop(that._dropOptions)\r\n }\r\n that.element().appendTo(that._parentElement());\r\n that._dragOptions = null;\r\n that._dropOptions = null;\r\n that._isDragging = false;\r\n _dom_adapter.default.getDocument().onselectstart = that._onSelectStart || null\r\n }\r\n});\r\nvar isNextColumnResizingMode = function(that) {\r\n return \"widget\" !== that.option(\"columnResizingMode\")\r\n};\r\nvar ColumnsResizerViewController = _uiGrid_core.default.ViewController.inherit({\r\n _isHeadersRowArea: function(posY) {\r\n if (this._columnHeadersView) {\r\n var element = this._columnHeadersView.element();\r\n if (element) {\r\n var offsetTop = element.offset().top;\r\n var headersRowHeight = this._columnHeadersView.getHeadersRowHeight();\r\n return posY >= offsetTop && posY <= offsetTop + headersRowHeight\r\n }\r\n }\r\n return false\r\n },\r\n _isRtlParentStyle: function() {\r\n var _this$_$parentContain;\r\n return this.option(\"rtlEnabled\") && \"rtl\" === (null === (_this$_$parentContain = this._$parentContainer) || void 0 === _this$_$parentContain ? void 0 : _this$_$parentContain.parent().css(\"direction\"))\r\n },\r\n _pointCreated: function(point, cellsLength, columns) {\r\n var isNextColumnMode = isNextColumnResizingMode(this);\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n var firstPointColumnIndex = !isNextColumnMode && rtlEnabled && !isRtlParentStyle ? 0 : 1;\r\n if (point.index >= firstPointColumnIndex && point.index < cellsLength + (!isNextColumnMode && (!rtlEnabled || isRtlParentStyle) ? 1 : 0)) {\r\n point.columnIndex -= firstPointColumnIndex;\r\n var currentColumn = columns[point.columnIndex] || {};\r\n var nextColumn = columns[point.columnIndex + 1] || {};\r\n return !(isNextColumnMode ? currentColumn.allowResizing && nextColumn.allowResizing : currentColumn.allowResizing)\r\n }\r\n return true\r\n },\r\n _getTargetPoint: function(pointsByColumns, currentX, deltaX) {\r\n if (pointsByColumns) {\r\n for (var i = 0; i < pointsByColumns.length; i++) {\r\n if (pointsByColumns[i].x === pointsByColumns[0].x && pointsByColumns[i + 1] && pointsByColumns[i].x === pointsByColumns[i + 1].x) {\r\n continue\r\n }\r\n if (pointsByColumns[i].x - deltaX <= currentX && currentX <= pointsByColumns[i].x + deltaX) {\r\n return pointsByColumns[i]\r\n }\r\n }\r\n }\r\n return null\r\n },\r\n _moveSeparator: function(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n var columnsSeparatorWidth = that._columnsSeparatorView.width();\r\n var isNextColumnMode = isNextColumnResizingMode(that);\r\n var deltaX = columnsSeparatorWidth / 2;\r\n var parentOffset = that._$parentContainer.offset();\r\n var parentOffsetLeft = parentOffset.left;\r\n var eventData = (0, _index.eventData)(e);\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n if (that._isResizing && that._resizingInfo) {\r\n if ((parentOffsetLeft <= eventData.x || !isNextColumnMode && isRtlParentStyle) && (!isNextColumnMode || eventData.x <= parentOffsetLeft + that._$parentContainer.width())) {\r\n if (that._updateColumnsWidthIfNeeded(eventData.x)) {\r\n var $cell = that._columnHeadersView.getColumnElements().eq(that._resizingInfo.currentColumnIndex);\r\n var cell = $cell[0];\r\n if (cell) {\r\n var outerWidth = cell.getBoundingClientRect().width;\r\n that._columnsSeparatorView.moveByX($cell.offset().left + ((isNextColumnMode || isRtlParentStyle) && rtlEnabled ? 0 : outerWidth));\r\n that._tablePositionController.update(that._targetPoint.y);\r\n e.preventDefault()\r\n }\r\n }\r\n }\r\n } else {\r\n if (that._isHeadersRowArea(eventData.y)) {\r\n if (that._previousParentOffset) {\r\n if (that._previousParentOffset.left !== parentOffset.left || that._previousParentOffset.top !== parentOffset.top) {\r\n that.pointsByColumns(null)\r\n }\r\n }\r\n that._targetPoint = that._getTargetPoint(that.pointsByColumns(), eventData.x, columnsSeparatorWidth);\r\n that._previousParentOffset = parentOffset;\r\n that._isReadyResizing = false;\r\n if (that._targetPoint) {\r\n that._columnsSeparatorView.changeCursor(\"col-resize\");\r\n that._columnsSeparatorView.moveByX(that._targetPoint.x - deltaX);\r\n that._tablePositionController.update(that._targetPoint.y);\r\n that._isReadyResizing = true;\r\n e.preventDefault()\r\n } else {\r\n that._columnsSeparatorView.changeCursor()\r\n }\r\n } else {\r\n that.pointsByColumns(null);\r\n that._isReadyResizing = false;\r\n that._columnsSeparatorView.changeCursor()\r\n }\r\n }\r\n },\r\n _endResizing: function(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n if (that._isResizing) {\r\n that.pointsByColumns(null);\r\n that._resizingInfo = null;\r\n that._columnsSeparatorView.hide();\r\n that._columnsSeparatorView.changeCursor();\r\n that._trackerView.hide();\r\n that._isReadyResizing = false;\r\n that._isResizing = false\r\n }\r\n },\r\n _getNextColumnIndex: function(currentColumnIndex) {\r\n return currentColumnIndex + 1\r\n },\r\n _setupResizingInfo: function(posX) {\r\n var that = this;\r\n var currentColumnIndex = that._targetPoint.columnIndex;\r\n var nextColumnIndex = that._getNextColumnIndex(currentColumnIndex);\r\n var currentHeader = that._columnHeadersView.getHeaderElement(currentColumnIndex);\r\n var nextHeader = that._columnHeadersView.getHeaderElement(nextColumnIndex);\r\n that._resizingInfo = {\r\n startPosX: posX,\r\n currentColumnIndex: currentColumnIndex,\r\n currentColumnWidth: currentHeader && currentHeader.length > 0 ? (0, _position.getBoundingRect)(currentHeader[0]).width : 0,\r\n nextColumnIndex: nextColumnIndex,\r\n nextColumnWidth: nextHeader && nextHeader.length > 0 ? (0, _position.getBoundingRect)(nextHeader[0]).width : 0\r\n }\r\n },\r\n _startResizing: function(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n var eventData = (0, _index.eventData)(e);\r\n if ((0, _index.isTouchEvent)(e)) {\r\n if (that._isHeadersRowArea(eventData.y)) {\r\n that._targetPoint = that._getTargetPoint(that.pointsByColumns(), eventData.x, COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH);\r\n if (that._targetPoint) {\r\n that._columnsSeparatorView.moveByX(that._targetPoint.x - that._columnsSeparatorView.width() / 2);\r\n that._isReadyResizing = true\r\n }\r\n } else {\r\n that._isReadyResizing = false\r\n }\r\n }\r\n if (that._isReadyResizing) {\r\n that._setupResizingInfo(eventData.x);\r\n that._isResizing = true;\r\n that._tablePositionController.update(that._targetPoint.y);\r\n that._columnsSeparatorView.show();\r\n that._trackerView.show();\r\n var scrollable = that.component.getScrollable();\r\n if (scrollable && that._isRtlParentStyle()) {\r\n that._scrollRight = scrollable.$content().width() - scrollable._container().width() - scrollable.scrollLeft()\r\n }\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n if (this.isResizing()) {\r\n this.getController(\"editorFactory\").loseFocus()\r\n }\r\n },\r\n _generatePointsByColumns: function() {\r\n var that = this;\r\n var columns = that._columnsController ? that._columnsController.getVisibleColumns() : [];\r\n var cells = that._columnHeadersView.getColumnElements();\r\n var pointsByColumns = [];\r\n if (cells && cells.length > 0) {\r\n pointsByColumns = _uiGrid_core2.default.getPointsByColumns(cells, function(point) {\r\n return that._pointCreated(point, cells.length, columns)\r\n })\r\n }\r\n that._pointsByColumns = pointsByColumns\r\n },\r\n _unsubscribeFromEvents: function() {\r\n this._moveSeparatorHandler && _events_engine.default.off(_dom_adapter.default.getDocument(), (0, _index.addNamespace)(_pointer.default.move, MODULE_NAMESPACE), this._moveSeparatorHandler);\r\n this._startResizingHandler && _events_engine.default.off(this._$parentContainer, (0, _index.addNamespace)(_pointer.default.down, MODULE_NAMESPACE), this._startResizingHandler);\r\n if (this._endResizingHandler) {\r\n _events_engine.default.off(this._columnsSeparatorView.element(), (0, _index.addNamespace)(_pointer.default.up, MODULE_NAMESPACE), this._endResizingHandler);\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), (0, _index.addNamespace)(_pointer.default.up, MODULE_NAMESPACE), this._endResizingHandler)\r\n }\r\n },\r\n _subscribeToEvents: function() {\r\n this._moveSeparatorHandler = this.createAction(this._moveSeparator);\r\n this._startResizingHandler = this.createAction(this._startResizing);\r\n this._endResizingHandler = this.createAction(this._endResizing);\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), (0, _index.addNamespace)(_pointer.default.move, MODULE_NAMESPACE), this, this._moveSeparatorHandler);\r\n _events_engine.default.on(this._$parentContainer, (0, _index.addNamespace)(_pointer.default.down, MODULE_NAMESPACE), this, this._startResizingHandler);\r\n _events_engine.default.on(this._columnsSeparatorView.element(), (0, _index.addNamespace)(_pointer.default.up, MODULE_NAMESPACE), this, this._endResizingHandler);\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), (0, _index.addNamespace)(_pointer.default.up, MODULE_NAMESPACE), this, this._endResizingHandler)\r\n },\r\n _updateColumnsWidthIfNeeded: function(posX) {\r\n var deltaX;\r\n var needUpdate = false;\r\n var nextCellWidth;\r\n var resizingInfo = this._resizingInfo;\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnsSeparatorWidth = this._columnsSeparatorView.width();\r\n var contentWidth = this._rowsView.contentWidth();\r\n var isNextColumnMode = isNextColumnResizingMode(this);\r\n var adaptColumnWidthByRatio = isNextColumnMode && this.option(\"adaptColumnWidthByRatio\") && !this.option(\"columnAutoWidth\");\r\n var minWidth;\r\n var nextColumn;\r\n var cellWidth;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n\r\n function isPercentWidth(width) {\r\n return (0, _type.isString)(width) && \"%\" === width.slice(-1)\r\n }\r\n\r\n function setColumnWidth(column, columnWidth, contentWidth, adaptColumnWidthByRatio) {\r\n if (column) {\r\n var oldColumnWidth = column.width;\r\n if (oldColumnWidth) {\r\n adaptColumnWidthByRatio = isPercentWidth(oldColumnWidth)\r\n }\r\n if (adaptColumnWidthByRatio) {\r\n column && columnsController.columnOption(column.index, \"visibleWidth\", columnWidth);\r\n column && columnsController.columnOption(column.index, \"width\", (columnWidth / contentWidth * 100).toFixed(3) + \"%\")\r\n } else {\r\n column && columnsController.columnOption(column.index, \"visibleWidth\", null);\r\n column && columnsController.columnOption(column.index, \"width\", columnWidth)\r\n }\r\n }\r\n }\r\n\r\n function correctContentWidth(contentWidth, visibleColumns) {\r\n var allColumnsHaveWidth = visibleColumns.every(function(column) {\r\n return column.width\r\n });\r\n if (allColumnsHaveWidth) {\r\n var totalPercent = visibleColumns.reduce(function(sum, column) {\r\n if (isPercentWidth(column.width)) {\r\n sum += parseFloat(column.width)\r\n }\r\n return sum\r\n }, 0);\r\n if (totalPercent > 100) {\r\n contentWidth = contentWidth / totalPercent * 100\r\n }\r\n }\r\n return contentWidth\r\n }\r\n deltaX = posX - resizingInfo.startPosX;\r\n if ((isNextColumnMode || isRtlParentStyle) && rtlEnabled) {\r\n deltaX = -deltaX\r\n }\r\n cellWidth = resizingInfo.currentColumnWidth + deltaX;\r\n var column = visibleColumns[resizingInfo.currentColumnIndex];\r\n minWidth = column && column.minWidth || columnsSeparatorWidth;\r\n needUpdate = cellWidth >= minWidth;\r\n if (isNextColumnMode) {\r\n nextCellWidth = resizingInfo.nextColumnWidth - deltaX;\r\n nextColumn = visibleColumns[resizingInfo.nextColumnIndex];\r\n minWidth = nextColumn && nextColumn.minWidth || columnsSeparatorWidth;\r\n needUpdate = needUpdate && nextCellWidth >= minWidth\r\n }\r\n if (needUpdate) {\r\n columnsController.beginUpdate();\r\n cellWidth = Math.floor(cellWidth);\r\n contentWidth = correctContentWidth(contentWidth, visibleColumns);\r\n setColumnWidth(column, cellWidth, contentWidth, adaptColumnWidthByRatio);\r\n if (isNextColumnMode) {\r\n nextCellWidth = Math.floor(nextCellWidth);\r\n setColumnWidth(nextColumn, nextCellWidth, contentWidth, adaptColumnWidthByRatio)\r\n } else {\r\n var columnWidths = this._columnHeadersView.getColumnWidths();\r\n columnWidths[resizingInfo.currentColumnIndex] = cellWidth;\r\n var hasScroll = columnWidths.reduce(function(totalWidth, width) {\r\n return totalWidth + width\r\n }, 0) > this._rowsView.contentWidth();\r\n if (!hasScroll) {\r\n var lastColumnIndex = _uiGrid_core2.default.getLastResizableColumnIndex(visibleColumns);\r\n if (lastColumnIndex >= 0) {\r\n columnsController.columnOption(visibleColumns[lastColumnIndex].index, \"visibleWidth\", \"auto\")\r\n }\r\n }\r\n for (var i = 0; i < columnWidths.length; i++) {\r\n if (visibleColumns[i] && visibleColumns[i] !== column && void 0 === visibleColumns[i].width) {\r\n columnsController.columnOption(visibleColumns[i].index, \"width\", columnWidths[i])\r\n }\r\n }\r\n }\r\n columnsController.endUpdate();\r\n if (!isNextColumnMode) {\r\n this.component.updateDimensions();\r\n var scrollable = this.component.getScrollable();\r\n if (scrollable && isRtlParentStyle) {\r\n var left = scrollable.$content().width() - scrollable._container().width() - this._scrollRight;\r\n scrollable.scrollTo({\r\n left: left\r\n })\r\n }\r\n }\r\n }\r\n return needUpdate\r\n },\r\n _subscribeToCallback: function(callback, handler) {\r\n callback.add(handler);\r\n this._subscribesToCallbacks.push({\r\n callback: callback,\r\n handler: handler\r\n })\r\n },\r\n _unsubscribeFromCallbacks: function() {\r\n for (var i = 0; i < this._subscribesToCallbacks.length; i++) {\r\n var subscribe = this._subscribesToCallbacks[i];\r\n subscribe.callback.remove(subscribe.handler)\r\n }\r\n this._subscribesToCallbacks = []\r\n },\r\n _unsubscribes: function() {\r\n this._unsubscribeFromEvents();\r\n this._unsubscribeFromCallbacks()\r\n },\r\n _init: function() {\r\n var that = this;\r\n var generatePointsByColumnsHandler = function() {\r\n if (!that._isResizing) {\r\n that.pointsByColumns(null)\r\n }\r\n };\r\n var generatePointsByColumnsScrollHandler = function(offset) {\r\n if (that._scrollLeft !== offset.left) {\r\n that._scrollLeft = offset.left;\r\n that.pointsByColumns(null)\r\n }\r\n };\r\n that._columnsSeparatorView = that.getView(\"columnsSeparatorView\");\r\n that._columnHeadersView = that.getView(\"columnHeadersView\");\r\n that._trackerView = that.getView(\"trackerView\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._columnsController = that.getController(\"columns\");\r\n that._tablePositionController = that.getController(\"tablePosition\");\r\n that._$parentContainer = that.component.$element();\r\n that._subscribeToCallback(that._columnHeadersView.renderCompleted, generatePointsByColumnsHandler);\r\n that._subscribeToCallback(that._columnHeadersView.resizeCompleted, generatePointsByColumnsHandler);\r\n that._subscribeToCallback(that._columnsSeparatorView.renderCompleted, function() {\r\n that._unsubscribeFromEvents();\r\n that._subscribeToEvents()\r\n });\r\n that._subscribeToCallback(that._rowsView.renderCompleted, function() {\r\n that._rowsView.scrollChanged.remove(generatePointsByColumnsScrollHandler);\r\n that._rowsView.scrollChanged.add(generatePointsByColumnsScrollHandler)\r\n });\r\n var previousScrollbarVisibility = 0 !== that._rowsView.getScrollbarWidth();\r\n var previousTableHeight = 0;\r\n that._subscribeToCallback(that.getController(\"tablePosition\").positionChanged, function(e) {\r\n if (that._isResizing && !that._rowsView.isResizing) {\r\n var scrollbarVisibility = 0 !== that._rowsView.getScrollbarWidth();\r\n if (previousScrollbarVisibility !== scrollbarVisibility || previousTableHeight && previousTableHeight !== e.height) {\r\n previousScrollbarVisibility = scrollbarVisibility;\r\n previousTableHeight = e.height;\r\n that.component.updateDimensions()\r\n } else {\r\n that._rowsView.updateFreeSpaceRowHeight()\r\n }\r\n }\r\n previousTableHeight = e.height\r\n })\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n if (\"allowColumnResizing\" === args.name) {\r\n if (args.value) {\r\n this._init();\r\n this._subscribeToEvents()\r\n } else {\r\n this._unsubscribes()\r\n }\r\n }\r\n },\r\n isResizing: function() {\r\n return this._isResizing\r\n },\r\n init: function() {\r\n this._subscribesToCallbacks = [];\r\n if (allowResizing(this)) {\r\n this._init()\r\n }\r\n },\r\n pointsByColumns: function(value) {\r\n if (void 0 !== value) {\r\n this._pointsByColumns = value\r\n } else {\r\n if (!this._pointsByColumns) {\r\n this._generatePointsByColumns()\r\n }\r\n return this._pointsByColumns\r\n }\r\n },\r\n dispose: function() {\r\n this._unsubscribes();\r\n this.callBase()\r\n }\r\n});\r\nvar TablePositionViewController = _uiGrid_core.default.ViewController.inherit({\r\n update: function(top) {\r\n var that = this;\r\n var params = {};\r\n var $element = that._columnHeadersView.element();\r\n var offset = $element && $element.offset();\r\n var offsetTop = offset && offset.top || 0;\r\n var diffOffsetTop = (0, _type.isDefined)(top) ? Math.abs(top - offsetTop) : 0;\r\n var columnsHeadersHeight = that._columnHeadersView ? that._columnHeadersView.getHeight() : 0;\r\n var scrollBarWidth = that._rowsView.getScrollbarWidth(true);\r\n var rowsHeight = that._rowsView ? that._rowsView.height() - scrollBarWidth : 0;\r\n var columnsResizerController = that.component.getController(\"columnsResizer\");\r\n var draggingHeaderView = that.component.getView(\"draggingHeaderView\");\r\n params.height = columnsHeadersHeight;\r\n var isDraggingOrResizing = false !== columnsResizerController.isResizing() || draggingHeaderView.isDragging();\r\n if (isDraggingOrResizing) {\r\n params.height += rowsHeight - diffOffsetTop\r\n }\r\n if (null !== top && $element && $element.length) {\r\n params.top = $element[0].offsetTop + diffOffsetTop\r\n }\r\n that.positionChanged.fire(params)\r\n },\r\n init: function() {\r\n var that = this;\r\n that.callBase();\r\n that._columnHeadersView = this.getView(\"columnHeadersView\");\r\n that._rowsView = this.getView(\"rowsView\");\r\n that._pagerView = this.getView(\"pagerView\");\r\n that._rowsView.resizeCompleted.add(function() {\r\n if (that.option(\"allowColumnResizing\")) {\r\n var targetPoint = that.getController(\"columnsResizer\")._targetPoint;\r\n that.update(targetPoint ? targetPoint.y : null)\r\n }\r\n })\r\n },\r\n ctor: function(component) {\r\n this.callBase(component);\r\n this.positionChanged = (0, _callbacks.default)()\r\n }\r\n});\r\nvar DraggingHeaderViewController = _uiGrid_core.default.ViewController.inherit({\r\n _generatePointsByColumns: function(options) {\r\n var that = this;\r\n return _uiGrid_core2.default.getPointsByColumns(options.columnElements, function(point) {\r\n return that._pointCreated(point, options.columns, options.targetDraggingPanel.getName(), options.sourceColumn)\r\n }, options.isVerticalOrientation, options.startColumnIndex)\r\n },\r\n _pointCreated: function(point, columns, location, sourceColumn) {\r\n var targetColumn = columns[point.columnIndex];\r\n var prevColumn = columns[point.columnIndex - 1];\r\n switch (location) {\r\n case \"columnChooser\":\r\n return true;\r\n case \"headers\":\r\n return sourceColumn && !sourceColumn.allowReordering || (!targetColumn || !targetColumn.allowReordering) && (!prevColumn || !prevColumn.allowReordering);\r\n default:\r\n return 0 === columns.length\r\n }\r\n },\r\n _subscribeToEvents: function(draggingHeader, draggingPanels) {\r\n var that = this;\r\n (0, _iterator.each)(draggingPanels, function(_, draggingPanel) {\r\n if (draggingPanel) {\r\n var columns;\r\n var rowCount = draggingPanel.getRowCount ? draggingPanel.getRowCount() : 1;\r\n var nameDraggingPanel = draggingPanel.getName();\r\n var subscribeToEvents = function(index, columnElement) {\r\n if (!columnElement) {\r\n return\r\n }\r\n var $columnElement = (0, _renderer.default)(columnElement);\r\n var column = columns[index];\r\n if (draggingPanel.allowDragging(column, nameDraggingPanel, draggingPanels)) {\r\n $columnElement.addClass(that.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS));\r\n _events_engine.default.on($columnElement, (0, _index.addNamespace)(_drag.start, MODULE_NAMESPACE), that.createAction(function(args) {\r\n var e = args.event;\r\n var eventData = (0, _index.eventData)(e);\r\n draggingHeader.dragHeader({\r\n deltaX: eventData.x - (0, _renderer.default)(e.currentTarget).offset().left,\r\n deltaY: eventData.y - (0, _renderer.default)(e.currentTarget).offset().top,\r\n sourceColumn: column,\r\n index: column.index,\r\n columnIndex: index,\r\n columnElement: $columnElement,\r\n sourceLocation: nameDraggingPanel,\r\n draggingPanels: draggingPanels,\r\n rowIndex: that._columnsController.getRowIndex(column.index, true)\r\n })\r\n }));\r\n _events_engine.default.on($columnElement, (0, _index.addNamespace)(_drag.move, MODULE_NAMESPACE), {\r\n that: draggingHeader\r\n }, that.createAction(draggingHeader.moveHeader));\r\n _events_engine.default.on($columnElement, (0, _index.addNamespace)(_drag.end, MODULE_NAMESPACE), {\r\n that: draggingHeader\r\n }, that.createAction(draggingHeader.dropHeader))\r\n }\r\n };\r\n for (var i = 0; i < rowCount; i++) {\r\n var columnElements = draggingPanel.getColumnElements(i) || [];\r\n if (columnElements.length) {\r\n columns = draggingPanel.getColumns(i) || [];\r\n (0, _iterator.each)(columnElements, subscribeToEvents)\r\n }\r\n }\r\n }\r\n })\r\n },\r\n _unsubscribeFromEvents: function(draggingHeader, draggingPanels) {\r\n var that = this;\r\n (0, _iterator.each)(draggingPanels, function(_, draggingPanel) {\r\n if (draggingPanel) {\r\n var columnElements = draggingPanel.getColumnElements() || [];\r\n (0, _iterator.each)(columnElements, function(index, columnElement) {\r\n var $columnElement = (0, _renderer.default)(columnElement);\r\n _events_engine.default.off($columnElement, (0, _index.addNamespace)(_drag.start, MODULE_NAMESPACE));\r\n _events_engine.default.off($columnElement, (0, _index.addNamespace)(_drag.move, MODULE_NAMESPACE));\r\n _events_engine.default.off($columnElement, (0, _index.addNamespace)(_drag.end, MODULE_NAMESPACE));\r\n $columnElement.removeClass(that.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS))\r\n })\r\n }\r\n })\r\n },\r\n _getSeparator: function(targetLocation) {\r\n return \"headers\" === targetLocation ? this._columnsSeparatorView : this._blockSeparatorView\r\n },\r\n hideSeparators: function(type) {\r\n var blockSeparator = this._blockSeparatorView;\r\n var columnsSeparator = this._columnsSeparatorView;\r\n this._animationColumnIndex = null;\r\n blockSeparator && blockSeparator.hide();\r\n \"block\" !== type && columnsSeparator && columnsSeparator.hide()\r\n },\r\n init: function() {\r\n var that = this;\r\n that.callBase();\r\n that._columnsController = that.getController(\"columns\");\r\n that._columnHeadersView = that.getView(\"columnHeadersView\");\r\n that._columnsSeparatorView = that.getView(\"columnsSeparatorView\");\r\n that._draggingHeaderView = that.getView(\"draggingHeaderView\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._blockSeparatorView = that.getView(\"blockSeparatorView\");\r\n that._headerPanelView = that.getView(\"headerPanel\");\r\n that._columnChooserView = that.getView(\"columnChooserView\");\r\n var subscribeToEvents = function() {\r\n if (that._draggingHeaderView) {\r\n var draggingPanels = [that._columnChooserView, that._columnHeadersView, that._headerPanelView];\r\n that._unsubscribeFromEvents(that._draggingHeaderView, draggingPanels);\r\n that._subscribeToEvents(that._draggingHeaderView, draggingPanels)\r\n }\r\n };\r\n that._columnHeadersView.renderCompleted.add(subscribeToEvents);\r\n that._headerPanelView && that._headerPanelView.renderCompleted.add(subscribeToEvents);\r\n that._columnChooserView && that._columnChooserView.renderCompleted.add(subscribeToEvents)\r\n },\r\n allowDrop: function(parameters) {\r\n return this._columnsController.allowMoveColumn(parameters.sourceColumnIndex, parameters.targetColumnIndex, parameters.sourceLocation, parameters.targetLocation)\r\n },\r\n drag: function(parameters) {\r\n var sourceIndex = parameters.sourceIndex;\r\n var sourceLocation = parameters.sourceLocation;\r\n var sourceColumnElement = parameters.sourceColumnElement;\r\n var headersView = this._columnHeadersView;\r\n var rowsView = this._rowsView;\r\n if (sourceColumnElement) {\r\n sourceColumnElement.css({\r\n opacity: COLUMN_OPACITY\r\n });\r\n if (\"headers\" === sourceLocation) {\r\n headersView && headersView.setRowsOpacity(sourceIndex, COLUMN_OPACITY);\r\n rowsView && rowsView.setRowsOpacity(sourceIndex, COLUMN_OPACITY)\r\n }\r\n }\r\n },\r\n dock: function(parameters) {\r\n var that = this;\r\n var targetColumnIndex = (0, _type.isObject)(parameters.targetColumnIndex) ? parameters.targetColumnIndex.columnIndex : parameters.targetColumnIndex;\r\n var sourceLocation = parameters.sourceLocation;\r\n var targetLocation = parameters.targetLocation;\r\n var separator = that._getSeparator(targetLocation);\r\n var hasTargetVisibleIndex = targetColumnIndex >= 0;\r\n var showSeparator = function() {\r\n if (that._animationColumnIndex !== targetColumnIndex) {\r\n that.hideSeparators();\r\n separator.element()[parameters.isLast ? \"insertAfter\" : \"insertBefore\"](parameters.targetColumnElement);\r\n that._animationColumnIndex = targetColumnIndex;\r\n separator.show(targetLocation)\r\n }\r\n };\r\n that._columnHeadersView.element().find(\".\" + HEADER_ROW_CLASS).toggleClass(that.addWidgetPrefix(HEADERS_DROP_HIGHLIGHT_CLASS), \"headers\" !== sourceLocation && \"headers\" === targetLocation && !hasTargetVisibleIndex);\r\n if (separator) {\r\n if (that.allowDrop(parameters) && hasTargetVisibleIndex) {\r\n if (\"group\" === targetLocation || \"columnChooser\" === targetLocation) {\r\n showSeparator()\r\n } else {\r\n that.hideSeparators(\"block\");\r\n that.getController(\"tablePosition\").update(parameters.posY);\r\n separator.moveByX(parameters.posX - separator.width());\r\n separator.show()\r\n }\r\n } else {\r\n that.hideSeparators()\r\n }\r\n }\r\n },\r\n drop: function(parameters) {\r\n var sourceColumnElement = parameters.sourceColumnElement;\r\n if (sourceColumnElement) {\r\n sourceColumnElement.css({\r\n opacity: \"\"\r\n });\r\n this._columnHeadersView.setRowsOpacity(parameters.sourceIndex, \"\");\r\n this._rowsView.setRowsOpacity(parameters.sourceIndex, \"\");\r\n this._columnHeadersView.element().find(\".\" + HEADER_ROW_CLASS).removeClass(this.addWidgetPrefix(HEADERS_DROP_HIGHLIGHT_CLASS))\r\n }\r\n if (this.allowDrop(parameters)) {\r\n var separator = this._getSeparator(parameters.targetLocation);\r\n if (separator) {\r\n separator.hide()\r\n }\r\n this._columnsController.moveColumn(parameters.sourceColumnIndex, parameters.targetColumnIndex, parameters.sourceLocation, parameters.targetLocation)\r\n }\r\n },\r\n dispose: function() {\r\n if (this._draggingHeaderView) {\r\n this._unsubscribeFromEvents(this._draggingHeaderView, [this._columnChooserView, this._columnHeadersView, this._headerPanelView])\r\n }\r\n }\r\n});\r\nvar _default = {\r\n views: {\r\n columnsSeparatorView: ColumnsSeparatorView,\r\n blockSeparatorView: BlockSeparatorView,\r\n draggingHeaderView: DraggingHeaderView,\r\n trackerView: TrackerView\r\n },\r\n controllers: {\r\n draggingHeader: DraggingHeaderViewController,\r\n tablePosition: TablePositionViewController,\r\n columnsResizer: ColumnsResizerViewController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n _needUpdateRowHeight: function(itemCount) {\r\n var wordWrapEnabled = this.option(\"wordWrapEnabled\");\r\n var columnsResizerController = this.getController(\"columnsResizer\");\r\n var isResizing = columnsResizerController.isResizing();\r\n return this.callBase.apply(this, arguments) || itemCount > 0 && wordWrapEnabled && isResizing\r\n }\r\n }\r\n },\r\n controllers: {\r\n editorFactory: {\r\n renderFocusOverlay: function() {\r\n if (this.getController(\"columnsResizer\").isResizing()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = uncurryThis([].join);\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\nexportTypedArrayMethod('join', function join(separator) {\n return $join(aTypedArray(this), separator);\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar RangeError = global.RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.grouping.expanded.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.GroupingHelper = void 0;\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _utils = _interopRequireDefault(require(\"../../data/utils\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _store_helper = _interopRequireDefault(require(\"../../data/store_helper\"));\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiData_gridGrouping = require(\"./ui.data_grid.grouping.core\");\r\nvar _uiData_grid2 = require(\"./ui.data_grid.utils\");\r\nvar _query = _interopRequireDefault(require(\"../../data/query\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar loadTotalCount = function(dataSource, options) {\r\n var d = new _deferred.Deferred;\r\n var loadOptions = (0, _extend.extend)({\r\n skip: 0,\r\n take: 1,\r\n requireTotalCount: true\r\n }, options);\r\n dataSource.load(loadOptions).done(function(data, extra) {\r\n d.resolve(extra && extra.totalCount)\r\n }).fail(d.reject.bind(d));\r\n return d\r\n};\r\nvar GroupingHelper = _uiData_gridGrouping.GroupingHelper.inherit(function() {\r\n var foreachCollapsedGroups = function(that, callback, updateOffsets) {\r\n return that.foreachGroups(function(groupInfo) {\r\n if (!groupInfo.isExpanded) {\r\n return callback(groupInfo)\r\n }\r\n }, false, false, updateOffsets, true)\r\n };\r\n var correctSkipLoadOption = function(that, skip) {\r\n var skipCorrection = 0;\r\n var resultSkip = skip || 0;\r\n if (skip) {\r\n foreachCollapsedGroups(that, function(groupInfo) {\r\n if (groupInfo.offset - skipCorrection >= skip) {\r\n return false\r\n }\r\n skipCorrection += groupInfo.count - 1\r\n });\r\n resultSkip += skipCorrection\r\n }\r\n return resultSkip\r\n };\r\n var processGroupItems = function processGroupItems(that, items, path, offset, skipFirstItem, take) {\r\n var removeLastItemsCount = 0;\r\n var needRemoveFirstItem = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null;\r\n offset += groupInfo.count;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n } else {\r\n if (item.items) {\r\n var offsetInfo = processGroupItems(that, item.items, path, offset, skipFirstItem, take);\r\n if (skipFirstItem) {\r\n if (offsetInfo.offset - offset > 1) {\r\n item.isContinuation = true\r\n } else {\r\n needRemoveFirstItem = true\r\n }\r\n }\r\n offset = offsetInfo.offset;\r\n take = offsetInfo.take;\r\n if (take < 0) {\r\n if (item.items.length) {\r\n item.isContinuationOnNextPage = true\r\n } else {\r\n removeLastItemsCount++\r\n }\r\n }\r\n }\r\n }\r\n path.pop()\r\n } else {\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n offset++;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n }\r\n skipFirstItem = false\r\n }\r\n if (needRemoveFirstItem) {\r\n items.splice(0, 1)\r\n }\r\n if (removeLastItemsCount) {\r\n items.splice(-removeLastItemsCount, removeLastItemsCount)\r\n }\r\n return {\r\n offset: offset,\r\n take: take\r\n }\r\n };\r\n var pathEquals = function(path1, path2) {\r\n if (path1.length !== path2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < path1.length; i++) {\r\n if (!_utils.default.keysEqual(null, path1[i], path2[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n };\r\n var updateGroupOffsets = function updateGroupOffsets(that, items, path, offset, additionalGroupInfo) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (\"key\" in item && void 0 !== item.items) {\r\n path.push(item.key);\r\n if (additionalGroupInfo && pathEquals(additionalGroupInfo.path, path) && !item.isContinuation) {\r\n additionalGroupInfo.offset = offset\r\n }\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !item.isContinuation) {\r\n groupInfo.offset = offset\r\n }\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n offset += groupInfo.count\r\n } else {\r\n offset = updateGroupOffsets(that, item.items, path, offset, additionalGroupInfo)\r\n }\r\n path.pop()\r\n } else {\r\n offset++\r\n }\r\n }\r\n return offset\r\n };\r\n var removeGroupLoadOption = function(storeLoadOptions, loadOptions) {\r\n if (loadOptions.group) {\r\n var groups = _uiData_grid.default.normalizeSortingInfo(loadOptions.group);\r\n var sorts = _uiData_grid.default.normalizeSortingInfo(storeLoadOptions.sort);\r\n storeLoadOptions.sort = _store_helper.default.arrangeSortingInfo(groups, sorts);\r\n delete loadOptions.group\r\n }\r\n };\r\n var createNotGroupFilter = function(path, storeLoadOptions, group) {\r\n var groups = _uiData_grid.default.normalizeSortingInfo(group || storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n filterElement.push([groups[j].selector, i === j ? \"<>\" : \"=\", path[j]])\r\n }\r\n filter.push(_uiData_grid.default.combineFilters(filterElement))\r\n }\r\n filter = _uiData_grid.default.combineFilters(filter, \"or\");\r\n return _uiData_grid.default.combineFilters([filter, storeLoadOptions.filter])\r\n };\r\n var getGroupCount = function getGroupCount(item, groupCount) {\r\n var count = item.count || item.items.length;\r\n if (!item.count && groupCount > 1) {\r\n count = 0;\r\n for (var i = 0; i < item.items.length; i++) {\r\n count += getGroupCount(item.items[i], groupCount - 1)\r\n }\r\n }\r\n return count\r\n };\r\n return {\r\n handleDataLoading: function(options) {\r\n var that = this;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var collapsedGroups = [];\r\n var collapsedItemsCount = 0;\r\n var skipFirstItem = false;\r\n var take;\r\n var group = options.loadOptions.group;\r\n var skipCorrection = 0;\r\n removeGroupLoadOption(storeLoadOptions, options.loadOptions);\r\n options.group = options.group || group;\r\n if (options.isCustomLoading) {\r\n return\r\n }\r\n var loadOptions = (0, _extend.extend)({}, storeLoadOptions);\r\n loadOptions.skip = correctSkipLoadOption(that, storeLoadOptions.skip);\r\n if (loadOptions.skip && loadOptions.take && group) {\r\n loadOptions.skip--;\r\n loadOptions.take++;\r\n skipFirstItem = true\r\n }\r\n if (loadOptions.take && group) {\r\n take = loadOptions.take;\r\n loadOptions.take++\r\n }\r\n foreachCollapsedGroups(that, function(groupInfo) {\r\n if (groupInfo.offset >= loadOptions.skip + loadOptions.take + skipCorrection) {\r\n return false\r\n } else {\r\n if (groupInfo.offset >= loadOptions.skip + skipCorrection && groupInfo.count) {\r\n skipCorrection += groupInfo.count - 1;\r\n collapsedGroups.push(groupInfo);\r\n collapsedItemsCount += groupInfo.count\r\n }\r\n }\r\n });\r\n (0, _iterator.each)(collapsedGroups, function() {\r\n loadOptions.filter = createNotGroupFilter(this.path, loadOptions, group)\r\n });\r\n options.storeLoadOptions = loadOptions;\r\n options.collapsedGroups = collapsedGroups;\r\n options.collapsedItemsCount = collapsedItemsCount;\r\n options.skip = loadOptions.skip || 0;\r\n options.skipFirstItem = skipFirstItem;\r\n options.take = take\r\n },\r\n handleDataLoaded: function(options, callBase) {\r\n var that = this;\r\n var data = options.data;\r\n var collapsedGroups = options.collapsedGroups;\r\n var groups = _uiData_grid.default.normalizeSortingInfo(options.group);\r\n var groupCount = groups.length;\r\n\r\n function appendCollapsedPath(data, path, groups, collapsedGroup, offset) {\r\n if (!data || !path.length || !groups.length) {\r\n return\r\n }\r\n var keyValue;\r\n var i;\r\n var pathValue = (0, _data.toComparable)(path[0], true);\r\n for (i = 0; i < data.length; i++) {\r\n keyValue = (0, _data.toComparable)(data[i].key, true);\r\n if (offset >= collapsedGroup.offset || pathValue === keyValue) {\r\n break\r\n } else {\r\n offset += getGroupCount(data[i], groups.length)\r\n }\r\n }\r\n if (!data.length || pathValue !== keyValue) {\r\n data.splice(i, 0, {\r\n key: path[0],\r\n items: [],\r\n count: 1 === path.length ? collapsedGroup.count : void 0\r\n })\r\n }\r\n appendCollapsedPath(data[i].items, path.slice(1), groups.slice(1), collapsedGroup, offset)\r\n }\r\n if (options.collapsedItemsCount && options.extra && options.extra.totalCount >= 0) {\r\n options.extra.totalCount += options.collapsedItemsCount\r\n }\r\n callBase(options);\r\n if (groupCount) {\r\n var query = (0, _query.default)(data);\r\n _store_helper.default.multiLevelGroup(query, groups).enumerate().done(function(groupedData) {\r\n data = groupedData\r\n });\r\n if (collapsedGroups) {\r\n for (var pathIndex = 0; pathIndex < collapsedGroups.length; pathIndex++) {\r\n appendCollapsedPath(data, collapsedGroups[pathIndex].path, groups, collapsedGroups[pathIndex], options.skip)\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n processGroupItems(that, data, [], options.skip, options.skipFirstItem, options.take)\r\n }\r\n options.data = data\r\n }\r\n },\r\n isGroupItemCountable: function(item) {\r\n return null === item.items\r\n },\r\n updateTotalItemsCount: function() {\r\n var itemsCountCorrection = 0;\r\n foreachCollapsedGroups(this, function(groupInfo) {\r\n if (groupInfo.count) {\r\n itemsCountCorrection -= groupInfo.count - 1\r\n }\r\n });\r\n this.callBase(itemsCountCorrection)\r\n },\r\n changeRowExpand: function(path) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var beginPageIndex = dataSource.beginPageIndex ? dataSource.beginPageIndex() : dataSource.pageIndex();\r\n var dataSourceItems = dataSource.items();\r\n var offset = correctSkipLoadOption(that, beginPageIndex * dataSource.pageSize());\r\n var groupInfo = that.findGroupInfo(path);\r\n var groupCountQuery;\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n groupCountQuery = (new _deferred.Deferred).resolve(groupInfo.count)\r\n } else {\r\n groupCountQuery = loadTotalCount(dataSource, {\r\n filter: (0, _uiData_grid2.createGroupFilter)(path, {\r\n filter: dataSource.filter(),\r\n group: dataSource.group()\r\n })\r\n })\r\n }\r\n return (0, _deferred.when)(groupCountQuery).done(function(count) {\r\n count = parseInt(count.length ? count[0] : count);\r\n if (groupInfo) {\r\n updateGroupOffsets(that, dataSourceItems, [], offset);\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n groupInfo.count = count\r\n } else {\r\n groupInfo = {\r\n offset: -1,\r\n count: count,\r\n path: path,\r\n isExpanded: false\r\n };\r\n updateGroupOffsets(that, dataSourceItems, [], offset, groupInfo);\r\n if (groupInfo.offset >= 0) {\r\n that.addGroupInfo(groupInfo)\r\n }\r\n }\r\n that.updateTotalItemsCount()\r\n }).fail(function() {\r\n dataSource._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n })\r\n },\r\n allowCollapseAll: function() {\r\n return false\r\n },\r\n refresh: function(options, operationTypes) {\r\n var that = this;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var dataSource = that._dataSource;\r\n this.callBase.apply(this, arguments);\r\n if (operationTypes.reload) {\r\n return foreachCollapsedGroups(that, function(groupInfo) {\r\n var groupCountQuery = loadTotalCount(dataSource, {\r\n filter: (0, _uiData_grid2.createGroupFilter)(groupInfo.path, storeLoadOptions)\r\n });\r\n var groupOffsetQuery = loadTotalCount(dataSource, {\r\n filter: (0, _uiData_gridGrouping.createOffsetFilter)(groupInfo.path, storeLoadOptions)\r\n });\r\n return (0, _deferred.when)(groupOffsetQuery, groupCountQuery).done(function(offset, count) {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount()\r\n }\r\n })\r\n }, true)\r\n }\r\n }\r\n }\r\n}());\r\nexports.GroupingHelper = GroupingHelper;\r\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = uncurryThis(ArrayIterators.values);\nvar arrayKeys = uncurryThis(ArrayIterators.keys);\nvar arrayEntries = uncurryThis(ArrayIterators.entries);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar TypedArrayPrototype = Uint8Array && Uint8Array.prototype;\n\nvar GENERIC = !fails(function () {\n TypedArrayPrototype[ITERATOR].call([1]);\n});\n\nvar ITERATOR_IS_VALUES = !!TypedArrayPrototype\n && TypedArrayPrototype.values\n && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values\n && TypedArrayPrototype.values.name === 'values';\n\nvar typedArrayValues = function values() {\n return arrayValues(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n","/**\r\n * DevExtreme (ui/filter_builder/ui.filter_operations_dictionary.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar OPERATION_ICONS = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notequal\",\r\n \"<\": \"less\",\r\n \"<=\": \"lessorequal\",\r\n \">\": \"greater\",\r\n \">=\": \"greaterorequal\",\r\n notcontains: \"doesnotcontain\",\r\n contains: \"contains\",\r\n startswith: \"startswith\",\r\n endswith: \"endswith\",\r\n isblank: \"isblank\",\r\n isnotblank: \"isnotblank\"\r\n};\r\nvar OPERATION_NAME = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notEqual\",\r\n \"<\": \"lessThan\",\r\n \"<=\": \"lessThanOrEqual\",\r\n \">\": \"greaterThan\",\r\n \">=\": \"greaterThanOrEqual\",\r\n startswith: \"startsWith\",\r\n contains: \"contains\",\r\n notcontains: \"notContains\",\r\n endswith: \"endsWith\",\r\n isblank: \"isBlank\",\r\n isnotblank: \"isNotBlank\",\r\n between: \"between\"\r\n};\r\nvar _default = {\r\n getIconByFilterOperation: function(filterOperation) {\r\n return OPERATION_ICONS[filterOperation]\r\n },\r\n getNameByFilterOperation: function(filterOperation) {\r\n return OPERATION_NAME[filterOperation]\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/context_menu/ui.menu_base.edit.strategy.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _uiCollection_widgetEditStrategy = _interopRequireDefault(require(\"../collection/ui.collection_widget.edit.strategy.plain\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar MenuBaseEditStrategy = function(_PlainEditStrategy) {\r\n _inheritsLoose(MenuBaseEditStrategy, _PlainEditStrategy);\r\n\r\n function MenuBaseEditStrategy() {\r\n return _PlainEditStrategy.apply(this, arguments) || this\r\n }\r\n var _proto = MenuBaseEditStrategy.prototype;\r\n _proto._getPlainItems = function() {\r\n return (0, _iterator.map)(this._collectionWidget.option(\"items\"), function getMenuItems(item) {\r\n return item.items ? [item].concat((0, _iterator.map)(item.items, getMenuItems)) : item\r\n })\r\n };\r\n _proto._stringifyItem = function(item) {\r\n var _this = this;\r\n return JSON.stringify(item, function(key, value) {\r\n if (\"template\" === key) {\r\n return _this._getTemplateString(value)\r\n }\r\n return value\r\n })\r\n };\r\n _proto._getTemplateString = function(template) {\r\n var result;\r\n if (\"object\" === _typeof(template)) {\r\n result = (0, _renderer.default)(template).text()\r\n } else {\r\n result = template.toString()\r\n }\r\n return result\r\n };\r\n return MenuBaseEditStrategy\r\n}(_uiCollection_widgetEditStrategy.default);\r\nvar _default = MenuBaseEditStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice-simple');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = global[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = global.Array;\nvar RangeError = global.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = arraySlice(bytes, start, start + count);\n return isLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: fill(Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, DataViewPrototype);\n anInstance(buffer, ArrayBufferPrototype);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toIntegerOrInfinity(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n DataViewPrototype = $DataView[PROTOTYPE];\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll(DataViewPrototype, {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n return new NativeArrayBuffer(toIndex(length));\n };\n\n $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf(DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll(DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","/**\r\n * DevExtreme (exporter/pdf_creator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getData = getData;\r\nvar _version = _interopRequireDefault(require(\"../core/version\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _image_creator = require(\"./image_creator\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _extend = require(\"../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar mainPageTemplate = \"%PDF-1.3\\r\\n2 0 obj\\r\\n<>>>\\r\\nendobj\\r\\n4 0 obj\\r\\n<>\\r\\nendobj\\r\\n7 0 obj\\r\\n<>\\r\\nendobj\\r\\n1 0 obj\\r\\n<>\\r\\nendobj\\r\\n\";\r\nvar contentTemplate = \"3 0 obj\\r\\n<>stream\\r\\n0.20 w\\n0 G\\nq _width_ 0 0 _height_ 0.00 0.00 cm /I0 Do Q\\r\\nendstream\\r\\nendobj\\r\\n\";\r\nvar infoTemplate = \"6 0 obj\\r\\n<>\\r\\nendobj\\r\\n\";\r\nvar imageStartTemplate = \"5 0 obj\\r\\n<>stream\\r\\n\";\r\nvar imageEndTemplate = \"\\r\\nendstream\\r\\nendobj\\r\\n\";\r\nvar trailerTemplate = \"trailer\\r\\n<<\\r\\n/Size 8\\r\\n/Root 7 0 R\\r\\n/Info 6 0 R\\r\\n>>\\r\\nstartxref\\r\\n_length_\\r\\n%%EOF\";\r\nvar xrefTemplate = \"xref\\r\\n0 8\\r\\n0000000000 65535 f\\r\\n0000000241 00000 n\\r\\n0000000010 00000 n\\r\\n_main_ 00000 n\\r\\n0000000089 00000 n\\r\\n_image_ 00000 n\\r\\n_info_ 00000 n\\r\\n0000000143 00000 n\\r\\n\";\r\nvar pad = function pad(str, len) {\r\n return str.length < len ? pad(\"0\" + str, len) : str\r\n};\r\nvar composePdfString = function(imageString, options, curDate) {\r\n var margin = 2 * (options.margin || 0);\r\n var width = options.width + margin;\r\n var height = options.height + margin;\r\n var widthPt = (.75 * width).toFixed(2);\r\n var heightPt = (.75 * height).toFixed(2);\r\n var mainPage = mainPageTemplate.replace(\"_width_\", widthPt).replace(\"_height_\", heightPt);\r\n var content = contentTemplate.replace(\"_width_\", widthPt).replace(\"_height_\", heightPt);\r\n var info = infoTemplate.replace(\"_date_\", curDate).replace(\"_version_\", _version.default);\r\n var image = imageStartTemplate.replace(\"_width_\", width).replace(\"_height_\", height).replace(\"_length_\", imageString.length) + imageString + imageEndTemplate;\r\n var xref = getXref(mainPage.length, content.length, info.length);\r\n var mainContent = mainPage + content + info + image;\r\n var trailer = trailerTemplate.replace(\"_length_\", mainContent.length);\r\n return mainContent + xref + trailer\r\n};\r\n\r\nfunction getXref(mainPageLength, contentLength, infoLength) {\r\n return xrefTemplate.replace(\"_main_\", pad(mainPageLength + \"\", 10)).replace(\"_info_\", pad(mainPageLength + contentLength + \"\", 10)).replace(\"_image_\", pad(mainPageLength + contentLength + infoLength + \"\", 10))\r\n}\r\nvar getCurDate = function() {\r\n return new Date\r\n};\r\nvar getBlob = function(binaryData) {\r\n var i = 0;\r\n var dataArray = new Uint8Array(binaryData.length);\r\n for (; i < binaryData.length; i++) {\r\n dataArray[i] = binaryData.charCodeAt(i)\r\n }\r\n return new window.Blob([dataArray.buffer], {\r\n type: \"application/pdf\"\r\n })\r\n};\r\nvar getBase64 = function(binaryData) {\r\n return window.btoa(binaryData)\r\n};\r\n\r\nfunction getData(data, options) {\r\n return _image_creator.imageCreator.getImageData(data, (0, _extend.extend)({}, options, {\r\n format: \"JPEG\"\r\n })).then(function(imageString) {\r\n var binaryData = composePdfString(imageString, options, getCurDate());\r\n var pdfData = (0, _type.isFunction)(window.Blob) ? getBlob(binaryData) : getBase64(binaryData);\r\n return pdfData\r\n })\r\n}\r\n","/**\r\n * DevExtreme (ui/shared/accessibility.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.subscribeVisibilityChange = subscribeVisibilityChange;\r\nexports.unsubscribeVisibilityChange = unsubscribeVisibilityChange;\r\nexports.hiddenFocus = hiddenFocus;\r\nexports.registerKeyboardAction = registerKeyboardAction;\r\nexports.restoreFocus = restoreFocus;\r\nexports.selectView = selectView;\r\nexports.setTabIndex = setTabIndex;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _common = require(\"../../core/utils/common\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nvar FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row-focused\";\r\nvar GRID_ROW_SELECTOR = \".dx-datagrid-rowsview .dx-row\";\r\nvar GRID_CELL_SELECTOR = \"\".concat(GRID_ROW_SELECTOR, \" > td\");\r\nvar TREELIST_ROW_SELECTOR = \".dx-treelist-rowsview .dx-row\";\r\nvar TREELIST_CELL_SELECTOR = \"\".concat(TREELIST_ROW_SELECTOR, \" > td\");\r\nvar viewItemSelectorMap = {\r\n groupPanel: [\".dx-datagrid-group-panel .dx-group-panel-item[tabindex]\"],\r\n columnHeaders: [\".dx-datagrid-headers .dx-header-row > td.dx-datagrid-action\", \".dx-treelist-headers .dx-header-row > td.dx-treelist-action\"],\r\n filterRow: [\".dx-datagrid-headers .dx-datagrid-filter-row .dx-editor-cell .dx-texteditor-input\", \".dx-treelist-headers .dx-treelist-filter-row .dx-editor-cell .dx-texteditor-input\"],\r\n rowsView: [\"\".concat(FOCUSED_ROW_SELECTOR), \"\".concat(GRID_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR), \"\".concat(TREELIST_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR)],\r\n footer: [\".dx-datagrid-total-footer .dx-datagrid-summary-item\", \".dx-treelist-total-footer .dx-treelist-summary-item\"],\r\n filterPanel: [\".dx-datagrid-filter-panel .dx-icon-filter\", \".dx-treelist-filter-panel .dx-icon-filter\"],\r\n pager: [\".dx-datagrid-pager [tabindex]\", \".dx-treelist-pager [tabindex]\"]\r\n};\r\nvar isMouseDown = false;\r\nvar isHiddenFocusing = false;\r\nvar focusedElementInfo = null;\r\n\r\nfunction processKeyDown(viewName, instance, event, action, $mainElement, executeKeyDown) {\r\n var isHandled = fireKeyDownEvent(instance, event.originalEvent, executeKeyDown);\r\n if (isHandled) {\r\n return\r\n }\r\n var keyName = (0, _index.normalizeKeyName)(event);\r\n if (\"enter\" === keyName || \"space\" === keyName) {\r\n saveFocusedElementInfo(event.target, instance);\r\n action && action({\r\n event: event\r\n })\r\n } else {\r\n if (\"tab\" === keyName) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n } else {\r\n selectView(viewName, instance, event)\r\n }\r\n }\r\n}\r\n\r\nfunction saveFocusedElementInfo(target, instance) {\r\n var $target = (0, _renderer.default)(target);\r\n var ariaLabel = $target.attr(\"aria-label\");\r\n var $activeElements = getActiveAccessibleElements(ariaLabel, instance.element());\r\n var targetIndex = $activeElements.index($target);\r\n focusedElementInfo = (0, _extend.extend)({}, {\r\n ariaLabel: ariaLabel,\r\n index: targetIndex\r\n }, {\r\n viewInstance: instance\r\n })\r\n}\r\n\r\nfunction getActiveAccessibleElements(ariaLabel, viewElement) {\r\n var $viewElement = (0, _renderer.default)(viewElement);\r\n var $activeElements;\r\n if (ariaLabel) {\r\n $activeElements = $viewElement.find('[aria-label=\"'.concat(ariaLabel, '\"][tabindex]'))\r\n } else {\r\n $activeElements = $viewElement.find(\"[tabindex]\")\r\n }\r\n return $activeElements\r\n}\r\n\r\nfunction findFocusedViewElement(viewSelectors) {\r\n for (var index in viewSelectors) {\r\n var selector = viewSelectors[index];\r\n var $focusViewElement = (0, _renderer.default)(selector).first();\r\n if ($focusViewElement.length) {\r\n return $focusViewElement\r\n }\r\n }\r\n}\r\n\r\nfunction fireKeyDownEvent(instance, event, executeAction) {\r\n var args = {\r\n event: event,\r\n handled: false\r\n };\r\n if (executeAction) {\r\n executeAction(args)\r\n } else {\r\n instance._createActionByOption(\"onKeyDown\")(args)\r\n }\r\n return args.handled\r\n}\r\n\r\nfunction onDocumentVisibilityChange() {\r\n isHiddenFocusing = \"visible\" === _dom_adapter.default.getDocument().visibilityState\r\n}\r\n\r\nfunction subscribeVisibilityChange() {\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\n\r\nfunction unsubscribeVisibilityChange() {\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\n\r\nfunction hiddenFocus(element) {\r\n isHiddenFocusing = true;\r\n element.focus();\r\n isHiddenFocusing = false\r\n}\r\n\r\nfunction registerKeyboardAction(viewName, instance, $element, selector, action, executeKeyDown) {\r\n if (instance.option(\"useLegacyKeyboardNavigation\")) {\r\n return _common.noop\r\n }\r\n var $mainElement = (0, _renderer.default)(instance.element());\r\n var keyDownHandler = function(e) {\r\n return processKeyDown(viewName, instance, e, action, $mainElement, executeKeyDown)\r\n };\r\n var mouseDownHandler = function() {\r\n isMouseDown = true;\r\n $mainElement.removeClass(FOCUS_STATE_CLASS)\r\n };\r\n var focusinHandler = function() {\r\n var needShowOverlay = !isMouseDown && !isHiddenFocusing;\r\n if (needShowOverlay) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n }\r\n isMouseDown = false\r\n };\r\n _events_engine.default.on($element, \"keydown\", selector, keyDownHandler);\r\n _events_engine.default.on($element, \"mousedown\", selector, mouseDownHandler);\r\n _events_engine.default.on($element, \"focusin\", selector, focusinHandler);\r\n return function() {\r\n _events_engine.default.off($element, \"keydown\", selector, keyDownHandler);\r\n _events_engine.default.off($element, \"mousedown\", selector, mouseDownHandler);\r\n _events_engine.default.off($element, \"focusin\", selector, focusinHandler)\r\n }\r\n}\r\n\r\nfunction restoreFocus(instance) {\r\n if (!instance.option(\"useLegacyKeyboardNavigation\") && focusedElementInfo) {\r\n var viewInstance = focusedElementInfo.viewInstance;\r\n if (viewInstance) {\r\n var $activeElements = getActiveAccessibleElements(focusedElementInfo.ariaLabel, viewInstance.element());\r\n var $targetElement = $activeElements.eq(focusedElementInfo.index);\r\n focusedElementInfo = null;\r\n _events_engine.default.trigger($targetElement, \"focus\")\r\n }\r\n }\r\n}\r\n\r\nfunction selectView(viewName, instance, event) {\r\n var keyName = (0, _index.normalizeKeyName)(event);\r\n if (event.ctrlKey && (\"upArrow\" === keyName || \"downArrow\" === keyName)) {\r\n var viewNames = Object.keys(viewItemSelectorMap);\r\n var viewItemIndex = viewNames.indexOf(viewName);\r\n while (viewItemIndex >= 0 && viewItemIndex < viewNames.length) {\r\n viewItemIndex = \"upArrow\" === keyName ? --viewItemIndex : ++viewItemIndex;\r\n var _viewName = viewNames[viewItemIndex];\r\n var viewSelectors = viewItemSelectorMap[_viewName];\r\n var $focusViewElement = findFocusedViewElement(viewSelectors);\r\n if ($focusViewElement && $focusViewElement.length) {\r\n $focusViewElement.attr(\"tabindex\", instance.option(\"tabindex\") || 0);\r\n _events_engine.default.trigger($focusViewElement, \"focus\");\r\n $focusViewElement.removeClass(FOCUS_DISABLED_CLASS);\r\n break\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction setTabIndex(instance, $element) {\r\n if (!instance.option(\"useLegacyKeyboardnavigation\")) {\r\n $element.attr(\"tabindex\", instance.option(\"tabindex\") || 0)\r\n }\r\n}\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.dialog.delete_item.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _scroll_view = _interopRequireDefault(require(\"../scroll_view\"));\r\nvar _uiFile_managerDialog = _interopRequireDefault(require(\"./ui.file_manager.dialog.js\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_DIALOG_DELETE_ITEM = \"dx-filemanager-dialog-delete-item\";\r\nvar FILE_MANAGER_DIALOG_DELETE_ITEM_POPUP = \"dx-filemanager-dialog-delete-item-popup\";\r\nvar FileManagerDeleteItemDialog = function(_FileManagerDialogBas) {\r\n _inheritsLoose(FileManagerDeleteItemDialog, _FileManagerDialogBas);\r\n\r\n function FileManagerDeleteItemDialog() {\r\n return _FileManagerDialogBas.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerDeleteItemDialog.prototype;\r\n _proto.show = function(_ref) {\r\n var itemName = _ref.itemName,\r\n itemCount = _ref.itemCount;\r\n var text = 1 === itemCount ? _message.default.format(\"dxFileManager-dialogDeleteItemSingleItemConfirmation\", itemName) : _message.default.format(\"dxFileManager-dialogDeleteItemMultipleItemsConfirmation\", itemCount);\r\n if (this._$text) {\r\n this._$text.text(text)\r\n } else {\r\n this._initialText = text\r\n }\r\n _FileManagerDialogBas.prototype.show.call(this)\r\n };\r\n _proto._getDialogOptions = function() {\r\n return (0, _extend.extend)(_FileManagerDialogBas.prototype._getDialogOptions.call(this), {\r\n title: _message.default.format(\"dxFileManager-dialogDeleteItemTitle\"),\r\n buttonText: _message.default.format(\"dxFileManager-dialogDeleteItemButtonText\"),\r\n contentCssClass: FILE_MANAGER_DIALOG_DELETE_ITEM,\r\n popupCssClass: FILE_MANAGER_DIALOG_DELETE_ITEM_POPUP,\r\n height: \"auto\",\r\n maxHeight: \"80vh\"\r\n })\r\n };\r\n _proto._createContentTemplate = function(element) {\r\n _FileManagerDialogBas.prototype._createContentTemplate.call(this, element);\r\n this._$text = (0, _renderer.default)(\"
    \").text(this._initialText).appendTo(this._$contentElement);\r\n this._createComponent(this._$contentElement, _scroll_view.default, {\r\n width: \"100%\",\r\n height: \"100%\"\r\n })\r\n };\r\n _proto._getDialogResult = function() {\r\n return {}\r\n };\r\n return FileManagerDeleteItemDialog\r\n}(_uiFile_managerDialog.default);\r\nvar _default = FileManagerDeleteItemDialog;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.error_handling.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar ERROR_MESSAGE_CLASS = \"dx-error-message\";\r\nvar ERROR_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar ACTION_CLASS = \"action\";\r\nvar ErrorHandlingController = _uiGrid_core.default.ViewController.inherit({\r\n init: function() {\r\n var that = this;\r\n that._columnHeadersView = that.getView(\"columnHeadersView\");\r\n that._rowsView = that.getView(\"rowsView\")\r\n },\r\n _createErrorRow: function(error, $tableElements) {\r\n var that = this;\r\n var $errorRow;\r\n var $closeButton;\r\n var $errorMessage = this._renderErrorMessage(error);\r\n if ($tableElements) {\r\n $errorRow = (0, _renderer.default)(\"
\").addClass(ERROR_ROW_CLASS);\r\n $closeButton = (0, _renderer.default)(\"
\").addClass(ERROR_CLOSEBUTTON_CLASS).addClass(that.addWidgetPrefix(ACTION_CLASS));\r\n _events_engine.default.on($closeButton, _click.name, that.createAction(function(args) {\r\n var e = args.event;\r\n var $errorRow;\r\n var errorRowIndex = (0, _renderer.default)(e.currentTarget).closest(\".\" + ERROR_ROW_CLASS).index();\r\n e.stopPropagation();\r\n (0, _iterator.each)($tableElements, function(_, tableElement) {\r\n $errorRow = (0, _renderer.default)(tableElement).children(\"tbody\").children(\"tr\").eq(errorRowIndex);\r\n that.removeErrorRow($errorRow)\r\n });\r\n that.getController(\"resizing\") && that.getController(\"resizing\").fireContentReadyAction()\r\n }));\r\n (0, _renderer.default)(\"
\" + freeSpaceCellsHtml + \"\"\r\n };\r\n for (var i = 0; i < columns.length; i++) {\r\n var classes = that._getCellClasses(columns[i]);\r\n var classString = classes.length ? \" class='\" + classes.join(\" \") + \"'\" : \"\";\r\n freeSpaceCellsHtml += \"\"\r\n }\r\n while (height > PIXELS_LIMIT) {\r\n html += createFreeSpaceRowHtml(PIXELS_LIMIT);\r\n height -= PIXELS_LIMIT\r\n }\r\n html += createFreeSpaceRowHtml(height);\r\n container.addClass(that.addWidgetPrefix(TABLE_CLASS));\r\n container.html(html)\r\n },\r\n _getCellClasses: function(column) {\r\n var classes = [];\r\n var cssClass = column.cssClass;\r\n var isExpandColumn = \"expand\" === column.command;\r\n cssClass && classes.push(cssClass);\r\n isExpandColumn && classes.push(this.addWidgetPrefix(GROUP_SPACE_CLASS));\r\n return classes\r\n },\r\n _findBottomLoadPanel: function($contentElement) {\r\n var $element = $contentElement || this.element();\r\n var $bottomLoadPanel = $element && $element.find(\".\" + this.addWidgetPrefix(BOTTOM_LOAD_PANEL_CLASS));\r\n if ($bottomLoadPanel && $bottomLoadPanel.length) {\r\n return $bottomLoadPanel\r\n }\r\n },\r\n _updateBottomLoading: function() {\r\n var that = this;\r\n var scrollingMode = that.option(\"scrolling.mode\");\r\n var virtualMode = scrollingMode === SCROLLING_MODE_VIRTUAL;\r\n var appendMode = scrollingMode === SCROLLING_MODE_INFINITE;\r\n var showBottomLoading = !that._dataController.hasKnownLastPage() && that._dataController.isLoaded() && (virtualMode || appendMode);\r\n var $contentElement = that._findContentElement();\r\n var bottomLoadPanelElement = that._findBottomLoadPanel($contentElement);\r\n if (showBottomLoading) {\r\n if (!bottomLoadPanelElement) {\r\n (0, _renderer.default)(\"
\").addClass(that.addWidgetPrefix(BOTTOM_LOAD_PANEL_CLASS)).append(that._createComponent((0, _renderer.default)(\"
\"), _load_indicator.default).$element()).appendTo($contentElement)\r\n }\r\n } else {\r\n if (bottomLoadPanelElement) {\r\n bottomLoadPanelElement.remove()\r\n }\r\n }\r\n },\r\n _handleScroll: function(e) {\r\n var that = this;\r\n if (that._hasHeight && that._rowHeight) {\r\n that._dataController.setViewportPosition(e.scrollOffset.top)\r\n }\r\n that.callBase.apply(that, arguments)\r\n },\r\n _needUpdateRowHeight: function(itemsCount) {\r\n var that = this;\r\n return that.callBase.apply(that, arguments) || itemsCount > 0 && that.option(\"scrolling.mode\") === SCROLLING_MODE_INFINITE && that.option(\"scrolling.rowRenderingMode\") !== SCROLLING_MODE_VIRTUAL\r\n },\r\n _updateRowHeight: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n if (that._rowHeight) {\r\n that._updateContentPosition();\r\n var viewportHeight = that._hasHeight ? that.element().outerHeight() : (0, _renderer.default)((0, _window.getWindow)()).outerHeight();\r\n that._dataController.viewportSize(Math.ceil(viewportHeight / that._rowHeight))\r\n }\r\n },\r\n updateFreeSpaceRowHeight: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n if (result) {\r\n this._updateContentPosition()\r\n }\r\n return result\r\n },\r\n setLoading: function(isLoading, messageText) {\r\n var that = this;\r\n var callBase = that.callBase;\r\n var dataController = that._dataController;\r\n var hasBottomLoadPanel = dataController.pageIndex() > 0 && dataController.isLoaded() && !!that._findBottomLoadPanel();\r\n if (hasBottomLoadPanel) {\r\n isLoading = false\r\n }\r\n callBase.call(that, isLoading, messageText)\r\n },\r\n _resizeCore: function() {\r\n var that = this;\r\n var $element = that.element();\r\n that.callBase();\r\n if (that.component.$element() && !that._windowScroll && $element.closest((0, _window.getWindow)().document).length) {\r\n that._windowScroll = (0, _uiGrid_core.subscribeToExternalScrollers)($element, function(scrollPos) {\r\n if (!that._hasHeight && that._rowHeight) {\r\n that._dataController.setViewportPosition(scrollPos)\r\n }\r\n }, that.component.$element());\r\n that.on(\"disposing\", function() {\r\n that._windowScroll.dispose()\r\n })\r\n }\r\n that.loadIfNeed()\r\n },\r\n loadIfNeed: function() {\r\n var dataController = this._dataController;\r\n if (dataController && dataController.loadIfNeed) {\r\n dataController.loadIfNeed()\r\n }\r\n },\r\n setColumnWidths: function(widths) {\r\n var scrollable = this.getScrollable();\r\n var $content;\r\n this.callBase.apply(this, arguments);\r\n if (\"virtual\" === this.option(\"scrolling.mode\")) {\r\n $content = scrollable ? scrollable.$content() : this.element();\r\n this.callBase(widths, $content.children(\".\" + this.addWidgetPrefix(CONTENT_CLASS)).children(\":not(.\" + this.addWidgetPrefix(TABLE_CONTENT_CLASS) + \")\"))\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._scrollTimeoutID);\r\n this.callBase()\r\n }\r\n }\r\n}();\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n scrolling: {\r\n timeout: 300,\r\n updateTimeout: 300,\r\n minTimeout: 0,\r\n renderingThreshold: 100,\r\n removeInvisiblePages: true,\r\n rowPageSize: 5,\r\n mode: \"standard\",\r\n preloadEnabled: false,\r\n rowRenderingMode: \"standard\",\r\n loadTwoPagesOnStart: false\r\n }\r\n }\r\n },\r\n extenders: {\r\n dataSourceAdapter: VirtualScrollingDataSourceAdapterExtender,\r\n controllers: {\r\n data: function() {\r\n var members = {\r\n _refreshDataSource: function() {\r\n var baseResult = this.callBase.apply(this, arguments) || (new _deferred.Deferred).resolve().promise();\r\n baseResult.done(this.initVirtualRows.bind(this));\r\n return baseResult\r\n },\r\n getRowPageSize: function() {\r\n var rowPageSize = this.option(\"scrolling.rowPageSize\");\r\n var pageSize = this.pageSize();\r\n return pageSize && pageSize < rowPageSize ? pageSize : rowPageSize\r\n },\r\n reload: function() {\r\n var that = this;\r\n var rowsScrollController = that._rowsScrollController || that._dataSource;\r\n var itemIndex = rowsScrollController && rowsScrollController.getItemIndexByPosition();\r\n var result = this.callBase.apply(this, arguments);\r\n return result && result.done(function() {\r\n if (isVirtualMode(that) || isVirtualRowRendering(that)) {\r\n var rowIndexOffset = that.getRowIndexOffset();\r\n var rowIndex = Math.floor(itemIndex) - rowIndexOffset;\r\n var component = that.component;\r\n var scrollable = component.getScrollable && component.getScrollable();\r\n var isSortingOperation = that.dataSource().operationTypes().sorting;\r\n if (scrollable && !that.option(\"legacyRendering\") && !isSortingOperation) {\r\n var rowElement = component.getRowElement(rowIndex);\r\n var $rowElement = rowElement && rowElement[0] && (0, _renderer.default)(rowElement[0]);\r\n var top = $rowElement && $rowElement.position().top;\r\n var allowedTopOffset = _browser.default.mozilla || _browser.default.msie ? 1 : 0;\r\n if (top > allowedTopOffset) {\r\n top = Math.round(top + $rowElement.outerHeight() * (itemIndex % 1));\r\n scrollable.scrollTo({\r\n y: top\r\n })\r\n }\r\n }\r\n }\r\n })\r\n },\r\n initVirtualRows: function() {\r\n var that = this;\r\n var virtualRowsRendering = isVirtualRowRendering(that);\r\n if (\"virtual\" !== that.option(\"scrolling.mode\") && true !== virtualRowsRendering || false === virtualRowsRendering || that.option(\"legacyRendering\") || !that.option(\"scrolling.rowPageSize\")) {\r\n that._visibleItems = null;\r\n that._rowsScrollController = null;\r\n return\r\n }\r\n var pageIndex = !isVirtualMode(this) && that.pageIndex() >= that.pageCount() ? that.pageCount() - 1 : that.pageIndex();\r\n that._rowPageIndex = Math.ceil(pageIndex * that.pageSize() / that.getRowPageSize());\r\n that._visibleItems = [];\r\n var isItemCountable = function(item) {\r\n return isItemCountableByDataSource(item, that._dataSource)\r\n };\r\n that._rowsScrollController = new _uiGrid_core.VirtualScrollController(that.component, {\r\n pageSize: function() {\r\n return that.getRowPageSize()\r\n },\r\n totalItemsCount: function() {\r\n return isVirtualMode(that) ? that.totalItemsCount() : that._items.filter(isItemCountable).length\r\n },\r\n hasKnownLastPage: function() {\r\n return true\r\n },\r\n pageIndex: function(index) {\r\n if (void 0 !== index) {\r\n that._rowPageIndex = index\r\n }\r\n return that._rowPageIndex\r\n },\r\n isLoading: function() {\r\n return that.isLoading()\r\n },\r\n pageCount: function pageCount() {\r\n var pageCount = Math.ceil(this.totalItemsCount() / this.pageSize());\r\n return pageCount ? pageCount : 1\r\n },\r\n load: function() {\r\n if (that._rowsScrollController.pageIndex() >= this.pageCount()) {\r\n that._rowPageIndex = this.pageCount() - 1;\r\n that._rowsScrollController.pageIndex(that._rowPageIndex)\r\n }\r\n if (!that._rowsScrollController._dataSource.items().length && this.totalItemsCount()) {\r\n return\r\n }\r\n that._rowsScrollController.handleDataChanged(function(change) {\r\n change = change || {};\r\n change.changeType = change.changeType || \"refresh\";\r\n change.items = change.items || that._visibleItems;\r\n that._visibleItems.forEach(function(item, index) {\r\n item.rowIndex = index\r\n });\r\n that._fireChanged(change)\r\n })\r\n },\r\n updateLoading: function() {},\r\n itemsCount: function() {\r\n return that._rowsScrollController._dataSource.items().filter(isItemCountable).length\r\n },\r\n correctCount: function(items, count, fromEnd) {\r\n return _correctCount(items, count, fromEnd, function(item, isNextAfterLast, fromEnd) {\r\n if (item.isNewRow) {\r\n return isNextAfterLast && !fromEnd\r\n }\r\n if (isNextAfterLast && fromEnd) {\r\n return !item.isNewRow\r\n }\r\n return isItemCountable(item)\r\n })\r\n },\r\n items: function(countableOnly) {\r\n var dataSource = that.dataSource();\r\n var virtualItemsCount = dataSource && dataSource.virtualItemsCount();\r\n var begin = virtualItemsCount ? virtualItemsCount.begin : 0;\r\n var rowPageSize = that.getRowPageSize();\r\n var skip = that._rowPageIndex * rowPageSize - begin;\r\n var take = rowPageSize;\r\n var result = that._items;\r\n if (skip < 0) {\r\n return []\r\n }\r\n if (skip) {\r\n skip = this.correctCount(result, skip);\r\n result = result.slice(skip)\r\n }\r\n if (take) {\r\n take = this.correctCount(result, take);\r\n result = result.slice(0, take)\r\n }\r\n return countableOnly ? result.filter(isItemCountable) : result\r\n },\r\n viewportItems: function(items) {\r\n if (items) {\r\n that._visibleItems = items\r\n }\r\n return that._visibleItems\r\n },\r\n onChanged: function() {},\r\n changingDuration: function(e) {\r\n var dataSource = that.dataSource();\r\n if (dataSource.isLoading()) {\r\n return LOAD_TIMEOUT\r\n }\r\n return (null === dataSource || void 0 === dataSource ? void 0 : dataSource._renderTime) || 0\r\n }\r\n }, true);\r\n that._rowsScrollController.positionChanged.add(function() {\r\n var _that$_dataSource;\r\n null === (_that$_dataSource = that._dataSource) || void 0 === _that$_dataSource ? void 0 : _that$_dataSource.setViewportItemIndex(that._rowsScrollController.getViewportItemIndex())\r\n });\r\n if (that.isLoaded()) {\r\n that._rowsScrollController.load()\r\n }\r\n },\r\n _updateItemsCore: function(change) {\r\n var _this3 = this;\r\n var delta = this.getRowIndexDelta();\r\n this.callBase.apply(this, arguments);\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n var visibleItems = this._visibleItems;\r\n var isRefresh = \"refresh\" === change.changeType || change.isLiveUpdate;\r\n if (\"append\" === change.changeType && change.items && !change.items.length) {\r\n return\r\n }\r\n if (isRefresh || \"append\" === change.changeType || \"prepend\" === change.changeType) {\r\n change.cancel = true;\r\n isRefresh && rowsScrollController.reset(true);\r\n rowsScrollController.load()\r\n } else {\r\n if (\"update\" === change.changeType) {\r\n change.rowIndices.forEach(function(rowIndex, index) {\r\n var changeType = change.changeTypes[index];\r\n var newItem = change.items[index];\r\n if (\"update\" === changeType) {\r\n visibleItems[rowIndex] = newItem\r\n } else {\r\n if (\"insert\" === changeType) {\r\n visibleItems.splice(rowIndex, 0, newItem)\r\n } else {\r\n if (\"remove\" === changeType) {\r\n visibleItems.splice(rowIndex, 1)\r\n }\r\n }\r\n }\r\n })\r\n } else {\r\n visibleItems.forEach(function(item, index) {\r\n visibleItems[index] = _this3._items[index + delta] || visibleItems[index]\r\n });\r\n change.items = visibleItems\r\n }\r\n visibleItems.forEach(function(item, index) {\r\n item.rowIndex = index\r\n })\r\n }\r\n }\r\n },\r\n _applyChange: function(change) {\r\n var that = this;\r\n var items = change.items;\r\n var changeType = change.changeType;\r\n var removeCount = change.removeCount;\r\n if (removeCount) {\r\n var fromEnd = \"prepend\" === changeType;\r\n removeCount = _correctCount(that._items, removeCount, fromEnd, function(item, isNextAfterLast) {\r\n return \"data\" === item.rowType && !item.isNewRow || \"group\" === item.rowType && (that._dataSource.isGroupItemCountable(item.data) || isNextAfterLast)\r\n });\r\n change.removeCount = removeCount\r\n }\r\n switch (changeType) {\r\n case \"prepend\":\r\n that._items.unshift.apply(that._items, items);\r\n if (removeCount) {\r\n that._items.splice(-removeCount)\r\n }\r\n break;\r\n case \"append\":\r\n that._items.push.apply(that._items, items);\r\n if (removeCount) {\r\n that._items.splice(0, removeCount)\r\n }\r\n break;\r\n default:\r\n that.callBase(change)\r\n }\r\n },\r\n items: function(allItems) {\r\n return allItems ? this._items : this._visibleItems || this._items\r\n },\r\n getRowIndexDelta: function() {\r\n var visibleItems = this._visibleItems;\r\n var delta = 0;\r\n if (visibleItems && visibleItems[0]) {\r\n delta = this._items.indexOf(visibleItems[0])\r\n }\r\n return delta < 0 ? 0 : delta\r\n },\r\n getRowIndexOffset: function(byLoadedRows) {\r\n var offset = 0;\r\n var dataSource = this.dataSource();\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController && !byLoadedRows) {\r\n offset = rowsScrollController.beginPageIndex() * rowsScrollController._dataSource.pageSize()\r\n } else {\r\n if (\"virtual\" === this.option(\"scrolling.mode\") && dataSource) {\r\n offset = dataSource.beginPageIndex() * dataSource.pageSize()\r\n }\r\n }\r\n return offset\r\n },\r\n viewportSize: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n rowsScrollController && rowsScrollController.viewportSize.apply(rowsScrollController, arguments);\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.viewportSize.apply(dataSource, arguments)\r\n },\r\n viewportItemSize: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n rowsScrollController && rowsScrollController.viewportItemSize.apply(rowsScrollController, arguments);\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.viewportItemSize.apply(dataSource, arguments)\r\n },\r\n setViewportPosition: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n if (rowsScrollController) {\r\n rowsScrollController.setViewportPosition.apply(rowsScrollController, arguments)\r\n } else {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.setViewportPosition.apply(dataSource, arguments)\r\n }\r\n },\r\n setContentSize: function(sizes) {\r\n var rowsScrollController = this._rowsScrollController;\r\n rowsScrollController && rowsScrollController.setContentSize(sizes);\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.setContentSize(sizes)\r\n },\r\n loadIfNeed: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n rowsScrollController && rowsScrollController.loadIfNeed();\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.loadIfNeed()\r\n },\r\n getItemSize: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getItemSize.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getItemSize.apply(dataSource, arguments)\r\n },\r\n getItemSizes: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getItemSizes.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getItemSizes.apply(dataSource, arguments)\r\n },\r\n getContentOffset: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getContentOffset.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getContentOffset.apply(dataSource, arguments)\r\n },\r\n refresh: function(options) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && options && options.load && isAppendMode(this)) {\r\n dataSource.resetCurrentTotalCount()\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n dispose: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n rowsScrollController && rowsScrollController.dispose();\r\n this.callBase.apply(this, arguments)\r\n }\r\n };\r\n _uiGrid_core2.default.proxyMethod(members, \"virtualItemsCount\");\r\n _uiGrid_core2.default.proxyMethod(members, \"getVirtualContentSize\");\r\n _uiGrid_core2.default.proxyMethod(members, \"setViewportItemIndex\");\r\n return members\r\n }(),\r\n resizing: {\r\n resize: function() {\r\n var that = this;\r\n var callBase = that.callBase;\r\n var result;\r\n if (!that.option(\"legacyRendering\") && (isVirtualMode(that) || isVirtualRowRendering(that))) {\r\n clearTimeout(that._resizeTimeout);\r\n var diff = new Date - that._lastTime;\r\n var updateTimeout = that.option(\"scrolling.updateTimeout\");\r\n if (that._lastTime && diff < updateTimeout) {\r\n result = new _deferred.Deferred;\r\n that._resizeTimeout = setTimeout(function() {\r\n callBase.apply(that).done(result.resolve).fail(result.reject);\r\n that._lastTime = new Date\r\n }, updateTimeout);\r\n that._lastTime = new Date\r\n } else {\r\n result = callBase.apply(that);\r\n if (that._dataController.isLoaded()) {\r\n that._lastTime = new Date\r\n }\r\n }\r\n } else {\r\n result = callBase.apply(that)\r\n }\r\n return result\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._resizeTimeout)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: VirtualScrollingRowsViewExtender\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.filter_builder.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _filter_builder = _interopRequireDefault(require(\"./../filter_builder\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _scroll_view = _interopRequireDefault(require(\"./../scroll_view\"));\r\nvar _popup = _interopRequireDefault(require(\"./../popup\"));\r\nvar _accessibility = require(\"../shared/accessibility\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar FilterBuilderView = _uiGrid_core.default.View.inherit({\r\n _renderCore: function() {\r\n this._updatePopupOptions()\r\n },\r\n _updatePopupOptions: function() {\r\n if (this.option(\"filterBuilderPopup.visible\")) {\r\n this._initPopup()\r\n } else {\r\n if (this._filterBuilderPopup) {\r\n this._filterBuilderPopup.hide()\r\n }\r\n }\r\n },\r\n _disposePopup: function() {\r\n if (this._filterBuilderPopup) {\r\n this._filterBuilderPopup.dispose();\r\n this._filterBuilderPopup = void 0\r\n }\r\n if (this._filterBuilder) {\r\n this._filterBuilder.dispose();\r\n this._filterBuilder = void 0\r\n }\r\n },\r\n _initPopup: function() {\r\n var that = this;\r\n that._disposePopup();\r\n that._filterBuilderPopup = that._createComponent(that.element(), _popup.default, (0, _extend.extend)({\r\n title: _message.default.format(\"dxDataGrid-filterBuilderPopupTitle\"),\r\n contentTemplate: function($contentElement) {\r\n return that._getPopupContentTemplate($contentElement)\r\n },\r\n onOptionChanged: function(args) {\r\n if (\"visible\" === args.name) {\r\n that.option(\"filterBuilderPopup.visible\", args.value)\r\n }\r\n },\r\n toolbarItems: that._getPopupToolbarItems()\r\n }, that.option(\"filterBuilderPopup\"), {\r\n onHidden: function(e) {\r\n (0, _accessibility.restoreFocus)(that);\r\n that._disposePopup()\r\n }\r\n }))\r\n },\r\n _getPopupContentTemplate: function(contentElement) {\r\n var $contentElement = (0, _renderer.default)(contentElement);\r\n var $filterBuilderContainer = (0, _renderer.default)(\"
\").appendTo((0, _renderer.default)(contentElement));\r\n this._filterBuilder = this._createComponent($filterBuilderContainer, _filter_builder.default, (0, _extend.extend)({\r\n value: this.option(\"filterValue\"),\r\n fields: this.getController(\"columns\").getFilteringColumns()\r\n }, this.option(\"filterBuilder\"), {\r\n customOperations: this.getController(\"filterSync\").getCustomFilterOperations()\r\n }));\r\n this._createComponent($contentElement, _scroll_view.default, {\r\n direction: \"both\"\r\n })\r\n },\r\n _getPopupToolbarItems: function() {\r\n var that = this;\r\n return [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: _message.default.format(\"OK\"),\r\n onClick: function(e) {\r\n var filter = that._filterBuilder.option(\"value\");\r\n that.option(\"filterValue\", filter);\r\n that._filterBuilderPopup.hide()\r\n }\r\n }\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: _message.default.format(\"Cancel\"),\r\n onClick: function(e) {\r\n that._filterBuilderPopup.hide()\r\n }\r\n }\r\n }]\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"filterBuilder\":\r\n case \"filterBuilderPopup\":\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 _default = {\r\n defaultOptions: function() {\r\n return {\r\n filterBuilder: {\r\n groupOperationDescriptions: {\r\n and: _message.default.format(\"dxFilterBuilder-and\"),\r\n or: _message.default.format(\"dxFilterBuilder-or\"),\r\n notAnd: _message.default.format(\"dxFilterBuilder-notAnd\"),\r\n notOr: _message.default.format(\"dxFilterBuilder-notOr\")\r\n },\r\n filterOperationDescriptions: {\r\n between: _message.default.format(\"dxFilterBuilder-filterOperationBetween\"),\r\n equal: _message.default.format(\"dxFilterBuilder-filterOperationEquals\"),\r\n notEqual: _message.default.format(\"dxFilterBuilder-filterOperationNotEquals\"),\r\n lessThan: _message.default.format(\"dxFilterBuilder-filterOperationLess\"),\r\n lessThanOrEqual: _message.default.format(\"dxFilterBuilder-filterOperationLessOrEquals\"),\r\n greaterThan: _message.default.format(\"dxFilterBuilder-filterOperationGreater\"),\r\n greaterThanOrEqual: _message.default.format(\"dxFilterBuilder-filterOperationGreaterOrEquals\"),\r\n startsWith: _message.default.format(\"dxFilterBuilder-filterOperationStartsWith\"),\r\n contains: _message.default.format(\"dxFilterBuilder-filterOperationContains\"),\r\n notContains: _message.default.format(\"dxFilterBuilder-filterOperationNotContains\"),\r\n endsWith: _message.default.format(\"dxFilterBuilder-filterOperationEndsWith\"),\r\n isBlank: _message.default.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: _message.default.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n }\r\n },\r\n filterBuilderPopup: {}\r\n }\r\n },\r\n views: {\r\n filterBuilderView: FilterBuilderView\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/image_creator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getData = getData;\r\nexports.testFormats = testFormats;\r\nexports.imageCreator = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _color = _interopRequireDefault(require(\"../color\"));\r\nvar _type = require(\"../core/utils/type\");\r\nvar _svg = require(\"../core/utils/svg\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../core/dom_adapter\"));\r\nvar _dom = require(\"../core/utils/dom\");\r\nvar _window = require(\"../core/utils/window\");\r\nvar _inflector = require(\"../core/utils/inflector\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar _math = Math;\r\nvar PI = _math.PI;\r\nvar _min = _math.min;\r\nvar _abs = _math.abs;\r\nvar _sqrt = _math.sqrt;\r\nvar _pow = _math.pow;\r\nvar _atan2 = _math.atan2;\r\nvar _cos = _math.cos;\r\nvar _sin = _math.sin;\r\nvar _number = Number;\r\nvar IMAGE_QUALITY = 1;\r\nvar TEXT_DECORATION_LINE_WIDTH_COEFF = .05;\r\nvar DEFAULT_FONT_SIZE = \"10px\";\r\nvar DEFAULT_FONT_FAMILY = \"sans-serif\";\r\nvar DEFAULT_TEXT_COLOR = \"#000\";\r\nvar parseAttributes;\r\n\r\nfunction createCanvas(width, height, margin) {\r\n var canvas = (0, _renderer.default)(\"\")[0];\r\n canvas.width = width + 2 * margin;\r\n canvas.height = height + 2 * margin;\r\n canvas.hidden = true;\r\n return canvas\r\n}\r\n\r\nfunction getStringFromCanvas(canvas, mimeType) {\r\n var dataURL = canvas.toDataURL(mimeType, IMAGE_QUALITY);\r\n var imageData = window.atob(dataURL.substring((\"data:\" + mimeType + \";base64,\").length));\r\n return imageData\r\n}\r\n\r\nfunction arcTo(x1, y1, x2, y2, radius, largeArcFlag, clockwise, context) {\r\n var cBx = (x1 + x2) / 2;\r\n var cBy = (y1 + y2) / 2;\r\n var aB = _atan2(y1 - y2, x1 - x2);\r\n var k = largeArcFlag ? 1 : -1;\r\n aB += 90 * (PI / 180) * (clockwise ? 1 : -1);\r\n var opSide = _sqrt(_pow(x2 - x1, 2) + _pow(y2 - y1, 2)) / 2;\r\n var adjSide = _sqrt(_abs(_pow(radius, 2) - _pow(opSide, 2)));\r\n var centerX = cBx + k * (adjSide * _cos(aB));\r\n var centerY = cBy + k * (adjSide * _sin(aB));\r\n var startAngle = _atan2(y1 - centerY, x1 - centerX);\r\n var endAngle = _atan2(y2 - centerY, x2 - centerX);\r\n context.arc(centerX, centerY, radius, startAngle, endAngle, !clockwise)\r\n}\r\n\r\nfunction getElementOptions(element, rootAppended) {\r\n var attr = parseAttributes(element.attributes || {});\r\n var options = (0, _extend.extend)({}, attr, {\r\n text: element.textContent.replace(/\\s+/g, \" \"),\r\n textAlign: \"middle\" === attr[\"text-anchor\"] ? \"center\" : attr[\"text-anchor\"]\r\n });\r\n var transform = attr.transform;\r\n var coords;\r\n if (transform) {\r\n coords = transform.match(/translate\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.translateX = _number(coords[0]);\r\n options.translateY = coords[1] ? _number(coords[1]) : 0\r\n }\r\n coords = transform.match(/rotate\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.rotationAngle = _number(coords[0]);\r\n options.rotationX = coords[1] && _number(coords[1]);\r\n options.rotationY = coords[2] && _number(coords[2])\r\n }\r\n coords = transform.match(/scale\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.scaleX = _number(coords[0]);\r\n if (coords.length > 1) {\r\n options.scaleY = _number(coords[1])\r\n } else {\r\n options.scaleY = options.scaleX\r\n }\r\n }\r\n }\r\n parseStyles(element, options, rootAppended);\r\n return options\r\n}\r\n\r\nfunction drawRect(context, options) {\r\n var x = options.x;\r\n var y = options.y;\r\n var width = options.width;\r\n var height = options.height;\r\n var cornerRadius = options.rx;\r\n if (!cornerRadius) {\r\n context.rect(x, y, width, height)\r\n } else {\r\n cornerRadius = _min(cornerRadius, width / 2, height / 2);\r\n context.save();\r\n context.translate(x, y);\r\n context.moveTo(width / 2, 0);\r\n context.arcTo(width, 0, width, height, cornerRadius);\r\n context.arcTo(width, height, 0, height, cornerRadius);\r\n context.arcTo(0, height, 0, 0, cornerRadius);\r\n context.arcTo(0, 0, cornerRadius, 0, cornerRadius);\r\n context.lineTo(width / 2, 0);\r\n context.restore()\r\n }\r\n}\r\n\r\nfunction drawImage(context, options, shared) {\r\n var d = new _deferred.Deferred;\r\n var image = new window.Image;\r\n image.onload = function() {\r\n context.save();\r\n context.globalAlpha = options.globalAlpha;\r\n transformElement(context, options);\r\n clipElement(context, options, shared);\r\n context.drawImage(image, options.x, options.y, options.width, options.height);\r\n context.restore();\r\n d.resolve()\r\n };\r\n image.onerror = function() {\r\n d.resolve()\r\n };\r\n image.setAttribute(\"crossOrigin\", \"anonymous\");\r\n image.src = options.href || options[\"xlink:href\"];\r\n return d\r\n}\r\n\r\nfunction drawPath(context, dAttr) {\r\n var dArray = dAttr.replace(/,/g, \" \").split(/([A-Z])/i).filter(function(item) {\r\n return \"\" !== item.trim()\r\n });\r\n var i = 0;\r\n var params;\r\n var prevParams;\r\n var prevParamsLen;\r\n do {\r\n params = (dArray[i + 1] || \"\").trim().split(\" \");\r\n switch (dArray[i]) {\r\n case \"M\":\r\n context.moveTo(_number(params[0]), _number(params[1]));\r\n i += 2;\r\n break;\r\n case \"L\":\r\n for (var j = 0; j < params.length / 2; j++) {\r\n context.lineTo(_number(params[2 * j]), _number(params[2 * j + 1]))\r\n }\r\n i += 2;\r\n break;\r\n case \"C\":\r\n context.bezierCurveTo(_number(params[0]), _number(params[1]), _number(params[2]), _number(params[3]), _number(params[4]), _number(params[5]));\r\n i += 2;\r\n break;\r\n case \"a\":\r\n prevParams = dArray[i - 1].trim().split(\" \");\r\n prevParamsLen = prevParams.length - 1;\r\n arcTo(_number(prevParams[prevParamsLen - 1]), _number(prevParams[prevParamsLen]), _number(prevParams[prevParamsLen - 1]) + _number(params[5]), _number(prevParams[prevParamsLen]) + _number(params[6]), _number(params[0]), _number(params[3]), _number(params[4]), context);\r\n i += 2;\r\n break;\r\n case \"A\":\r\n prevParams = dArray[i - 1].trim().split(\" \");\r\n prevParamsLen = prevParams.length - 1;\r\n arcTo(_number(prevParams[prevParamsLen - 1]), _number(prevParams[prevParamsLen]), _number(params[5]), _number(params[6]), _number(params[0]), _number(params[3]), _number(params[4]), context);\r\n i += 2;\r\n break;\r\n case \"Z\":\r\n context.closePath();\r\n i += 1;\r\n break;\r\n default:\r\n i++\r\n }\r\n } while (i < dArray.length)\r\n}\r\n\r\nfunction parseStyles(element, options, rootAppended) {\r\n var style = element.style || {};\r\n var field;\r\n for (field in style) {\r\n if (\"\" !== style[field]) {\r\n options[(0, _inflector.camelize)(field)] = style[field]\r\n }\r\n }\r\n if (rootAppended && _dom_adapter.default.isElementNode(element)) {\r\n style = window.getComputedStyle(element);\r\n [\"fill\", \"stroke\", \"stroke-width\", \"font-family\", \"font-size\", \"font-style\", \"font-weight\"].forEach(function(prop) {\r\n if (prop in style && \"\" !== style[prop]) {\r\n options[(0, _inflector.camelize)(prop)] = style[prop]\r\n }\r\n });\r\n [\"opacity\", \"fill-opacity\", \"stroke-opacity\"].forEach(function(prop) {\r\n if (prop in style && \"\" !== style[prop] && \"1\" !== style[prop]) {\r\n options[prop] = _number(style[prop])\r\n }\r\n })\r\n }\r\n options.textDecoration = options.textDecoration || options.textDecorationLine;\r\n options.globalAlpha = (0, _type.isDefined)(options.opacity) ? options.opacity : options.globalAlpha\r\n}\r\n\r\nfunction parseUrl(urlString) {\r\n var matches = urlString && urlString.match(/url\\(.*#(.*?)[\"']?\\)/i);\r\n return matches && matches[1]\r\n}\r\n\r\nfunction setFontStyle(context, options) {\r\n var fontParams = [];\r\n options.fontSize = options.fontSize || DEFAULT_FONT_SIZE;\r\n options.fontFamily || DEFAULT_FONT_FAMILY;\r\n options.fill = options.fill || DEFAULT_TEXT_COLOR;\r\n options.fontStyle && fontParams.push(options.fontStyle);\r\n options.fontWeight && fontParams.push(options.fontWeight);\r\n fontParams.push(options.fontSize);\r\n fontParams.push(options.fontFamily);\r\n context.font = fontParams.join(\" \");\r\n context.textAlign = options.textAlign;\r\n context.fillStyle = options.fill;\r\n context.globalAlpha = options.globalAlpha\r\n}\r\n\r\nfunction drawText(context, options, shared) {\r\n setFontStyle(context, options);\r\n applyFilter(context, options, shared);\r\n options.text && context.fillText(options.text, options.x || 0, options.y || 0);\r\n strokeElement(context, options, true);\r\n drawTextDecoration(context, options, shared)\r\n}\r\n\r\nfunction drawTextDecoration(context, options, shared) {\r\n if (!options.textDecoration || \"none\" === options.textDecoration) {\r\n return\r\n }\r\n var x = options.x;\r\n var textWidth = context.measureText(options.text).width;\r\n var textHeight = parseInt(options.fontSize, 10);\r\n var lineHeight = textHeight * TEXT_DECORATION_LINE_WIDTH_COEFF < 1 ? 1 : textHeight * TEXT_DECORATION_LINE_WIDTH_COEFF;\r\n var y = options.y;\r\n switch (options.textDecoration) {\r\n case \"line-through\":\r\n y -= textHeight / 3 + lineHeight / 2;\r\n break;\r\n case \"overline\":\r\n y -= textHeight - lineHeight;\r\n break;\r\n case \"underline\":\r\n y += lineHeight\r\n }\r\n context.rect(x, y, textWidth, lineHeight);\r\n fillElement(context, options, shared);\r\n strokeElement(context, options)\r\n}\r\n\r\nfunction aggregateOpacity(options) {\r\n options.strokeOpacity = void 0 !== options[\"stroke-opacity\"] ? options[\"stroke-opacity\"] : 1;\r\n options.fillOpacity = void 0 !== options[\"fill-opacity\"] ? options[\"fill-opacity\"] : 1;\r\n if (void 0 !== options.opacity) {\r\n options.strokeOpacity *= options.opacity;\r\n options.fillOpacity *= options.opacity\r\n }\r\n}\r\n\r\nfunction hasTspan(element) {\r\n var nodes = element.childNodes;\r\n for (var i = 0; i < nodes.length; i++) {\r\n if (\"tspan\" === nodes[i].tagName) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction drawTextElement(childNodes, context, options, shared) {\r\n var lines = [];\r\n var line;\r\n var offset = 0;\r\n for (var i = 0; i < childNodes.length; i++) {\r\n var element = childNodes[i];\r\n if (void 0 === element.tagName) {\r\n drawElement(element, context, options, shared)\r\n } else {\r\n if (\"tspan\" === element.tagName || \"text\" === element.tagName) {\r\n var elementOptions = getElementOptions(element, shared.rootAppended);\r\n var mergedOptions = (0, _extend.extend)({}, options, elementOptions);\r\n if (\"tspan\" === element.tagName && hasTspan(element)) {\r\n drawTextElement(element.childNodes, context, mergedOptions, shared);\r\n continue\r\n }\r\n mergedOptions.textAlign = \"start\";\r\n if (!line || void 0 !== elementOptions.x) {\r\n line = {\r\n elements: [],\r\n options: [],\r\n widths: [],\r\n offsets: []\r\n };\r\n lines.push(line)\r\n }\r\n if (void 0 !== elementOptions.y) {\r\n offset = 0\r\n }\r\n if (void 0 !== elementOptions.dy) {\r\n offset += parseFloat(elementOptions.dy)\r\n }\r\n line.elements.push(element);\r\n line.options.push(mergedOptions);\r\n line.offsets.push(offset);\r\n setFontStyle(context, mergedOptions);\r\n line.widths.push(context.measureText(mergedOptions.text).width)\r\n }\r\n }\r\n }\r\n lines.forEach(function(line) {\r\n var commonWidth = line.widths.reduce(function(commonWidth, width) {\r\n return commonWidth + width\r\n }, 0);\r\n var xDiff = 0;\r\n var currentOffset = 0;\r\n if (\"center\" === options.textAlign) {\r\n xDiff = commonWidth / 2\r\n }\r\n if (\"end\" === options.textAlign) {\r\n xDiff = commonWidth\r\n }\r\n line.options.forEach(function(o, index) {\r\n var width = line.widths[index];\r\n o.x = o.x - xDiff + currentOffset;\r\n o.y += line.offsets[index];\r\n currentOffset += width\r\n });\r\n line.elements.forEach(function(element, index) {\r\n drawTextElement(element.childNodes, context, line.options[index], shared)\r\n })\r\n })\r\n}\r\n\r\nfunction drawElement(element, context, parentOptions, shared) {\r\n var tagName = element.tagName;\r\n var isText = \"text\" === tagName || \"tspan\" === tagName || void 0 === tagName;\r\n var isImage = \"image\" === tagName;\r\n var options = (0, _extend.extend)({}, parentOptions, getElementOptions(element, shared.rootAppended));\r\n if (\"hidden\" === options.visibility || options[\"hidden-for-export\"]) {\r\n return\r\n }\r\n context.save();\r\n !isImage && transformElement(context, options);\r\n clipElement(context, options, shared);\r\n aggregateOpacity(options);\r\n var promise;\r\n context.beginPath();\r\n switch (element.tagName) {\r\n case void 0:\r\n drawText(context, options, shared);\r\n break;\r\n case \"text\":\r\n case \"tspan\":\r\n drawTextElement(element.childNodes, context, options, shared);\r\n break;\r\n case \"image\":\r\n promise = drawImage(context, options, shared);\r\n break;\r\n case \"path\":\r\n drawPath(context, options.d);\r\n break;\r\n case \"rect\":\r\n drawRect(context, options);\r\n context.closePath();\r\n break;\r\n case \"circle\":\r\n context.arc(options.cx, options.cy, options.r, 0, 2 * PI, 1)\r\n }\r\n if (!isText) {\r\n applyFilter(context, options, shared);\r\n fillElement(context, options, shared);\r\n strokeElement(context, options)\r\n }\r\n applyGradient(context, options, shared, element);\r\n context.restore();\r\n return promise\r\n}\r\n\r\nfunction applyGradient(context, options, _ref, element) {\r\n var gradients = _ref.gradients;\r\n if (0 === gradients.length) {\r\n return\r\n }\r\n var id = parseUrl(options.fill);\r\n if (id && gradients[id]) {\r\n var box = element.getBBox();\r\n var gradient = context.createLinearGradient(box.x, 0, box.x + box.width, 0);\r\n gradients[id].forEach(function(opt) {\r\n var offset = parseInt(opt.offset.replace(/%/, \"\"));\r\n gradient.addColorStop(offset / 100, opt.stopColor)\r\n });\r\n context.globalAlpha = options.opacity;\r\n context.fillStyle = gradient;\r\n context.fill()\r\n }\r\n}\r\n\r\nfunction applyFilter(context, options, shared) {\r\n var filterOptions;\r\n var id = parseUrl(options.filter);\r\n if (id) {\r\n filterOptions = shared.filters[id];\r\n if (!filterOptions) {\r\n filterOptions = {\r\n offsetX: 0,\r\n offsetY: 0,\r\n blur: 0,\r\n color: \"#000\"\r\n }\r\n }\r\n context.shadowOffsetX = filterOptions.offsetX;\r\n context.shadowOffsetY = filterOptions.offsetY;\r\n context.shadowColor = filterOptions.color;\r\n context.shadowBlur = filterOptions.blur\r\n }\r\n}\r\n\r\nfunction transformElement(context, options) {\r\n context.translate(options.translateX || 0, options.translateY || 0);\r\n options.translateX = void 0;\r\n options.translateY = void 0;\r\n if (options.rotationAngle) {\r\n context.translate(options.rotationX || 0, options.rotationY || 0);\r\n context.rotate(options.rotationAngle * PI / 180);\r\n context.translate(-(options.rotationX || 0), -(options.rotationY || 0));\r\n options.rotationAngle = void 0;\r\n options.rotationX = void 0;\r\n options.rotationY = void 0\r\n }\r\n if (isFinite(options.scaleX)) {\r\n context.scale(options.scaleX, options.scaleY);\r\n options.scaleX = void 0;\r\n options.scaleY = void 0\r\n }\r\n}\r\n\r\nfunction clipElement(context, options, shared) {\r\n if (options[\"clip-path\"]) {\r\n drawElement(shared.clipPaths[parseUrl(options[\"clip-path\"])], context, {}, shared);\r\n context.clip();\r\n options[\"clip-path\"] = void 0\r\n }\r\n}\r\n\r\nfunction hex2rgba(hexColor, alpha) {\r\n var color = new _color.default(hexColor);\r\n return \"rgba(\" + color.r + \",\" + color.g + \",\" + color.b + \",\" + alpha + \")\"\r\n}\r\n\r\nfunction createGradient(element) {\r\n var options = [];\r\n (0, _iterator.each)(element.childNodes, function(_, _ref2) {\r\n var attributes = _ref2.attributes;\r\n options.push({\r\n offset: attributes.offset.value,\r\n stopColor: attributes[\"stop-color\"].value\r\n })\r\n });\r\n return options\r\n}\r\n\r\nfunction createFilter(element) {\r\n var color;\r\n var opacity;\r\n var filterOptions = {};\r\n (0, _iterator.each)(element.childNodes, function(_, node) {\r\n var attr = node.attributes;\r\n if (!attr.result) {\r\n return\r\n }\r\n switch (attr.result.value) {\r\n case \"gaussianBlurResult\":\r\n filterOptions.blur = _number(attr.stdDeviation.value);\r\n break;\r\n case \"offsetResult\":\r\n filterOptions.offsetX = _number(attr.dx.value);\r\n filterOptions.offsetY = _number(attr.dy.value);\r\n break;\r\n case \"floodResult\":\r\n color = attr[\"flood-color\"] ? attr[\"flood-color\"].value : \"#000\";\r\n opacity = attr[\"flood-opacity\"] ? attr[\"flood-opacity\"].value : 1;\r\n filterOptions.color = hex2rgba(color, opacity)\r\n }\r\n });\r\n return filterOptions\r\n}\r\n\r\nfunction asyncEach(array, callback) {\r\n var d = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new _deferred.Deferred;\r\n var i = 0;\r\n for (; i < array.length; i++) {\r\n var result = callback(array[i]);\r\n if ((0, _type.isPromise)(result)) {\r\n result.then(function() {\r\n asyncEach(Array.prototype.slice.call(array, i + 1), callback, d)\r\n });\r\n break\r\n }\r\n }\r\n if (i === array.length) {\r\n d.resolve()\r\n }\r\n return d\r\n}\r\n\r\nfunction drawCanvasElements(elements, context, parentOptions, shared) {\r\n return asyncEach(elements, function(element) {\r\n switch (element.tagName && element.tagName.toLowerCase()) {\r\n case \"g\":\r\n case \"svg\":\r\n var options = (0, _extend.extend)({}, parentOptions, getElementOptions(element, shared.rootAppended));\r\n context.save();\r\n transformElement(context, options);\r\n clipElement(context, options, shared);\r\n var onDone = function() {\r\n context.restore()\r\n };\r\n var d = drawCanvasElements(element.childNodes, context, options, shared);\r\n if ((0, _type.isPromise)(d)) {\r\n d.then(onDone)\r\n } else {\r\n onDone()\r\n }\r\n return d;\r\n case \"defs\":\r\n return drawCanvasElements(element.childNodes, context, {}, shared);\r\n case \"clippath\":\r\n shared.clipPaths[element.attributes.id.textContent] = element.childNodes[0];\r\n break;\r\n case \"pattern\":\r\n shared.patterns[element.attributes.id.textContent] = element;\r\n break;\r\n case \"filter\":\r\n shared.filters[element.id] = createFilter(element);\r\n break;\r\n case \"lineargradient\":\r\n shared.gradients[element.attributes.id.textContent] = createGradient(element);\r\n break;\r\n default:\r\n return drawElement(element, context, parentOptions, shared)\r\n }\r\n })\r\n}\r\n\r\nfunction setLineDash(context, options) {\r\n var matches = options[\"stroke-dasharray\"] && options[\"stroke-dasharray\"].match(/(\\d+)/g);\r\n if (matches && matches.length) {\r\n matches = (0, _iterator.map)(matches, function(item) {\r\n return _number(item)\r\n });\r\n context.setLineDash(matches)\r\n }\r\n}\r\n\r\nfunction strokeElement(context, options, isText) {\r\n var stroke = options.stroke;\r\n if (stroke && \"none\" !== stroke && 0 !== options[\"stroke-width\"]) {\r\n setLineDash(context, options);\r\n context.lineJoin = options[\"stroke-linejoin\"];\r\n context.lineWidth = options[\"stroke-width\"];\r\n context.globalAlpha = options.strokeOpacity;\r\n context.strokeStyle = stroke;\r\n isText ? context.strokeText(options.text, options.x, options.y) : context.stroke();\r\n context.globalAlpha = 1\r\n }\r\n}\r\n\r\nfunction getPattern(context, pattern, shared) {\r\n var options = getElementOptions(pattern, shared.rootAppended);\r\n var patternCanvas = createCanvas(options.width, options.height, 0);\r\n var patternContext = patternCanvas.getContext(\"2d\");\r\n drawCanvasElements(pattern.childNodes, patternContext, options, shared);\r\n return context.createPattern(patternCanvas, \"repeat\")\r\n}\r\n\r\nfunction fillElement(context, options, shared) {\r\n var fill = options.fill;\r\n if (fill && \"none\" !== fill) {\r\n if (fill.search(/url/) === -1) {\r\n context.fillStyle = fill\r\n } else {\r\n var pattern = shared.patterns[parseUrl(fill)];\r\n if (!pattern) {\r\n return\r\n }\r\n context.fillStyle = getPattern(context, pattern, shared)\r\n }\r\n context.globalAlpha = options.fillOpacity;\r\n context.fill();\r\n context.globalAlpha = 1\r\n }\r\n}\r\nparseAttributes = function(attributes) {\r\n var newAttributes = {};\r\n var attr;\r\n (0, _iterator.each)(attributes, function(index, item) {\r\n attr = item.textContent;\r\n if (isFinite(attr)) {\r\n attr = _number(attr)\r\n }\r\n newAttributes[item.name.toLowerCase()] = attr\r\n });\r\n return newAttributes\r\n};\r\n\r\nfunction drawBackground(context, width, height, backgroundColor, margin) {\r\n context.fillStyle = backgroundColor || \"#ffffff\";\r\n context.fillRect(-margin, -margin, width + 2 * margin, height + 2 * margin)\r\n}\r\n\r\nfunction createInvisibleDiv() {\r\n var invisibleDiv = _dom_adapter.default.createElement(\"div\");\r\n invisibleDiv.style.left = \"-9999px\";\r\n invisibleDiv.style.position = \"absolute\";\r\n return invisibleDiv\r\n}\r\n\r\nfunction convertSvgToCanvas(svg, canvas, rootAppended) {\r\n return drawCanvasElements(svg.childNodes, canvas.getContext(\"2d\"), {}, {\r\n clipPaths: {},\r\n patterns: {},\r\n filters: {},\r\n gradients: {},\r\n rootAppended: rootAppended\r\n })\r\n}\r\n\r\nfunction getCanvasFromSvg(markup, width, height, backgroundColor, margin, pixelRatio) {\r\n var svgToCanvas = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : convertSvgToCanvas;\r\n var canvas = createCanvas(width, height, margin);\r\n var context = canvas.getContext(\"2d\");\r\n context.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\r\n var svgElem = (0, _svg.getSvgElement)(markup);\r\n var invisibleDiv;\r\n var markupIsDomElement = _dom_adapter.default.isElementNode(markup);\r\n context.translate(margin, margin);\r\n _dom_adapter.default.getBody().appendChild(canvas);\r\n if (!markupIsDomElement) {\r\n invisibleDiv = createInvisibleDiv();\r\n invisibleDiv.appendChild(svgElem);\r\n _dom_adapter.default.getBody().appendChild(invisibleDiv)\r\n }\r\n if (svgElem.attributes.direction) {\r\n canvas.dir = svgElem.attributes.direction.textContent\r\n }\r\n drawBackground(context, width, height, backgroundColor, margin);\r\n return (0, _deferred.fromPromise)(svgToCanvas(svgElem, canvas, markupIsDomElement && (0, _dom.contains)(_dom_adapter.default.getBody(), markup))).then(function() {\r\n return canvas\r\n }).always(function() {\r\n invisibleDiv && _dom_adapter.default.getBody().removeChild(invisibleDiv);\r\n _dom_adapter.default.getBody().removeChild(canvas)\r\n })\r\n}\r\nvar imageCreator = {\r\n getImageData: function(markup, options) {\r\n var pixelRatio = window.devicePixelRatio || 1;\r\n var mimeType = \"image/\" + options.format;\r\n var width = options.width * pixelRatio;\r\n var height = options.height * pixelRatio;\r\n var backgroundColor = options.backgroundColor;\r\n if ((0, _type.isFunction)(options.__parseAttributesFn)) {\r\n parseAttributes = options.__parseAttributesFn\r\n }\r\n return getCanvasFromSvg(markup, width, height, backgroundColor, options.margin, pixelRatio, options.svgToCanvas).then(function(canvas) {\r\n return getStringFromCanvas(canvas, mimeType)\r\n })\r\n },\r\n getData: function(markup, options) {\r\n var that = this;\r\n return imageCreator.getImageData(markup, options).then(function(binaryData) {\r\n var mimeType = \"image/\" + options.format;\r\n var data = (0, _type.isFunction)(window.Blob) && !options.forceProxy ? that._getBlob(binaryData, mimeType) : that._getBase64(binaryData);\r\n return data\r\n })\r\n },\r\n _getBlob: function(binaryData, mimeType) {\r\n var i;\r\n var dataArray = new Uint8Array(binaryData.length);\r\n for (i = 0; i < binaryData.length; i++) {\r\n dataArray[i] = binaryData.charCodeAt(i)\r\n }\r\n return new window.Blob([dataArray.buffer], {\r\n type: mimeType\r\n })\r\n },\r\n _getBase64: function(binaryData) {\r\n return window.btoa(binaryData)\r\n }\r\n};\r\nexports.imageCreator = imageCreator;\r\n\r\nfunction getData(data, options) {\r\n return imageCreator.getData(data, options)\r\n}\r\n\r\nfunction testFormats(formats) {\r\n var canvas = createCanvas(100, 100, 0);\r\n return formats.reduce(function(r, f) {\r\n var mimeType = (\"image/\" + f).toLowerCase();\r\n if (canvas.toDataURL(mimeType).indexOf(mimeType) !== -1) {\r\n r.supported.push(f)\r\n } else {\r\n r.unsupported.push(f)\r\n }\r\n return r\r\n }, {\r\n supported: [],\r\n unsupported: []\r\n })\r\n}\r\n","/**\r\n * DevExtreme (ui/tree_view.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _uiTree_view = _interopRequireDefault(require(\"./tree_view/ui.tree_view.search\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _uiTree_view.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.filter_sync.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _utils = require(\"../filter_builder/utils\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _filtering = _interopRequireDefault(require(\"../shared/filtering\"));\r\nvar _uiGrid_core3 = require(\"./ui.grid_core.filter_custom_operations\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar FILTER_ROW_OPERATIONS = [\"=\", \"<>\", \"<\", \"<=\", \">\", \">=\", \"notcontains\", \"contains\", \"startswith\", \"endswith\", \"between\"];\r\nvar FILTER_TYPES_INCLUDE = \"include\";\r\nvar FILTER_TYPES_EXCLUDE = \"exclude\";\r\n\r\nfunction getColumnIdentifier(column) {\r\n return column.dataField || column.name\r\n}\r\n\r\nfunction checkForErrors(columns) {\r\n columns.forEach(function(column) {\r\n var identifier = getColumnIdentifier(column);\r\n if (!(0, _type.isDefined)(identifier) && column.allowFiltering) {\r\n throw new _ui.default.Error(\"E1049\", column.caption)\r\n }\r\n })\r\n}\r\nvar FilterSyncController = _uiGrid_core.default.Controller.inherit(function() {\r\n var getEmptyFilterValues = function() {\r\n return {\r\n filterType: FILTER_TYPES_INCLUDE,\r\n filterValues: void 0\r\n }\r\n };\r\n var canSyncHeaderFilterWithFilterRow = function(column) {\r\n return !_filtering.default.getGroupInterval(column) && !(column.headerFilter && column.headerFilter.dataSource)\r\n };\r\n var getHeaderFilterFromCondition = function(headerFilterCondition, column) {\r\n if (!headerFilterCondition) {\r\n return getEmptyFilterValues()\r\n }\r\n var filterType;\r\n var selectedFilterOperation = headerFilterCondition[1];\r\n var value = headerFilterCondition[2];\r\n var hasArrayValue = Array.isArray(value);\r\n if (!hasArrayValue) {\r\n if (!canSyncHeaderFilterWithFilterRow(column)) {\r\n return getEmptyFilterValues()\r\n }\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"anyof\":\r\n case \"=\":\r\n filterType = FILTER_TYPES_INCLUDE;\r\n break;\r\n case \"noneof\":\r\n case \"<>\":\r\n filterType = FILTER_TYPES_EXCLUDE;\r\n break;\r\n default:\r\n return getEmptyFilterValues()\r\n }\r\n return {\r\n filterType: filterType,\r\n filterValues: hasArrayValue ? value : [value]\r\n }\r\n };\r\n var getConditionFromFilterRow = function(column) {\r\n var value = column.filterValue;\r\n if ((0, _type.isDefined)(value)) {\r\n var operation = column.selectedFilterOperation || column.defaultFilterOperation || (0, _utils.getDefaultOperation)(column);\r\n var filter = [getColumnIdentifier(column), operation, column.filterValue];\r\n return filter\r\n } else {\r\n return null\r\n }\r\n };\r\n var getConditionFromHeaderFilter = function(column) {\r\n var selectedOperation;\r\n var value;\r\n var filterValues = column.filterValues;\r\n if (!filterValues) {\r\n return null\r\n }\r\n if (canSyncHeaderFilterWithFilterRow(column) && 1 === column.filterValues.length && !Array.isArray(filterValues[0])) {\r\n column.filterType === FILTER_TYPES_EXCLUDE ? selectedOperation = \"<>\" : selectedOperation = \"=\";\r\n value = filterValues[0]\r\n } else {\r\n column.filterType === FILTER_TYPES_EXCLUDE ? selectedOperation = \"noneof\" : selectedOperation = \"anyof\";\r\n value = filterValues\r\n }\r\n return [getColumnIdentifier(column), selectedOperation, value]\r\n };\r\n var updateHeaderFilterCondition = function(columnsController, column, headerFilterCondition) {\r\n var headerFilter = getHeaderFilterFromCondition(headerFilterCondition, column);\r\n columnsController.columnOption(getColumnIdentifier(column), headerFilter)\r\n };\r\n var updateFilterRowCondition = function(columnsController, column, condition) {\r\n var filterRowOptions;\r\n var selectedFilterOperation = condition && condition[1];\r\n var filterOperations = column.filterOperations || column.defaultFilterOperations;\r\n if ((!filterOperations || filterOperations.indexOf(selectedFilterOperation) >= 0 || selectedFilterOperation === column.defaultFilterOperation) && FILTER_ROW_OPERATIONS.indexOf(selectedFilterOperation) >= 0) {\r\n if (selectedFilterOperation === column.defaultFilterOperation && !(0, _type.isDefined)(column.selectedFilterOperation)) {\r\n selectedFilterOperation = column.selectedFilterOperation\r\n }\r\n filterRowOptions = {\r\n filterValue: condition[2],\r\n selectedFilterOperation: selectedFilterOperation\r\n }\r\n } else {\r\n filterRowOptions = {\r\n filterValue: void 0,\r\n selectedFilterOperation: void 0\r\n }\r\n }\r\n columnsController.columnOption(getColumnIdentifier(column), filterRowOptions)\r\n };\r\n return {\r\n syncFilterValue: function() {\r\n var that = this;\r\n var columnsController = that.getController(\"columns\");\r\n var columns = columnsController.getFilteringColumns();\r\n this._skipSyncColumnOptions = true;\r\n columns.forEach(function(column) {\r\n var filterConditions = (0, _utils.getMatchedConditions)(that.option(\"filterValue\"), getColumnIdentifier(column));\r\n if (1 === filterConditions.length) {\r\n var filterCondition = filterConditions[0];\r\n updateHeaderFilterCondition(columnsController, column, filterCondition);\r\n updateFilterRowCondition(columnsController, column, filterCondition)\r\n } else {\r\n (0, _type.isDefined)(column.filterValues) && updateHeaderFilterCondition(columnsController, column);\r\n (0, _type.isDefined)(column.filterValue) && updateFilterRowCondition(columnsController, column)\r\n }\r\n });\r\n this._skipSyncColumnOptions = false\r\n },\r\n _initSync: function() {\r\n var columns = this.getController(\"columns\").getColumns();\r\n var dataController = this.getController(\"data\");\r\n var pageIndex = dataController.pageIndex();\r\n checkForErrors(columns);\r\n if (!this.option(\"filterValue\")) {\r\n var filteringColumns = this.getController(\"columns\").getFilteringColumns();\r\n var filterValue = this.getFilterValueFromColumns(filteringColumns);\r\n this.option(\"filterValue\", filterValue)\r\n }\r\n this.syncFilterValue();\r\n dataController.pageIndex(pageIndex)\r\n },\r\n init: function() {\r\n var _this = this;\r\n var dataController = this.getController(\"data\");\r\n if (dataController.isFilterSyncActive()) {\r\n if (this.getController(\"columns\").isAllDataTypesDefined()) {\r\n this._initSync()\r\n } else {\r\n dataController.dataSourceChanged.add(function() {\r\n return _this._initSync()\r\n })\r\n }\r\n }\r\n },\r\n _getSyncFilterRow: function(filterValue, column) {\r\n var filter = getConditionFromFilterRow(column);\r\n if ((0, _type.isDefined)(filter)) {\r\n return (0, _utils.syncFilters)(filterValue, filter)\r\n } else {\r\n return (0, _utils.removeFieldConditionsFromFilter)(filterValue, getColumnIdentifier(column))\r\n }\r\n },\r\n _getSyncHeaderFilter: function(filterValue, column) {\r\n var filter = getConditionFromHeaderFilter(column);\r\n if (filter) {\r\n return (0, _utils.syncFilters)(filterValue, filter)\r\n } else {\r\n return (0, _utils.removeFieldConditionsFromFilter)(filterValue, getColumnIdentifier(column))\r\n }\r\n },\r\n getFilterValueFromColumns: function(columns) {\r\n if (!this.getController(\"data\").isFilterSyncActive()) {\r\n return null\r\n }\r\n var filterValue = [\"and\"];\r\n columns && columns.forEach(function(column) {\r\n var headerFilter = getConditionFromHeaderFilter(column);\r\n var filterRow = getConditionFromFilterRow(column);\r\n headerFilter && (0, _utils.addItem)(headerFilter, filterValue);\r\n filterRow && (0, _utils.addItem)(filterRow, filterValue)\r\n });\r\n return (0, _utils.getNormalizedFilter)(filterValue)\r\n },\r\n syncFilterRow: function(column, value) {\r\n this.option(\"filterValue\", this._getSyncFilterRow(this.option(\"filterValue\"), column))\r\n },\r\n syncHeaderFilter: function(column) {\r\n this.option(\"filterValue\", this._getSyncHeaderFilter(this.option(\"filterValue\"), column))\r\n },\r\n getCustomFilterOperations: function() {\r\n var filterBuilderCustomOperations = this.option(\"filterBuilder.customOperations\") || [];\r\n return [(0, _uiGrid_core3.anyOf)(this.component), (0, _uiGrid_core3.noneOf)(this.component)].concat(filterBuilderCustomOperations)\r\n },\r\n publicMethods: function() {\r\n return [\"getCustomFilterOperations\"]\r\n }\r\n }\r\n}());\r\nvar DataControllerFilterSyncExtender = {\r\n isFilterSyncActive: function() {\r\n var filterSyncEnabledValue = this.option(\"filterSyncEnabled\");\r\n return \"auto\" === filterSyncEnabledValue ? this.option(\"filterPanel.visible\") : filterSyncEnabledValue\r\n },\r\n skipCalculateColumnFilters: function() {\r\n return (0, _type.isDefined)(this.option(\"filterValue\")) && this.isFilterSyncActive()\r\n },\r\n _calculateAdditionalFilter: function() {\r\n var that = this;\r\n if (false === that.option(\"filterPanel.filterEnabled\")) {\r\n return that.callBase()\r\n }\r\n var filters = [that.callBase()];\r\n var columns = that.getController(\"columns\").getFilteringColumns();\r\n var filterValue = that.option(\"filterValue\");\r\n if (that.isFilterSyncActive()) {\r\n var currentColumn = that.getController(\"headerFilter\").getCurrentColumn();\r\n if (currentColumn && filterValue) {\r\n filterValue = (0, _utils.removeFieldConditionsFromFilter)(filterValue, getColumnIdentifier(currentColumn))\r\n }\r\n }\r\n var customOperations = that.getController(\"filterSync\").getCustomFilterOperations();\r\n var calculatedFilterValue = (0, _utils.getFilterExpression)(filterValue, columns, customOperations, \"filterBuilder\");\r\n if (calculatedFilterValue) {\r\n filters.push(calculatedFilterValue)\r\n }\r\n return _uiGrid_core2.default.combineFilters(filters)\r\n },\r\n _parseColumnPropertyName: function(fullName) {\r\n var matched = fullName.match(/.*\\.(.*)/);\r\n return matched[1]\r\n },\r\n clearFilter: function(filterName) {\r\n this.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n if (\"filterValue\" === filterName) {\r\n this.option(\"filterValue\", null)\r\n }\r\n this.callBase(filterName)\r\n } else {\r\n this.option(\"filterValue\", null);\r\n this.callBase()\r\n }\r\n this.component.endUpdate()\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"filterValue\":\r\n this._applyFilter();\r\n this.isFilterSyncActive() && this.getController(\"filterSync\").syncFilterValue();\r\n args.handled = true;\r\n break;\r\n case \"filterSyncEnabled\":\r\n args.handled = true;\r\n break;\r\n case \"columns\":\r\n if (this.isFilterSyncActive()) {\r\n var column = this.getController(\"columns\").getColumnByPath(args.fullName);\r\n var filterSyncController = this.getController(\"filterSync\");\r\n if (column && !filterSyncController._skipSyncColumnOptions) {\r\n var propertyName = this._parseColumnPropertyName(args.fullName);\r\n filterSyncController._skipSyncColumnOptions = true;\r\n if (\"filterType\" === propertyName) {\r\n if (FILTER_TYPES_EXCLUDE === args.value || FILTER_TYPES_EXCLUDE === args.previousValue) {\r\n filterSyncController.syncHeaderFilter(column)\r\n }\r\n } else {\r\n if (\"filterValues\" === propertyName) {\r\n filterSyncController.syncHeaderFilter(column)\r\n } else {\r\n if ([\"filterValue\", \"selectedFilterOperation\"].indexOf(propertyName) > -1) {\r\n filterSyncController.syncFilterRow(column, column.filterValue)\r\n }\r\n }\r\n }\r\n filterSyncController._skipSyncColumnOptions = false\r\n }\r\n }\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\nvar ColumnHeadersViewFilterSyncExtender = {\r\n _isHeaderFilterEmpty: function(column) {\r\n if (this.getController(\"data\").isFilterSyncActive()) {\r\n return !(0, _utils.filterHasField)(this.option(\"filterValue\"), getColumnIdentifier(column))\r\n }\r\n return this.callBase(column)\r\n },\r\n _needUpdateFilterIndicators: function() {\r\n return !this.getController(\"data\").isFilterSyncActive()\r\n },\r\n optionChanged: function(args) {\r\n if (\"filterValue\" === args.name) {\r\n this._updateHeaderFilterIndicators()\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n filterValue: null,\r\n filterSyncEnabled: \"auto\"\r\n }\r\n },\r\n controllers: {\r\n filterSync: FilterSyncController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: DataControllerFilterSyncExtender\r\n },\r\n views: {\r\n columnHeadersView: ColumnHeadersViewFilterSyncExtender\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.virtual_columns.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.virtual_columns\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"virtualColumns\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (exporter/excel_format_converter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _string = require(\"../core/utils/string\");\r\nvar _number = _interopRequireDefault(require(\"../localization/number\"));\r\nvar _date = _interopRequireDefault(require(\"../localization/date\"));\r\nvar _type = require(\"../core/utils/type\");\r\nvar _date2 = require(\"../localization/ldml/date.format\");\r\nvar _language_codes = require(\"../localization/language_codes\");\r\nrequire(\"../localization/currency\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ARABIC_ZERO_CODE = 1632;\r\nvar DEFINED_NUMBER_FORMTATS = {\r\n thousands: \"#,##0{0},"K"\",\r\n millions: \"#,##0{0},,"M"\",\r\n billions: \"#,##0{0},,,"B"\",\r\n trillions: \"#,##0{0},,,,"T"\",\r\n percent: \"0{0}%\",\r\n decimal: \"#{0}\",\r\n fixedpoint: \"#,##0{0}\",\r\n exponential: \"0{0}E+00\",\r\n currency: \" \"\r\n};\r\nvar PERIOD_REGEXP = /a+/g;\r\nvar DAY_REGEXP = /E/g;\r\nvar DO_REGEXP = /dE+/g;\r\nvar STANDALONE_MONTH_REGEXP = /L/g;\r\nvar HOUR_REGEXP = /h/g;\r\nvar ANY_REGEXP = /./g;\r\nvar excelFormatConverter = {\r\n _applyPrecision: function(format, precision) {\r\n var result;\r\n var i;\r\n if (precision > 0) {\r\n result = \"decimal\" !== format ? \".\" : \"\";\r\n for (i = 0; i < precision; i++) {\r\n result += \"0\"\r\n }\r\n return result\r\n }\r\n return \"\"\r\n },\r\n _hasArabicDigits: function(text) {\r\n var code;\r\n for (var i = 0; i < text.length; i++) {\r\n code = text.charCodeAt(i);\r\n if (code >= ARABIC_ZERO_CODE && code < ARABIC_ZERO_CODE + 10) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _convertDateFormatToOpenXml: function(format) {\r\n return format.split(\"/\").join(\"\\\\/\").split(\"'\").map(function(datePart, index) {\r\n if (index % 2 === 0) {\r\n return datePart.replace(PERIOD_REGEXP, \"AM/PM\").replace(DO_REGEXP, \"d\").replace(DAY_REGEXP, \"d\").replace(STANDALONE_MONTH_REGEXP, \"M\").replace(HOUR_REGEXP, \"H\").split(\"[\").join(\"\\\\[\").split(\"]\").join(\"\\\\]\")\r\n }\r\n if (datePart) {\r\n return datePart.replace(ANY_REGEXP, \"\\\\$&\")\r\n }\r\n return \"'\"\r\n }).join(\"\")\r\n },\r\n _convertDateFormat: function(format) {\r\n var formattedValue = (_date.default.format(new Date(2009, 8, 8, 6, 5, 4), format) || \"\").toString();\r\n var result = (0, _date2.getFormat)(function(value) {\r\n return _date.default.format(value, format)\r\n });\r\n if (result) {\r\n result = this._convertDateFormatToOpenXml(result);\r\n result = this._getLanguageInfo(formattedValue) + result\r\n }\r\n return result\r\n },\r\n _getLanguageInfo: function(defaultPattern) {\r\n var languageID = (0, _language_codes.getLanguageId)();\r\n var languageIDStr = languageID ? languageID.toString(16) : \"\";\r\n var languageInfo = \"\";\r\n if (this._hasArabicDigits(defaultPattern)) {\r\n while (languageIDStr.length < 3) {\r\n languageIDStr = \"0\" + languageIDStr\r\n }\r\n languageInfo = \"[$-2010\" + languageIDStr + \"]\"\r\n } else {\r\n if (languageIDStr) {\r\n languageInfo = \"[$-\" + languageIDStr + \"]\"\r\n }\r\n }\r\n return languageInfo\r\n },\r\n _convertNumberFormat: function(format, precision, currency) {\r\n var result;\r\n var excelFormat;\r\n if (\"currency\" === format) {\r\n excelFormat = _number.default.getOpenXmlCurrencyFormat(currency)\r\n } else {\r\n excelFormat = DEFINED_NUMBER_FORMTATS[format.toLowerCase()]\r\n }\r\n if (excelFormat) {\r\n result = (0, _string.format)(excelFormat, this._applyPrecision(format, precision))\r\n }\r\n return result\r\n },\r\n convertFormat: function(format, precision, type, currency) {\r\n if ((0, _type.isDefined)(format)) {\r\n if (\"date\" === type) {\r\n return excelFormatConverter._convertDateFormat(format)\r\n } else {\r\n if ((0, _type.isString)(format) && DEFINED_NUMBER_FORMTATS[format.toLowerCase()]) {\r\n return excelFormatConverter._convertNumberFormat(format, precision, currency)\r\n }\r\n }\r\n }\r\n }\r\n};\r\nvar _default = excelFormatConverter;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.filter_sync.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.filter_sync\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"filterSync\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.grouping.collapsed.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.GroupingHelper = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiData_gridGrouping = require(\"./ui.data_grid.grouping.core\");\r\nvar _uiData_grid2 = require(\"./ui.data_grid.utils\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _errors = _interopRequireDefault(require(\"../../data/errors\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction getContinuationGroupCount(groupOffset, pageSize, groupSize, groupIndex) {\r\n groupIndex = groupIndex || 0;\r\n if (pageSize > 1 && groupSize > 0) {\r\n var pageOffset = groupOffset - Math.floor(groupOffset / pageSize) * pageSize || pageSize;\r\n pageOffset += groupSize - groupIndex - 2;\r\n if (pageOffset < 0) {\r\n pageOffset += pageSize\r\n }\r\n return Math.floor(pageOffset / (pageSize - groupIndex - 1))\r\n }\r\n return 0\r\n}\r\nvar GroupingHelper = _uiData_gridGrouping.GroupingHelper.inherit(function() {\r\n var foreachExpandedGroups = function(that, callback, updateGroups) {\r\n return that.foreachGroups(function(groupInfo, parents) {\r\n if (groupInfo.isExpanded) {\r\n return callback(groupInfo, parents)\r\n }\r\n }, true, false, updateGroups, updateGroups)\r\n };\r\n var processGroupItems = function processGroupItems(that, items, groupsCount, expandedInfo, path, isCustomLoading, isLastGroupExpanded) {\r\n var isExpanded;\r\n expandedInfo.items = expandedInfo.items || [];\r\n expandedInfo.paths = expandedInfo.paths || [];\r\n expandedInfo.count = expandedInfo.count || 0;\r\n expandedInfo.lastCount = expandedInfo.lastCount || 0;\r\n if (!groupsCount) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n if (isCustomLoading) {\r\n isExpanded = true\r\n } else {\r\n var groupInfo = that.findGroupInfo(path);\r\n isExpanded = groupInfo && groupInfo.isExpanded\r\n }\r\n if (!isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null\r\n } else {\r\n if (item.items) {\r\n processGroupItems(that, item.items, groupsCount - 1, expandedInfo, path, isCustomLoading, isLastGroupExpanded)\r\n } else {\r\n if (1 === groupsCount && item.count && (!isCustomLoading || isLastGroupExpanded)) {\r\n expandedInfo.items.push(item);\r\n expandedInfo.paths.push(path.slice(0));\r\n expandedInfo.count += expandedInfo.lastCount;\r\n expandedInfo.lastCount = item.count\r\n }\r\n }\r\n }\r\n path.pop()\r\n }\r\n }\r\n };\r\n var updateGroupInfoItem = function(that, item, isLastGroupLevel, path, offset) {\r\n var groupInfo = that.findGroupInfo(path);\r\n var count;\r\n if (!groupInfo) {\r\n if (isLastGroupLevel) {\r\n count = item.count > 0 ? item.count : item.items.length\r\n }\r\n that.addGroupInfo({\r\n isExpanded: that._isGroupExpanded(path.length - 1),\r\n path: path.slice(0),\r\n offset: offset,\r\n count: count || 0\r\n })\r\n } else {\r\n if (isLastGroupLevel) {\r\n groupInfo.count = item.count > 0 ? item.count : item.items && item.items.length || 0\r\n } else {\r\n item.count = groupInfo.count || item.count\r\n }\r\n groupInfo.offset = offset\r\n }\r\n };\r\n var updateGroupInfos = function updateGroupInfos(that, options, items, loadedGroupCount, groupIndex, path, parentIndex) {\r\n var groupCount = options.group ? options.group.length : 0;\r\n var isLastGroupLevel = groupCount === loadedGroupCount;\r\n var remotePaging = options.remoteOperations.paging;\r\n var offset = 0;\r\n var totalCount = 0;\r\n var count;\r\n groupIndex = groupIndex || 0;\r\n path = path || [];\r\n if (remotePaging && !parentIndex) {\r\n offset = 0 === groupIndex ? options.skip || 0 : options.skips[groupIndex - 1] || 0\r\n }\r\n if (groupIndex >= loadedGroupCount) {\r\n return items.length\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item) {\r\n path.push(item.key);\r\n if (!item.count && !item.items || void 0 === item.items) {\r\n return -1\r\n }\r\n updateGroupInfoItem(that, item, isLastGroupLevel, path, offset + i);\r\n count = item.items ? updateGroupInfos(that, options, item.items, loadedGroupCount, groupIndex + 1, path, i) : item.count || -1;\r\n if (count < 0) {\r\n return -1\r\n }\r\n totalCount += count;\r\n path.pop()\r\n }\r\n }\r\n return totalCount\r\n };\r\n var isGroupExpanded = function(groups, groupIndex) {\r\n return groups && groups.length && groups[groupIndex] && !!groups[groupIndex].isExpanded\r\n };\r\n var getTotalOffset = function(groupInfos, pageSize, offset) {\r\n var groupSize;\r\n var totalOffset = offset;\r\n for (var groupIndex = 0; groupIndex < groupInfos.length; groupIndex++) {\r\n groupSize = groupInfos[groupIndex].offset + 1;\r\n if (groupIndex > 0) {\r\n groupSize += groupInfos[groupIndex - 1].childrenTotalCount;\r\n if (pageSize) {\r\n groupSize += getContinuationGroupCount(totalOffset, pageSize, groupSize, groupIndex - 1) * groupIndex\r\n }\r\n }\r\n totalOffset += groupSize\r\n }\r\n return totalOffset\r\n };\r\n\r\n function applyContinuationToGroupItem(options, expandedInfo, groupLevel, expandedItemIndex) {\r\n var item = expandedInfo.items[expandedItemIndex];\r\n var skip = options.skips && options.skips[groupLevel];\r\n var take = options.takes && options.takes[groupLevel];\r\n var isLastExpandedItem = expandedItemIndex === expandedInfo.items.length - 1;\r\n var isFirstExpandedItem = 0 === expandedItemIndex;\r\n var lastExpandedItemSkip = isFirstExpandedItem && skip || 0;\r\n var isItemsTruncatedByTake = item.count > take + lastExpandedItemSkip;\r\n if (isFirstExpandedItem && void 0 !== skip) {\r\n item.isContinuation = true\r\n }\r\n if (isLastExpandedItem && void 0 !== take && isItemsTruncatedByTake) {\r\n item.isContinuationOnNextPage = true\r\n }\r\n }\r\n\r\n function fillSkipTakeInExpandedInfo(options, expandedInfo, currentGroupCount) {\r\n var currentGroupIndex = currentGroupCount - 1;\r\n var groupCount = options.group ? options.group.length : 0;\r\n expandedInfo.skip = options.skips && options.skips[currentGroupIndex];\r\n if (options.takes && void 0 !== options.takes[currentGroupIndex]) {\r\n if (groupCount === currentGroupCount) {\r\n expandedInfo.take = expandedInfo.count ? expandedInfo.count - (expandedInfo.skip || 0) : 0\r\n } else {\r\n expandedInfo.take = 0\r\n }\r\n expandedInfo.take += options.takes[currentGroupIndex]\r\n }\r\n }\r\n\r\n function isDataDeferred(data) {\r\n return !Array.isArray(data)\r\n }\r\n\r\n function makeDataDeferred(options) {\r\n if (!isDataDeferred(options.data)) {\r\n options.data = new _deferred.Deferred\r\n }\r\n }\r\n\r\n function loadGroupItems(that, options, loadedGroupCount, expandedInfo, groupLevel, data) {\r\n if (!options.isCustomLoading) {\r\n expandedInfo = {};\r\n processGroupItems(that, data, loadedGroupCount, expandedInfo, []);\r\n fillSkipTakeInExpandedInfo(options, expandedInfo, loadedGroupCount)\r\n }\r\n var groupCount = options.group ? options.group.length : 0;\r\n if (expandedInfo.paths.length && groupCount - loadedGroupCount > 0) {\r\n makeDataDeferred(options);\r\n loadExpandedGroups(that, options, expandedInfo, loadedGroupCount, groupLevel, data)\r\n } else {\r\n if (expandedInfo.paths.length && options.storeLoadOptions.group) {\r\n makeDataDeferred(options);\r\n loadLastLevelGroupItems(that, options, expandedInfo, data)\r\n } else {\r\n if (isDataDeferred(options.data)) {\r\n options.data.resolve(data)\r\n }\r\n }\r\n }\r\n }\r\n\r\n function loadExpandedGroups(that, options, expandedInfo, loadedGroupCount, groupLevel, data) {\r\n var groups = options.group || [];\r\n var currentGroup = groups[groupLevel + 1];\r\n var deferreds = [];\r\n (0, _iterator.each)(expandedInfo.paths, function(expandedItemIndex) {\r\n var loadOptions = {\r\n requireTotalCount: false,\r\n requireGroupCount: true,\r\n group: [currentGroup],\r\n groupSummary: options.storeLoadOptions.groupSummary,\r\n filter: (0, _uiData_grid2.createGroupFilter)(expandedInfo.paths[expandedItemIndex], {\r\n filter: options.storeLoadOptions.filter,\r\n group: groups\r\n }),\r\n select: options.storeLoadOptions.select\r\n };\r\n if (0 === expandedItemIndex) {\r\n loadOptions.skip = expandedInfo.skip || 0\r\n }\r\n if (expandedItemIndex === expandedInfo.paths.length - 1) {\r\n loadOptions.take = expandedInfo.take\r\n }\r\n var loadResult = 0 === loadOptions.take ? [] : that._dataSource.loadFromStore(loadOptions);\r\n (0, _deferred.when)(loadResult).done(function(data) {\r\n var item = expandedInfo.items[expandedItemIndex];\r\n applyContinuationToGroupItem(options, expandedInfo, groupLevel, expandedItemIndex);\r\n item.items = data\r\n });\r\n deferreds.push(loadResult)\r\n });\r\n _deferred.when.apply(null, deferreds).done(function() {\r\n updateGroupInfos(that, options, data, loadedGroupCount + 1);\r\n loadGroupItems(that, options, loadedGroupCount + 1, expandedInfo, groupLevel + 1, data)\r\n })\r\n }\r\n\r\n function loadLastLevelGroupItems(that, options, expandedInfo, data) {\r\n var expandedFilters = [];\r\n var groups = options.group || [];\r\n (0, _iterator.each)(expandedInfo.paths, function(_, expandedPath) {\r\n expandedFilters.push((0, _uiData_grid2.createGroupFilter)(expandedPath, {\r\n group: options.isCustomLoading ? options.storeLoadOptions.group : groups\r\n }))\r\n });\r\n var filter = options.storeLoadOptions.filter;\r\n if (!options.storeLoadOptions.isLoadingAll) {\r\n filter = _uiData_grid.default.combineFilters([filter, _uiData_grid.default.combineFilters(expandedFilters, \"or\")])\r\n }\r\n var loadOptions = (0, _extend.extend)({}, options.storeLoadOptions, {\r\n requireTotalCount: false,\r\n requireGroupCount: false,\r\n group: null,\r\n sort: groups.concat(_uiData_grid.default.normalizeSortingInfo(options.storeLoadOptions.sort || [])),\r\n filter: filter\r\n });\r\n var isPagingLocal = that._dataSource.isLastLevelGroupItemsPagingLocal();\r\n if (!isPagingLocal) {\r\n loadOptions.skip = expandedInfo.skip;\r\n loadOptions.take = expandedInfo.take\r\n }(0, _deferred.when)(0 === expandedInfo.take ? [] : that._dataSource.loadFromStore(loadOptions)).done(function(items, extra) {\r\n if (isPagingLocal) {\r\n items = that._dataSource.sortLastLevelGroupItems(items, groups, expandedInfo.paths);\r\n items = expandedInfo.skip ? items.slice(expandedInfo.skip) : items;\r\n items = expandedInfo.take ? items.slice(0, expandedInfo.take) : items\r\n }(0, _iterator.each)(expandedInfo.items, function(index, item) {\r\n var itemCount = item.count - (0 === index && expandedInfo.skip || 0);\r\n var expandedItems = items.splice(0, itemCount);\r\n applyContinuationToGroupItem(options, expandedInfo, groups.length - 1, index);\r\n item.items = expandedItems\r\n });\r\n options.data.resolve(data)\r\n }).fail(options.data.reject)\r\n }\r\n var loadGroupTotalCount = function(dataSource, options) {\r\n var d = new _deferred.Deferred;\r\n var isGrouping = !!(options.group && options.group.length);\r\n var loadOptions = (0, _extend.extend)({\r\n skip: 0,\r\n take: 1,\r\n requireGroupCount: isGrouping,\r\n requireTotalCount: !isGrouping\r\n }, options, {\r\n group: isGrouping ? options.group : null\r\n });\r\n dataSource.load(loadOptions).done(function(data, extra) {\r\n var count = extra && (isGrouping ? extra.groupCount : extra.totalCount);\r\n if (!isFinite(count)) {\r\n d.reject(_errors.default.errors.Error(isGrouping ? \"E4022\" : \"E4021\"));\r\n return\r\n }\r\n d.resolve(count)\r\n }).fail(d.reject.bind(d));\r\n return d\r\n };\r\n return {\r\n updateTotalItemsCount: function(options) {\r\n var totalItemsCount = 0;\r\n var totalCount = options.extra && options.extra.totalCount || 0;\r\n var groupCount = options.extra && options.extra.groupCount || 0;\r\n var pageSize = this._dataSource.pageSize();\r\n var isVirtualPaging = this._isVirtualPaging();\r\n foreachExpandedGroups(this, function(groupInfo) {\r\n groupInfo.childrenTotalCount = 0\r\n });\r\n foreachExpandedGroups(this, function(groupInfo, parents) {\r\n var totalOffset = getTotalOffset(parents, isVirtualPaging ? 0 : pageSize, totalItemsCount);\r\n var count = groupInfo.count + groupInfo.childrenTotalCount;\r\n if (!isVirtualPaging) {\r\n count += getContinuationGroupCount(totalOffset, pageSize, count, parents.length - 1)\r\n }\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].childrenTotalCount += count\r\n } else {\r\n totalItemsCount += count\r\n }\r\n });\r\n this.callBase(totalItemsCount - totalCount + groupCount)\r\n },\r\n _isGroupExpanded: function(groupIndex) {\r\n var groups = this._dataSource.group();\r\n return isGroupExpanded(groups, groupIndex)\r\n },\r\n _updatePagingOptions: function(options, callback) {\r\n var that = this;\r\n var isVirtualPaging = that._isVirtualPaging();\r\n var pageSize = that._dataSource.pageSize();\r\n var skips = [];\r\n var takes = [];\r\n var skipChildrenTotalCount = 0;\r\n var childrenTotalCount = 0;\r\n if (options.take) {\r\n foreachExpandedGroups(this, function(groupInfo) {\r\n groupInfo.childrenTotalCount = 0;\r\n groupInfo.skipChildrenTotalCount = 0\r\n });\r\n foreachExpandedGroups(that, function(groupInfo, parents) {\r\n var take;\r\n var takeCorrection = 0;\r\n var parentTakeCorrection = 0;\r\n var totalOffset = getTotalOffset(parents, isVirtualPaging ? 0 : pageSize, childrenTotalCount);\r\n var continuationGroupCount = 0;\r\n var skipContinuationGroupCount = 0;\r\n var groupInfoCount = groupInfo.count + groupInfo.childrenTotalCount;\r\n var childrenGroupInfoCount = groupInfoCount;\r\n callback && callback(groupInfo, totalOffset);\r\n var skip = options.skip - totalOffset;\r\n if (totalOffset <= options.skip + options.take && groupInfoCount) {\r\n take = options.take;\r\n if (!isVirtualPaging) {\r\n continuationGroupCount = getContinuationGroupCount(totalOffset, pageSize, groupInfoCount, parents.length - 1);\r\n groupInfoCount += continuationGroupCount * parents.length;\r\n childrenGroupInfoCount += continuationGroupCount;\r\n if (pageSize && skip >= 0) {\r\n takeCorrection = parents.length;\r\n parentTakeCorrection = parents.length - 1;\r\n skipContinuationGroupCount = Math.floor(skip / pageSize)\r\n }\r\n }\r\n if (skip >= 0) {\r\n if (totalOffset + groupInfoCount > options.skip) {\r\n skips.unshift(skip - skipContinuationGroupCount * takeCorrection - groupInfo.skipChildrenTotalCount)\r\n }\r\n if (totalOffset + groupInfoCount >= options.skip + take) {\r\n takes.unshift(take - takeCorrection - groupInfo.childrenTotalCount + groupInfo.skipChildrenTotalCount)\r\n }\r\n } else {\r\n if (totalOffset + groupInfoCount >= options.skip + take) {\r\n takes.unshift(take + skip - groupInfo.childrenTotalCount)\r\n }\r\n }\r\n }\r\n if (totalOffset <= options.skip) {\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].skipChildrenTotalCount += Math.min(childrenGroupInfoCount, skip + 1 - skipContinuationGroupCount * parentTakeCorrection)\r\n } else {\r\n skipChildrenTotalCount += Math.min(childrenGroupInfoCount, skip + 1)\r\n }\r\n }\r\n if (totalOffset <= options.skip + take) {\r\n groupInfoCount = Math.min(childrenGroupInfoCount, skip + take - (skipContinuationGroupCount + 1) * parentTakeCorrection);\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].childrenTotalCount += groupInfoCount\r\n } else {\r\n childrenTotalCount += groupInfoCount\r\n }\r\n }\r\n });\r\n options.skip -= skipChildrenTotalCount;\r\n options.take -= childrenTotalCount - skipChildrenTotalCount\r\n }\r\n options.skips = skips;\r\n options.takes = takes\r\n },\r\n changeRowExpand: function(path) {\r\n var that = this;\r\n var groupInfo = that.findGroupInfo(path);\r\n var dataSource = that._dataSource;\r\n var remoteGroupPaging = dataSource.remoteOperations().groupPaging;\r\n var groups = _uiData_grid.default.normalizeSortingInfo(dataSource.group());\r\n if (groupInfo) {\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n if (remoteGroupPaging && groupInfo.isExpanded && path.length < groups.length) {\r\n return loadGroupTotalCount(dataSource, {\r\n filter: (0, _uiData_grid2.createGroupFilter)(path, {\r\n filter: dataSource.lastLoadOptions().filter,\r\n group: dataSource.group()\r\n }),\r\n group: [groups[path.length]],\r\n select: dataSource.select()\r\n }).done(function(groupCount) {\r\n groupInfo.count = groupCount\r\n })\r\n }\r\n return (new _deferred.Deferred).resolve()\r\n }\r\n return (new _deferred.Deferred).reject()\r\n },\r\n handleDataLoading: function(options) {\r\n var that = this;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var groups = _uiData_grid.default.normalizeSortingInfo(storeLoadOptions.group || options.loadOptions.group);\r\n if (options.isCustomLoading || !groups.length) {\r\n return\r\n }\r\n if (options.remoteOperations.grouping) {\r\n var remotePaging = that._dataSource.remoteOperations().paging;\r\n storeLoadOptions.group = _uiData_grid.default.normalizeSortingInfo(storeLoadOptions.group);\r\n storeLoadOptions.group.forEach(function(group, index) {\r\n var isLastGroup = index === storeLoadOptions.group.length - 1;\r\n group.isExpanded = !remotePaging || !isLastGroup\r\n })\r\n }\r\n options.group = options.group || groups;\r\n if (options.remoteOperations.paging) {\r\n options.skip = storeLoadOptions.skip;\r\n options.take = storeLoadOptions.take;\r\n storeLoadOptions.requireGroupCount = true;\r\n storeLoadOptions.group = groups.slice(0, 1);\r\n that._updatePagingOptions(options);\r\n storeLoadOptions.skip = options.skip;\r\n storeLoadOptions.take = options.take\r\n }\r\n },\r\n handleDataLoadedCore: function(options, callBase) {\r\n var that = this;\r\n var loadedGroupCount = _uiData_grid.default.normalizeSortingInfo(options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var groupCount = options.group ? options.group.length : 0;\r\n var totalCount;\r\n var expandedInfo = {};\r\n if (options.isCustomLoading) {\r\n callBase(options);\r\n processGroupItems(that, options.data, loadedGroupCount, expandedInfo, [], options.isCustomLoading, options.storeLoadOptions.isLoadingAll)\r\n } else {\r\n if (!options.remoteOperations.paging) {\r\n that.foreachGroups(function(groupInfo) {\r\n groupInfo.count = 0\r\n })\r\n }\r\n totalCount = updateGroupInfos(that, options, options.data, loadedGroupCount);\r\n if (totalCount < 0) {\r\n options.data = (new _deferred.Deferred).reject(_ui.default.Error(\"E1037\"));\r\n return\r\n }\r\n if (!options.remoteOperations.paging) {\r\n if (loadedGroupCount && options.extra && options.loadOptions.requireTotalCount) {\r\n options.extra.totalCount = totalCount;\r\n options.extra.groupCount = options.data.length\r\n }\r\n }\r\n if (groupCount && options.storeLoadOptions.requireGroupCount && !isFinite(options.extra.groupCount)) {\r\n options.data = (new _deferred.Deferred).reject(_errors.default.errors.Error(\"E4022\"));\r\n return\r\n }\r\n that.updateTotalItemsCount(options);\r\n if (!options.remoteOperations.paging) {\r\n that._updatePagingOptions(options)\r\n }\r\n callBase(options);\r\n if (!options.remoteOperations.paging) {\r\n that._processPaging(options, loadedGroupCount)\r\n }\r\n }\r\n loadGroupItems(that, options, loadedGroupCount, expandedInfo, 0, options.data)\r\n },\r\n _processSkips: function(items, skips, groupCount) {\r\n if (!groupCount) {\r\n return\r\n }\r\n var firstItem = items[0];\r\n var skip = skips[0];\r\n var children = firstItem && firstItem.items;\r\n if (void 0 !== skip) {\r\n firstItem.isContinuation = true;\r\n if (children) {\r\n firstItem.items = children.slice(skip);\r\n this._processSkips(firstItem.items, skips.slice(1), groupCount - 1)\r\n }\r\n }\r\n },\r\n _processTakes: function(items, skips, takes, groupCount, parents) {\r\n if (!groupCount || !items) {\r\n return\r\n }\r\n parents = parents || [];\r\n var lastItem = items[items.length - 1];\r\n var children = lastItem && lastItem.items;\r\n var take = takes[0];\r\n var skip = skips[0];\r\n if (lastItem) {\r\n var maxTakeCount = lastItem.count - (lastItem.isContinuation && skip || 0) || children.length;\r\n if (void 0 !== take && maxTakeCount > take) {\r\n lastItem.isContinuationOnNextPage = true;\r\n parents.forEach(function(parent) {\r\n parent.isContinuationOnNextPage = true\r\n });\r\n if (children) {\r\n children = children.slice(0, take);\r\n lastItem.items = children\r\n }\r\n }\r\n parents.push(lastItem);\r\n this._processTakes(children, skips.slice(1), takes.slice(1), groupCount - 1, parents)\r\n }\r\n },\r\n _processPaging: function(options, groupCount) {\r\n this._processSkips(options.data, options.skips, groupCount);\r\n this._processTakes(options.data, options.skips, options.takes, groupCount)\r\n },\r\n isLastLevelGroupItemsPagingLocal: function() {\r\n return false\r\n },\r\n sortLastLevelGroupItems: function(items) {\r\n return items\r\n },\r\n refresh: function(options, operationTypes) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var group = options.group || options.storeLoadOptions.group;\r\n var oldGroups = _uiData_grid.default.normalizeSortingInfo(that._group);\r\n var isExpanded;\r\n var groupIndex;\r\n\r\n function handleGroup(groupInfo, parents) {\r\n if (parents.length === groupIndex + 1) {\r\n groupInfo.isExpanded = isExpanded\r\n }\r\n }\r\n for (groupIndex = 0; groupIndex < oldGroups.length; groupIndex++) {\r\n isExpanded = isGroupExpanded(group, groupIndex);\r\n if (isGroupExpanded(that._group, groupIndex) !== isExpanded) {\r\n that.foreachGroups(handleGroup)\r\n }\r\n }\r\n that.callBase.apply(this, arguments);\r\n if (group && options.remoteOperations.paging && operationTypes.reload) {\r\n return foreachExpandedGroups(that, function(groupInfo) {\r\n var groupCountQuery = loadGroupTotalCount(dataSource, {\r\n filter: (0, _uiData_grid2.createGroupFilter)(groupInfo.path, {\r\n filter: storeLoadOptions.filter,\r\n group: group\r\n }),\r\n group: group.slice(groupInfo.path.length),\r\n select: storeLoadOptions.select\r\n });\r\n var groupOffsetQuery = loadGroupTotalCount(dataSource, {\r\n filter: (0, _uiData_gridGrouping.createOffsetFilter)(groupInfo.path, {\r\n filter: storeLoadOptions.filter,\r\n group: group\r\n }, true),\r\n group: group.slice(groupInfo.path.length - 1, groupInfo.path.length),\r\n select: storeLoadOptions.select\r\n });\r\n return (0, _deferred.when)(groupOffsetQuery, groupCountQuery).done(function(offset, count) {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount(options)\r\n }\r\n })\r\n }, true)\r\n }\r\n }\r\n }\r\n}());\r\nexports.GroupingHelper = GroupingHelper;\r\n","/**\r\n * DevExtreme (ui/pager.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _class = _interopRequireDefault(require(\"../core/class\"));\r\nvar _string = require(\"../core/utils/string\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _click = require(\"../events/click\");\r\nvar _pointer = _interopRequireDefault(require(\"../events/pointer\"));\r\nvar _message = _interopRequireDefault(require(\"../localization/message\"));\r\nvar _ui = _interopRequireDefault(require(\"./widget/ui.widget\"));\r\nvar _select_box = _interopRequireDefault(require(\"./select_box\"));\r\nvar _number_box = _interopRequireDefault(require(\"./number_box\"));\r\nvar _index = require(\"../events/utils/index\");\r\nvar _accessibility = require(\"./shared/accessibility\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar PAGES_LIMITER = 4;\r\nvar PAGER_CLASS = \"dx-pager\";\r\nvar PAGER_PAGE_CLASS = \"dx-page\";\r\nvar PAGER_PAGE_CLASS_SELECTOR = \".\" + PAGER_PAGE_CLASS;\r\nvar PAGER_PAGES_CLASS = \"dx-pages\";\r\nvar LIGHT_MODE_CLASS = \"dx-light-mode\";\r\nvar LIGHT_PAGES_CLASS = \"dx-light-pages\";\r\nvar PAGER_PAGE_INDEX_CLASS = \"dx-page-index\";\r\nvar PAGER_PAGES_COUNT_CLASS = \"dx-pages-count\";\r\nvar PAGER_SELECTION_CLASS = \"dx-selection\";\r\nvar PAGER_PAGE_SEPARATOR_CLASS = \"dx-separator\";\r\nvar PAGER_PAGE_SIZES_CLASS = \"dx-page-sizes\";\r\nvar PAGER_PAGE_SIZE_CLASS = \"dx-page-size\";\r\nvar PAGER_PAGE_SIZE_CLASS_SELECTOR = \".\" + PAGER_PAGE_SIZE_CLASS;\r\nvar PAGER_NAVIGATE_BUTTON = \"dx-navigate-button\";\r\nvar PAGER_PREV_BUTTON_CLASS = \"dx-prev-button\";\r\nvar PAGER_NEXT_BUTTON_CLASS = \"dx-next-button\";\r\nvar PAGER_INFO_CLASS = \"dx-info\";\r\nvar PAGER_INFO_TEXT_CLASS = \"dx-info-text\";\r\nvar PAGER_BUTTON_DISABLE_CLASS = \"dx-button-disable\";\r\nvar Page = _class.default.inherit({\r\n ctor: function(value, index) {\r\n var that = this;\r\n that.index = index;\r\n that._$page = (0, _renderer.default)(\"
\").text(value).addClass(PAGER_PAGE_CLASS)\r\n },\r\n value: function(_value) {\r\n var that = this;\r\n if ((0, _type.isDefined)(_value)) {\r\n that._$page.text(_value)\r\n } else {\r\n var text = that._$page.text();\r\n if ((0, _type.isNumeric)(text)) {\r\n return parseInt(text)\r\n } else {\r\n return text\r\n }\r\n }\r\n },\r\n element: function() {\r\n return this._$page\r\n },\r\n select: function(value) {\r\n this._$page.toggleClass(PAGER_SELECTION_CLASS, value)\r\n },\r\n render: function(rootElement, rtlEnabled) {\r\n rtlEnabled ? this._$page.prependTo(rootElement) : this._$page.appendTo(rootElement)\r\n }\r\n});\r\nvar Pager = _ui.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n visible: true,\r\n pagesNavigatorVisible: \"auto\",\r\n pageIndex: 1,\r\n maxPagesCount: 10,\r\n pageCount: 10,\r\n totalCount: 0,\r\n pageSize: 5,\r\n showPageSizes: true,\r\n pageSizes: [5, 10],\r\n hasKnownLastPage: true,\r\n showNavigationButtons: false,\r\n showInfo: false,\r\n infoText: _message.default.getFormatter(\"dxPager-infoText\"),\r\n pagesCountText: _message.default.getFormatter(\"dxPager-pagesCountText\"),\r\n rtlEnabled: false,\r\n lightModeEnabled: false,\r\n pageIndexChanged: _common.noop,\r\n pageSizeChanged: _common.noop\r\n })\r\n },\r\n _toggleVisibility: function(value) {\r\n var $element = this.$element();\r\n if ($element) {\r\n $element.css(\"display\", value ? \"\" : \"none\")\r\n }\r\n },\r\n _getPages: function(currentPage, count) {\r\n var pages = [];\r\n var showMoreButton = !this.option(\"hasKnownLastPage\");\r\n var firstValue;\r\n var i;\r\n if (count > 0 || showMoreButton) {\r\n if (count <= this.option(\"maxPagesCount\")) {\r\n for (i = 1; i <= count; i++) {\r\n pages.push(new Page(i, i - 1))\r\n }\r\n if (showMoreButton) {\r\n pages.push(new Page(\">\", i - 1))\r\n }\r\n } else {\r\n pages.push(new Page(1, 0));\r\n firstValue = currentPage ? currentPage.value() - currentPage.index : 1;\r\n var pagesCount = count === firstValue + PAGES_LIMITER ? PAGES_LIMITER - 1 : PAGES_LIMITER;\r\n for (i = 1; i <= pagesCount; i++) {\r\n pages.push(new Page(firstValue + i, i))\r\n }\r\n pages.push(new Page(count, PAGES_LIMITER + 1));\r\n if (showMoreButton) {\r\n pages.push(new Page(\">\", PAGES_LIMITER + 1))\r\n }\r\n }\r\n }\r\n return pages\r\n },\r\n _getPageByValue: function(value) {\r\n var that = this;\r\n var page;\r\n var i;\r\n for (i = 0; i < that._pages.length; i++) {\r\n page = that._pages[i];\r\n if (page.value() === value) {\r\n return page\r\n }\r\n }\r\n },\r\n _processSelectedPage: function(maxPagesCount, pageIndex, pageCount) {\r\n var that = this;\r\n var isPageIndexValid = false;\r\n var selectedPageIndex;\r\n if (that._pages) {\r\n (0, _iterator.each)(that._pages, function(key, page) {\r\n if (pageIndex === page.value()) {\r\n isPageIndexValid = true\r\n }\r\n });\r\n if (!isPageIndexValid) {\r\n that.selectedPage = null\r\n }\r\n }\r\n if ((0, _type.isDefined)(that.selectedPage)) {\r\n if (pageIndex === pageCount && pageCount > maxPagesCount && that.selectedPage.index !== PAGES_LIMITER + 1) {\r\n that.selectedPage.index = PAGES_LIMITER + 1\r\n }\r\n } else {\r\n if (pageIndex > PAGES_LIMITER && pageIndex < pageCount) {\r\n selectedPageIndex = pageCount - PAGES_LIMITER < pageIndex ? PAGES_LIMITER - (pageCount - pageIndex) + 1 : 2;\r\n that.selectedPage = new Page(pageIndex, selectedPageIndex)\r\n }\r\n }\r\n },\r\n _selectPageByValue: function(value) {\r\n var that = this;\r\n var i;\r\n var page = that._getPageByValue(value);\r\n var pages = that._pages;\r\n var pagesLength = pages.length;\r\n var nextPage;\r\n var morePage;\r\n if (!(0, _type.isDefined)(page)) {\r\n return\r\n }\r\n var prevPage = that._pages[page.index - 1];\r\n nextPage = that._pages[page.index + 1];\r\n if (nextPage && \">\" === nextPage.value()) {\r\n morePage = nextPage;\r\n nextPage = void 0;\r\n pagesLength--;\r\n pages.pop()\r\n }\r\n if (that.selectedPage) {\r\n that.selectedPage.select(false)\r\n }\r\n page.select(true);\r\n that.selectedPage = page;\r\n if (nextPage && nextPage.value() - value > 1) {\r\n if (0 !== page.index) {\r\n prevPage.value(value + 1);\r\n that._pages.splice(page.index, 1);\r\n that._pages.splice(page.index - 1, 0, page);\r\n that._pages[page.index].index = page.index;\r\n page.index = page.index - 1;\r\n for (i = page.index - 1; i > 0; i--) {\r\n that._pages[i].value(that._pages[i + 1].value() - 1)\r\n }\r\n } else {\r\n for (i = 0; i < pagesLength - 1; i++) {\r\n that._pages[i].value(i + 1)\r\n }\r\n }\r\n }\r\n if (prevPage && value - prevPage.value() > 1) {\r\n if (page.index !== pagesLength - 1) {\r\n nextPage.value(value - 1);\r\n that._pages.splice(page.index, 1);\r\n that._pages.splice(page.index + 1, 0, page);\r\n that._pages[page.index].index = page.index;\r\n page.index = page.index + 1;\r\n for (i = page.index + 1; i < pagesLength - 1; i++) {\r\n that._pages[i].value(that._pages[i - 1].value() + 1)\r\n }\r\n } else {\r\n for (i = 1; i <= pagesLength - 2; i++) {\r\n that._pages[pagesLength - 1 - i].value(that._pages[pagesLength - 1].value() - i)\r\n }\r\n }\r\n }\r\n if (morePage) {\r\n pages.push(morePage)\r\n }\r\n },\r\n _updatePagesTabIndices: function() {\r\n var _this = this;\r\n var $selectedPage = this.selectedPage._$page;\r\n var updatePageIndices = function updatePageIndices() {\r\n var buttons = (0, _renderer.default)(_this.element()).find(\"[role=button]:not(.dx-button-disable)\");\r\n (0, _iterator.each)(buttons, function(_, element) {\r\n return (0, _renderer.default)(element).attr(\"tabindex\", 0)\r\n });\r\n _events_engine.default.off($selectedPage, \"focus\", updatePageIndices)\r\n };\r\n _events_engine.default.on($selectedPage, \"focus\", updatePageIndices)\r\n },\r\n _nextPage: function(direction) {\r\n var pageIndex = this.option(\"pageIndex\");\r\n var pageCount = this.option(\"pageCount\");\r\n if ((0, _type.isDefined)(pageIndex)) {\r\n pageIndex = \"next\" === direction ? ++pageIndex : --pageIndex;\r\n if (pageIndex > 0 && pageIndex <= pageCount) {\r\n this.option(\"pageIndex\", pageIndex)\r\n }\r\n }\r\n },\r\n _wrapClickAction: function(action) {\r\n var _this2 = this;\r\n return function(e) {\r\n if (\"dxpointerup\" === e.type) {\r\n _this2._pointerUpHappened = true\r\n } else {\r\n if (_this2._pointerUpHappened) {\r\n _this2._pointerUpHappened = false;\r\n return\r\n }\r\n }\r\n action({\r\n event: e\r\n })\r\n }\r\n },\r\n _renderPages: function(pages) {\r\n var that = this;\r\n var $separator;\r\n var pagesLength = pages.length;\r\n var clickPagesIndexAction = that._createAction(function(args) {\r\n var e = args.event;\r\n var pageNumber = (0, _renderer.default)(e.target).text();\r\n var pageIndex = \">\" === pageNumber ? that.option(\"pageCount\") + 1 : Number(pageNumber);\r\n that.option(\"pageIndex\", pageIndex)\r\n });\r\n var page;\r\n if (pagesLength > 1) {\r\n that._pageClickHandler = this._wrapClickAction(clickPagesIndexAction);\r\n _events_engine.default.on(that._$pagesChooser, (0, _index.addNamespace)([_pointer.default.up, _click.name], that.Name + \"Pages\"), PAGER_PAGE_CLASS_SELECTOR, that._pageClickHandler);\r\n (0, _accessibility.registerKeyboardAction)(\"pager\", that, that._$pagesChooser, PAGER_PAGE_CLASS_SELECTOR, clickPagesIndexAction)\r\n }\r\n for (var i = 0; i < pagesLength; i++) {\r\n page = pages[i];\r\n page.render(that._$pagesChooser, that.option(\"rtlEnabled\"));\r\n that.setAria({\r\n role: \"button\",\r\n label: \"Page \" + page.value()\r\n }, page.element());\r\n (0, _accessibility.setTabIndex)(that, page.element());\r\n if (pages[i + 1] && pages[i + 1].value() - page.value() > 1) {\r\n $separator = (0, _renderer.default)(\"
\").text(\". . .\").addClass(PAGER_PAGE_SEPARATOR_CLASS);\r\n that.option(\"rtlEnabled\") ? $separator.prependTo(that._$pagesChooser) : $separator.appendTo(that._$pagesChooser)\r\n }\r\n }\r\n },\r\n _calculateLightPagesWidth: function($pageIndex, pageCount) {\r\n return Number($pageIndex.css(\"minWidth\").replace(\"px\", \"\")) + 10 * pageCount.toString().length\r\n },\r\n _renderLightPages: function() {\r\n var that = this;\r\n var pageCount = this.option(\"pageCount\");\r\n var pageIndex = this.option(\"pageIndex\");\r\n var clickAction = that._createAction(function() {\r\n that.option(\"pageIndex\", pageCount)\r\n });\r\n var pagesCountText = this.option(\"pagesCountText\");\r\n var $container = (0, _renderer.default)(\"
\").addClass(LIGHT_PAGES_CLASS).appendTo(this._$pagesChooser);\r\n var $pageIndex = (0, _renderer.default)(\"
\").addClass(PAGER_PAGE_INDEX_CLASS).appendTo($container);\r\n that._pageIndexEditor = that._createComponent($pageIndex, _number_box.default, {\r\n value: pageIndex,\r\n min: 1,\r\n max: pageCount,\r\n width: that._calculateLightPagesWidth($pageIndex, pageCount),\r\n onValueChanged: function(e) {\r\n if (null === e.value) {\r\n return\r\n }\r\n that.option(\"pageIndex\", e.value)\r\n }\r\n });\r\n (0, _renderer.default)(\"\").text(pagesCountText).addClass(PAGER_INFO_TEXT_CLASS + \" \" + PAGER_INFO_CLASS).appendTo($container);\r\n var $pageCount = (0, _renderer.default)(\"\").addClass(PAGER_PAGES_COUNT_CLASS).text(pageCount);\r\n _events_engine.default.on($pageCount, (0, _index.addNamespace)(_click.name, that.Name + \"PagesCount\"), function(e) {\r\n clickAction({\r\n event: e\r\n })\r\n });\r\n (0, _accessibility.registerKeyboardAction)(\"pager\", that, $pageCount, void 0, clickAction);\r\n $pageCount.appendTo($container);\r\n that.setAria({\r\n role: \"button\",\r\n label: \"Navigates to the last page\"\r\n }, $pageCount)\r\n },\r\n _renderPagesChooser: function() {\r\n var that = this;\r\n var lightModeEnabled = that.option(\"lightModeEnabled\");\r\n var pagesNavigatorVisible = that.option(\"pagesNavigatorVisible\");\r\n var $element = that.$element();\r\n that._$pagesChooser && that._$pagesChooser.remove();\r\n if (!pagesNavigatorVisible) {\r\n return\r\n }\r\n if (that._pages && 0 === that._pages.length) {\r\n that.selectedPage = null;\r\n return\r\n }\r\n that._$pagesChooser = (0, _renderer.default)(\"
\").addClass(PAGER_PAGES_CLASS).appendTo($element);\r\n if (\"auto\" === pagesNavigatorVisible) {\r\n that._$pagesChooser.css(\"visibility\", 1 === that.option(\"pageCount\") ? \"hidden\" : \"\")\r\n }\r\n if (!lightModeEnabled) {\r\n that._renderInfo()\r\n }\r\n that._renderNavigateButton(\"prev\");\r\n if (lightModeEnabled) {\r\n that._renderLightPages()\r\n } else {\r\n that._renderPages(that._pages)\r\n }\r\n that._renderNavigateButton(\"next\");\r\n that._updatePagesChooserWidth()\r\n },\r\n _renderPageSizes: function() {\r\n var that = this;\r\n var i;\r\n var pageSizes = that.option(\"pageSizes\");\r\n var pagesSizesLength = pageSizes && pageSizes.length;\r\n var pageSizeValue;\r\n var currentPageSize = that.option(\"pageSize\");\r\n var $pageSize;\r\n var clickPagesSizeAction = that._createAction(function(args) {\r\n var e = args.event;\r\n pageSizeValue = parseInt((0, _renderer.default)(e.target).text());\r\n that.option(\"pageSize\", pageSizeValue)\r\n });\r\n _events_engine.default.on(that._$pagesSizeChooser, (0, _index.addNamespace)(_click.name, that.Name + \"PageSize\"), PAGER_PAGE_SIZE_CLASS_SELECTOR, function(e) {\r\n clickPagesSizeAction({\r\n event: e\r\n })\r\n });\r\n (0, _accessibility.registerKeyboardAction)(\"pager\", that, that._$pagesSizeChooser, PAGER_PAGE_SIZE_CLASS_SELECTOR, clickPagesSizeAction);\r\n for (i = 0; i < pagesSizesLength; i++) {\r\n $pageSize = (0, _renderer.default)(\"
\").text(pageSizes[i]).addClass(PAGER_PAGE_SIZE_CLASS);\r\n that.setAria({\r\n role: \"button\",\r\n label: \"Display \" + pageSizes[i] + \" items on page\"\r\n }, $pageSize);\r\n (0, _accessibility.setTabIndex)(that, $pageSize);\r\n if (currentPageSize === pageSizes[i]) {\r\n $pageSize.addClass(PAGER_SELECTION_CLASS)\r\n }\r\n that._$pagesSizeChooser.append($pageSize)\r\n }\r\n },\r\n _calculateLightPageSizesWidth: function(pageSizes) {\r\n return Number(this._$pagesSizeChooser.css(\"minWidth\").replace(\"px\", \"\")) + 10 * Math.max.apply(Math, pageSizes).toString().length\r\n },\r\n _renderLightPageSizes: function() {\r\n var that = this;\r\n var pageSizes = that.option(\"pageSizes\");\r\n var $editor = (0, _renderer.default)(\"
\").appendTo(that._$pagesSizeChooser);\r\n that._pageSizeEditor = that._createComponent($editor, _select_box.default, {\r\n dataSource: pageSizes,\r\n value: that.option(\"pageSize\"),\r\n onSelectionChanged: function(e) {\r\n that.option(\"pageSize\", e.selectedItem)\r\n },\r\n width: that._calculateLightPageSizesWidth(pageSizes)\r\n })\r\n },\r\n _renderPagesSizeChooser: function() {\r\n var that = this;\r\n var pageSizes = that.option(\"pageSizes\");\r\n var showPageSizes = that.option(\"showPageSizes\");\r\n var pagesSizesLength = pageSizes && pageSizes.length;\r\n var $element = that.$element();\r\n that._$pagesSizeChooser && that._$pagesSizeChooser.remove();\r\n if (!showPageSizes || !pagesSizesLength) {\r\n return\r\n }\r\n that._$pagesSizeChooser = (0, _renderer.default)(\"
\").addClass(PAGER_PAGE_SIZES_CLASS).appendTo($element);\r\n if (that.option(\"lightModeEnabled\")) {\r\n that._renderLightPageSizes()\r\n } else {\r\n that._renderPageSizes()\r\n }\r\n that._pagesSizeChooserWidth = that._$pagesSizeChooser.width()\r\n },\r\n _renderInfo: function() {\r\n var infoText = this.option(\"infoText\");\r\n if (this.option(\"showInfo\") && (0, _type.isDefined)(infoText)) {\r\n this._$info = (0, _renderer.default)(\"
\").css(\"display\", this._isInfoHide ? \"none\" : \"\").addClass(PAGER_INFO_CLASS).text((0, _string.format)(infoText, this.selectedPage && this.selectedPage.value(), this.option(\"pageCount\"), this.option(\"totalCount\"))).appendTo(this._$pagesChooser);\r\n if (!this._isInfoHide) {\r\n this._infoWidth = this._$info.outerWidth(true)\r\n }\r\n }\r\n },\r\n _renderNavigateButton: function(direction) {\r\n var that = this;\r\n var clickAction = that._createAction(function() {\r\n that._nextPage(direction)\r\n });\r\n var $button;\r\n if (that.option(\"showNavigationButtons\") || that.option(\"lightModeEnabled\")) {\r\n $button = (0, _renderer.default)(\"
\").addClass(PAGER_NAVIGATE_BUTTON);\r\n _events_engine.default.on($button, (0, _index.addNamespace)([_pointer.default.up, _click.name], that.Name + \"Pages\"), that._wrapClickAction(clickAction));\r\n (0, _accessibility.registerKeyboardAction)(\"pager\", that, $button, void 0, clickAction);\r\n that.setAria({\r\n role: \"button\",\r\n label: \"prev\" === direction ? \"Previous page\" : \" Next page\"\r\n }, $button);\r\n (0, _accessibility.setTabIndex)(that, $button);\r\n if (that.option(\"rtlEnabled\")) {\r\n $button.addClass(\"prev\" === direction ? PAGER_NEXT_BUTTON_CLASS : PAGER_PREV_BUTTON_CLASS);\r\n $button.prependTo(this._$pagesChooser)\r\n } else {\r\n $button.addClass(\"prev\" === direction ? PAGER_PREV_BUTTON_CLASS : PAGER_NEXT_BUTTON_CLASS);\r\n $button.appendTo(this._$pagesChooser)\r\n }\r\n }\r\n },\r\n _renderContentImpl: function() {\r\n this.$element().toggleClass(LIGHT_MODE_CLASS, this.option(\"lightModeEnabled\"));\r\n this._toggleVisibility(this.option(\"visible\"));\r\n this._updatePageSizes(true);\r\n this._updatePages(true);\r\n (0, _accessibility.restoreFocus)(this)\r\n },\r\n _initMarkup: function() {\r\n var $element = this.$element();\r\n $element.addClass(PAGER_CLASS);\r\n var $pageSize = (0, _renderer.default)(\"
\").addClass(PAGER_PAGE_CLASS);\r\n this._$pagesChooser = (0, _renderer.default)(\"
\").addClass(PAGER_PAGES_CLASS).append($pageSize).appendTo($element)\r\n },\r\n _render: function() {\r\n this.option().lightModeEnabled = false;\r\n this.callBase();\r\n this._updateLightMode()\r\n },\r\n _updatePageSizes: function(forceRender) {\r\n var lightModeEnabled = this.option(\"lightModeEnabled\");\r\n var pageSize = this.option(\"pageSize\");\r\n var pageSizes = this.option(\"pageSizes\");\r\n if (lightModeEnabled) {\r\n this._pageSizeEditor && this._pageSizeEditor.option({\r\n value: pageSize,\r\n dataSource: pageSizes,\r\n width: this._calculateLightPageSizesWidth(pageSizes)\r\n })\r\n }\r\n if (!lightModeEnabled || forceRender) {\r\n this._renderPagesSizeChooser()\r\n }\r\n },\r\n _updatePages: function(forceRender) {\r\n var pageCount = this.option(\"pageCount\");\r\n var pageIndex = this.option(\"pageIndex\");\r\n var lightModeEnabled = this.option(\"lightModeEnabled\");\r\n if (!lightModeEnabled) {\r\n this._processSelectedPage(this.option(\"maxPagesCount\"), pageIndex, pageCount);\r\n this._pages = this._getPages(this.selectedPage, pageCount);\r\n this._selectPageByValue(pageIndex)\r\n } else {\r\n this._pageIndexEditor && this._pageIndexEditor.option({\r\n value: pageIndex,\r\n width: this._calculateLightPagesWidth(this._pageIndexEditor.$element(), pageCount)\r\n })\r\n }\r\n if (!lightModeEnabled || forceRender) {\r\n this._renderPagesChooser()\r\n }\r\n this._updateButtonsState(pageIndex)\r\n },\r\n _isPageIndexInvalid: function(direction, pageIndex) {\r\n var isNextDirection = \"next\" === direction;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled && isNextDirection || !rtlEnabled && !isNextDirection) {\r\n return pageIndex <= 1\r\n }\r\n return pageIndex >= this.option(\"pageCount\")\r\n },\r\n _updateButtonsState: function(pageIndex) {\r\n var nextButton = this.$element().find(\".\" + PAGER_NEXT_BUTTON_CLASS);\r\n var prevButton = this.$element().find(\".\" + PAGER_PREV_BUTTON_CLASS);\r\n nextButton.toggleClass(PAGER_BUTTON_DISABLE_CLASS, this._isPageIndexInvalid(\"next\", pageIndex));\r\n prevButton.toggleClass(PAGER_BUTTON_DISABLE_CLASS, this._isPageIndexInvalid(\"prev\", pageIndex))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"visible\":\r\n this._toggleVisibility(args.value);\r\n break;\r\n case \"pageIndex\":\r\n var pageIndexChanged = this.option(\"pageIndexChanged\");\r\n if (pageIndexChanged) {\r\n pageIndexChanged(args.value)\r\n }\r\n this._updatePages();\r\n break;\r\n case \"maxPagesCount\":\r\n case \"pageCount\":\r\n case \"totalCount\":\r\n case \"hasKnownLastPage\":\r\n case \"pagesNavigatorVisible\":\r\n case \"showNavigationButtons\":\r\n this._updatePages();\r\n break;\r\n case \"pageSize\":\r\n var pageSizeChanged = this.option(\"pageSizeChanged\");\r\n if (pageSizeChanged) {\r\n pageSizeChanged(args.value)\r\n }\r\n this._updatePageSizes();\r\n break;\r\n case \"pageSizes\":\r\n this._updatePageSizes();\r\n break;\r\n case \"lightModeEnabled\":\r\n this._renderContentImpl();\r\n !args.value && this._updateLightMode();\r\n break;\r\n default:\r\n this._invalidate()\r\n }\r\n },\r\n _clean: function() {\r\n if (this._$pagesChooser) {\r\n _events_engine.default.off(this._$pagesChooser, (0, _index.addNamespace)([_pointer.default.up, _click.name], this.Name + \"Pages\"), PAGER_PAGE_CLASS_SELECTOR, this._pageClickHandler);\r\n (0, _accessibility.registerKeyboardAction)(\"pager\", this, this._$pagesChooser, PAGER_PAGE_CLASS_SELECTOR, this._pageKeyDownHandler)\r\n }\r\n this.callBase()\r\n },\r\n _getMinPagerWidth: function() {\r\n var pagesChooserWidth = (0, _type.isDefined)(this._pagesChooserWidth) ? this._pagesChooserWidth : 0;\r\n var pagesSizeChooserWidth = (0, _type.isDefined)(this._pagesSizeChooserWidth) ? this._pagesSizeChooserWidth : 0;\r\n return pagesChooserWidth + pagesSizeChooserWidth\r\n },\r\n _updatePagesChooserWidth: (0, _common.deferUpdater)(function() {\r\n var lastPageWidth = this._pages && this._pages.length > 0 ? this._pages[this._pages.length - 1]._$page.width() : 0;\r\n this._pagesChooserWidth = this._$pagesChooser.width() + lastPageWidth\r\n }),\r\n _updateLightMode: (0, _common.deferUpdater)(function() {\r\n var that = this;\r\n var width = this.$element().width();\r\n var infoWidth = (0, _type.isDefined)(this._infoWidth) ? this._infoWidth : 0;\r\n (0, _common.deferRender)(function() {\r\n if (that._isInfoHide && width > that._getMinPagerWidth() + infoWidth) {\r\n that._$info.css(\"display\", \"\");\r\n that._updatePagesChooserWidth();\r\n that._isInfoHide = false\r\n }\r\n if (!that._isInfoHide && width > that._getMinPagerWidth() - infoWidth && width < that._getMinPagerWidth()) {\r\n that._$info.css(\"display\", \"none\");\r\n that._updatePagesChooserWidth();\r\n that._isInfoHide = true\r\n }(0, _common.deferUpdate)(function() {\r\n (0, _common.deferRender)(function() {\r\n if (that.option(\"lightModeEnabled\") && width > that._previousWidth) {\r\n that.option(\"lightModeEnabled\", false)\r\n } else {\r\n if (width < that._getMinPagerWidth()) {\r\n that.option(\"lightModeEnabled\", true)\r\n }\r\n }\r\n that._previousWidth = width\r\n })\r\n })\r\n })\r\n }),\r\n _dimensionChanged: function() {\r\n this._updateLightMode()\r\n },\r\n getHeight: function() {\r\n return this.option(\"visible\") ? this.$element().outerHeight() : 0\r\n }\r\n});\r\nvar _default = Pager;\r\nexports.default = _default;\r\n(0, _component_registrator.default)(\"dxPager\", Pager);\r\nmodule.exports = exports.default;\r\n","var lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list) {\n var index = 0;\n var length = lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.rows.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.RowsView = void 0;\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.rows\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar RowsView = _uiGrid_core.default.views.rowsView;\r\nexports.RowsView = RowsView;\r\n_uiData_grid.default.registerModule(\"rows\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.header_panel.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.HeaderPanel = void 0;\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.header_panel\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar HeaderPanel = _uiGrid_core.default.views.headerPanel;\r\nexports.HeaderPanel = HeaderPanel;\r\n_uiData_grid.default.registerModule(\"headerPanel\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.files_tree_view.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _icon = require(\"../../core/utils/icon\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _uiTree_view = _interopRequireDefault(require(\"../tree_view/ui.tree_view.search\"));\r\nvar _uiFile_manager = _interopRequireDefault(require(\"./ui.file_manager.file_actions_button\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _type = require(\"../../core/utils/type\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_DIRS_TREE_CLASS = \"dx-filemanager-dirs-tree\";\r\nvar FILE_MANAGER_DIRS_TREE_FOCUSED_ITEM_CLASS = \"dx-filemanager-focused-item\";\r\nvar FILE_MANAGER_DIRS_TREE_ITEM_TEXT_CLASS = \"dx-filemanager-dirs-tree-item-text\";\r\nvar TREE_VIEW_ITEM_CLASS = \"dx-treeview-item\";\r\nvar FileManagerFilesTreeView = function(_Widget) {\r\n _inheritsLoose(FileManagerFilesTreeView, _Widget);\r\n\r\n function FileManagerFilesTreeView() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerFilesTreeView.prototype;\r\n _proto._initMarkup = function() {\r\n var _this = this;\r\n this._initActions();\r\n this._getCurrentDirectory = this.option(\"getCurrentDirectory\");\r\n this._createFileActionsButton = _common.noop;\r\n this._storeExpandedState = this.option(\"storeExpandedState\") || false;\r\n var $treeView = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_DIRS_TREE_CLASS).appendTo(this.$element());\r\n var treeViewOptions = {\r\n dataStructure: \"plain\",\r\n rootValue: \"\",\r\n createChildren: this._onFilesTreeViewCreateSubDirectories.bind(this),\r\n itemTemplate: this._createFilesTreeViewItemTemplate.bind(this),\r\n keyExpr: \"getInternalKey\",\r\n parentIdExpr: \"parentDirectory.getInternalKey\",\r\n displayExpr: function(itemInfo) {\r\n return itemInfo.getDisplayName()\r\n },\r\n hasItemsExpr: \"fileItem.hasSubDirectories\",\r\n onItemClick: function(e) {\r\n return _this._actions.onDirectoryClick(e)\r\n },\r\n onItemExpanded: function(e) {\r\n return _this._onFilesTreeViewItemExpanded(e)\r\n },\r\n onItemCollapsed: function(e) {\r\n return _this._onFilesTreeViewItemCollapsed(e)\r\n },\r\n onItemRendered: function(e) {\r\n return _this._onFilesTreeViewItemRendered(e)\r\n },\r\n onContentReady: function() {\r\n return _this._actions.onFilesTreeViewContentReady()\r\n }\r\n };\r\n if (this._contextMenu) {\r\n this._contextMenu.option(\"onContextMenuHidden\", function() {\r\n return _this._onContextMenuHidden()\r\n });\r\n treeViewOptions.onItemContextMenu = function(e) {\r\n return _this._onFilesTreeViewItemContextMenu(e)\r\n };\r\n this._createFileActionsButton = function(element, options) {\r\n return _this._createComponent(element, _uiFile_manager.default, options)\r\n }\r\n }\r\n this._filesTreeView = this._createComponent($treeView, _uiTree_view.default, treeViewOptions);\r\n _events_engine.default.on($treeView, \"click\", function() {\r\n return _this._actions.onClick()\r\n })\r\n };\r\n _proto._initActions = function() {\r\n this._actions = {\r\n onClick: this._createActionByOption(\"onClick\"),\r\n onDirectoryClick: this._createActionByOption(\"onDirectoryClick\"),\r\n onFilesTreeViewContentReady: this._createActionByOption(\"onFilesTreeViewContentReady\")\r\n }\r\n };\r\n _proto._render = function() {\r\n _Widget.prototype._render.call(this);\r\n var that = this;\r\n setTimeout(function() {\r\n that._updateFocusedElement()\r\n })\r\n };\r\n _proto._onFilesTreeViewCreateSubDirectories = function(rootItem) {\r\n var getDirectories = this.option(\"getDirectories\");\r\n var directoryInfo = rootItem && rootItem.itemData || null;\r\n return getDirectories && getDirectories(directoryInfo, true)\r\n };\r\n _proto._onFilesTreeViewItemRendered = function(_ref) {\r\n var itemData = _ref.itemData;\r\n var currentDirectory = this._getCurrentDirectory();\r\n if (currentDirectory && currentDirectory.fileItem.equals(itemData.fileItem)) {\r\n this._updateFocusedElement();\r\n this._restoreScrollTopPosition()\r\n }\r\n };\r\n _proto._onFilesTreeViewItemExpanded = function(_ref2) {\r\n var itemData = _ref2.itemData;\r\n if (this._storeExpandedState) {\r\n itemData.expanded = true\r\n }\r\n };\r\n _proto._onFilesTreeViewItemCollapsed = function(_ref3) {\r\n var itemData = _ref3.itemData;\r\n if (this._storeExpandedState) {\r\n itemData.expanded = false\r\n }\r\n };\r\n _proto._createFilesTreeViewItemTemplate = function(itemData, itemIndex, itemElement) {\r\n var _this2 = this;\r\n var $itemElement = (0, _renderer.default)(itemElement);\r\n var $itemWrapper = $itemElement.closest(this._filesTreeViewItemSelector);\r\n $itemWrapper.data(\"item\", itemData);\r\n var $image = (0, _icon.getImageContainer)(itemData.icon);\r\n var $text = (0, _renderer.default)(\"\").text(itemData.getDisplayName()).addClass(FILE_MANAGER_DIRS_TREE_ITEM_TEXT_CLASS);\r\n var $button = (0, _renderer.default)(\"
\");\r\n $itemElement.append($image, $text, $button);\r\n this._createFileActionsButton($button, {\r\n onClick: function(e) {\r\n return _this2._onFileItemActionButtonClick(e)\r\n }\r\n })\r\n };\r\n _proto._onFilesTreeViewItemContextMenu = function(_ref4) {\r\n var itemElement = _ref4.itemElement,\r\n event = _ref4.event;\r\n event.preventDefault();\r\n var itemData = (0, _renderer.default)(itemElement).data(\"item\");\r\n this._contextMenu.showAt([itemData], itemElement, event)\r\n };\r\n _proto._onFileItemActionButtonClick = function(_ref5) {\r\n var component = _ref5.component,\r\n element = _ref5.element,\r\n event = _ref5.event;\r\n event.stopPropagation();\r\n var $item = component.$element().closest(this._filesTreeViewItemSelector);\r\n var item = $item.data(\"item\");\r\n this._contextMenu.showAt([item], element);\r\n this._activeFileActionsButton = component;\r\n this._activeFileActionsButton.setActive(true)\r\n };\r\n _proto._onContextMenuHidden = function() {\r\n if (this._activeFileActionsButton) {\r\n this._activeFileActionsButton.setActive(false)\r\n }\r\n };\r\n _proto.toggleNodeDisabledState = function(key, state) {\r\n var node = this._getNodeByKey(key);\r\n if (!node) {\r\n return\r\n }\r\n var items = this._filesTreeView.option(\"items\");\r\n var itemIndex = items.map(function(item) {\r\n return item.getInternalKey()\r\n }).indexOf(node.getInternalKey());\r\n if (itemIndex !== -1) {\r\n this._filesTreeView.option(\"items[\".concat(itemIndex, \"].disabled\"), state)\r\n }\r\n };\r\n _proto._saveScrollTopPosition = function() {\r\n if (!(0, _window.hasWindow)()) {\r\n return\r\n }\r\n this._scrollTopPosition = this._filesTreeView._scrollableContainer.scrollTop()\r\n };\r\n _proto._restoreScrollTopPosition = function() {\r\n var _this3 = this;\r\n if (!(0, _window.hasWindow)() || !(0, _type.isNumeric)(this._scrollTopPosition)) {\r\n return\r\n }\r\n setTimeout(function() {\r\n return _this3._filesTreeView._scrollableContainer.scrollTo(_this3._scrollTopPosition)\r\n })\r\n };\r\n _proto._updateFocusedElement = function() {\r\n var directoryInfo = this._getCurrentDirectory();\r\n var $element = this._getItemElementByKey(null === directoryInfo || void 0 === directoryInfo ? void 0 : directoryInfo.getInternalKey());\r\n if (this._$focusedElement) {\r\n this._$focusedElement.toggleClass(FILE_MANAGER_DIRS_TREE_FOCUSED_ITEM_CLASS, false)\r\n }\r\n this._$focusedElement = $element || (0, _renderer.default)();\r\n this._$focusedElement.toggleClass(FILE_MANAGER_DIRS_TREE_FOCUSED_ITEM_CLASS, true)\r\n };\r\n _proto._getNodeByKey = function(key) {\r\n var _this$_filesTreeView;\r\n return null === (_this$_filesTreeView = this._filesTreeView) || void 0 === _this$_filesTreeView ? void 0 : _this$_filesTreeView._getNode(key)\r\n };\r\n _proto._getItemElementByKey = function(key) {\r\n var node = this._getNodeByKey(key);\r\n if (node) {\r\n var $node = this._filesTreeView._getNodeElement(node);\r\n if ($node) {\r\n return $node.children(this._filesTreeViewItemSelector)\r\n }\r\n }\r\n return null\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {\r\n storeExpandedState: false,\r\n initialFolder: null,\r\n contextMenu: null,\r\n getItems: null,\r\n getCurrentDirectory: null,\r\n onDirectoryClick: null\r\n })\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"storeExpandedState\":\r\n this._storeExpandedState = this.option(name);\r\n break;\r\n case \"getItems\":\r\n case \"rootFolderDisplayName\":\r\n case \"initialFolder\":\r\n case \"contextMenu\":\r\n this.repaint();\r\n break;\r\n case \"getCurrentDirectory\":\r\n this.getCurrentDirectory = this.option(name);\r\n break;\r\n case \"onClick\":\r\n case \"onDirectoryClick\":\r\n case \"onFilesTreeViewContentReady\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto.toggleDirectoryExpandedState = function(directoryInfo, state) {\r\n var deferred = new _deferred.Deferred;\r\n var treeViewNode = this._getNodeByKey(null === directoryInfo || void 0 === directoryInfo ? void 0 : directoryInfo.getInternalKey());\r\n if (!treeViewNode) {\r\n return deferred.reject().promise()\r\n }\r\n if (treeViewNode.expanded === state || treeViewNode.itemsLoaded && !treeViewNode.fileItem.hasSubDirectories) {\r\n return deferred.resolve().promise()\r\n }\r\n var action = state ? \"expandItem\" : \"collapseItem\";\r\n return this._filesTreeView[action](directoryInfo.getInternalKey())\r\n };\r\n _proto.refresh = function() {\r\n this._$focusedElement = null;\r\n this._saveScrollTopPosition();\r\n this._filesTreeView.option(\"dataSource\", [])\r\n };\r\n _proto.updateCurrentDirectory = function() {\r\n if (this._disposed) {\r\n return\r\n }\r\n this._updateFocusedElement();\r\n this._storeExpandedState && this._updateExpandedStateToCurrentDirectory()\r\n };\r\n _proto._updateExpandedStateToCurrentDirectory = function() {\r\n return this.toggleDirectoryExpandedStateRecursive(this._getCurrentDirectory(), true)\r\n };\r\n _proto.toggleDirectoryExpandedStateRecursive = function(directoryInfo, state) {\r\n var dirLine = [];\r\n for (var dirInfo = directoryInfo; dirInfo; dirInfo = dirInfo.parentDirectory) {\r\n dirLine.unshift(dirInfo)\r\n }\r\n return this.toggleDirectoryLineExpandedState(dirLine, state)\r\n };\r\n _proto.toggleDirectoryLineExpandedState = function(dirLine, state) {\r\n var _this4 = this;\r\n if (!dirLine.length) {\r\n return (new _deferred.Deferred).resolve().promise()\r\n }\r\n return this.toggleDirectoryExpandedState(dirLine.shift(), state).then(function() {\r\n return _this4.toggleDirectoryLineExpandedState(dirLine, state)\r\n })\r\n };\r\n _createClass(FileManagerFilesTreeView, [{\r\n key: \"_filesTreeViewItemSelector\",\r\n get: function() {\r\n return \".\".concat(TREE_VIEW_ITEM_CLASS)\r\n }\r\n }, {\r\n key: \"_contextMenu\",\r\n get: function() {\r\n return this.option(\"contextMenu\")\r\n }\r\n }]);\r\n return FileManagerFilesTreeView\r\n}(_ui.default);\r\nvar _default = FileManagerFilesTreeView;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.selection.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.selection\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"selection\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.filter_panel.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.filter_panel\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"filterPanel\", _uiGrid_core.default);\r\n","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar apply = require('../internals/function-apply');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : $lastIndexOf;\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.export.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.ExportController = exports.DataProvider = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.export_mixin\"));\r\nvar _exporter = require(\"../../exporter\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\nvar _list = _interopRequireDefault(require(\"../list\"));\r\nvar _context_menu = _interopRequireDefault(require(\"../context_menu\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\nvar DATAGRID_EXPORT_MENU_CLASS = \"dx-datagrid-export-menu\";\r\nvar DATAGRID_EXPORT_BUTTON_CLASS = \"dx-datagrid-export-button\";\r\nvar DATAGRID_EXPORT_ICON = \"export-to\";\r\nvar DATAGRID_EXPORT_EXCEL_ICON = \"xlsxfile\";\r\nvar DATAGRID_EXPORT_SELECTED_ICON = \"exportselected\";\r\nvar DATAGRID_EXPORT_EXCEL_BUTTON_ICON = \"export-excel-button\";\r\nvar TOOLBAR_ITEM_AUTO_HIDE_CLASS = \"dx-toolbar-item-auto-hide\";\r\nvar TOOLBAR_HIDDEN_BUTTON_CLASS = \"dx-toolbar-hidden-button\";\r\nvar BUTTON_CLASS = \"dx-button\";\r\nvar DataProvider = _class.default.inherit({\r\n _getGroupValue: function(item) {\r\n var key = item.key,\r\n data = item.data,\r\n rowType = item.rowType,\r\n groupIndex = item.groupIndex,\r\n summaryCells = item.summaryCells;\r\n var groupColumn = this._options.groupColumns[groupIndex];\r\n var value = _uiData_grid.default.getDisplayValue(groupColumn, groupColumn.deserializeValue ? groupColumn.deserializeValue(key[groupIndex]) : key[groupIndex], data, rowType);\r\n var result = groupColumn.caption + \": \" + _uiData_grid.default.formatValue(value, groupColumn);\r\n if (summaryCells && summaryCells[0] && summaryCells[0].length) {\r\n result += \" \" + _uiData_grid.default.getGroupRowSummaryText(summaryCells[0], this._options.summaryTexts)\r\n }\r\n return result\r\n },\r\n _correctCellIndex: function(cellIndex) {\r\n return cellIndex\r\n },\r\n _initOptions: function() {\r\n var exportController = this._exportController;\r\n var groupColumns = exportController._columnsController.getGroupColumns();\r\n var excelWrapTextEnabled = exportController.option(\"export.excelWrapTextEnabled\");\r\n this._options = {\r\n columns: exportController._getColumns(this._initialColumnWidthsByColumnIndex),\r\n groupColumns: groupColumns,\r\n items: this._selectedRowsOnly || exportController._selectionOnly ? exportController._getSelectedItems() : exportController._getAllItems(),\r\n getVisibleIndex: exportController._columnsController.getVisibleIndex.bind(exportController._columnsController),\r\n isHeadersVisible: exportController.option(\"showColumnHeaders\"),\r\n summaryTexts: exportController.option(\"summary.texts\"),\r\n customizeExportData: exportController.option(\"customizeExportData\"),\r\n rtlEnabled: exportController.option(\"rtlEnabled\"),\r\n wrapTextEnabled: (0, _type.isDefined)(excelWrapTextEnabled) ? excelWrapTextEnabled : !!exportController.option(\"wordWrapEnabled\"),\r\n customizeExcelCell: exportController.option(\"export.customizeExcelCell\")\r\n }\r\n },\r\n hasCustomizeExcelCell: function() {\r\n return (0, _type.isDefined)(this._options.customizeExcelCell)\r\n },\r\n customizeExcelCell: function(e, cellSourceData) {\r\n if (this._options.customizeExcelCell) {\r\n e.gridCell = cellSourceData;\r\n if ((0, _type.isDefined)(this._exportController) && (0, _type.isDefined)(this._exportController.component)) {\r\n e.component = this._exportController.component\r\n }\r\n this._options.customizeExcelCell(e)\r\n }\r\n },\r\n ctor: function(exportController, initialColumnWidthsByColumnIndex, selectedRowsOnly) {\r\n this._exportController = exportController;\r\n this._initialColumnWidthsByColumnIndex = initialColumnWidthsByColumnIndex;\r\n this._selectedRowsOnly = selectedRowsOnly\r\n },\r\n getHeaderStyles: function() {\r\n return [{\r\n bold: true,\r\n alignment: \"center\",\r\n wrapText: true\r\n }, {\r\n bold: true,\r\n alignment: \"left\",\r\n wrapText: true\r\n }, {\r\n bold: true,\r\n alignment: \"right\",\r\n wrapText: true\r\n }]\r\n },\r\n getGroupRowStyle: function() {\r\n return {\r\n bold: true,\r\n wrapText: false,\r\n alignment: (0, _position.getDefaultAlignment)(this._options.rtlEnabled)\r\n }\r\n },\r\n getColumnStyles: function() {\r\n var wrapTextEnabled = this._options.wrapTextEnabled;\r\n var columnStyles = [];\r\n this.getColumns().forEach(function(column) {\r\n columnStyles.push({\r\n alignment: column.alignment || \"left\",\r\n format: column.format,\r\n wrapText: wrapTextEnabled,\r\n dataType: column.dataType\r\n })\r\n });\r\n return columnStyles\r\n },\r\n getStyles: function() {\r\n return [].concat(_toConsumableArray(this.getHeaderStyles()), _toConsumableArray(this.getColumnStyles()), [this.getGroupRowStyle()])\r\n },\r\n _getTotalCellStyleId: function(cellIndex) {\r\n var _this$getColumns$cell;\r\n var alignment = (null === (_this$getColumns$cell = this.getColumns()[cellIndex]) || void 0 === _this$getColumns$cell ? void 0 : _this$getColumns$cell.alignment) || \"right\";\r\n return this.getHeaderStyles().map(function(style) {\r\n return style.alignment\r\n }).indexOf(alignment)\r\n },\r\n getStyleId: function(rowIndex, cellIndex) {\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n return 0\r\n } else {\r\n if (this.isTotalCell(rowIndex - this.getHeaderRowCount(), cellIndex)) {\r\n return this._getTotalCellStyleId(cellIndex)\r\n } else {\r\n if (this.isGroupRow(rowIndex - this.getHeaderRowCount())) {\r\n return this.getHeaderStyles().length + this.getColumns().length\r\n } else {\r\n return cellIndex + this.getHeaderStyles().length\r\n }\r\n }\r\n }\r\n },\r\n getColumns: function(getColumnsByAllRows) {\r\n var columns = this._options.columns;\r\n return getColumnsByAllRows ? columns : columns[columns.length - 1]\r\n },\r\n getColumnsWidths: function() {\r\n var columns = this.getColumns();\r\n return (0, _type.isDefined)(columns) ? columns.map(function(c) {\r\n return c.width\r\n }) : void 0\r\n },\r\n getRowsCount: function() {\r\n return this._options.items.length + this.getHeaderRowCount()\r\n },\r\n getHeaderRowCount: function() {\r\n if (this.isHeadersVisible()) {\r\n return this._options.columns.length - 1\r\n }\r\n return 0\r\n },\r\n isGroupRow: function(rowIndex) {\r\n return rowIndex < this._options.items.length && \"group\" === this._options.items[rowIndex].rowType\r\n },\r\n getGroupLevel: function(rowIndex) {\r\n var item = this._options.items[rowIndex - this.getHeaderRowCount()];\r\n var groupIndex = item && item.groupIndex;\r\n if (item && \"totalFooter\" === item.rowType) {\r\n return 0\r\n }\r\n return (0, _type.isDefined)(groupIndex) ? groupIndex : this._options.groupColumns.length\r\n },\r\n getCellType: function(rowIndex, cellIndex) {\r\n var columns = this.getColumns();\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n return \"string\"\r\n } else {\r\n rowIndex -= this.getHeaderRowCount()\r\n }\r\n if (cellIndex < columns.length) {\r\n var item = this._options.items.length && this._options.items[rowIndex];\r\n var column = columns[cellIndex];\r\n if (item && \"data\" === item.rowType) {\r\n if (isFinite(item.values[this._correctCellIndex(cellIndex)]) && !(0, _type.isDefined)(column.customizeText)) {\r\n return (0, _type.isDefined)(column.lookup) ? column.lookup.dataType : column.dataType\r\n }\r\n }\r\n return \"string\"\r\n }\r\n },\r\n ready: function() {\r\n var that = this;\r\n that._initOptions();\r\n var options = that._options;\r\n return (0, _deferred.when)(options.items).done(function(items) {\r\n options.customizeExportData && options.customizeExportData(that.getColumns(that.getHeaderRowCount() > 1), items);\r\n options.items = items\r\n }).fail(function() {\r\n options.items = []\r\n })\r\n },\r\n _convertFromGridGroupSummaryItems: function(gridGroupSummaryItems) {\r\n if ((0, _type.isDefined)(gridGroupSummaryItems) && gridGroupSummaryItems.length > 0) {\r\n return gridGroupSummaryItems.map(function(item) {\r\n return {\r\n value: item.value,\r\n name: item.name\r\n }\r\n })\r\n }\r\n },\r\n getCellData: function(rowIndex, cellIndex, isExcelJS) {\r\n var value;\r\n var column;\r\n var result = {\r\n cellSourceData: {},\r\n value: value\r\n };\r\n var columns = this.getColumns();\r\n var correctedCellIndex = this._correctCellIndex(cellIndex);\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n var columnsRow = this.getColumns(true)[rowIndex];\r\n column = columnsRow[cellIndex];\r\n result.cellSourceData.rowType = \"header\";\r\n result.cellSourceData.column = column && column.gridColumn;\r\n result.value = column && column.caption\r\n } else {\r\n rowIndex -= this.getHeaderRowCount();\r\n var item = this._options.items.length && this._options.items[rowIndex];\r\n if (item) {\r\n var itemValues = item.values;\r\n result.cellSourceData.rowType = item.rowType;\r\n result.cellSourceData.column = columns[cellIndex] && columns[cellIndex].gridColumn;\r\n switch (item.rowType) {\r\n case \"groupFooter\":\r\n case \"totalFooter\":\r\n if (correctedCellIndex < itemValues.length) {\r\n value = itemValues[correctedCellIndex];\r\n if ((0, _type.isDefined)(value)) {\r\n result.cellSourceData.value = value.value;\r\n result.cellSourceData.totalSummaryItemName = value.name;\r\n result.value = _uiData_grid.default.getSummaryText(value, this._options.summaryTexts)\r\n } else {\r\n result.cellSourceData.value = void 0\r\n }\r\n }\r\n break;\r\n case \"group\":\r\n result.cellSourceData.groupIndex = item.groupIndex;\r\n if (cellIndex < 1) {\r\n result.cellSourceData.column = this._options.groupColumns[item.groupIndex];\r\n result.cellSourceData.value = item.key[item.groupIndex];\r\n result.cellSourceData.groupSummaryItems = this._convertFromGridGroupSummaryItems(item.summaryCells[0]);\r\n result.value = this._getGroupValue(item)\r\n } else {\r\n var summaryItems = item.values[correctedCellIndex];\r\n if (Array.isArray(summaryItems)) {\r\n result.cellSourceData.groupSummaryItems = this._convertFromGridGroupSummaryItems(summaryItems);\r\n value = \"\";\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n value += (i > 0 ? isExcelJS ? \"\\n\" : \" \\n \" : \"\") + _uiData_grid.default.getSummaryText(summaryItems[i], this._options.summaryTexts)\r\n }\r\n result.value = value\r\n } else {\r\n result.cellSourceData.value = void 0\r\n }\r\n }\r\n break;\r\n default:\r\n column = columns[cellIndex];\r\n if (column) {\r\n var _value = itemValues[correctedCellIndex];\r\n var displayValue = _uiData_grid.default.getDisplayValue(column, _value, item.data, item.rowType);\r\n if (!isFinite(displayValue) || (0, _type.isDefined)(column.customizeText)) {\r\n if (isExcelJS && (0, _type.isDefined)(column.customizeText) && column.customizeText === this._exportController._columnsController.getCustomizeTextByDataType(\"boolean\")) {\r\n result.value = displayValue\r\n } else {\r\n result.value = _uiData_grid.default.formatValue(displayValue, column)\r\n }\r\n } else {\r\n result.value = displayValue\r\n }\r\n result.cellSourceData.value = _value\r\n }\r\n result.cellSourceData.data = item.data\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n isHeadersVisible: function() {\r\n return this._options.isHeadersVisible\r\n },\r\n isTotalCell: function(rowIndex, cellIndex) {\r\n var items = this._options.items;\r\n var item = items[rowIndex];\r\n var correctCellIndex = this._correctCellIndex(cellIndex);\r\n var isSummaryAlignByColumn = item.summaryCells && item.summaryCells[correctCellIndex] && item.summaryCells[correctCellIndex].length > 0 && item.summaryCells[correctCellIndex][0].alignByColumn;\r\n return item && \"groupFooter\" === item.rowType || \"totalFooter\" === item.rowType || isSummaryAlignByColumn\r\n },\r\n getCellMerging: function(rowIndex, cellIndex) {\r\n var columns = this._options.columns;\r\n var column = columns[rowIndex] && columns[rowIndex][cellIndex];\r\n return column ? {\r\n colspan: (column.exportColspan || 1) - 1,\r\n rowspan: (column.rowspan || 1) - 1\r\n } : {\r\n colspan: 0,\r\n rowspan: 0\r\n }\r\n },\r\n getFrozenArea: function() {\r\n var that = this;\r\n return {\r\n x: 0,\r\n y: that.getHeaderRowCount()\r\n }\r\n }\r\n});\r\nexports.DataProvider = DataProvider;\r\nvar ExportController = _uiData_grid.default.ViewController.inherit({}).include(_uiGrid_core.default).inherit({\r\n _getEmptyCell: function() {\r\n return {\r\n caption: \"\",\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n },\r\n _updateColumnWidth: function(column, width) {\r\n column.width = width\r\n },\r\n _getColumns: function(initialColumnWidthsByColumnIndex) {\r\n var result = [];\r\n var i;\r\n var columns;\r\n var columnsController = this._columnsController;\r\n var rowCount = columnsController.getRowCount();\r\n for (i = 0; i <= rowCount; i++) {\r\n var currentHeaderRow = [];\r\n columns = columnsController.getVisibleColumns(i, true);\r\n var columnWidthsByColumnIndex = void 0;\r\n if (i === rowCount) {\r\n if (this._updateLockCount) {\r\n columnWidthsByColumnIndex = initialColumnWidthsByColumnIndex\r\n } else {\r\n var columnWidths = this._getColumnWidths(this._headersView, this._rowsView);\r\n if (columnWidths && columnWidths.length) {\r\n columnWidthsByColumnIndex = {};\r\n for (var _i = 0; _i < columns.length; _i++) {\r\n columnWidthsByColumnIndex[columns[_i].index] = columnWidths[_i]\r\n }\r\n }\r\n }\r\n }\r\n for (var j = 0; j < columns.length; j++) {\r\n var column = (0, _extend.extend)({}, columns[j], {\r\n dataType: \"datetime\" === columns[j].dataType ? \"date\" : columns[j].dataType,\r\n gridColumn: columns[j]\r\n });\r\n if (this._needColumnExporting(column)) {\r\n var currentColspan = this._calculateExportColspan(column);\r\n if ((0, _type.isDefined)(currentColspan)) {\r\n column.exportColspan = currentColspan\r\n }\r\n if (columnWidthsByColumnIndex) {\r\n this._updateColumnWidth(column, columnWidthsByColumnIndex[column.index])\r\n }\r\n currentHeaderRow.push(column)\r\n }\r\n }\r\n result.push(currentHeaderRow)\r\n }\r\n columns = result[rowCount];\r\n result = this._prepareItems(result.slice(0, -1));\r\n result.push(columns);\r\n return result\r\n },\r\n _calculateExportColspan: function(column) {\r\n var _this = this;\r\n if (!column.isBand) {\r\n return\r\n }\r\n var childColumns = this._columnsController.getChildrenByBandColumn(column.index, true);\r\n if (!(0, _type.isDefined)(childColumns)) {\r\n return\r\n }\r\n return childColumns.reduce(function(result, childColumn) {\r\n if (_this._needColumnExporting(childColumn)) {\r\n return result + (_this._calculateExportColspan(childColumn) || 1)\r\n } else {\r\n return result\r\n }\r\n }, 0)\r\n },\r\n _needColumnExporting: function(column) {\r\n return !column.command && (column.allowExporting || void 0 === column.allowExporting)\r\n },\r\n _getFooterSummaryItems: function(summaryCells, isTotal) {\r\n var result = [];\r\n var estimatedItemsCount = 1;\r\n var i = 0;\r\n do {\r\n var values = [];\r\n for (var j = 0; j < summaryCells.length; j++) {\r\n var summaryCell = summaryCells[j];\r\n var itemsLength = summaryCell.length;\r\n if (estimatedItemsCount < itemsLength) {\r\n estimatedItemsCount = itemsLength\r\n }\r\n values.push(summaryCell[i])\r\n }\r\n result.push({\r\n values: values,\r\n rowType: isTotal ? \"totalFooter\" : \"groupFooter\"\r\n })\r\n } while (i++ < estimatedItemsCount - 1);\r\n return result\r\n },\r\n _hasSummaryGroupFooters: function() {\r\n var groupItems = this.option(\"summary.groupItems\");\r\n if ((0, _type.isDefined)(groupItems)) {\r\n for (var i = 0; i < groupItems.length; i++) {\r\n if (groupItems[i].showInGroupFooter) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n },\r\n _getItemsWithSummaryGroupFooters: function(sourceItems) {\r\n var result = [];\r\n var beforeGroupFooterItems = [];\r\n var groupFooterItems = [];\r\n for (var i = 0; i < sourceItems.length; i++) {\r\n var item = sourceItems[i];\r\n if (\"groupFooter\" === item.rowType) {\r\n groupFooterItems = this._getFooterSummaryItems(item.summaryCells);\r\n result = result.concat(beforeGroupFooterItems, groupFooterItems);\r\n beforeGroupFooterItems = []\r\n } else {\r\n beforeGroupFooterItems.push(item)\r\n }\r\n }\r\n return result.length ? result : beforeGroupFooterItems\r\n },\r\n _updateGroupValuesWithSummaryByColumn: function(sourceItems) {\r\n var summaryValues = [];\r\n for (var i = 0; i < sourceItems.length; i++) {\r\n var item = sourceItems[i];\r\n var summaryCells = item.summaryCells;\r\n if (\"group\" === item.rowType && summaryCells && summaryCells.length > 1) {\r\n var groupColumnCount = item.values.length;\r\n for (var j = 1; j < summaryCells.length; j++) {\r\n for (var k = 0; k < summaryCells[j].length; k++) {\r\n var summaryItem = summaryCells[j][k];\r\n if (summaryItem && summaryItem.alignByColumn) {\r\n if (!Array.isArray(summaryValues[j - groupColumnCount])) {\r\n summaryValues[j - groupColumnCount] = []\r\n }\r\n summaryValues[j - groupColumnCount].push(summaryItem)\r\n }\r\n }\r\n }\r\n if (summaryValues.length > 0) {\r\n (0, _array.merge)(item.values, summaryValues);\r\n summaryValues = []\r\n }\r\n }\r\n }\r\n },\r\n _processUnExportedItems: function(items) {\r\n var columns = this._columnsController.getVisibleColumns(null, true);\r\n var groupColumns = this._columnsController.getGroupColumns();\r\n var values;\r\n var summaryCells;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var isDetailExpandColumn = false;\r\n values = [];\r\n summaryCells = [];\r\n for (var j = 0; j < columns.length; j++) {\r\n var column = columns[j];\r\n isDetailExpandColumn = isDetailExpandColumn || \"detailExpand\" === column.type;\r\n if (this._needColumnExporting(column)) {\r\n if (item.values) {\r\n if (\"group\" === item.rowType && !values.length) {\r\n values.push(item.key[item.groupIndex])\r\n } else {\r\n values.push(item.values[j])\r\n }\r\n }\r\n if (item.summaryCells) {\r\n if (\"group\" === item.rowType && !summaryCells.length) {\r\n var index = j - groupColumns.length + item.groupIndex;\r\n summaryCells.push(item.summaryCells[isDetailExpandColumn ? index - 1 : index])\r\n } else {\r\n summaryCells.push(item.summaryCells[j])\r\n }\r\n }\r\n }\r\n }\r\n if (values.length) {\r\n item.values = values\r\n }\r\n if (summaryCells.length) {\r\n item.summaryCells = summaryCells\r\n }\r\n }\r\n },\r\n _getAllItems: function(data) {\r\n var that = this;\r\n var d = new _deferred.Deferred;\r\n var dataController = this.getController(\"data\");\r\n var footerItems = dataController.footerItems();\r\n var totalItem = footerItems.length && footerItems[0];\r\n var summaryTotalItems = that.option(\"summary.totalItems\");\r\n var summaryCells;\r\n (0, _deferred.when)(data).done(function(data) {\r\n dataController.loadAll(data).done(function(sourceItems, totalAggregates) {\r\n that._updateGroupValuesWithSummaryByColumn(sourceItems);\r\n if (that._hasSummaryGroupFooters()) {\r\n sourceItems = that._getItemsWithSummaryGroupFooters(sourceItems)\r\n }\r\n summaryCells = totalItem && totalItem.summaryCells;\r\n if ((0, _type.isDefined)(totalAggregates) && summaryTotalItems) {\r\n summaryCells = that._getSummaryCells(summaryTotalItems, totalAggregates)\r\n }\r\n var summaryItems = totalItem && that._getFooterSummaryItems(summaryCells, true);\r\n if (summaryItems) {\r\n sourceItems = sourceItems.concat(summaryItems)\r\n }\r\n that._processUnExportedItems(sourceItems);\r\n d.resolve(sourceItems)\r\n }).fail(d.reject)\r\n }).fail(d.reject);\r\n return d\r\n },\r\n _getSummaryCells: function(summaryTotalItems, totalAggregates) {\r\n var dataController = this.getController(\"data\");\r\n var columnsController = dataController._columnsController;\r\n return dataController._calculateSummaryCells(summaryTotalItems, totalAggregates, columnsController.getVisibleColumns(null, true), function(summaryItem, column) {\r\n return dataController._isDataColumn(column) ? column.index : -1\r\n })\r\n },\r\n _getSelectedItems: function() {\r\n var selectionController = this.getController(\"selection\");\r\n var selectedRowData = selectionController.getSelectedRowsData();\r\n return this._getAllItems(selectedRowData)\r\n },\r\n _getColumnWidths: function(headersView, rowsView) {\r\n return headersView && headersView.isVisible() ? headersView.getColumnWidths() : rowsView.getColumnWidths()\r\n },\r\n init: function() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._headersView = this.getView(\"columnHeadersView\");\r\n this.createAction(\"onExporting\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onExported\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFileSaving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n callbackNames: function() {\r\n return [\"selectionOnlyChanged\"]\r\n },\r\n getExportFormat: function() {\r\n return [\"EXCEL\"]\r\n },\r\n getDataProvider: function(selectedRowsOnly) {\r\n var columnWidths = this._getColumnWidths(this._headersView, this._rowsView);\r\n var initialColumnWidthsByColumnIndex;\r\n if (columnWidths && columnWidths.length) {\r\n initialColumnWidthsByColumnIndex = {};\r\n var columnsLastRowVisibleColumns = this._columnsController.getVisibleColumns(this._columnsController.getRowCount(), true);\r\n for (var i = 0; i < columnsLastRowVisibleColumns.length; i++) {\r\n initialColumnWidthsByColumnIndex[columnsLastRowVisibleColumns[i].index] = columnWidths[i]\r\n }\r\n }\r\n return new DataProvider(this, initialColumnWidthsByColumnIndex, selectedRowsOnly)\r\n },\r\n exportToExcel: function(selectionOnly) {\r\n var that = this;\r\n that._selectionOnly = selectionOnly;\r\n (0, _exporter.export)(that.component.getDataProvider(), {\r\n fileName: that.option(\"export.fileName\"),\r\n proxyUrl: that.option(\"export.proxyUrl\"),\r\n format: \"EXCEL\",\r\n autoFilterEnabled: !!that.option(\"export.excelFilterEnabled\"),\r\n rtlEnabled: that.option(\"rtlEnabled\"),\r\n ignoreErrors: that.option(\"export.ignoreExcelErrors\"),\r\n exportingAction: that.getAction(\"onExporting\"),\r\n exportedAction: that.getAction(\"onExported\"),\r\n fileSavingAction: that.getAction(\"onFileSaving\")\r\n }, _exporter.excel.getData)\r\n },\r\n publicMethods: function() {\r\n return [\"getDataProvider\", \"getExportFormat\", \"exportToExcel\"]\r\n },\r\n selectionOnly: function(value) {\r\n if ((0, _type.isDefined)(value)) {\r\n this._isSelectedRows = value;\r\n this.selectionOnlyChanged.fire()\r\n } else {\r\n return this._isSelectedRows\r\n }\r\n }\r\n});\r\nexports.ExportController = ExportController;\r\n_uiData_grid.default.registerModule(\"export\", {\r\n defaultOptions: function() {\r\n return {\r\n \"export\": {\r\n enabled: false,\r\n fileName: \"DataGrid\",\r\n excelFilterEnabled: false,\r\n excelWrapTextEnabled: void 0,\r\n proxyUrl: void 0,\r\n allowExportSelectedData: false,\r\n ignoreExcelErrors: true,\r\n texts: {\r\n exportTo: _message.default.format(\"dxDataGrid-exportTo\"),\r\n exportAll: _message.default.format(\"dxDataGrid-exportAll\"),\r\n exportSelectedRows: _message.default.format(\"dxDataGrid-exportSelectedRows\")\r\n }\r\n }\r\n }\r\n },\r\n controllers: {\r\n \"export\": ExportController\r\n },\r\n extenders: {\r\n controllers: {\r\n editing: {\r\n callbackNames: function() {\r\n var callbackList = this.callBase();\r\n return (0, _type.isDefined)(callbackList) ? callbackList.push(\"editingChanged\") : [\"editingChanged\"]\r\n },\r\n _updateEditButtons: function() {\r\n this.callBase();\r\n this.editingChanged.fire(this.hasChanges())\r\n }\r\n }\r\n },\r\n views: {\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._appendExportItems(items)\r\n },\r\n _appendExportItems: function(items) {\r\n var that = this;\r\n var exportOptions = that.option(\"export\");\r\n if (exportOptions.enabled) {\r\n var exportItems = [];\r\n if (exportOptions.allowExportSelectedData) {\r\n exportItems.push({\r\n template: function(data, index, container) {\r\n var $container = (0, _renderer.default)(container);\r\n that._renderButton(data, $container);\r\n that._renderExportMenu($container)\r\n },\r\n menuItemTemplate: function(data, index, container) {\r\n that._renderList(data, (0, _renderer.default)(container))\r\n },\r\n name: \"exportButton\",\r\n allowExportSelected: true,\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 30\r\n })\r\n } else {\r\n exportItems.push({\r\n template: function(data, index, container) {\r\n that._renderButton(data, (0, _renderer.default)(container))\r\n },\r\n menuItemTemplate: function(data, index, container) {\r\n that._renderButton(data, (0, _renderer.default)(container), true)\r\n },\r\n name: \"exportButton\",\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 30\r\n })\r\n }\r\n items = items.concat(exportItems);\r\n that._correctItemsPosition(items)\r\n }\r\n return items\r\n },\r\n _renderButton: function(data, $container, withText) {\r\n var that = this;\r\n var buttonOptions = that._getButtonOptions(data.allowExportSelected);\r\n var $buttonContainer = that._getButtonContainer().addClass(DATAGRID_EXPORT_BUTTON_CLASS).appendTo($container);\r\n if (withText) {\r\n var wrapperNode = (0, _renderer.default)(\"
\").addClass(TOOLBAR_ITEM_AUTO_HIDE_CLASS);\r\n $container.wrapInner(wrapperNode).parent().addClass(\"dx-toolbar-menu-action dx-toolbar-menu-button \" + TOOLBAR_HIDDEN_BUTTON_CLASS);\r\n buttonOptions.text = buttonOptions.hint\r\n }\r\n that._createComponent($buttonContainer, _button.default, buttonOptions)\r\n },\r\n _renderList: function(data, $container) {\r\n var that = this;\r\n var texts = that.option(\"export.texts\");\r\n var items = [{\r\n template: function(data, index, container) {\r\n that._renderFakeButton(data, (0, _renderer.default)(container), DATAGRID_EXPORT_EXCEL_ICON)\r\n },\r\n text: texts.exportAll\r\n }, {\r\n template: function(data, index, container) {\r\n that._renderFakeButton(data, (0, _renderer.default)(container), DATAGRID_EXPORT_SELECTED_ICON)\r\n },\r\n text: texts.exportSelectedRows,\r\n exportSelected: true\r\n }];\r\n that._createComponent($container, _list.default, {\r\n items: items,\r\n onItemClick: function(e) {\r\n that._exportController.exportToExcel(e.itemData.exportSelected)\r\n },\r\n scrollingEnabled: false\r\n })\r\n },\r\n _renderFakeButton: function(data, $container, iconName) {\r\n var $icon = (0, _renderer.default)(\"
\").addClass(\"dx-icon dx-icon-\" + iconName);\r\n var $text = (0, _renderer.default)(\"\").addClass(\"dx-button-text\").text(data.text);\r\n var $content = (0, _renderer.default)(\"
\").addClass(\"dx-button-content\").append($icon).append($text);\r\n var $button = (0, _renderer.default)(\"
\").addClass(BUTTON_CLASS + \" dx-button-has-text dx-button-has-icon dx-datagrid-toolbar-button\").append($content);\r\n var $toolbarItem = (0, _renderer.default)(\"
\").addClass(TOOLBAR_ITEM_AUTO_HIDE_CLASS).append($button);\r\n $container.append($toolbarItem).parent().addClass(\"dx-toolbar-menu-custom \" + TOOLBAR_HIDDEN_BUTTON_CLASS)\r\n },\r\n _correctItemsPosition: function(items) {\r\n items.sort(function(itemA, itemB) {\r\n return itemA.sortIndex - itemB.sortIndex\r\n })\r\n },\r\n _renderExportMenu: function($buttonContainer) {\r\n var that = this;\r\n var $button = $buttonContainer.find(\".\" + BUTTON_CLASS);\r\n var texts = that.option(\"export.texts\");\r\n var menuItems = [{\r\n text: texts.exportAll,\r\n icon: DATAGRID_EXPORT_EXCEL_ICON\r\n }, {\r\n text: texts.exportSelectedRows,\r\n exportSelected: true,\r\n icon: DATAGRID_EXPORT_SELECTED_ICON\r\n }];\r\n var $menuContainer = (0, _renderer.default)(\"
\").appendTo($buttonContainer);\r\n that._contextMenu = that._createComponent($menuContainer, _context_menu.default, {\r\n showEvent: \"dxclick\",\r\n items: menuItems,\r\n cssClass: DATAGRID_EXPORT_MENU_CLASS,\r\n onItemClick: function(e) {\r\n that._exportController.exportToExcel(e.itemData.exportSelected)\r\n },\r\n target: $button,\r\n position: {\r\n at: \"left bottom\",\r\n my: \"left top\",\r\n offset: \"0 3\",\r\n collision: \"fit\",\r\n boundary: that._$parent,\r\n boundaryOffset: \"1 1\"\r\n }\r\n })\r\n },\r\n _isExportButtonVisible: function() {\r\n return this.option(\"export.enabled\")\r\n },\r\n _getButtonOptions: function(allowExportSelected) {\r\n var that = this;\r\n var texts = that.option(\"export.texts\");\r\n var options;\r\n if (allowExportSelected) {\r\n options = {\r\n hint: texts.exportTo,\r\n icon: DATAGRID_EXPORT_ICON\r\n }\r\n } else {\r\n options = {\r\n hint: texts.exportAll,\r\n icon: DATAGRID_EXPORT_EXCEL_BUTTON_ICON,\r\n onClick: function() {\r\n that._exportController.exportToExcel()\r\n }\r\n }\r\n }\r\n return options\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n if (\"export\" === args.name) {\r\n args.handled = true;\r\n this._invalidate()\r\n }\r\n },\r\n init: function() {\r\n var that = this;\r\n this.callBase();\r\n this._exportController = this.getController(\"export\");\r\n this._editingController = this.getController(\"editing\");\r\n this._editingController.editingChanged.add(function(hasChanges) {\r\n that.setToolbarItemDisabled(\"exportButton\", hasChanges)\r\n })\r\n },\r\n isVisible: function() {\r\n return this.callBase() || this._isExportButtonVisible()\r\n }\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.base.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _console = require(\"../../core/utils/console\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _themes = require(\"../themes\");\r\nrequire(\"./ui.data_grid.column_headers\");\r\nrequire(\"./ui.data_grid.columns_controller\");\r\nrequire(\"./ui.data_grid.data_controller\");\r\nrequire(\"./ui.data_grid.sorting\");\r\nrequire(\"./ui.data_grid.rows\");\r\nrequire(\"./ui.data_grid.context_menu\");\r\nrequire(\"./ui.data_grid.error_handling\");\r\nrequire(\"./ui.data_grid.grid_view\");\r\nrequire(\"./ui.data_grid.header_panel\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar 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\n_uiData_grid.default.registerModulesOrder([\"stateStoring\", \"columns\", \"selection\", \"editorFactory\", \"columnChooser\", \"grouping\", \"editing\", \"masterDetail\", \"validating\", \"adaptivity\", \"data\", \"virtualScrolling\", \"columnHeaders\", \"filterRow\", \"headerPanel\", \"headerFilter\", \"sorting\", \"search\", \"rows\", \"pager\", \"columnsResizingReordering\", \"contextMenu\", \"keyboardNavigation\", \"errorHandling\", \"summary\", \"columnFixing\", \"export\", \"gridView\"]);\r\nvar DataGrid = _ui.default.inherit({\r\n _activeStateUnit: DATAGRID_ROW_SELECTOR,\r\n _getDefaultOptions: function() {\r\n var that = this;\r\n var result = that.callBase();\r\n (0, _iterator.each)(_uiData_grid.default.modules, function() {\r\n if ((0, _type.isFunction)(this.defaultOptions)) {\r\n (0, _extend.extend)(true, result, this.defaultOptions())\r\n }\r\n });\r\n return result\r\n },\r\n _setDeprecatedOptions: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._deprecatedOptions, {\r\n useKeyboard: {\r\n since: \"19.2\",\r\n alias: \"keyboardNavigation.enabled\"\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n showRowLines: true\r\n }\r\n }, {\r\n device: function() {\r\n return (0, _themes.isMaterial)()\r\n },\r\n options: {\r\n showRowLines: true,\r\n showColumnLines: false,\r\n headerFilter: {\r\n height: 315\r\n },\r\n editing: {\r\n useIcons: true\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return _browser.default.webkit\r\n },\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: function(_device) {\r\n return \"desktop\" !== _device.deviceType\r\n },\r\n options: {\r\n grouping: {\r\n expandMode: \"rowClick\"\r\n }\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n var that = this;\r\n that.callBase();\r\n _uiData_grid.default.processModules(that, _uiData_grid.default);\r\n _uiData_grid.default.callModuleItemsMethod(that, \"init\")\r\n },\r\n _clean: _common.noop,\r\n _optionChanged: function(args) {\r\n var that = this;\r\n _uiData_grid.default.callModuleItemsMethod(that, \"optionChanged\", [args]);\r\n if (!args.handled) {\r\n that.callBase(args)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this.updateDimensions(true)\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this.updateDimensions()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"gridView\").render(this.$element())\r\n },\r\n _renderContentImpl: function() {\r\n this.getView(\"gridView\").update()\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n (0, _common.deferRender)(function() {\r\n that._renderContentImpl()\r\n })\r\n },\r\n _getTemplate: function(templateName) {\r\n var template = templateName;\r\n if ((0, _type.isString)(template) && \"#\" === template[0]) {\r\n template = (0, _renderer.default)(templateName);\r\n _console.logger.warn(DATAGRID_DEPRECATED_TEMPLATE_WARNING)\r\n }\r\n return this.callBase(template)\r\n },\r\n _dispose: function() {\r\n var that = this;\r\n that.callBase();\r\n _uiData_grid.default.callModuleItemsMethod(that, \"dispose\")\r\n },\r\n isReady: function() {\r\n return this.getController(\"data\").isReady()\r\n },\r\n beginUpdate: function() {\r\n var that = this;\r\n that.callBase();\r\n _uiData_grid.default.callModuleItemsMethod(that, \"beginUpdate\")\r\n },\r\n endUpdate: function() {\r\n var that = this;\r\n _uiData_grid.default.callModuleItemsMethod(that, \"endUpdate\");\r\n that.callBase()\r\n },\r\n getController: function(name) {\r\n return this._controllers[name]\r\n },\r\n getView: function(name) {\r\n return this._views[name]\r\n },\r\n focus: function(element) {\r\n this.getController(\"keyboardNavigation\").focus(element)\r\n }\r\n});\r\nDataGrid.registerModule = _uiData_grid.default.registerModule.bind(_uiData_grid.default);\r\n(0, _component_registrator.default)(\"dxDataGrid\", DataGrid);\r\nvar _default = DataGrid;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.filter_custom_operations.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.anyOf = anyOf;\r\nexports.noneOf = noneOf;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _data_source = require(\"../../data/data_source/data_source\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _utils = require(\"../filter_builder/utils\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction baseOperation(grid) {\r\n var calculateFilterExpression = function(filterValue, field, fields) {\r\n var result = [];\r\n var lastIndex = filterValue.length - 1;\r\n filterValue && filterValue.forEach(function(value, index) {\r\n if ((0, _utils.isCondition)(value) || (0, _utils.isGroup)(value)) {\r\n var filterExpression = (0, _utils.getFilterExpression)(value, fields, [], \"headerFilter\");\r\n result.push(filterExpression)\r\n } else {\r\n result.push((0, _utils.getFilterExpression)([field.dataField, \"=\", value], fields, [], \"headerFilter\"))\r\n }\r\n index !== lastIndex && result.push(\"or\")\r\n });\r\n if (1 === result.length) {\r\n result = result[0]\r\n }\r\n return result\r\n };\r\n var getFullText = function(itemText, parentText) {\r\n return parentText ? parentText + \"/\" + itemText : itemText\r\n };\r\n var getSelectedItemsTexts = function getSelectedItemsTexts(items, parentText) {\r\n var result = [];\r\n items.forEach(function(item) {\r\n if (item.items) {\r\n var selectedItemsTexts = getSelectedItemsTexts(item.items, getFullText(item.text, parentText));\r\n result = result.concat(selectedItemsTexts)\r\n }\r\n item.selected && result.push(getFullText(item.text, parentText))\r\n });\r\n return result\r\n };\r\n var headerFilterController = grid && grid.getController(\"headerFilter\");\r\n var customizeText = function(fieldInfo) {\r\n var value = fieldInfo.value;\r\n var column = grid.columnOption(fieldInfo.field.dataField);\r\n var headerFilter = column && column.headerFilter;\r\n var lookup = column && column.lookup;\r\n if (headerFilter && headerFilter.dataSource || lookup && lookup.dataSource) {\r\n column = (0, _extend.extend)({}, column, {\r\n filterType: \"include\",\r\n filterValues: [value]\r\n });\r\n var dataSourceOptions = headerFilterController.getDataSource(column);\r\n dataSourceOptions.paginate = false;\r\n var dataSource = new _data_source.DataSource(dataSourceOptions);\r\n var result = new _deferred.Deferred;\r\n var key = dataSource.store().key();\r\n if (key) {\r\n dataSource.filter([key, \"=\", fieldInfo.value])\r\n }\r\n dataSource.load().done(function(items) {\r\n result.resolve(getSelectedItemsTexts(items)[0])\r\n });\r\n return result\r\n } else {\r\n var text = headerFilterController.getHeaderItemText(value, column, 0, grid.option(\"headerFilter\"));\r\n return text\r\n }\r\n };\r\n return {\r\n dataTypes: [\"string\", \"date\", \"datetime\", \"number\", \"boolean\", \"object\"],\r\n calculateFilterExpression: calculateFilterExpression,\r\n editorTemplate: function(conditionInfo, container) {\r\n var div = (0, _renderer.default)(\"
\").addClass(\"dx-filterbuilder-item-value-text\").appendTo(container);\r\n var column = (0, _extend.extend)(true, {}, grid.columnOption(conditionInfo.field.dataField));\r\n (0, _utils.renderValueText)(div, conditionInfo.text && conditionInfo.text.split(\"|\"));\r\n var setValue = function(value) {\r\n conditionInfo.setValue(value)\r\n };\r\n column.filterType = \"include\";\r\n column.filterValues = conditionInfo.value ? conditionInfo.value.slice() : [];\r\n headerFilterController.showHeaderFilterMenuBase({\r\n columnElement: div,\r\n column: column,\r\n apply: function() {\r\n setValue(this.filterValues);\r\n headerFilterController.hideHeaderFilterMenu();\r\n conditionInfo.closeEditor()\r\n },\r\n onHidden: function() {\r\n conditionInfo.closeEditor()\r\n },\r\n isFilterBuilder: true\r\n });\r\n return container\r\n },\r\n customizeText: customizeText\r\n }\r\n}\r\n\r\nfunction anyOf(grid) {\r\n return (0, _extend.extend)(baseOperation(grid), {\r\n name: \"anyof\",\r\n icon: \"selectall\",\r\n caption: _message.default.format(\"dxFilterBuilder-filterOperationAnyOf\")\r\n })\r\n}\r\n\r\nfunction noneOf(grid) {\r\n var baseOp = baseOperation(grid);\r\n return (0, _extend.extend)({}, baseOp, {\r\n calculateFilterExpression: function(filterValue, field, fields) {\r\n var baseFilter = baseOp.calculateFilterExpression(filterValue, field, fields);\r\n if (!baseFilter || 0 === baseFilter.length) {\r\n return null\r\n }\r\n return \"!\" === baseFilter[0] ? baseFilter : [\"!\", baseFilter]\r\n },\r\n name: \"noneof\",\r\n icon: \"unselectall\",\r\n caption: _message.default.format(\"dxFilterBuilder-filterOperationNoneOf\")\r\n })\r\n}\r\n","/**\r\n * DevExtreme (exporter/excel/excel.cell_format_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\nvar _excel2 = _interopRequireDefault(require(\"./excel.cell_alignment_helper\"));\r\nvar _excel3 = _interopRequireDefault(require(\"./excel.fill_helper\"));\r\nvar _excel4 = _interopRequireDefault(require(\"./excel.font_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar cellFormatHelper = {\r\n tryCreateTag: function(sourceObj, sharedItemsContainer) {\r\n var result = null;\r\n if ((0, _type.isDefined)(sourceObj)) {\r\n var numberFormatId;\r\n if (\"number\" === typeof sourceObj.numberFormat) {\r\n numberFormatId = sourceObj.numberFormat\r\n } else {\r\n numberFormatId = sharedItemsContainer.registerNumberFormat(sourceObj.numberFormat)\r\n }\r\n var fill = sourceObj.fill;\r\n if (!(0, _type.isDefined)(fill)) {\r\n fill = _excel3.default.tryCreateFillFromSimpleFormat(sourceObj)\r\n }\r\n result = {\r\n numberFormatId: numberFormatId,\r\n alignment: _excel2.default.tryCreateTag(sourceObj.alignment),\r\n fontId: sharedItemsContainer.registerFont(sourceObj.font),\r\n fillId: sharedItemsContainer.registerFill(fill)\r\n };\r\n if (cellFormatHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result;\r\n if (null === source) {\r\n result = null\r\n } else {\r\n if ((0, _type.isDefined)(source)) {\r\n result = {};\r\n if (void 0 !== source.numberFormat) {\r\n result.numberFormat = source.numberFormat\r\n }\r\n if (void 0 !== source.fill) {\r\n result.fill = _excel3.default.copy(source.fill)\r\n } else {\r\n _excel3.default.copySimpleFormat(source, result)\r\n }\r\n if (void 0 !== source.alignment) {\r\n result.alignment = _excel2.default.copy(source.alignment)\r\n }\r\n if (void 0 !== source.font) {\r\n result.font = _excel4.default.copy(source.font)\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return cellFormatHelper.isEmpty(leftTag) && cellFormatHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && leftTag.fontId === rightTag.fontId && leftTag.numberFormatId === rightTag.numberFormatId && leftTag.fillId === rightTag.fillId && _excel2.default.areEqual(leftTag.alignment, rightTag.alignment)\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || !(0, _type.isDefined)(tag.fontId) && !(0, _type.isDefined)(tag.numberFormatId) && !(0, _type.isDefined)(tag.fillId) && _excel2.default.isEmpty(tag.alignment)\r\n },\r\n toXml: function(tag) {\r\n var isAlignmentEmpty = _excel2.default.isEmpty(tag.alignment);\r\n var applyNumberFormat;\r\n if ((0, _type.isDefined)(tag.numberFormatId)) {\r\n applyNumberFormat = tag.numberFormatId > 0 ? 1 : 0\r\n }\r\n return _excel.default.toXml(\"xf\", {\r\n xfId: 0,\r\n applyAlignment: isAlignmentEmpty ? null : 1,\r\n fontId: tag.fontId,\r\n applyNumberFormat: applyNumberFormat,\r\n fillId: tag.fillId,\r\n numFmtId: tag.numberFormatId\r\n }, isAlignmentEmpty ? null : _excel2.default.toXml(tag.alignment))\r\n }\r\n};\r\nvar _default = cellFormatHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.adaptivity.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.adaptivity\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"adaptivity\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.column_fixing.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _wheel = require(\"../../events/core/wheel\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.utils\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _translator = require(\"../../animation/translator\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar CONTENT_CLASS = \"content\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar FIRST_CELL_CLASS = \"dx-first-cell\";\r\nvar LAST_CELL_CLASS = \"dx-last-cell\";\r\nvar HOVER_STATE_CLASS = \"dx-state-hover\";\r\nvar FIXED_COL_CLASS = \"dx-col-fixed\";\r\nvar FIXED_COLUMNS_CLASS = \"dx-fixed-columns\";\r\nvar POINTER_EVENTS_NONE_CLASS = \"dx-pointer-events-none\";\r\nvar COMMAND_TRANSPARENT = \"transparent\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar getTransparentColumnIndex = function(fixedColumns) {\r\n var transparentColumnIndex = -1;\r\n (0, _iterator.each)(fixedColumns, function(index, column) {\r\n if (column.command === COMMAND_TRANSPARENT) {\r\n transparentColumnIndex = index;\r\n return false\r\n }\r\n });\r\n return transparentColumnIndex\r\n};\r\nvar normalizeColumnWidths = function(fixedColumns, widths, fixedWidths) {\r\n var fixedColumnIndex = 0;\r\n if (fixedColumns && widths && fixedWidths) {\r\n for (var i = 0; i < fixedColumns.length; i++) {\r\n if (fixedColumns[i].command === COMMAND_TRANSPARENT) {\r\n fixedColumnIndex += fixedColumns[i].colspan\r\n } else {\r\n if (widths[fixedColumnIndex] < fixedWidths[i]) {\r\n widths[fixedColumnIndex] = fixedWidths[i]\r\n }\r\n fixedColumnIndex++\r\n }\r\n }\r\n }\r\n return widths\r\n};\r\nvar baseFixedColumns = {\r\n init: function() {\r\n this.callBase();\r\n this._isFixedTableRendering = false;\r\n this._isFixedColumns = false\r\n },\r\n _createCol: function(column) {\r\n return this.callBase(column).toggleClass(FIXED_COL_CLASS, !!(this._isFixedTableRendering && (column.fixed || column.command && column.command !== COMMAND_TRANSPARENT)))\r\n },\r\n _correctColumnIndicesForFixedColumns: function(fixedColumns, change) {\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var transparentColspan = fixedColumns[transparentColumnIndex].colspan;\r\n var columnIndices = change && change.columnIndices;\r\n if (columnIndices) {\r\n change.columnIndices = columnIndices.map(function(columnIndices) {\r\n if (columnIndices) {\r\n return columnIndices.map(function(columnIndex) {\r\n if (columnIndex < transparentColumnIndex) {\r\n return columnIndex\r\n } else {\r\n if (columnIndex >= transparentColumnIndex + transparentColspan) {\r\n return columnIndex - transparentColspan + 1\r\n }\r\n }\r\n return -1\r\n }).filter(function(columnIndex) {\r\n return columnIndex >= 0\r\n })\r\n }\r\n })\r\n }\r\n },\r\n _renderTable: function(options) {\r\n var that = this;\r\n var $fixedTable;\r\n var fixedColumns = that.getFixedColumns();\r\n that._isFixedColumns = !!fixedColumns.length;\r\n var $table = that.callBase(options);\r\n if (that._isFixedColumns) {\r\n that._isFixedTableRendering = true;\r\n var change = options && options.change;\r\n var columnIndices = change && change.columnIndices;\r\n that._correctColumnIndicesForFixedColumns(fixedColumns, change);\r\n $fixedTable = that._createTable(fixedColumns);\r\n that._renderRows($fixedTable, (0, _extend.extend)({}, options, {\r\n columns: fixedColumns\r\n }));\r\n that._updateContent($fixedTable, change);\r\n if (columnIndices) {\r\n change.columnIndices = columnIndices\r\n }\r\n that._isFixedTableRendering = false\r\n } else {\r\n that._fixedTableElement && that._fixedTableElement.parent().remove();\r\n that._fixedTableElement = null\r\n }\r\n return $table\r\n },\r\n _renderRow: function($table, options) {\r\n var fixedCorrection;\r\n var cells = options.row.cells;\r\n this.callBase.apply(this, arguments);\r\n if (this._isFixedTableRendering && cells && cells.length) {\r\n fixedCorrection = 0;\r\n var fixedCells = options.row.cells || [];\r\n cells = cells.slice();\r\n options.row.cells = cells;\r\n for (var i = 0; i < fixedCells.length; i++) {\r\n if (fixedCells[i].column && fixedCells[i].column.command === COMMAND_TRANSPARENT) {\r\n fixedCorrection = (fixedCells[i].column.colspan || 1) - 1;\r\n continue\r\n }\r\n cells[i + fixedCorrection] = fixedCells[i]\r\n }\r\n }\r\n },\r\n _createCell: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var columnCommand = column && column.command;\r\n var rowType = options.rowType;\r\n var $cell = that.callBase.apply(that, arguments);\r\n var fixedColumns;\r\n var prevFixedColumn;\r\n var transparentColumnIndex;\r\n if (that._isFixedTableRendering || \"filter\" === rowType) {\r\n fixedColumns = that.getFixedColumns();\r\n transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n prevFixedColumn = fixedColumns[transparentColumnIndex - 1]\r\n }\r\n if (that._isFixedTableRendering) {\r\n if (columnCommand === COMMAND_TRANSPARENT) {\r\n $cell.addClass(POINTER_EVENTS_NONE_CLASS).toggleClass(FIRST_CELL_CLASS, 0 === transparentColumnIndex || prevFixedColumn && \"expand\" === prevFixedColumn.command).toggleClass(LAST_CELL_CLASS, fixedColumns.length && transparentColumnIndex === fixedColumns.length - 1);\r\n if (\"freeSpace\" !== rowType) {\r\n _uiGrid_core.default.setEmptyText($cell)\r\n }\r\n }\r\n } else {\r\n if (\"filter\" === rowType) {\r\n $cell.toggleClass(FIRST_CELL_CLASS, options.columnIndex === transparentColumnIndex)\r\n }\r\n }\r\n var isRowAltStyle = that.option(\"rowAlternationEnabled\") && options.isAltRow;\r\n if (_browser.default.mozilla && options.column.fixed && \"group\" !== options.rowType && !isRowAltStyle) {\r\n $cell.addClass(FIXED_COL_CLASS)\r\n }\r\n return $cell\r\n },\r\n _wrapTableInScrollContainer: function() {\r\n var $scrollContainer = this.callBase.apply(this, arguments);\r\n if (this._isFixedTableRendering) {\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_FIXED_CLASS))\r\n }\r\n return $scrollContainer\r\n },\r\n _renderCellContent: function($cell, options) {\r\n var that = this;\r\n var isEmptyCell;\r\n var column = options.column;\r\n var isFixedTableRendering = that._isFixedTableRendering;\r\n var isGroupCell = \"group\" === options.rowType && (0, _type.isDefined)(column.groupIndex);\r\n if (isFixedTableRendering && isGroupCell && !column.command && !column.groupCellTemplate) {\r\n $cell.css(\"pointerEvents\", \"none\")\r\n }\r\n if (!isFixedTableRendering && that._isFixedColumns) {\r\n isEmptyCell = column.fixed || column.command && false !== column.fixed;\r\n if (isGroupCell) {\r\n isEmptyCell = false;\r\n if (options.row.summaryCells && options.row.summaryCells.length) {\r\n var columns = that._columnsController.getVisibleColumns();\r\n var alignByFixedColumnCellCount = that._getAlignByColumnCellCount ? that._getAlignByColumnCellCount(column.colspan, {\r\n columns: columns,\r\n row: options.row,\r\n isFixed: true\r\n }) : 0;\r\n if (alignByFixedColumnCellCount > 0) {\r\n var transparentColumnIndex = getTransparentColumnIndex(that._columnsController.getFixedColumns());\r\n isEmptyCell = columns.length - alignByFixedColumnCellCount < transparentColumnIndex\r\n }\r\n }\r\n }\r\n if (isEmptyCell) {\r\n if (that.option(\"legacyRendering\") || column.command && \"buttons\" !== column.type || \"group\" === options.rowType) {\r\n $cell.html(\" \").addClass(column.cssClass);\r\n return\r\n } else {\r\n $cell.addClass(\"dx-hidden-cell\")\r\n }\r\n }\r\n }\r\n if (column.command !== COMMAND_TRANSPARENT) {\r\n that.callBase($cell, options)\r\n }\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var _this = this;\r\n var cellElements = this.callBase.apply(this, arguments);\r\n var isGroupRow = cellElements.parent().hasClass(GROUP_ROW_CLASS);\r\n var index = \"columnHeadersView\" === this.name ? rowIndex : void 0;\r\n if (this._fixedTableElement && cellElements) {\r\n var fixedColumns = this.getFixedColumns(index);\r\n var fixedCellElements = this._getRowElements(this._fixedTableElement).eq(rowIndex).children(\"td\");\r\n (0, _iterator.each)(fixedCellElements, function(columnIndex, cell) {\r\n if (isGroupRow) {\r\n if (cellElements[columnIndex] && \"hidden\" !== cell.style.visibility) {\r\n cellElements[columnIndex] = cell\r\n }\r\n } else {\r\n var fixedColumn = fixedColumns[columnIndex];\r\n if (fixedColumn) {\r\n if (fixedColumn.command === COMMAND_TRANSPARENT) {\r\n if (fixedCellElements.eq(columnIndex).hasClass(MASTER_DETAIL_CELL_CLASS)) {\r\n cellElements[columnIndex] = cell || cellElements[columnIndex]\r\n }\r\n } else {\r\n var fixedColumnIndex = _this._columnsController.getVisibleIndexByColumn(fixedColumn, rowIndex);\r\n cellElements[fixedColumnIndex] = cell || cellElements[fixedColumnIndex]\r\n }\r\n }\r\n }\r\n })\r\n }\r\n return cellElements\r\n },\r\n getColumnWidths: function() {\r\n var that = this;\r\n var fixedWidths;\r\n var result = that.callBase();\r\n var fixedColumns = that.getFixedColumns();\r\n if (that._fixedTableElement && result.length) {\r\n fixedWidths = that.callBase(that._fixedTableElement)\r\n }\r\n return normalizeColumnWidths(fixedColumns, result, fixedWidths)\r\n },\r\n getTableElement: function() {\r\n var tableElement = this._isFixedTableRendering ? this._fixedTableElement : this.callBase();\r\n return tableElement\r\n },\r\n setTableElement: function(tableElement) {\r\n if (this._isFixedTableRendering) {\r\n this._fixedTableElement = tableElement.addClass(POINTER_EVENTS_NONE_CLASS)\r\n } else {\r\n this.callBase(tableElement)\r\n }\r\n },\r\n getColumns: function(rowIndex, $tableElement) {\r\n $tableElement = $tableElement || this.getTableElement();\r\n if (this._isFixedTableRendering || $tableElement && $tableElement.closest(\"table\").parent(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS)).length) {\r\n return this.getFixedColumns(rowIndex)\r\n }\r\n return this.callBase(rowIndex, $tableElement)\r\n },\r\n getRowIndex: function($row) {\r\n var $fixedTable = this._fixedTableElement;\r\n if ($fixedTable && $fixedTable.find($row).length) {\r\n return this._getRowElements($fixedTable).index($row)\r\n }\r\n return this.callBase($row)\r\n },\r\n getTableElements: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n if (this._fixedTableElement) {\r\n result = (0, _renderer.default)([result.get(0), this._fixedTableElement.get(0)])\r\n }\r\n return result\r\n },\r\n getFixedColumns: function(rowIndex) {\r\n return this._columnsController.getFixedColumns(rowIndex)\r\n },\r\n getFixedColumnsOffset: function() {\r\n var offset = {\r\n left: 0,\r\n right: 0\r\n };\r\n var $transparentColumn;\r\n if (this._fixedTableElement) {\r\n $transparentColumn = this.getTransparentColumnElement();\r\n var positionTransparentColumn = $transparentColumn.position();\r\n offset = {\r\n left: positionTransparentColumn.left,\r\n right: this.element().outerWidth(true) - ($transparentColumn.outerWidth(true) + positionTransparentColumn.left)\r\n }\r\n }\r\n return offset\r\n },\r\n getTransparentColumnElement: function() {\r\n return this._fixedTableElement && this._fixedTableElement.find(\".\" + POINTER_EVENTS_NONE_CLASS).first()\r\n },\r\n getFixedTableElement: function() {\r\n return this._fixedTableElement\r\n },\r\n isFixedColumns: function() {\r\n return this._isFixedColumns\r\n },\r\n _resizeCore: function() {\r\n this.callBase();\r\n this.synchronizeRows()\r\n },\r\n setColumnWidths: function(options) {\r\n var columns;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var widths = options.widths;\r\n var isWidthsSynchronized = widths && widths.length && (0, _type.isDefined)(visibleColumns[0].visibleWidth);\r\n var optionNames = options.optionNames;\r\n var isColumnWidthChanged = optionNames && optionNames.width;\r\n var useVisibleColumns = false;\r\n this.callBase.apply(this, arguments);\r\n if (this._fixedTableElement) {\r\n if (this.option(\"legacyRendering\")) {\r\n useVisibleColumns = widths && widths.length && !this.isScrollbarVisible(true)\r\n } else {\r\n var hasAutoWidth = widths && widths.some(function(width) {\r\n return \"auto\" === width\r\n });\r\n useVisibleColumns = hasAutoWidth && (!isWidthsSynchronized || !this.isScrollbarVisible(true))\r\n }\r\n if (useVisibleColumns) {\r\n columns = visibleColumns\r\n }\r\n this.callBase((0, _extend.extend)({}, options, {\r\n $tableElement: this._fixedTableElement,\r\n columns: columns,\r\n fixed: true\r\n }))\r\n }\r\n if (isWidthsSynchronized || isColumnWidthChanged && this.option(\"wordWrapEnabled\")) {\r\n this.synchronizeRows()\r\n }\r\n },\r\n _createColGroup: function(columns) {\r\n if (!this.option(\"legacyRendering\") && this._isFixedTableRendering && !this.option(\"columnAutoWidth\")) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var useVisibleColumns = visibleColumns.filter(function(column) {\r\n return !column.width\r\n }).length;\r\n if (useVisibleColumns) {\r\n columns = visibleColumns\r\n }\r\n }\r\n return this.callBase(columns)\r\n },\r\n _getClientHeight: function(element) {\r\n var boundingClientRectElement = element.getBoundingClientRect && (0, _position.getBoundingRect)(element);\r\n return boundingClientRectElement && boundingClientRectElement.height ? boundingClientRectElement.height : element.clientHeight\r\n },\r\n synchronizeRows: function() {\r\n var that = this;\r\n var rowHeights = [];\r\n var fixedRowHeights = [];\r\n var rowIndex;\r\n var $rowElements;\r\n var $fixedRowElements;\r\n var $contentElement;\r\n if (that._isFixedColumns && that._tableElement && that._fixedTableElement) {\r\n var heightTable = that._getClientHeight(that._tableElement.get(0));\r\n var heightFixedTable = that._getClientHeight(that._fixedTableElement.get(0));\r\n $rowElements = that._getRowElements(that._tableElement);\r\n $fixedRowElements = that._getRowElements(that._fixedTableElement);\r\n $contentElement = that._findContentElement();\r\n if (heightTable !== heightFixedTable) {\r\n $contentElement && $contentElement.css(\"height\", heightTable);\r\n $rowElements.css(\"height\", \"\");\r\n $fixedRowElements.css(\"height\", \"\");\r\n for (rowIndex = 0; rowIndex < $rowElements.length; rowIndex++) {\r\n rowHeights.push(that._getClientHeight($rowElements.get(rowIndex)));\r\n fixedRowHeights.push(that._getClientHeight($fixedRowElements.get(rowIndex)))\r\n }\r\n for (rowIndex = 0; rowIndex < $rowElements.length; rowIndex++) {\r\n var rowHeight = rowHeights[rowIndex];\r\n var fixedRowHeight = fixedRowHeights[rowIndex];\r\n if (rowHeight > fixedRowHeight) {\r\n $fixedRowElements.eq(rowIndex).css(\"height\", rowHeight)\r\n } else {\r\n if (rowHeight < fixedRowHeight) {\r\n $rowElements.eq(rowIndex).css(\"height\", fixedRowHeight)\r\n }\r\n }\r\n }\r\n $contentElement && $contentElement.css(\"height\", \"\")\r\n }\r\n }\r\n },\r\n setScrollerSpacing: function(width) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n this.callBase(width);\r\n this.element().children(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS)).css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n }\r\n};\r\nvar ColumnHeadersViewFixedColumnsExtender = (0, _extend.extend)({}, baseFixedColumns, {\r\n _getRowVisibleColumns: function(rowIndex) {\r\n if (this._isFixedTableRendering) {\r\n return this.getFixedColumns(rowIndex)\r\n }\r\n return this.callBase(rowIndex)\r\n },\r\n getContextMenuItems: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var columnFixingOptions = that.option(\"columnFixing\");\r\n var items = that.callBase(options);\r\n if (options.row && \"header\" === options.row.rowType) {\r\n if (column && column.allowFixing) {\r\n var onItemClick = function(params) {\r\n switch (params.itemData.value) {\r\n case \"none\":\r\n that._columnsController.columnOption(column.index, \"fixed\", false);\r\n break;\r\n case \"left\":\r\n that._columnsController.columnOption(column.index, {\r\n fixed: true,\r\n fixedPosition: \"left\"\r\n });\r\n break;\r\n case \"right\":\r\n that._columnsController.columnOption(column.index, {\r\n fixed: true,\r\n fixedPosition: \"right\"\r\n })\r\n }\r\n };\r\n items = items || [];\r\n items.push({\r\n text: columnFixingOptions.texts.fix,\r\n beginGroup: true,\r\n items: [{\r\n text: columnFixingOptions.texts.leftPosition,\r\n value: \"left\",\r\n disabled: column.fixed && (!column.fixedPosition || \"left\" === column.fixedPosition),\r\n onItemClick: onItemClick\r\n }, {\r\n text: columnFixingOptions.texts.rightPosition,\r\n value: \"right\",\r\n disabled: column.fixed && \"right\" === column.fixedPosition,\r\n onItemClick: onItemClick\r\n }]\r\n }, {\r\n text: columnFixingOptions.texts.unfix,\r\n value: \"none\",\r\n disabled: !column.fixed,\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n },\r\n getFixedColumnElements: function(rowIndex) {\r\n var that = this;\r\n if ((0, _type.isDefined)(rowIndex)) {\r\n return this._fixedTableElement && this._getRowElements(this._fixedTableElement).eq(rowIndex).children()\r\n }\r\n var columnElements = that.getColumnElements();\r\n var $transparentColumnElement = that.getTransparentColumnElement();\r\n if (columnElements && $transparentColumnElement && $transparentColumnElement.length) {\r\n var transparentColumnIndex = getTransparentColumnIndex(that.getFixedColumns());\r\n columnElements.splice(transparentColumnIndex, $transparentColumnElement.get(0).colSpan, $transparentColumnElement.get(0))\r\n }\r\n return columnElements\r\n },\r\n getColumnWidths: function() {\r\n var that = this;\r\n var fixedWidths;\r\n var result = that.callBase();\r\n var $fixedColumnElements = that.getFixedColumnElements();\r\n var fixedColumns = that.getFixedColumns();\r\n if (that._fixedTableElement) {\r\n if ($fixedColumnElements && $fixedColumnElements.length) {\r\n fixedWidths = that._getWidths($fixedColumnElements)\r\n } else {\r\n fixedWidths = that.callBase(that._fixedTableElement)\r\n }\r\n }\r\n return normalizeColumnWidths(fixedColumns, result, fixedWidths)\r\n }\r\n});\r\nvar RowsViewFixedColumnsExtender = (0, _extend.extend)({}, baseFixedColumns, {\r\n _detachHoverEvents: function() {\r\n this._fixedTableElement && _events_engine.default.off(this._fixedTableElement, \"mouseover mouseout\", \".dx-data-row\");\r\n this._tableElement && _events_engine.default.off(this._tableElement, \"mouseover mouseout\", \".dx-data-row\")\r\n },\r\n _attachHoverEvents: function() {\r\n var that = this;\r\n var attachHoverEvent = function($table) {\r\n _events_engine.default.on($table, \"mouseover mouseout\", \".dx-data-row\", that.createAction(function(args) {\r\n var event = args.event;\r\n var rowIndex = that.getRowIndex((0, _renderer.default)(event.target).closest(\".dx-row\"));\r\n var isHover = \"mouseover\" === event.type;\r\n if (rowIndex >= 0) {\r\n that._tableElement && that._getRowElements(that._tableElement).eq(rowIndex).toggleClass(HOVER_STATE_CLASS, isHover);\r\n that._fixedTableElement && that._getRowElements(that._fixedTableElement).eq(rowIndex).toggleClass(HOVER_STATE_CLASS, isHover)\r\n }\r\n }))\r\n };\r\n if (that._fixedTableElement && that._tableElement) {\r\n attachHoverEvent(that._fixedTableElement);\r\n attachHoverEvent(that._tableElement)\r\n }\r\n },\r\n _findContentElement: function() {\r\n var that = this;\r\n var $content;\r\n var scrollTop;\r\n var contentClass = that.addWidgetPrefix(CONTENT_CLASS);\r\n var element = that.element();\r\n var scrollDelay = _browser.default.mozilla ? 60 : 0;\r\n if (element && that._isFixedTableRendering) {\r\n $content = element.children(\".\" + contentClass);\r\n var scrollable = that.getScrollable();\r\n if (!$content.length && scrollable) {\r\n $content = (0, _renderer.default)(\"
\").addClass(contentClass);\r\n _events_engine.default.on($content, \"scroll\", function(e) {\r\n clearTimeout(that._fixedScrollTimeout);\r\n that._fixedScrollTimeout = setTimeout(function() {\r\n scrollTop = (0, _renderer.default)(e.target).scrollTop();\r\n scrollable.scrollTo({\r\n y: scrollTop\r\n })\r\n }, scrollDelay)\r\n });\r\n _events_engine.default.on($content, _wheel.name, function(e) {\r\n var $nearestScrollable = (0, _renderer.default)(e.target).closest(\".dx-scrollable\");\r\n if (scrollable && scrollable.$element().is($nearestScrollable)) {\r\n scrollTop = scrollable.scrollTop();\r\n scrollable.scrollTo({\r\n y: scrollTop - e.delta\r\n });\r\n if (scrollable.scrollTop() > 0 && scrollable.scrollTop() + scrollable.clientHeight() < scrollable.scrollHeight() + that.getScrollbarWidth()) {\r\n return false\r\n }\r\n }\r\n });\r\n $content.appendTo(element)\r\n }\r\n return $content\r\n }\r\n return that.callBase()\r\n },\r\n _updateScrollable: function() {\r\n this.callBase();\r\n var scrollable = this.getScrollable();\r\n var scrollTop = scrollable && scrollable.scrollOffset().top;\r\n this._updateFixedTablePosition(scrollTop)\r\n },\r\n _renderContent: function(contentElement, tableElement) {\r\n if (this._isFixedTableRendering) {\r\n return contentElement.empty().addClass(this.addWidgetPrefix(CONTENT_CLASS) + \" \" + this.addWidgetPrefix(CONTENT_FIXED_CLASS)).append(tableElement)\r\n }\r\n return this.callBase(contentElement, tableElement)\r\n },\r\n _getGroupCellOptions: function(options) {\r\n if (this._isFixedTableRendering) {\r\n return this.callBase((0, _extend.extend)({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n }\r\n return this.callBase(options)\r\n },\r\n _renderGroupedCells: function($row, options) {\r\n return this.callBase($row, (0, _extend.extend)({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n },\r\n _renderGroupSummaryCells: function($row, options) {\r\n if (this._isFixedTableRendering) {\r\n this.callBase($row, (0, _extend.extend)({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n } else {\r\n this.callBase($row, options)\r\n }\r\n },\r\n _hasAlignByColumnSummaryItems: function(columnIndex, options) {\r\n var result = this.callBase.apply(this, arguments);\r\n var column = options.columns[columnIndex];\r\n if (options.isFixed) {\r\n return column.fixed && (result || \"right\" === column.fixedPosition)\r\n }\r\n return result && !column.fixed\r\n },\r\n _renderGroupSummaryCellsCore: function($groupCell, options, groupCellColSpan, alignByColumnCellCount) {\r\n var alignByFixedColumnCellCount;\r\n if (this._isFixedTableRendering) {\r\n options.isFixed = true;\r\n alignByFixedColumnCellCount = this._getAlignByColumnCellCount(groupCellColSpan, options);\r\n options.isFixed = false;\r\n var startColumnIndex = options.columns.length - alignByFixedColumnCellCount;\r\n options = (0, _extend.extend)({}, options, {\r\n columns: this.getFixedColumns()\r\n });\r\n var transparentColumnIndex = getTransparentColumnIndex(options.columns);\r\n if (startColumnIndex < transparentColumnIndex) {\r\n alignByFixedColumnCellCount -= options.columns[transparentColumnIndex].colspan - 1 || 0;\r\n groupCellColSpan -= options.columns[transparentColumnIndex].colspan - 1 || 0\r\n } else {\r\n if (alignByColumnCellCount > 0) {\r\n $groupCell.css(\"visibility\", \"hidden\")\r\n }\r\n }\r\n alignByColumnCellCount = alignByFixedColumnCellCount\r\n }\r\n this.callBase($groupCell, options, groupCellColSpan, alignByColumnCellCount)\r\n },\r\n _getSummaryCellIndex: function(columnIndex, columns) {\r\n if (this._isFixedTableRendering) {\r\n var transparentColumnIndex = getTransparentColumnIndex(columns);\r\n if (columnIndex > transparentColumnIndex) {\r\n columnIndex += columns[transparentColumnIndex].colspan - 1\r\n }\r\n return columnIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _renderCore: function(change) {\r\n this._detachHoverEvents();\r\n this.callBase(change);\r\n var isFixedColumns = this._isFixedColumns;\r\n this.element().toggleClass(FIXED_COLUMNS_CLASS, isFixedColumns);\r\n if (this.option(\"hoverStateEnabled\") && isFixedColumns) {\r\n this._attachHoverEvents()\r\n }\r\n },\r\n setRowsOpacity: function(columnIndex, value) {\r\n this.callBase(columnIndex, value);\r\n var $rows = this._getRowElements(this._fixedTableElement);\r\n this._setRowsOpacityCore($rows, this.getFixedColumns(), columnIndex, value)\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n that.callBase(args);\r\n if (\"hoverStateEnabled\" === args.name && that._isFixedColumns) {\r\n args.value ? this._attachHoverEvents() : this._detachHoverEvents()\r\n }\r\n },\r\n getCellIndex: function($cell) {\r\n var $fixedTable = this._fixedTableElement;\r\n var cellIndex = 0;\r\n if ($fixedTable && $cell.is(\"td\") && $cell.closest($fixedTable).length) {\r\n var columns = this.getFixedColumns();\r\n (0, _iterator.each)(columns, function(index, column) {\r\n if (index === $cell[0].cellIndex) {\r\n return false\r\n }\r\n if (column.colspan) {\r\n cellIndex += column.colspan;\r\n return\r\n }\r\n cellIndex++\r\n });\r\n return cellIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateFixedTablePosition: function(scrollTop, needFocus) {\r\n if (this._fixedTableElement && this._tableElement) {\r\n var $focusedElement;\r\n var editorFactory = this.getController(\"editorFactory\");\r\n this._fixedTableElement.parent().scrollTop(scrollTop);\r\n if (needFocus && editorFactory) {\r\n $focusedElement = editorFactory.focus();\r\n $focusedElement && editorFactory.focus($focusedElement)\r\n }\r\n }\r\n },\r\n setScrollerSpacing: function(vWidth, hWidth) {\r\n var that = this;\r\n var styles = {\r\n marginBottom: 0\r\n };\r\n var $fixedContent = that.element().children(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS));\r\n if ($fixedContent.length && that._fixedTableElement) {\r\n $fixedContent.css(styles);\r\n that._fixedTableElement.css(styles);\r\n styles[that.option(\"rtlEnabled\") ? \"marginLeft\" : \"marginRight\"] = vWidth;\r\n styles.marginBottom = hWidth;\r\n var useNativeScrolling = that._scrollable && that._scrollable.option(\"useNative\");\r\n (useNativeScrolling ? $fixedContent : that._fixedTableElement).css(styles)\r\n }\r\n },\r\n _getElasticScrollTop: function(e) {\r\n var elasticScrollTop = 0;\r\n var scrollbarWidth = this.getScrollbarWidth(true);\r\n if (e.scrollOffset.top < 0) {\r\n elasticScrollTop = -e.scrollOffset.top\r\n } else {\r\n if (e.reachedBottom) {\r\n var scrollableContent = this._findContentElement();\r\n var scrollableContainer = e.component._container();\r\n var maxScrollTop = Math.max(scrollableContent.height() + scrollbarWidth - scrollableContainer.height(), 0);\r\n elasticScrollTop = maxScrollTop - e.scrollOffset.top\r\n }\r\n }\r\n return elasticScrollTop\r\n },\r\n _applyElasticScrolling: function(e) {\r\n if (this._fixedTableElement) {\r\n var elasticScrollTop = this._getElasticScrollTop(e);\r\n if (0 !== Math.ceil(elasticScrollTop)) {\r\n (0, _translator.move)(this._fixedTableElement, {\r\n top: elasticScrollTop\r\n })\r\n } else {\r\n this._fixedTableElement.css(\"transform\", \"\")\r\n }\r\n }\r\n },\r\n _handleScroll: function(e) {\r\n this._updateFixedTablePosition(e.scrollOffset.top, true);\r\n this._applyElasticScrolling(e);\r\n this.callBase(e)\r\n },\r\n _updateContentPosition: function(isRender) {\r\n this.callBase.apply(this, arguments);\r\n if (!isRender) {\r\n this._updateFixedTablePosition(this._scrollTop)\r\n }\r\n },\r\n _afterRowPrepared: function(e) {\r\n if (this._isFixedTableRendering) {\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _scrollToElement: function($element) {\r\n this.callBase($element, this.getFixedColumnsOffset())\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._fixedScrollTimeout)\r\n }\r\n});\r\nvar FooterViewFixedColumnsExtender = baseFixedColumns;\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n columnFixing: {\r\n enabled: false,\r\n texts: {\r\n fix: _message.default.format(\"dxDataGrid-columnFixingFix\"),\r\n unfix: _message.default.format(\"dxDataGrid-columnFixingUnfix\"),\r\n leftPosition: _message.default.format(\"dxDataGrid-columnFixingLeftPosition\"),\r\n rightPosition: _message.default.format(\"dxDataGrid-columnFixingRightPosition\")\r\n }\r\n }\r\n }\r\n },\r\n extenders: {\r\n views: {\r\n columnHeadersView: ColumnHeadersViewFixedColumnsExtender,\r\n rowsView: RowsViewFixedColumnsExtender,\r\n footerView: FooterViewFixedColumnsExtender\r\n },\r\n controllers: function() {\r\n var normalizeColumnIndicesByPoints = function(columns, fixedColumns, pointsByColumns) {\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var correctIndex = columns.length - fixedColumns.length;\r\n (0, _iterator.each)(pointsByColumns, function(_, point) {\r\n if (point.index > transparentColumnIndex) {\r\n point.columnIndex += correctIndex;\r\n point.index += correctIndex\r\n }\r\n });\r\n return pointsByColumns\r\n };\r\n return {\r\n draggingHeader: {\r\n _generatePointsByColumns: function(options) {\r\n var visibleColumns = options.columns;\r\n var targetDraggingPanel = options.targetDraggingPanel;\r\n if (targetDraggingPanel && \"headers\" === targetDraggingPanel.getName() && targetDraggingPanel.isFixedColumns()) {\r\n if (options.sourceColumn.fixed) {\r\n if (!options.rowIndex) {\r\n options.columnElements = targetDraggingPanel.getFixedColumnElements(0)\r\n }\r\n options.columns = targetDraggingPanel.getFixedColumns(options.rowIndex);\r\n var pointsByColumns = this.callBase(options);\r\n normalizeColumnIndicesByPoints(visibleColumns, options.columns, pointsByColumns);\r\n return pointsByColumns\r\n }\r\n }\r\n return this.callBase(options)\r\n },\r\n _pointCreated: function(point, columns, location, sourceColumn) {\r\n var result = this.callBase.apply(this, arguments);\r\n var targetColumn = columns[point.columnIndex];\r\n var $transparentColumn = this._columnHeadersView.getTransparentColumnElement();\r\n if (!result && \"headers\" === location && $transparentColumn && $transparentColumn.length) {\r\n var boundingRect = (0, _position.getBoundingRect)($transparentColumn.get(0));\r\n if (sourceColumn && sourceColumn.fixed) {\r\n return \"right\" === sourceColumn.fixedPosition ? point.x < boundingRect.right : point.x > boundingRect.left\r\n } else {\r\n if (targetColumn && targetColumn.fixed && \"right\" !== targetColumn.fixedPosition) {\r\n return true\r\n }\r\n return point.x < boundingRect.left || point.x > boundingRect.right\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n columnsResizer: {\r\n _generatePointsByColumns: function() {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var columns = columnsController && that._columnsController.getVisibleColumns();\r\n var fixedColumns = columnsController && that._columnsController.getFixedColumns();\r\n var cells = that._columnHeadersView.getFixedColumnElements();\r\n var pointsByFixedColumns = [];\r\n that.callBase();\r\n if (cells && cells.length > 0) {\r\n pointsByFixedColumns = _uiGrid_core.default.getPointsByColumns(cells, function(point) {\r\n return that._pointCreated(point, cells.length, fixedColumns)\r\n });\r\n that._pointsByFixedColumns = normalizeColumnIndicesByPoints(columns, fixedColumns, pointsByFixedColumns)\r\n }\r\n },\r\n _pointCreated: function(point, cellsLength, columns) {\r\n var isWidgetResizingMode = \"widget\" === this.option(\"columnResizingMode\");\r\n if (point.index > 0 && point.index < cellsLength) {\r\n var currentColumn = columns[point.columnIndex - 1] || {};\r\n var nextColumn = columns[point.columnIndex] || {};\r\n if (currentColumn.fixed || nextColumn.fixed) {\r\n point.columnIndex -= 1;\r\n return !((currentColumn.allowResizing || currentColumn.command === COMMAND_TRANSPARENT) && (isWidgetResizingMode || nextColumn.allowResizing || nextColumn.command === COMMAND_TRANSPARENT))\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getTargetPoint: function(pointsByColumns, currentX, deltaX) {\r\n var $transparentColumn = this._columnHeadersView.getTransparentColumnElement();\r\n if ($transparentColumn && $transparentColumn.length) {\r\n var boundingRect = (0, _position.getBoundingRect)($transparentColumn.get(0));\r\n if (currentX <= boundingRect.left || currentX >= boundingRect.right) {\r\n return this.callBase(this._pointsByFixedColumns, currentX, deltaX)\r\n }\r\n }\r\n return this.callBase(pointsByColumns, currentX, deltaX)\r\n }\r\n }\r\n }\r\n }()\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `IsIntegralNumber` abstract operation\n// https://tc39.es/ecma262/#sec-isintegralnumber\n// eslint-disable-next-line es/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.pager.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.pager\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"pager\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.validating.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.validating\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"validating\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.filter_row.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _editor = _interopRequireDefault(require(\"../editor/editor\"));\r\nvar _overlay = _interopRequireDefault(require(\"../overlay\"));\r\nvar _menu = _interopRequireDefault(require(\"../menu\"));\r\nvar _accessibility = require(\"../shared/accessibility\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar OPERATION_ICONS = {\r\n \"=\": \"filter-operation-equals\",\r\n \"<>\": \"filter-operation-not-equals\",\r\n \"<\": \"filter-operation-less\",\r\n \"<=\": \"filter-operation-less-equal\",\r\n \">\": \"filter-operation-greater\",\r\n \">=\": \"filter-operation-greater-equal\",\r\n \"default\": \"filter-operation-default\",\r\n notcontains: \"filter-operation-not-contains\",\r\n contains: \"filter-operation-contains\",\r\n startswith: \"filter-operation-starts-with\",\r\n endswith: \"filter-operation-ends-with\",\r\n between: \"filter-operation-between\"\r\n};\r\nvar OPERATION_DESCRIPTORS = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notEqual\",\r\n \"<\": \"lessThan\",\r\n \"<=\": \"lessThanOrEqual\",\r\n \">\": \"greaterThan\",\r\n \">=\": \"greaterThanOrEqual\",\r\n startswith: \"startsWith\",\r\n contains: \"contains\",\r\n notcontains: \"notContains\",\r\n endswith: \"endsWith\",\r\n between: \"between\"\r\n};\r\nvar FILTERING_TIMEOUT = 700;\r\nvar CORRECT_FILTER_RANGE_OVERLAY_WIDTH = 1;\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar FILTER_RANGE_OVERLAY_CLASS = \"filter-range-overlay\";\r\nvar FILTER_RANGE_START_CLASS = \"filter-range-start\";\r\nvar FILTER_RANGE_END_CLASS = \"filter-range-end\";\r\nvar MENU_CLASS = \"dx-menu\";\r\nvar EDITOR_WITH_MENU_CLASS = \"dx-editor-with-menu\";\r\nvar EDITOR_CONTAINER_CLASS = \"dx-editor-container\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar FILTER_MENU = \"dx-filter-menu\";\r\nvar APPLY_BUTTON_CLASS = \"dx-apply-button\";\r\nvar HIGHLIGHT_OUTLINE_CLASS = \"dx-highlight-outline\";\r\nvar FOCUSED_CLASS = \"dx-focused\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FILTER_RANGE_CONTENT_CLASS = \"dx-filter-range-content\";\r\nvar FILTER_MODIFIED_CLASS = \"dx-filter-modified\";\r\nvar EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nvar BETWEEN_OPERATION_DATA_TYPES = [\"date\", \"datetime\", \"number\"];\r\n\r\nfunction isOnClickApplyFilterMode(that) {\r\n return \"onClick\" === that.option(\"filterRow.applyFilter\")\r\n}\r\nvar ColumnHeadersViewFilterRowExtender = function() {\r\n var getEditorInstance = function($editorContainer) {\r\n var $editor = $editorContainer && $editorContainer.children();\r\n var componentNames = $editor && $editor.data(\"dxComponents\");\r\n var editor = componentNames && componentNames.length && $editor.data(componentNames[0]);\r\n if (editor instanceof _editor.default) {\r\n return editor\r\n }\r\n };\r\n var getRangeTextByFilterValue = function(that, column) {\r\n var result = \"\";\r\n var rangeEnd = \"\";\r\n var filterValue = getColumnFilterValue(that, column);\r\n var formatOptions = _uiGrid_core2.default.getFormatOptionsByColumn(column, \"filterRow\");\r\n if (Array.isArray(filterValue)) {\r\n result = _uiGrid_core2.default.formatValue(filterValue[0], formatOptions);\r\n rangeEnd = _uiGrid_core2.default.formatValue(filterValue[1], formatOptions);\r\n if (\"\" !== rangeEnd) {\r\n result += \" - \" + rangeEnd\r\n }\r\n } else {\r\n if ((0, _type.isDefined)(filterValue)) {\r\n result = _uiGrid_core2.default.formatValue(filterValue, formatOptions)\r\n }\r\n }\r\n return result\r\n };\r\n\r\n function getColumnFilterValue(that, column) {\r\n if (column) {\r\n return isOnClickApplyFilterMode(that) && void 0 !== column.bufferedFilterValue ? column.bufferedFilterValue : column.filterValue\r\n }\r\n }\r\n var getColumnSelectedFilterOperation = function(that, column) {\r\n if (column) {\r\n return isOnClickApplyFilterMode(that) && void 0 !== column.bufferedSelectedFilterOperation ? column.bufferedSelectedFilterOperation : column.selectedFilterOperation\r\n }\r\n };\r\n var isValidFilterValue = function(filterValue, column) {\r\n if (column && BETWEEN_OPERATION_DATA_TYPES.indexOf(column.dataType) >= 0 && Array.isArray(filterValue)) {\r\n return false\r\n }\r\n return void 0 !== filterValue\r\n };\r\n var getFilterValue = function(that, columnIndex, $editorContainer) {\r\n var column = that._columnsController.columnOption(columnIndex);\r\n var filterValue = getColumnFilterValue(that, column);\r\n var isFilterRange = $editorContainer.closest(\".\" + that.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS)).length;\r\n var isRangeStart = $editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS));\r\n if (filterValue && Array.isArray(filterValue) && \"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n if (isRangeStart) {\r\n return filterValue[0]\r\n } else {\r\n return filterValue[1]\r\n }\r\n }\r\n return !isFilterRange && isValidFilterValue(filterValue, column) ? filterValue : null\r\n };\r\n var normalizeFilterValue = function(that, filterValue, column, $editorContainer) {\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n var columnFilterValue = getColumnFilterValue(that, column);\r\n if ($editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS))) {\r\n return [filterValue, Array.isArray(columnFilterValue) ? columnFilterValue[1] : void 0]\r\n } else {\r\n return [Array.isArray(columnFilterValue) ? columnFilterValue[0] : columnFilterValue, filterValue]\r\n }\r\n }\r\n return filterValue\r\n };\r\n var updateFilterValue = function(that, options) {\r\n var value = \"\" === options.value ? null : options.value;\r\n var $editorContainer = options.container;\r\n var column = that._columnsController.columnOption(options.column.index);\r\n var filterValue = getFilterValue(that, column.index, $editorContainer);\r\n if (!(0, _type.isDefined)(filterValue) && !(0, _type.isDefined)(value)) {\r\n return\r\n }\r\n that._applyFilterViewController.setHighLight($editorContainer, filterValue !== value);\r\n that._columnsController.columnOption(column.index, isOnClickApplyFilterMode(that) ? \"bufferedFilterValue\" : \"filterValue\", normalizeFilterValue(that, value, column, $editorContainer), options.notFireEvent)\r\n };\r\n return {\r\n _updateEditorValue: function(column, $editorContainer) {\r\n var that = this;\r\n var editor = getEditorInstance($editorContainer);\r\n editor && editor.option(\"value\", getFilterValue(that, column.index, $editorContainer))\r\n },\r\n _columnOptionChanged: function(e) {\r\n var that = this;\r\n var optionNames = e.optionNames;\r\n var $cell;\r\n var $editorContainer;\r\n var $editorRangeElements;\r\n var $menu;\r\n if (_uiGrid_core2.default.checkChanges(optionNames, [\"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"bufferedSelectedFilterOperation\"]) && void 0 !== e.columnIndex) {\r\n var visibleIndex = that._columnsController.getVisibleIndex(e.columnIndex);\r\n var column = that._columnsController.columnOption(e.columnIndex);\r\n $cell = that._getCellElement(that.element().find(\".\" + that.addWidgetPrefix(FILTER_ROW_CLASS)).index(), visibleIndex) || (0, _renderer.default)();\r\n $editorContainer = $cell.find(\".\" + EDITOR_CONTAINER_CLASS).first();\r\n if (optionNames.filterValue || optionNames.bufferedFilterValue) {\r\n that._updateEditorValue(column, $editorContainer);\r\n var overlayInstance = $cell.find(\".\" + that.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS)).data(\"dxOverlay\");\r\n if (overlayInstance) {\r\n $editorRangeElements = overlayInstance.$content().find(\".\" + EDITOR_CONTAINER_CLASS);\r\n that._updateEditorValue(column, $editorRangeElements.first());\r\n that._updateEditorValue(column, $editorRangeElements.last())\r\n }\r\n if (!overlayInstance || !overlayInstance.option(\"visible\")) {\r\n that._updateFilterRangeContent($cell, getRangeTextByFilterValue(that, column))\r\n }\r\n }\r\n if (optionNames.selectedFilterOperation || optionNames.bufferedSelectedFilterOperation) {\r\n if (visibleIndex >= 0 && column) {\r\n $menu = $cell.find(\".\" + MENU_CLASS);\r\n if ($menu.length) {\r\n that._updateFilterOperationChooser($menu, column, $editorContainer);\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n that._renderFilterRangeContent($cell, column)\r\n } else {\r\n if ($editorContainer.find(\".\" + FILTER_RANGE_CONTENT_CLASS).length) {\r\n that._renderEditor($editorContainer, that._getEditorOptions($editorContainer, column));\r\n that._hideFilterRange()\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return\r\n }\r\n that.callBase(e)\r\n },\r\n _renderCore: function() {\r\n this._filterRangeOverlayInstance = null;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _resizeCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this._filterRangeOverlayInstance && this._filterRangeOverlayInstance.repaint()\r\n },\r\n isFilterRowVisible: function() {\r\n return this._isElementVisible(this.option(\"filterRow\"))\r\n },\r\n isVisible: function() {\r\n return this.callBase() || this.isFilterRowVisible()\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._applyFilterViewController = this.getController(\"applyFilter\")\r\n },\r\n _initFilterRangeOverlay: function($cell, column) {\r\n var that = this;\r\n var sharedData = {};\r\n var $editorContainer = $cell.find(\".dx-editor-container\");\r\n var $overlay = (0, _renderer.default)(\"
\").addClass(that.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS)).appendTo($cell);\r\n return that._createComponent($overlay, _overlay.default, {\r\n height: \"auto\",\r\n shading: false,\r\n showTitle: false,\r\n focusStateEnabled: false,\r\n closeOnTargetScroll: false,\r\n closeOnOutsideClick: true,\r\n animation: false,\r\n position: {\r\n my: \"top\",\r\n at: \"top\",\r\n of: $editorContainer.length && $editorContainer || $cell,\r\n offset: \"0 -1\"\r\n },\r\n contentTemplate: function(contentElement) {\r\n var editorOptions;\r\n var $editor = (0, _renderer.default)(\"
\").addClass(EDITOR_CONTAINER_CLASS + \" \" + that.addWidgetPrefix(FILTER_RANGE_START_CLASS)).appendTo(contentElement);\r\n column = that._columnsController.columnOption(column.index);\r\n editorOptions = that._getEditorOptions($editor, column);\r\n editorOptions.sharedData = sharedData;\r\n that._renderEditor($editor, editorOptions);\r\n _events_engine.default.on($editor.find(EDITORS_INPUT_SELECTOR), \"keydown\", function(e) {\r\n var $prevElement = $cell.find(\"[tabindex]\").not(e.target).first();\r\n if (\"tab\" === (0, _index.normalizeKeyName)(e) && e.shiftKey) {\r\n e.preventDefault();\r\n that._hideFilterRange();\r\n if (!$prevElement.length) {\r\n $prevElement = $cell.prev().find(\"[tabindex]\").last()\r\n }\r\n _events_engine.default.trigger($prevElement, \"focus\")\r\n }\r\n });\r\n $editor = (0, _renderer.default)(\"
\").addClass(EDITOR_CONTAINER_CLASS + \" \" + that.addWidgetPrefix(FILTER_RANGE_END_CLASS)).appendTo(contentElement);\r\n editorOptions = that._getEditorOptions($editor, column);\r\n editorOptions.sharedData = sharedData;\r\n that._renderEditor($editor, editorOptions);\r\n _events_engine.default.on($editor.find(EDITORS_INPUT_SELECTOR), \"keydown\", function(e) {\r\n if (\"tab\" === (0, _index.normalizeKeyName)(e) && !e.shiftKey) {\r\n e.preventDefault();\r\n that._hideFilterRange();\r\n _events_engine.default.trigger($cell.next().find(\"[tabindex]\").first(), \"focus\")\r\n }\r\n });\r\n return (0, _renderer.default)(contentElement).addClass(that.getWidgetContainerClass())\r\n },\r\n onShown: function(e) {\r\n var $editor = e.component.$content().find(\".\" + EDITOR_CONTAINER_CLASS).first();\r\n _events_engine.default.trigger($editor.find(EDITORS_INPUT_SELECTOR), \"focus\")\r\n },\r\n onHidden: function() {\r\n column = that._columnsController.columnOption(column.index);\r\n $cell.find(\".\" + MENU_CLASS).parent().addClass(EDITOR_WITH_MENU_CLASS);\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n that._updateFilterRangeContent($cell, getRangeTextByFilterValue(that, column));\r\n that.component.updateDimensions()\r\n }\r\n }\r\n })\r\n },\r\n _updateFilterRangeOverlay: function(options) {\r\n var overlayInstance = this._filterRangeOverlayInstance;\r\n overlayInstance && overlayInstance.option(options)\r\n },\r\n _showFilterRange: function($cell, column) {\r\n var that = this;\r\n var $overlay = $cell.children(\".\" + that.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS));\r\n var overlayInstance = $overlay.length && $overlay.data(\"dxOverlay\");\r\n if (!overlayInstance && column) {\r\n overlayInstance = that._initFilterRangeOverlay($cell, column)\r\n }\r\n if (!overlayInstance.option(\"visible\")) {\r\n that._filterRangeOverlayInstance && that._filterRangeOverlayInstance.hide();\r\n that._filterRangeOverlayInstance = overlayInstance;\r\n that._updateFilterRangeOverlay({\r\n width: $cell.outerWidth(true) + CORRECT_FILTER_RANGE_OVERLAY_WIDTH\r\n });\r\n that._filterRangeOverlayInstance && that._filterRangeOverlayInstance.show()\r\n }\r\n },\r\n _hideFilterRange: function() {\r\n var overlayInstance = this._filterRangeOverlayInstance;\r\n overlayInstance && overlayInstance.hide()\r\n },\r\n getFilterRangeOverlayInstance: function() {\r\n return this._filterRangeOverlayInstance\r\n },\r\n _createRow: function(row) {\r\n var _this = this;\r\n var $row = this.callBase(row);\r\n if (\"filter\" === row.rowType) {\r\n $row.addClass(this.addWidgetPrefix(FILTER_ROW_CLASS));\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n _events_engine.default.on($row, \"keydown\", function(event) {\r\n return (0, _accessibility.selectView)(\"filterRow\", _this, event)\r\n })\r\n }\r\n }\r\n return $row\r\n },\r\n _getRows: function() {\r\n var result = this.callBase();\r\n if (this.isFilterRowVisible()) {\r\n result.push({\r\n rowType: \"filter\"\r\n })\r\n }\r\n return result\r\n },\r\n _renderFilterCell: function(cell, options) {\r\n var that = this;\r\n var column = options.column;\r\n var $cell = (0, _renderer.default)(cell);\r\n if (that.component.option(\"showColumnHeaders\")) {\r\n that.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n that.setAria(\"label\", _message.default.format(\"dxDataGrid-ariaFilterCell\"), $cell);\r\n $cell.addClass(EDITOR_CELL_CLASS);\r\n var $container = (0, _renderer.default)(\"
\").appendTo($cell);\r\n var $editorContainer = (0, _renderer.default)(\"
\").addClass(EDITOR_CONTAINER_CLASS).appendTo($container);\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n that._renderFilterRangeContent($cell, column)\r\n } else {\r\n var editorOptions = that._getEditorOptions($editorContainer, column);\r\n that._renderEditor($editorContainer, editorOptions)\r\n }\r\n var alignment = column.alignment;\r\n if (alignment && \"center\" !== alignment) {\r\n $cell.find(EDITORS_INPUT_SELECTOR).first().css(\"textAlign\", column.alignment)\r\n }\r\n if (column.filterOperations && column.filterOperations.length) {\r\n that._renderFilterOperationChooser($container, column, $editorContainer)\r\n }\r\n },\r\n _renderCellContent: function($cell, options) {\r\n var that = this;\r\n var column = options.column;\r\n if (\"filter\" === options.rowType) {\r\n if (column.command) {\r\n $cell.html(\" \")\r\n } else {\r\n if (column.allowFiltering) {\r\n that.renderTemplate($cell, that._renderFilterCell.bind(that), options).done(function() {\r\n that._updateCell($cell, options)\r\n });\r\n return\r\n }\r\n }\r\n }\r\n that.callBase($cell, options)\r\n },\r\n _getEditorOptions: function($editorContainer, column) {\r\n var that = this;\r\n var accessibilityOptions = {\r\n editorOptions: {\r\n inputAttr: that._getFilterInputAccessibilityAttributes(column)\r\n }\r\n };\r\n var result = (0, _extend.extend)(accessibilityOptions, column, {\r\n value: getFilterValue(that, column.index, $editorContainer),\r\n parentType: \"filterRow\",\r\n showAllText: that.option(\"filterRow.showAllText\"),\r\n updateValueTimeout: \"onClick\" === that.option(\"filterRow.applyFilter\") ? 0 : FILTERING_TIMEOUT,\r\n width: null,\r\n setValue: function(value, notFireEvent) {\r\n updateFilterValue(that, {\r\n column: column,\r\n value: value,\r\n container: $editorContainer,\r\n notFireEvent: notFireEvent\r\n })\r\n }\r\n });\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n if ($editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS))) {\r\n result.placeholder = that.option(\"filterRow.betweenStartText\")\r\n } else {\r\n result.placeholder = that.option(\"filterRow.betweenEndText\")\r\n }\r\n }\r\n return result\r\n },\r\n _getFilterInputAccessibilityAttributes: function(column) {\r\n var columnAriaLabel = _message.default.format(\"dxDataGrid-ariaFilterCell\");\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n return {\r\n \"aria-label\": columnAriaLabel,\r\n \"aria-describedby\": column.headerId\r\n }\r\n }\r\n return {\r\n \"aria-label\": columnAriaLabel\r\n }\r\n },\r\n _renderEditor: function($editorContainer, options) {\r\n $editorContainer.empty();\r\n return this.getController(\"editorFactory\").createEditor((0, _renderer.default)(\"
\").appendTo($editorContainer), options)\r\n },\r\n _renderFilterRangeContent: function($cell, column) {\r\n var that = this;\r\n var $editorContainer = $cell.find(\".\" + EDITOR_CONTAINER_CLASS).first();\r\n $editorContainer.empty();\r\n var $filterRangeContent = (0, _renderer.default)(\"
\").addClass(FILTER_RANGE_CONTENT_CLASS).attr(\"tabindex\", this.option(\"tabIndex\"));\r\n _events_engine.default.on($filterRangeContent, \"focusin\", function() {\r\n that._showFilterRange($cell, column)\r\n });\r\n $filterRangeContent.appendTo($editorContainer);\r\n that._updateFilterRangeContent($cell, getRangeTextByFilterValue(that, column))\r\n },\r\n _updateFilterRangeContent: function($cell, value) {\r\n var $filterRangeContent = $cell.find(\".\" + FILTER_RANGE_CONTENT_CLASS);\r\n if ($filterRangeContent.length) {\r\n if (\"\" === value) {\r\n $filterRangeContent.html(\" \")\r\n } else {\r\n $filterRangeContent.text(value)\r\n }\r\n }\r\n },\r\n _updateFilterOperationChooser: function($menu, column, $editorContainer) {\r\n var that = this;\r\n var isCellWasFocused;\r\n var restoreFocus = function() {\r\n var menu = _menu.default.getInstance($menu);\r\n menu && menu.option(\"focusedElement\", null);\r\n isCellWasFocused && that._focusEditor($editorContainer)\r\n };\r\n that._createComponent($menu, _menu.default, {\r\n integrationOptions: {},\r\n activeStateEnabled: false,\r\n selectionMode: \"single\",\r\n cssClass: that.getWidgetContainerClass() + \" \" + CELL_FOCUS_DISABLED_CLASS + \" \" + FILTER_MENU,\r\n showFirstSubmenuMode: \"onHover\",\r\n hideSubmenuOnMouseLeave: true,\r\n items: [{\r\n disabled: column.filterOperations && column.filterOperations.length ? false : true,\r\n icon: OPERATION_ICONS[getColumnSelectedFilterOperation(that, column) || \"default\"],\r\n selectable: false,\r\n items: that._getFilterOperationMenuItems(column)\r\n }],\r\n onItemClick: function(properties) {\r\n var selectedFilterOperation = properties.itemData.name;\r\n var columnSelectedFilterOperation = getColumnSelectedFilterOperation(that, column);\r\n var notFocusEditor = false;\r\n var isOnClickMode = isOnClickApplyFilterMode(that);\r\n var options = {};\r\n if (properties.itemData.items || selectedFilterOperation && selectedFilterOperation === columnSelectedFilterOperation) {\r\n return\r\n }\r\n if (selectedFilterOperation) {\r\n options[isOnClickMode ? \"bufferedSelectedFilterOperation\" : \"selectedFilterOperation\"] = selectedFilterOperation;\r\n if (\"between\" === selectedFilterOperation || \"between\" === columnSelectedFilterOperation) {\r\n notFocusEditor = \"between\" === selectedFilterOperation;\r\n options[isOnClickMode ? \"bufferedFilterValue\" : \"filterValue\"] = null\r\n }\r\n } else {\r\n options[isOnClickMode ? \"bufferedFilterValue\" : \"filterValue\"] = null;\r\n options[isOnClickMode ? \"bufferedSelectedFilterOperation\" : \"selectedFilterOperation\"] = column.defaultSelectedFilterOperation || null\r\n }\r\n that._columnsController.columnOption(column.index, options);\r\n that._applyFilterViewController.setHighLight($editorContainer, true);\r\n if (!selectedFilterOperation) {\r\n var editor = getEditorInstance($editorContainer);\r\n if (editor && \"dxDateBox\" === editor.NAME && !editor.option(\"isValid\")) {\r\n editor.reset();\r\n editor.option(\"isValid\", true)\r\n }\r\n }\r\n if (!notFocusEditor) {\r\n that._focusEditor($editorContainer)\r\n } else {\r\n that._showFilterRange($editorContainer.closest(\".\" + EDITOR_CELL_CLASS), column)\r\n }\r\n },\r\n onSubmenuShown: function() {\r\n isCellWasFocused = that._isEditorFocused($editorContainer);\r\n that.getController(\"editorFactory\").loseFocus()\r\n },\r\n onSubmenuHiding: function() {\r\n _events_engine.default.trigger($menu, \"blur\");\r\n restoreFocus()\r\n },\r\n onContentReady: function(e) {\r\n _events_engine.default.on($menu, \"blur\", function() {\r\n var menu = e.component;\r\n menu._hideSubmenu(menu._visibleSubmenu);\r\n restoreFocus()\r\n })\r\n },\r\n rtlEnabled: that.option(\"rtlEnabled\")\r\n })\r\n },\r\n _isEditorFocused: function($container) {\r\n return $container.hasClass(FOCUSED_CLASS) || $container.parents(\".\" + FOCUSED_CLASS).length\r\n },\r\n _focusEditor: function($container) {\r\n this.getController(\"editorFactory\").focus($container);\r\n _events_engine.default.trigger($container.find(EDITORS_INPUT_SELECTOR), \"focus\")\r\n },\r\n _renderFilterOperationChooser: function($container, column, $editorContainer) {\r\n var that = this;\r\n var $menu;\r\n if (that.option(\"filterRow.showOperationChooser\")) {\r\n $container.addClass(EDITOR_WITH_MENU_CLASS);\r\n $menu = (0, _renderer.default)(\"
\").prependTo($container);\r\n that._updateFilterOperationChooser($menu, column, $editorContainer)\r\n }\r\n },\r\n _getFilterOperationMenuItems: function(column) {\r\n var that = this;\r\n var result = [{}];\r\n var filterRowOptions = that.option(\"filterRow\");\r\n var operationDescriptions = filterRowOptions && filterRowOptions.operationDescriptions || {};\r\n if (column.filterOperations && column.filterOperations.length) {\r\n var availableFilterOperations = column.filterOperations.filter(function(value) {\r\n return (0, _type.isDefined)(OPERATION_DESCRIPTORS[value])\r\n });\r\n result = (0, _iterator.map)(availableFilterOperations, function(value) {\r\n var descriptionName = OPERATION_DESCRIPTORS[value];\r\n return {\r\n name: value,\r\n selected: (getColumnSelectedFilterOperation(that, column) || column.defaultFilterOperation) === value,\r\n text: operationDescriptions[descriptionName],\r\n icon: OPERATION_ICONS[value]\r\n }\r\n });\r\n result.push({\r\n name: null,\r\n text: filterRowOptions && filterRowOptions.resetOperationText,\r\n icon: OPERATION_ICONS.default\r\n })\r\n }\r\n return result\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n switch (args.name) {\r\n case \"filterRow\":\r\n case \"showColumnLines\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n }\r\n }\r\n}();\r\nvar DataControllerFilterRowExtender = {\r\n skipCalculateColumnFilters: function() {\r\n return false\r\n },\r\n _calculateAdditionalFilter: function() {\r\n if (this.skipCalculateColumnFilters()) {\r\n return this.callBase()\r\n }\r\n var filters = [this.callBase()];\r\n var columns = this._columnsController.getVisibleColumns(null, true);\r\n (0, _iterator.each)(columns, function() {\r\n if (this.allowFiltering && this.calculateFilterExpression && (0, _type.isDefined)(this.filterValue)) {\r\n var filter = this.createFilterExpression(this.filterValue, this.selectedFilterOperation || this.defaultFilterOperation, \"filterRow\");\r\n filters.push(filter)\r\n }\r\n });\r\n return _uiGrid_core2.default.combineFilters(filters)\r\n }\r\n};\r\nvar ApplyFilterViewController = _uiGrid_core.default.ViewController.inherit({\r\n _getHeaderPanel: function() {\r\n if (!this._headerPanel) {\r\n this._headerPanel = this.getView(\"headerPanel\")\r\n }\r\n return this._headerPanel\r\n },\r\n setHighLight: function($element, value) {\r\n if (isOnClickApplyFilterMode(this)) {\r\n $element && $element.toggleClass(HIGHLIGHT_OUTLINE_CLASS, value) && $element.closest(\".\" + EDITOR_CELL_CLASS).toggleClass(FILTER_MODIFIED_CLASS, value);\r\n this._getHeaderPanel().enableApplyButton(value)\r\n }\r\n },\r\n applyFilter: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var columns = columnsController.getColumns();\r\n columnsController.beginUpdate();\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (void 0 !== column.bufferedFilterValue) {\r\n columnsController.columnOption(i, \"filterValue\", column.bufferedFilterValue);\r\n column.bufferedFilterValue = void 0\r\n }\r\n if (void 0 !== column.bufferedSelectedFilterOperation) {\r\n columnsController.columnOption(i, \"selectedFilterOperation\", column.bufferedSelectedFilterOperation);\r\n column.bufferedSelectedFilterOperation = void 0\r\n }\r\n }\r\n columnsController.endUpdate();\r\n this.removeHighLights()\r\n },\r\n removeHighLights: function() {\r\n if (isOnClickApplyFilterMode(this)) {\r\n var columnHeadersViewElement = this.getView(\"columnHeadersView\").element();\r\n columnHeadersViewElement.find(\".\" + this.addWidgetPrefix(FILTER_ROW_CLASS) + \" .\" + HIGHLIGHT_OUTLINE_CLASS).removeClass(HIGHLIGHT_OUTLINE_CLASS);\r\n columnHeadersViewElement.find(\".\" + this.addWidgetPrefix(FILTER_ROW_CLASS) + \" .\" + FILTER_MODIFIED_CLASS).removeClass(FILTER_MODIFIED_CLASS);\r\n this._getHeaderPanel().enableApplyButton(false)\r\n }\r\n }\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n filterRow: {\r\n visible: false,\r\n showOperationChooser: true,\r\n showAllText: _message.default.format(\"dxDataGrid-filterRowShowAllText\"),\r\n resetOperationText: _message.default.format(\"dxDataGrid-filterRowResetOperationText\"),\r\n applyFilter: \"auto\",\r\n applyFilterText: _message.default.format(\"dxDataGrid-applyFilterText\"),\r\n operationDescriptions: {\r\n equal: _message.default.format(\"dxDataGrid-filterRowOperationEquals\"),\r\n notEqual: _message.default.format(\"dxDataGrid-filterRowOperationNotEquals\"),\r\n lessThan: _message.default.format(\"dxDataGrid-filterRowOperationLess\"),\r\n lessThanOrEqual: _message.default.format(\"dxDataGrid-filterRowOperationLessOrEquals\"),\r\n greaterThan: _message.default.format(\"dxDataGrid-filterRowOperationGreater\"),\r\n greaterThanOrEqual: _message.default.format(\"dxDataGrid-filterRowOperationGreaterOrEquals\"),\r\n startsWith: _message.default.format(\"dxDataGrid-filterRowOperationStartsWith\"),\r\n contains: _message.default.format(\"dxDataGrid-filterRowOperationContains\"),\r\n notContains: _message.default.format(\"dxDataGrid-filterRowOperationNotContains\"),\r\n endsWith: _message.default.format(\"dxDataGrid-filterRowOperationEndsWith\"),\r\n between: _message.default.format(\"dxDataGrid-filterRowOperationBetween\"),\r\n isBlank: _message.default.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: _message.default.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n },\r\n betweenStartText: _message.default.format(\"dxDataGrid-filterRowOperationBetweenStartText\"),\r\n betweenEndText: _message.default.format(\"dxDataGrid-filterRowOperationBetweenEndText\")\r\n }\r\n }\r\n },\r\n controllers: {\r\n applyFilter: ApplyFilterViewController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: DataControllerFilterRowExtender,\r\n columnsResizer: {\r\n _startResizing: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n if (that.isResizing()) {\r\n var overlayInstance = that._columnHeadersView.getFilterRangeOverlayInstance();\r\n if (overlayInstance) {\r\n var cellIndex = overlayInstance.$element().closest(\"td\").index();\r\n if (cellIndex === that._targetPoint.columnIndex || cellIndex === that._targetPoint.columnIndex + 1) {\r\n overlayInstance.$content().hide()\r\n }\r\n }\r\n }\r\n },\r\n _endResizing: function() {\r\n var that = this;\r\n var $cell;\r\n if (that.isResizing()) {\r\n var overlayInstance = that._columnHeadersView.getFilterRangeOverlayInstance();\r\n if (overlayInstance) {\r\n $cell = overlayInstance.$element().closest(\"td\");\r\n that._columnHeadersView._updateFilterRangeOverlay({\r\n width: $cell.outerWidth(true) + CORRECT_FILTER_RANGE_OVERLAY_WIDTH\r\n });\r\n overlayInstance.$content().show()\r\n }\r\n }\r\n that.callBase.apply(that, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: ColumnHeadersViewFilterRowExtender,\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n var filterItem = this._prepareFilterItem(items);\r\n return filterItem.concat(items)\r\n },\r\n _prepareFilterItem: function() {\r\n var that = this;\r\n var filterItem = [];\r\n if (that._isShowApplyFilterButton()) {\r\n var hintText = that.option(\"filterRow.applyFilterText\");\r\n var columns = that._columnsController.getColumns();\r\n var disabled = !columns.filter(function(column) {\r\n return void 0 !== column.bufferedFilterValue\r\n }).length;\r\n var onInitialized = function(e) {\r\n (0, _renderer.default)(e.element).addClass(that._getToolbarButtonClass(APPLY_BUTTON_CLASS))\r\n };\r\n var onClickHandler = function() {\r\n that._applyFilterViewController.applyFilter()\r\n };\r\n var toolbarItem = {\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"apply-filter\",\r\n disabled: disabled,\r\n onClick: onClickHandler,\r\n hint: hintText,\r\n text: hintText,\r\n onInitialized: onInitialized\r\n },\r\n showText: \"inMenu\",\r\n name: \"applyFilterButton\",\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 10\r\n };\r\n filterItem.push(toolbarItem)\r\n }\r\n return filterItem\r\n },\r\n _isShowApplyFilterButton: function() {\r\n var filterRowOptions = this.option(\"filterRow\");\r\n return filterRowOptions && filterRowOptions.visible && \"onClick\" === filterRowOptions.applyFilter\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._dataController = this.getController(\"data\");\r\n this._applyFilterViewController = this.getController(\"applyFilter\")\r\n },\r\n enableApplyButton: function(value) {\r\n this.setToolbarItemDisabled(\"applyFilterButton\", !value)\r\n },\r\n isVisible: function() {\r\n return this.callBase() || this._isShowApplyFilterButton()\r\n },\r\n optionChanged: function(args) {\r\n if (\"filterRow\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/filter_builder/between.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getConfig = getConfig;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar FILTER_BUILDER_RANGE_CLASS = \"dx-filterbuilder-range\";\r\nvar FILTER_BUILDER_RANGE_START_CLASS = FILTER_BUILDER_RANGE_CLASS + \"-start\";\r\nvar FILTER_BUILDER_RANGE_END_CLASS = FILTER_BUILDER_RANGE_CLASS + \"-end\";\r\nvar FILTER_BUILDER_RANGE_SEPARATOR_CLASS = FILTER_BUILDER_RANGE_CLASS + \"-separator\";\r\nvar SEPARATOR = \"\\u2013\";\r\n\r\nfunction editorTemplate(conditionInfo, container) {\r\n var $editorStart = (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_RANGE_START_CLASS);\r\n var $editorEnd = (0, _renderer.default)(\"
\").addClass(FILTER_BUILDER_RANGE_END_CLASS);\r\n var values = conditionInfo.value || [];\r\n var getStartValue = function(values) {\r\n return values && values.length > 0 ? values[0] : null\r\n };\r\n var getEndValue = function(values) {\r\n return values && 2 === values.length ? values[1] : null\r\n };\r\n container.append($editorStart);\r\n container.append((0, _renderer.default)(\"\").addClass(FILTER_BUILDER_RANGE_SEPARATOR_CLASS).text(SEPARATOR));\r\n container.append($editorEnd);\r\n container.addClass(FILTER_BUILDER_RANGE_CLASS);\r\n this._editorFactory.createEditor.call(this, $editorStart, (0, _extend.extend)({}, conditionInfo.field, conditionInfo, {\r\n value: getStartValue(values),\r\n parentType: \"filterBuilder\",\r\n setValue: function(value) {\r\n values = [value, getEndValue(values)];\r\n conditionInfo.setValue(values)\r\n }\r\n }));\r\n this._editorFactory.createEditor.call(this, $editorEnd, (0, _extend.extend)({}, conditionInfo.field, conditionInfo, {\r\n value: getEndValue(values),\r\n parentType: \"filterBuilder\",\r\n setValue: function(value) {\r\n values = [getStartValue(values), value];\r\n conditionInfo.setValue(values)\r\n }\r\n }))\r\n}\r\n\r\nfunction getConfig(caption, context) {\r\n return {\r\n name: \"between\",\r\n caption: caption,\r\n icon: \"range\",\r\n valueSeparator: SEPARATOR,\r\n dataTypes: [\"number\", \"date\", \"datetime\"],\r\n editorTemplate: editorTemplate.bind(context),\r\n notForLookup: true\r\n }\r\n}\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.utils.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _filtering = _interopRequireDefault(require(\"../shared/filtering\"));\r\nvar _string = require(\"../../core/utils/string\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _load_panel = _interopRequireDefault(require(\"../load_panel\"));\r\nvar _utils = _interopRequireDefault(require(\"../../data/utils\"));\r\nvar _format_helper = _interopRequireDefault(require(\"../../format_helper\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\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 DATE_INTERVAL_SELECTORS = {\r\n year: function(value) {\r\n return value && value.getFullYear()\r\n },\r\n month: function(value) {\r\n return value && value.getMonth() + 1\r\n },\r\n day: function(value) {\r\n return value && value.getDate()\r\n },\r\n quarter: function(value) {\r\n return value && Math.floor(value.getMonth() / 3) + 1\r\n },\r\n hour: function(value) {\r\n return value && value.getHours()\r\n },\r\n minute: function(value) {\r\n return value && value.getMinutes()\r\n },\r\n second: function(value) {\r\n return value && value.getSeconds()\r\n }\r\n};\r\nvar getIntervalSelector = function() {\r\n var data = arguments[1];\r\n var value = this.calculateCellValue(data);\r\n if (!(0, _type.isDefined)(value)) {\r\n return null\r\n } else {\r\n if (isDateType(this.dataType)) {\r\n var nameIntervalSelector = arguments[0];\r\n return DATE_INTERVAL_SELECTORS[nameIntervalSelector](value)\r\n } else {\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\n }\r\n};\r\nvar equalSelectors = function(selector1, selector2) {\r\n if ((0, _type.isFunction)(selector1) && (0, _type.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 = _utils.default.normalizeSortingInfo(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 = _format_helper.default.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[summaryItem.summaryType + \"OtherColumn\"] || summaryTexts[summaryItem.summaryType];\r\n return formatValue(summaryItem.value, {\r\n format: summaryItem.valueFormat,\r\n getDisplayFormat: function(valueText) {\r\n return displayFormat ? (0, _string.format)(displayFormat, valueText, summaryItem.columnCaption) : valueText\r\n },\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 } else {\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 }\r\n return true\r\n } else {\r\n if ((0, _type.isFunction)(filter1) && filter1.columnIndex >= 0 && (0, _type.isFunction)(filter2) && filter2.columnIndex >= 0) {\r\n return filter1.columnIndex === filter2.columnIndex && (0, _data.toComparable)(filter1.filterValue) === (0, _data.toComparable)(filter2.filterValue)\r\n } else {\r\n return (0, _data.toComparable)(filter1) == (0, _data.toComparable)(filter2)\r\n }\r\n }\r\n};\r\nvar _default = {\r\n renderNoDataText: function($element) {\r\n var that = this;\r\n $element = $element || this.element();\r\n if (!$element) {\r\n return\r\n }\r\n var noDataClass = that.addWidgetPrefix(NO_DATA_CLASS);\r\n var noDataElement = $element.find(\".\" + noDataClass).last();\r\n var isVisible = this._dataController.isEmpty();\r\n var isLoading = this._dataController.isLoading();\r\n if (!noDataElement.length) {\r\n noDataElement = (0, _renderer.default)(\"\").addClass(noDataClass).appendTo($element)\r\n }\r\n if (isVisible && !isLoading) {\r\n noDataElement.removeClass(\"dx-hidden\").text(that._getNoDataText())\r\n } else {\r\n noDataElement.addClass(\"dx-hidden\")\r\n }\r\n },\r\n renderLoadPanel: function($element, $container, isLocalStore) {\r\n var that = this;\r\n var loadPanelOptions;\r\n that._loadPanel && that._loadPanel.$element().remove();\r\n loadPanelOptions = that.option(\"loadPanel\");\r\n if (loadPanelOptions && (\"auto\" === loadPanelOptions.enabled ? !isLocalStore : loadPanelOptions.enabled)) {\r\n loadPanelOptions = (0, _extend.extend)({\r\n shading: false,\r\n message: loadPanelOptions.text,\r\n position: function() {\r\n var $window = (0, _renderer.default)((0, _window.getWindow)());\r\n if ($element.height() > $window.height()) {\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 container: $container\r\n }, loadPanelOptions);\r\n that._loadPanel = that._createComponent((0, _renderer.default)(\"
\").appendTo($container), _load_panel.default, loadPanelOptions)\r\n } else {\r\n that._loadPanel = null\r\n }\r\n },\r\n getIndexByKey: function(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 = (0, _type.isDefined)(keyName) ? items[i][keyName] : items[i];\r\n if ((0, _common.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: function(filters, operation) {\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 (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 },\r\n checkChanges: function(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: function(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: function(column, target) {\r\n return {\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 },\r\n getDisplayValue: function(column, value, data, rowType) {\r\n if (column.displayValueMap && void 0 !== column.displayValueMap[value]) {\r\n return column.displayValueMap[value]\r\n } else {\r\n if (column.calculateDisplayValue && data && \"group\" !== rowType) {\r\n return column.calculateDisplayValue(data)\r\n } else {\r\n if (column.lookup && !(\"group\" === rowType && (column.calculateGroupValue || column.calculateDisplayValue))) {\r\n return column.lookup.calculateCellValue(value)\r\n }\r\n }\r\n }\r\n return value\r\n },\r\n getGroupRowSummaryText: function(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: function(dataType) {\r\n switch (dataType) {\r\n case \"date\":\r\n return \"shortDate\";\r\n case \"datetime\":\r\n return \"shortDateShortTime\"\r\n }\r\n },\r\n getHeaderFilterGroupParameters: function(column, remoteGrouping) {\r\n var result = [];\r\n var dataField = column.dataField || column.name;\r\n var groupInterval = _filtering.default.getGroupInterval(column);\r\n if (groupInterval) {\r\n (0, _iterator.each)(groupInterval, function(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 result(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: function(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 } else {\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 }\r\n return true\r\n } else {\r\n return (!sortParameters1 || !sortParameters1.length) === (!sortParameters2 || !sortParameters2.length)\r\n }\r\n },\r\n getPointsByColumns: function(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 ? (0, _position.getBoundingRect)(item[0]).width : 0) : 0,\r\n y: offset ? offset.top + (isVertical && i === cellsLength ? (0, _position.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: function() {\r\n return {\r\n allowRenderToDetachedContainer: true,\r\n render: function(container, options) {\r\n var $container = (0, _renderer.default)(container);\r\n if ((0, _type.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 (0, _renderer.default)(\"
\").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 },\r\n setEmptyText: setEmptyText,\r\n isDateType: isDateType,\r\n getSelectionRange: function(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: function(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: function(component, $element) {\r\n _events_engine.default.trigger($element, \"focus\");\r\n var isSelectTextOnEditingStart = component.option(\"editing.selectTextOnEditStart\");\r\n var keyboardController = component.getController(\"keyboardNavigation\");\r\n var isEditingNavigationMode = keyboardController && keyboardController._isFastEditingStarted();\r\n var element = $element.get(0);\r\n if (isSelectTextOnEditingStart && !isEditingNavigationMode && $element.is(\".dx-texteditor-input\") && !$element.is(\"[readonly]\")) {\r\n var editor = getWidgetInstance($element.closest(\".dx-texteditor\"));\r\n (0, _deferred.when)(editor && editor._loadItemDeferred).done(function() {\r\n element.select()\r\n })\r\n }\r\n },\r\n getWidgetInstance: getWidgetInstance,\r\n getLastResizableColumnIndex: function(columns, resultWidths) {\r\n var hasResizableColumns = columns.some(function(column) {\r\n return column && !column.command && !column.fixed && false !== column.allowResizing\r\n });\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: function(controller, $element) {\r\n if ($element && $element.length) {\r\n var $grid = $element.closest(\".\" + controller.getWidgetContainerClass()).parent();\r\n return $grid.is(controller.component.$element())\r\n }\r\n return false\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","var global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar RangeError = global.RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.breadcrumbs.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _ui2 = _interopRequireDefault(require(\"../menu/ui.menu\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_BREADCRUMBS_CLASS = \"dx-filemanager-breadcrumbs\";\r\nvar FILE_MANAGER_BREADCRUMBS_PARENT_FOLDER_ITEM_CLASS = FILE_MANAGER_BREADCRUMBS_CLASS + \"-parent-folder-item\";\r\nvar FILE_MANAGER_BREADCRUMBS_SEPARATOR_ITEM_CLASS = FILE_MANAGER_BREADCRUMBS_CLASS + \"-separator-item\";\r\nvar FILE_MANAGER_BREADCRUMBS_PATH_SEPARATOR_ITEM_CLASS = FILE_MANAGER_BREADCRUMBS_CLASS + \"-path-separator-item\";\r\nvar FileManagerBreadcrumbs = function(_Widget) {\r\n _inheritsLoose(FileManagerBreadcrumbs, _Widget);\r\n\r\n function FileManagerBreadcrumbs() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerBreadcrumbs.prototype;\r\n _proto._init = function() {\r\n _Widget.prototype._init.call(this);\r\n this._currentDirectory = null\r\n };\r\n _proto._initMarkup = function() {\r\n _Widget.prototype._initMarkup.call(this);\r\n this._initActions();\r\n if (this._currentDirectory) {\r\n this._renderMenu()\r\n }\r\n this.$element().addClass(FILE_MANAGER_BREADCRUMBS_CLASS)\r\n };\r\n _proto.setCurrentDirectory = function(directory) {\r\n if (!this._areDirsEqual(this._currentDirectory, directory)) {\r\n this._currentDirectory = directory;\r\n this.repaint()\r\n }\r\n };\r\n _proto._renderMenu = function() {\r\n var $menu = (0, _renderer.default)(\"
\").appendTo(this.$element());\r\n this._menu = this._createComponent($menu, _ui2.default, {\r\n dataSource: this._getMenuItems(),\r\n onItemClick: this._onItemClick.bind(this),\r\n onItemRendered: this._onItemRendered.bind(this)\r\n })\r\n };\r\n _proto._getMenuItems = function() {\r\n var dirLine = this._getParentDirsLine();\r\n var result = [{\r\n icon: \"arrowup\",\r\n directory: this._currentDirectory.parentDirectory,\r\n isPathItem: true,\r\n cssClass: FILE_MANAGER_BREADCRUMBS_PARENT_FOLDER_ITEM_CLASS\r\n }, {\r\n text: \"\\xa0\",\r\n cssClass: FILE_MANAGER_BREADCRUMBS_SEPARATOR_ITEM_CLASS\r\n }];\r\n dirLine.forEach(function(dir, index) {\r\n result.push({\r\n text: dir.getDisplayName(),\r\n directory: dir,\r\n isPathItem: true\r\n });\r\n if (index !== dirLine.length - 1) {\r\n result.push({\r\n icon: \"spinnext\",\r\n cssClass: FILE_MANAGER_BREADCRUMBS_PATH_SEPARATOR_ITEM_CLASS\r\n })\r\n }\r\n });\r\n return result\r\n };\r\n _proto._onItemClick = function(_ref) {\r\n var itemData = _ref.itemData;\r\n if (!itemData.isPathItem) {\r\n return\r\n }\r\n var newDir = itemData.directory;\r\n if (!this._areDirsEqual(newDir, this._currentDirectory)) {\r\n this._raiseCurrentDirectoryChanged(newDir)\r\n }\r\n };\r\n _proto._onItemRendered = function(_ref2) {\r\n var itemElement = _ref2.itemElement,\r\n itemData = _ref2.itemData;\r\n if (itemData.cssClass) {\r\n (0, _renderer.default)(itemElement).addClass(itemData.cssClass)\r\n }\r\n };\r\n _proto._getParentDirsLine = function() {\r\n var currentDirectory = this._currentDirectory;\r\n var result = [];\r\n while (currentDirectory) {\r\n result.unshift(currentDirectory);\r\n currentDirectory = currentDirectory.parentDirectory\r\n }\r\n return result\r\n };\r\n _proto._areDirsEqual = function(dir1, dir2) {\r\n return dir1 && dir2 && dir1 === dir2 && dir1.fileItem.key === dir2.fileItem.key\r\n };\r\n _proto._initActions = function() {\r\n this._actions = {\r\n onCurrentDirectoryChanging: this._createActionByOption(\"onCurrentDirectoryChanging\")\r\n }\r\n };\r\n _proto._raiseCurrentDirectoryChanged = function(currentDirectory) {\r\n this._actions.onCurrentDirectoryChanging({\r\n currentDirectory: currentDirectory\r\n })\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {\r\n rootFolderDisplayName: \"Files\",\r\n onCurrentDirectoryChanging: null\r\n })\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"rootFolderDisplayName\":\r\n this.repaint();\r\n break;\r\n case \"onCurrentDirectoryChanging\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n return FileManagerBreadcrumbs\r\n}(_ui.default);\r\nvar _default = FileManagerBreadcrumbs;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.filter_builder.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.filter_builder\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"filterBuilder\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.messages.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"ErrorCode\", {\r\n enumerable: true,\r\n get: function() {\r\n return _errors.default\r\n }\r\n});\r\nexports.FileManagerMessages = void 0;\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _errors = _interopRequireDefault(require(\"../../file_management/errors\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar FileManagerMessages = {\r\n get: function(errorId, args) {\r\n switch (errorId) {\r\n case _errors.default.NoAccess:\r\n return _message.default.format(\"dxFileManager-errorNoAccess\");\r\n case _errors.default.FileExists:\r\n return _message.default.format(\"dxFileManager-errorFileExistsFormat\", args);\r\n case _errors.default.FileNotFound:\r\n return _message.default.format(\"dxFileManager-errorFileNotFoundFormat\", args);\r\n case _errors.default.DirectoryExists:\r\n return _message.default.format(\"dxFileManager-errorDirectoryExistsFormat\", args);\r\n case _errors.default.DirectoryNotFound:\r\n return _message.default.format(\"dxFileManager-errorDirectoryNotFoundFormat\", args);\r\n case _errors.default.WrongFileExtension:\r\n return _message.default.format(\"dxFileManager-errorWrongFileExtension\");\r\n case _errors.default.MaxFileSizeExceeded:\r\n return _message.default.format(\"dxFileManager-errorMaxFileSizeExceeded\");\r\n case _errors.default.InvalidSymbols:\r\n return _message.default.format(\"dxFileManager-errorInvalidSymbols\")\r\n }\r\n return _message.default.format(\"dxFileManager-errorDefault\")\r\n }\r\n};\r\nexports.FileManagerMessages = FileManagerMessages;\r\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.notification.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _popup = _interopRequireDefault(require(\"../popup\"));\r\nvar _ui2 = _interopRequireDefault(require(\"../drawer/ui.drawer\"));\r\nvar _uiFile_managerNotification = _interopRequireDefault(require(\"./ui.file_manager.notification.progress_panel\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar ADAPTIVE_STATE_SCREEN_WIDTH = 1e3;\r\nvar FILE_MANAGER_NOTIFICATION_CLASS = \"dx-filemanager-notification\";\r\nvar FILE_MANAGER_NOTIFICATION_DRAWER_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_CLASS, \"-drawer\");\r\nvar FILE_MANAGER_NOTIFICATION_DRAWER_PANEL_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_DRAWER_CLASS, \"-panel\");\r\nvar FILE_MANAGER_NOTIFICATION_POPUP_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_CLASS, \"-popup\");\r\nvar FILE_MANAGER_NOTIFICATION_POPUP_ERROR_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_CLASS, \"-popup-error\");\r\nvar FILE_MANAGER_NOTIFICATION_COMMON_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_CLASS, \"-common\");\r\nvar FILE_MANAGER_NOTIFICATION_SEPARATOR_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_CLASS, \"-separator\");\r\nvar FILE_MANAGER_NOTIFICATION_DETAILS_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_CLASS, \"-details\");\r\nvar FILE_MANAGER_NOTIFICATION_COMMON_NO_ITEM_CLASS = \"\".concat(FILE_MANAGER_NOTIFICATION_CLASS, \"-common-no-item\");\r\nvar FileManagerNotificationControl = function(_Widget) {\r\n _inheritsLoose(FileManagerNotificationControl, _Widget);\r\n\r\n function FileManagerNotificationControl() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerNotificationControl.prototype;\r\n _proto._initMarkup = function() {\r\n var _this = this;\r\n _Widget.prototype._initMarkup.call(this);\r\n this._initActions();\r\n this._actionProgressStatus = \"default\";\r\n this._operationInProgressCount = 0;\r\n this._failedOperationCount = 0;\r\n this._isInAdaptiveState = this._isSmallScreen();\r\n var $progressPanelContainer = this.option(\"progressPanelContainer\");\r\n var $progressDrawer = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_NOTIFICATION_DRAWER_CLASS).appendTo($progressPanelContainer);\r\n (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_NOTIFICATION_DRAWER_PANEL_CLASS).appendTo($progressDrawer);\r\n var drawerOptions = (0, _extend.extend)({\r\n opened: false,\r\n position: \"right\",\r\n template: function(container) {\r\n return _this._ensureProgressPanelCreated(container)\r\n }\r\n }, this._getProgressDrawerAdaptiveOptions());\r\n this._progressDrawer = this._createComponent($progressDrawer, _ui2.default, drawerOptions);\r\n var $drawerContent = $progressDrawer.find(\".\".concat(FILE_MANAGER_NOTIFICATION_DRAWER_PANEL_CLASS)).first();\r\n var contentRenderer = this.option(\"contentTemplate\");\r\n if ((0, _type.isFunction)(contentRenderer)) {\r\n contentRenderer($drawerContent, this)\r\n }\r\n };\r\n _proto.tryShowProgressPanel = function() {\r\n var _this2 = this;\r\n var promise = new _deferred.Deferred;\r\n if (\"default\" === this._actionProgressStatus || this._isProgressDrawerOpened()) {\r\n return promise.resolve().promise()\r\n }\r\n setTimeout(function() {\r\n _this2._progressDrawer.show().done(promise.resolve);\r\n _this2._getNotificationPopup().hide();\r\n _this2._tryHideActionProgress()\r\n });\r\n return promise.promise()\r\n };\r\n _proto.addOperation = function(processingMessage, allowCancel, allowProgressAutoUpdate) {\r\n this._operationInProgressCount++;\r\n var operationInfo = this._progressPanel.addOperation(processingMessage, allowCancel, allowProgressAutoUpdate);\r\n this._updateActionProgress(processingMessage, \"progress\");\r\n return operationInfo\r\n };\r\n _proto.addOperationDetails = function(info, details, showCloseButton) {\r\n this._progressPanel.addOperationDetails(info, details, showCloseButton)\r\n };\r\n _proto.updateOperationItemProgress = function(operationInfo, itemIndex, itemProgress, commonProgress) {\r\n this._progressPanel.updateOperationItemProgress(operationInfo, itemIndex, itemProgress, commonProgress)\r\n };\r\n _proto.completeOperationItem = function(operationInfo, itemIndex, commonProgress) {\r\n this._progressPanel.completeOperationItem(operationInfo, itemIndex, commonProgress)\r\n };\r\n _proto.completeOperation = function(info, commonText, isError, statusText) {\r\n this._operationInProgressCount--;\r\n if (isError) {\r\n this._failedOperationCount++\r\n } else {\r\n this._showPopup(commonText)\r\n }\r\n this._progressPanel.completeOperation(info, commonText, isError, statusText);\r\n if (!this._isProgressDrawerOpened() || !this._tryHideActionProgress()) {\r\n var status = 0 === this._failedOperationCount ? \"success\" : \"error\";\r\n this._updateActionProgress(\"\", status)\r\n }\r\n };\r\n _proto.completeSingleOperationWithError = function(operationInfo, errorInfo) {\r\n this._progressPanel.completeSingleOperationWithError(operationInfo, errorInfo.detailErrorText);\r\n this._notifyError(errorInfo)\r\n };\r\n _proto.addOperationDetailsError = function(operationInfo, errorInfo) {\r\n this._progressPanel.addOperationDetailsError(operationInfo, errorInfo.itemIndex, errorInfo.detailErrorText);\r\n this._notifyError(errorInfo)\r\n };\r\n _proto._hideProgressPanel = function() {\r\n var _this3 = this;\r\n setTimeout(function() {\r\n return _this3._progressDrawer.hide()\r\n })\r\n };\r\n _proto._tryHideActionProgress = function() {\r\n if (0 === this._operationInProgressCount && 0 === this._failedOperationCount) {\r\n this._updateActionProgress(\"\", \"default\");\r\n return true\r\n }\r\n return false\r\n };\r\n _proto._updateActionProgress = function(message, status) {\r\n this._actionProgressStatus = status;\r\n this._raiseActionProgress(message, status)\r\n };\r\n _proto._isSmallScreen = function() {\r\n if (!(0, _window.hasWindow)()) {\r\n return false\r\n }\r\n return (0, _renderer.default)(window).width() <= ADAPTIVE_STATE_SCREEN_WIDTH\r\n };\r\n _proto._dimensionChanged = function(dimension) {\r\n if (!dimension || \"height\" !== dimension) {\r\n this._checkAdaptiveState()\r\n }\r\n };\r\n _proto._checkAdaptiveState = function() {\r\n var oldState = this._isInAdaptiveState;\r\n this._isInAdaptiveState = this._isSmallScreen();\r\n if (this._progressDrawer && oldState !== this._isInAdaptiveState) {\r\n if (this._progressPanel) {\r\n this._progressPanel.$element().detach()\r\n }\r\n var options = this._getProgressDrawerAdaptiveOptions();\r\n this._progressDrawer.option(options)\r\n }\r\n };\r\n _proto._getProgressDrawerAdaptiveOptions = function() {\r\n if (this._isInAdaptiveState) {\r\n return {\r\n openedStateMode: \"overlap\",\r\n shading: true,\r\n closeOnOutsideClick: true\r\n }\r\n } else {\r\n return {\r\n openedStateMode: \"shrink\",\r\n shading: false,\r\n closeOnOutsideClick: false\r\n }\r\n }\r\n };\r\n _proto._ensureProgressPanelCreated = function(container) {\r\n var _this4 = this;\r\n if (!this._progressPanel) {\r\n var $progressPanelElement = (0, _renderer.default)(\"
\").appendTo(container);\r\n this._progressPanel = this._createComponent($progressPanelElement, this._getProgressPanelComponent(), {\r\n onOperationClosed: function(_ref) {\r\n var info = _ref.info;\r\n return _this4._onProgressPanelOperationClosed(info)\r\n },\r\n onOperationCanceled: function(_ref2) {\r\n var info = _ref2.info;\r\n return _this4._raiseOperationCanceled(info)\r\n },\r\n onOperationItemCanceled: function(_ref3) {\r\n var item = _ref3.item,\r\n itemIndex = _ref3.itemIndex;\r\n return _this4._raiseOperationItemCanceled(item, itemIndex)\r\n },\r\n onPanelClosed: function() {\r\n return _this4._hideProgressPanel()\r\n }\r\n })\r\n } else {\r\n this._progressPanel.$element().appendTo(container)\r\n }\r\n };\r\n _proto._getProgressPanelComponent = function() {\r\n return _uiFile_managerNotification.default\r\n };\r\n _proto._notifyError = function(errorInfo) {\r\n this._showPopupError(errorInfo);\r\n this._updateActionProgress(errorInfo.commonErrorText, \"error\")\r\n };\r\n _proto._onProgressPanelOperationClosed = function(info) {\r\n if (info.hasError) {\r\n this._failedOperationCount--;\r\n this._tryHideActionProgress()\r\n }\r\n };\r\n _proto._isProgressDrawerOpened = function() {\r\n return this._progressDrawer.option(\"opened\")\r\n };\r\n _proto._showPopup = function(content, errorMode) {\r\n if (this._isProgressDrawerOpened()) {\r\n return\r\n }\r\n this._getNotificationPopup()._wrapper().toggleClass(FILE_MANAGER_NOTIFICATION_POPUP_ERROR_CLASS, !!errorMode);\r\n this._getNotificationPopup().option(\"contentTemplate\", content);\r\n if (!this._getNotificationPopup().option(\"visible\")) {\r\n this._getNotificationPopup().show()\r\n }\r\n };\r\n _proto._showPopupError = function(errorInfo) {\r\n var $content = (0, _renderer.default)(\"
\");\r\n var $message = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_NOTIFICATION_COMMON_CLASS).text(errorInfo.commonErrorText);\r\n var $separator = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_NOTIFICATION_SEPARATOR_CLASS);\r\n (0, _renderer.default)(\"
\").appendTo($separator);\r\n var $details = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_NOTIFICATION_DETAILS_CLASS);\r\n if (errorInfo.item) {\r\n this._progressPanel.createErrorDetailsProgressBox($details, errorInfo.item, errorInfo.detailErrorText)\r\n } else {\r\n $message.addClass(FILE_MANAGER_NOTIFICATION_COMMON_NO_ITEM_CLASS);\r\n this._progressPanel.renderError($details, $separator, errorInfo.detailErrorText)\r\n }\r\n $content.append($message, $separator, $details);\r\n this._showPopup($content, true)\r\n };\r\n _proto._getNotificationPopup = function() {\r\n if (!this._notificationPopup) {\r\n var $popup = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_NOTIFICATION_POPUP_CLASS).appendTo(this.$element());\r\n this._notificationPopup = this._createComponent($popup, _popup.default, {\r\n container: this.$element(),\r\n width: \"auto\",\r\n height: \"auto\",\r\n showTitle: false,\r\n dragEnabled: false,\r\n shading: false,\r\n visible: false,\r\n closeOnOutsideClick: true,\r\n animation: {\r\n duration: 0\r\n },\r\n position: {\r\n my: \"right top\",\r\n at: \"right top\",\r\n of: this.option(\"positionTarget\"),\r\n offset: \"-10 -5\"\r\n }\r\n })\r\n }\r\n return this._notificationPopup\r\n };\r\n _proto._raiseActionProgress = function(message, status) {\r\n this._actions.onActionProgress({\r\n message: message,\r\n status: status\r\n })\r\n };\r\n _proto._raiseOperationCanceled = function(info) {\r\n this._actions.onOperationCanceled({\r\n info: info\r\n })\r\n };\r\n _proto._raiseOperationItemCanceled = function(item, index) {\r\n this._actions.onOperationItemCanceled({\r\n item: item,\r\n itemIndex: index\r\n })\r\n };\r\n _proto._initActions = function() {\r\n this._actions = {\r\n onActionProgress: this._createActionByOption(\"onActionProgress\"),\r\n onOperationCanceled: this._createActionByOption(\"onOperationCanceled\"),\r\n onOperationItemCanceled: this._createActionByOption(\"onOperationItemCanceled\")\r\n }\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {\r\n progressPanelContainer: null,\r\n contentTemplate: null,\r\n onActionProgress: null,\r\n onOperationCanceled: null,\r\n onOperationItemCanceled: null\r\n })\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"progressPanelContainer\":\r\n case \"contentTemplate\":\r\n break;\r\n case \"onActionProgress\":\r\n case \"onOperationCanceled\":\r\n case \"onOperationItemCanceled\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n return FileManagerNotificationControl\r\n}(_ui.default);\r\nexports.default = FileManagerNotificationControl;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (file_management/file_system_item.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../core/utils/type\");\r\nvar _utils = require(\"./utils\");\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\nvar FileSystemItem = function() {\r\n function FileSystemItem() {\r\n var ctor = (0, _type.isString)(arguments[0]) ? this._publicCtor : this._internalCtor;\r\n ctor.apply(this, arguments)\r\n }\r\n var _proto = FileSystemItem.prototype;\r\n _proto._internalCtor = function(pathInfo, name, isDirectory) {\r\n this.name = name || \"\";\r\n this.pathInfo = pathInfo && _toConsumableArray(pathInfo) || [];\r\n this.parentPath = this._getPathByPathInfo(this.pathInfo);\r\n this.relativeName = (0, _utils.pathCombine)(this.parentPath, name);\r\n this.key = this._getPathByPathInfo(this.getFullPathInfo(), true);\r\n this.path = (0, _utils.pathCombine)(this.parentPath, name);\r\n this.pathKeys = this.pathInfo.map(function(_ref) {\r\n var key = _ref.key;\r\n return key\r\n });\r\n if (!this.isRoot()) {\r\n this.pathKeys.push(this.key)\r\n }\r\n this._initialize(isDirectory)\r\n };\r\n _proto._publicCtor = function(path, isDirectory, pathKeys) {\r\n this.path = path || \"\";\r\n this.pathKeys = pathKeys || [];\r\n var pathInfo = [];\r\n var parts = (0, _utils.getPathParts)(path, true);\r\n for (var i = 0; i < parts.length - 1; i++) {\r\n var part = parts[i];\r\n var pathInfoPart = {\r\n key: this.pathKeys[i] || part,\r\n name: (0, _utils.getName)(part)\r\n };\r\n pathInfo.push(pathInfoPart)\r\n }\r\n this.pathInfo = pathInfo;\r\n this.relativeName = path;\r\n this.name = (0, _utils.getName)(path);\r\n this.key = this.pathKeys.length ? this.pathKeys[this.pathKeys.length - 1] : path;\r\n this.parentPath = parts.length > 1 ? parts[parts.length - 2] : \"\";\r\n this._initialize(isDirectory)\r\n };\r\n _proto._initialize = function(isDirectory) {\r\n this.isDirectory = !!isDirectory;\r\n this.size = 0;\r\n this.dateModified = new Date;\r\n this.thumbnail = \"\";\r\n this.tooltipText = \"\"\r\n };\r\n _proto.getFullPathInfo = function() {\r\n var pathInfo = _toConsumableArray(this.pathInfo);\r\n if (!this.isRoot()) {\r\n pathInfo.push({\r\n key: this.key,\r\n name: this.name\r\n })\r\n }\r\n return pathInfo\r\n };\r\n _proto.isRoot = function() {\r\n return \"\" === this.path\r\n };\r\n _proto.getFileExtension = function() {\r\n return this.isDirectory ? \"\" : (0, _utils.getFileExtension)(this.name)\r\n };\r\n _proto.equals = function(item) {\r\n return item && this.key === item.key\r\n };\r\n _proto.createClone = function() {\r\n var result = new FileSystemItem(this.pathInfo, this.name, this.isDirectory);\r\n result.key = this.key;\r\n result.size = this.size;\r\n result.dateModified = this.dateModified;\r\n result.thumbnail = this.thumbnail;\r\n result.tooltipText = this.tooltipText;\r\n result.hasSubDirectories = this.hasSubDirectories;\r\n result.dataItem = this.dataItem;\r\n return result\r\n };\r\n _proto._getPathByPathInfo = function(pathInfo, escape) {\r\n return pathInfo.map(function(info) {\r\n return escape ? (0, _utils.getEscapedFileName)(info.name) : info.name\r\n }).join(_utils.PATH_SEPARATOR)\r\n };\r\n return FileSystemItem\r\n}();\r\nvar _default = FileSystemItem;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (file_management/provider_base.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _data = require(\"../core/utils/data\");\r\nvar _common = require(\"../core/utils/common\");\r\nvar _date_serialization = _interopRequireDefault(require(\"../core/utils/date_serialization\"));\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _file_system_item = _interopRequireDefault(require(\"./file_system_item\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DEFAULT_FILE_UPLOAD_CHUNK_SIZE = 2e5;\r\nvar FileSystemProviderBase = function() {\r\n function FileSystemProviderBase(options) {\r\n options = (0, _common.ensureDefined)(options, {});\r\n this._keyGetter = (0, _data.compileGetter)(this._getKeyExpr(options));\r\n this._nameGetter = (0, _data.compileGetter)(this._getNameExpr(options));\r\n this._isDirGetter = (0, _data.compileGetter)(this._getIsDirExpr(options));\r\n this._sizeGetter = (0, _data.compileGetter)(this._getSizeExpr(options));\r\n this._dateModifiedGetter = (0, _data.compileGetter)(this._getDateModifiedExpr(options));\r\n this._thumbnailGetter = (0, _data.compileGetter)(options.thumbnailExpr || \"thumbnail\")\r\n }\r\n var _proto = FileSystemProviderBase.prototype;\r\n _proto.getItems = function(parentDirectory) {\r\n return []\r\n };\r\n _proto.renameItem = function(item, name) {};\r\n _proto.createDirectory = function(parentDirectory, name) {};\r\n _proto.deleteItems = function(items) {};\r\n _proto.moveItems = function(items, destinationDirectory) {};\r\n _proto.copyItems = function(items, destinationDirectory) {};\r\n _proto.uploadFileChunk = function(fileData, chunksInfo, destinationDirectory) {};\r\n _proto.abortFileUpload = function(fileData, chunksInfo, destinationDirectory) {};\r\n _proto.downloadItems = function(items) {};\r\n _proto.getItemsContent = function(items) {};\r\n _proto.getFileUploadChunkSize = function() {\r\n return DEFAULT_FILE_UPLOAD_CHUNK_SIZE\r\n };\r\n _proto._convertDataObjectsToFileItems = function(entries, pathInfo) {\r\n var _this = this;\r\n var result = [];\r\n (0, _iterator.each)(entries, function(_, entry) {\r\n var fileItem = _this._createFileItem(entry, pathInfo);\r\n result.push(fileItem)\r\n });\r\n return result\r\n };\r\n _proto._createFileItem = function(dataObj, pathInfo) {\r\n var fileItem = new _file_system_item.default(pathInfo, this._nameGetter(dataObj), (!!this._isDirGetter(dataObj)));\r\n fileItem.size = this._sizeGetter(dataObj);\r\n if (void 0 === fileItem.size) {\r\n fileItem.size = 0\r\n }\r\n fileItem.dateModified = _date_serialization.default.deserializeDate(this._dateModifiedGetter(dataObj));\r\n if (void 0 === fileItem.dateModified) {\r\n fileItem.dateModified = new Date\r\n }\r\n if (fileItem.isDirectory) {\r\n fileItem.hasSubDirectories = this._hasSubDirs(dataObj)\r\n }\r\n fileItem.key = this._keyGetter(dataObj);\r\n if (!fileItem.key) {\r\n fileItem.key = fileItem.relativeName\r\n }\r\n fileItem.thumbnail = this._thumbnailGetter(dataObj) || \"\";\r\n fileItem.dataItem = dataObj;\r\n return fileItem\r\n };\r\n _proto._hasSubDirs = function(dataObj) {\r\n return true\r\n };\r\n _proto._getKeyExpr = function(options) {\r\n return options.keyExpr || this._defaultKeyExpr\r\n };\r\n _proto._defaultKeyExpr = function(fileItem) {\r\n if (2 === arguments.length) {\r\n fileItem.__KEY__ = arguments[1];\r\n return\r\n }\r\n return Object.prototype.hasOwnProperty.call(fileItem, \"__KEY__\") ? fileItem.__KEY__ : null\r\n };\r\n _proto._getNameExpr = function(options) {\r\n return options.nameExpr || \"name\"\r\n };\r\n _proto._getIsDirExpr = function(options) {\r\n return options.isDirectoryExpr || \"isDirectory\"\r\n };\r\n _proto._getSizeExpr = function(options) {\r\n return options.sizeExpr || \"size\"\r\n };\r\n _proto._getDateModifiedExpr = function(options) {\r\n return options.dateModifiedExpr || \"dateModified\"\r\n };\r\n _proto._executeActionAsDeferred = function(action, keepResult) {\r\n var deferred = new _deferred.Deferred;\r\n try {\r\n var result = action();\r\n if ((0, _type.isPromise)(result)) {\r\n (0, _deferred.fromPromise)(result).done(function(userResult) {\r\n return deferred.resolve(keepResult && userResult || void 0)\r\n }).fail(function(error) {\r\n return deferred.reject(error)\r\n })\r\n } else {\r\n deferred.resolve(keepResult && result || void 0)\r\n }\r\n } catch (error) {\r\n return deferred.reject(error)\r\n }\r\n return deferred.promise()\r\n };\r\n return FileSystemProviderBase\r\n}();\r\nvar _default = FileSystemProviderBase;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/aggregate_calculator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _errors = _interopRequireDefault(require(\"../../data/errors\"));\r\nvar _utils = _interopRequireDefault(require(\"../../data/utils\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction depthFirstSearch(i, depth, root, callback) {\r\n var j = 0;\r\n if (i < depth) {\r\n for (; j < root.items.length; j++) {\r\n depthFirstSearch(i + 1, depth, root.items[j], callback)\r\n }\r\n }\r\n if (i === depth) {\r\n callback(root)\r\n }\r\n}\r\n\r\nfunction map(array, callback) {\r\n var i;\r\n if (\"map\" in array) {\r\n return array.map(callback)\r\n }\r\n var result = new Array(array.length);\r\n for (i in array) {\r\n result[i] = callback(array[i], i)\r\n }\r\n return result\r\n}\r\n\r\nfunction isEmpty(x) {\r\n return x !== x || \"\" === x || null === x || void 0 === x\r\n}\r\n\r\nfunction isCount(aggregator) {\r\n return aggregator === _utils.default.aggregators.count\r\n}\r\n\r\nfunction normalizeAggregate(aggregate) {\r\n var selector = (0, _data.compileGetter)(aggregate.selector);\r\n var skipEmptyValues = \"skipEmptyValues\" in aggregate ? aggregate.skipEmptyValues : true;\r\n var aggregator = aggregate.aggregator;\r\n if (\"string\" === typeof aggregator) {\r\n aggregator = _utils.default.aggregators[aggregator];\r\n if (!aggregator) {\r\n throw _errors.default.errors.Error(\"E4001\", aggregate.aggregator)\r\n }\r\n }\r\n return {\r\n selector: selector,\r\n aggregator: aggregator,\r\n skipEmptyValues: skipEmptyValues\r\n }\r\n}\r\nvar _default = _class.default.inherit({\r\n ctor: function(options) {\r\n this._data = options.data;\r\n this._groupLevel = options.groupLevel || 0;\r\n this._totalAggregates = map(options.totalAggregates || [], normalizeAggregate);\r\n this._groupAggregates = map(options.groupAggregates || [], normalizeAggregate);\r\n this._totals = []\r\n },\r\n calculate: function() {\r\n if (this._totalAggregates.length) {\r\n this._calculateTotals(0, {\r\n items: this._data\r\n })\r\n }\r\n if (this._groupAggregates.length && this._groupLevel > 0) {\r\n this._calculateGroups({\r\n items: this._data\r\n })\r\n }\r\n },\r\n totalAggregates: function() {\r\n return this._totals\r\n },\r\n _aggregate: function(aggregates, data, container) {\r\n var length = data.items ? data.items.length : 0;\r\n for (var i = 0; i < aggregates.length; i++) {\r\n if (isCount(aggregates[i].aggregator)) {\r\n container[i] = (container[i] || 0) + length;\r\n continue\r\n }\r\n for (var j = 0; j < length; j++) {\r\n this._accumulate(i, aggregates[i], container, data.items[j])\r\n }\r\n }\r\n },\r\n _calculateTotals: function(level, data) {\r\n if (0 === level) {\r\n this._totals = this._seed(this._totalAggregates)\r\n }\r\n if (level === this._groupLevel) {\r\n this._aggregate(this._totalAggregates, data, this._totals)\r\n } else {\r\n for (var i = 0; i < data.items.length; i++) {\r\n this._calculateTotals(level + 1, data.items[i])\r\n }\r\n }\r\n if (0 === level) {\r\n this._totals = this._finalize(this._totalAggregates, this._totals)\r\n }\r\n },\r\n _calculateGroups: function(root) {\r\n var maxLevel = this._groupLevel;\r\n var currentLevel = maxLevel + 1;\r\n var seedFn = this._seed.bind(this, this._groupAggregates);\r\n var stepFn = this._aggregate.bind(this, this._groupAggregates);\r\n var finalizeFn = this._finalize.bind(this, this._groupAggregates);\r\n\r\n function aggregator(node) {\r\n node.aggregates = seedFn(currentLevel - 1);\r\n if (currentLevel === maxLevel) {\r\n stepFn(node, node.aggregates)\r\n } else {\r\n depthFirstSearch(currentLevel, maxLevel, node, function(innerNode) {\r\n stepFn(innerNode, node.aggregates)\r\n })\r\n }\r\n node.aggregates = finalizeFn(node.aggregates)\r\n }\r\n while (--currentLevel > 0) {\r\n depthFirstSearch(0, currentLevel, root, aggregator)\r\n }\r\n },\r\n _seed: function(aggregates, groupIndex) {\r\n return map(aggregates, function(aggregate) {\r\n var aggregator = aggregate.aggregator;\r\n var seed = \"seed\" in aggregator ? (0, _type.isFunction)(aggregator.seed) ? aggregator.seed(groupIndex) : aggregator.seed : NaN;\r\n return seed\r\n })\r\n },\r\n _accumulate: function(aggregateIndex, aggregate, results, item) {\r\n var value = aggregate.selector(item);\r\n var aggregator = aggregate.aggregator;\r\n var skipEmptyValues = aggregate.skipEmptyValues;\r\n if (skipEmptyValues && isEmpty(value)) {\r\n return\r\n }\r\n if (results[aggregateIndex] !== results[aggregateIndex]) {\r\n results[aggregateIndex] = value\r\n } else {\r\n results[aggregateIndex] = aggregator.step(results[aggregateIndex], value)\r\n }\r\n },\r\n _finalize: function(aggregates, results) {\r\n return map(aggregates, function(aggregate, index) {\r\n var fin = aggregate.aggregator.finalize;\r\n return fin ? fin(results[index]) : results[index]\r\n })\r\n }\r\n});\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.column_fixing.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.column_fixing\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"columnFixing\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.dialog.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _popup = _interopRequireDefault(require(\"../popup\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_DIALOG_CONTENT = \"dx-filemanager-dialog\";\r\nvar FILE_MANAGER_DIALOG_POPUP = \"dx-filemanager-dialog-popup\";\r\nvar FileManagerDialogBase = function(_Widget) {\r\n _inheritsLoose(FileManagerDialogBase, _Widget);\r\n\r\n function FileManagerDialogBase() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerDialogBase.prototype;\r\n _proto._initMarkup = function() {\r\n var _this = this;\r\n _Widget.prototype._initMarkup.call(this);\r\n this._createOnClosedAction();\r\n var options = this._getDialogOptions();\r\n var $popup = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_DIALOG_POPUP).appendTo(this.$element());\r\n if (options.popupCssClass) {\r\n $popup.addClass(options.popupCssClass)\r\n }\r\n var popupOptions = {\r\n showTitle: true,\r\n title: options.title,\r\n visible: false,\r\n closeOnOutsideClick: true,\r\n contentTemplate: this._createContentTemplate.bind(this),\r\n toolbarItems: [{\r\n widget: \"dxButton\",\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n options: {\r\n text: options.buttonText,\r\n onClick: this._applyDialogChanges.bind(this)\r\n }\r\n }, {\r\n widget: \"dxButton\",\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n options: {\r\n text: _message.default.format(\"dxFileManager-dialogButtonCancel\"),\r\n onClick: this._closeDialog.bind(this)\r\n }\r\n }],\r\n onInitialized: function(_ref) {\r\n var component = _ref.component;\r\n component.registerKeyHandler(\"enter\", _this._applyDialogChanges.bind(_this))\r\n },\r\n onHidden: this._onPopupHidden.bind(this),\r\n onShown: this._onPopupShown.bind(this)\r\n };\r\n if ((0, _type.isDefined)(options.height)) {\r\n popupOptions.height = options.height\r\n }\r\n if ((0, _type.isDefined)(options.maxHeight)) {\r\n popupOptions.maxHeight = options.maxHeight\r\n }\r\n this._popup = this._createComponent($popup, _popup.default, popupOptions)\r\n };\r\n _proto.show = function() {\r\n this._dialogResult = null;\r\n this._popup.show()\r\n };\r\n _proto._getDialogOptions = function() {\r\n return {\r\n title: \"Title\",\r\n buttonText: \"ButtonText\",\r\n contentCssClass: \"\",\r\n popupCssClass: \"\"\r\n }\r\n };\r\n _proto._createContentTemplate = function(element) {\r\n this._$contentElement = (0, _renderer.default)(\"
\").appendTo(element).addClass(FILE_MANAGER_DIALOG_CONTENT);\r\n var cssClass = this._getDialogOptions().contentCssClass;\r\n if (cssClass) {\r\n this._$contentElement.addClass(cssClass)\r\n }\r\n };\r\n _proto._getDialogResult = function() {\r\n return null\r\n };\r\n _proto._applyDialogChanges = function() {\r\n var result = this._getDialogResult();\r\n if (result) {\r\n this._dialogResult = result;\r\n this._popup.hide()\r\n }\r\n };\r\n _proto._closeDialog = function() {\r\n this._popup.hide()\r\n };\r\n _proto._onPopupHidden = function() {\r\n this._onClosedAction({\r\n dialogResult: this._dialogResult\r\n })\r\n };\r\n _proto._onPopupShown = function() {};\r\n _proto._createOnClosedAction = function() {\r\n this._onClosedAction = this._createActionByOption(\"onClosed\")\r\n };\r\n _proto._setTitle = function(newTitle) {\r\n this._popup.option(\"title\", newTitle)\r\n };\r\n _proto._setButtonText = function(newText) {\r\n this._popup.option(\"toolbarItems[0].options.text\", newText)\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {\r\n onClosed: null\r\n })\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"onClosed\":\r\n this._createOnPathChangedAction();\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n return FileManagerDialogBase\r\n}(_ui.default);\r\nvar _default = FileManagerDialogBase;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n"],"sourceRoot":""}
\").attr({\r\n colSpan: that.getController(\"columns\").getVisibleColumns().length,\r\n role: \"presentation\"\r\n }).prepend($closeButton).append($errorMessage).appendTo($errorRow);\r\n return $errorRow\r\n }\r\n return $errorMessage\r\n },\r\n _renderErrorMessage: function(error) {\r\n var message = error.url ? error.message.replace(error.url, \"\") : error.message || error;\r\n var $message = (0, _renderer.default)(\"
\").addClass(ERROR_MESSAGE_CLASS).text(message);\r\n if (error.url) {\r\n (0, _renderer.default)(\"\").attr(\"href\", error.url).text(error.url).appendTo($message)\r\n }\r\n return $message\r\n },\r\n renderErrorRow: function(error, rowIndex, $popupContent) {\r\n var that = this;\r\n var $errorMessageElement;\r\n var $firstErrorRow;\r\n if ($popupContent) {\r\n $popupContent.find(\".\" + ERROR_MESSAGE_CLASS).remove();\r\n $errorMessageElement = that._createErrorRow(error);\r\n $popupContent.prepend($errorMessageElement);\r\n return $errorMessageElement\r\n }\r\n var viewElement = rowIndex >= 0 || !that._columnHeadersView.isVisible() ? that._rowsView : that._columnHeadersView;\r\n var $tableElements = $popupContent || viewElement.getTableElements();\r\n (0, _iterator.each)($tableElements, function(_, tableElement) {\r\n $errorMessageElement = that._createErrorRow(error, $tableElements);\r\n $firstErrorRow = $firstErrorRow || $errorMessageElement;\r\n if (rowIndex >= 0) {\r\n var $row = viewElement._getRowElements((0, _renderer.default)(tableElement)).eq(rowIndex);\r\n that.removeErrorRow($row.next());\r\n $errorMessageElement.insertAfter($row)\r\n } else {\r\n var $tbody = (0, _renderer.default)(tableElement).children(\"tbody\");\r\n var rowElements = $tbody.children(\"tr\");\r\n if (that._columnHeadersView.isVisible()) {\r\n that.removeErrorRow(rowElements.last());\r\n (0, _renderer.default)(tableElement).append($errorMessageElement)\r\n } else {\r\n that.removeErrorRow(rowElements.first());\r\n $tbody.first().prepend($errorMessageElement)\r\n }\r\n }\r\n });\r\n if (!$popupContent) {\r\n var resizingController = that.getController(\"resizing\");\r\n resizingController && resizingController.fireContentReadyAction()\r\n }\r\n return $firstErrorRow\r\n },\r\n removeErrorRow: function($row) {\r\n if (!$row) {\r\n var $columnHeaders = this._columnHeadersView && this._columnHeadersView.element();\r\n $row = $columnHeaders && $columnHeaders.find(\".\" + ERROR_ROW_CLASS);\r\n if (!$row || !$row.length) {\r\n var $rowsViewElement = this._rowsView.element();\r\n $row = $rowsViewElement && $rowsViewElement.find(\".\" + ERROR_ROW_CLASS)\r\n }\r\n }\r\n $row && $row.hasClass(ERROR_ROW_CLASS) && $row.remove()\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n switch (args.name) {\r\n case \"errorRowEnabled\":\r\n args.handled = true;\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n }\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n errorRowEnabled: true\r\n }\r\n },\r\n controllers: {\r\n errorHandling: ErrorHandlingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n var that = this;\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n that.callBase();\r\n that.dataErrorOccurred.add(function(error, $popupContent) {\r\n if (that.option(\"errorRowEnabled\")) {\r\n errorHandlingController.renderErrorRow(error, void 0, $popupContent)\r\n }\r\n });\r\n that.changed.add(function(e) {\r\n if (e && \"loadError\" === e.changeType) {\r\n return\r\n }\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n var editingController = that.getController(\"editing\");\r\n if (editingController && !editingController.hasChanges()) {\r\n errorHandlingController && errorHandlingController.removeErrorRow()\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.state_storing_core.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.StateStoringController = void 0;\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _storage = require(\"../../core/utils/storage\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DATE_REGEX = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/;\r\nvar parseDates = function parseDates(state) {\r\n if (!state) {\r\n return\r\n }(0, _iterator.each)(state, function(key, value) {\r\n if ((0, _type.isPlainObject)(value) || Array.isArray(value)) {\r\n parseDates(value)\r\n } else {\r\n if (\"string\" === typeof value) {\r\n var date = DATE_REGEX.exec(value);\r\n if (date) {\r\n state[key] = new Date(Date.UTC(+date[1], +date[2] - 1, +date[3], +date[4], +date[5], +date[6]))\r\n }\r\n }\r\n }\r\n })\r\n};\r\nvar StateStoringController = _uiGrid_core.default.ViewController.inherit(function() {\r\n var getStorage = function(options) {\r\n var storage = \"sessionStorage\" === options.type ? (0, _storage.sessionStorage)() : (0, _window.getWindow)().localStorage;\r\n if (!storage) {\r\n if (\"file:\" === (0, _window.getWindow)().location.protocol && _browser.default.msie) {\r\n throw new Error(\"E1038\")\r\n } else {\r\n throw new Error(\"E1007\")\r\n }\r\n }\r\n return storage\r\n };\r\n var getUniqueStorageKey = function(options) {\r\n return (0, _type.isDefined)(options.storageKey) ? options.storageKey : \"storage\"\r\n };\r\n return {\r\n _loadState: function() {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n return options.customLoad && options.customLoad()\r\n }\r\n try {\r\n return JSON.parse(getStorage(options).getItem(getUniqueStorageKey(options)))\r\n } catch (e) {\r\n _ui.default.log(e.message)\r\n }\r\n },\r\n _saveState: function(state) {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n options.customSave && options.customSave(state);\r\n return\r\n }\r\n try {\r\n getStorage(options).setItem(getUniqueStorageKey(options), JSON.stringify(state))\r\n } catch (e) {\r\n _ui.default.log(e.message)\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"state\"]\r\n },\r\n isEnabled: function() {\r\n return this.option(\"stateStoring.enabled\")\r\n },\r\n init: function() {\r\n var that = this;\r\n that._state = {};\r\n that._isLoaded = false;\r\n that._isLoading = false;\r\n that._windowUnloadHandler = function() {\r\n if (void 0 !== that._savingTimeoutID) {\r\n that._saveState(that.state())\r\n }\r\n };\r\n _events_engine.default.on((0, _window.getWindow)(), \"unload\", that._windowUnloadHandler);\r\n return that\r\n },\r\n isLoaded: function() {\r\n return this._isLoaded\r\n },\r\n isLoading: function() {\r\n return this._isLoading\r\n },\r\n load: function() {\r\n var _this = this;\r\n this._isLoading = true;\r\n var loadResult = (0, _deferred.fromPromise)(this._loadState());\r\n loadResult.always(function() {\r\n _this._isLoaded = true;\r\n _this._isLoading = false\r\n }).done(function(state) {\r\n _this.state(state)\r\n });\r\n return loadResult\r\n },\r\n state: function(_state) {\r\n var that = this;\r\n if (!arguments.length) {\r\n return (0, _extend.extend)(true, {}, that._state)\r\n } else {\r\n that._state = (0, _extend.extend)({}, _state);\r\n parseDates(that._state)\r\n }\r\n },\r\n save: function() {\r\n var that = this;\r\n clearTimeout(that._savingTimeoutID);\r\n that._savingTimeoutID = setTimeout(function() {\r\n that._saveState(that.state());\r\n that._savingTimeoutID = void 0\r\n }, that.option(\"stateStoring.savingTimeout\"))\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n switch (args.name) {\r\n case \"stateStoring\":\r\n if (that.isEnabled() && !that.isLoading()) {\r\n that.load()\r\n }\r\n args.handled = true;\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._savingTimeoutID);\r\n _events_engine.default.off((0, _window.getWindow)(), \"unload\", this._windowUnloadHandler)\r\n }\r\n }\r\n}());\r\nexports.StateStoringController = StateStoringController;\r\n","/**\r\n * DevExtreme (ui/toolbar/ui.toolbar.strategy.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar abstract = _class.default.abstract;\r\nvar TOOLBAR_MENU_CONTAINER_CLASS = \"dx-toolbar-menu-container\";\r\nvar TOOLBAR_MENU_BUTTON_CLASS = \"dx-toolbar-menu-button\";\r\nvar ToolbarStrategy = _class.default.inherit({\r\n ctor: function(toolbar) {\r\n this._toolbar = toolbar\r\n },\r\n render: function() {\r\n this._renderMenuButton();\r\n this._renderWidget()\r\n },\r\n _widgetOptions: function() {\r\n var itemClickAction = this._toolbar._createActionByOption(\"onItemClick\");\r\n return {\r\n itemTemplate: this._getMenuItemTemplate.bind(this),\r\n onItemClick: function(e) {\r\n this._toggleMenu(false, true);\r\n itemClickAction(e)\r\n }.bind(this)\r\n }\r\n },\r\n _getMenuItemTemplate: function() {\r\n return this._toolbar._getTemplateByOption(\"menuItemTemplate\")\r\n },\r\n _renderWidget: function() {\r\n var $menu = (0, _renderer.default)(\"
\").appendTo(this._menuContainer());\r\n this._menu = this._toolbar._createComponent($menu, this._menuWidgetClass(), this._widgetOptions());\r\n this.renderMenuItems()\r\n },\r\n _menuContainer: abstract,\r\n _menuWidgetClass: abstract,\r\n _hasVisibleMenuItems: function(items) {\r\n var menuItems = items || this._toolbar.option(\"items\");\r\n var result = false;\r\n var optionGetter = (0, _data.compileGetter)(\"visible\");\r\n var overflowGetter = (0, _data.compileGetter)(\"locateInMenu\");\r\n (0, _iterator.each)(menuItems, function(index, item) {\r\n var itemVisible = optionGetter(item, {\r\n functionsAsIs: true\r\n });\r\n var itemOverflow = overflowGetter(item, {\r\n functionsAsIs: true\r\n });\r\n if (false !== itemVisible && (\"auto\" === itemOverflow || \"always\" === itemOverflow) || \"menu\" === item.location) {\r\n result = true\r\n }\r\n });\r\n return result\r\n },\r\n _getMenuItems: function() {\r\n return this._toolbar._getMenuItems()\r\n },\r\n _updateMenuVisibility: _common.noop,\r\n _renderMenuButton: function() {\r\n var buttonOptions = this._menuButtonOptions();\r\n this._renderMenuButtonContainer();\r\n this._$button = (0, _renderer.default)(\"
\").appendTo(this._$menuButtonContainer).addClass(TOOLBAR_MENU_BUTTON_CLASS);\r\n this._toolbar._createComponent(this._$button, _button.default, buttonOptions)\r\n },\r\n _menuButtonOptions: function() {\r\n return {\r\n onClick: this._menuButtonClickHandler.bind(this)\r\n }\r\n },\r\n _menuButtonClickHandler: function() {\r\n this._toggleMenu(!this._menuShown, true)\r\n },\r\n _renderMenuButtonContainer: function() {\r\n var $afterSection = this._toolbar._$afterSection;\r\n this._$menuButtonContainer = (0, _renderer.default)(\"
\").appendTo($afterSection).addClass(this._toolbar._buttonClass()).addClass(TOOLBAR_MENU_CONTAINER_CLASS)\r\n },\r\n renderMenuItems: function() {\r\n this._menu && this._menu.option(\"items\", this._getMenuItems())\r\n },\r\n toggleMenuVisibility: function(visible, animate) {\r\n this._menu && this._toggleMenu(visible, animate)\r\n },\r\n _toggleMenu: function(visible) {\r\n this._menuShown = visible\r\n },\r\n getMenuWidget: function() {\r\n return this._menu\r\n },\r\n widgetOption: function(name, value) {\r\n this._menu && this._menu.option(name, value)\r\n },\r\n handleToolbarVisibilityChange: _common.noop\r\n});\r\nvar _default = ToolbarStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.editing.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _guid = _interopRequireDefault(require(\"../../core/guid\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _double_click = require(\"../../events/double_click\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _array_utils = require(\"../../data/array_utils\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _dialog = require(\"../dialog\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\nvar _popup = _interopRequireDefault(require(\"../popup\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _form = _interopRequireDefault(require(\"../form\"));\r\nvar _hold = _interopRequireDefault(require(\"../../events/hold\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar iconUtils = _interopRequireWildcard(require(\"../../core/utils/icon\"));\r\nvar _ui = _interopRequireDefault(require(\"../scroll_view/ui.scrollable\"));\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction ownKeys(object, enumerableOnly) {\r\n var keys = Object.keys(object);\r\n if (Object.getOwnPropertySymbols) {\r\n var symbols = Object.getOwnPropertySymbols(object);\r\n if (enumerableOnly) {\r\n symbols = symbols.filter(function(sym) {\r\n return Object.getOwnPropertyDescriptor(object, sym).enumerable\r\n })\r\n }\r\n keys.push.apply(keys, symbols)\r\n }\r\n return keys\r\n}\r\n\r\nfunction _objectSpread(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = null != arguments[i] ? arguments[i] : {};\r\n if (i % 2) {\r\n ownKeys(Object(source), true).forEach(function(key) {\r\n _defineProperty(target, key, source[key])\r\n })\r\n } else {\r\n if (Object.getOwnPropertyDescriptors) {\r\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source))\r\n } else {\r\n ownKeys(Object(source)).forEach(function(key) {\r\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\r\n })\r\n }\r\n }\r\n }\r\n return target\r\n}\r\n\r\nfunction _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\nvar EDIT_FORM_CLASS = \"edit-form\";\r\nvar EDIT_FORM_ITEM_CLASS = \"edit-form-item\";\r\nvar FOCUS_OVERLAY_CLASS = \"focus-overlay\";\r\nvar READONLY_CLASS = \"readonly\";\r\nvar EDIT_POPUP_CLASS = \"edit-popup\";\r\nvar FORM_BUTTONS_CONTAINER_CLASS = \"form-buttons-container\";\r\nvar ADD_ROW_BUTTON_CLASS = \"addrow-button\";\r\nvar DROPDOWN_EDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar LINK_CLASS = \"dx-link\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar ROW_SELECTED = \"dx-selection\";\r\nvar EDIT_ROW = \"dx-edit-row\";\r\nvar EDIT_BUTTON_CLASS = \"dx-edit-button\";\r\nvar COMMAND_EDIT_CLASS = \"dx-command-edit\";\r\nvar COMMAND_EDIT_WITH_ICONS_CLASS = COMMAND_EDIT_CLASS + \"-with-icons\";\r\nvar SCROLLABLE_CONTAINER_CLASS = \"dx-scrollable-container\";\r\nvar BUTTON_CLASS = \"dx-button\";\r\nvar INSERT_INDEX = \"__DX_INSERT_INDEX__\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar ROW_REMOVED = \"dx-row-removed\";\r\nvar ROW_INSERTED = \"dx-row-inserted\";\r\nvar ROW_MODIFIED = \"dx-row-modified\";\r\nvar CELL_MODIFIED = \"dx-cell-modified\";\r\nvar EDITING_NAMESPACE = \"dxDataGridEditing\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nvar FOCUSABLE_ELEMENT_SELECTOR = \"[tabindex], \" + EDITORS_INPUT_SELECTOR;\r\nvar EDIT_MODE_BATCH = \"batch\";\r\nvar EDIT_MODE_ROW = \"row\";\r\nvar EDIT_MODE_CELL = \"cell\";\r\nvar EDIT_MODE_FORM = \"form\";\r\nvar EDIT_MODE_POPUP = \"popup\";\r\nvar DATA_EDIT_DATA_INSERT_TYPE = \"insert\";\r\nvar DATA_EDIT_DATA_UPDATE_TYPE = \"update\";\r\nvar DATA_EDIT_DATA_REMOVE_TYPE = \"remove\";\r\nvar DEFAULT_START_EDIT_ACTION = \"click\";\r\nvar EDIT_MODES = [EDIT_MODE_BATCH, EDIT_MODE_ROW, EDIT_MODE_CELL, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nvar ROW_BASED_MODES = [EDIT_MODE_ROW, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nvar CELL_BASED_MODES = [EDIT_MODE_BATCH, EDIT_MODE_CELL];\r\nvar FORM_BASED_MODES = [EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nvar MODES_WITH_DELAYED_FOCUS = [EDIT_MODE_ROW, EDIT_MODE_FORM];\r\nvar TARGET_COMPONENT_NAME = \"targetComponent\";\r\nvar EDIT_LINK_CLASS = {\r\n save: \"dx-link-save\",\r\n cancel: \"dx-link-cancel\",\r\n edit: \"dx-link-edit\",\r\n undelete: \"dx-link-undelete\",\r\n \"delete\": \"dx-link-delete\",\r\n add: \"dx-link-add\"\r\n};\r\nvar EDIT_ICON_CLASS = {\r\n save: \"save\",\r\n cancel: \"revert\",\r\n edit: \"edit\",\r\n undelete: \"revert\",\r\n \"delete\": \"trash\",\r\n add: \"add\"\r\n};\r\nvar METHOD_NAMES = {\r\n edit: \"editRow\",\r\n \"delete\": \"deleteRow\",\r\n undelete: \"undeleteRow\",\r\n save: \"saveEditData\",\r\n cancel: \"cancelEditData\",\r\n add: \"addRowByRowIndex\"\r\n};\r\nvar ACTION_OPTION_NAMES = {\r\n add: \"allowAdding\",\r\n edit: \"allowUpdating\",\r\n \"delete\": \"allowDeleting\"\r\n};\r\nvar BUTTON_NAMES = [\"edit\", \"save\", \"cancel\", \"delete\", \"undelete\"];\r\nvar EDITING_POPUP_OPTION_NAME = \"editing.popup\";\r\nvar EDITING_CHANGES_OPTION_NAME = \"editing.changes\";\r\nvar EDITING_EDITROWKEY_OPTION_NAME = \"editing.editRowKey\";\r\nvar EDITING_EDITCOLUMNNAME_OPTION_NAME = \"editing.editColumnName\";\r\nvar createFailureHandler = function(deferred) {\r\n return function(arg) {\r\n var error = arg instanceof Error ? arg : new Error(arg && String(arg) || \"Unknown error\");\r\n deferred.reject(error)\r\n }\r\n};\r\nvar _getEditMode = function(that) {\r\n var editMode = that.option(\"editing.mode\");\r\n if (EDIT_MODES.indexOf(editMode) !== -1) {\r\n return editMode\r\n }\r\n return EDIT_MODE_ROW\r\n};\r\nvar _isRowEditMode = function(that) {\r\n var editMode = _getEditMode(that);\r\n return ROW_BASED_MODES.indexOf(editMode) !== -1\r\n};\r\nvar isEditingCell = function(isEditRow, cellOptions) {\r\n return cellOptions.isEditing || isEditRow && cellOptions.column.allowEditing\r\n};\r\nvar isEditingOrShowEditorAlwaysDataCell = function(isEditRow, cellOptions) {\r\n var isCommandCell = !!cellOptions.column.command;\r\n var isEditing = isEditingCell(isEditRow, cellOptions);\r\n var isEditorCell = !isCommandCell && (isEditing || cellOptions.column.showEditorAlways);\r\n return \"data\" === cellOptions.rowType && isEditorCell\r\n};\r\nvar EditingController = _uiGrid_core.default.ViewController.inherit(function() {\r\n var getDefaultEditorTemplate = function(that) {\r\n return function(container, options) {\r\n var $editor = (0, _renderer.default)(\"
\").appendTo(container);\r\n that.getController(\"editorFactory\").createEditor($editor, (0, _extend.extend)({}, options.column, {\r\n value: options.value,\r\n setValue: options.setValue,\r\n row: options.row,\r\n parentType: \"dataRow\",\r\n width: null,\r\n readOnly: !options.setValue,\r\n isOnForm: options.isOnForm,\r\n id: options.id\r\n }))\r\n }\r\n };\r\n var getEditingTexts = function(options) {\r\n var editingTexts = options.component.option(\"editing.texts\") || {};\r\n return {\r\n save: editingTexts.saveRowChanges,\r\n cancel: editingTexts.cancelRowChanges,\r\n edit: editingTexts.editRow,\r\n undelete: editingTexts.undeleteRow,\r\n \"delete\": editingTexts.deleteRow,\r\n add: editingTexts.addRowToNode\r\n }\r\n };\r\n var getButtonIndex = function(buttons, name) {\r\n var result = -1;\r\n buttons.some(function(button, index) {\r\n if (getButtonName(button) === name) {\r\n result = index;\r\n return true\r\n }\r\n });\r\n return result\r\n };\r\n\r\n function getButtonName(button) {\r\n return (0, _type.isObject)(button) ? button.name : button\r\n }\r\n var getEditorType = function(item) {\r\n var column = item.column;\r\n return item.isCustomEditorType ? item.editorType : column.formItem && column.formItem.editorType\r\n };\r\n var forEachFormItems = function forEachFormItems(items, callBack) {\r\n items.forEach(function(item) {\r\n if (item.items || item.tabs) {\r\n forEachFormItems(item.items || item.tabs, callBack)\r\n } else {\r\n callBack(item)\r\n }\r\n })\r\n };\r\n return {\r\n init: function() {\r\n var that = this;\r\n that._columnsController = that.getController(\"columns\");\r\n that._dataController = that.getController(\"data\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._editForm = null;\r\n that._updateEditFormDeferred = null;\r\n that._lastOperation = null;\r\n if (that._deferreds) {\r\n that._deferreds.forEach(function(d) {\r\n return d.reject(\"cancel\")\r\n })\r\n }\r\n that._deferreds = [];\r\n if (!that._dataChangedHandler) {\r\n that._dataChangedHandler = that._handleDataChanged.bind(that);\r\n that._dataController.changed.add(that._dataChangedHandler)\r\n }\r\n if (!that._saveEditorHandler) {\r\n that.createAction(\"onInitNewRow\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onRowInserting\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onRowInserted\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onEditingStart\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onRowUpdating\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onRowUpdated\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onRowRemoving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onRowRemoved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onSaved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onSaving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onEditCanceling\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onEditCanceled\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n var $pointerDownTarget;\r\n var isResizing;\r\n that._pointerUpEditorHandler = function() {\r\n var _that$getController;\r\n isResizing = null === (_that$getController = that.getController(\"columnsResizer\")) || void 0 === _that$getController ? void 0 : _that$getController.isResizing()\r\n };\r\n that._pointerDownEditorHandler = function(e) {\r\n return $pointerDownTarget = (0, _renderer.default)(e.target)\r\n };\r\n that._saveEditorHandler = that.createAction(function(e) {\r\n var event = e.event;\r\n var $target = (0, _renderer.default)(event.target);\r\n var targetComponent = event[TARGET_COMPONENT_NAME];\r\n if ($pointerDownTarget && $pointerDownTarget.is(\"input\") && !$pointerDownTarget.is($target)) {\r\n return\r\n }\r\n\r\n function checkEditorPopup($element) {\r\n return $element && !!$element.closest(\".\".concat(DROPDOWN_EDITOR_OVERLAY_CLASS)).length\r\n }\r\n if (!_isRowEditMode(that) && !that._editCellInProgress) {\r\n var isEditorPopup = checkEditorPopup($target) || checkEditorPopup(null === targetComponent || void 0 === targetComponent ? void 0 : targetComponent.$element());\r\n var isDomElement = !!$target.closest((0, _window.getWindow)().document).length;\r\n var isAnotherComponent = targetComponent && !targetComponent._disposed && targetComponent !== that.component;\r\n var isAddRowButton = !!$target.closest(\".\".concat(that.addWidgetPrefix(ADD_ROW_BUTTON_CLASS))).length;\r\n var isFocusOverlay = $target.hasClass(that.addWidgetPrefix(FOCUS_OVERLAY_CLASS));\r\n var isCellEditMode = _getEditMode(that) === EDIT_MODE_CELL;\r\n if (!isResizing && !isEditorPopup && !isFocusOverlay && !(isAddRowButton && isCellEditMode && that.isEditing()) && (isDomElement || isAnotherComponent)) {\r\n that._closeEditItem.bind(that)($target)\r\n }\r\n }\r\n });\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), _pointer.default.up, that._pointerUpEditorHandler);\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), _pointer.default.down, that._pointerDownEditorHandler);\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), _click.name, that._saveEditorHandler)\r\n }\r\n that._updateEditColumn();\r\n that._updateEditButtons();\r\n if (!this._internalState) {\r\n this._internalState = []\r\n }\r\n this.component._optionsByReference[EDITING_EDITROWKEY_OPTION_NAME] = true;\r\n this.component._optionsByReference[EDITING_CHANGES_OPTION_NAME] = true\r\n },\r\n getChanges: function() {\r\n return this.option(EDITING_CHANGES_OPTION_NAME)\r\n },\r\n resetChanges: function() {\r\n var changes = this.getChanges();\r\n var needReset = null === changes || void 0 === changes ? void 0 : changes.length;\r\n if (needReset) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, [])\r\n }\r\n },\r\n _getInternalData: function(key) {\r\n return this._internalState.filter(function(item) {\r\n return item.key === key\r\n })[0]\r\n },\r\n _addInternalData: function(params) {\r\n var internalData = this._getInternalData(params.key);\r\n if (internalData) {\r\n return (0, _extend.extend)(internalData, params)\r\n }\r\n this._internalState.push(params);\r\n return params\r\n },\r\n _getOldData: function(key) {\r\n var _this$_getInternalDat;\r\n return null === (_this$_getInternalDat = this._getInternalData(key)) || void 0 === _this$_getInternalDat ? void 0 : _this$_getInternalDat.oldData\r\n },\r\n getUpdatedData: function(data) {\r\n var key = this._dataController.keyOf(data);\r\n var changes = this.getChanges();\r\n var editIndex = _uiGrid_core2.default.getIndexByKey(key, changes);\r\n if (changes[editIndex]) {\r\n return (0, _array_utils.createObjectWithChanges)(data, changes[editIndex].data)\r\n }\r\n return data\r\n },\r\n getInsertedData: function() {\r\n return this.getChanges().filter(function(change) {\r\n return change.data && change.type === DATA_EDIT_DATA_INSERT_TYPE\r\n }).map(function(change) {\r\n return change.data\r\n })\r\n },\r\n getRemovedData: function() {\r\n var _this = this;\r\n return this.getChanges().filter(function(change) {\r\n return _this._getOldData(change.key) && change.type === DATA_EDIT_DATA_REMOVE_TYPE\r\n }).map(function(change) {\r\n return _this._getOldData(change.key)\r\n })\r\n },\r\n _fireDataErrorOccurred: function(arg) {\r\n if (\"cancel\" === arg) {\r\n return\r\n }\r\n var $popupContent = this.getPopupContent();\r\n this._dataController.dataErrorOccurred.fire(arg, $popupContent)\r\n },\r\n _needToCloseEditableCell: function($targetElement) {\r\n var $element = this.component.$element();\r\n var result = this.isEditing();\r\n var isCurrentComponentElement = !$element || !!$targetElement.closest($element).length;\r\n if (isCurrentComponentElement) {\r\n var isDataRow = $targetElement.closest(\".\" + DATA_ROW_CLASS).length;\r\n if (isDataRow) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var $targetCell = $targetElement.closest(\".\" + ROW_CLASS + \"> td\");\r\n var rowIndex = rowsView.getRowIndex($targetCell.parent());\r\n var columnIndex = rowsView.getCellElements(rowIndex).index($targetCell);\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var allowEditing = visibleColumns[columnIndex] && visibleColumns[columnIndex].allowEditing;\r\n result = result && !allowEditing && !this.isEditCell(rowIndex, columnIndex)\r\n }\r\n }\r\n return result\r\n },\r\n _closeEditItem: function($targetElement) {\r\n if (this._needToCloseEditableCell($targetElement)) {\r\n this.closeEditCell()\r\n }\r\n },\r\n _handleDataChanged: function(args) {\r\n var editForm = this._editForm;\r\n if (\"refresh\" === args.changeType && _getEditMode(this) === EDIT_MODE_POPUP && editForm && editForm.option(\"visible\")) {\r\n this._repaintEditPopup()\r\n }\r\n },\r\n _isDefaultButtonVisible: function(button, options) {\r\n var result = true;\r\n var isRowMode = _isRowEditMode(this);\r\n var isBatchMode = _getEditMode(this) === EDIT_MODE_BATCH;\r\n var isEditRow = options.row && options.row.rowIndex === this._getVisibleEditRowIndex() && isRowMode;\r\n switch (button.name) {\r\n case \"edit\":\r\n result = !isEditRow && this.allowUpdating(options) && isRowMode;\r\n break;\r\n case \"save\":\r\n case \"cancel\":\r\n result = isEditRow;\r\n break;\r\n case \"delete\":\r\n result = !isEditRow && this.allowDeleting(options) && (!isBatchMode || !options.row.removed);\r\n break;\r\n case \"undelete\":\r\n result = isBatchMode && this.allowDeleting(options) && options.row.removed\r\n }\r\n return result\r\n },\r\n _isButtonVisible: function(button, options) {\r\n var visible = button.visible;\r\n if (!(0, _type.isDefined)(visible)) {\r\n return this._isDefaultButtonVisible(button, options)\r\n }\r\n return (0, _type.isFunction)(visible) ? visible.call(button, {\r\n component: options.component,\r\n row: options.row,\r\n column: options.column\r\n }) : visible\r\n },\r\n _getButtonConfig: function(button, options) {\r\n var _this2 = this;\r\n var config = (0, _type.isObject)(button) ? button : {};\r\n var buttonName = getButtonName(button);\r\n var editingTexts = getEditingTexts(options);\r\n var methodName = METHOD_NAMES[buttonName];\r\n var editingOptions = this.option(\"editing\");\r\n var actionName = ACTION_OPTION_NAMES[buttonName];\r\n var allowAction = actionName ? editingOptions[actionName] : true;\r\n return (0, _extend.extend)({\r\n name: buttonName,\r\n text: editingTexts[buttonName],\r\n cssClass: EDIT_LINK_CLASS[buttonName],\r\n onClick: function(e) {\r\n var event = e.event;\r\n event.stopPropagation();\r\n event.preventDefault();\r\n setTimeout(function() {\r\n options.row && allowAction && _this2[methodName] && _this2[methodName](options.row.rowIndex)\r\n })\r\n }\r\n }, config)\r\n },\r\n _getEditingButtons: function(options) {\r\n var _this3 = this;\r\n var buttonIndex;\r\n var haveCustomButtons = !!options.column.buttons;\r\n var buttons = (options.column.buttons || []).slice();\r\n if (haveCustomButtons) {\r\n buttonIndex = getButtonIndex(buttons, \"edit\");\r\n if (buttonIndex >= 0) {\r\n if (getButtonIndex(buttons, \"save\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"save\")\r\n }\r\n if (getButtonIndex(buttons, \"cancel\") < 0) {\r\n buttons.splice(getButtonIndex(buttons, \"save\") + 1, 0, \"cancel\")\r\n }\r\n }\r\n buttonIndex = getButtonIndex(buttons, \"delete\");\r\n if (buttonIndex >= 0 && getButtonIndex(buttons, \"undelete\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"undelete\")\r\n }\r\n } else {\r\n buttons = BUTTON_NAMES.slice()\r\n }\r\n return buttons.map(function(button) {\r\n return _this3._getButtonConfig(button, options)\r\n })\r\n },\r\n _renderEditingButtons: function($container, buttons, options) {\r\n var _this4 = this;\r\n buttons.forEach(function(button) {\r\n if (_this4._isButtonVisible(button, options)) {\r\n _this4._createButton($container, button, options)\r\n }\r\n })\r\n },\r\n _getEditCommandCellTemplate: function() {\r\n var _this5 = this;\r\n return function(container, options) {\r\n var $container = (0, _renderer.default)(container);\r\n if (\"data\" === options.rowType) {\r\n var buttons = _this5._getEditingButtons(options);\r\n _this5._renderEditingButtons($container, buttons, options);\r\n options.watch && options.watch(function() {\r\n return buttons.map(function(button) {\r\n return _this5._isButtonVisible(button, options)\r\n })\r\n }, function() {\r\n $container.empty();\r\n _this5._renderEditingButtons($container, buttons, options)\r\n })\r\n } else {\r\n _uiGrid_core2.default.setEmptyText($container)\r\n }\r\n }\r\n },\r\n isRowEditMode: function() {\r\n return _isRowEditMode(this)\r\n },\r\n isFormEditMode: function() {\r\n var editMode = _getEditMode(this);\r\n return FORM_BASED_MODES.indexOf(editMode) !== -1\r\n },\r\n isCellOrBatchEditMode: function() {\r\n var editMode = this.getEditMode();\r\n return CELL_BASED_MODES.indexOf(editMode) !== -1\r\n },\r\n getEditMode: function() {\r\n return _getEditMode(this)\r\n },\r\n getFirstEditableColumnIndex: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var firstFormItem = this._firstFormItem;\r\n var columnIndex;\r\n if (_getEditMode(this) === EDIT_MODE_FORM && firstFormItem) {\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var editRowIndex = this._dataController.getRowIndexByKey(editRowKey);\r\n var $editFormElements = this._rowsView.getCellElements(editRowIndex);\r\n columnIndex = this._rowsView._getEditFormEditorVisibleIndex($editFormElements, firstFormItem.column)\r\n } else {\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n (0, _iterator.each)(visibleColumns, function(index, column) {\r\n if (column.allowEditing) {\r\n columnIndex = index;\r\n return false\r\n }\r\n })\r\n }\r\n return columnIndex\r\n },\r\n getFirstEditableCellInRow: function(rowIndex) {\r\n var rowsView = this.getView(\"rowsView\");\r\n return rowsView && rowsView._getCellElement(rowIndex ? rowIndex : 0, this.getFirstEditableColumnIndex())\r\n },\r\n getFocusedCellInRow: function(rowIndex) {\r\n return this.getFirstEditableCellInRow(rowIndex)\r\n },\r\n getIndexByKey: function(key, items) {\r\n return _uiGrid_core2.default.getIndexByKey(key, items)\r\n },\r\n hasChanges: function(rowIndex) {\r\n var changes = this.getChanges();\r\n var result = false;\r\n for (var i = 0; i < (null === changes || void 0 === changes ? void 0 : changes.length); i++) {\r\n if (changes[i].type && (!(0, _type.isDefined)(rowIndex) || this._dataController.getRowIndexByKey(changes[i].key) === rowIndex)) {\r\n result = true;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._inputFocusTimeoutID);\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), _pointer.default.up, this._pointerUpEditorHandler);\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), _pointer.default.down, this._pointerDownEditorHandler);\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), _click.name, this._saveEditorHandler)\r\n },\r\n optionChanged: function(args) {\r\n if (\"editing\" === args.name) {\r\n var fullName = args.fullName;\r\n var editPopup = this._editPopup;\r\n if (fullName && 0 === fullName.indexOf(EDITING_POPUP_OPTION_NAME)) {\r\n if (editPopup) {\r\n var popupOptionName = fullName.slice(EDITING_POPUP_OPTION_NAME.length + 1);\r\n if (popupOptionName) {\r\n editPopup.option(popupOptionName, args.value)\r\n } else {\r\n editPopup.option(args.value)\r\n }\r\n }\r\n } else {\r\n if (editPopup && editPopup.option(\"visible\") && 0 === fullName.indexOf(\"editing.form\")) {\r\n this._repaintEditPopup()\r\n } else {\r\n if (fullName === EDITING_EDITROWKEY_OPTION_NAME) {\r\n this._handleEditRowKeyChange(args)\r\n } else {\r\n if (fullName === EDITING_EDITCOLUMNNAME_OPTION_NAME) {\r\n this._handleEditColumnNameChange(args)\r\n } else {\r\n if (fullName === EDITING_CHANGES_OPTION_NAME) {\r\n this._handleChangesChange(args)\r\n } else {\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n }\r\n }\r\n }\r\n }\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _handleEditRowKeyChange: function(args) {\r\n var rowIndex = this._dataController.getRowIndexByKey(args.value);\r\n var oldRowIndexCorrection = this._getEditRowIndexCorrection();\r\n var oldRowIndex = this._dataController.getRowIndexByKey(args.previousValue) + oldRowIndexCorrection;\r\n var columnIndex = this._getVisibleEditColumnIndex();\r\n if (!this.isCellOrBatchEditMode()) {\r\n if ((0, _type.isDefined)(args.value)) {\r\n if (args.value !== args.previousValue) {\r\n this._editRowFromOptionChanged(rowIndex, oldRowIndex)\r\n }\r\n } else {\r\n this.cancelEditData()\r\n }\r\n } else {\r\n if ((0, _type.isDefined)(args.value) && args.value !== args.previousValue) {\r\n this._editCellFromOptionChanged(columnIndex, columnIndex, oldRowIndex)\r\n }\r\n }\r\n },\r\n _handleEditColumnNameChange: function(args) {\r\n var oldRowIndex = this._getVisibleEditRowIndex(args.previousValue);\r\n if (this.isCellOrBatchEditMode() && oldRowIndex !== -1 && (0, _type.isDefined)(args.value) && args.value !== args.previousValue) {\r\n var columnIndex = this._columnsController.getVisibleColumnIndex(args.value);\r\n var oldColumnIndex = this._columnsController.getVisibleColumnIndex(args.previousValue);\r\n this._editCellFromOptionChanged(columnIndex, oldColumnIndex, oldRowIndex)\r\n }\r\n },\r\n _handleChangesChange: function(args) {\r\n var dataController = this._dataController;\r\n if (!args.value.length && !args.previousValue.length) {\r\n return\r\n }\r\n dataController.updateItems({\r\n repaintChangesOnly: true\r\n })\r\n },\r\n _editCellFromOptionChanged: function(columnIndex, oldColumnIndex, oldRowIndex) {\r\n var _this6 = this;\r\n var columns = this._columnsController.getVisibleColumns();\r\n if (columnIndex > -1) {\r\n (0, _common.deferRender)(function() {\r\n _this6._repaintEditCell(columns[columnIndex], columns[oldColumnIndex], oldRowIndex)\r\n })\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"addRow\", \"deleteRow\", \"undeleteRow\", \"editRow\", \"editCell\", \"closeEditCell\", \"saveEditData\", \"cancelEditData\", \"hasEditData\"]\r\n },\r\n refresh: function(isPageChanged) {\r\n var editMode = _getEditMode(this);\r\n var needResetIndexes = editMode === EDIT_MODE_BATCH || isPageChanged && \"virtual\" !== this.option(\"scrolling.mode\");\r\n if (!(0, _type.isDefined)(this._pageIndex)) {\r\n return\r\n }\r\n if (!this.isCellOrBatchEditMode()) {\r\n this.resetChanges();\r\n this.init();\r\n if ((0, _type.isDefined)(this.option(EDITING_EDITROWKEY_OPTION_NAME))) {\r\n this._resetEditRowKey()\r\n }\r\n } else {\r\n if (needResetIndexes) {\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n }\r\n },\r\n isEditing: function() {\r\n var isEditRowKeyDefined = (0, _type.isDefined)(this.option(EDITING_EDITROWKEY_OPTION_NAME));\r\n var isEditColumnNameDefined = (0, _type.isDefined)(this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME));\r\n if (this.isCellOrBatchEditMode()) {\r\n return isEditRowKeyDefined && isEditColumnNameDefined\r\n }\r\n return isEditRowKeyDefined\r\n },\r\n isEditRow: function(rowIndex) {\r\n var editMode = _getEditMode(this);\r\n return this._getVisibleEditRowIndex() === rowIndex && ROW_BASED_MODES.indexOf(editMode) !== -1\r\n },\r\n _setEditRowKey: function(value, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n } else {\r\n this.option(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n }\r\n },\r\n _setEditRowKeyByIndex: function(rowIndex, silent) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n if (void 0 === key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n this._setEditRowKey(key, silent)\r\n },\r\n getEditRowIndex: function() {\r\n return this._getVisibleEditRowIndex()\r\n },\r\n getEditFormRowIndex: function() {\r\n var editMode = _getEditMode(this);\r\n return editMode === EDIT_MODE_FORM || editMode === EDIT_MODE_POPUP ? this._getVisibleEditRowIndex() : -1\r\n },\r\n isEditCell: function(visibleRowIndex, columnIndex) {\r\n return this._getVisibleEditRowIndex() === visibleRowIndex && this._getVisibleEditColumnIndex() === columnIndex\r\n },\r\n getPopupContent: function() {\r\n var editMode = _getEditMode(this);\r\n var popupVisible = this._editPopup && this._editPopup.option(\"visible\");\r\n if (editMode === EDIT_MODE_POPUP && popupVisible) {\r\n return this._$popupContent\r\n }\r\n },\r\n getEditForm: function() {\r\n return this._editForm\r\n },\r\n _needInsertItem: function(change, changeType) {\r\n var that = this;\r\n var dataSource = that._dataController.dataSource();\r\n var scrollingMode = that.option(\"scrolling.mode\");\r\n var pageIndex = dataSource.pageIndex();\r\n var beginPageIndex = dataSource.beginPageIndex ? dataSource.beginPageIndex() : pageIndex;\r\n var endPageIndex = dataSource.endPageIndex ? dataSource.endPageIndex() : pageIndex;\r\n if (\"standard\" !== scrollingMode) {\r\n switch (changeType) {\r\n case \"append\":\r\n return change.key.pageIndex === endPageIndex;\r\n case \"prepend\":\r\n return change.key.pageIndex === beginPageIndex;\r\n case \"refresh\":\r\n change.key.rowIndex = 0;\r\n change.key.dataRowIndex = 0;\r\n change.key.pageIndex = 0;\r\n break;\r\n default:\r\n return change.key.pageIndex >= beginPageIndex && change.key.pageIndex <= endPageIndex\r\n }\r\n }\r\n return change.key.pageIndex === pageIndex\r\n },\r\n _generateNewItem: function(key) {\r\n var item = {\r\n key: key\r\n };\r\n if (key && key[INSERT_INDEX]) {\r\n item[INSERT_INDEX] = key[INSERT_INDEX]\r\n }\r\n return item\r\n },\r\n _getLoadedRowIndexByInsertKey: function(items, change, key) {\r\n var dataController = this._dataController;\r\n var loadedRowIndexOffset = dataController.getRowIndexOffset(true);\r\n var loadedRowIndex = key.dataRowIndex - loadedRowIndexOffset;\r\n if (\"append\" === change.changeType) {\r\n loadedRowIndex -= dataController.items(true).length;\r\n if (change.removeCount) {\r\n loadedRowIndex += change.removeCount\r\n }\r\n }\r\n for (var i = 0; i < loadedRowIndex; i++) {\r\n if (items[i] && items[i][INSERT_INDEX]) {\r\n loadedRowIndex++\r\n }\r\n }\r\n return loadedRowIndex\r\n },\r\n processItems: function(items, e) {\r\n var _this7 = this;\r\n var changeType = e.changeType;\r\n this.update(changeType);\r\n var changes = this.getChanges();\r\n changes.forEach(function(change) {\r\n var key = change.key;\r\n if ((0, _type.isDefined)(key) && change.type === DATA_EDIT_DATA_INSERT_TYPE) {\r\n var loadedRowIndex = _this7._getLoadedRowIndexByInsertKey(items, e, key);\r\n var item = _this7._generateNewItem(key);\r\n if (loadedRowIndex >= 0 && _this7._needInsertItem(change, changeType, items, item)) {\r\n items.splice(key.dataRowIndex ? loadedRowIndex : 0, 0, item)\r\n }\r\n }\r\n });\r\n return items\r\n },\r\n processDataItem: function(item, options, generateDataValues) {\r\n var columns = options.visibleColumns;\r\n var key = item.data[INSERT_INDEX] ? item.data.key : item.key;\r\n var changes = this.getChanges();\r\n var editIndex = _uiGrid_core2.default.getIndexByKey(key, changes);\r\n item.isEditing = false;\r\n if (editIndex >= 0) {\r\n var editMode = _getEditMode(this);\r\n var _changes$editIndex = changes[editIndex],\r\n data = _changes$editIndex.data,\r\n type = _changes$editIndex.type;\r\n switch (type) {\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n if (editMode === EDIT_MODE_POPUP) {\r\n item.visible = false\r\n }\r\n item.isNewRow = true;\r\n item.key = key;\r\n item.data = data;\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n item.modified = true;\r\n item.oldData = item.data;\r\n item.data = (0, _array_utils.createObjectWithChanges)(item.data, data);\r\n item.modifiedValues = generateDataValues(data, columns, true);\r\n break;\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n if (editMode === EDIT_MODE_BATCH) {\r\n item.data = (0, _array_utils.createObjectWithChanges)(item.data, data)\r\n }\r\n item.removed = true\r\n }\r\n }\r\n },\r\n _initNewRow: function(options) {\r\n var _this8 = this;\r\n this.executeAction(\"onInitNewRow\", options);\r\n if (options.promise) {\r\n var deferred = new _deferred.Deferred;\r\n (0, _deferred.when)((0, _deferred.fromPromise)(options.promise)).done(deferred.resolve).fail(createFailureHandler(deferred)).fail(function(arg) {\r\n return _this8._fireDataErrorOccurred(arg)\r\n });\r\n return deferred\r\n }\r\n },\r\n _getInsertKey: function(parentKey) {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var rows = dataController.items();\r\n var editMode = _getEditMode(that);\r\n var insertKey = {\r\n parentKey: parentKey,\r\n pageIndex: dataController.pageIndex(),\r\n rowIndex: that._getInsertRowIndex(parentKey)\r\n };\r\n var row = rows[insertKey.rowIndex];\r\n if (row && (!row.isEditing && \"detail\" === row.rowType || \"detailAdaptive\" === row.rowType)) {\r\n insertKey.rowIndex++\r\n }\r\n insertKey.dataRowIndex = dataController.getRowIndexOffset() + rows.filter(function(row, index) {\r\n return index < insertKey.rowIndex && (\"data\" === row.rowType && !row.isNewRow || \"group\" === row.rowType)\r\n }).length;\r\n if (editMode !== EDIT_MODE_BATCH) {\r\n this._setEditRowKey(insertKey, true)\r\n }\r\n insertKey[INSERT_INDEX] = that._getInsertIndex();\r\n return insertKey\r\n },\r\n _getInsertRowIndex: function(parentKey) {\r\n var that = this;\r\n var rowsView = that.getView(\"rowsView\");\r\n var parentRowIndex = that._dataController.getRowIndexByKey(parentKey);\r\n if (parentRowIndex >= 0) {\r\n return parentRowIndex + 1\r\n }\r\n if (rowsView) {\r\n return rowsView.getTopVisibleItemIndex(true)\r\n }\r\n return 0\r\n },\r\n _getInsertIndex: function() {\r\n var maxInsertIndex = 0;\r\n this.getChanges().forEach(function(editItem) {\r\n if (editItem.type === DATA_EDIT_DATA_INSERT_TYPE && editItem.key[INSERT_INDEX] > maxInsertIndex) {\r\n maxInsertIndex = editItem.key[INSERT_INDEX]\r\n }\r\n });\r\n return maxInsertIndex + 1\r\n },\r\n addRow: function(parentKey) {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var store = dataController.store();\r\n var key = store && store.key();\r\n var param = {\r\n data: {}\r\n };\r\n var editMode = _getEditMode(that);\r\n var oldEditRowIndex = that._getVisibleEditRowIndex();\r\n var deferred = new _deferred.Deferred;\r\n if (!store) {\r\n dataController.fireError(\"E1052\", this.component.NAME);\r\n return deferred.reject()\r\n }\r\n if (editMode === EDIT_MODE_CELL && that.hasChanges()) {\r\n that.saveEditData().done(function() {\r\n if (!that.hasChanges()) {\r\n that.addRow(parentKey).done(deferred.resolve).fail(deferred.reject)\r\n } else {\r\n deferred.reject(\"cancel\")\r\n }\r\n });\r\n return deferred.promise()\r\n }\r\n that.refresh();\r\n if (!that._allowRowAdding()) {\r\n return deferred.reject(\"cancel\")\r\n }\r\n if (!key) {\r\n param.data.__KEY__ = String(new _guid.default)\r\n }(0, _deferred.when)(that._initNewRow(param, parentKey)).done(function() {\r\n if (that._allowRowAdding()) {\r\n that._addRowCore(param.data, parentKey, oldEditRowIndex);\r\n deferred.resolve()\r\n } else {\r\n deferred.reject(\"cancel\")\r\n }\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _allowRowAdding: function() {\r\n var that = this;\r\n var editMode = _getEditMode(that);\r\n var insertIndex = that._getInsertIndex();\r\n if (editMode !== EDIT_MODE_BATCH && insertIndex > 1) {\r\n return false\r\n }\r\n return true\r\n },\r\n _addRowCore: function(data, parentKey, initialOldEditRowIndex) {\r\n var that = this;\r\n var oldEditRowIndex = that._getVisibleEditRowIndex();\r\n var insertKey = that._getInsertKey(parentKey);\r\n var editMode = _getEditMode(that);\r\n that._addChange({\r\n key: insertKey,\r\n data: data,\r\n type: DATA_EDIT_DATA_INSERT_TYPE\r\n });\r\n that._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [initialOldEditRowIndex, oldEditRowIndex, insertKey.rowIndex]\r\n });\r\n if (editMode === EDIT_MODE_POPUP) {\r\n that._showEditPopup(insertKey.rowIndex)\r\n } else {\r\n that._focusFirstEditableCellInRow(insertKey.rowIndex)\r\n }\r\n that._afterInsertRow({\r\n key: insertKey,\r\n data: data\r\n })\r\n },\r\n _focusFirstEditableCellInRow: function(rowIndex) {\r\n var that = this;\r\n var $firstCell = that.getFirstEditableCellInRow(rowIndex);\r\n that._editCellInProgress = true;\r\n that._delayedInputFocus($firstCell, function() {\r\n that._editCellInProgress = false;\r\n var $cell = that.getFirstEditableCellInRow(rowIndex);\r\n var eventToTrigger = \"dblClick\" === that.option(\"editing.startEditAction\") ? _double_click.name : _click.name;\r\n $cell && _events_engine.default.trigger($cell, eventToTrigger)\r\n })\r\n },\r\n _isEditingStart: function(options) {\r\n this.executeAction(\"onEditingStart\", options);\r\n return options.cancel\r\n },\r\n _beforeEditCell: function(rowIndex, columnIndex, item) {\r\n var that = this;\r\n if (_getEditMode(that) === EDIT_MODE_CELL && !item.isNewRow && that.hasChanges()) {\r\n var d = new _deferred.Deferred;\r\n that.saveEditData().always(function() {\r\n d.resolve(that.hasChanges())\r\n });\r\n return d\r\n }\r\n },\r\n _beforeUpdateItems: function() {},\r\n _getVisibleEditColumnIndex: function() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n if (!(0, _type.isDefined)(editColumnName)) {\r\n return -1\r\n }\r\n return this._columnsController.getVisibleColumnIndex(editColumnName)\r\n },\r\n _setEditColumnNameByIndex: function(index, silent) {\r\n var _visibleColumns$index;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n this._setEditColumnName(null === (_visibleColumns$index = visibleColumns[index]) || void 0 === _visibleColumns$index ? void 0 : _visibleColumns$index.name, silent)\r\n },\r\n _setEditColumnName: function(name, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n } else {\r\n this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n }\r\n },\r\n _resetEditColumnName: function() {\r\n this._setEditColumnName(null, true)\r\n },\r\n _getEditColumn: function() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n return this._getColumnByName(editColumnName)\r\n },\r\n _getColumnByName: function(name) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var editColumn;\r\n (0, _type.isDefined)(name) && visibleColumns.some(function(column) {\r\n if (column.name === name) {\r\n editColumn = column;\r\n return true\r\n }\r\n });\r\n return editColumn\r\n },\r\n _getVisibleEditRowIndex: function(columnName) {\r\n var dataController = this._dataController;\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var rowIndex = dataController.getRowIndexByKey(editRowKey);\r\n if (rowIndex === -1) {\r\n return rowIndex\r\n }\r\n return rowIndex + this._getEditRowIndexCorrection(columnName)\r\n },\r\n _getEditRowIndexCorrection: function(columnName) {\r\n var editColumn = columnName ? this._getColumnByName(columnName) : this._getEditColumn();\r\n var isColumnHidden = \"adaptiveHidden\" === (null === editColumn || void 0 === editColumn ? void 0 : editColumn.visibleWidth);\r\n return isColumnHidden ? 1 : 0\r\n },\r\n _resetEditRowKey: function() {\r\n this._setEditRowKey(null, true)\r\n },\r\n _resetEditIndices: function() {\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n },\r\n editRow: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var items = dataController.items();\r\n var item = items[rowIndex];\r\n var params = {\r\n data: item && item.data,\r\n cancel: false\r\n };\r\n var oldRowIndex = this._getVisibleEditRowIndex();\r\n if (!item) {\r\n return\r\n }\r\n if (rowIndex === oldRowIndex) {\r\n return true\r\n }\r\n if (void 0 === item.key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n if (!item.isNewRow) {\r\n params.key = item.key\r\n }\r\n if (this._isEditingStart(params)) {\r\n return\r\n }\r\n this.resetChanges();\r\n this.init();\r\n this._resetEditColumnName();\r\n this._pageIndex = dataController.pageIndex();\r\n this._addInternalData({\r\n key: item.key,\r\n oldData: item.data\r\n });\r\n this._setEditRowKey(item.key)\r\n },\r\n _editRowFromOptionChanged: function(rowIndex, oldRowIndex) {\r\n var rowIndices = [oldRowIndex, rowIndex];\r\n var editMode = _getEditMode(this);\r\n this._beforeUpdateItems(rowIndices, rowIndex, oldRowIndex);\r\n if (editMode === EDIT_MODE_POPUP) {\r\n this._showEditPopup(rowIndex)\r\n } else {\r\n this._needFocusEditor = true;\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndices\r\n })\r\n }\r\n },\r\n _focusEditorIfNeed: function() {\r\n var _this9 = this;\r\n var editMode = _getEditMode(this);\r\n if (this._needFocusEditor) {\r\n if (MODES_WITH_DELAYED_FOCUS.indexOf(editMode) !== -1) {\r\n var $editingCell = this.getFocusedCellInRow(this._getVisibleEditRowIndex());\r\n this._delayedInputFocus($editingCell, function() {\r\n $editingCell && _this9.component.focus($editingCell)\r\n })\r\n } else {\r\n if (CELL_BASED_MODES.indexOf(editMode) !== -1) {\r\n var _this$_rowsView;\r\n var editColumnIndex = this._getVisibleEditColumnIndex();\r\n var $cell = null === (_this$_rowsView = this._rowsView) || void 0 === _this$_rowsView ? void 0 : _this$_rowsView._getCellElement(this._getVisibleEditRowIndex(), editColumnIndex);\r\n if ($cell && !$cell.find(\":focus\").length) {\r\n this._focusEditingCell(function() {\r\n _this9._editCellInProgress = false\r\n }, $cell, true)\r\n } else {\r\n this._editCellInProgress = false\r\n }\r\n }\r\n }\r\n this._needFocusEditor = false\r\n }\r\n },\r\n _showEditPopup: function(rowIndex, repaintForm) {\r\n var that = this;\r\n var isMobileDevice = \"desktop\" !== _devices.default.current().deviceType;\r\n var popupOptions = (0, _extend.extend)({\r\n showTitle: false,\r\n fullScreen: isMobileDevice,\r\n toolbarItems: [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: that._getSaveButtonConfig()\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: that._getCancelButtonConfig()\r\n }],\r\n contentTemplate: that._getPopupEditFormTemplate(rowIndex)\r\n }, that.option(EDITING_POPUP_OPTION_NAME));\r\n if (!that._editPopup) {\r\n var $popupContainer = (0, _renderer.default)(\"
\").appendTo(that.component.$element()).addClass(that.addWidgetPrefix(EDIT_POPUP_CLASS));\r\n that._editPopup = that._createComponent($popupContainer, _popup.default, {});\r\n that._editPopup.on(\"hiding\", that._getEditPopupHiddenHandler());\r\n that._editPopup.on(\"shown\", function(e) {\r\n _events_engine.default.trigger(e.component.$content().find(FOCUSABLE_ELEMENT_SELECTOR).not(\".\" + SCROLLABLE_CONTAINER_CLASS).first(), \"focus\");\r\n if (repaintForm) {\r\n that._editForm && that._editForm.repaint()\r\n }\r\n })\r\n }\r\n that._editPopup.option(popupOptions);\r\n that._editPopup.show()\r\n },\r\n _repaintEditPopup: function() {\r\n var rowIndex = this._getVisibleEditRowIndex();\r\n if (this._editPopup && this._editPopup.option(\"visible\") && rowIndex >= 0) {\r\n var defaultAnimation = this._editPopup.option(\"animation\");\r\n this._editPopup.option(\"animation\", null);\r\n this._showEditPopup(rowIndex, true);\r\n this._editPopup.option(\"animation\", defaultAnimation)\r\n }\r\n },\r\n _getEditPopupHiddenHandler: function() {\r\n var that = this;\r\n return function(e) {\r\n if (that.isEditing()) {\r\n that.cancelEditData()\r\n }\r\n }\r\n },\r\n _getPopupEditFormTemplate: function(rowIndex) {\r\n var that = this;\r\n var row = that.component.getVisibleRows()[rowIndex];\r\n var templateOptions = {\r\n row: row,\r\n rowType: row.rowType,\r\n key: row.key\r\n };\r\n return function(container) {\r\n var formTemplate = that.getEditFormTemplate();\r\n var scrollable = that._createComponent((0, _renderer.default)(\"
\").appendTo(container), _ui.default);\r\n that._$popupContent = scrollable.$content();\r\n formTemplate(that._$popupContent, templateOptions, true)\r\n }\r\n },\r\n _getSaveButtonConfig: function() {\r\n return {\r\n text: this.option(\"editing.texts.saveRowChanges\"),\r\n onClick: this.saveEditData.bind(this)\r\n }\r\n },\r\n _getCancelButtonConfig: function() {\r\n return {\r\n text: this.option(\"editing.texts.cancelRowChanges\"),\r\n onClick: this.cancelEditData.bind(this)\r\n }\r\n },\r\n _removeInternalData: function(key) {\r\n var internalData = this._getInternalData(key);\r\n var index = this._internalState.indexOf(internalData);\r\n if (index > -1) {\r\n this._internalState.splice(index, 1)\r\n }\r\n },\r\n _removeChange: function(index) {\r\n if (index >= 0) {\r\n var changes = _toConsumableArray(this.getChanges());\r\n var key = changes[index].key;\r\n this._removeInternalData(key);\r\n changes.splice(index, 1);\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n if ((0, _common.equalByValue)(this.option(EDITING_EDITROWKEY_OPTION_NAME), key)) {\r\n this._resetEditIndices()\r\n }\r\n }\r\n },\r\n executeOperation: function(deferred, func) {\r\n var _this10 = this;\r\n this._lastOperation && this._lastOperation.reject();\r\n this._lastOperation = deferred;\r\n this.waitForDeferredOperations().done(function() {\r\n if (\"rejected\" === deferred.state()) {\r\n return\r\n }\r\n func();\r\n _this10._lastOperation = null\r\n }).fail(function() {\r\n deferred.reject();\r\n _this10._lastOperation = null\r\n })\r\n },\r\n waitForDeferredOperations: function() {\r\n return _deferred.when.apply(void 0, _toConsumableArray(this._deferreds))\r\n },\r\n editCell: function(rowIndex, columnIndex) {\r\n return this._editCell({\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n })\r\n },\r\n _editCell: function(options) {\r\n var _this11 = this;\r\n var d = new _deferred.Deferred;\r\n var coreResult;\r\n this.executeOperation(d, function() {\r\n coreResult = _this11._editCellCore(options);\r\n (0, _deferred.when)(coreResult).done(d.resolve).fail(d.reject)\r\n });\r\n return void 0 !== coreResult ? coreResult : d.promise()\r\n },\r\n _getNormalizedEditCellOptions: function(_ref) {\r\n var oldColumnIndex = _ref.oldColumnIndex,\r\n oldRowIndex = _ref.oldRowIndex,\r\n columnIndex = _ref.columnIndex,\r\n rowIndex = _ref.rowIndex;\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var items = this._dataController.items();\r\n var item = items[rowIndex];\r\n var oldColumn;\r\n if ((0, _type.isDefined)(oldColumnIndex)) {\r\n oldColumn = visibleColumns[oldColumnIndex]\r\n } else {\r\n oldColumn = this._getEditColumn()\r\n }\r\n if (!(0, _type.isDefined)(oldRowIndex)) {\r\n oldRowIndex = this._getVisibleEditRowIndex()\r\n }\r\n if ((0, _type.isString)(columnIndex)) {\r\n columnIndex = columnsController.columnOption(columnIndex, \"index\");\r\n columnIndex = columnsController.getVisibleIndex(columnIndex)\r\n }\r\n var column = visibleColumns[columnIndex];\r\n return {\r\n oldColumn: oldColumn,\r\n columnIndex: columnIndex,\r\n oldRowIndex: oldRowIndex,\r\n rowIndex: rowIndex,\r\n column: column,\r\n item: item\r\n }\r\n },\r\n _editCellCore: function(options) {\r\n var _this12 = this;\r\n var dataController = this._dataController;\r\n var isEditByOptionChanged = (0, _type.isDefined)(options.oldColumnIndex) || (0, _type.isDefined)(options.oldRowIndex);\r\n var _this$_getNormalizedE = this._getNormalizedEditCellOptions(options),\r\n columnIndex = _this$_getNormalizedE.columnIndex,\r\n rowIndex = _this$_getNormalizedE.rowIndex,\r\n column = _this$_getNormalizedE.column,\r\n item = _this$_getNormalizedE.item;\r\n var params = {\r\n data: null === item || void 0 === item ? void 0 : item.data,\r\n cancel: false,\r\n column: column\r\n };\r\n if (void 0 === item.key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n if (column && item && (\"data\" === item.rowType || \"detailAdaptive\" === item.rowType) && !item.removed && !_isRowEditMode(this)) {\r\n if (!isEditByOptionChanged && this.isEditCell(rowIndex, columnIndex)) {\r\n return true\r\n }\r\n var editRowIndex = rowIndex + dataController.getRowIndexOffset();\r\n return (0, _deferred.when)(this._beforeEditCell(rowIndex, columnIndex, item)).done(function(cancel) {\r\n if (cancel) {\r\n return\r\n }\r\n if (!_this12._prepareEditCell(params, item, columnIndex, editRowIndex)) {\r\n _this12._processCanceledEditingCell()\r\n }\r\n })\r\n }\r\n return false\r\n },\r\n _processCanceledEditingCell: function() {},\r\n _prepareEditCell: function(params, item, editColumnIndex, editRowIndex) {\r\n if (!item.isNewRow) {\r\n params.key = item.key\r\n }\r\n if (this._isEditingStart(params)) {\r\n return false\r\n }\r\n this._pageIndex = this._dataController.pageIndex();\r\n this._setEditRowKey(item.key);\r\n this._setEditColumnNameByIndex(editColumnIndex);\r\n if (!params.column.showEditorAlways) {\r\n this._addInternalData({\r\n key: item.key,\r\n oldData: item.data\r\n })\r\n }\r\n return true\r\n },\r\n _repaintEditCell: function(column, oldColumn, oldEditRowIndex) {\r\n this._needFocusEditor = true;\r\n if (!column || !column.showEditorAlways || oldColumn && !oldColumn.showEditorAlways) {\r\n this._editCellInProgress = true;\r\n this.getController(\"editorFactory\").loseFocus();\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, this._getVisibleEditRowIndex()]\r\n })\r\n } else {\r\n if (column !== oldColumn) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: []\r\n })\r\n }\r\n }\r\n },\r\n _delayedInputFocus: function($cell, beforeFocusCallback, callBeforeFocusCallbackAlways) {\r\n var that = this;\r\n\r\n function inputFocus() {\r\n if (beforeFocusCallback) {\r\n beforeFocusCallback()\r\n }\r\n if ($cell) {\r\n var $focusableElement = $cell.find(FOCUSABLE_ELEMENT_SELECTOR).first();\r\n _uiGrid_core2.default.focusAndSelectElement(that, $focusableElement)\r\n }\r\n that._beforeFocusCallback = null\r\n }\r\n if (_devices.default.real().ios || _devices.default.real().android) {\r\n inputFocus()\r\n } else {\r\n if (that._beforeFocusCallback) {\r\n that._beforeFocusCallback()\r\n }\r\n clearTimeout(that._inputFocusTimeoutID);\r\n if (callBeforeFocusCallbackAlways) {\r\n that._beforeFocusCallback = beforeFocusCallback\r\n }\r\n that._inputFocusTimeoutID = setTimeout(inputFocus)\r\n }\r\n },\r\n _focusEditingCell: function(beforeFocusCallback, $editCell, callBeforeFocusCallbackAlways) {\r\n var that = this;\r\n var rowsView = that.getView(\"rowsView\");\r\n var editColumnIndex = this._getVisibleEditColumnIndex();\r\n $editCell = $editCell || rowsView && rowsView._getCellElement(that._getVisibleEditRowIndex(), editColumnIndex);\r\n that._delayedInputFocus($editCell, beforeFocusCallback, callBeforeFocusCallbackAlways)\r\n },\r\n deleteRow: function(rowIndex) {\r\n var _this13 = this;\r\n if (\"cell\" === this.option(\"editing.mode\") && this.isEditing()) {\r\n var isNewRow = this._dataController.items()[rowIndex].isNewRow;\r\n var rowKey = this._dataController.getKeyByRowIndex(rowIndex);\r\n this.closeEditCell(null, isNewRow).always(function() {\r\n rowIndex = _this13._dataController.getRowIndexByKey(rowKey);\r\n _this13._checkAndDeleteRow(rowIndex)\r\n })\r\n } else {\r\n this._checkAndDeleteRow(rowIndex)\r\n }\r\n },\r\n _checkAndDeleteRow: function(rowIndex) {\r\n var that = this;\r\n var editingOptions = that.option(\"editing\");\r\n var editingTexts = editingOptions && editingOptions.texts;\r\n var isBatchMode = editingOptions && editingOptions.mode === EDIT_MODE_BATCH;\r\n var confirmDelete = editingOptions && editingOptions.confirmDelete;\r\n var confirmDeleteMessage = editingTexts && editingTexts.confirmDeleteMessage;\r\n var item = that._dataController.items()[rowIndex];\r\n var allowDeleting = isBatchMode || !that.isEditing() || item.isNewRow;\r\n if (item && allowDeleting) {\r\n if (isBatchMode || !confirmDelete || !confirmDeleteMessage) {\r\n that._deleteRowCore(rowIndex)\r\n } else {\r\n var confirmDeleteTitle = editingTexts && editingTexts.confirmDeleteTitle;\r\n var showDialogTitle = (0, _type.isDefined)(confirmDeleteTitle) && confirmDeleteTitle.length > 0;\r\n (0, _dialog.confirm)(confirmDeleteMessage, confirmDeleteTitle, showDialogTitle).done(function(confirmResult) {\r\n if (confirmResult) {\r\n that._deleteRowCore(rowIndex)\r\n }\r\n })\r\n }\r\n }\r\n },\r\n _deleteRowCore: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var key = item && item.key;\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n var isBatchMode = this.option(\"editing.mode\") === EDIT_MODE_BATCH;\r\n this.refresh();\r\n var changes = this.getChanges();\r\n var editIndex = _uiGrid_core2.default.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n if (changes[editIndex].type === DATA_EDIT_DATA_INSERT_TYPE) {\r\n this._removeChange(editIndex)\r\n } else {\r\n this._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n } else {\r\n this._addChange({\r\n key: key,\r\n oldData: item.data,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n if (isBatchMode) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, rowIndex]\r\n });\r\n return (new _deferred.Deferred).resolve()\r\n }\r\n return this.saveEditData()\r\n },\r\n undeleteRow: function(rowIndex) {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var oldEditRowIndex = that._getVisibleEditRowIndex();\r\n var key = item && item.key;\r\n var changes = this.getChanges();\r\n if (item) {\r\n var editIndex = _uiGrid_core2.default.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n var data = changes[editIndex].data;\r\n if ((0, _type.isEmptyObject)(data)) {\r\n that._removeChange(editIndex)\r\n } else {\r\n that._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n }\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, rowIndex]\r\n })\r\n }\r\n }\r\n },\r\n _fireOnSaving: function() {\r\n var _this14 = this;\r\n var onSavingParams = {\r\n cancel: false,\r\n promise: null,\r\n changes: _toConsumableArray(this.getChanges())\r\n };\r\n this.executeAction(\"onSaving\", onSavingParams);\r\n var d = new _deferred.Deferred;\r\n (0, _deferred.when)((0, _deferred.fromPromise)(onSavingParams.promise)).done(function() {\r\n d.resolve(onSavingParams)\r\n }).fail(function(arg) {\r\n createFailureHandler(d);\r\n _this14._fireDataErrorOccurred(arg);\r\n d.resolve({\r\n cancel: true\r\n })\r\n });\r\n return d\r\n },\r\n _executeEditingAction: function(actionName, params, func) {\r\n if (this.component._disposed) {\r\n return null\r\n }\r\n var deferred = new _deferred.Deferred;\r\n this.executeAction(actionName, params);\r\n (0, _deferred.when)((0, _deferred.fromPromise)(params.cancel)).done(function(cancel) {\r\n if (cancel) {\r\n setTimeout(function() {\r\n deferred.resolve(\"cancel\")\r\n })\r\n } else {\r\n func(params).done(deferred.resolve).fail(createFailureHandler(deferred))\r\n }\r\n }).fail(createFailureHandler(deferred));\r\n return deferred\r\n },\r\n _processChanges: function(deferreds, results, dataChanges, changes) {\r\n var _this15 = this;\r\n var store = this._dataController.store();\r\n (0, _iterator.each)(changes, function(index, change) {\r\n var oldData = _this15._getOldData(change.key);\r\n var data = change.data,\r\n type = change.type;\r\n var changeCopy = _objectSpread({}, change);\r\n var deferred;\r\n var params;\r\n if (_this15._beforeSaveEditData(change, index)) {\r\n return\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n params = {\r\n data: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = _this15._executeEditingAction(\"onRowRemoving\", params, function() {\r\n return store.remove(change.key).done(function(key) {\r\n dataChanges.push({\r\n type: \"remove\",\r\n key: key\r\n })\r\n })\r\n });\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n params = {\r\n data: data,\r\n cancel: false\r\n };\r\n deferred = _this15._executeEditingAction(\"onRowInserting\", params, function() {\r\n return store.insert(params.data).done(function(data, key) {\r\n if ((0, _type.isDefined)(key)) {\r\n changeCopy.key = key\r\n }\r\n if (data && (0, _type.isObject)(data) && data !== params.data) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"insert\",\r\n data: data,\r\n index: 0\r\n })\r\n })\r\n });\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n params = {\r\n newData: data,\r\n oldData: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = _this15._executeEditingAction(\"onRowUpdating\", params, function() {\r\n return store.update(change.key, params.newData).done(function(data, key) {\r\n if (data && (0, _type.isObject)(data) && data !== params.newData) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"update\",\r\n key: key,\r\n data: data\r\n })\r\n })\r\n })\r\n }\r\n changes[index] = changeCopy;\r\n if (deferred) {\r\n var doneDeferred = new _deferred.Deferred;\r\n deferred.always(function(data) {\r\n results.push({\r\n key: change.key,\r\n result: data\r\n })\r\n }).always(doneDeferred.resolve);\r\n deferreds.push(doneDeferred.promise())\r\n }\r\n })\r\n },\r\n _processSaveEditDataResult: function(results) {\r\n var that = this;\r\n var hasSavedData = false;\r\n var editMode = _getEditMode(that);\r\n var changes = _toConsumableArray(this.getChanges());\r\n var changesLength = changes.length;\r\n for (var i = 0; i < results.length; i++) {\r\n var arg = results[i].result;\r\n var cancel = \"cancel\" === arg;\r\n var editIndex = _uiGrid_core2.default.getIndexByKey(results[i].key, changes);\r\n var change = changes[editIndex];\r\n var isError = arg && arg instanceof Error;\r\n if (isError) {\r\n if (change) {\r\n this._addInternalData({\r\n key: change.key,\r\n error: arg\r\n })\r\n }\r\n that._fireDataErrorOccurred(arg);\r\n if (editMode !== EDIT_MODE_BATCH) {\r\n if ((null === change || void 0 === change ? void 0 : change.type) === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n }\r\n break\r\n }\r\n } else {\r\n if (!cancel || !change || editMode !== EDIT_MODE_BATCH && change.type === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n hasSavedData = !cancel\r\n }\r\n }\r\n }\r\n if (changes.length < changesLength) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes)\r\n }\r\n return hasSavedData\r\n },\r\n _fireSaveEditDataEvents: function(changes) {\r\n var that = this;\r\n (0, _iterator.each)(changes, function(_, _ref2) {\r\n var data = _ref2.data,\r\n key = _ref2.key,\r\n type = _ref2.type;\r\n var internalData = that._addInternalData({\r\n key: key\r\n });\r\n var params = {\r\n key: key,\r\n data: data\r\n };\r\n if (internalData.error) {\r\n params.error = internalData.error\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n that.executeAction(\"onRowRemoved\", (0, _extend.extend)({}, params, {\r\n data: internalData.oldData\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n that.executeAction(\"onRowInserted\", params);\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n that.executeAction(\"onRowUpdated\", params)\r\n }\r\n });\r\n this.executeAction(\"onSaved\", {\r\n changes: changes\r\n })\r\n },\r\n saveEditData: function() {\r\n var _this16 = this;\r\n var deferred = new _deferred.Deferred;\r\n this.waitForDeferredOperations().done(function() {\r\n if (_this16.isSaving()) {\r\n _this16._resolveAfterSave(deferred);\r\n return\r\n }(0, _deferred.when)(_this16._beforeSaveEditData()).done(function(cancel) {\r\n if (cancel) {\r\n _this16._resolveAfterSave(deferred, {\r\n cancel: cancel\r\n });\r\n return\r\n }\r\n _this16._saving = true;\r\n _this16._saveEditDataInner().always(function() {\r\n _this16._saving = false\r\n }).done(deferred.resolve).fail(deferred.reject)\r\n }).fail(deferred.reject)\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _resolveAfterSave: function(deferred) {\r\n var _ref3 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\r\n cancel = _ref3.cancel,\r\n error = _ref3.error;\r\n (0, _deferred.when)(this._afterSaveEditData(cancel)).done(function() {\r\n deferred.resolve(error)\r\n }).fail(deferred.reject)\r\n },\r\n _saveEditDataInner: function() {\r\n var _this17 = this;\r\n var results = [];\r\n var deferreds = [];\r\n var dataChanges = [];\r\n var dataController = this._dataController;\r\n var dataSource = dataController.dataSource();\r\n var result = new _deferred.Deferred;\r\n (0, _deferred.when)(this._fireOnSaving()).done(function(_ref4) {\r\n var cancel = _ref4.cancel,\r\n changes = _ref4.changes;\r\n if (cancel) {\r\n return result.resolve().promise()\r\n }\r\n _this17._processChanges(deferreds, results, dataChanges, changes);\r\n if (deferreds.length) {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.beginLoading();\r\n _deferred.when.apply(void 0, deferreds).done(function() {\r\n if (_this17._processSaveEditDataResult(results)) {\r\n _this17._endSaving(dataChanges, changes, result)\r\n } else {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve()\r\n }\r\n }).fail(function(error) {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve(error)\r\n });\r\n return result.always(function() {\r\n _this17._focusEditingCell()\r\n }).promise()\r\n }\r\n _this17._cancelSaving(result)\r\n }).fail(result.reject);\r\n return result.promise()\r\n },\r\n _resetModifiedClassCells: function(changes) {\r\n var _this18 = this;\r\n var editMode = _getEditMode(this);\r\n if (editMode === EDIT_MODE_BATCH) {\r\n var columnsCount = this._columnsController.getVisibleColumns().length;\r\n changes.forEach(function(_ref5) {\r\n var key = _ref5.key;\r\n var rowIndex = _this18._dataController.getRowIndexByKey(key);\r\n if (rowIndex !== -1) {\r\n for (var columnIndex = 0; columnIndex < columnsCount; columnIndex++) {\r\n _this18._rowsView._getCellElement(rowIndex, columnIndex).removeClass(CELL_MODIFIED)\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _endSaving: function(dataChanges, changes, deferred) {\r\n var _changes$;\r\n var editMode = _getEditMode(this);\r\n var dataSource = this._dataController.dataSource();\r\n if (editMode !== EDIT_MODE_CELL) {\r\n this._resetModifiedClassCells(changes);\r\n this._resetEditIndices()\r\n } else {\r\n if (\"update\" !== (null === (_changes$ = changes[0]) || void 0 === _changes$ ? void 0 : _changes$.type)) {\r\n this._resetEditIndices()\r\n }\r\n }\r\n if (editMode === EDIT_MODE_POPUP && this._editPopup) {\r\n this._editPopup.hide()\r\n }\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n this._refreshDataAfterSave(dataChanges, changes, deferred)\r\n },\r\n _cancelSaving: function(result) {\r\n var editMode = _getEditMode(this);\r\n var dataController = this._dataController;\r\n if (_isRowEditMode(this)) {\r\n if (!this.hasChanges()) {\r\n this._cancelEditDataCore()\r\n }\r\n } else {\r\n if (this.isCellOrBatchEditMode()) {\r\n if (editMode !== EDIT_MODE_CELL) {\r\n this._resetEditIndices()\r\n }\r\n dataController.updateItems()\r\n } else {\r\n this._focusEditingCell()\r\n }\r\n }\r\n this.executeAction(\"onSaved\", {\r\n changes: []\r\n });\r\n this._resolveAfterSave(result)\r\n },\r\n _refreshDataAfterSave: function(dataChanges, changes, deferred) {\r\n var _this19 = this;\r\n var dataController = this._dataController;\r\n var refreshMode = this.option(\"editing.refreshMode\");\r\n var isFullRefresh = \"reshape\" !== refreshMode && \"repaint\" !== refreshMode;\r\n if (!isFullRefresh) {\r\n dataController.push(dataChanges)\r\n }(0, _deferred.when)(dataController.refresh({\r\n selection: isFullRefresh,\r\n reload: isFullRefresh,\r\n load: \"reshape\" === refreshMode,\r\n changesOnly: this.option(\"repaintChangesOnly\")\r\n })).always(function() {\r\n _this19._fireSaveEditDataEvents(changes)\r\n }).done(function() {\r\n _this19._resolveAfterSave(deferred)\r\n }).fail(function(error) {\r\n _this19._resolveAfterSave(deferred, {\r\n error: error\r\n })\r\n })\r\n },\r\n isSaving: function() {\r\n return this._saving\r\n },\r\n _updateEditColumn: function() {\r\n var that = this;\r\n var isEditColumnVisible = that._isEditColumnVisible();\r\n var useIcons = that.option(\"editing.useIcons\");\r\n var cssClass = COMMAND_EDIT_CLASS + (useIcons ? \" \" + COMMAND_EDIT_WITH_ICONS_CLASS : \"\");\r\n that._columnsController.addCommandColumn({\r\n type: \"buttons\",\r\n command: \"edit\",\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass,\r\n width: \"auto\",\r\n alignment: \"center\",\r\n cellTemplate: that._getEditCommandCellTemplate(),\r\n fixedPosition: \"right\"\r\n });\r\n that._columnsController.columnOption(\"command:edit\", {\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass\r\n })\r\n },\r\n _isEditColumnVisible: function() {\r\n var that = this;\r\n var editingOptions = that.option(\"editing\");\r\n if (editingOptions) {\r\n var editMode = _getEditMode(that);\r\n var isVisibleWithCurrentEditMode = false;\r\n switch (editMode) {\r\n case EDIT_MODE_ROW:\r\n isVisibleWithCurrentEditMode = editingOptions.allowUpdating || editingOptions.allowAdding;\r\n break;\r\n case EDIT_MODE_FORM:\r\n case EDIT_MODE_POPUP:\r\n isVisibleWithCurrentEditMode = editingOptions.allowUpdating\r\n }\r\n return editingOptions.allowDeleting || isVisibleWithCurrentEditMode\r\n }\r\n },\r\n _updateEditButtons: function() {\r\n var that = this;\r\n var headerPanel = that.getView(\"headerPanel\");\r\n var hasChanges = that.hasChanges();\r\n if (headerPanel) {\r\n headerPanel.setToolbarItemDisabled(\"saveButton\", !hasChanges);\r\n headerPanel.setToolbarItemDisabled(\"revertButton\", !hasChanges)\r\n }\r\n },\r\n _applyModified: function($element) {\r\n $element && $element.addClass(CELL_MODIFIED)\r\n },\r\n _beforeCloseEditCellInBatchMode: function() {},\r\n cancelEditData: function() {\r\n var changes = this.getChanges();\r\n var params = {\r\n cancel: false,\r\n changes: changes\r\n };\r\n this.executeAction(\"onEditCanceling\", params);\r\n if (!params.cancel) {\r\n this._cancelEditDataCore();\r\n this.executeAction(\"onEditCanceled\", {\r\n changes: changes\r\n })\r\n }\r\n },\r\n _cancelEditDataCore: function() {\r\n var editMode = _getEditMode(this);\r\n var rowIndex = this._getVisibleEditRowIndex();\r\n var dataController = this._dataController;\r\n this._beforeCancelEditData();\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey();\r\n if (ROW_BASED_MODES.indexOf(editMode) !== -1 && rowIndex >= 0) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [rowIndex, rowIndex + 1]\r\n })\r\n } else {\r\n dataController.updateItems({\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\")\r\n })\r\n }\r\n if (editMode === EDIT_MODE_POPUP) {\r\n this._hideEditPopup()\r\n }\r\n },\r\n _hideEditPopup: function() {\r\n this._editPopup && this._editPopup.option(\"visible\", false)\r\n },\r\n hasEditData: function() {\r\n return this.hasChanges()\r\n },\r\n closeEditCell: function(isError, withoutSaveEditData) {\r\n var _this20 = this;\r\n var that = this;\r\n var result = (0, _deferred.when)();\r\n var oldEditRowIndex = that._getVisibleEditRowIndex();\r\n if (!_isRowEditMode(that)) {\r\n var deferred = new _deferred.Deferred;\r\n result = new _deferred.Deferred;\r\n this.executeOperation(deferred, function() {\r\n _this20._closeEditCellCore(isError, oldEditRowIndex, withoutSaveEditData).always(result.resolve)\r\n })\r\n }\r\n return result.promise()\r\n },\r\n _closeEditCellCore: function(isError, oldEditRowIndex, withoutSaveEditData) {\r\n var _this21 = this;\r\n var editMode = _getEditMode(this);\r\n var dataController = this._dataController;\r\n var deferred = new _deferred.Deferred;\r\n var promise = deferred.promise();\r\n if (editMode === EDIT_MODE_CELL && this.hasChanges()) {\r\n if (!withoutSaveEditData) {\r\n this.saveEditData().done(function(error) {\r\n if (!_this21.hasChanges()) {\r\n _this21.closeEditCell(!!error).always(deferred.resolve);\r\n return\r\n }\r\n deferred.resolve()\r\n });\r\n return promise\r\n }\r\n } else {\r\n if (oldEditRowIndex >= 0) {\r\n var rowIndices = [oldEditRowIndex];\r\n this._resetEditRowKey();\r\n this._resetEditColumnName();\r\n this._beforeCloseEditCellInBatchMode(rowIndices);\r\n if (!isError) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndices\r\n })\r\n }\r\n }\r\n }\r\n deferred.resolve();\r\n return promise\r\n },\r\n update: function(changeType) {\r\n var that = this;\r\n var dataController = that._dataController;\r\n if (dataController && that._pageIndex !== dataController.pageIndex()) {\r\n if (\"refresh\" === changeType) {\r\n that.refresh(true)\r\n }\r\n that._pageIndex = dataController.pageIndex()\r\n }\r\n that._updateEditButtons()\r\n },\r\n _getRowIndicesForCascadeUpdating: function(row, skipCurrentRow) {\r\n return skipCurrentRow ? [] : [row.rowIndex]\r\n },\r\n addDeferred: function(deferred) {\r\n var _this22 = this;\r\n if (this._deferreds.indexOf(deferred) < 0) {\r\n this._deferreds.push(deferred);\r\n deferred.always(function() {\r\n var index = _this22._deferreds.indexOf(deferred);\r\n if (index >= 0) {\r\n _this22._deferreds.splice(index, 1)\r\n }\r\n })\r\n }\r\n },\r\n _prepareChange: function(options, value, text) {\r\n var _options$row;\r\n var that = this;\r\n var newData = {};\r\n var oldData = null === (_options$row = options.row) || void 0 === _options$row ? void 0 : _options$row.data;\r\n var rowKey = options.key;\r\n var $cellElement = (0, _renderer.default)(options.cellElement);\r\n var editMode = _getEditMode(that);\r\n var deferred = new _deferred.Deferred;\r\n if (void 0 !== rowKey) {\r\n if (editMode === EDIT_MODE_BATCH) {\r\n that._applyModified($cellElement, options)\r\n }\r\n options.value = value;\r\n var setCellValueResult = (0, _deferred.fromPromise)(options.column.setCellValue(newData, value, (0, _extend.extend)(true, {}, oldData), text));\r\n setCellValueResult.done(function() {\r\n deferred.resolve({\r\n data: newData,\r\n key: rowKey,\r\n oldData: oldData,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n }).fail(createFailureHandler(deferred)).fail(function(arg) {\r\n return that._fireDataErrorOccurred(arg)\r\n });\r\n if ((0, _type.isDefined)(text) && options.column.displayValueMap) {\r\n options.column.displayValueMap[value] = text\r\n }\r\n that._updateRowValues(options);\r\n that.addDeferred(deferred)\r\n }\r\n return deferred\r\n },\r\n _updateRowValues: function(options) {\r\n if (options.values) {\r\n var dataController = this._dataController;\r\n var rowIndex = dataController.getRowIndexByKey(options.key);\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n if (row) {\r\n options.values = row.values\r\n }\r\n options.values[options.columnIndex] = options.value\r\n }\r\n },\r\n updateFieldValue: function(options, value, text, forceUpdateRow) {\r\n var _this23 = this;\r\n var rowKey = options.key;\r\n var deferred = new _deferred.Deferred;\r\n if (void 0 === rowKey) {\r\n this._dataController.fireError(\"E1043\")\r\n }\r\n if (options.column.setCellValue) {\r\n this._prepareChange(options, value, text).done(function(params) {\r\n (0, _deferred.when)(_this23._applyChange(options, params, forceUpdateRow)).always(function() {\r\n deferred.resolve()\r\n })\r\n })\r\n } else {\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n },\r\n _focusPreviousEditingCellIfNeed: function(options) {\r\n var that = this;\r\n if (that.hasEditData() && !that.isEditCell(options.rowIndex, options.columnIndex)) {\r\n that._focusEditingCell();\r\n that._updateEditRow(options.row, true);\r\n return true\r\n }\r\n },\r\n _needUpdateRow: function(column) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (!column) {\r\n column = this._getEditColumn()\r\n }\r\n var isCustomSetCellValue = column && column.setCellValue !== column.defaultSetCellValue;\r\n var isCustomCalculateCellValue = visibleColumns.some(function(visibleColumn) {\r\n return visibleColumn.calculateCellValue !== visibleColumn.defaultCalculateCellValue\r\n });\r\n return isCustomSetCellValue || isCustomCalculateCellValue\r\n },\r\n _applyChange: function(options, params, forceUpdateRow) {\r\n var that = this;\r\n var editMode = _getEditMode(that);\r\n var isCustomSetCellValue = options.column.setCellValue !== options.column.defaultSetCellValue;\r\n var showEditorAlways = options.column.showEditorAlways;\r\n var isUpdateInCellMode = editMode === EDIT_MODE_CELL && options.row && !options.row.isNewRow;\r\n var focusPreviousEditingCell = showEditorAlways && !forceUpdateRow && isUpdateInCellMode && that.hasEditData() && !that.isEditCell(options.rowIndex, options.columnIndex);\r\n if (focusPreviousEditingCell) {\r\n that._focusEditingCell();\r\n that._updateEditRow(options.row, true, isCustomSetCellValue);\r\n return\r\n }\r\n that._addChange(params, options.row);\r\n that._updateEditButtons();\r\n if (showEditorAlways && !forceUpdateRow) {\r\n if (isUpdateInCellMode) {\r\n that._setEditRowKey(options.row.key, true);\r\n that._setEditColumnNameByIndex(options.columnIndex, true);\r\n return that.saveEditData()\r\n } else {\r\n if (editMode === EDIT_MODE_BATCH) {\r\n forceUpdateRow = that._needUpdateRow(options.column)\r\n }\r\n }\r\n }\r\n var row = options.row;\r\n if (row) {\r\n if (forceUpdateRow || isCustomSetCellValue) {\r\n that._updateEditRow(row, forceUpdateRow, isCustomSetCellValue)\r\n } else {\r\n if (row.update) {\r\n row.update()\r\n }\r\n }\r\n }\r\n },\r\n _updateEditRowCore: function(row, skipCurrentRow, isCustomSetCellValue) {\r\n var that = this;\r\n var editForm = that._editForm;\r\n var editMode = _getEditMode(that);\r\n if (editMode === EDIT_MODE_POPUP) {\r\n if (that.option(\"repaintChangesOnly\")) {\r\n row.update && row.update(row)\r\n } else {\r\n if (editForm) {\r\n that._updateEditFormDeferred = (new _deferred.Deferred).done(function() {\r\n return editForm.repaint()\r\n });\r\n if (!that._updateLockCount) {\r\n that._updateEditFormDeferred.resolve()\r\n }\r\n }\r\n }\r\n } else {\r\n that._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: that._getRowIndicesForCascadeUpdating(row, skipCurrentRow)\r\n })\r\n }\r\n },\r\n _endUpdateCore: function() {\r\n this._updateEditFormDeferred && this._updateEditFormDeferred.resolve()\r\n },\r\n _updateEditRow: function(row, forceUpdateRow, isCustomSetCellValue) {\r\n var that = this;\r\n if (forceUpdateRow || !_isRowEditMode(that)) {\r\n that._updateEditRowCore(row, !forceUpdateRow, isCustomSetCellValue);\r\n if (!forceUpdateRow) {\r\n that._focusEditingCell()\r\n }\r\n } else {\r\n var deferred = new _deferred.Deferred;\r\n that.addDeferred(deferred);\r\n setTimeout(function() {\r\n var $focusedElement = (0, _renderer.default)(_dom_adapter.default.getActiveElement());\r\n var columnIndex = that._rowsView.getCellIndex($focusedElement, row.rowIndex);\r\n var focusedElement = $focusedElement.get(0);\r\n var selectionRange = _uiGrid_core2.default.getSelectionRange(focusedElement);\r\n that._updateEditRowCore(row, false, isCustomSetCellValue);\r\n if (columnIndex >= 0) {\r\n var $focusedItem = that._rowsView._getCellElement(row.rowIndex, columnIndex);\r\n that._delayedInputFocus($focusedItem, function() {\r\n setTimeout(function() {\r\n focusedElement = _dom_adapter.default.getActiveElement();\r\n if (selectionRange.selectionStart >= 0) {\r\n _uiGrid_core2.default.setSelectionRange(focusedElement, selectionRange)\r\n }\r\n })\r\n })\r\n }\r\n deferred.resolve()\r\n })\r\n }\r\n },\r\n _addChange: function(options, row) {\r\n var changes = _toConsumableArray(this.getChanges());\r\n var index = _uiGrid_core2.default.getIndexByKey(options.key, changes);\r\n if (index < 0) {\r\n index = changes.length;\r\n this._addInternalData({\r\n key: options.key,\r\n oldData: options.oldData\r\n });\r\n delete options.oldData;\r\n changes.push(options)\r\n }\r\n var change = _objectSpread({}, changes[index]);\r\n if (change) {\r\n if (options.data) {\r\n change.data = (0, _array_utils.createObjectWithChanges)(change.data, options.data)\r\n }\r\n if ((!change.type || !options.data) && options.type) {\r\n change.type = options.type\r\n }\r\n if (row) {\r\n row.oldData = this._getOldData(row.key);\r\n row.data = (0, _array_utils.createObjectWithChanges)(row.data, options.data)\r\n }\r\n }\r\n changes[index] = change;\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n return index\r\n },\r\n _getFormEditItemTemplate: function(cellOptions, column) {\r\n return column.editCellTemplate || getDefaultEditorTemplate(this)\r\n },\r\n renderFormEditTemplate: function(detailCellOptions, item, form, container, isReadOnly) {\r\n var that = this;\r\n var $container = (0, _renderer.default)(container);\r\n var column = item.column;\r\n var editorType = getEditorType(item);\r\n var rowData = null === detailCellOptions || void 0 === detailCellOptions ? void 0 : detailCellOptions.row.data;\r\n var cellOptions = (0, _extend.extend)({}, detailCellOptions, {\r\n data: rowData,\r\n cellElement: null,\r\n isOnForm: true,\r\n item: item,\r\n column: (0, _extend.extend)({}, column, {\r\n editorType: editorType,\r\n editorOptions: item.editorOptions\r\n }),\r\n id: form.getItemID(item.name || item.dataField),\r\n columnIndex: column.index,\r\n setValue: !isReadOnly && column.allowEditing && function(value) {\r\n that.updateFieldValue(cellOptions, value)\r\n }\r\n });\r\n cellOptions.value = column.calculateCellValue(rowData);\r\n var template = that._getFormEditItemTemplate.bind(that)(cellOptions, column);\r\n that._rowsView.renderTemplate($container, template, cellOptions, !!$container.closest((0, _window.getWindow)().document).length).done(function() {\r\n that._rowsView._updateCell($container, cellOptions)\r\n });\r\n return cellOptions\r\n },\r\n getFormEditorTemplate: function(cellOptions, item) {\r\n var that = this;\r\n var column = this.component.columnOption(item.dataField);\r\n return function(options, container) {\r\n var $container = (0, _renderer.default)(container);\r\n cellOptions.row.watch && cellOptions.row.watch(function() {\r\n return column.selector(cellOptions.row.data)\r\n }, function() {\r\n var _validator;\r\n var $editorElement = $container.find(\".dx-widget\").first();\r\n var validator = $editorElement.data(\"dxValidator\");\r\n var validatorOptions = null === (_validator = validator) || void 0 === _validator ? void 0 : _validator.option();\r\n $container.contents().remove();\r\n cellOptions = that.renderFormEditTemplate.bind(that)(cellOptions, item, options.component, $container);\r\n $editorElement = $container.find(\".dx-widget\").first();\r\n validator = $editorElement.data(\"dxValidator\");\r\n if (validatorOptions && !validator) {\r\n $editorElement.dxValidator({\r\n validationRules: validatorOptions.validationRules,\r\n validationGroup: validatorOptions.validationGroup,\r\n dataGetter: validatorOptions.dataGetter\r\n })\r\n }\r\n });\r\n cellOptions = that.renderFormEditTemplate.bind(that)(cellOptions, item, options.component, $container)\r\n }\r\n },\r\n getEditFormOptions: function(detailOptions) {\r\n var userCustomizeItem = this.option(\"editing.form.customizeItem\");\r\n var editFormItemClass = this.addWidgetPrefix(EDIT_FORM_ITEM_CLASS);\r\n var items = this.option(\"editing.form.items\");\r\n var isCustomEditorType = {};\r\n var that = this;\r\n if (!items) {\r\n var columns = this.getController(\"columns\").getColumns();\r\n items = [];\r\n (0, _iterator.each)(columns, function(_, column) {\r\n if (!column.isBand && !column.type) {\r\n items.push({\r\n column: column,\r\n name: column.name,\r\n dataField: column.dataField\r\n })\r\n }\r\n })\r\n } else {\r\n forEachFormItems(items, function(item) {\r\n var itemId = (null === item || void 0 === item ? void 0 : item.name) || (null === item || void 0 === item ? void 0 : item.dataField);\r\n if (itemId) {\r\n isCustomEditorType[itemId] = !!item.editorType\r\n }\r\n })\r\n }\r\n return {\r\n items: items,\r\n formID: \"dx-\" + new _guid.default,\r\n customizeItem: function(item) {\r\n var column;\r\n var itemId = item.name || item.dataField;\r\n if (item.column || itemId) {\r\n column = item.column || that._columnsController.columnOption(item.name ? \"name:\" + item.name : \"dataField:\" + item.dataField)\r\n }\r\n if (column) {\r\n item.label = item.label || {};\r\n item.label.text = item.label.text || column.caption;\r\n item.template = item.template || that.getFormEditorTemplate(detailOptions, item);\r\n item.column = column;\r\n item.isCustomEditorType = isCustomEditorType[itemId];\r\n if (column.formItem) {\r\n (0, _extend.extend)(item, column.formItem)\r\n }\r\n if (void 0 === item.isRequired && column.validationRules) {\r\n item.isRequired = column.validationRules.some(function(rule) {\r\n return \"required\" === rule.type\r\n });\r\n item.validationRules = []\r\n }\r\n var itemVisible = (0, _type.isDefined)(item.visible) ? item.visible : true;\r\n if (!that._firstFormItem && itemVisible) {\r\n that._firstFormItem = item\r\n }\r\n }\r\n userCustomizeItem && userCustomizeItem.call(this, item);\r\n item.cssClass = (0, _type.isString)(item.cssClass) ? item.cssClass + \" \" + editFormItemClass : editFormItemClass\r\n }\r\n }\r\n },\r\n getEditFormTemplate: function() {\r\n var that = this;\r\n return function($container, detailOptions, renderFormOnly) {\r\n var editFormOptions = that.option(\"editing.form\");\r\n var baseEditFormOptions = that.getEditFormOptions(detailOptions);\r\n that._firstFormItem = void 0;\r\n that._editForm = that._createComponent((0, _renderer.default)(\"
\").appendTo($container), _form.default, (0, _extend.extend)({}, editFormOptions, baseEditFormOptions));\r\n if (!renderFormOnly) {\r\n var $buttonsContainer = (0, _renderer.default)(\"
\").addClass(that.addWidgetPrefix(FORM_BUTTONS_CONTAINER_CLASS)).appendTo($container);\r\n that._createComponent((0, _renderer.default)(\"
\").appendTo($buttonsContainer), _button.default, that._getSaveButtonConfig());\r\n that._createComponent((0, _renderer.default)(\"
\").appendTo($buttonsContainer), _button.default, that._getCancelButtonConfig())\r\n }\r\n that._editForm.on(\"contentReady\", function() {\r\n that._editPopup && that._editPopup.repaint()\r\n })\r\n }\r\n },\r\n getColumnTemplate: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var rowIndex = options.row && options.row.rowIndex;\r\n var template;\r\n var isRowMode = _isRowEditMode(that);\r\n var isRowEditing = that.isEditRow(rowIndex);\r\n var isCellEditing = that.isEditCell(rowIndex, options.columnIndex);\r\n var editingStartOptions;\r\n if ((column.showEditorAlways || column.setCellValue && (isRowEditing && column.allowEditing || isCellEditing)) && (\"data\" === options.rowType || \"detailAdaptive\" === options.rowType) && !column.command) {\r\n var allowUpdating = that.allowUpdating(options);\r\n if (((allowUpdating || isRowEditing) && column.allowEditing || isCellEditing) && (isRowMode && isRowEditing || !isRowMode)) {\r\n if (column.showEditorAlways && !isRowMode) {\r\n editingStartOptions = {\r\n cancel: false,\r\n key: options.row.isNewRow ? void 0 : options.row.key,\r\n data: options.row.data,\r\n column: column\r\n };\r\n that._isEditingStart(editingStartOptions)\r\n }\r\n if (!editingStartOptions || !editingStartOptions.cancel) {\r\n options.setValue = function(value, text) {\r\n that.updateFieldValue(options, value, text)\r\n }\r\n }\r\n }\r\n template = column.editCellTemplate || getDefaultEditorTemplate(that)\r\n } else {\r\n if (\"detail\" === column.command && \"detail\" === options.rowType && isRowEditing) {\r\n template = that.getEditFormTemplate(options)\r\n }\r\n }\r\n return template\r\n },\r\n _createButton: function($container, button, options) {\r\n var that = this;\r\n var icon = EDIT_ICON_CLASS[button.name];\r\n var useIcons = that.option(\"editing.useIcons\");\r\n var $button = (0, _renderer.default)(\"\").attr(\"href\", \"#\").addClass(LINK_CLASS).addClass(button.cssClass);\r\n if (button.template) {\r\n that._rowsView.renderTemplate($container, button.template, options, true)\r\n } else {\r\n if (useIcons && icon || button.icon) {\r\n icon = button.icon || icon;\r\n var iconType = iconUtils.getImageSourceType(icon);\r\n if (\"image\" === iconType || \"svg\" === iconType) {\r\n $button = iconUtils.getImageContainer(icon).addClass(button.cssClass)\r\n } else {\r\n $button.addClass(\"dx-icon\" + (\"dxIcon\" === iconType ? \"-\" : \" \") + icon).attr(\"title\", button.text)\r\n }\r\n $button.addClass(\"dx-link-icon\");\r\n $container.addClass(COMMAND_EDIT_WITH_ICONS_CLASS);\r\n var localizationName = this.getButtonLocalizationNames()[button.name];\r\n localizationName && $button.attr(\"aria-label\", _message.default.format(localizationName))\r\n } else {\r\n $button.text(button.text)\r\n }\r\n if ((0, _type.isDefined)(button.hint)) {\r\n $button.attr(\"title\", button.hint)\r\n }\r\n _events_engine.default.on($button, (0, _index.addNamespace)(\"click\", EDITING_NAMESPACE), that.createAction(function(e) {\r\n button.onClick.call(button, (0, _extend.extend)({}, e, {\r\n row: options.row,\r\n column: options.column\r\n }));\r\n e.event.preventDefault();\r\n e.event.stopPropagation()\r\n }));\r\n $container.append($button, \" \")\r\n }\r\n },\r\n getButtonLocalizationNames: function() {\r\n return {\r\n edit: \"dxDataGrid-editingEditRow\",\r\n save: \"dxDataGrid-editingSaveRowChanges\",\r\n \"delete\": \"dxDataGrid-editingDeleteRow\",\r\n undelete: \"dxDataGrid-editingUndeleteRow\",\r\n cancel: \"dxDataGrid-editingCancelRowChanges\"\r\n }\r\n },\r\n prepareEditButtons: function(headerPanel) {\r\n var that = this;\r\n var editingOptions = that.option(\"editing\") || {};\r\n var editingTexts = that.option(\"editing.texts\") || {};\r\n var titleButtonTextByClassNames = {\r\n revert: editingTexts.cancelAllChanges,\r\n save: editingTexts.saveAllChanges,\r\n addRow: editingTexts.addRow\r\n };\r\n var classNameButtonByNames = {\r\n revert: \"cancel\",\r\n save: \"save\",\r\n addRow: \"addrow\"\r\n };\r\n var buttonItems = [];\r\n var prepareButtonItem = function(name, methodName, sortIndex) {\r\n var className = classNameButtonByNames[name];\r\n var onInitialized = function(e) {\r\n (0, _renderer.default)(e.element).addClass(headerPanel._getToolbarButtonClass(EDIT_BUTTON_CLASS + \" \" + that.addWidgetPrefix(className) + \"-button\"))\r\n };\r\n var hintText = titleButtonTextByClassNames[name];\r\n var isButtonDisabled = (\"save\" === className || \"cancel\" === className) && !that.hasChanges();\r\n return {\r\n widget: \"dxButton\",\r\n options: {\r\n onInitialized: onInitialized,\r\n icon: \"edit-button-\" + className,\r\n disabled: isButtonDisabled,\r\n onClick: function() {\r\n setTimeout(function() {\r\n that[methodName]()\r\n })\r\n },\r\n text: hintText,\r\n hint: hintText\r\n },\r\n showText: \"inMenu\",\r\n name: name + \"Button\",\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: sortIndex\r\n }\r\n };\r\n if (editingOptions.allowAdding) {\r\n buttonItems.push(prepareButtonItem(\"addRow\", \"addRow\", 20))\r\n }\r\n if ((editingOptions.allowUpdating || editingOptions.allowAdding || editingOptions.allowDeleting) && _getEditMode(that) === EDIT_MODE_BATCH) {\r\n buttonItems.push(prepareButtonItem(\"save\", \"saveEditData\", 21));\r\n buttonItems.push(prepareButtonItem(\"revert\", \"cancelEditData\", 22))\r\n }\r\n return buttonItems\r\n },\r\n highlightDataCell: function($cell, parameters) {\r\n var cellModified = this.isCellModified(parameters);\r\n cellModified && parameters.column.setCellValue && $cell.addClass(CELL_MODIFIED)\r\n },\r\n _afterInsertRow: function() {},\r\n _beforeSaveEditData: function(change) {\r\n if (change && !(0, _type.isDefined)(change.key) && (0, _type.isDefined)(change.type)) {\r\n return true\r\n }\r\n },\r\n _afterSaveEditData: function() {},\r\n _beforeCancelEditData: function() {},\r\n _allowEditAction: function(actionName, options) {\r\n var allowEditAction = this.option(\"editing.\" + actionName);\r\n if ((0, _type.isFunction)(allowEditAction)) {\r\n allowEditAction = allowEditAction({\r\n component: this.component,\r\n row: options.row\r\n })\r\n }\r\n return allowEditAction\r\n },\r\n allowUpdating: function(options, eventName) {\r\n var startEditAction = this.option(\"editing.startEditAction\") || DEFAULT_START_EDIT_ACTION;\r\n var needCallback = arguments.length > 1 ? startEditAction === eventName || \"down\" === eventName : true;\r\n return needCallback && this._allowEditAction(\"allowUpdating\", options)\r\n },\r\n allowDeleting: function(options) {\r\n return this._allowEditAction(\"allowDeleting\", options)\r\n },\r\n isCellModified: function(parameters) {\r\n var columnIndex = parameters.columnIndex;\r\n var modifiedValues = parameters.row && (parameters.row.isNewRow ? parameters.row.values : parameters.row.modifiedValues);\r\n return !!modifiedValues && void 0 !== modifiedValues[columnIndex]\r\n }\r\n }\r\n}());\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n editing: {\r\n mode: \"row\",\r\n refreshMode: \"full\",\r\n allowAdding: false,\r\n allowUpdating: false,\r\n allowDeleting: false,\r\n useIcons: false,\r\n selectTextOnEditStart: false,\r\n confirmDelete: true,\r\n texts: {\r\n editRow: _message.default.format(\"dxDataGrid-editingEditRow\"),\r\n saveAllChanges: _message.default.format(\"dxDataGrid-editingSaveAllChanges\"),\r\n saveRowChanges: _message.default.format(\"dxDataGrid-editingSaveRowChanges\"),\r\n cancelAllChanges: _message.default.format(\"dxDataGrid-editingCancelAllChanges\"),\r\n cancelRowChanges: _message.default.format(\"dxDataGrid-editingCancelRowChanges\"),\r\n addRow: _message.default.format(\"dxDataGrid-editingAddRow\"),\r\n deleteRow: _message.default.format(\"dxDataGrid-editingDeleteRow\"),\r\n undeleteRow: _message.default.format(\"dxDataGrid-editingUndeleteRow\"),\r\n confirmDeleteMessage: _message.default.format(\"dxDataGrid-editingConfirmDeleteMessage\"),\r\n confirmDeleteTitle: \"\"\r\n },\r\n form: {\r\n colCount: 2\r\n },\r\n popup: {},\r\n startEditAction: \"click\",\r\n editRowKey: null,\r\n editColumnName: null,\r\n changes: []\r\n }\r\n }\r\n },\r\n controllers: {\r\n editing: EditingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n this._editingController = this.getController(\"editing\");\r\n this.callBase()\r\n },\r\n reload: function(full, repaintChangesOnly) {\r\n !repaintChangesOnly && this._editingController.refresh();\r\n return this.callBase.apply(this, arguments)\r\n },\r\n repaintRows: function() {\r\n if (this.getController(\"editing\").isSaving()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateEditRow: function(items) {\r\n var editingController = this._editingController;\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var editRowIndex = _uiGrid_core2.default.getIndexByKey(editRowKey, items);\r\n var editItem = items[editRowIndex];\r\n if (editItem) {\r\n editItem.isEditing = true;\r\n if (editingController.getEditMode() === EDIT_MODE_FORM) {\r\n editItem.rowType = \"detail\"\r\n }\r\n }\r\n },\r\n _updateItemsCore: function(change) {\r\n this.callBase(change);\r\n this._updateEditRow(this.items())\r\n },\r\n _applyChangeUpdate: function(change) {\r\n this._updateEditRow(change.items);\r\n this.callBase(change)\r\n },\r\n _applyChangesOnly: function(change) {\r\n this._updateEditRow(change.items);\r\n this.callBase(change)\r\n },\r\n _processItems: function(items, change) {\r\n items = this._editingController.processItems(items, change);\r\n return this.callBase(items, change)\r\n },\r\n _processDataItem: function(dataItem, options) {\r\n this._editingController.processDataItem(dataItem, options, this.generateDataValues);\r\n return this.callBase(dataItem, options)\r\n },\r\n _processItem: function(item, options) {\r\n item = this.callBase(item, options);\r\n if (item.isNewRow) {\r\n options.dataIndex--;\r\n delete item.dataIndex\r\n }\r\n return item\r\n },\r\n _getChangedColumnIndices: function(oldItem, newItem, rowIndex, isLiveUpdate) {\r\n var editingController = this.getController(\"editing\");\r\n var isRowEditMode = editingController.isRowEditMode();\r\n if (oldItem.isNewRow !== newItem.isNewRow || oldItem.removed !== newItem.removed || isRowEditMode && oldItem.isEditing !== newItem.isEditing) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isCellChanged: function(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n var editingController = this.getController(\"editing\");\r\n var cell = oldRow.cells && oldRow.cells[columnIndex];\r\n var isEditing = editingController && editingController.isEditCell(visibleRowIndex, columnIndex);\r\n if (isLiveUpdate && isEditing) {\r\n return false\r\n }\r\n if (cell && cell.column && !cell.column.showEditorAlways && cell.isEditing !== isEditing) {\r\n return true\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n init: function() {\r\n this.callBase();\r\n this._editingController = this.getController(\"editing\")\r\n },\r\n getCellElements: function(rowIndex) {\r\n var $cellElements = this.callBase(rowIndex);\r\n var editingController = this._editingController;\r\n var editForm = editingController.getEditForm();\r\n var editFormRowIndex = editingController.getEditFormRowIndex();\r\n if (editFormRowIndex === rowIndex && $cellElements && editForm) {\r\n return editForm.$element().find(\".\" + this.addWidgetPrefix(EDIT_FORM_ITEM_CLASS) + \", .\" + BUTTON_CLASS)\r\n }\r\n return $cellElements\r\n },\r\n getCellIndex: function($cell, rowIndex) {\r\n if (!$cell.is(\"td\") && rowIndex >= 0) {\r\n var $cellElements = this.getCellElements(rowIndex);\r\n var cellIndex = -1;\r\n (0, _iterator.each)($cellElements, function(index, cellElement) {\r\n if ((0, _renderer.default)(cellElement).find($cell).length) {\r\n cellIndex = index\r\n }\r\n });\r\n return cellIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getVisibleColumnIndex: function($cells, rowIndex, columnIdentifier) {\r\n var editFormRowIndex = this._editingController.getEditFormRowIndex();\r\n if (editFormRowIndex === rowIndex && (0, _type.isString)(columnIdentifier)) {\r\n var column = this._columnsController.columnOption(columnIdentifier);\r\n return this._getEditFormEditorVisibleIndex($cells, column)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getEditFormEditorVisibleIndex: function($cells, column) {\r\n var visibleIndex = -1;\r\n (0, _iterator.each)($cells, function(index, cellElement) {\r\n var item = (0, _renderer.default)(cellElement).find(\".dx-field-item-content\").data(\"dx-form-item\");\r\n if (item && item.column && column && item.column.index === column.index) {\r\n visibleIndex = index;\r\n return false\r\n }\r\n });\r\n return visibleIndex\r\n },\r\n publicMethods: function() {\r\n return this.callBase().concat([\"cellValue\"])\r\n },\r\n _getCellTemplate: function(options) {\r\n var that = this;\r\n var template = that._editingController.getColumnTemplate(options);\r\n return template || that.callBase(options)\r\n },\r\n _isNativeClick: function() {\r\n return (_devices.default.real().ios || _devices.default.real().android) && this.option(\"editing.allowUpdating\")\r\n },\r\n _createTable: function() {\r\n var that = this;\r\n var $table = that.callBase.apply(that, arguments);\r\n if (!_isRowEditMode(that) && that.option(\"editing.allowUpdating\")) {\r\n _events_engine.default.on($table, (0, _index.addNamespace)(_hold.default.name, \"dxDataGridRowsView\"), \"td:not(.\" + EDITOR_CELL_CLASS + \")\", that.createAction(function() {\r\n var editingController = that._editingController;\r\n if (editingController.isEditing()) {\r\n editingController.closeEditCell()\r\n }\r\n }))\r\n }\r\n return $table\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (row) {\r\n var editingController = this._editingController;\r\n var isEditRow = editingController.isEditRow(row.rowIndex);\r\n var isRowRemoved = !!row.removed;\r\n var isRowInserted = !!row.isNewRow;\r\n var isRowModified = !!row.modified;\r\n if (_getEditMode(this) === EDIT_MODE_BATCH) {\r\n isRowRemoved && $row.addClass(ROW_REMOVED)\r\n } else {\r\n isEditRow && $row.addClass(EDIT_ROW)\r\n }\r\n isRowInserted && $row.addClass(ROW_INSERTED);\r\n isRowModified && $row.addClass(ROW_MODIFIED);\r\n if (isEditRow || isRowInserted || isRowRemoved) {\r\n $row.removeClass(ROW_SELECTED)\r\n }\r\n if (isEditRow && \"detail\" === row.rowType) {\r\n $row.addClass(this.addWidgetPrefix(EDIT_FORM_CLASS))\r\n }\r\n }\r\n return $row\r\n },\r\n _getColumnIndexByElement: function($element) {\r\n var $tableElement = $element.closest(\"table\");\r\n var $tableElements = this.getTableElements();\r\n while ($tableElement.length && !$tableElements.filter($tableElement).length) {\r\n $element = $tableElement.closest(\"td\");\r\n $tableElement = $element.closest(\"table\")\r\n }\r\n return this._getColumnIndexByElementCore($element)\r\n },\r\n _getColumnIndexByElementCore: function($element) {\r\n var $targetElement = $element.closest(\".\" + ROW_CLASS + \"> td:not(.dx-master-detail-cell)\");\r\n return this.getCellIndex($targetElement)\r\n },\r\n _editCellByClick: function(e, eventName) {\r\n var that = this;\r\n var editingController = that._editingController;\r\n var $targetElement = (0, _renderer.default)(e.event.target);\r\n var columnIndex = that._getColumnIndexByElement($targetElement);\r\n var row = that._dataController.items()[e.rowIndex];\r\n var allowUpdating = editingController.allowUpdating({\r\n row: row\r\n }, eventName) || row && row.isNewRow;\r\n var column = that._columnsController.getVisibleColumns()[columnIndex];\r\n var allowEditing = allowUpdating && column && (column.allowEditing || editingController.isEditCell(e.rowIndex, columnIndex));\r\n var startEditAction = that.option(\"editing.startEditAction\") || \"click\";\r\n if (\"down\" === eventName) {\r\n return column && column.showEditorAlways && allowEditing && editingController.editCell(e.rowIndex, columnIndex)\r\n }\r\n if (\"click\" === eventName && \"dblClick\" === startEditAction && !editingController.isEditCell(e.rowIndex, columnIndex)) {\r\n editingController.closeEditCell()\r\n }\r\n if (allowEditing && eventName === startEditAction) {\r\n return editingController.editCell(e.rowIndex, columnIndex) || editingController.isEditRow(e.rowIndex)\r\n }\r\n },\r\n _rowPointerDown: function(e) {\r\n var _this24 = this;\r\n this._pointerDownTimeout = setTimeout(function() {\r\n _this24._editCellByClick(e, \"down\")\r\n })\r\n },\r\n _rowClick: function(e) {\r\n var isEditForm = (0, _renderer.default)(e.rowElement).hasClass(this.addWidgetPrefix(EDIT_FORM_CLASS));\r\n e.event[TARGET_COMPONENT_NAME] = this.component;\r\n if (!this._editCellByClick(e, \"click\") && !isEditForm) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _rowDblClick: function(e) {\r\n if (!this._editCellByClick(e, \"dblClick\")) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _cellPrepared: function($cell, parameters) {\r\n var editingController = this._editingController;\r\n var isCommandCell = !!parameters.column.command;\r\n var isEditableCell = parameters.setValue;\r\n var isEditRow = editingController.isEditRow(parameters.rowIndex);\r\n var isEditing = isEditingCell(isEditRow, parameters);\r\n if (isEditingOrShowEditorAlwaysDataCell(isEditRow, parameters)) {\r\n var alignment = parameters.column.alignment;\r\n $cell.toggleClass(this.addWidgetPrefix(READONLY_CLASS), !isEditableCell).toggleClass(CELL_FOCUS_DISABLED_CLASS, !isEditableCell);\r\n if (alignment) {\r\n $cell.find(EDITORS_INPUT_SELECTOR).first().css(\"textAlign\", alignment)\r\n }\r\n }\r\n if (isEditing) {\r\n this._editCellPrepared($cell)\r\n }\r\n if (parameters.column && !isCommandCell) {\r\n editingController.highlightDataCell($cell, parameters)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _editCellPrepared: function($cell) {},\r\n _formItemPrepared: function() {},\r\n _isFormItem: function(parameters) {\r\n var isDetailRow = \"detail\" === parameters.rowType || \"detailAdaptive\" === parameters.rowType;\r\n var isPopupEditing = \"data\" === parameters.rowType && \"popup\" === _getEditMode(this);\r\n return (isDetailRow || isPopupEditing) && parameters.item\r\n },\r\n _updateCell: function($cell, parameters) {\r\n if (this._isFormItem(parameters)) {\r\n this._formItemPrepared(parameters, $cell)\r\n } else {\r\n this.callBase($cell, parameters)\r\n }\r\n },\r\n _update: function(change) {\r\n this.callBase(change);\r\n if (\"updateSelection\" === change.changeType) {\r\n this.getTableElements().children(\"tbody\").children(\".\" + EDIT_ROW).removeClass(ROW_SELECTED)\r\n }\r\n },\r\n _getCellOptions: function(options) {\r\n var cellOptions = this.callBase(options);\r\n cellOptions.isEditing = this._editingController.isEditCell(cellOptions.rowIndex, cellOptions.columnIndex);\r\n return cellOptions\r\n },\r\n _createCell: function(options) {\r\n var $cell = this.callBase(options);\r\n var isEditRow = this._editingController.isEditRow(options.rowIndex);\r\n isEditingOrShowEditorAlwaysDataCell(isEditRow, options) && $cell.addClass(EDITOR_CELL_CLASS);\r\n return $cell\r\n },\r\n _renderCellContent: function($cell, options) {\r\n if (\"data\" === options.rowType && _getEditMode(this) === EDIT_MODE_POPUP && false === options.row.visible) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n cellValue: function(rowIndex, columnIdentifier, value, text) {\r\n var cellOptions = this.getCellOptions(rowIndex, columnIdentifier);\r\n if (cellOptions) {\r\n if (void 0 === value) {\r\n return cellOptions.value\r\n } else {\r\n this._editingController.updateFieldValue(cellOptions, value, text, true)\r\n }\r\n }\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._pointerDownTimeout)\r\n },\r\n _renderCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this._editingController._focusEditorIfNeed()\r\n }\r\n },\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n var editButtonItems = this.getController(\"editing\").prepareEditButtons(this);\r\n return editButtonItems.concat(items)\r\n },\r\n optionChanged: function(args) {\r\n var fullName = args.fullName;\r\n switch (args.name) {\r\n case \"editing\":\r\n var excludedOptions = [EDITING_POPUP_OPTION_NAME, EDITING_CHANGES_OPTION_NAME, EDITING_EDITCOLUMNNAME_OPTION_NAME, EDITING_EDITROWKEY_OPTION_NAME];\r\n var shouldInvalidate = fullName && !excludedOptions.some(function(optionName) {\r\n return optionName === fullName\r\n });\r\n shouldInvalidate && this._invalidate();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isVisible: function() {\r\n var that = this;\r\n var editingOptions = that.getController(\"editing\").option(\"editing\");\r\n return that.callBase() || editingOptions && (editingOptions.allowAdding || (editingOptions.allowUpdating || editingOptions.allowDeleting) && editingOptions.mode === EDIT_MODE_BATCH)\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar join = uncurryThis([].join);\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return join(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar call = require('../internals/function-call');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n var length = arguments.length;\n return call(\n $fill,\n aTypedArray(this),\n value,\n length > 1 ? arguments[1] : undefined,\n length > 2 ? arguments[2] : undefined\n );\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isIntegralNumber = require('../internals/is-integral-number');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n aTypedArrayConstructor(C);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && !isSymbol(key)\n && key in target\n && isIntegralNumber(+key)\n && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n key = toPropertyKey(key);\n return isTypedArrayIndex(target, key)\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n key = toPropertyKey(key);\n if (isTypedArrayIndex(target, key)\n && isObject(descriptor)\n && hasOwn(descriptor, 'value')\n && !hasOwn(descriptor, 'get')\n && !hasOwn(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructorPrototype);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructorPrototype);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_CONSTRUCTOR, TypedArrayConstructor);\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","/**\r\n * DevExtreme (ui/menu/ui.submenu.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _element = require(\"../../core/element\");\r\nvar _position = _interopRequireDefault(require(\"../../animation/position\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _context_menu = _interopRequireDefault(require(\"../context_menu\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar Submenu = function(_ContextMenu) {\r\n _inheritsLoose(Submenu, _ContextMenu);\r\n\r\n function Submenu() {\r\n return _ContextMenu.apply(this, arguments) || this\r\n }\r\n var _proto = Submenu.prototype;\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_ContextMenu.prototype._getDefaultOptions.call(this), {\r\n orientation: \"horizontal\",\r\n tabIndex: null,\r\n onHoverStart: _common.noop\r\n })\r\n };\r\n _proto._initDataAdapter = function() {\r\n this._dataAdapter = this.option(\"_dataAdapter\");\r\n if (!this._dataAdapter) {\r\n _ContextMenu.prototype._initDataAdapter.call(this)\r\n }\r\n };\r\n _proto._renderContentImpl = function() {\r\n this._renderContextMenuOverlay();\r\n _ContextMenu.prototype._renderContentImpl.call(this);\r\n var node = this._dataAdapter.getNodeByKey(this.option(\"_parentKey\"));\r\n node && this._renderItems(this._getChildNodes(node));\r\n this._renderDelimiter()\r\n };\r\n _proto._renderDelimiter = function() {\r\n this.$contentDelimiter = (0, _renderer.default)(\"
\").appendTo(this._itemContainer()).addClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)\r\n };\r\n _proto._getOverlayOptions = function() {\r\n return (0, _extend.extend)(_ContextMenu.prototype._getOverlayOptions.call(this), {\r\n onPositioned: this._overlayPositionedActionHandler.bind(this)\r\n })\r\n };\r\n _proto._overlayPositionedActionHandler = function(arg) {\r\n this._showDelimiter(arg)\r\n };\r\n _proto._hoverEndHandler = function(e) {\r\n _ContextMenu.prototype._hoverEndHandler.call(this, e);\r\n this._toggleFocusClass(false, e.currentTarget)\r\n };\r\n _proto._isMenuHorizontal = function() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n };\r\n _proto._hoverStartHandler = function(e) {\r\n var hoverStartAction = this.option(\"onHoverStart\");\r\n hoverStartAction(e);\r\n _ContextMenu.prototype._hoverStartHandler.call(this, e);\r\n this._toggleFocusClass(true, e.currentTarget)\r\n };\r\n _proto._drawSubmenu = function($rootItem) {\r\n this._actions.onShowing({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: this\r\n });\r\n _ContextMenu.prototype._drawSubmenu.call(this, $rootItem);\r\n this._actions.onShown({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: this\r\n })\r\n };\r\n _proto._hideSubmenu = function($rootItem) {\r\n this._actions.onHiding({\r\n cancel: true,\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: this\r\n });\r\n _ContextMenu.prototype._hideSubmenu.call(this, $rootItem);\r\n this._actions.onHidden({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: this\r\n })\r\n };\r\n _proto._showDelimiter = function(arg) {\r\n if (!this.$contentDelimiter) {\r\n return\r\n }\r\n var $submenu = this._itemContainer().children(\".\".concat(DX_SUBMENU_CLASS)).eq(0);\r\n var $rootItem = this.option(\"position\").of;\r\n var position = {\r\n of: $submenu\r\n };\r\n var containerOffset = arg.position;\r\n var vLocation = containerOffset.v.location;\r\n var hLocation = containerOffset.h.location;\r\n var rootOffset = $rootItem.offset();\r\n var offsetLeft = Math.round(rootOffset.left);\r\n var offsetTop = Math.round(rootOffset.top);\r\n var rootWidth = $rootItem.width();\r\n var rootHeight = $rootItem.height();\r\n var submenuWidth = $submenu.width();\r\n var submenuHeight = $submenu.height();\r\n this.$contentDelimiter.css(\"display\", \"block\");\r\n this.$contentDelimiter.width(this._isMenuHorizontal() ? rootWidth < submenuWidth ? rootWidth - 2 : submenuWidth : 2);\r\n this.$contentDelimiter.height(this._isMenuHorizontal() ? 2 : rootHeight < submenuHeight ? rootHeight - 2 : submenuHeight);\r\n if (this._isMenuHorizontal()) {\r\n if (vLocation > offsetTop) {\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"1 -1\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"-1 -1\";\r\n position.at = position.my = \"right top\"\r\n }\r\n } else {\r\n this.$contentDelimiter.height(5);\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"1 4\";\r\n position.at = position.my = \"left bottom\"\r\n } else {\r\n position.offset = \"-1 2\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n }\r\n } else {\r\n if (hLocation > offsetLeft) {\r\n if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"-1 1\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"-1 -1\";\r\n position.at = position.my = \"left bottom\"\r\n }\r\n } else {\r\n if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"1 1\";\r\n position.at = position.my = \"right top\"\r\n } else {\r\n position.offset = \"1 -1\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n }\r\n }\r\n _position.default.setup(this.$contentDelimiter, position)\r\n };\r\n _proto._getContextMenuPosition = function() {\r\n return this.option(\"position\")\r\n };\r\n _proto.isOverlayVisible = function() {\r\n return this._overlay.option(\"visible\")\r\n };\r\n _proto.getOverlayContent = function() {\r\n return this._overlay.$content()\r\n };\r\n return Submenu\r\n}(_context_menu.default);\r\nvar _default = Submenu;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","import { ItiBaseDto } from '@/iti-core-vue';\nimport { CollaborativeAreaMember } from './collaborative-area-member';\nimport { CollaborativeAreaType } from './collaborative-area-type';\n\nexport class CollaborativeArea extends ItiBaseDto {\n public name !: string;\n public description !: string;\n public active !: boolean;\n public type !: any; //CollaborativeAreaType || number;\n public users !: CollaborativeAreaMember[];\n public numberUsers !: number;\n public numberFiles !: number;\n public lastFileDate !: Date;\n public lastFileName !: string;\n public lastFileId!: number;\n public numberChatMessages !: number;\n public lastMessageDate !: Date;\n public lastMessage !: string;\n public roomId !: number;\n public lastPostId !: number\n public lastPostTitle !: string;\n public lastPostDate !: Date;\n public numberEvents !: number;\n public nextEventDate !: Date;\n public nameNextEvent !: string;\n public allDay !: boolean;\n public nameUsers !: string[];\n\n}","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.grid_view.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar accessibility = _interopRequireWildcard(require(\"../shared/accessibility\"));\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TABLE_CLASS = \"table\";\r\nvar BORDERS_CLASS = \"borders\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar IMPORTANT_MARGIN_CLASS = \"important-margin\";\r\nvar TEXT_CONTENT_CLASS = \"text-content\";\r\nvar HIDDEN_CLASS = \"dx-hidden\";\r\nvar GRIDBASE_CONTAINER_CLASS = \"dx-gridbase-container\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nvar VIEW_NAMES = [\"columnsSeparatorView\", \"blockSeparatorView\", \"trackerView\", \"headerPanel\", \"columnHeadersView\", \"rowsView\", \"footerView\", \"columnChooserView\", \"filterPanelView\", \"pagerView\", \"draggingHeaderView\", \"contextMenuView\", \"errorView\", \"headerFilterView\", \"filterBuilderView\"];\r\nvar isPercentWidth = function(width) {\r\n return (0, _type.isString)(width) && \"%\" === width.slice(-1)\r\n};\r\nvar isPixelWidth = function(width) {\r\n return (0, _type.isString)(width) && \"px\" === width.slice(-2)\r\n};\r\nvar mergeArraysByMaxValue = function(values1, values2) {\r\n var result = [];\r\n if (values1 && values2 && values1.length && values1.length === values2.length) {\r\n for (var i = 0; i < values1.length; i++) {\r\n result.push(values1[i] > values2[i] ? values1[i] : values2[i])\r\n }\r\n } else {\r\n if (values1 && values1.length) {\r\n result = values1\r\n } else {\r\n if (values2) {\r\n result = values2\r\n }\r\n }\r\n }\r\n return result\r\n};\r\nvar getContainerHeight = function($container) {\r\n var clientHeight = $container.get(0).clientHeight;\r\n var paddingTop = parseFloat($container.css(\"paddingTop\"));\r\n var paddingBottom = parseFloat($container.css(\"paddingBottom\"));\r\n return clientHeight - paddingTop - paddingBottom\r\n};\r\nvar calculateFreeWidth = function(that, widths) {\r\n var contentWidth = that._rowsView.contentWidth();\r\n var totalWidth = that._getTotalWidth(widths, contentWidth);\r\n return contentWidth - totalWidth\r\n};\r\nvar calculateFreeWidthWithCurrentMinWidth = function(that, columnIndex, currentMinWidth, widths) {\r\n return calculateFreeWidth(that, widths.map(function(width, index) {\r\n return index === columnIndex ? currentMinWidth : width\r\n }))\r\n};\r\nvar restoreFocus = function(focusedElement, selectionRange) {\r\n accessibility.hiddenFocus(focusedElement);\r\n _uiGrid_core2.default.setSelectionRange(focusedElement, selectionRange)\r\n};\r\nvar ResizingController = _uiGrid_core.default.ViewController.inherit({\r\n _initPostRenderHandlers: function() {\r\n var that = this;\r\n var dataController = that._dataController;\r\n if (!that._refreshSizesHandler) {\r\n that._refreshSizesHandler = function(e) {\r\n dataController.changed.remove(that._refreshSizesHandler);\r\n var resizeDeferred;\r\n var changeType = e && e.changeType;\r\n var isDelayed = e && e.isDelayed;\r\n var items = dataController.items();\r\n if (!e || \"refresh\" === changeType || \"prepend\" === changeType || \"append\" === changeType) {\r\n if (!isDelayed) {\r\n resizeDeferred = that.resize()\r\n }\r\n } else {\r\n if (\"update\" === changeType && e.changeTypes) {\r\n if ((items.length > 1 || \"insert\" !== e.changeTypes[0]) && !(0 === items.length && \"remove\" === e.changeTypes[0]) && !e.needUpdateDimensions) {\r\n (0, _common.deferUpdate)(function() {\r\n that._rowsView.resize()\r\n })\r\n } else {\r\n resizeDeferred = that.resize()\r\n }\r\n }\r\n }\r\n if (changeType && \"updateSelection\" !== changeType && \"updateFocusedRow\" !== changeType && !isDelayed) {\r\n (0, _deferred.when)(resizeDeferred).done(function() {\r\n that._setAriaRowColCount();\r\n that.fireContentReadyAction()\r\n })\r\n }\r\n };\r\n that._dataController.changed.add(function() {\r\n that._dataController.changed.add(that._refreshSizesHandler)\r\n })\r\n }\r\n },\r\n fireContentReadyAction: function() {\r\n this.component._fireContentReadyAction()\r\n },\r\n _setAriaRowColCount: function() {\r\n var component = this.component;\r\n component.setAria({\r\n rowCount: this._dataController.totalItemsCount(),\r\n colCount: component.columnCount()\r\n }, component.$element().children(\".\" + GRIDBASE_CONTAINER_CLASS))\r\n },\r\n _getBestFitWidths: function() {\r\n var _this$_footerView;\r\n var rowsView = this._rowsView;\r\n var columnHeadersView = this._columnHeadersView;\r\n if (!this.option(\"legacyRendering\")) {\r\n var _widths;\r\n var widths = rowsView.getColumnWidths();\r\n if (!(null !== (_widths = widths) && void 0 !== _widths && _widths.length)) {\r\n var _rowsView$getTableEle;\r\n var headersTableElement = columnHeadersView.getTableElement();\r\n columnHeadersView.setTableElement(null === (_rowsView$getTableEle = rowsView.getTableElement()) || void 0 === _rowsView$getTableEle ? void 0 : _rowsView$getTableEle.children(\".dx-header\"));\r\n widths = columnHeadersView.getColumnWidths();\r\n columnHeadersView.setTableElement(headersTableElement)\r\n }\r\n return widths\r\n }\r\n var rowsColumnWidths = rowsView.getColumnWidths();\r\n var headerColumnWidths = null === columnHeadersView || void 0 === columnHeadersView ? void 0 : columnHeadersView.getColumnWidths();\r\n var footerColumnWidths = null === (_this$_footerView = this._footerView) || void 0 === _this$_footerView ? void 0 : _this$_footerView.getColumnWidths();\r\n var resultWidths = mergeArraysByMaxValue(rowsColumnWidths, headerColumnWidths);\r\n resultWidths = mergeArraysByMaxValue(resultWidths, footerColumnWidths);\r\n return resultWidths\r\n },\r\n _setVisibleWidths: function(visibleColumns, widths) {\r\n var columnsController = this._columnsController;\r\n columnsController.beginUpdate();\r\n (0, _iterator.each)(visibleColumns, function(index, column) {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"visibleWidth\", widths[index])\r\n });\r\n columnsController.endUpdate()\r\n },\r\n _toggleBestFitModeForView: function(view, className, isBestFit) {\r\n var _this = this;\r\n if (!view || !view.isVisible()) {\r\n return\r\n }\r\n var $rowsTables = this._rowsView.getTableElements();\r\n var $viewTables = view.getTableElements();\r\n (0, _iterator.each)($rowsTables, function(index, tableElement) {\r\n var $tableBody;\r\n var $rowsTable = (0, _renderer.default)(tableElement);\r\n var $viewTable = $viewTables.eq(index);\r\n if ($viewTable && $viewTable.length) {\r\n if (isBestFit) {\r\n $tableBody = $viewTable.children(\"tbody\").appendTo($rowsTable)\r\n } else {\r\n $tableBody = $rowsTable.children(\".\" + className).appendTo($viewTable)\r\n }\r\n $tableBody.toggleClass(className, isBestFit);\r\n $tableBody.toggleClass(_this.addWidgetPrefix(\"best-fit\"), isBestFit)\r\n }\r\n })\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n var $element = this.component.$element();\r\n var that = this;\r\n if (!that.option(\"legacyRendering\")) {\r\n var $rowsTable = that._rowsView.getTableElement();\r\n var $rowsFixedTable = that._rowsView.getTableElements().eq(1);\r\n if (!$rowsTable) {\r\n return\r\n }\r\n $rowsTable.css(\"tableLayout\", isBestFit ? \"auto\" : \"fixed\");\r\n $rowsTable.children(\"colgroup\").css(\"display\", isBestFit ? \"none\" : \"\");\r\n $rowsFixedTable.toggleClass(this.addWidgetPrefix(TABLE_FIXED_CLASS), !isBestFit);\r\n that._toggleBestFitModeForView(that._columnHeadersView, \"dx-header\", isBestFit);\r\n that._toggleBestFitModeForView(that._footerView, \"dx-footer\", isBestFit);\r\n if (that._needStretch()) {\r\n $rowsTable.get(0).style.width = isBestFit ? \"auto\" : \"\"\r\n }\r\n if (_browser.default.msie && 11 === parseInt(_browser.default.version)) {\r\n $rowsTable.find(\".\" + this.addWidgetPrefix(TABLE_FIXED_CLASS)).each(function() {\r\n this.style.width = isBestFit ? \"10px\" : \"\"\r\n })\r\n }\r\n } else {\r\n $element.find(\".\" + this.addWidgetPrefix(TABLE_CLASS)).toggleClass(this.addWidgetPrefix(TABLE_FIXED_CLASS), !isBestFit);\r\n $element.find(EDITORS_INPUT_SELECTOR).toggleClass(HIDDEN_CLASS, isBestFit);\r\n $element.find(\".dx-group-cell\").toggleClass(HIDDEN_CLASS, isBestFit);\r\n $element.find(\".dx-header-row .\" + this.addWidgetPrefix(TEXT_CONTENT_CLASS)).css(\"maxWidth\", \"\")\r\n }\r\n },\r\n _synchronizeColumns: function() {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnAutoWidth = that.option(\"columnAutoWidth\");\r\n var legacyRendering = that.option(\"legacyRendering\");\r\n var needBestFit = that._needBestFit();\r\n var hasMinWidth = false;\r\n var resetBestFitMode;\r\n var isColumnWidthsCorrected = false;\r\n var resultWidths = [];\r\n var focusedElement;\r\n var selectionRange;\r\n var normalizeWidthsByExpandColumns = function() {\r\n var expandColumnWidth;\r\n (0, _iterator.each)(visibleColumns, function(index, column) {\r\n if (\"groupExpand\" === column.type) {\r\n expandColumnWidth = resultWidths[index]\r\n }\r\n });\r\n (0, _iterator.each)(visibleColumns, function(index, column) {\r\n if (\"groupExpand\" === column.type && expandColumnWidth) {\r\n resultWidths[index] = expandColumnWidth\r\n }\r\n })\r\n };\r\n !needBestFit && (0, _iterator.each)(visibleColumns, function(index, column) {\r\n if (\"auto\" === column.width || legacyRendering && column.fixed) {\r\n needBestFit = true;\r\n return false\r\n }\r\n });\r\n (0, _iterator.each)(visibleColumns, function(index, column) {\r\n if (column.minWidth) {\r\n hasMinWidth = true;\r\n return false\r\n }\r\n });\r\n that._setVisibleWidths(visibleColumns, []);\r\n if (needBestFit) {\r\n focusedElement = _dom_adapter.default.getActiveElement();\r\n selectionRange = _uiGrid_core2.default.getSelectionRange(focusedElement);\r\n that._toggleBestFitMode(true);\r\n resetBestFitMode = true\r\n }(0, _common.deferUpdate)(function() {\r\n if (needBestFit) {\r\n resultWidths = that._getBestFitWidths();\r\n (0, _iterator.each)(visibleColumns, function(index, column) {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"bestFitWidth\", resultWidths[index], true)\r\n })\r\n } else {\r\n if (hasMinWidth) {\r\n resultWidths = that._getBestFitWidths()\r\n }\r\n }(0, _iterator.each)(visibleColumns, function(index) {\r\n var width = this.width;\r\n if (\"auto\" !== width) {\r\n if ((0, _type.isDefined)(width)) {\r\n resultWidths[index] = (0, _type.isNumeric)(width) || isPixelWidth(width) ? parseFloat(width) : width\r\n } else {\r\n if (!columnAutoWidth) {\r\n resultWidths[index] = void 0\r\n }\r\n }\r\n }\r\n });\r\n if (resetBestFitMode) {\r\n that._toggleBestFitMode(false);\r\n resetBestFitMode = false;\r\n if (focusedElement && focusedElement !== _dom_adapter.default.getActiveElement()) {\r\n var isFocusOutsideWindow = (0, _position.getBoundingRect)(focusedElement).bottom < 0;\r\n if (!isFocusOutsideWindow) {\r\n if (_browser.default.msie) {\r\n setTimeout(function() {\r\n restoreFocus(focusedElement, selectionRange)\r\n })\r\n } else {\r\n restoreFocus(focusedElement, selectionRange)\r\n }\r\n }\r\n }\r\n }\r\n isColumnWidthsCorrected = that._correctColumnWidths(resultWidths, visibleColumns);\r\n if (columnAutoWidth) {\r\n normalizeWidthsByExpandColumns();\r\n if (that._needStretch()) {\r\n that._processStretch(resultWidths, visibleColumns)\r\n }\r\n }(0, _common.deferRender)(function() {\r\n if (needBestFit || isColumnWidthsCorrected) {\r\n that._setVisibleWidths(visibleColumns, resultWidths)\r\n }\r\n })\r\n })\r\n },\r\n _needBestFit: function() {\r\n return this.option(\"columnAutoWidth\")\r\n },\r\n _needStretch: function() {\r\n return this.option(\"legacyRendering\") || this._columnsController.getVisibleColumns().some(function(c) {\r\n return \"auto\" === c.width && !c.command\r\n })\r\n },\r\n _getAverageColumnsWidth: function(resultWidths) {\r\n var freeWidth = calculateFreeWidth(this, resultWidths);\r\n var columnCountWithoutWidth = resultWidths.filter(function(width) {\r\n return void 0 === width\r\n }).length;\r\n return freeWidth / columnCountWithoutWidth\r\n },\r\n _correctColumnWidths: function(resultWidths, visibleColumns) {\r\n var that = this;\r\n var i;\r\n var hasPercentWidth = false;\r\n var hasAutoWidth = false;\r\n var isColumnWidthsCorrected = false;\r\n var $element = that.component.$element();\r\n var hasWidth = that._hasWidth;\r\n var _loop = function() {\r\n var index = i;\r\n var column = visibleColumns[index];\r\n var isHiddenColumn = resultWidths[index] === HIDDEN_COLUMNS_WIDTH;\r\n var width = resultWidths[index];\r\n var minWidth = column.minWidth;\r\n if (minWidth) {\r\n if (void 0 === width) {\r\n var averageColumnsWidth = that._getAverageColumnsWidth(resultWidths);\r\n width = averageColumnsWidth\r\n } else {\r\n if (isPercentWidth(width)) {\r\n var freeWidth = calculateFreeWidthWithCurrentMinWidth(that, index, minWidth, resultWidths);\r\n if (freeWidth < 0) {\r\n width = -1\r\n }\r\n }\r\n }\r\n }\r\n var realColumnWidth = that._getRealColumnWidth(index, resultWidths.map(function(columnWidth, columnIndex) {\r\n return index === columnIndex ? width : columnWidth\r\n }));\r\n if (minWidth && !isHiddenColumn && realColumnWidth < minWidth) {\r\n resultWidths[index] = minWidth;\r\n isColumnWidthsCorrected = true;\r\n i = -1\r\n }\r\n if (!(0, _type.isDefined)(column.width)) {\r\n hasAutoWidth = true\r\n }\r\n if (isPercentWidth(column.width)) {\r\n hasPercentWidth = true\r\n }\r\n };\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n _loop()\r\n }\r\n if ($element && that._maxWidth) {\r\n delete that._maxWidth;\r\n $element.css(\"maxWidth\", \"\")\r\n }\r\n if (!hasAutoWidth && resultWidths.length) {\r\n var contentWidth = that._rowsView.contentWidth();\r\n var scrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var totalWidth = that._getTotalWidth(resultWidths, contentWidth);\r\n if (totalWidth < contentWidth) {\r\n var lastColumnIndex = _uiGrid_core2.default.getLastResizableColumnIndex(visibleColumns, resultWidths);\r\n if (lastColumnIndex >= 0) {\r\n resultWidths[lastColumnIndex] = \"auto\";\r\n isColumnWidthsCorrected = true;\r\n if (false === hasWidth && !hasPercentWidth) {\r\n that._maxWidth = totalWidth + scrollbarWidth + (that.option(\"showBorders\") ? 2 : 0);\r\n $element.css(\"maxWidth\", that._maxWidth)\r\n }\r\n }\r\n }\r\n }\r\n return isColumnWidthsCorrected\r\n },\r\n _processStretch: function(resultSizes, visibleColumns) {\r\n var groupSize = this._rowsView.contentWidth();\r\n var tableSize = this._getTotalWidth(resultSizes, groupSize);\r\n var unusedIndexes = {\r\n length: 0\r\n };\r\n if (!resultSizes.length) {\r\n return\r\n }(0, _iterator.each)(visibleColumns, function(index) {\r\n if (this.width || resultSizes[index] === HIDDEN_COLUMNS_WIDTH) {\r\n unusedIndexes[index] = true;\r\n unusedIndexes.length++\r\n }\r\n });\r\n var diff = groupSize - tableSize;\r\n var diffElement = Math.floor(diff / (resultSizes.length - unusedIndexes.length));\r\n var onePixelElementsCount = diff - diffElement * (resultSizes.length - unusedIndexes.length);\r\n if (diff >= 0) {\r\n for (var i = 0; i < resultSizes.length; i++) {\r\n if (unusedIndexes[i]) {\r\n continue\r\n }\r\n resultSizes[i] += diffElement;\r\n if (onePixelElementsCount > 0) {\r\n if (onePixelElementsCount < 1) {\r\n resultSizes[i] += onePixelElementsCount;\r\n onePixelElementsCount = 0\r\n } else {\r\n resultSizes[i]++;\r\n onePixelElementsCount--\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _getRealColumnWidth: function(columnIndex, columnWidths, groupWidth) {\r\n var ratio = 1;\r\n var width = columnWidths[columnIndex];\r\n if (!isPercentWidth(width)) {\r\n return parseFloat(width)\r\n }\r\n var percentTotalWidth = columnWidths.reduce(function(sum, width, index) {\r\n if (!isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n var pixelTotalWidth = columnWidths.reduce(function(sum, width) {\r\n if (!width || width === HIDDEN_COLUMNS_WIDTH || isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n groupWidth = groupWidth || this._rowsView.contentWidth();\r\n var freeSpace = groupWidth - pixelTotalWidth;\r\n var percentTotalWidthInPixel = percentTotalWidth * groupWidth / 100;\r\n if (pixelTotalWidth > 0 && percentTotalWidthInPixel + pixelTotalWidth >= groupWidth) {\r\n ratio = percentTotalWidthInPixel > freeSpace ? freeSpace / percentTotalWidthInPixel : 1\r\n }\r\n return parseFloat(width) * groupWidth * ratio / 100\r\n },\r\n _getTotalWidth: function(widths, groupWidth) {\r\n var result = 0;\r\n for (var i = 0; i < widths.length; i++) {\r\n var width = widths[i];\r\n if (width && width !== HIDDEN_COLUMNS_WIDTH) {\r\n result += this._getRealColumnWidth(i, widths, groupWidth)\r\n }\r\n }\r\n return Math.ceil(result)\r\n },\r\n updateSize: function($rootElement) {\r\n var that = this;\r\n var $groupElement;\r\n var width;\r\n var importantMarginClass = that.addWidgetPrefix(IMPORTANT_MARGIN_CLASS);\r\n if (void 0 === that._hasHeight && $rootElement && $rootElement.is(\":visible\") && $rootElement.width()) {\r\n $groupElement = $rootElement.children(\".\" + that.getWidgetContainerClass());\r\n if ($groupElement.length) {\r\n $groupElement.detach()\r\n }\r\n that._hasHeight = !!getContainerHeight($rootElement);\r\n width = $rootElement.width();\r\n $rootElement.addClass(importantMarginClass);\r\n that._hasWidth = $rootElement.width() === width;\r\n $rootElement.removeClass(importantMarginClass);\r\n if ($groupElement.length) {\r\n $groupElement.appendTo($rootElement)\r\n }\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"resize\", \"updateDimensions\"]\r\n },\r\n resize: function() {\r\n return !this.component._requireResize && this.updateDimensions()\r\n },\r\n updateDimensions: function(checkSize) {\r\n var that = this;\r\n that._initPostRenderHandlers();\r\n if (!that._checkSize(checkSize)) {\r\n return\r\n }\r\n var prevResult = that._resizeDeferred;\r\n var result = that._resizeDeferred = new _deferred.Deferred;\r\n (0, _deferred.when)(prevResult).always(function() {\r\n (0, _common.deferRender)(function() {\r\n if (that._dataController.isLoaded()) {\r\n that._synchronizeColumns()\r\n }\r\n that._resetGroupElementHeight();\r\n (0, _common.deferUpdate)(function() {\r\n (0, _common.deferRender)(function() {\r\n (0, _common.deferUpdate)(function() {\r\n that._updateDimensionsCore()\r\n })\r\n })\r\n })\r\n }).done(result.resolve).fail(result.reject)\r\n });\r\n return result.promise()\r\n },\r\n _resetGroupElementHeight: function() {\r\n var groupElement = this.component.$element().children().get(0);\r\n var scrollable = this._rowsView.getScrollable();\r\n if (groupElement && groupElement.style.height && (!scrollable || !scrollable.scrollTop())) {\r\n groupElement.style.height = \"\"\r\n }\r\n },\r\n _checkSize: function(checkSize) {\r\n var $rootElement = this.component.$element();\r\n if (checkSize && (this._lastWidth === $rootElement.width() && this._lastHeight === $rootElement.height() || !$rootElement.is(\":visible\"))) {\r\n return false\r\n }\r\n return true\r\n },\r\n _setScrollerSpacingCore: function(hasHeight) {\r\n var that = this;\r\n var vScrollbarWidth = hasHeight ? that._rowsView.getScrollbarWidth() : 0;\r\n var hScrollbarWidth = that._rowsView.getScrollbarWidth(true);\r\n (0, _common.deferRender)(function() {\r\n that._columnHeadersView && that._columnHeadersView.setScrollerSpacing(vScrollbarWidth);\r\n that._footerView && that._footerView.setScrollerSpacing(vScrollbarWidth);\r\n that._rowsView.setScrollerSpacing(vScrollbarWidth, hScrollbarWidth)\r\n })\r\n },\r\n _setScrollerSpacing: function(hasHeight) {\r\n var _this2 = this;\r\n if (true === this.option(\"scrolling.useNative\")) {\r\n (0, _common.deferRender)(function() {\r\n (0, _common.deferUpdate)(function() {\r\n _this2._setScrollerSpacingCore(hasHeight)\r\n })\r\n })\r\n } else {\r\n this._setScrollerSpacingCore(hasHeight)\r\n }\r\n },\r\n _updateDimensionsCore: function() {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var rowsView = that._rowsView;\r\n var $rootElement = that.component.$element();\r\n var groupElement = $rootElement.children().get(0);\r\n var rootElementHeight = $rootElement && ($rootElement.get(0).clientHeight || $rootElement.height());\r\n var maxHeight = parseInt($rootElement.css(\"maxHeight\"));\r\n var maxHeightHappened = maxHeight && rootElementHeight >= maxHeight;\r\n var height = that.option(\"height\") || $rootElement.get(0).style.height;\r\n var editorFactory = that.getController(\"editorFactory\");\r\n var isMaxHeightApplied = maxHeightHappened && groupElement.scrollHeight === groupElement.offsetHeight;\r\n var $testDiv;\r\n that.updateSize($rootElement);\r\n var hasHeight = that._hasHeight || maxHeightHappened;\r\n if (height && that._hasHeight ^ \"auto\" !== height) {\r\n $testDiv = (0, _renderer.default)(\"
\").height(height).appendTo($rootElement);\r\n that._hasHeight = !!$testDiv.height();\r\n $testDiv.remove()\r\n }(0, _common.deferRender)(function() {\r\n rowsView.height(null, hasHeight);\r\n if (maxHeightHappened && !isMaxHeightApplied) {\r\n (0, _renderer.default)(groupElement).css(\"height\", maxHeight)\r\n }\r\n if (!dataController.isLoaded()) {\r\n rowsView.setLoading(dataController.isLoading());\r\n return\r\n }(0, _common.deferUpdate)(function() {\r\n that._updateLastSizes($rootElement);\r\n that._setScrollerSpacing(hasHeight);\r\n (0, _iterator.each)(VIEW_NAMES, function(index, viewName) {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.resize()\r\n }\r\n });\r\n editorFactory && editorFactory.resize()\r\n })\r\n })\r\n },\r\n _updateLastSizes: function($rootElement) {\r\n this._lastWidth = $rootElement.width();\r\n this._lastHeight = $rootElement.height()\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.component._renderDimensions();\r\n this.resize();\r\n case \"legacyRendering\":\r\n case \"renderAsync\":\r\n args.handled = true;\r\n return;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n init: function() {\r\n var that = this;\r\n that._dataController = that.getController(\"data\");\r\n that._columnsController = that.getController(\"columns\");\r\n that._columnHeadersView = that.getView(\"columnHeadersView\");\r\n that._footerView = that.getView(\"footerView\");\r\n that._rowsView = that.getView(\"rowsView\")\r\n }\r\n});\r\nvar SynchronizeScrollingController = _uiGrid_core.default.ViewController.inherit({\r\n _scrollChangedHandler: function(views, pos, viewName) {\r\n for (var j = 0; j < views.length; j++) {\r\n if (views[j] && views[j].name !== viewName) {\r\n views[j].scrollTo({\r\n left: pos.left,\r\n top: pos.top\r\n })\r\n }\r\n }\r\n },\r\n init: function() {\r\n var views = [this.getView(\"columnHeadersView\"), this.getView(\"footerView\"), this.getView(\"rowsView\")];\r\n for (var i = 0; i < views.length; i++) {\r\n var view = views[i];\r\n if (view) {\r\n view.scrollChanged.add(this._scrollChangedHandler.bind(this, views))\r\n }\r\n }\r\n }\r\n});\r\nvar GridView = _uiGrid_core.default.View.inherit({\r\n _endUpdateCore: function() {\r\n if (this.component._requireResize) {\r\n this.component._requireResize = false;\r\n this._resizingController.resize()\r\n }\r\n },\r\n _getWidgetAriaLabel: function() {\r\n return \"dxDataGrid-ariaDataGrid\"\r\n },\r\n init: function() {\r\n var that = this;\r\n that._resizingController = that.getController(\"resizing\");\r\n that._dataController = that.getController(\"data\")\r\n },\r\n getView: function(name) {\r\n return this.component._views[name]\r\n },\r\n element: function() {\r\n return this._groupElement\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n if ((0, _type.isDefined)(that._groupElement) && \"showBorders\" === args.name) {\r\n that._groupElement.toggleClass(that.addWidgetPrefix(BORDERS_CLASS), !!args.value);\r\n args.handled = true\r\n } else {\r\n that.callBase(args)\r\n }\r\n },\r\n _renderViews: function($groupElement) {\r\n var that = this;\r\n (0, _iterator.each)(VIEW_NAMES, function(index, viewName) {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.render($groupElement)\r\n }\r\n })\r\n },\r\n _getTableRoleName: function() {\r\n return \"grid\"\r\n },\r\n render: function($rootElement) {\r\n var that = this;\r\n var isFirstRender = !that._groupElement;\r\n var $groupElement = that._groupElement || (0, _renderer.default)(\"
\").addClass(that.getWidgetContainerClass());\r\n $groupElement.addClass(GRIDBASE_CONTAINER_CLASS);\r\n $groupElement.toggleClass(that.addWidgetPrefix(BORDERS_CLASS), !!that.option(\"showBorders\"));\r\n that.setAria(\"role\", \"presentation\", $rootElement);\r\n that.component.setAria({\r\n role: this._getTableRoleName(),\r\n label: _message.default.format(that._getWidgetAriaLabel())\r\n }, $groupElement);\r\n that._rootElement = $rootElement || that._rootElement;\r\n if (isFirstRender) {\r\n that._groupElement = $groupElement;\r\n (0, _window.hasWindow)() && that.getController(\"resizing\").updateSize($rootElement);\r\n $groupElement.appendTo($rootElement)\r\n }\r\n that._renderViews($groupElement)\r\n },\r\n update: function() {\r\n var that = this;\r\n var $rootElement = that._rootElement;\r\n var $groupElement = that._groupElement;\r\n var resizingController = that.getController(\"resizing\");\r\n if ($rootElement && $groupElement) {\r\n resizingController.resize();\r\n if (that._dataController.isLoaded()) {\r\n that._resizingController.fireContentReadyAction()\r\n }\r\n }\r\n }\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n showBorders: false,\r\n renderAsync: false,\r\n legacyRendering: false\r\n }\r\n },\r\n controllers: {\r\n resizing: ResizingController,\r\n synchronizeScrolling: SynchronizeScrollingController\r\n },\r\n views: {\r\n gridView: GridView\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","// IEEE754 conversions based on https://github.com/feross/ieee754\nvar global = require('../internals/global');\n\nvar Array = global.Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n c = pow(2, -exponent);\n if (number * c < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n while (mantissaLength >= 8) {\n buffer[index++] = mantissa & 255;\n mantissa /= 256;\n mantissaLength -= 8;\n }\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n while (exponentLength > 0) {\n buffer[index++] = exponent & 255;\n exponent /= 256;\n exponentLength -= 8;\n }\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n while (nBits > 0) {\n exponent = exponent * 256 + buffer[index--];\n nBits -= 8;\n }\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n while (nBits > 0) {\n mantissa = mantissa * 256 + buffer[index--];\n nBits -= 8;\n }\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","/**\r\n * DevExtreme (ui/filter_builder.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _filter_builder = _interopRequireDefault(require(\"./filter_builder/filter_builder\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _filter_builder.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.export_mixin.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _default = {\r\n _getEmptyCell: function() {\r\n return {\r\n text: \"\",\r\n value: void 0,\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n },\r\n _defaultSetter: function(value) {\r\n return !value ? 1 : value\r\n },\r\n _cloneItem: function(item) {\r\n return (0, _extend.extend)({}, item, this._getEmptyCell())\r\n },\r\n _prepareItems: function(items) {\r\n var that = this;\r\n var resultItems = [];\r\n var cols = (items[0] || []).reduce(function(sum, item) {\r\n return sum + that._defaultSetter(item.colspan)\r\n }, 0);\r\n var getItem = function(items) {\r\n var rowIndex = 0;\r\n var cellIndex = 0;\r\n return function() {\r\n var row = items[rowIndex] || [];\r\n var item = row[cellIndex++];\r\n if (cellIndex >= row.length) {\r\n rowIndex++;\r\n cellIndex = 0\r\n }\r\n if (item) {\r\n item.colspan = that._defaultSetter(item.colspan);\r\n item.rowspan = that._defaultSetter(item.rowspan)\r\n }\r\n return item\r\n }\r\n }(items);\r\n\r\n function addItem(rowIndex, cellIndex, item) {\r\n var row = resultItems[rowIndex] = resultItems[rowIndex] || [];\r\n row[cellIndex] = item;\r\n if (item.colspan > 1 || item.rowspan > 1) {\r\n var clone = that._cloneItem(item);\r\n for (var c = 1; c < item.colspan; c++) {\r\n addItem(rowIndex, cellIndex + c, clone)\r\n }\r\n for (var r = 1; r < item.rowspan; r++) {\r\n for (var _c = 0; _c < item.colspan; _c++) {\r\n addItem(rowIndex + r, cellIndex + _c, clone)\r\n }\r\n }\r\n }\r\n }\r\n var item = getItem();\r\n var rowIndex = 0;\r\n while (item) {\r\n for (var cellIndex = 0; cellIndex < cols; cellIndex++) {\r\n if (!item) {\r\n break\r\n }\r\n if (resultItems[rowIndex] && resultItems[rowIndex][cellIndex]) {\r\n continue\r\n }\r\n addItem(rowIndex, cellIndex, item);\r\n cellIndex += item.colspan - 1;\r\n item = getItem()\r\n }\r\n rowIndex++\r\n }\r\n return resultItems\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.state_storing.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.state_storing\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"stateStoring\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.utils.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.createGroupFilter = createGroupFilter;\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.utils\"));\r\nvar _utils = _interopRequireDefault(require(\"../../data/utils\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction createGroupFilter(path, storeLoadOptions) {\r\n var groups = _utils.default.normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n filter.push([groups[i].selector, \"=\", path[i]])\r\n }\r\n if (storeLoadOptions.filter) {\r\n filter.push(storeLoadOptions.filter)\r\n }\r\n return _uiGrid_core.default.combineFilters(filter)\r\n}\r\n","/**\r\n * DevExtreme (ui/menu/ui.menu.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _element = require(\"../../core/element\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _utils = require(\"../overlay/utils\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _hover = require(\"../../events/hover\");\r\nvar _ui = _interopRequireDefault(require(\"../context_menu/ui.menu_base\"));\r\nvar _overlay = _interopRequireDefault(require(\"../overlay\"));\r\nvar _ui2 = _interopRequireDefault(require(\"./ui.submenu\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\nvar _tree_view = _interopRequireDefault(require(\"../tree_view\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_VERTICAL_CLASS = DX_MENU_CLASS + \"-vertical\";\r\nvar DX_MENU_HORIZONTAL_CLASS = DX_MENU_CLASS + \"-horizontal\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS = DX_CONTEXT_MENU_CLASS + \"-container-border\";\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar DX_STATE_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DX_ADAPTIVE_MODE_CLASS = DX_MENU_CLASS + \"-adaptive-mode\";\r\nvar DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS = DX_MENU_CLASS + \"-hamburger-button\";\r\nvar DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS = DX_ADAPTIVE_MODE_CLASS + \"-overlay-wrapper\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar SHOW_SUBMENU_OPERATION = \"showSubmenu\";\r\nvar NEXTITEM_OPERATION = \"nextItem\";\r\nvar PREVITEM_OPERATION = \"prevItem\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nvar ACTIONS = [\"onSubmenuShowing\", \"onSubmenuShown\", \"onSubmenuHiding\", \"onSubmenuHidden\", \"onItemContextMenu\", \"onItemClick\", \"onSelectionChanged\", \"onItemRendered\"];\r\nvar Menu = function(_MenuBase) {\r\n _inheritsLoose(Menu, _MenuBase);\r\n\r\n function Menu() {\r\n return _MenuBase.apply(this, arguments) || this\r\n }\r\n var _proto = Menu.prototype;\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_MenuBase.prototype._getDefaultOptions.call(this), {\r\n orientation: \"horizontal\",\r\n submenuDirection: \"auto\",\r\n showFirstSubmenuMode: {\r\n name: \"onClick\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n hideSubmenuOnMouseLeave: false,\r\n onSubmenuShowing: null,\r\n onSubmenuShown: null,\r\n onSubmenuHiding: null,\r\n onSubmenuHidden: null,\r\n adaptivityEnabled: false\r\n })\r\n };\r\n _proto._setOptionsByReference = function() {\r\n _MenuBase.prototype._setOptionsByReference.call(this);\r\n (0, _extend.extend)(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n };\r\n _proto._itemElements = function() {\r\n var rootMenuElements = _MenuBase.prototype._itemElements.call(this);\r\n var submenuElements = this._submenuItemElements();\r\n return rootMenuElements.add(submenuElements)\r\n };\r\n _proto._submenuItemElements = function() {\r\n var elements = [];\r\n var itemSelector = \".\".concat(DX_MENU_ITEM_CLASS);\r\n var currentSubmenu = this._submenus.length && this._submenus[0];\r\n if (currentSubmenu && currentSubmenu.itemsContainer()) {\r\n elements = currentSubmenu.itemsContainer().find(itemSelector)\r\n }\r\n return elements\r\n };\r\n _proto._focusTarget = function() {\r\n return this.$element()\r\n };\r\n _proto._isMenuHorizontal = function() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n };\r\n _proto._moveFocus = function(location) {\r\n var $items = this._getAvailableItems();\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n var $activeItem = this._getActiveItem(true);\r\n var argument;\r\n var operation;\r\n var navigationAction;\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(PREVITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_DOWN:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(NEXTITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_RIGHT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(NEXTITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_LEFT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(PREVITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n default:\r\n return _MenuBase.prototype._moveFocus.call(this, location)\r\n }\r\n if ($newTarget && 0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($newTarget))\r\n }\r\n };\r\n _proto._getItemsNavigationOperation = function(operation) {\r\n var navOperation = operation;\r\n if (this.option(\"rtlEnabled\")) {\r\n navOperation = operation === PREVITEM_OPERATION ? NEXTITEM_OPERATION : PREVITEM_OPERATION\r\n }\r\n return navOperation\r\n };\r\n _proto._getKeyboardNavigationAction = function(operation, argument) {\r\n var action = _common.noop;\r\n switch (operation) {\r\n case SHOW_SUBMENU_OPERATION:\r\n if (!argument.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n action = this._showSubmenu.bind(this, argument)\r\n }\r\n break;\r\n case NEXTITEM_OPERATION:\r\n action = this._nextItem.bind(this, argument);\r\n break;\r\n case PREVITEM_OPERATION:\r\n action = this._prevItem.bind(this, argument)\r\n }\r\n return action\r\n };\r\n _proto._clean = function() {\r\n _MenuBase.prototype._clean.call(this);\r\n this.option(\"templatesRenderAsynchronously\") && clearTimeout(this._resizeEventTimer)\r\n };\r\n _proto._visibilityChanged = function(visible) {\r\n if (visible) {\r\n if (!this._menuItemsWidth) {\r\n this._updateItemsWidthCache()\r\n }\r\n this._dimensionChanged()\r\n }\r\n };\r\n _proto._isAdaptivityEnabled = function() {\r\n return this.option(\"adaptivityEnabled\") && \"horizontal\" === this.option(\"orientation\")\r\n };\r\n _proto._updateItemsWidthCache = function() {\r\n var $menuItems = this.$element().find(\"ul\").first().children(\"li\").children(\".\".concat(DX_MENU_ITEM_CLASS));\r\n this._menuItemsWidth = this._getSummaryItemsWidth($menuItems, true)\r\n };\r\n _proto._dimensionChanged = function() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n var containerWidth = this.$element().outerWidth();\r\n this._toggleAdaptiveMode(this._menuItemsWidth > containerWidth)\r\n };\r\n _proto._init = function() {\r\n _MenuBase.prototype._init.call(this);\r\n this._submenus = []\r\n };\r\n _proto._initActions = function() {\r\n var _this = this;\r\n this._actions = {};\r\n (0, _iterator.each)(ACTIONS, function(index, action) {\r\n _this._actions[action] = _this._createActionByOption(action)\r\n })\r\n };\r\n _proto._initMarkup = function() {\r\n this._visibleSubmenu = null;\r\n this.$element().addClass(DX_MENU_CLASS);\r\n _MenuBase.prototype._initMarkup.call(this);\r\n this.setAria(\"role\", \"menubar\")\r\n };\r\n _proto._render = function() {\r\n _MenuBase.prototype._render.call(this);\r\n this._initAdaptivity()\r\n };\r\n _proto._renderHamburgerButton = function() {\r\n this._hamburger = new _button.default((0, _renderer.default)(\"
\").addClass(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS), {\r\n icon: \"menu\",\r\n activeStateEnabled: false,\r\n onClick: this._toggleTreeView.bind(this)\r\n });\r\n return this._hamburger.$element()\r\n };\r\n _proto._toggleTreeView = function(state) {\r\n if ((0, _type.isPlainObject)(state)) {\r\n state = !this._overlay.option(\"visible\")\r\n }\r\n this._overlay.option(\"visible\", state);\r\n this._toggleHamburgerActiveState(state)\r\n };\r\n _proto._toggleHamburgerActiveState = function(state) {\r\n this._hamburger && this._hamburger.$element().toggleClass(DX_STATE_ACTIVE_CLASS, state)\r\n };\r\n _proto._toggleAdaptiveMode = function(state) {\r\n var $menuItemsContainer = this.$element().find(\".\".concat(DX_MENU_HORIZONTAL_CLASS));\r\n var $adaptiveElements = this.$element().find(\".\".concat(DX_ADAPTIVE_MODE_CLASS));\r\n if (state) {\r\n this._hideVisibleSubmenu()\r\n } else {\r\n this._treeView && this._treeView.collapseAll();\r\n this._overlay && this._toggleTreeView(state)\r\n }\r\n $menuItemsContainer.toggle(!state);\r\n $adaptiveElements.toggle(state)\r\n };\r\n _proto._removeAdaptivity = function() {\r\n if (!this._$adaptiveContainer) {\r\n return\r\n }\r\n this._toggleAdaptiveMode(false);\r\n this._$adaptiveContainer.remove();\r\n this._$adaptiveContainer = null;\r\n this._treeView = null;\r\n this._hamburger = null;\r\n this._overlay = null\r\n };\r\n _proto._treeviewItemClickHandler = function(e) {\r\n this._actions.onItemClick(e);\r\n if (!e.node.children.length) {\r\n this._toggleTreeView(false)\r\n }\r\n };\r\n _proto._getAdaptiveOverlayOptions = function() {\r\n var _this2 = this;\r\n var rtl = this.option(\"rtlEnabled\");\r\n var position = rtl ? \"right\" : \"left\";\r\n return {\r\n maxHeight: function() {\r\n return (0, _utils.getElementMaxHeightByWindow)(_this2.$element())\r\n },\r\n deferRendering: false,\r\n shading: false,\r\n animation: false,\r\n closeOnTargetScroll: true,\r\n onHidden: function() {\r\n _this2._toggleHamburgerActiveState(false)\r\n },\r\n height: \"auto\",\r\n closeOnOutsideClick: function(e) {\r\n return !(0, _renderer.default)(e.target).closest(\".\".concat(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS)).length\r\n },\r\n position: {\r\n collision: \"flipfit\",\r\n at: \"bottom \" + position,\r\n my: \"top \" + position,\r\n of: this._hamburger.$element()\r\n }\r\n }\r\n };\r\n _proto._getTreeViewOptions = function() {\r\n var _this3 = this;\r\n var menuOptions = {};\r\n var optionsToTransfer = [\"rtlEnabled\", \"width\", \"accessKey\", \"activeStateEnabled\", \"animation\", \"dataSource\", \"disabled\", \"displayExpr\", \"displayExpr\", \"focusStateEnabled\", \"hint\", \"hoverStateEnabled\", \"itemsExpr\", \"items\", \"itemTemplate\", \"selectedExpr\", \"selectionMode\", \"tabIndex\", \"visible\"];\r\n var actionsToTransfer = [\"onItemContextMenu\", \"onSelectionChanged\"];\r\n (0, _iterator.each)(optionsToTransfer, function(_, option) {\r\n menuOptions[option] = _this3.option(option)\r\n });\r\n (0, _iterator.each)(actionsToTransfer, function(_, actionName) {\r\n menuOptions[actionName] = function(e) {\r\n _this3._actions[actionName](e)\r\n }\r\n });\r\n return (0, _extend.extend)(menuOptions, {\r\n dataSource: this.getDataSource(),\r\n animationEnabled: !!this.option(\"animation\"),\r\n onItemClick: this._treeviewItemClickHandler.bind(this),\r\n onItemExpanded: function(e) {\r\n _this3._overlay.repaint();\r\n _this3._actions.onSubmenuShown(e)\r\n },\r\n onItemCollapsed: function(e) {\r\n _this3._overlay.repaint();\r\n _this3._actions.onSubmenuHidden(e)\r\n },\r\n selectNodesRecursive: false,\r\n selectByClick: this.option(\"selectByClick\"),\r\n expandEvent: \"click\"\r\n })\r\n };\r\n _proto._initAdaptivity = function() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n this._$adaptiveContainer = (0, _renderer.default)(\"
\").addClass(DX_ADAPTIVE_MODE_CLASS);\r\n var $hamburger = this._renderHamburgerButton();\r\n this._treeView = this._createComponent((0, _renderer.default)(\"
\"), _tree_view.default, this._getTreeViewOptions());\r\n this._overlay = this._createComponent((0, _renderer.default)(\"
\"), _overlay.default, this._getAdaptiveOverlayOptions());\r\n this._overlay.$content().append(this._treeView.$element()).addClass(DX_ADAPTIVE_MODE_CLASS).addClass(this.option(\"cssClass\"));\r\n this._overlay._wrapper().addClass(DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS);\r\n this._$adaptiveContainer.append($hamburger);\r\n this._$adaptiveContainer.append(this._overlay.$element());\r\n this.$element().append(this._$adaptiveContainer);\r\n this._updateItemsWidthCache();\r\n this._dimensionChanged()\r\n };\r\n _proto._getDelay = function(delayType) {\r\n var delay = this.option(\"showFirstSubmenuMode\").delay;\r\n if (!(0, _type.isDefined)(delay)) {\r\n return DEFAULT_DELAY[delayType]\r\n } else {\r\n return (0, _type.isObject)(delay) ? delay[delayType] : delay\r\n }\r\n };\r\n _proto._keyboardHandler = function(e) {\r\n return _MenuBase.prototype._keyboardHandler.call(this, e, !!this._visibleSubmenu)\r\n };\r\n _proto._renderContainer = function() {\r\n var $wrapper = (0, _renderer.default)(\"
\");\r\n $wrapper.appendTo(this.$element()).addClass(this._isMenuHorizontal() ? DX_MENU_HORIZONTAL_CLASS : DX_MENU_VERTICAL_CLASS);\r\n return _MenuBase.prototype._renderContainer.call(this, $wrapper)\r\n };\r\n _proto._renderSubmenuItems = function(node, $itemFrame) {\r\n var submenu = this._createSubmenu(node, $itemFrame);\r\n this._submenus.push(submenu);\r\n this._renderBorderElement($itemFrame);\r\n return submenu\r\n };\r\n _proto._getKeyboardListeners = function() {\r\n return _MenuBase.prototype._getKeyboardListeners.call(this).concat(this._visibleSubmenu)\r\n };\r\n _proto._createSubmenu = function(node, $rootItem) {\r\n var $submenuContainer = (0, _renderer.default)(\"
\").addClass(DX_CONTEXT_MENU_CLASS).appendTo($rootItem);\r\n var items = this._getChildNodes(node);\r\n var result = this._createComponent($submenuContainer, _ui2.default, (0, _extend.extend)(this._getSubmenuOptions(), {\r\n _dataAdapter: this._dataAdapter,\r\n _parentKey: node.internalFields.key,\r\n items: items,\r\n onHoverStart: this._clearTimeouts.bind(this),\r\n position: this.getSubmenuPosition($rootItem)\r\n }));\r\n this._attachSubmenuHandlers($rootItem, result);\r\n return result\r\n };\r\n _proto._getSubmenuOptions = function() {\r\n var _this4 = this;\r\n var $submenuTarget = (0, _renderer.default)(\"
\");\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n return {\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n target: $submenuTarget,\r\n orientation: this.option(\"orientation\"),\r\n selectionMode: this.option(\"selectionMode\"),\r\n cssClass: this.option(\"cssClass\"),\r\n selectByClick: this.option(\"selectByClick\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n showSubmenuMode: this.option(\"showSubmenuMode\"),\r\n displayExpr: this.option(\"displayExpr\"),\r\n disabledExpr: this.option(\"disabledExpr\"),\r\n selectedExpr: this.option(\"selectedExpr\"),\r\n itemsExpr: this.option(\"itemsExpr\"),\r\n onFocusedItemChanged: function(e) {\r\n if (!e.component.option(\"visible\")) {\r\n return\r\n }\r\n _this4.option(\"focusedElement\", e.component.option(\"focusedElement\"))\r\n },\r\n onSelectionChanged: this._nestedItemOnSelectionChangedHandler.bind(this),\r\n onItemClick: this._nestedItemOnItemClickHandler.bind(this),\r\n onItemRendered: this._nestedItemOnItemRenderedHandler.bind(this),\r\n onLeftFirstItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, PREVITEM_OPERATION),\r\n onLeftLastItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION),\r\n onCloseRootSubmenu: this._moveMainMenuFocus.bind(this, isMenuHorizontal ? PREVITEM_OPERATION : null),\r\n onExpandLastSubmenu: isMenuHorizontal ? this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION) : null\r\n }\r\n };\r\n _proto._getShowFirstSubmenuMode = function() {\r\n if (!this._isDesktopDevice()) {\r\n return \"onClick\"\r\n }\r\n var optionValue = this.option(\"showFirstSubmenuMode\");\r\n return (0, _type.isObject)(optionValue) ? optionValue.name : optionValue\r\n };\r\n _proto._moveMainMenuFocus = function(direction) {\r\n var $items = this._getAvailableItems();\r\n var itemCount = $items.length;\r\n var $currentItem = $items.filter(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).eq(0);\r\n var itemIndex = $items.index($currentItem);\r\n this._hideSubmenu(this._visibleSubmenu);\r\n itemIndex += direction === PREVITEM_OPERATION ? -1 : 1;\r\n if (itemIndex >= itemCount) {\r\n itemIndex = 0\r\n } else {\r\n if (itemIndex < 0) {\r\n itemIndex = itemCount - 1\r\n }\r\n }\r\n var $newItem = $items.eq(itemIndex);\r\n this.option(\"focusedElement\", (0, _element.getPublicElement)($newItem))\r\n };\r\n _proto._nestedItemOnSelectionChangedHandler = function(args) {\r\n var selectedItem = args.addedItems.length && args.addedItems[0];\r\n var submenu = _ui2.default.getInstance(args.element);\r\n var onSelectionChanged = this._actions.onSelectionChanged;\r\n onSelectionChanged(args);\r\n selectedItem && this._clearSelectionInSubmenus(selectedItem[0], submenu);\r\n this._clearRootSelection();\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem)\r\n };\r\n _proto._clearSelectionInSubmenus = function(item, targetSubmenu) {\r\n var _this5 = this;\r\n var cleanAllSubmenus = !arguments.length;\r\n (0, _iterator.each)(this._submenus, function(index, submenu) {\r\n var $submenu = submenu._itemContainer();\r\n var isOtherItem = !$submenu.is(targetSubmenu && targetSubmenu._itemContainer());\r\n var $selectedItem = $submenu.find(\".\".concat(_this5._selectedItemClass()));\r\n if (isOtherItem && $selectedItem.length || cleanAllSubmenus) {\r\n $selectedItem.removeClass(_this5._selectedItemClass());\r\n var selectedItemData = _this5._getItemData($selectedItem);\r\n if (selectedItemData) {\r\n selectedItemData.selected = false\r\n }\r\n submenu._clearSelectedItems()\r\n }\r\n })\r\n };\r\n _proto._clearRootSelection = function() {\r\n var $prevSelectedItem = this.$element().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).first().children().children().filter(\".\".concat(this._selectedItemClass()));\r\n if ($prevSelectedItem.length) {\r\n var prevSelectedItemData = this._getItemData($prevSelectedItem);\r\n prevSelectedItemData.selected = false;\r\n $prevSelectedItem.removeClass(this._selectedItemClass())\r\n }\r\n };\r\n _proto._nestedItemOnItemClickHandler = function(e) {\r\n this._actions.onItemClick(e)\r\n };\r\n _proto._nestedItemOnItemRenderedHandler = function(e) {\r\n this._actions.onItemRendered(e)\r\n };\r\n _proto._attachSubmenuHandlers = function($rootItem, submenu) {\r\n var _this6 = this;\r\n var $submenuOverlayContent = submenu.getOverlayContent();\r\n var submenus = $submenuOverlayContent.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuMouseLeaveName = (0, _index.addNamespace)(_hover.end, this.NAME + \"_submenu\");\r\n submenu.option({\r\n onShowing: this._submenuOnShowingHandler.bind(this, $rootItem, submenu),\r\n onShown: this._submenuOnShownHandler.bind(this, $rootItem, submenu),\r\n onHiding: this._submenuOnHidingHandler.bind(this, $rootItem, submenu),\r\n onHidden: this._submenuOnHiddenHandler.bind(this, $rootItem, submenu)\r\n });\r\n (0, _iterator.each)(submenus, function(index, submenu) {\r\n _events_engine.default.off(submenu, submenuMouseLeaveName);\r\n _events_engine.default.on(submenu, submenuMouseLeaveName, null, _this6._submenuMouseLeaveHandler.bind(_this6, $rootItem))\r\n })\r\n };\r\n _proto._submenuOnShowingHandler = function($rootItem, submenu) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n this._actions.onSubmenuShowing({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: submenu\r\n });\r\n $border.show();\r\n $rootItem.addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n };\r\n _proto._submenuOnShownHandler = function($rootItem, submenu) {\r\n this._actions.onSubmenuShown({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: submenu\r\n })\r\n };\r\n _proto._submenuOnHidingHandler = function($rootItem, submenu, eventArgs) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n var args = eventArgs;\r\n args.rootItem = (0, _element.getPublicElement)($rootItem);\r\n args.submenu = submenu;\r\n this._actions.onSubmenuHiding(args);\r\n eventArgs = args;\r\n if (!eventArgs.cancel) {\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n $border.hide();\r\n $rootItem.removeClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n };\r\n _proto._submenuOnHiddenHandler = function($rootItem, submenu) {\r\n this._actions.onSubmenuHidden({\r\n rootItem: (0, _element.getPublicElement)($rootItem),\r\n submenu: submenu\r\n })\r\n };\r\n _proto._submenuMouseLeaveHandler = function($rootItem, eventArgs) {\r\n var target = (0, _renderer.default)(eventArgs.relatedTarget).parents(\".\".concat(DX_CONTEXT_MENU_CLASS))[0];\r\n var contextMenu = this._getSubmenuByRootElement($rootItem).getOverlayContent()[0];\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && target !== contextMenu) {\r\n this._clearTimeouts();\r\n setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"))\r\n }\r\n };\r\n _proto._hideSubmenuAfterTimeout = function() {\r\n if (!this._visibleSubmenu) {\r\n return\r\n }\r\n var isRootItemHovered = (0, _renderer.default)(this._visibleSubmenu.$element().context).hasClass(DX_STATE_HOVER_CLASS);\r\n var isSubmenuItemHovered = this._visibleSubmenu.getOverlayContent().find(\".\".concat(DX_STATE_HOVER_CLASS)).length;\r\n var hoveredElementFromSubMenu = this._visibleSubmenu.getOverlayContent().get(0).querySelector(\":hover\");\r\n if (!hoveredElementFromSubMenu && !isSubmenuItemHovered && !isRootItemHovered) {\r\n this._visibleSubmenu.hide()\r\n }\r\n };\r\n _proto._getSubmenuByRootElement = function($rootItem) {\r\n if (!$rootItem) {\r\n return false\r\n }\r\n var $submenu = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CLASS));\r\n return $submenu.length && _ui2.default.getInstance($submenu)\r\n };\r\n _proto.getSubmenuPosition = function($rootItem) {\r\n var isHorizontalMenu = this._isMenuHorizontal();\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var submenuPosition = {\r\n collision: \"flip\",\r\n of: $rootItem\r\n };\r\n switch (submenuDirection) {\r\n case \"leftortop\":\r\n submenuPosition.at = \"left top\";\r\n submenuPosition.my = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n break;\r\n case \"rightorbottom\":\r\n submenuPosition.at = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n submenuPosition.my = \"left top\";\r\n break;\r\n default:\r\n if (isHorizontalMenu) {\r\n submenuPosition.at = rtlEnabled ? \"right bottom\" : \"left bottom\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n } else {\r\n submenuPosition.at = rtlEnabled ? \"left top\" : \"right top\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n }\r\n }\r\n return submenuPosition\r\n };\r\n _proto._renderBorderElement = function($item) {\r\n (0, _renderer.default)(\"
\").appendTo($item).addClass(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS).hide()\r\n };\r\n _proto._itemPointerDownHandler = function(e) {\r\n var $target = (0, _renderer.default)(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n if ($closestItem.hasClass(\"dx-menu-item-has-submenu\")) {\r\n this.option(\"focusedElement\", null);\r\n return\r\n }\r\n _MenuBase.prototype._itemPointerDownHandler.call(this, e)\r\n };\r\n _proto._hoverStartHandler = function(e) {\r\n var mouseMoveEventName = (0, _index.addNamespace)(_pointer.default.move, this.NAME);\r\n var $item = this._getItemElementByEventArgs(e);\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n var isSelectionActive = (0, _type.isDefined)(e.buttons) && 1 === e.buttons || !(0, _type.isDefined)(e.buttons) && 1 === e.which;\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n _events_engine.default.off($item, mouseMoveEventName);\r\n if (!this._hasChildren(node)) {\r\n this._showSubmenuTimer = setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"));\r\n return\r\n }\r\n if (\"onHover\" === this._getShowFirstSubmenuMode() && !isSelectionActive) {\r\n var submenu = this._getSubmenuByElement($item);\r\n this._clearTimeouts();\r\n if (!submenu.isOverlayVisible()) {\r\n _events_engine.default.on($item, mouseMoveEventName, this._itemMouseMoveHandler.bind(this));\r\n this._showSubmenuTimer = this._getDelay(\"hide\")\r\n }\r\n }\r\n };\r\n _proto._hoverEndHandler = function(eventArg) {\r\n var _this7 = this;\r\n var $item = this._getItemElementByEventArgs(eventArg);\r\n var relatedTarget = (0, _renderer.default)(eventArg.relatedTarget);\r\n _MenuBase.prototype._hoverEndHandler.call(this, eventArg);\r\n this._clearTimeouts();\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n if (relatedTarget.hasClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)) {\r\n return\r\n }\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && !relatedTarget.hasClass(DX_MENU_ITEMS_CONTAINER_CLASS)) {\r\n this._hideSubmenuTimer = setTimeout(function() {\r\n _this7._hideSubmenuAfterTimeout()\r\n }, this._getDelay(\"hide\"))\r\n }\r\n };\r\n _proto._hideVisibleSubmenu = function() {\r\n if (!this._visibleSubmenu) {\r\n return false\r\n }\r\n this._hideSubmenu(this._visibleSubmenu);\r\n return true\r\n };\r\n _proto._showSubmenu = function($itemElement) {\r\n var submenu = this._getSubmenuByElement($itemElement);\r\n if (this._visibleSubmenu !== submenu) {\r\n this._hideVisibleSubmenu()\r\n }\r\n if (submenu) {\r\n this._clearTimeouts();\r\n submenu.show();\r\n this.option(\"focusedElement\", submenu.option(\"focusedElement\"))\r\n }\r\n this._visibleSubmenu = submenu;\r\n this._hoveredRootItem = $itemElement\r\n };\r\n _proto._hideSubmenu = function(submenu) {\r\n submenu && submenu.hide();\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n this._hoveredRootItem = null\r\n };\r\n _proto._itemMouseMoveHandler = function(e) {\r\n var _this8 = this;\r\n if (e.pointers && e.pointers.length) {\r\n return\r\n }\r\n var $item = (0, _renderer.default)(e.currentTarget);\r\n if (!(0, _type.isDefined)(this._showSubmenuTimer)) {\r\n return\r\n }\r\n this._clearTimeouts();\r\n this._showSubmenuTimer = setTimeout(function() {\r\n var submenu = _this8._getSubmenuByElement($item);\r\n if (submenu && !submenu.isOverlayVisible()) {\r\n _this8._showSubmenu($item)\r\n }\r\n }, this._getDelay(\"show\"))\r\n };\r\n _proto._clearTimeouts = function() {\r\n clearTimeout(this._hideSubmenuTimer);\r\n clearTimeout(this._showSubmenuTimer)\r\n };\r\n _proto._getSubmenuByElement = function($itemElement, itemData) {\r\n var submenu = this._getSubmenuByRootElement($itemElement);\r\n if (submenu) {\r\n return submenu\r\n } else {\r\n itemData = itemData || this._getItemData($itemElement);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n return this._hasChildren(node) && this._renderSubmenuItems(node, $itemElement)\r\n }\r\n };\r\n _proto._updateSubmenuVisibilityOnClick = function(actionArgs) {\r\n var args = actionArgs.args.length && actionArgs.args[0];\r\n if (!args || this._disabledGetter(args.itemData)) {\r\n return\r\n }\r\n var $itemElement = (0, _renderer.default)(args.itemElement);\r\n var currentSubmenu = this._getSubmenuByElement($itemElement, args.itemData);\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (this._visibleSubmenu) {\r\n if (this._visibleSubmenu === currentSubmenu) {\r\n if (\"onClick\" === this.option(\"showFirstSubmenuMode\")) {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n return\r\n } else {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n }\r\n if (!currentSubmenu) {\r\n return\r\n }\r\n if (!currentSubmenu.isOverlayVisible()) {\r\n this._showSubmenu($itemElement);\r\n return\r\n }\r\n };\r\n _proto._optionChanged = function(args) {\r\n if (ACTIONS.indexOf(args.name) >= 0) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"orientation\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"showFirstSubmenuMode\":\r\n case \"hideSubmenuOnMouseLeave\":\r\n break;\r\n case \"showSubmenuMode\":\r\n this._changeSubmenusOption(args.name, args.value);\r\n break;\r\n case \"adaptivityEnabled\":\r\n args.value ? this._initAdaptivity() : this._removeAdaptivity();\r\n break;\r\n case \"width\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(args.name, args.value);\r\n this._overlay.option(args.name, args.value)\r\n }\r\n _MenuBase.prototype._optionChanged.call(this, args);\r\n this._dimensionChanged();\r\n break;\r\n case \"animation\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(\"animationEnabled\", !!args.value)\r\n }\r\n _MenuBase.prototype._optionChanged.call(this, args);\r\n break;\r\n default:\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(args.name, args.value)\r\n }\r\n _MenuBase.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto._changeSubmenusOption = function(name, value) {\r\n (0, _iterator.each)(this._submenus, function(index, submenu) {\r\n submenu.option(name, value)\r\n })\r\n };\r\n _proto.selectItem = function(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n _MenuBase.prototype.selectItem.call(this, itemElement)\r\n };\r\n _proto.unselectItem = function(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n _MenuBase.prototype.selectItem.call(this, itemElement)\r\n };\r\n return Menu\r\n}(_ui.default);\r\n(0, _component_registrator.default)(\"dxMenu\", Menu);\r\nvar _default = Menu;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.row_dragging.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.row_dragging\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"rowDragging\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.search.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _query = _interopRequireDefault(require(\"../../data/query\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar SEARCH_PANEL_CLASS = \"search-panel\";\r\nvar SEARCH_TEXT_CLASS = \"search-text\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar FILTERING_TIMEOUT = 700;\r\n\r\nfunction allowSearch(column) {\r\n return (0, _type.isDefined)(column.allowSearch) ? column.allowSearch : column.allowFiltering\r\n}\r\n\r\nfunction parseValue(column, text) {\r\n var lookup = column.lookup;\r\n if (!column.parseValue) {\r\n return text\r\n }\r\n if (lookup) {\r\n return column.parseValue.call(lookup, text)\r\n }\r\n return column.parseValue(text)\r\n}\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n searchPanel: {\r\n visible: false,\r\n width: 160,\r\n placeholder: _message.default.format(\"dxDataGrid-searchPanelPlaceholder\"),\r\n highlightSearchText: true,\r\n highlightCaseSensitive: false,\r\n text: \"\",\r\n searchVisibleColumnsOnly: false\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n data: function() {\r\n var calculateSearchFilter = function(that, text) {\r\n var i;\r\n var column;\r\n var columns = that._columnsController.getColumns();\r\n var searchVisibleColumnsOnly = that.option(\"searchPanel.searchVisibleColumnsOnly\");\r\n var lookup;\r\n var filters = [];\r\n if (!text) {\r\n return null\r\n }\r\n\r\n function onQueryDone(items) {\r\n var valueGetter = (0, _data.compileGetter)(lookup.valueExpr);\r\n for (var _i = 0; _i < items.length; _i++) {\r\n var value = valueGetter(items[_i]);\r\n filters.push(column.createFilterExpression(value, null, \"search\"))\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n if (searchVisibleColumnsOnly && !column.visible) {\r\n continue\r\n }\r\n if (allowSearch(column) && column.calculateFilterExpression) {\r\n lookup = column.lookup;\r\n var filterValue = parseValue(column, text);\r\n if (lookup && lookup.items) {\r\n (0, _query.default)(lookup.items).filter(column.createFilterExpression.call({\r\n dataField: lookup.displayExpr,\r\n dataType: lookup.dataType,\r\n calculateFilterExpression: column.calculateFilterExpression\r\n }, filterValue, null, \"search\")).enumerate().done(onQueryDone)\r\n } else {\r\n if (void 0 !== filterValue) {\r\n filters.push(column.createFilterExpression(filterValue, null, \"search\"))\r\n }\r\n }\r\n }\r\n }\r\n return _uiGrid_core.default.combineFilters(filters, \"or\")\r\n };\r\n return {\r\n publicMethods: function() {\r\n return this.callBase().concat([\"searchByText\"])\r\n },\r\n _calculateAdditionalFilter: function() {\r\n var that = this;\r\n var filter = that.callBase();\r\n var searchFilter = calculateSearchFilter(that, that.option(\"searchPanel.text\"));\r\n return _uiGrid_core.default.combineFilters([filter, searchFilter])\r\n },\r\n searchByText: function(text) {\r\n this.option(\"searchPanel.text\", text)\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n switch (args.fullName) {\r\n case \"searchPanel.text\":\r\n case \"searchPanel\":\r\n that._applyFilter();\r\n args.handled = true;\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n }\r\n }\r\n }()\r\n },\r\n views: {\r\n headerPanel: function() {\r\n var getSearchPanelOptions = function(that) {\r\n return that.option(\"searchPanel\")\r\n };\r\n return {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._prepareSearchItem(items)\r\n },\r\n _prepareSearchItem: function(items) {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n var searchPanelOptions = getSearchPanelOptions(that);\r\n if (searchPanelOptions && searchPanelOptions.visible) {\r\n var toolbarItem = {\r\n template: function(data, index, container) {\r\n var $search = (0, _renderer.default)(\"
\").addClass(that.addWidgetPrefix(SEARCH_PANEL_CLASS)).appendTo(container);\r\n that.getController(\"editorFactory\").createEditor($search, {\r\n width: searchPanelOptions.width,\r\n placeholder: searchPanelOptions.placeholder,\r\n parentType: \"searchPanel\",\r\n value: that.option(\"searchPanel.text\"),\r\n updateValueTimeout: FILTERING_TIMEOUT,\r\n setValue: function(value) {\r\n dataController.searchByText(value)\r\n },\r\n editorOptions: {\r\n inputAttr: {\r\n \"aria-label\": _message.default.format(\"\".concat(that.component.NAME, \"-ariaSearchInGrid\"))\r\n }\r\n }\r\n });\r\n that.resize()\r\n },\r\n name: \"searchPanel\",\r\n location: \"after\",\r\n locateInMenu: \"never\",\r\n sortIndex: 40\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n getSearchTextEditor: function() {\r\n var that = this;\r\n var $element = that.element();\r\n var $searchPanel = $element.find(\".\" + that.addWidgetPrefix(SEARCH_PANEL_CLASS)).filter(function() {\r\n return (0, _renderer.default)(this).closest(\".\" + that.addWidgetPrefix(HEADER_PANEL_CLASS)).is($element)\r\n });\r\n if ($searchPanel.length) {\r\n return $searchPanel.dxTextBox(\"instance\")\r\n }\r\n return null\r\n },\r\n isVisible: function() {\r\n var searchPanelOptions = getSearchPanelOptions(this);\r\n return this.callBase() || searchPanelOptions && searchPanelOptions.visible\r\n },\r\n optionChanged: function(args) {\r\n if (\"searchPanel\" === args.name) {\r\n if (\"searchPanel.text\" === args.fullName) {\r\n var editor = this.getSearchTextEditor();\r\n if (editor) {\r\n editor.option(\"value\", args.value)\r\n }\r\n } else {\r\n this._invalidate()\r\n }\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n }(),\r\n rowsView: {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._searchParams = []\r\n },\r\n _getFormattedSearchText: function(column, searchText) {\r\n var value = parseValue(column, searchText);\r\n var formatOptions = _uiGrid_core.default.getFormatOptionsByColumn(column, \"search\");\r\n return _uiGrid_core.default.formatValue(value, formatOptions)\r\n },\r\n _getStringNormalizer: function() {\r\n var isCaseSensitive = this.option(\"searchPanel.highlightCaseSensitive\");\r\n return function(str) {\r\n return isCaseSensitive ? str : str.toLowerCase()\r\n }\r\n },\r\n _findHighlightingTextNodes: function(column, cellElement, searchText) {\r\n var _$items;\r\n var that = this;\r\n var $parent = cellElement.parent();\r\n var $items;\r\n var stringNormalizer = this._getStringNormalizer();\r\n var normalizedSearchText = stringNormalizer(searchText);\r\n if (!$parent.length) {\r\n $parent = (0, _renderer.default)(\"
\").append(cellElement)\r\n } else {\r\n if (column) {\r\n if (column.groupIndex >= 0 && !column.showWhenGrouped) {\r\n $items = cellElement\r\n } else {\r\n var columnIndex = that._columnsController.getVisibleIndex(column.index);\r\n $items = $parent.children(\"td\").eq(columnIndex).find(\"*\")\r\n }\r\n }\r\n }\r\n $items = null !== (_$items = $items) && void 0 !== _$items && _$items.length ? $items : $parent.find(\"*\");\r\n $items = $items.filter(function(_, element) {\r\n var $contents = (0, _renderer.default)(element).contents();\r\n for (var i = 0; i < $contents.length; i++) {\r\n var node = $contents.get(i);\r\n if (3 === node.nodeType) {\r\n return stringNormalizer(node.textContent || node.nodeValue).indexOf(normalizedSearchText) > -1\r\n }\r\n return false\r\n }\r\n });\r\n return $items\r\n },\r\n _highlightSearchTextCore: function($textNode, searchText) {\r\n var that = this;\r\n var $searchTextSpan = (0, _renderer.default)(\"\").addClass(that.addWidgetPrefix(SEARCH_TEXT_CLASS));\r\n var text = $textNode.text();\r\n var firstContentElement = $textNode[0];\r\n var stringNormalizer = this._getStringNormalizer();\r\n var index = stringNormalizer(text).indexOf(stringNormalizer(searchText));\r\n if (index >= 0) {\r\n if (firstContentElement.textContent) {\r\n firstContentElement.textContent = text.substr(0, index)\r\n } else {\r\n firstContentElement.nodeValue = text.substr(0, index)\r\n }\r\n $textNode.after($searchTextSpan.text(text.substr(index, searchText.length)));\r\n $textNode = (0, _renderer.default)(_dom_adapter.default.createTextNode(text.substr(index + searchText.length))).insertAfter($searchTextSpan);\r\n return that._highlightSearchTextCore($textNode, searchText)\r\n }\r\n },\r\n _highlightSearchText: function(cellElement, isEquals, column) {\r\n var that = this;\r\n var stringNormalizer = this._getStringNormalizer();\r\n var searchText = that.option(\"searchPanel.text\");\r\n if (isEquals && column) {\r\n searchText = searchText && that._getFormattedSearchText(column, searchText)\r\n }\r\n if (searchText && that.option(\"searchPanel.highlightSearchText\")) {\r\n var textNodes = that._findHighlightingTextNodes(column, cellElement, searchText);\r\n (0, _iterator.each)(textNodes, function(_, element) {\r\n (0, _iterator.each)((0, _renderer.default)(element).contents(), function(_, textNode) {\r\n if (isEquals) {\r\n if (stringNormalizer((0, _renderer.default)(textNode).text()) === stringNormalizer(searchText)) {\r\n (0, _renderer.default)(this).replaceWith((0, _renderer.default)(\"\").addClass(that.addWidgetPrefix(SEARCH_TEXT_CLASS)).text((0, _renderer.default)(textNode).text()))\r\n }\r\n } else {\r\n that._highlightSearchTextCore((0, _renderer.default)(textNode), searchText)\r\n }\r\n })\r\n })\r\n }\r\n },\r\n _renderCore: function() {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"rowTemplate\")) {\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n clearTimeout(this._highlightTimer);\r\n this._highlightTimer = setTimeout(function() {\r\n this._highlightSearchText(this.getTableElement())\r\n }.bind(this))\r\n } else {\r\n this._highlightSearchText(this.getTableElement())\r\n }\r\n }\r\n },\r\n _updateCell: function($cell, parameters) {\r\n var column = parameters.column;\r\n var dataType = column.lookup && column.lookup.dataType || column.dataType;\r\n var isEquals = \"string\" !== dataType;\r\n if (allowSearch(column) && !parameters.isOnForm) {\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n if (!this._searchParams.length) {\r\n clearTimeout(this._highlightTimer);\r\n this._highlightTimer = setTimeout(function() {\r\n this._searchParams.forEach(function(params) {\r\n this._highlightSearchText.apply(this, params)\r\n }.bind(this));\r\n this._searchParams = []\r\n }.bind(this))\r\n }\r\n this._searchParams.push([$cell, isEquals, column])\r\n } else {\r\n this._highlightSearchText($cell, isEquals, column)\r\n }\r\n }\r\n this.callBase($cell, parameters)\r\n },\r\n dispose: function() {\r\n clearTimeout(this._highlightTimer);\r\n this.callBase()\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.notification.progress_panel.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _icon = require(\"../../core/utils/icon\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _progress_bar = _interopRequireDefault(require(\"../progress_bar\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\nvar _scroll_view = _interopRequireDefault(require(\"../scroll_view\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_PROGRESS_PANEL_CLASS = \"dx-filemanager-progress-panel\";\r\nvar FILE_MANAGER_PROGRESS_PANEL_CONTAINER_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-container\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_TITLE_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-title\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_TITLE_TEXT_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-title-text\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_CLOSE_BUTTON_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-close-button\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_INFOS_CONTAINER_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-infos-container\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_SEPARATOR_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-separator\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_INFO_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-info\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_COMMON_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-common\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_INFO_WITH_DETAILS_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-info-with-details\");\r\nvar FILE_MANAGER_PROGRESS_PANEL_DETAILS_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_PANEL_CLASS, \"-details\");\r\nvar FILE_MANAGER_PROGRESS_BOX_CLASS = \"dx-filemanager-progress-box\";\r\nvar FILE_MANAGER_PROGRESS_BOX_ERROR_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-error\");\r\nvar FILE_MANAGER_PROGRESS_BOX_WITHOUT_CLOSE_BUTTON_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-without-close-button\");\r\nvar FILE_MANAGER_PROGRESS_BOX_IMAGE_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-image\");\r\nvar FILE_MANAGER_PROGRESS_BOX_WRAPPER_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-wrapper\");\r\nvar FILE_MANAGER_PROGRESS_BOX_COMMON_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-common\");\r\nvar FILE_MANAGER_PROGRESS_BOX_PROGRESS_BAR_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-progress-bar\");\r\nvar FILE_MANAGER_PROGRESS_BOX_CLOSE_BUTTON_CLASS = \"\".concat(FILE_MANAGER_PROGRESS_BOX_CLASS, \"-close-button\");\r\nvar DX_CARD_CLASS = \"dx-card\";\r\nvar FileManagerProgressPanel = function(_Widget) {\r\n _inheritsLoose(FileManagerProgressPanel, _Widget);\r\n\r\n function FileManagerProgressPanel() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerProgressPanel.prototype;\r\n _proto._initMarkup = function() {\r\n var _this = this;\r\n _Widget.prototype._initMarkup.call(this);\r\n this._initActions();\r\n this._operationCount = 0;\r\n this.$element().addClass(FILE_MANAGER_PROGRESS_PANEL_CLASS);\r\n var $scrollView = (0, _renderer.default)(\"
\").appendTo(this.$element());\r\n var $container = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_PROGRESS_PANEL_CONTAINER_CLASS).appendTo($scrollView);\r\n this._scrollView = this._createComponent($scrollView, _scroll_view.default, {\r\n scrollByContent: true,\r\n scrollByThumb: true,\r\n showScrollbar: \"onScroll\"\r\n });\r\n var $title = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_PROGRESS_PANEL_TITLE_CLASS).appendTo($container);\r\n (0, _renderer.default)(\"
\").text(_message.default.format(\"dxFileManager-notificationProgressPanelTitle\")).addClass(FILE_MANAGER_PROGRESS_PANEL_TITLE_TEXT_CLASS).appendTo($title);\r\n var $closeButton = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_PROGRESS_PANEL_CLOSE_BUTTON_CLASS).appendTo($title);\r\n this._createComponent($closeButton, _button.default, {\r\n icon: \"close\",\r\n stylingMode: \"text\",\r\n onClick: function() {\r\n return _this._raisePanelClosed()\r\n }\r\n });\r\n this._$infosContainer = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_PROGRESS_PANEL_INFOS_CONTAINER_CLASS).appendTo($container);\r\n this._renderEmptyListText()\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {\r\n onOperationClosed: null,\r\n onOperationCanceled: null,\r\n onOperationItemCanceled: null,\r\n onPanelClosed: null\r\n })\r\n };\r\n _proto._initActions = function() {\r\n this._actions = {\r\n onOperationClosed: this._createActionByOption(\"onOperationClosed\"),\r\n onOperationCanceled: this._createActionByOption(\"onOperationCanceled\"),\r\n onOperationItemCanceled: this._createActionByOption(\"onOperationItemCanceled\"),\r\n onPanelClosed: this._createActionByOption(\"onPanelClosed\")\r\n }\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"test\":\r\n break;\r\n case \"onOperationClosed\":\r\n case \"onOperationCanceled\":\r\n case \"onOperationItemCanceled\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto.addOperation = function(commonText, showCloseButtonAlways, allowProgressAutoUpdate) {\r\n var _this2 = this;\r\n if (this._operationCount) {\r\n (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_PROGRESS_PANEL_SEPARATOR_CLASS).prependTo(this._$infosContainer)\r\n } else {\r\n this._$infosContainer.empty()\r\n }\r\n this._operationCount++;\r\n var info = {\r\n customCloseHandling: showCloseButtonAlways,\r\n allowProgressAutoUpdate: (0, _common.ensureDefined)(allowProgressAutoUpdate, true)\r\n };\r\n var $info = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_PROGRESS_PANEL_INFO_CLASS).prependTo(this._$infosContainer);\r\n info.$info = $info;\r\n var $common = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_PROGRESS_PANEL_COMMON_CLASS).appendTo($info);\r\n info.common = this._createProgressBox($common, {\r\n commonText: commonText,\r\n showCloseButton: true,\r\n showCloseButtonAlways: showCloseButtonAlways,\r\n onCloseButtonClick: function() {\r\n return _this2._closeOperation(info)\r\n }\r\n });\r\n return info\r\n };\r\n _proto.addOperationDetails = function(info, details, showCloseButton) {\r\n var _this3 = this;\r\n info.$info.addClass(FILE_MANAGER_PROGRESS_PANEL_INFO_WITH_DETAILS_CLASS);\r\n var $details = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_PROGRESS_PANEL_DETAILS_CLASS).appendTo(info.$info);\r\n info.details = details.map(function(itemInfo, index) {\r\n itemInfo.info = info;\r\n return _this3._createDetailsItem($details, itemInfo, index, false, showCloseButton)\r\n })\r\n };\r\n _proto._createDetailsItem = function($container, item, itemIndex, skipProgressBox, showCloseButton) {\r\n var _this4 = this;\r\n var $detailsItem = (0, _renderer.default)(\"
\").appendTo($container);\r\n if (itemIndex !== -1) {\r\n $detailsItem.addClass(DX_CARD_CLASS)\r\n }\r\n return this._createProgressBox($detailsItem, {\r\n commonText: item.commonText,\r\n imageUrl: item.imageUrl,\r\n skipProgressBox: skipProgressBox,\r\n showCloseButton: showCloseButton,\r\n showCloseButtonAlways: showCloseButton,\r\n onCloseButtonClick: function() {\r\n return _this4._cancelOperationItem(item, itemIndex)\r\n }\r\n })\r\n };\r\n _proto.completeOperationItem = function(operationInfo, itemIndex, commonProgress) {\r\n if (operationInfo.allowProgressAutoUpdate) {\r\n this.updateOperationItemProgress(operationInfo, itemIndex, 100, commonProgress)\r\n }\r\n this._setCloseButtonVisible(operationInfo.details[itemIndex], false)\r\n };\r\n _proto.updateOperationItemProgress = function(operationInfo, itemIndex, itemProgress, commonProgress) {\r\n operationInfo.common.progressBar.option(\"value\", commonProgress);\r\n if (operationInfo.details) {\r\n var detailsItem = operationInfo.details[itemIndex];\r\n detailsItem.progressBar.option(\"value\", itemProgress)\r\n }\r\n };\r\n _proto.completeOperation = function(info, commonText, isError, statusText) {\r\n info.completed = true;\r\n info.common.$commonText.text(commonText);\r\n if (isError) {\r\n this._removeProgressBar(info.common)\r\n } else {\r\n if (info.allowProgressAutoUpdate) {\r\n info.common.progressBar.option(\"value\", 100)\r\n }\r\n }\r\n if (statusText) {\r\n this._setProgressBarText(info.common, statusText)\r\n }\r\n this._setCloseButtonVisible(info.common, true)\r\n };\r\n _proto.completeSingleOperationWithError = function(info, errorText) {\r\n var _info$details;\r\n var detailsItem = null === (_info$details = info.details) || void 0 === _info$details ? void 0 : _info$details[0];\r\n info.completed = true;\r\n this._renderOperationError(detailsItem || info.common, errorText);\r\n this._setCloseButtonVisible(info.common, true);\r\n if (detailsItem) {\r\n this._setCloseButtonVisible(detailsItem, false)\r\n }\r\n };\r\n _proto.addOperationDetailsError = function(info, index, errorText) {\r\n var detailsItem = info.details[index];\r\n this._renderOperationError(detailsItem, errorText);\r\n this._setCloseButtonVisible(detailsItem, false)\r\n };\r\n _proto.renderError = function($container, $target, errorText) {\r\n (0, _renderer.default)(\"
\").text(errorText).addClass(FILE_MANAGER_PROGRESS_BOX_ERROR_CLASS).appendTo($container)\r\n };\r\n _proto.createErrorDetailsProgressBox = function($container, item, errorText) {\r\n var detailsItem = this._createDetailsItem($container, item, -1, true);\r\n this._renderOperationError(detailsItem, errorText)\r\n };\r\n _proto._renderEmptyListText = function() {\r\n this._$infosContainer.text(_message.default.format(\"dxFileManager-notificationProgressPanelEmptyListText\"))\r\n };\r\n _proto._renderOperationError = function(info, errorText) {\r\n this._removeProgressBar(info);\r\n this.renderError(info.$wrapper, info.$commonText, errorText)\r\n };\r\n _proto._removeProgressBar = function(progressBox) {\r\n if (progressBox.progressBar) {\r\n progressBox.progressBar.dispose();\r\n progressBox.progressBar.$element().remove();\r\n progressBox.progressBar = null\r\n }\r\n };\r\n _proto._createProgressBox = function($container, options) {\r\n var _this5 = this;\r\n $container.addClass(FILE_MANAGER_PROGRESS_BOX_CLASS);\r\n if (!options.showCloseButtonAlways) {\r\n $container.addClass(FILE_MANAGER_PROGRESS_BOX_WITHOUT_CLOSE_BUTTON_CLASS)\r\n }\r\n if (options.imageUrl) {\r\n (0, _icon.getImageContainer)(options.imageUrl).addClass(FILE_MANAGER_PROGRESS_BOX_IMAGE_CLASS).appendTo($container)\r\n }\r\n var $wrapper = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_PROGRESS_BOX_WRAPPER_CLASS).appendTo($container);\r\n var $commonText = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_PROGRESS_BOX_COMMON_CLASS).text(options.commonText).appendTo($wrapper);\r\n var progressBar = null;\r\n if (!options.skipProgressBox) {\r\n var $progressBar = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_PROGRESS_BOX_PROGRESS_BAR_CLASS).appendTo($wrapper);\r\n progressBar = this._createComponent($progressBar, _progress_bar.default, {\r\n min: 0,\r\n max: 100,\r\n width: \"100%\",\r\n validationMessageMode: \"always\",\r\n statusFormat: function(ratio, value) {\r\n return _this5._getStatusString(ratio, value)\r\n }\r\n })\r\n }\r\n var closeButton = null;\r\n if (options.showCloseButton) {\r\n var $button = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_PROGRESS_BOX_CLOSE_BUTTON_CLASS).appendTo($container);\r\n closeButton = this._createComponent($button, _button.default, {\r\n icon: \"dx-filemanager-i dx-filemanager-i-cancel\",\r\n stylingMode: \"text\",\r\n visible: options.showCloseButtonAlways,\r\n onClick: options.onCloseButtonClick\r\n })\r\n }\r\n return {\r\n $commonText: $commonText,\r\n progressBar: progressBar,\r\n $element: $container,\r\n $wrapper: $wrapper,\r\n closeButton: closeButton\r\n }\r\n };\r\n _proto._setCloseButtonVisible = function(progressBox, visible) {\r\n if (progressBox.closeButton) {\r\n progressBox.$element.toggleClass(FILE_MANAGER_PROGRESS_BOX_WITHOUT_CLOSE_BUTTON_CLASS, !visible);\r\n progressBox.closeButton.option(\"visible\", visible)\r\n }\r\n };\r\n _proto._setProgressBarText = function(progressBox, text) {\r\n progressBox.progressBar.option(\"statusFormat\", function() {\r\n return text\r\n })\r\n };\r\n _proto._closeOperation = function(info) {\r\n var _this6 = this;\r\n if (info.customCloseHandling && !info.completed) {\r\n this._raiseOperationCanceled(info);\r\n this._setCloseButtonVisible(info.common, false);\r\n info.details.forEach(function(item) {\r\n return _this6._displayClosedOperationItem(item)\r\n })\r\n } else {\r\n this._raiseOperationClosed(info);\r\n info.$info.next(\".\".concat(FILE_MANAGER_PROGRESS_PANEL_SEPARATOR_CLASS)).remove();\r\n info.$info.remove();\r\n this._operationCount--;\r\n if (!this._operationCount) {\r\n this._renderEmptyListText()\r\n }\r\n }\r\n };\r\n _proto._cancelOperationItem = function(item, itemIndex) {\r\n this._raiseOperationItemCanceled(item, itemIndex);\r\n var itemInfo = item.info.details[itemIndex];\r\n this._displayClosedOperationItem(itemInfo)\r\n };\r\n _proto._displayClosedOperationItem = function(itemInfo) {\r\n this._setProgressBarText(itemInfo, _message.default.format(\"dxFileManager-notificationProgressPanelOperationCanceled\"));\r\n this._setCloseButtonVisible(itemInfo, false)\r\n };\r\n _proto._getStatusString = function(ratio, value) {\r\n return 1 === ratio ? _message.default.format(\"Done\") : Math.round(100 * ratio) + \"%\"\r\n };\r\n _proto._raiseOperationClosed = function(info) {\r\n this._actions.onOperationClosed({\r\n info: info\r\n })\r\n };\r\n _proto._raiseOperationCanceled = function(info) {\r\n this._actions.onOperationCanceled({\r\n info: info\r\n })\r\n };\r\n _proto._raiseOperationItemCanceled = function(item, itemIndex) {\r\n this._actions.onOperationItemCanceled({\r\n item: item,\r\n itemIndex: itemIndex\r\n })\r\n };\r\n _proto._raisePanelClosed = function() {\r\n this._actions.onPanelClosed()\r\n };\r\n return FileManagerProgressPanel\r\n}(_ui.default);\r\nvar _default = FileManagerProgressPanel;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./fileManager.scss?vue&type=style&index=0&id=e207bd1c&scoped=true&lang=scss&\"","/**\r\n * DevExtreme (exporter/excel/excel.cell_alignment_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar cellAlignmentHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if ((0, _type.isDefined)(sourceObj)) {\r\n result = {\r\n vertical: sourceObj.vertical,\r\n wrapText: sourceObj.wrapText,\r\n horizontal: sourceObj.horizontal\r\n };\r\n if (cellAlignmentHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if ((0, _type.isDefined)(source)) {\r\n result = {};\r\n if (void 0 !== source.horizontal) {\r\n result.horizontal = source.horizontal\r\n }\r\n if (void 0 !== source.vertical) {\r\n result.vertical = source.vertical\r\n }\r\n if (void 0 !== source.wrapText) {\r\n result.wrapText = source.wrapText\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return cellAlignmentHelper.isEmpty(leftTag) && cellAlignmentHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && leftTag.vertical === rightTag.vertical && leftTag.wrapText === rightTag.wrapText && leftTag.horizontal === rightTag.horizontal\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || !(0, _type.isDefined)(tag.vertical) && !(0, _type.isDefined)(tag.wrapText) && !(0, _type.isDefined)(tag.horizontal)\r\n },\r\n toXml: function(tag) {\r\n return _excel.default.toXml(\"alignment\", {\r\n vertical: tag.vertical,\r\n wrapText: (0, _type.isDefined)(tag.wrapText) ? Number(tag.wrapText) : void 0,\r\n horizontal: tag.horizontal\r\n })\r\n }\r\n};\r\nvar _default = cellAlignmentHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/toolbar/ui.toolbar.strategy.drop_down_menu.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiToolbar = _interopRequireDefault(require(\"./ui.toolbar.strategy\"));\r\nvar _uiToolbar2 = _interopRequireDefault(require(\"./ui.toolbar.menu\"));\r\nvar _drop_down_menu = _interopRequireDefault(require(\"../drop_down_menu\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar MENU_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar DropDownMenuStrategy = _uiToolbar.default.inherit({\r\n NAME: \"dropDownMenu\",\r\n render: function() {\r\n if (!this._hasVisibleMenuItems()) {\r\n return\r\n }\r\n this._renderMenuButtonContainer();\r\n this._renderWidget()\r\n },\r\n renderMenuItems: function() {\r\n if (!this._menu) {\r\n this.render()\r\n }\r\n this.callBase();\r\n if (this._menu && !this._menu.option(\"items\").length) {\r\n this._menu.close()\r\n }\r\n },\r\n _menuWidgetClass: function() {\r\n return _drop_down_menu.default\r\n },\r\n _widgetOptions: function() {\r\n var that = this;\r\n return (0, _extend.extend)(this.callBase(), {\r\n deferRendering: true,\r\n container: that._toolbar.option(\"menuContainer\"),\r\n menuWidget: _uiToolbar2.default,\r\n onOptionChanged: function(e) {\r\n if (\"items\" === e.name) {\r\n that._updateMenuVisibility(e.value)\r\n }\r\n },\r\n popupPosition: {\r\n at: \"bottom right\",\r\n my: \"top right\"\r\n }\r\n })\r\n },\r\n _updateMenuVisibility: function(menuItems) {\r\n var items = menuItems || this._getMenuItems();\r\n var isMenuVisible = items.length && this._hasVisibleMenuItems(items);\r\n this._toggleMenuVisibility(isMenuVisible)\r\n },\r\n _toggleMenuVisibility: function(value) {\r\n if (!this._menuContainer()) {\r\n return\r\n }\r\n this._menuContainer().toggleClass(MENU_INVISIBLE_CLASS, !value)\r\n },\r\n _menuContainer: function() {\r\n return this._$menuButtonContainer\r\n }\r\n});\r\nvar _default = DropDownMenuStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.columns_controller.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\nvar _variable_wrapper = _interopRequireDefault(require(\"../../core/utils/variable_wrapper\"));\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _config = _interopRequireDefault(require(\"../../core/config\"));\r\nvar _object = require(\"../../core/utils/object\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _inflector = require(\"../../core/utils/inflector\");\r\nvar _date_serialization = _interopRequireDefault(require(\"../../core/utils/date_serialization\"));\r\nvar _number = _interopRequireDefault(require(\"../../localization/number\"));\r\nvar _date = _interopRequireDefault(require(\"../../localization/date\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _abstract_store = _interopRequireDefault(require(\"../../data/abstract_store\"));\r\nvar _data_source = require(\"../../data/data_source/data_source\");\r\nvar _utils = require(\"../../data/data_source/utils\");\r\nvar _filtering = _interopRequireDefault(require(\"../shared/filtering\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction ownKeys(object, enumerableOnly) {\r\n var keys = Object.keys(object);\r\n if (Object.getOwnPropertySymbols) {\r\n var symbols = Object.getOwnPropertySymbols(object);\r\n if (enumerableOnly) {\r\n symbols = symbols.filter(function(sym) {\r\n return Object.getOwnPropertyDescriptor(object, sym).enumerable\r\n })\r\n }\r\n keys.push.apply(keys, symbols)\r\n }\r\n return keys\r\n}\r\n\r\nfunction _objectSpread(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = null != arguments[i] ? arguments[i] : {};\r\n if (i % 2) {\r\n ownKeys(Object(source), true).forEach(function(key) {\r\n _defineProperty(target, key, source[key])\r\n })\r\n } else {\r\n if (Object.getOwnPropertyDescriptors) {\r\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source))\r\n } else {\r\n ownKeys(Object(source)).forEach(function(key) {\r\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\r\n })\r\n }\r\n }\r\n }\r\n return target\r\n}\r\n\r\nfunction _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\nvar USER_STATE_FIELD_NAMES_15_1 = [\"filterValues\", \"filterType\", \"fixed\", \"fixedPosition\"];\r\nvar USER_STATE_FIELD_NAMES = [\"visibleIndex\", \"dataField\", \"name\", \"dataType\", \"width\", \"visible\", \"sortOrder\", \"lastSortOrder\", \"sortIndex\", \"groupIndex\", \"filterValue\", \"selectedFilterOperation\", \"added\"].concat(USER_STATE_FIELD_NAMES_15_1);\r\nvar IGNORE_COLUMN_OPTION_NAMES = {\r\n visibleWidth: true,\r\n bestFitWidth: true,\r\n bufferedFilterValue: true\r\n};\r\nvar COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\nvar GROUP_COMMAND_COLUMN_NAME = \"groupExpand\";\r\nvar regExp = /columns\\[(\\d+)\\]\\.?/gi;\r\nvar globalColumnId = 1;\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n commonColumnSettings: {\r\n allowFiltering: true,\r\n allowHiding: true,\r\n allowSorting: true,\r\n allowEditing: true,\r\n encodeHtml: true,\r\n trueText: _message.default.format(\"dxDataGrid-trueText\"),\r\n falseText: _message.default.format(\"dxDataGrid-falseText\")\r\n },\r\n allowColumnReordering: false,\r\n allowColumnResizing: false,\r\n columnResizingMode: \"nextColumn\",\r\n columnMinWidth: void 0,\r\n columnWidth: void 0,\r\n adaptColumnWidthByRatio: true,\r\n columns: void 0,\r\n regenerateColumnsByVisibleItems: false,\r\n customizeColumns: null,\r\n dateSerializationFormat: void 0\r\n }\r\n },\r\n controllers: {\r\n columns: _uiGrid_core.default.Controller.inherit(function() {\r\n var DEFAULT_COLUMN_OPTIONS = {\r\n visible: true,\r\n showInColumnChooser: true\r\n };\r\n var DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"]\r\n };\r\n var COLUMN_INDEX_OPTIONS = {\r\n visibleIndex: true,\r\n groupIndex: true,\r\n grouped: true,\r\n sortIndex: true,\r\n sortOrder: true\r\n };\r\n var GROUP_LOCATION = \"group\";\r\n var COLUMN_CHOOSER_LOCATION = \"columnChooser\";\r\n var setFilterOperationsAsDefaultValues = function(column) {\r\n column.filterOperations = column.defaultFilterOperations\r\n };\r\n var createColumn = function(that, columnOptions, userStateColumnOptions, bandColumn) {\r\n var commonColumnOptions = {};\r\n if (columnOptions) {\r\n if ((0, _type.isString)(columnOptions)) {\r\n columnOptions = {\r\n dataField: columnOptions\r\n }\r\n }\r\n that.setName(columnOptions);\r\n var result = {};\r\n if (columnOptions.command) {\r\n result = (0, _object.deepExtendArraySafe)(commonColumnOptions, columnOptions)\r\n } else {\r\n commonColumnOptions = that.getCommonSettings(columnOptions);\r\n if (userStateColumnOptions && userStateColumnOptions.name && userStateColumnOptions.dataField) {\r\n columnOptions = (0, _extend.extend)({}, columnOptions, {\r\n dataField: userStateColumnOptions.dataField\r\n })\r\n }\r\n var calculatedColumnOptions = that._createCalculatedColumnOptions(columnOptions, bandColumn);\r\n if (!columnOptions.type) {\r\n result = {\r\n headerId: \"dx-col-\".concat(globalColumnId++)\r\n }\r\n }\r\n result = (0, _object.deepExtendArraySafe)(result, DEFAULT_COLUMN_OPTIONS);\r\n (0, _object.deepExtendArraySafe)(result, commonColumnOptions);\r\n (0, _object.deepExtendArraySafe)(result, calculatedColumnOptions);\r\n (0, _object.deepExtendArraySafe)(result, columnOptions);\r\n (0, _object.deepExtendArraySafe)(result, {\r\n selector: null\r\n })\r\n }\r\n if (columnOptions.filterOperations === columnOptions.defaultFilterOperations) {\r\n setFilterOperationsAsDefaultValues(result)\r\n }\r\n return result\r\n }\r\n };\r\n var createColumnsFromOptions = function createColumnsFromOptions(that, columnsOptions, bandColumn) {\r\n var result = [];\r\n if (columnsOptions) {\r\n (0, _iterator.each)(columnsOptions, function(index, columnOptions) {\r\n var userStateColumnOptions = that._columnsUserState && checkUserStateColumn(columnOptions, that._columnsUserState[index]) && that._columnsUserState[index];\r\n var column = createColumn(that, columnOptions, userStateColumnOptions, bandColumn);\r\n if (column) {\r\n if (bandColumn) {\r\n column.ownerBand = bandColumn\r\n }\r\n result.push(column);\r\n if (column.columns) {\r\n result = result.concat(createColumnsFromOptions(that, column.columns, column));\r\n delete column.columns;\r\n column.hasColumns = true\r\n }\r\n }\r\n })\r\n }\r\n return result\r\n };\r\n var getParentBandColumns = function(columnIndex, columnParentByIndex) {\r\n var result = [];\r\n var parent = columnParentByIndex[columnIndex];\r\n while (parent) {\r\n result.unshift(parent);\r\n columnIndex = parent.index;\r\n parent = columnParentByIndex[columnIndex]\r\n }\r\n return result\r\n };\r\n var _getChildrenByBandColumn = function(columnIndex, columnChildrenByIndex, recursive) {\r\n var result = [];\r\n var children = columnChildrenByIndex[columnIndex];\r\n if (children) {\r\n for (var i = 0; i < children.length; i++) {\r\n var column = children[i];\r\n if (!(0, _type.isDefined)(column.groupIndex) || column.showWhenGrouped) {\r\n result.push(column);\r\n if (recursive && column.isBand) {\r\n result = result.concat(_getChildrenByBandColumn(column.index, columnChildrenByIndex, recursive))\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n };\r\n var getColumnByIndexes = function(that, columnIndexes) {\r\n var result;\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(column) {\r\n var ownerBand = result ? result.index : void 0;\r\n return column.ownerBand === ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n result = that._columns[columnIndexes[0]]\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n for (var i = 0; i < columnIndexes.length; i++) {\r\n result = columns[columnIndexes[i]];\r\n if (result) {\r\n columns = that._columns.filter(callbackFilter)\r\n }\r\n }\r\n }\r\n return result\r\n };\r\n var getColumnFullPath = function(that, column) {\r\n var result = [];\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(item) {\r\n return item.ownerBand === column.ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n var columnIndex = that._columns.indexOf(column);\r\n if (columnIndex >= 0) {\r\n result = [\"columns[\".concat(columnIndex, \"]\")]\r\n }\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n while (columns.length && columns.indexOf(column) !== -1) {\r\n result.unshift(\"columns[\".concat(columns.indexOf(column), \"]\"));\r\n column = bandColumnsCache.columnParentByIndex[column.index];\r\n columns = column ? that._columns.filter(callbackFilter) : []\r\n }\r\n }\r\n return result.join(\".\")\r\n };\r\n var calculateColspan = function calculateColspan(that, columnID) {\r\n var colspan = 0;\r\n var columns = that.getChildrenByBandColumn(columnID, true);\r\n (0, _iterator.each)(columns, function(_, column) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index);\r\n colspan += column.colspan || 1\r\n } else {\r\n colspan += 1\r\n }\r\n });\r\n return colspan\r\n };\r\n var processBandColumns = function(that, columns, bandColumnsCache) {\r\n var rowspan;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (column.visible || column.command) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index)\r\n }\r\n if (!column.isBand || !column.colspan) {\r\n rowspan = that.getRowCount();\r\n if (!column.command && (!(0, _type.isDefined)(column.groupIndex) || column.showWhenGrouped)) {\r\n rowspan -= getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex).length\r\n }\r\n if (rowspan > 1) {\r\n column.rowspan = rowspan\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var getValueDataType = function(value) {\r\n var dataType = (0, _type.type)(value);\r\n if (\"string\" !== dataType && \"boolean\" !== dataType && \"number\" !== dataType && \"date\" !== dataType && \"object\" !== dataType) {\r\n dataType = void 0\r\n }\r\n return dataType\r\n };\r\n var getSerializationFormat = function(dataType, value) {\r\n switch (dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n return _date_serialization.default.getDateSerializationFormat(value);\r\n case \"number\":\r\n if ((0, _type.isString)(value)) {\r\n return \"string\"\r\n }\r\n if ((0, _type.isNumeric)(value)) {\r\n return null\r\n }\r\n }\r\n };\r\n var updateSerializers = function(options, dataType) {\r\n if (!options.deserializeValue) {\r\n if (_uiGrid_core2.default.isDateType(dataType)) {\r\n options.deserializeValue = function(value) {\r\n return _date_serialization.default.deserializeDate(value)\r\n };\r\n options.serializeValue = function(value) {\r\n return (0, _type.isString)(value) ? value : _date_serialization.default.serializeDate(value, this.serializationFormat)\r\n }\r\n }\r\n if (\"number\" === dataType) {\r\n options.deserializeValue = function(value) {\r\n var parsedValue = parseFloat(value);\r\n return isNaN(parsedValue) ? value : parsedValue\r\n };\r\n options.serializeValue = function(value, target) {\r\n if (\"filter\" === target) {\r\n return value\r\n }\r\n return (0, _type.isDefined)(value) && \"string\" === this.serializationFormat ? value.toString() : value\r\n }\r\n }\r\n }\r\n };\r\n var getAlignmentByDataType = function(dataType, isRTL) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"right\";\r\n case \"boolean\":\r\n return \"center\";\r\n default:\r\n return (0, _position.getDefaultAlignment)(isRTL)\r\n }\r\n };\r\n var customizeTextForBooleanDataType = function(e) {\r\n if (true === e.value) {\r\n return this.trueText || \"true\"\r\n } else {\r\n if (false === e.value) {\r\n return this.falseText || \"false\"\r\n } else {\r\n return e.valueText || \"\"\r\n }\r\n }\r\n };\r\n var getCustomizeTextByDataType = function(dataType) {\r\n if (\"boolean\" === dataType) {\r\n return customizeTextForBooleanDataType\r\n }\r\n };\r\n var createColumnsFromDataSource = function(that, dataSource) {\r\n var firstItems = that._getFirstItems(dataSource);\r\n var fieldName;\r\n var processedFields = {};\r\n var result = [];\r\n for (var i = 0; i < firstItems.length; i++) {\r\n if (firstItems[i]) {\r\n for (fieldName in firstItems[i]) {\r\n if (!(0, _type.isFunction)(firstItems[i][fieldName]) || _variable_wrapper.default.isWrapped(firstItems[i][fieldName])) {\r\n processedFields[fieldName] = true\r\n }\r\n }\r\n }\r\n }\r\n for (fieldName in processedFields) {\r\n if (0 !== fieldName.indexOf(\"__\")) {\r\n var column = createColumn(that, fieldName);\r\n result.push(column)\r\n }\r\n }\r\n return result\r\n };\r\n var updateColumnIndexes = function(that) {\r\n (0, _iterator.each)(that._columns, function(index, column) {\r\n column.index = index\r\n });\r\n (0, _iterator.each)(that._columns, function(index, column) {\r\n if ((0, _type.isObject)(column.ownerBand)) {\r\n column.ownerBand = column.ownerBand.index\r\n }\r\n });\r\n (0, _iterator.each)(that._commandColumns, function(index, column) {\r\n column.index = -(index + 1)\r\n })\r\n };\r\n var updateColumnGroupIndexes = function(that, currentColumn) {\r\n (0, _array.normalizeIndexes)(that._columns, \"groupIndex\", currentColumn, function(column) {\r\n var grouped = column.grouped;\r\n delete column.grouped;\r\n return grouped\r\n })\r\n };\r\n var updateColumnSortIndexes = function(that, currentColumn) {\r\n (0, _iterator.each)(that._columns, function(index, column) {\r\n if ((0, _type.isDefined)(column.sortIndex) && !isSortOrderValid(column.sortOrder)) {\r\n delete column.sortIndex\r\n }\r\n });\r\n (0, _array.normalizeIndexes)(that._columns, \"sortIndex\", currentColumn, function(column) {\r\n return !(0, _type.isDefined)(column.groupIndex) && isSortOrderValid(column.sortOrder)\r\n })\r\n };\r\n var updateColumnVisibleIndexes = function(that, currentColumn) {\r\n var key;\r\n var column;\r\n var bandColumns = {};\r\n var result = [];\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var columns = that._columns.filter(function(column) {\r\n return !column.command\r\n });\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n var parentBandColumns = getParentBandColumns(i, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns.length) {\r\n var bandColumnIndex = parentBandColumns[parentBandColumns.length - 1].index;\r\n bandColumns[bandColumnIndex] = bandColumns[bandColumnIndex] || [];\r\n bandColumns[bandColumnIndex].push(column)\r\n } else {\r\n result.push(column)\r\n }\r\n }\r\n for (key in bandColumns) {\r\n (0, _array.normalizeIndexes)(bandColumns[key], \"visibleIndex\", currentColumn)\r\n }(0, _array.normalizeIndexes)(result, \"visibleIndex\", currentColumn)\r\n };\r\n var getColumnIndexByVisibleIndex = function(that, visibleIndex, location) {\r\n var rowIndex = (0, _type.isObject)(visibleIndex) ? visibleIndex.rowIndex : null;\r\n var columns = location === GROUP_LOCATION ? that.getGroupColumns() : location === COLUMN_CHOOSER_LOCATION ? that.getChooserColumns() : that.getVisibleColumns(rowIndex);\r\n var column;\r\n visibleIndex = (0, _type.isObject)(visibleIndex) ? visibleIndex.columnIndex : visibleIndex;\r\n column = columns[visibleIndex];\r\n if (column && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n column = that._columns.filter(function(col) {\r\n return column.type === col.type\r\n })[0] || column\r\n }\r\n return column && (0, _type.isDefined)(column.index) ? column.index : -1\r\n };\r\n var moveColumnToGroup = function(that, column, groupIndex) {\r\n var groupColumns = that.getGroupColumns();\r\n var i;\r\n if (groupIndex >= 0) {\r\n for (i = 0; i < groupColumns.length; i++) {\r\n if (groupColumns[i].groupIndex >= groupIndex) {\r\n groupColumns[i].groupIndex++\r\n }\r\n }\r\n } else {\r\n groupIndex = 0;\r\n for (i = 0; i < groupColumns.length; i++) {\r\n groupIndex = Math.max(groupIndex, groupColumns[i].groupIndex + 1)\r\n }\r\n }\r\n return groupIndex\r\n };\r\n\r\n function checkUserStateColumn(column, userStateColumn) {\r\n return column && userStateColumn && (userStateColumn.name === column.name || !column.name) && (userStateColumn.dataField === column.dataField || column.name)\r\n }\r\n var applyUserState = function(that) {\r\n var columnsUserState = that._columnsUserState;\r\n var ignoreColumnOptionNames = that._ignoreColumnOptionNames || [];\r\n var columns = that._columns;\r\n var columnCountById = {};\r\n var resultColumns = [];\r\n var allColumnsHaveState = true;\r\n var userStateColumnIndexes = [];\r\n var column;\r\n var userStateColumnIndex;\r\n var i;\r\n\r\n function applyFieldsState(column, userStateColumn) {\r\n if (!userStateColumn) {\r\n return\r\n }\r\n for (var index = 0; index < USER_STATE_FIELD_NAMES.length; index++) {\r\n var fieldName = USER_STATE_FIELD_NAMES[index];\r\n if ((0, _array.inArray)(fieldName, ignoreColumnOptionNames) >= 0) {\r\n continue\r\n }\r\n if (\"dataType\" === fieldName) {\r\n column[fieldName] = column[fieldName] || userStateColumn[fieldName]\r\n } else {\r\n if ((0, _array.inArray)(fieldName, USER_STATE_FIELD_NAMES_15_1) >= 0) {\r\n if (fieldName in userStateColumn) {\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n } else {\r\n if (\"selectedFilterOperation\" === fieldName && userStateColumn[fieldName]) {\r\n column.defaultSelectedFilterOperation = column[fieldName] || null\r\n }\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n }\r\n }\r\n }\r\n\r\n function findUserStateColumn(columnsUserState, column) {\r\n var id = column.name || column.dataField;\r\n var count = columnCountById[id] || 0;\r\n for (var j = 0; j < columnsUserState.length; j++) {\r\n if (checkUserStateColumn(column, columnsUserState[j])) {\r\n if (count) {\r\n count--\r\n } else {\r\n columnCountById[id] = columnCountById[id] || 0;\r\n columnCountById[id]++;\r\n return j\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n if (columnsUserState) {\r\n for (i = 0; i < columns.length; i++) {\r\n userStateColumnIndex = findUserStateColumn(columnsUserState, columns[i]);\r\n allColumnsHaveState = allColumnsHaveState && userStateColumnIndex >= 0;\r\n userStateColumnIndexes.push(userStateColumnIndex)\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n userStateColumnIndex = userStateColumnIndexes[i];\r\n if (that._hasUserState || allColumnsHaveState) {\r\n applyFieldsState(column, columnsUserState[userStateColumnIndex])\r\n }\r\n if (userStateColumnIndex >= 0 && (0, _type.isDefined)(columnsUserState[userStateColumnIndex].initialIndex)) {\r\n resultColumns[userStateColumnIndex] = column\r\n } else {\r\n resultColumns.push(column)\r\n }\r\n }\r\n var hasAddedBands = false;\r\n for (i = 0; i < columnsUserState.length; i++) {\r\n var columnUserState = columnsUserState[i];\r\n if (columnUserState.added && findUserStateColumn(columns, columnUserState) < 0) {\r\n column = createColumn(that, columnUserState.added);\r\n applyFieldsState(column, columnUserState);\r\n resultColumns.push(column);\r\n if (columnUserState.added.columns) {\r\n hasAddedBands = true\r\n }\r\n }\r\n }\r\n if (hasAddedBands) {\r\n updateColumnIndexes(that);\r\n resultColumns = createColumnsFromOptions(that, resultColumns)\r\n }\r\n assignColumns(that, resultColumns)\r\n }\r\n };\r\n var updateIndexes = function(that, column) {\r\n updateColumnIndexes(that);\r\n updateColumnGroupIndexes(that, column);\r\n updateColumnSortIndexes(that, column);\r\n resetBandColumnsCache(that);\r\n updateColumnVisibleIndexes(that, column)\r\n };\r\n var resetColumnsCache = function(that) {\r\n that.resetColumnsCache()\r\n };\r\n\r\n function assignColumns(that, columns) {\r\n that._columns = columns;\r\n resetColumnsCache(that);\r\n that.updateColumnDataTypes()\r\n }\r\n var updateColumnChanges = function(that, changeType, optionName, columnIndex) {\r\n var columnChanges = that._columnChanges || {\r\n optionNames: {\r\n length: 0\r\n },\r\n changeTypes: {\r\n length: 0\r\n },\r\n columnIndex: columnIndex\r\n };\r\n optionName = optionName || \"all\";\r\n optionName = optionName.split(\".\")[0];\r\n var changeTypes = columnChanges.changeTypes;\r\n if (changeType && !changeTypes[changeType]) {\r\n changeTypes[changeType] = true;\r\n changeTypes.length++\r\n }\r\n var optionNames = columnChanges.optionNames;\r\n if (optionName && !optionNames[optionName]) {\r\n optionNames[optionName] = true;\r\n optionNames.length++\r\n }\r\n if (void 0 === columnIndex || columnIndex !== columnChanges.columnIndex) {\r\n delete columnChanges.columnIndex\r\n }\r\n that._columnChanges = columnChanges;\r\n resetColumnsCache(that)\r\n };\r\n var fireColumnsChanged = function(that) {\r\n var onColumnsChanging = that.option(\"onColumnsChanging\");\r\n var columnChanges = that._columnChanges;\r\n var reinitOptionNames = [\"dataField\", \"lookup\", \"dataType\", \"columns\"];\r\n var needReinit = function(options) {\r\n return options && reinitOptionNames.some(function(name) {\r\n return options[name]\r\n })\r\n };\r\n if (that.isInitialized() && !that._updateLockCount && columnChanges) {\r\n if (onColumnsChanging) {\r\n that._updateLockCount++;\r\n onColumnsChanging((0, _extend.extend)({\r\n component: that.component\r\n }, columnChanges));\r\n that._updateLockCount--\r\n }\r\n that._columnChanges = void 0;\r\n if (needReinit(columnChanges.optionNames)) {\r\n that.reinit()\r\n } else {\r\n that.columnsChanged.fire(columnChanges)\r\n }\r\n }\r\n };\r\n var updateSortOrderWhenGrouping = function(that, column, groupIndex, prevGroupIndex) {\r\n var columnWasGrouped = prevGroupIndex >= 0;\r\n if (groupIndex >= 0) {\r\n if (!columnWasGrouped) {\r\n column.lastSortOrder = column.sortOrder\r\n }\r\n } else {\r\n var sortMode = that.option(\"sorting.mode\");\r\n var sortOrder = column.lastSortOrder;\r\n if (\"single\" === sortMode) {\r\n var sortedByAnotherColumn = that._columns.some(function(col) {\r\n return col !== column && (0, _type.isDefined)(col.sortIndex)\r\n });\r\n if (sortedByAnotherColumn) {\r\n sortOrder = void 0\r\n }\r\n }\r\n column.sortOrder = sortOrder\r\n }\r\n };\r\n var fireOptionChanged = function(that, options) {\r\n var value = options.value;\r\n var optionName = options.optionName;\r\n var prevValue = options.prevValue;\r\n var fullOptionName = options.fullOptionName;\r\n var fullOptionPath = \"\".concat(fullOptionName, \".\").concat(optionName);\r\n if (!IGNORE_COLUMN_OPTION_NAMES[optionName] && that._skipProcessingColumnsChange !== fullOptionPath) {\r\n that._skipProcessingColumnsChange = fullOptionPath;\r\n that.component._notifyOptionChanged(fullOptionPath, value, prevValue);\r\n that._skipProcessingColumnsChange = false\r\n }\r\n };\r\n var columnOptionCore = function(that, column, optionName, value, notFireEvent) {\r\n var optionGetter = (0, _data.compileGetter)(optionName);\r\n var columnIndex = column.index;\r\n var columns;\r\n var changeType;\r\n var initialColumn;\r\n if (3 === arguments.length) {\r\n return optionGetter(column, {\r\n functionsAsIs: true\r\n })\r\n }\r\n var prevValue = optionGetter(column, {\r\n functionsAsIs: true\r\n });\r\n if (prevValue !== value) {\r\n if (\"groupIndex\" === optionName || \"calculateGroupValue\" === optionName) {\r\n changeType = \"grouping\";\r\n updateSortOrderWhenGrouping(that, column, value, prevValue)\r\n } else {\r\n if (\"sortIndex\" === optionName || \"sortOrder\" === optionName || \"calculateSortValue\" === optionName) {\r\n changeType = \"sorting\"\r\n } else {\r\n changeType = \"columns\"\r\n }\r\n }\r\n var optionSetter = (0, _data.compileSetter)(optionName);\r\n optionSetter(column, value, {\r\n functionsAsIs: true\r\n });\r\n var fullOptionName = getColumnFullPath(that, column);\r\n if (COLUMN_INDEX_OPTIONS[optionName]) {\r\n updateIndexes(that, column);\r\n value = optionGetter(column)\r\n }\r\n if (\"name\" === optionName || \"allowEditing\" === optionName) {\r\n that._checkColumns()\r\n }\r\n fullOptionName && fireOptionChanged(that, {\r\n fullOptionName: fullOptionName,\r\n optionName: optionName,\r\n value: value,\r\n prevValue: prevValue\r\n });\r\n if (!(0, _type.isDefined)(prevValue) && !(0, _type.isDefined)(value) && 0 !== optionName.indexOf(\"buffer\")) {\r\n notFireEvent = true\r\n }\r\n if (!notFireEvent) {\r\n if ((0, _array.inArray)(optionName, USER_STATE_FIELD_NAMES) < 0 && \"visibleWidth\" !== optionName) {\r\n columns = that.option(\"columns\");\r\n initialColumn = that.getColumnByPath(fullOptionName, columns);\r\n if ((0, _type.isString)(initialColumn)) {\r\n initialColumn = columns[columnIndex] = {\r\n dataField: initialColumn\r\n }\r\n }\r\n if (initialColumn && checkUserStateColumn(initialColumn, column)) {\r\n optionSetter(initialColumn, value, {\r\n functionsAsIs: true\r\n })\r\n }\r\n }\r\n updateColumnChanges(that, changeType, optionName, columnIndex)\r\n } else {\r\n resetColumnsCache(that)\r\n }\r\n }\r\n };\r\n\r\n function isSortOrderValid(sortOrder) {\r\n return \"asc\" === sortOrder || \"desc\" === sortOrder\r\n }\r\n var addExpandColumn = function(that) {\r\n var options = that._getExpandColumnOptions();\r\n that.addCommandColumn(options)\r\n };\r\n var defaultSetCellValue = function(data, value) {\r\n var path = this.dataField.split(\".\");\r\n var dotCount = path.length - 1;\r\n if (this.serializeValue) {\r\n value = this.serializeValue(value)\r\n }\r\n for (var i = 0; i < dotCount; i++) {\r\n var name = path[i];\r\n data = data[name] = data[name] || {}\r\n }\r\n data[path[dotCount]] = value\r\n };\r\n var getDataColumns = function getDataColumns(columns, rowIndex, bandColumnID) {\r\n var result = [];\r\n rowIndex = rowIndex || 0;\r\n columns[rowIndex] && (0, _iterator.each)(columns[rowIndex], function(_, column) {\r\n if (column.ownerBand === bandColumnID || column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (!column.isBand || !column.colspan) {\r\n if (!column.command || rowIndex < 1) {\r\n result.push(column)\r\n }\r\n } else {\r\n result.push.apply(result, getDataColumns(columns, rowIndex + 1, column.index))\r\n }\r\n }\r\n });\r\n return result\r\n };\r\n var _getRowCount = function(that) {\r\n var rowCount = 1;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var columnParentByIndex = bandColumnsCache.columnParentByIndex;\r\n that._columns.forEach(function(column) {\r\n var parents = getParentBandColumns(column.index, columnParentByIndex);\r\n var invisibleParents = parents.filter(function(column) {\r\n return !column.visible\r\n });\r\n if (column.visible && !invisibleParents.length) {\r\n rowCount = Math.max(rowCount, parents.length + 1)\r\n }\r\n });\r\n return rowCount\r\n };\r\n var isCustomCommandColumn = function(that, commandColumn) {\r\n return !!that._columns.filter(function(column) {\r\n return column.type === commandColumn.type\r\n }).length\r\n };\r\n var getFixedPosition = function(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n if (column.command && !isCustomCommandColumn(that, column) || !column.fixedPosition) {\r\n return rtlEnabled ? \"right\" : \"left\"\r\n }\r\n return column.fixedPosition\r\n };\r\n var processExpandColumns = function(columns, expandColumns, type, columnIndex) {\r\n var customColumnIndex;\r\n var rowCount = this.getRowCount();\r\n var rowspan = columns[columnIndex] && columns[columnIndex].rowspan;\r\n var expandColumnsByType = expandColumns.filter(function(column) {\r\n return column.type === type\r\n });\r\n columns.forEach(function(column, index) {\r\n if (column.type === type) {\r\n customColumnIndex = index;\r\n rowspan = columns[index + 1] ? columns[index + 1].rowspan : rowCount\r\n }\r\n });\r\n if (rowspan > 1) {\r\n expandColumnsByType = (0, _iterator.map)(expandColumnsByType, function(expandColumn) {\r\n return (0, _extend.extend)({}, expandColumn, {\r\n rowspan: rowspan\r\n })\r\n })\r\n }\r\n expandColumnsByType.unshift.apply(expandColumnsByType, (0, _type.isDefined)(customColumnIndex) ? [customColumnIndex, 1] : [columnIndex, 0]);\r\n columns.splice.apply(columns, expandColumnsByType);\r\n return rowspan || 1\r\n };\r\n var digitsCount = function(number) {\r\n var i;\r\n for (i = 0; number > 1; i++) {\r\n number /= 10\r\n }\r\n return i\r\n };\r\n var numberToString = function(number, digitsCount) {\r\n var str = number ? number.toString() : \"0\";\r\n while (str.length < digitsCount) {\r\n str = \"0\" + str\r\n }\r\n return str\r\n };\r\n var mergeColumns = function(that, columns, commandColumns, needToExtend) {\r\n var column;\r\n var commandColumnIndex;\r\n var result = columns.slice().map(function(column) {\r\n return (0, _extend.extend)({}, column)\r\n });\r\n var isColumnFixing = that._isColumnFixing();\r\n var defaultCommandColumns = commandColumns.slice().map(function(column) {\r\n return (0, _extend.extend)({\r\n fixed: isColumnFixing\r\n }, column)\r\n });\r\n var getCommandColumnIndex = function(column) {\r\n return commandColumns.reduce(function(result, commandColumn, index) {\r\n var columnType = needToExtend && column.type === GROUP_COMMAND_COLUMN_NAME ? \"expand\" : column.type;\r\n return commandColumn.type === columnType || commandColumn.command === column.command ? index : result\r\n }, -1)\r\n };\r\n var callbackFilter = function(commandColumn) {\r\n return commandColumn.command !== commandColumns[commandColumnIndex].command\r\n };\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n commandColumnIndex = column && (column.type || column.command) ? getCommandColumnIndex(column) : -1;\r\n if (commandColumnIndex >= 0) {\r\n if (needToExtend) {\r\n result[i] = (0, _extend.extend)({\r\n fixed: isColumnFixing\r\n }, commandColumns[commandColumnIndex], column);\r\n if (column.type !== GROUP_COMMAND_COLUMN_NAME) {\r\n defaultCommandColumns = defaultCommandColumns.filter(callbackFilter)\r\n }\r\n } else {\r\n var columnOptions = {\r\n visibleIndex: column.visibleIndex,\r\n index: column.index,\r\n headerId: column.headerId,\r\n allowFixing: 0 === column.groupIndex,\r\n allowReordering: 0 === column.groupIndex,\r\n groupIndex: column.groupIndex\r\n };\r\n result[i] = (0, _extend.extend)({}, column, commandColumns[commandColumnIndex], column.type === GROUP_COMMAND_COLUMN_NAME && columnOptions)\r\n }\r\n }\r\n }\r\n if (columns.length && needToExtend && defaultCommandColumns.length) {\r\n result = result.concat(defaultCommandColumns)\r\n }\r\n return result\r\n };\r\n var isColumnFixed = function(that, column) {\r\n return (0, _type.isDefined)(column.fixed) || !column.type ? column.fixed : that._isColumnFixing()\r\n };\r\n var convertOwnerBandToColumnReference = function(columns) {\r\n columns.forEach(function(column) {\r\n if ((0, _type.isDefined)(column.ownerBand)) {\r\n column.ownerBand = columns[column.ownerBand]\r\n }\r\n })\r\n };\r\n var resetBandColumnsCache = function(that) {\r\n that._bandColumnsCache = void 0\r\n };\r\n var findColumn = function(columns, identifier) {\r\n var identifierOptionName = (0, _type.isString)(identifier) && identifier.substr(0, identifier.indexOf(\":\"));\r\n var column;\r\n if (void 0 === identifier) {\r\n return\r\n }\r\n if (identifierOptionName) {\r\n identifier = identifier.substr(identifierOptionName.length + 1)\r\n }\r\n if (identifierOptionName) {\r\n column = columns.filter(function(column) {\r\n return \"\" + column[identifierOptionName] === identifier\r\n })[0]\r\n } else {\r\n [\"index\", \"name\", \"dataField\", \"caption\"].some(function(optionName) {\r\n column = columns.filter(function(column) {\r\n return column[optionName] === identifier\r\n })[0];\r\n return !!column\r\n })\r\n }\r\n return column\r\n };\r\n return {\r\n _getExpandColumnOptions: function() {\r\n return {\r\n type: \"expand\",\r\n command: \"expand\",\r\n width: \"auto\",\r\n cssClass: COMMAND_EXPAND_CLASS,\r\n allowEditing: false,\r\n allowGrouping: false,\r\n allowSorting: false,\r\n allowResizing: false,\r\n allowReordering: false,\r\n allowHiding: false\r\n }\r\n },\r\n _getFirstItems: function(dataSource) {\r\n var groupsCount;\r\n var items = [];\r\n var getFirstItemsCore = function getFirstItemsCore(items, groupsCount) {\r\n if (!items || !groupsCount) {\r\n return items\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var childItems = getFirstItemsCore(items[i].items || items[i].collapsedItems, groupsCount - 1);\r\n if (childItems && childItems.length) {\r\n return childItems\r\n }\r\n }\r\n };\r\n if (dataSource && dataSource.items().length > 0) {\r\n groupsCount = _uiGrid_core2.default.normalizeSortingInfo(dataSource.group()).length;\r\n items = getFirstItemsCore(dataSource.items(), groupsCount) || []\r\n }\r\n return items\r\n },\r\n _endUpdateCore: function() {\r\n !this._skipProcessingColumnsChange && fireColumnsChanged(this)\r\n },\r\n init: function() {\r\n var that = this;\r\n var columns = that.option(\"columns\");\r\n that._commandColumns = that._commandColumns || [];\r\n that._columns = that._columns || [];\r\n that._isColumnsFromOptions = !!columns;\r\n if (that._isColumnsFromOptions) {\r\n assignColumns(that, columns ? createColumnsFromOptions(that, columns) : []);\r\n applyUserState(that)\r\n } else {\r\n assignColumns(that, that._columnsUserState ? createColumnsFromOptions(that, that._columnsUserState) : that._columns)\r\n }\r\n addExpandColumn(that);\r\n if (that._dataSourceApplied) {\r\n that.applyDataSource(that._dataSource, true)\r\n } else {\r\n updateIndexes(that)\r\n }\r\n that._checkColumns()\r\n },\r\n callbackNames: function() {\r\n return [\"columnsChanged\"]\r\n },\r\n getColumnByPath: function(path, columns) {\r\n var that = this;\r\n var column;\r\n var columnIndexes = [];\r\n path.replace(regExp, function(_, columnIndex) {\r\n columnIndexes.push(parseInt(columnIndex));\r\n return \"\"\r\n });\r\n if (columnIndexes.length) {\r\n if (columns) {\r\n column = columnIndexes.reduce(function(column, index) {\r\n return column && column.columns && column.columns[index]\r\n }, {\r\n columns: columns\r\n })\r\n } else {\r\n column = getColumnByIndexes(that, columnIndexes)\r\n }\r\n }\r\n return column\r\n },\r\n optionChanged: function(args) {\r\n var needUpdateRequireResize;\r\n switch (args.name) {\r\n case \"adaptColumnWidthByRatio\":\r\n args.handled = true;\r\n break;\r\n case \"dataSource\":\r\n if (args.value !== args.previousValue && !this.option(\"columns\") && (!Array.isArray(args.value) || !Array.isArray(args.previousValue))) {\r\n this._columns = []\r\n }\r\n break;\r\n case \"columns\":\r\n needUpdateRequireResize = this._skipProcessingColumnsChange;\r\n args.handled = true;\r\n if (!this._skipProcessingColumnsChange) {\r\n if (args.name === args.fullName) {\r\n this._columnsUserState = null;\r\n this._ignoreColumnOptionNames = null;\r\n this.init()\r\n } else {\r\n this._columnOptionChanged(args);\r\n needUpdateRequireResize = true\r\n }\r\n }\r\n if (needUpdateRequireResize) {\r\n this._updateRequireResize(args)\r\n }\r\n break;\r\n case \"commonColumnSettings\":\r\n case \"columnAutoWidth\":\r\n case \"allowColumnResizing\":\r\n case \"allowColumnReordering\":\r\n case \"columnFixing\":\r\n case \"grouping\":\r\n case \"groupPanel\":\r\n case \"regenerateColumnsByVisibleItems\":\r\n case \"customizeColumns\":\r\n case \"editing\":\r\n case \"columnHidingEnabled\":\r\n case \"dateSerializationFormat\":\r\n case \"columnResizingMode\":\r\n case \"columnMinWidth\":\r\n case \"columnWidth\":\r\n var _args$fullName, _args$fullName2, _args$fullName3, _args$fullName4, _args$fullName5;\r\n args.handled = true;\r\n var ignoreColumnOptionNames = \"columnWidth\" === args.fullName && [\"width\"];\r\n var isEditingPopup = 0 === (null === (_args$fullName = args.fullName) || void 0 === _args$fullName ? void 0 : _args$fullName.indexOf(\"editing.popup\"));\r\n var isEditingForm = 0 === (null === (_args$fullName2 = args.fullName) || void 0 === _args$fullName2 ? void 0 : _args$fullName2.indexOf(\"editing.form\"));\r\n var isEditRowKey = 0 === (null === (_args$fullName3 = args.fullName) || void 0 === _args$fullName3 ? void 0 : _args$fullName3.indexOf(\"editing.editRowKey\"));\r\n var isEditColumnName = 0 === (null === (_args$fullName4 = args.fullName) || void 0 === _args$fullName4 ? void 0 : _args$fullName4.indexOf(\"editing.editColumnName\"));\r\n var isChanges = 0 === (null === (_args$fullName5 = args.fullName) || void 0 === _args$fullName5 ? void 0 : _args$fullName5.indexOf(\"editing.changes\"));\r\n var needReinit = !isEditingPopup && !isEditingForm && !isEditRowKey && !isChanges && !isEditColumnName;\r\n if (needReinit) {\r\n this.reinit(ignoreColumnOptionNames)\r\n }\r\n break;\r\n case \"rtlEnabled\":\r\n this.reinit();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _columnOptionChanged: function(args) {\r\n var columnOptionValue = {};\r\n var column = this.getColumnByPath(args.fullName);\r\n var columnOptionName = args.fullName.replace(regExp, \"\");\r\n if (column) {\r\n if (columnOptionName) {\r\n columnOptionValue[columnOptionName] = args.value\r\n } else {\r\n columnOptionValue = args.value\r\n }\r\n this._skipProcessingColumnsChange = args.fullName;\r\n this.columnOption(column.index, columnOptionValue);\r\n this._skipProcessingColumnsChange = false\r\n }\r\n },\r\n _updateRequireResize: function(args) {\r\n var component = this.component;\r\n if (\"width\" === args.fullName.replace(regExp, \"\") && component._updateLockCount) {\r\n component._requireResize = true\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"addColumn\", \"deleteColumn\", \"columnOption\", \"columnCount\", \"clearSorting\", \"clearGrouping\", \"getVisibleColumns\", \"getVisibleColumnIndex\"]\r\n },\r\n applyDataSource: function(dataSource, forceApplying) {\r\n var that = this;\r\n var isDataSourceLoaded = dataSource && dataSource.isLoaded();\r\n that._dataSource = dataSource;\r\n if (!that._dataSourceApplied || 0 === that._dataSourceColumnsCount || forceApplying || that.option(\"regenerateColumnsByVisibleItems\")) {\r\n if (isDataSourceLoaded) {\r\n if (!that._isColumnsFromOptions) {\r\n var columnsFromDataSource = createColumnsFromDataSource(that, dataSource);\r\n if (columnsFromDataSource.length) {\r\n assignColumns(that, columnsFromDataSource);\r\n that._dataSourceColumnsCount = that._columns.length;\r\n applyUserState(that)\r\n }\r\n }\r\n return that.updateColumns(dataSource, forceApplying)\r\n } else {\r\n that._dataSourceApplied = false\r\n }\r\n } else {\r\n if (isDataSourceLoaded && !that.isAllDataTypesDefined(true) && that.updateColumnDataTypes(dataSource)) {\r\n updateColumnChanges(that, \"columns\");\r\n fireColumnsChanged(that);\r\n return (new _deferred.Deferred).reject().promise()\r\n }\r\n }\r\n },\r\n reset: function() {\r\n this._dataSourceApplied = false;\r\n this._dataSourceColumnsCount = void 0;\r\n this.reinit()\r\n },\r\n resetColumnsCache: function() {\r\n var that = this;\r\n that._visibleColumns = void 0;\r\n that._fixedColumns = void 0;\r\n that._rowCount = void 0;\r\n resetBandColumnsCache(that)\r\n },\r\n reinit: function(ignoreColumnOptionNames) {\r\n this._columnsUserState = this.getUserState();\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames || null;\r\n this.init();\r\n if (ignoreColumnOptionNames) {\r\n this._ignoreColumnOptionNames = null\r\n }\r\n },\r\n isInitialized: function() {\r\n return !!this._columns.length || !!this.option(\"columns\")\r\n },\r\n isDataSourceApplied: function() {\r\n return this._dataSourceApplied\r\n },\r\n getCommonSettings: function(column) {\r\n var commonColumnSettings = (!column || !column.type) && this.option(\"commonColumnSettings\") || {};\r\n var groupingOptions = this.option(\"grouping\") || {};\r\n var groupPanelOptions = this.option(\"groupPanel\") || {};\r\n return (0, _extend.extend)({\r\n allowFixing: this.option(\"columnFixing.enabled\"),\r\n allowResizing: this.option(\"allowColumnResizing\") || void 0,\r\n allowReordering: this.option(\"allowColumnReordering\"),\r\n minWidth: this.option(\"columnMinWidth\"),\r\n width: this.option(\"columnWidth\"),\r\n autoExpandGroup: groupingOptions.autoExpandAll,\r\n allowCollapsing: groupingOptions.allowCollapsing,\r\n allowGrouping: groupPanelOptions.allowColumnDragging && groupPanelOptions.visible || groupingOptions.contextMenuEnabled\r\n }, commonColumnSettings)\r\n },\r\n isColumnOptionUsed: function(optionName) {\r\n for (var i = 0; i < this._columns.length; i++) {\r\n if (this._columns[i][optionName]) {\r\n return true\r\n }\r\n }\r\n },\r\n isAllDataTypesDefined: function(checkSerializers) {\r\n var columns = this._columns;\r\n if (!columns.length) {\r\n return false\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].dataField && columns[i].calculateCellValue === columns[i].defaultCalculateCellValue) {\r\n continue\r\n }\r\n if (!columns[i].dataType || checkSerializers && columns[i].deserializeValue && void 0 === columns[i].serializationFormat) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n getColumns: function() {\r\n return this._columns\r\n },\r\n isBandColumnsUsed: function() {\r\n return this.getColumns().some(function(column) {\r\n return column.isBand\r\n })\r\n },\r\n getGroupColumns: function() {\r\n var result = [];\r\n (0, _iterator.each)(this._columns, function() {\r\n var column = this;\r\n if ((0, _type.isDefined)(column.groupIndex)) {\r\n result[column.groupIndex] = column\r\n }\r\n });\r\n return result\r\n },\r\n getVisibleColumns: function(rowIndex) {\r\n this._visibleColumns = this._visibleColumns || this._getVisibleColumnsCore();\r\n rowIndex = (0, _type.isDefined)(rowIndex) ? rowIndex : this._visibleColumns.length - 1;\r\n return this._visibleColumns[rowIndex] || []\r\n },\r\n getFixedColumns: function(rowIndex) {\r\n this._fixedColumns = this._fixedColumns || this._getFixedColumnsCore();\r\n rowIndex = (0, _type.isDefined)(rowIndex) ? rowIndex : this._fixedColumns.length - 1;\r\n return this._fixedColumns[rowIndex] || []\r\n },\r\n getFilteringColumns: function() {\r\n return this.getColumns().filter(function(item) {\r\n return (item.dataField || item.name) && (item.allowFiltering || item.allowHeaderFiltering)\r\n }).map(function(item) {\r\n var field = (0, _extend.extend)(true, {}, item);\r\n if (!(0, _type.isDefined)(field.dataField)) {\r\n field.dataField = field.name\r\n }\r\n field.filterOperations = item.filterOperations !== item.defaultFilterOperations ? field.filterOperations : null;\r\n return field\r\n })\r\n },\r\n getColumnIndexOffset: function() {\r\n return 0\r\n },\r\n _getFixedColumnsCore: function() {\r\n var that = this;\r\n var result = [];\r\n var rowCount = that.getRowCount();\r\n var isColumnFixing = that._isColumnFixing();\r\n var transparentColumn = {\r\n command: \"transparent\"\r\n };\r\n var transparentColspan = 0;\r\n var notFixedColumnCount;\r\n var transparentColumnIndex;\r\n var lastFixedPosition;\r\n if (isColumnFixing) {\r\n for (var i = 0; i <= rowCount; i++) {\r\n notFixedColumnCount = 0;\r\n lastFixedPosition = null;\r\n transparentColumnIndex = null;\r\n var visibleColumns = that.getVisibleColumns(i, true);\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var prevColumn = visibleColumns[j - 1];\r\n var column = visibleColumns[j];\r\n if (!column.fixed) {\r\n if (0 === i) {\r\n if (column.isBand && column.colspan) {\r\n transparentColspan += column.colspan\r\n } else {\r\n transparentColspan++\r\n }\r\n }\r\n notFixedColumnCount++;\r\n if (!(0, _type.isDefined)(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else {\r\n if (prevColumn && prevColumn.fixed && getFixedPosition(that, prevColumn) !== getFixedPosition(that, column)) {\r\n if (!(0, _type.isDefined)(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else {\r\n lastFixedPosition = column.fixedPosition\r\n }\r\n }\r\n }\r\n if (0 === i && (0 === notFixedColumnCount || notFixedColumnCount >= visibleColumns.length)) {\r\n return []\r\n }\r\n if (!(0, _type.isDefined)(transparentColumnIndex)) {\r\n transparentColumnIndex = \"right\" === lastFixedPosition ? 0 : visibleColumns.length\r\n }\r\n result[i] = visibleColumns.slice(0);\r\n if (!transparentColumn.colspan) {\r\n transparentColumn.colspan = transparentColspan\r\n }\r\n result[i].splice(transparentColumnIndex, notFixedColumnCount, transparentColumn)\r\n }\r\n }\r\n return result.map(function(columns) {\r\n return columns.map(function(column) {\r\n var newColumn = _objectSpread({}, column);\r\n if (newColumn.headerId) {\r\n newColumn.headerId += \"-fixed\"\r\n }\r\n return newColumn\r\n })\r\n })\r\n },\r\n _isColumnFixing: function() {\r\n var isColumnFixing = this.option(\"columnFixing.enabled\");\r\n !isColumnFixing && (0, _iterator.each)(this._columns, function(_, column) {\r\n if (column.fixed) {\r\n isColumnFixing = true;\r\n return false\r\n }\r\n });\r\n return isColumnFixing\r\n },\r\n _getExpandColumnsCore: function() {\r\n return this.getGroupColumns()\r\n },\r\n getExpandColumns: function() {\r\n var expandColumns = this._getExpandColumnsCore();\r\n var expandColumn;\r\n var firstGroupColumn = expandColumns.filter(function(column) {\r\n return 0 === column.groupIndex\r\n })[0];\r\n var isFixedFirstGroupColumn = firstGroupColumn && firstGroupColumn.fixed;\r\n var isColumnFixing = this._isColumnFixing();\r\n if (expandColumns.length) {\r\n expandColumn = this.columnOption(\"command:expand\")\r\n }\r\n expandColumns = (0, _iterator.map)(expandColumns, function(column) {\r\n return (0, _extend.extend)({}, column, {\r\n visibleWidth: null,\r\n minWidth: null,\r\n cellTemplate: !(0, _type.isDefined)(column.groupIndex) ? column.cellTemplate : null,\r\n headerCellTemplate: null,\r\n fixed: !(0, _type.isDefined)(column.groupIndex) || !isFixedFirstGroupColumn ? isColumnFixing : true\r\n }, expandColumn, {\r\n index: column.index,\r\n type: column.type || GROUP_COMMAND_COLUMN_NAME\r\n })\r\n });\r\n return expandColumns\r\n },\r\n getBandColumnsCache: function() {\r\n if (!this._bandColumnsCache) {\r\n var columns = this._columns;\r\n var columnChildrenByIndex = {};\r\n var columnParentByIndex = {};\r\n var isPlain = true;\r\n columns.forEach(function(column) {\r\n var parentIndex = column.ownerBand;\r\n var parent = columns[parentIndex];\r\n if (column.hasColumns) {\r\n isPlain = false\r\n }\r\n if (column.colspan) {\r\n column.colspan = void 0\r\n }\r\n if (column.rowspan) {\r\n column.rowspan = void 0\r\n }\r\n if (parent) {\r\n columnParentByIndex[column.index] = parent\r\n } else {\r\n parentIndex = -1\r\n }\r\n columnChildrenByIndex[parentIndex] = columnChildrenByIndex[parentIndex] || [];\r\n columnChildrenByIndex[parentIndex].push(column)\r\n });\r\n this._bandColumnsCache = {\r\n isPlain: isPlain,\r\n columnChildrenByIndex: columnChildrenByIndex,\r\n columnParentByIndex: columnParentByIndex\r\n }\r\n }\r\n return this._bandColumnsCache\r\n },\r\n _isColumnVisible: function(column) {\r\n return column.visible && this.isParentColumnVisible(column.index)\r\n },\r\n _getVisibleColumnsCore: function() {\r\n var that = this;\r\n var i;\r\n var result = [];\r\n var rowspanGroupColumns = 0;\r\n var rowspanExpandColumns = 0;\r\n var rowCount = that.getRowCount();\r\n var positiveIndexedColumns = [];\r\n var negativeIndexedColumns = [];\r\n var notGroupedColumnsCount = 0;\r\n var isFixedToEnd;\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var expandColumns = mergeColumns(that, that.getExpandColumns(), that._columns);\r\n var columns = mergeColumns(that, that._columns, that._commandColumns, true);\r\n var columnDigitsCount = digitsCount(columns.length);\r\n processBandColumns(that, columns, bandColumnsCache);\r\n for (i = 0; i < rowCount; i++) {\r\n result[i] = [];\r\n negativeIndexedColumns[i] = [{}];\r\n positiveIndexedColumns[i] = [{}, {}, {}]\r\n }(0, _iterator.each)(columns, function() {\r\n var column = this;\r\n var visibleIndex = column.visibleIndex;\r\n var indexedColumns;\r\n var parentBandColumns = getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex);\r\n var visible = that._isColumnVisible(column);\r\n if (visible && (!(0, _type.isDefined)(column.groupIndex) || column.showWhenGrouped)) {\r\n var rowIndex = parentBandColumns.length;\r\n if (visibleIndex < 0) {\r\n visibleIndex = -visibleIndex;\r\n indexedColumns = negativeIndexedColumns[rowIndex]\r\n } else {\r\n column.fixed = parentBandColumns.length ? parentBandColumns[0].fixed : column.fixed;\r\n column.fixedPosition = parentBandColumns.length ? parentBandColumns[0].fixedPosition : column.fixedPosition;\r\n if (column.fixed) {\r\n isFixedToEnd = \"right\" === column.fixedPosition;\r\n if (rtlEnabled && (!column.command || isCustomCommandColumn(that, column))) {\r\n isFixedToEnd = !isFixedToEnd\r\n }\r\n if (isFixedToEnd) {\r\n indexedColumns = positiveIndexedColumns[rowIndex][2]\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][0]\r\n }\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][1]\r\n }\r\n }\r\n if (parentBandColumns.length) {\r\n visibleIndex = numberToString(visibleIndex, columnDigitsCount);\r\n for (i = parentBandColumns.length - 1; i >= 0; i--) {\r\n visibleIndex = numberToString(parentBandColumns[i].visibleIndex, columnDigitsCount) + visibleIndex\r\n }\r\n }\r\n indexedColumns[visibleIndex] = indexedColumns[visibleIndex] || [];\r\n indexedColumns[visibleIndex].push(column);\r\n notGroupedColumnsCount++\r\n }\r\n });\r\n (0, _iterator.each)(result, function(rowIndex) {\r\n (0, _object.orderEach)(negativeIndexedColumns[rowIndex], function(_, columns) {\r\n result[rowIndex].unshift.apply(result[rowIndex], columns)\r\n });\r\n var firstPositiveIndexColumn = result[rowIndex].length;\r\n (0, _iterator.each)(positiveIndexedColumns[rowIndex], function(index, columnsByFixing) {\r\n (0, _object.orderEach)(columnsByFixing, function(_, columnsByVisibleIndex) {\r\n result[rowIndex].push.apply(result[rowIndex], columnsByVisibleIndex)\r\n })\r\n });\r\n if (rowspanExpandColumns < rowIndex + 1) {\r\n rowspanExpandColumns += processExpandColumns.call(that, result[rowIndex], expandColumns, \"detailExpand\", firstPositiveIndexColumn)\r\n }\r\n if (rowspanGroupColumns < rowIndex + 1) {\r\n rowspanGroupColumns += processExpandColumns.call(that, result[rowIndex], expandColumns, GROUP_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n });\r\n result.push(getDataColumns(result));\r\n if (!notGroupedColumnsCount && that._columns.length) {\r\n result[rowCount].push({\r\n command: \"empty\"\r\n })\r\n }\r\n return result\r\n },\r\n getInvisibleColumns: function(columns, bandColumnIndex) {\r\n var that = this;\r\n var result = [];\r\n var hiddenColumnsByBand;\r\n columns = columns || that._columns;\r\n (0, _iterator.each)(columns, function(_, column) {\r\n if (column.ownerBand !== bandColumnIndex) {\r\n return\r\n }\r\n if (column.isBand) {\r\n if (!column.visible) {\r\n hiddenColumnsByBand = that.getChildrenByBandColumn(column.index)\r\n } else {\r\n hiddenColumnsByBand = that.getInvisibleColumns(that.getChildrenByBandColumn(column.index), column.index)\r\n }\r\n if (hiddenColumnsByBand.length) {\r\n result.push(column);\r\n result = result.concat(hiddenColumnsByBand)\r\n }\r\n return\r\n }\r\n if (!column.visible) {\r\n result.push(column)\r\n }\r\n });\r\n return result\r\n },\r\n getChooserColumns: function(getAllColumns) {\r\n var columns = getAllColumns ? this.getColumns() : this.getInvisibleColumns();\r\n return (0, _common.grep)(columns, function(column) {\r\n return column.showInColumnChooser\r\n })\r\n },\r\n allowMoveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var that = this;\r\n var columnIndex = getColumnIndexByVisibleIndex(that, fromVisibleIndex, sourceLocation);\r\n var sourceColumn = that._columns[columnIndex];\r\n if (sourceColumn && (sourceColumn.allowReordering || sourceColumn.allowGrouping || sourceColumn.allowHiding)) {\r\n if (sourceLocation === targetLocation) {\r\n if (sourceLocation === COLUMN_CHOOSER_LOCATION) {\r\n return false\r\n }\r\n fromVisibleIndex = (0, _type.isObject)(fromVisibleIndex) ? fromVisibleIndex.columnIndex : fromVisibleIndex;\r\n toVisibleIndex = (0, _type.isObject)(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n return fromVisibleIndex !== toVisibleIndex && fromVisibleIndex + 1 !== toVisibleIndex\r\n } else {\r\n if (sourceLocation === GROUP_LOCATION && targetLocation !== COLUMN_CHOOSER_LOCATION || targetLocation === GROUP_LOCATION) {\r\n return sourceColumn && sourceColumn.allowGrouping\r\n } else {\r\n if (sourceLocation === COLUMN_CHOOSER_LOCATION || targetLocation === COLUMN_CHOOSER_LOCATION) {\r\n return sourceColumn && sourceColumn.allowHiding\r\n }\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n },\r\n moveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var that = this;\r\n var options = {};\r\n var prevGroupIndex;\r\n var fromIndex = getColumnIndexByVisibleIndex(that, fromVisibleIndex, sourceLocation);\r\n var toIndex = getColumnIndexByVisibleIndex(that, toVisibleIndex, targetLocation);\r\n var targetGroupIndex;\r\n if (fromIndex >= 0) {\r\n var column = that._columns[fromIndex];\r\n toVisibleIndex = (0, _type.isObject)(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n targetGroupIndex = toIndex >= 0 ? that._columns[toIndex].groupIndex : -1;\r\n if ((0, _type.isDefined)(column.groupIndex) && sourceLocation === GROUP_LOCATION) {\r\n if (targetGroupIndex > column.groupIndex) {\r\n targetGroupIndex--\r\n }\r\n if (targetLocation !== GROUP_LOCATION) {\r\n options.groupIndex = void 0\r\n } else {\r\n prevGroupIndex = column.groupIndex;\r\n delete column.groupIndex;\r\n updateColumnGroupIndexes(that)\r\n }\r\n }\r\n if (targetLocation === GROUP_LOCATION) {\r\n options.groupIndex = moveColumnToGroup(that, column, targetGroupIndex);\r\n column.groupIndex = prevGroupIndex\r\n } else {\r\n if (toVisibleIndex >= 0) {\r\n var targetColumn = that._columns[toIndex];\r\n if (!targetColumn || column.ownerBand !== targetColumn.ownerBand) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else {\r\n if (isColumnFixed(that, column) ^ isColumnFixed(that, targetColumn)) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else {\r\n options.visibleIndex = targetColumn.visibleIndex\r\n }\r\n }\r\n }\r\n }\r\n var isVisible = targetLocation !== COLUMN_CHOOSER_LOCATION;\r\n if (column.visible !== isVisible) {\r\n options.visible = isVisible\r\n }\r\n that.columnOption(column.index, options)\r\n }\r\n },\r\n changeSortOrder: function(columnIndex, sortOrder) {\r\n var that = this;\r\n var options = {};\r\n var sortingOptions = that.option(\"sorting\");\r\n var sortingMode = sortingOptions && sortingOptions.mode;\r\n var needResetSorting = \"single\" === sortingMode || !sortOrder;\r\n var allowSorting = \"single\" === sortingMode || \"multiple\" === sortingMode;\r\n var column = that._columns[columnIndex];\r\n var nextSortOrder = function(column) {\r\n if (\"ctrl\" === sortOrder) {\r\n if (!(\"sortOrder\" in column && \"sortIndex\" in column)) {\r\n return false\r\n }\r\n options.sortOrder = void 0;\r\n options.sortIndex = void 0\r\n } else {\r\n if ((0, _type.isDefined)(column.groupIndex) || (0, _type.isDefined)(column.sortIndex)) {\r\n options.sortOrder = \"desc\" === column.sortOrder ? \"asc\" : \"desc\"\r\n } else {\r\n options.sortOrder = \"asc\"\r\n }\r\n }\r\n return true\r\n };\r\n if (allowSorting && column && column.allowSorting) {\r\n if (needResetSorting && !(0, _type.isDefined)(column.groupIndex)) {\r\n (0, _iterator.each)(that._columns, function(index) {\r\n if (index !== columnIndex && this.sortOrder) {\r\n if (!(0, _type.isDefined)(this.groupIndex)) {\r\n delete this.sortOrder\r\n }\r\n delete this.sortIndex\r\n }\r\n })\r\n }\r\n if (isSortOrderValid(sortOrder)) {\r\n if (column.sortOrder !== sortOrder) {\r\n options.sortOrder = sortOrder\r\n }\r\n } else {\r\n if (\"none\" === sortOrder) {\r\n if (column.sortOrder) {\r\n options.sortIndex = void 0;\r\n options.sortOrder = void 0\r\n }\r\n } else {\r\n nextSortOrder(column)\r\n }\r\n }\r\n }\r\n that.columnOption(column.index, options)\r\n },\r\n getSortDataSourceParameters: function(useLocalSelector) {\r\n var that = this;\r\n var sortColumns = [];\r\n var sort = [];\r\n (0, _iterator.each)(that._columns, function() {\r\n if ((this.dataField || this.selector || this.calculateCellValue) && (0, _type.isDefined)(this.sortIndex) && !(0, _type.isDefined)(this.groupIndex)) {\r\n sortColumns[this.sortIndex] = this\r\n }\r\n });\r\n (0, _iterator.each)(sortColumns, function() {\r\n var sortOrder = this && this.sortOrder;\r\n if (isSortOrderValid(sortOrder)) {\r\n var sortItem = {\r\n selector: this.calculateSortValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue,\r\n desc: \"desc\" === this.sortOrder\r\n };\r\n if (this.sortingMethod) {\r\n sortItem.compare = this.sortingMethod.bind(this)\r\n }\r\n sort.push(sortItem)\r\n }\r\n });\r\n return sort.length > 0 ? sort : null\r\n },\r\n getGroupDataSourceParameters: function(useLocalSelector) {\r\n var group = [];\r\n (0, _iterator.each)(this.getGroupColumns(), function() {\r\n var selector = this.calculateGroupValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue;\r\n if (selector) {\r\n var groupItem = {\r\n selector: selector,\r\n desc: \"desc\" === this.sortOrder,\r\n isExpanded: !!this.autoExpandGroup\r\n };\r\n if (this.sortingMethod) {\r\n groupItem.compare = this.sortingMethod.bind(this)\r\n }\r\n group.push(groupItem)\r\n }\r\n });\r\n return group.length > 0 ? group : null\r\n },\r\n refresh: function(updateNewLookupsOnly) {\r\n var deferreds = [];\r\n (0, _iterator.each)(this._columns, function() {\r\n var lookup = this.lookup;\r\n if (lookup && !this.calculateDisplayValue) {\r\n if (updateNewLookupsOnly && lookup.valueMap) {\r\n return\r\n }\r\n if (lookup.update) {\r\n deferreds.push(lookup.update())\r\n }\r\n }\r\n });\r\n return _deferred.when.apply(_renderer.default, deferreds).done(resetColumnsCache.bind(null, this))\r\n },\r\n _updateColumnOptions: function(column, columnIndex) {\r\n column.selector = column.selector || function(data) {\r\n return column.calculateCellValue(data)\r\n };\r\n (0, _iterator.each)([\"calculateSortValue\", \"calculateGroupValue\", \"calculateDisplayValue\"], function(_, calculateCallbackName) {\r\n var calculateCallback = column[calculateCallbackName];\r\n if ((0, _type.isFunction)(calculateCallback) && !calculateCallback.originalCallback) {\r\n column[calculateCallbackName] = function(data) {\r\n return calculateCallback.call(column, data)\r\n };\r\n column[calculateCallbackName].originalCallback = calculateCallback;\r\n column[calculateCallbackName].columnIndex = columnIndex\r\n }\r\n });\r\n if ((0, _type.isString)(column.calculateDisplayValue)) {\r\n column.displayField = column.calculateDisplayValue;\r\n column.calculateDisplayValue = (0, _data.compileGetter)(column.displayField)\r\n }\r\n if (column.calculateDisplayValue) {\r\n column.displayValueMap = column.displayValueMap || {}\r\n }\r\n updateSerializers(column, column.dataType);\r\n var lookup = column.lookup;\r\n if (lookup) {\r\n updateSerializers(lookup, lookup.dataType)\r\n }\r\n var dataType = lookup ? lookup.dataType : column.dataType;\r\n if (dataType) {\r\n column.alignment = column.alignment || getAlignmentByDataType(dataType, this.option(\"rtlEnabled\"));\r\n column.format = column.format || _uiGrid_core2.default.getFormatByDataType(dataType);\r\n column.customizeText = column.customizeText || getCustomizeTextByDataType(dataType);\r\n column.defaultFilterOperations = column.defaultFilterOperations || !lookup && DATATYPE_OPERATIONS[dataType] || [];\r\n if (!(0, _type.isDefined)(column.filterOperations)) {\r\n setFilterOperationsAsDefaultValues(column)\r\n }\r\n column.defaultFilterOperation = column.filterOperations && column.filterOperations[0] || \"=\";\r\n column.showEditorAlways = (0, _type.isDefined)(column.showEditorAlways) ? column.showEditorAlways : \"boolean\" === dataType && !column.cellTemplate\r\n }\r\n },\r\n updateColumnDataTypes: function(dataSource) {\r\n var that = this;\r\n var dateSerializationFormat = that.option(\"dateSerializationFormat\");\r\n var firstItems = that._getFirstItems(dataSource);\r\n var isColumnDataTypesUpdated = false;\r\n (0, _iterator.each)(that._columns, function(index, column) {\r\n var i;\r\n var value;\r\n var dataType;\r\n var lookupDataType;\r\n var valueDataType;\r\n var lookup = column.lookup;\r\n if (_uiGrid_core2.default.isDateType(column.dataType) && void 0 === column.serializationFormat) {\r\n column.serializationFormat = dateSerializationFormat\r\n }\r\n if (lookup && _uiGrid_core2.default.isDateType(lookup.dataType) && void 0 === column.serializationFormat) {\r\n lookup.serializationFormat = dateSerializationFormat\r\n }\r\n if (column.calculateCellValue && firstItems.length) {\r\n if (!column.dataType || lookup && !lookup.dataType) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i]);\r\n if (!column.dataType) {\r\n valueDataType = getValueDataType(value);\r\n dataType = dataType || valueDataType;\r\n if (dataType && valueDataType && dataType !== valueDataType) {\r\n dataType = \"string\"\r\n }\r\n }\r\n if (lookup && !lookup.dataType) {\r\n valueDataType = getValueDataType(_uiGrid_core2.default.getDisplayValue(column, value, firstItems[i]));\r\n lookupDataType = lookupDataType || valueDataType;\r\n if (lookupDataType && valueDataType && lookupDataType !== valueDataType) {\r\n lookupDataType = \"string\"\r\n }\r\n }\r\n }\r\n if (dataType || lookupDataType) {\r\n if (dataType) {\r\n column.dataType = dataType\r\n }\r\n if (lookup && lookupDataType) {\r\n lookup.dataType = lookupDataType\r\n }\r\n isColumnDataTypesUpdated = true\r\n }\r\n }\r\n if (void 0 === column.serializationFormat || lookup && void 0 === lookup.serializationFormat) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i], true);\r\n if (void 0 === column.serializationFormat) {\r\n column.serializationFormat = getSerializationFormat(column.dataType, value)\r\n }\r\n if (lookup && void 0 === lookup.serializationFormat) {\r\n lookup.serializationFormat = getSerializationFormat(lookup.dataType, lookup.calculateCellValue(value, true))\r\n }\r\n }\r\n }\r\n }\r\n that._updateColumnOptions(column, index)\r\n });\r\n return isColumnDataTypesUpdated\r\n },\r\n _customizeColumns: function(columns) {\r\n var that = this;\r\n var customizeColumns = that.option(\"customizeColumns\");\r\n if (customizeColumns) {\r\n var hasOwnerBand = columns.some(function(column) {\r\n return (0, _type.isObject)(column.ownerBand)\r\n });\r\n if (hasOwnerBand) {\r\n updateIndexes(that)\r\n }\r\n customizeColumns(columns);\r\n assignColumns(that, createColumnsFromOptions(that, columns))\r\n }\r\n },\r\n updateColumns: function(dataSource, forceApplying) {\r\n var _this = this;\r\n if (!forceApplying) {\r\n this.updateSortingGrouping(dataSource)\r\n }\r\n if (!dataSource || dataSource.isLoaded()) {\r\n var sortParameters = dataSource ? dataSource.sort() || [] : this.getSortDataSourceParameters();\r\n var groupParameters = dataSource ? dataSource.group() || [] : this.getGroupDataSourceParameters();\r\n var filterParameters = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions().filter;\r\n this._customizeColumns(this._columns);\r\n updateIndexes(this);\r\n var columns = this._columns;\r\n return (0, _deferred.when)(this.refresh(true)).always(function() {\r\n if (_this._columns !== columns) {\r\n return\r\n }\r\n _this._updateChanges(dataSource, {\r\n sorting: sortParameters,\r\n grouping: groupParameters,\r\n filtering: filterParameters\r\n });\r\n fireColumnsChanged(_this)\r\n })\r\n }\r\n },\r\n _updateChanges: function(dataSource, parameters) {\r\n if (dataSource) {\r\n this.updateColumnDataTypes(dataSource);\r\n this._dataSourceApplied = true\r\n }\r\n if (!_uiGrid_core2.default.equalSortParameters(parameters.sorting, this.getSortDataSourceParameters())) {\r\n updateColumnChanges(this, \"sorting\")\r\n }\r\n if (!_uiGrid_core2.default.equalSortParameters(parameters.grouping, this.getGroupDataSourceParameters())) {\r\n updateColumnChanges(this, \"grouping\")\r\n }\r\n var dataController = this.getController(\"data\");\r\n if (dataController && !_uiGrid_core2.default.equalFilterParameters(parameters.filtering, dataController.getCombinedFilter())) {\r\n updateColumnChanges(this, \"filtering\")\r\n }\r\n updateColumnChanges(this, \"columns\")\r\n },\r\n updateSortingGrouping: function(dataSource, fromDataSource) {\r\n var that = this;\r\n var sortParameters;\r\n var isColumnsChanged;\r\n var updateSortGroupParameterIndexes = function(columns, sortParameters, indexParameterName) {\r\n (0, _iterator.each)(columns, function(index, column) {\r\n delete column[indexParameterName];\r\n if (sortParameters) {\r\n for (var i = 0; i < sortParameters.length; i++) {\r\n var selector = sortParameters[i].selector;\r\n var isExpanded = sortParameters[i].isExpanded;\r\n if (selector === column.dataField || selector === column.name || selector === column.selector || selector === column.calculateCellValue || selector === column.calculateGroupValue || selector === column.calculateDisplayValue) {\r\n column.sortOrder = column.sortOrder || (sortParameters[i].desc ? \"desc\" : \"asc\");\r\n if (void 0 !== isExpanded) {\r\n column.autoExpandGroup = isExpanded\r\n }\r\n column[indexParameterName] = i;\r\n break\r\n }\r\n }\r\n }\r\n })\r\n };\r\n if (dataSource) {\r\n sortParameters = _uiGrid_core2.default.normalizeSortingInfo(dataSource.sort());\r\n var groupParameters = _uiGrid_core2.default.normalizeSortingInfo(dataSource.group());\r\n var columnsGroupParameters = that.getGroupDataSourceParameters();\r\n var columnsSortParameters = that.getSortDataSourceParameters();\r\n if (!that._columns.length) {\r\n (0, _iterator.each)(groupParameters, function(index, group) {\r\n that._columns.push(group.selector)\r\n });\r\n (0, _iterator.each)(sortParameters, function(index, sort) {\r\n that._columns.push(sort.selector)\r\n });\r\n assignColumns(that, createColumnsFromOptions(that, that._columns))\r\n }\r\n if ((fromDataSource || !columnsGroupParameters && !that._hasUserState) && !_uiGrid_core2.default.equalSortParameters(groupParameters, columnsGroupParameters)) {\r\n updateSortGroupParameterIndexes(that._columns, groupParameters, \"groupIndex\");\r\n if (fromDataSource) {\r\n updateColumnChanges(that, \"grouping\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if ((fromDataSource || !columnsSortParameters && !that._hasUserState) && !_uiGrid_core2.default.equalSortParameters(sortParameters, columnsSortParameters)) {\r\n updateSortGroupParameterIndexes(that._columns, sortParameters, \"sortIndex\");\r\n if (fromDataSource) {\r\n updateColumnChanges(that, \"sorting\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if (isColumnsChanged) {\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n },\r\n updateFilter: function(filter, remoteFiltering, columnIndex, filterValue) {\r\n var that = this;\r\n if (!Array.isArray(filter)) {\r\n return filter\r\n }\r\n filter = (0, _extend.extend)([], filter);\r\n columnIndex = void 0 !== filter.columnIndex ? filter.columnIndex : columnIndex;\r\n filterValue = void 0 !== filter.filterValue ? filter.filterValue : filterValue;\r\n if ((0, _type.isString)(filter[0]) && \"!\" !== filter[0]) {\r\n var column = that.columnOption(filter[0]);\r\n if (remoteFiltering) {\r\n if ((0, _config.default)().forceIsoDateParsing && column && column.serializeValue && filter.length > 1) {\r\n filter[filter.length - 1] = column.serializeValue(filter[filter.length - 1], \"filter\")\r\n }\r\n } else {\r\n if (column && column.selector) {\r\n filter[0] = column.selector;\r\n filter[0].columnIndex = column.index\r\n }\r\n }\r\n } else {\r\n if ((0, _type.isFunction)(filter[0])) {\r\n filter[0].columnIndex = columnIndex;\r\n filter[0].filterValue = filterValue\r\n }\r\n }\r\n for (var i = 0; i < filter.length; i++) {\r\n filter[i] = that.updateFilter(filter[i], remoteFiltering, columnIndex, filterValue)\r\n }\r\n return filter\r\n },\r\n columnCount: function() {\r\n return this._columns ? this._columns.length : 0\r\n },\r\n columnOption: function(identifier, option, value, notFireEvent) {\r\n var that = this;\r\n var columns = that._columns.concat(that._commandColumns);\r\n var column = findColumn(columns, identifier);\r\n if (column) {\r\n if (1 === arguments.length) {\r\n return (0, _extend.extend)({}, column)\r\n }\r\n if ((0, _type.isString)(option)) {\r\n if (2 === arguments.length) {\r\n return columnOptionCore(that, column, option)\r\n } else {\r\n columnOptionCore(that, column, option, value, notFireEvent)\r\n }\r\n } else {\r\n if ((0, _type.isObject)(option)) {\r\n (0, _iterator.each)(option, function(optionName, value) {\r\n columnOptionCore(that, column, optionName, value, notFireEvent)\r\n })\r\n }\r\n }\r\n fireColumnsChanged(that)\r\n }\r\n },\r\n clearSorting: function() {\r\n var that = this;\r\n var columnCount = this.columnCount();\r\n that.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n that.columnOption(i, \"sortOrder\", void 0)\r\n }\r\n that.endUpdate()\r\n },\r\n clearGrouping: function() {\r\n var that = this;\r\n var columnCount = this.columnCount();\r\n that.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n that.columnOption(i, \"groupIndex\", void 0)\r\n }\r\n that.endUpdate()\r\n },\r\n getVisibleIndex: function(index, rowIndex) {\r\n var columns = this.getVisibleColumns(rowIndex);\r\n for (var i = columns.length - 1; i >= 0; i--) {\r\n if (columns[i].index === index) {\r\n return i\r\n }\r\n }\r\n return -1\r\n },\r\n getVisibleIndexByColumn: function(column, rowIndex) {\r\n var visibleColumns = this.getVisibleColumns(rowIndex);\r\n var visibleColumn = visibleColumns.filter(function(col) {\r\n return col.index === column.index && col.command === column.command\r\n })[0];\r\n return visibleColumns.indexOf(visibleColumn)\r\n },\r\n getVisibleColumnIndex: function(id, rowIndex) {\r\n var index = this.columnOption(id, \"index\");\r\n return this.getVisibleIndex(index, rowIndex)\r\n },\r\n addColumn: function(options) {\r\n var that = this;\r\n var column = createColumn(that, options);\r\n var index = that._columns.length;\r\n that._columns.push(column);\r\n if (column.isBand) {\r\n that._columns = createColumnsFromOptions(that, that._columns);\r\n column = that._columns[index]\r\n }\r\n column.added = options;\r\n updateIndexes(that, column);\r\n that.updateColumns(that._dataSource);\r\n that._checkColumns()\r\n },\r\n deleteColumn: function(id) {\r\n var that = this;\r\n var column = that.columnOption(id);\r\n if (column && column.index >= 0) {\r\n convertOwnerBandToColumnReference(that._columns);\r\n that._columns.splice(column.index, 1);\r\n if (column.isBand) {\r\n var childIndexes = that.getChildrenByBandColumn(column.index).map(function(column) {\r\n return column.index\r\n });\r\n that._columns = that._columns.filter(function(column) {\r\n return childIndexes.indexOf(column.index) < 0\r\n })\r\n }\r\n updateIndexes(that);\r\n that.updateColumns(that._dataSource)\r\n }\r\n },\r\n addCommandColumn: function(options) {\r\n var commandColumn = this._commandColumns.filter(function(column) {\r\n return column.command === options.command\r\n })[0];\r\n if (!commandColumn) {\r\n commandColumn = options;\r\n this._commandColumns.push(commandColumn)\r\n }\r\n },\r\n getUserState: function() {\r\n var columns = this._columns;\r\n var result = [];\r\n var i;\r\n\r\n function handleStateField(index, value) {\r\n if (void 0 !== columns[i][value]) {\r\n result[i][value] = columns[i][value]\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n result[i] = {};\r\n (0, _iterator.each)(USER_STATE_FIELD_NAMES, handleStateField)\r\n }\r\n return result\r\n },\r\n setName: function(column) {\r\n var dataField = column.dataField;\r\n if (!(0, _type.isDefined)(column.name) && (0, _type.isDefined)(dataField)) {\r\n column.name = dataField\r\n }\r\n },\r\n setUserState: function(state) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var ignoreColumnOptionNames = that.option(\"stateStoring.ignoreColumnOptionNames\");\r\n null === state || void 0 === state ? void 0 : state.forEach(this.setName);\r\n if (!ignoreColumnOptionNames) {\r\n ignoreColumnOptionNames = [];\r\n var commonColumnSettings = that.getCommonSettings();\r\n if (!that.option(\"columnChooser.enabled\")) {\r\n ignoreColumnOptionNames.push(\"visible\")\r\n }\r\n if (\"none\" === that.option(\"sorting.mode\")) {\r\n ignoreColumnOptionNames.push(\"sortIndex\", \"sortOrder\")\r\n }\r\n if (!commonColumnSettings.allowGrouping) {\r\n ignoreColumnOptionNames.push(\"groupIndex\")\r\n }\r\n if (!commonColumnSettings.allowFixing) {\r\n ignoreColumnOptionNames.push(\"fixed\", \"fixedPosition\")\r\n }\r\n if (!commonColumnSettings.allowResizing) {\r\n ignoreColumnOptionNames.push(\"width\", \"visibleWidth\")\r\n }\r\n var isFilterPanelHidden = !that.option(\"filterPanel.visible\");\r\n if (!that.option(\"filterRow.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValue\", \"selectedFilterOperation\")\r\n }\r\n if (!that.option(\"headerFilter.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValues\", \"filterType\")\r\n }\r\n }\r\n that._columnsUserState = state;\r\n that._ignoreColumnOptionNames = ignoreColumnOptionNames;\r\n that._hasUserState = !!state;\r\n updateColumnChanges(that, \"filtering\");\r\n that.init();\r\n if (dataSource) {\r\n dataSource.sort(that.getSortDataSourceParameters());\r\n dataSource.group(that.getGroupDataSourceParameters())\r\n }\r\n },\r\n _checkColumns: function() {\r\n var usedNames = {};\r\n var hasEditableColumnWithoutName = false;\r\n var duplicatedNames = [];\r\n this._columns.forEach(function(column) {\r\n var _column$columns;\r\n var name = column.name;\r\n var isBand = null === (_column$columns = column.columns) || void 0 === _column$columns ? void 0 : _column$columns.length;\r\n var isEditable = column.allowEditing && (column.dataField || column.setCellValue) && !isBand;\r\n if (name) {\r\n if (usedNames[name]) {\r\n duplicatedNames.push('\"'.concat(name, '\"'))\r\n }\r\n usedNames[name] = true\r\n } else {\r\n if (isEditable) {\r\n hasEditableColumnWithoutName = true\r\n }\r\n }\r\n });\r\n if (duplicatedNames.length) {\r\n _ui.default.log(\"E1059\", duplicatedNames.join(\", \"))\r\n }\r\n if (hasEditableColumnWithoutName) {\r\n _ui.default.log(\"E1060\")\r\n }\r\n },\r\n _createCalculatedColumnOptions: function(columnOptions, bandColumn) {\r\n var calculatedColumnOptions = {};\r\n var dataField = columnOptions.dataField;\r\n if (Array.isArray(columnOptions.columns) && columnOptions.columns.length || columnOptions.isBand) {\r\n calculatedColumnOptions.isBand = true;\r\n dataField = null\r\n }\r\n if (dataField) {\r\n if ((0, _type.isString)(dataField)) {\r\n var getter = (0, _data.compileGetter)(dataField);\r\n calculatedColumnOptions = {\r\n caption: (0, _inflector.captionize)(dataField),\r\n calculateCellValue: function(data, skipDeserialization) {\r\n var value = getter(data);\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n setCellValue: defaultSetCellValue,\r\n parseValue: function(text) {\r\n var column = this;\r\n var result;\r\n var parsedValue;\r\n if (\"number\" === column.dataType) {\r\n if ((0, _type.isString)(text) && column.format) {\r\n parsedValue = _number.default.parse(text);\r\n if ((0, _type.isNumeric)(parsedValue)) {\r\n result = parsedValue\r\n }\r\n } else {\r\n if ((0, _type.isDefined)(text) && (0, _type.isNumeric)(text)) {\r\n result = Number(text)\r\n }\r\n }\r\n } else {\r\n if (\"boolean\" === column.dataType) {\r\n if (text === column.trueText) {\r\n result = true\r\n } else {\r\n if (text === column.falseText) {\r\n result = false\r\n }\r\n }\r\n } else {\r\n if (_uiGrid_core2.default.isDateType(column.dataType)) {\r\n parsedValue = _date.default.parse(text, column.format);\r\n if (parsedValue) {\r\n result = parsedValue\r\n }\r\n } else {\r\n result = text\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.allowFiltering = true\r\n } else {\r\n calculatedColumnOptions.allowFiltering = !!columnOptions.calculateFilterExpression\r\n }\r\n calculatedColumnOptions.calculateFilterExpression = function() {\r\n return _filtering.default.defaultCalculateFilterExpression.apply(this, arguments)\r\n };\r\n calculatedColumnOptions.createFilterExpression = function(filterValue) {\r\n var result;\r\n if (this.calculateFilterExpression) {\r\n result = this.calculateFilterExpression.apply(this, arguments)\r\n }\r\n if ((0, _type.isFunction)(result)) {\r\n result = [result, \"=\", true]\r\n }\r\n if (result) {\r\n result.columnIndex = this.index;\r\n result.filterValue = filterValue\r\n }\r\n return result\r\n };\r\n if (!dataField || !(0, _type.isString)(dataField)) {\r\n (0, _extend.extend)(true, calculatedColumnOptions, {\r\n allowSorting: false,\r\n allowGrouping: false,\r\n calculateCellValue: function() {\r\n return null\r\n }\r\n })\r\n }\r\n if (bandColumn) {\r\n calculatedColumnOptions.allowFixing = false\r\n }\r\n if (columnOptions.dataType) {\r\n calculatedColumnOptions.userDataType = columnOptions.dataType\r\n }\r\n if (columnOptions.selectedFilterOperation && !(\"defaultSelectedFilterOperation\" in calculatedColumnOptions)) {\r\n calculatedColumnOptions.defaultSelectedFilterOperation = columnOptions.selectedFilterOperation\r\n }\r\n if (columnOptions.lookup) {\r\n calculatedColumnOptions.lookup = {\r\n calculateCellValue: function(value, skipDeserialization) {\r\n if (this.valueExpr) {\r\n value = this.valueMap && this.valueMap[value]\r\n }\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n updateValueMap: function() {\r\n this.valueMap = {};\r\n if (this.items) {\r\n var calculateValue = (0, _data.compileGetter)(this.valueExpr);\r\n var calculateDisplayValue = (0, _data.compileGetter)(this.displayExpr);\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n var displayValue = calculateDisplayValue(item);\r\n this.valueMap[calculateValue(item)] = displayValue;\r\n this.dataType = this.dataType || getValueDataType(displayValue);\r\n }\r\n }\r\n },\r\n update: function() {\r\n var that = this;\r\n var dataSource = that.dataSource;\r\n if (dataSource) {\r\n if ((0, _type.isFunction)(dataSource) && !_variable_wrapper.default.isWrapped(dataSource)) {\r\n dataSource = dataSource({})\r\n }\r\n if ((0, _type.isPlainObject)(dataSource) || dataSource instanceof _abstract_store.default || Array.isArray(dataSource)) {\r\n if (that.valueExpr) {\r\n var dataSourceOptions = (0, _utils.normalizeDataSourceOptions)(dataSource);\r\n dataSourceOptions.paginate = false;\r\n dataSource = new _data_source.DataSource(dataSourceOptions);\r\n return dataSource.load().done(function(data) {\r\n that.items = data;\r\n that.updateValueMap && that.updateValueMap()\r\n })\r\n }\r\n } else {\r\n _ui.default.log(\"E1016\")\r\n }\r\n } else {\r\n that.updateValueMap && that.updateValueMap()\r\n }\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.resizedCallbacks = (0, _callbacks.default)();\r\n if (columnOptions.resized) {\r\n calculatedColumnOptions.resizedCallbacks.add(columnOptions.resized.bind(columnOptions))\r\n }(0, _iterator.each)(calculatedColumnOptions, function(optionName) {\r\n if ((0, _type.isFunction)(calculatedColumnOptions[optionName]) && 0 !== optionName.indexOf(\"default\")) {\r\n var defaultOptionName = \"default\" + optionName.charAt(0).toUpperCase() + optionName.substr(1);\r\n calculatedColumnOptions[defaultOptionName] = calculatedColumnOptions[optionName]\r\n }\r\n });\r\n return calculatedColumnOptions\r\n },\r\n getRowCount: function() {\r\n this._rowCount = this._rowCount || _getRowCount(this);\r\n return this._rowCount\r\n },\r\n getRowIndex: function(columnIndex, alwaysGetRowIndex) {\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n return column && (alwaysGetRowIndex || column.visible && !(column.command || (0, _type.isDefined)(column.groupIndex))) ? getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex).length : 0\r\n },\r\n getChildrenByBandColumn: function(bandColumnIndex, onlyVisibleDirectChildren) {\r\n var that = this;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var result = _getChildrenByBandColumn(bandColumnIndex, bandColumnsCache.columnChildrenByIndex, !onlyVisibleDirectChildren);\r\n if (onlyVisibleDirectChildren) {\r\n return result.filter(function(column) {\r\n return column.visible && !column.command\r\n }).sort(function(column1, column2) {\r\n return column1.visibleIndex - column2.visibleIndex\r\n })\r\n }\r\n return result\r\n },\r\n isParentBandColumn: function(columnIndex, bandColumnIndex) {\r\n var result = false;\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var parentBandColumns = column && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns) {\r\n (0, _iterator.each)(parentBandColumns, function(_, bandColumn) {\r\n if (bandColumn.index === bandColumnIndex) {\r\n result = true;\r\n return false\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n isParentColumnVisible: function(columnIndex) {\r\n var result = true;\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var bandColumns = columnIndex >= 0 && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n bandColumns && (0, _iterator.each)(bandColumns, function(_, bandColumn) {\r\n result = result && bandColumn.visible;\r\n return result\r\n });\r\n return result\r\n },\r\n getColumnId: function(column) {\r\n if (column.command && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (isCustomCommandColumn(this, column)) {\r\n return \"type:\" + column.type\r\n }\r\n return \"command:\" + column.command\r\n }\r\n return column.index\r\n },\r\n getCustomizeTextByDataType: getCustomizeTextByDataType,\r\n getHeaderContentAlignment: function(columnAlignment) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n return \"left\" === columnAlignment ? \"right\" : \"left\"\r\n }\r\n return columnAlignment\r\n }\r\n }\r\n }())\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/context_menu/ui.menu_base.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _utils = require(\"../widget/utils.ink_ripple\");\r\nvar _ui = _interopRequireDefault(require(\"../hierarchical_collection/ui.hierarchical_collection_widget\"));\r\nvar _uiMenu_baseEdit = _interopRequireDefault(require(\"./ui.menu_base.edit.strategy\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _item = _interopRequireDefault(require(\"../collection/item\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_NO_ICONS_CLASS = DX_MENU_CLASS + \"-no-icons\";\r\nvar DX_MENU_BASE_CLASS = \"dx-menu-base\";\r\nvar ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_ITEM_CONTENT_CLASS = ITEM_CLASS + \"-content\";\r\nvar DX_MENU_SELECTED_ITEM_CLASS = ITEM_CLASS + \"-selected\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = ITEM_CLASS + \"-wrapper\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_SEPARATOR_CLASS = DX_MENU_CLASS + \"-separator\";\r\nvar DX_MENU_ITEM_LAST_GROUP_ITEM = DX_MENU_CLASS + \"-last-group-item\";\r\nvar DX_ITEM_HAS_TEXT = ITEM_CLASS + \"-has-text\";\r\nvar DX_ITEM_HAS_ICON = ITEM_CLASS + \"-has-icon\";\r\nvar DX_ITEM_HAS_SUBMENU = ITEM_CLASS + \"-has-submenu\";\r\nvar DX_MENU_ITEM_POPOUT_CLASS = ITEM_CLASS + \"-popout\";\r\nvar DX_MENU_ITEM_POPOUT_CONTAINER_CLASS = DX_MENU_ITEM_POPOUT_CLASS + \"-container\";\r\nvar DX_MENU_ITEM_CAPTION_CLASS = ITEM_CLASS + \"-text\";\r\nvar SINGLE_SELECTION_MODE = \"single\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nvar MenuBase = function(_HierarchicalCollecti) {\r\n _inheritsLoose(MenuBase, _HierarchicalCollecti);\r\n\r\n function MenuBase() {\r\n return _HierarchicalCollecti.apply(this, arguments) || this\r\n }\r\n var _proto = MenuBase.prototype;\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_HierarchicalCollecti.prototype._getDefaultOptions.call(this), {\r\n items: [],\r\n cssClass: \"\",\r\n activeStateEnabled: true,\r\n showSubmenuMode: {\r\n name: \"onHover\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1,\r\n duration: 100\r\n },\r\n hide: {\r\n type: \"fade\",\r\n from: 1,\r\n to: 0,\r\n duration: 100\r\n }\r\n },\r\n selectByClick: false,\r\n focusOnSelectedItem: false,\r\n keyExpr: null,\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n },\r\n useInkRipple: false\r\n })\r\n };\r\n _proto._itemDataKey = function() {\r\n return \"dxMenuItemDataKey\"\r\n };\r\n _proto._itemClass = function() {\r\n return ITEM_CLASS\r\n };\r\n _proto._setAriaSelected = function() {};\r\n _proto._selectedItemClass = function() {\r\n return DX_MENU_SELECTED_ITEM_CLASS\r\n };\r\n _proto._widgetClass = function() {\r\n return DX_MENU_BASE_CLASS\r\n };\r\n _proto._focusTarget = function() {\r\n return this._itemContainer()\r\n };\r\n _proto._clean = function() {\r\n this.option(\"focusedElement\", null);\r\n _HierarchicalCollecti.prototype._clean.call(this)\r\n };\r\n _proto._supportedKeys = function() {\r\n var _this = this;\r\n var selectItem = function() {\r\n var $item = (0, _renderer.default)(_this.option(\"focusedElement\"));\r\n if (!$item.length || !_this._isSelectionEnabled()) {\r\n return\r\n }\r\n _this.selectItem($item[0])\r\n };\r\n return (0, _extend.extend)(_HierarchicalCollecti.prototype._supportedKeys.call(this), {\r\n space: selectItem,\r\n pageUp: _common.noop,\r\n pageDown: _common.noop\r\n })\r\n };\r\n _proto._isSelectionEnabled = function() {\r\n return this.option(\"selectionMode\") === SINGLE_SELECTION_MODE\r\n };\r\n _proto._init = function() {\r\n this._activeStateUnit = \".\".concat(ITEM_CLASS);\r\n _HierarchicalCollecti.prototype._init.call(this);\r\n this._renderSelectedItem();\r\n this._initActions()\r\n };\r\n _proto._getTextContainer = function(itemData) {\r\n var itemText = itemData.text;\r\n var $itemContainer = (0, _renderer.default)(\"\").addClass(DX_MENU_ITEM_CAPTION_CLASS);\r\n var itemContent = (0, _type.isPlainObject)(itemData) ? itemText : String(itemData);\r\n return itemText && $itemContainer.text(itemContent)\r\n };\r\n _proto._getPopoutContainer = function(itemData) {\r\n var items = itemData.items;\r\n var $popOutContainer;\r\n if (items && items.length) {\r\n var $popOutImage = (0, _renderer.default)(\"
\").addClass(DX_MENU_ITEM_POPOUT_CLASS);\r\n $popOutContainer = (0, _renderer.default)(\"\").addClass(DX_MENU_ITEM_POPOUT_CONTAINER_CLASS).append($popOutImage)\r\n }\r\n return $popOutContainer\r\n };\r\n _proto._getDataAdapterOptions = function() {\r\n return {\r\n rootValue: 0,\r\n multipleSelection: false,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n searchValue: \"\"\r\n }\r\n };\r\n _proto._selectByItem = function(selectedItem) {\r\n if (!selectedItem) {\r\n return\r\n }\r\n var nodeToSelect = this._dataAdapter.getNodeByItem(selectedItem);\r\n this._dataAdapter.toggleSelection(nodeToSelect.internalFields.key, true)\r\n };\r\n _proto._renderSelectedItem = function() {\r\n var selectedKeys = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedKey = selectedKeys.length && selectedKeys[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (!selectedKey) {\r\n this._selectByItem(selectedItem);\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByKey(selectedKey);\r\n if (false === node.selectable) {\r\n return\r\n }\r\n if (!selectedItem) {\r\n this.option(\"selectedItem\", node.internalFields.item);\r\n return\r\n }\r\n if (selectedItem !== node.internalFields.item) {\r\n this._dataAdapter.toggleSelection(selectedKey, false);\r\n this._selectByItem(selectedItem)\r\n }\r\n };\r\n _proto._initActions = function() {};\r\n _proto._initMarkup = function() {\r\n _HierarchicalCollecti.prototype._initMarkup.call(this);\r\n this._addCustomCssClass(this.$element());\r\n this.option(\"useInkRipple\") && this._renderInkRipple()\r\n };\r\n _proto._renderInkRipple = function() {\r\n this._inkRipple = (0, _utils.render)()\r\n };\r\n _proto._toggleActiveState = function($element, value, e) {\r\n _HierarchicalCollecti.prototype._toggleActiveState.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n };\r\n _proto._getShowSubmenuMode = function() {\r\n var defaultValue = \"onClick\";\r\n var optionValue = this.option(\"showSubmenuMode\");\r\n optionValue = (0, _type.isObject)(optionValue) ? optionValue.name : optionValue;\r\n return this._isDesktopDevice() ? optionValue : defaultValue\r\n };\r\n _proto._initSelectedItems = function() {};\r\n _proto._isDesktopDevice = function() {\r\n return \"desktop\" === _devices.default.real().deviceType\r\n };\r\n _proto._initEditStrategy = function() {\r\n var Strategy = _uiMenu_baseEdit.default;\r\n this._editStrategy = new Strategy(this)\r\n };\r\n _proto._addCustomCssClass = function($element) {\r\n $element.addClass(this.option(\"cssClass\"))\r\n };\r\n _proto._itemWrapperSelector = function() {\r\n return \".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)\r\n };\r\n _proto._hoverStartHandler = function(e) {\r\n var $itemElement = this._getItemElementByEventArgs(e);\r\n if (!$itemElement || this._isItemDisabled($itemElement)) {\r\n return\r\n }\r\n e.stopPropagation();\r\n if (\"onHover\" === this._getShowSubmenuMode()) {\r\n clearTimeout(this._showSubmenusTimeout);\r\n this._showSubmenusTimeout = setTimeout(this._showSubmenu.bind(this, $itemElement), this._getSubmenuDelay(\"show\"))\r\n }\r\n };\r\n _proto._getAvailableItems = function($itemElements) {\r\n return _HierarchicalCollecti.prototype._getAvailableItems.call(this, $itemElements).filter(function() {\r\n return \"hidden\" !== (0, _renderer.default)(this).css(\"visibility\")\r\n })\r\n };\r\n _proto._isItemDisabled = function($item) {\r\n return this._disabledGetter($item.data(this._itemDataKey()))\r\n };\r\n _proto._showSubmenu = function($itemElement) {\r\n this._addExpandedClass($itemElement)\r\n };\r\n _proto._addExpandedClass = function(itemElement) {\r\n (0, _renderer.default)(itemElement).addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n };\r\n _proto._getSubmenuDelay = function(action) {\r\n var _this$option = this.option(\"showSubmenuMode\"),\r\n delay = _this$option.delay;\r\n if (!(0, _type.isDefined)(delay)) {\r\n return DEFAULT_DELAY[action]\r\n }\r\n return (0, _type.isObject)(delay) ? delay[action] : delay\r\n };\r\n _proto._getItemElementByEventArgs = function(eventArgs) {\r\n var $target = (0, _renderer.default)(eventArgs.target);\r\n if ($target.hasClass(this._itemClass()) || $target.get(0) === eventArgs.currentTarget) {\r\n return $target\r\n }\r\n while (!$target.hasClass(this._itemClass())) {\r\n $target = $target.parent();\r\n if ($target.hasClass(\"dx-submenu\")) {\r\n return null\r\n }\r\n }\r\n return $target\r\n };\r\n _proto._hoverEndHandler = function() {\r\n clearTimeout(this._showSubmenusTimeout)\r\n };\r\n _proto._hasSubmenu = function(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n };\r\n _proto._renderContentImpl = function() {\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n };\r\n _proto._renderItems = function(nodes, submenuContainer) {\r\n var _this2 = this;\r\n if (nodes.length) {\r\n this.hasIcons = false;\r\n var $nodeContainer = this._renderContainer(this.$element(), submenuContainer);\r\n var firstVisibleIndex = -1;\r\n var nextGroupFirstIndex = -1;\r\n (0, _iterator.each)(nodes, function(index, node) {\r\n var isVisibleNode = false !== node.visible;\r\n if (isVisibleNode && firstVisibleIndex < 0) {\r\n firstVisibleIndex = index\r\n }\r\n var isBeginGroup = firstVisibleIndex < index && (node.beginGroup || index === nextGroupFirstIndex);\r\n if (isBeginGroup) {\r\n nextGroupFirstIndex = isVisibleNode ? index : index + 1\r\n }\r\n if (index === nextGroupFirstIndex && firstVisibleIndex < index) {\r\n _this2._renderSeparator($nodeContainer)\r\n }\r\n _this2._renderItem(index, node, $nodeContainer)\r\n });\r\n if (!this.hasIcons) {\r\n $nodeContainer.addClass(DX_MENU_NO_ICONS_CLASS)\r\n }\r\n }\r\n };\r\n _proto._renderContainer = function($wrapper) {\r\n var $container = (0, _renderer.default)(\"
    \");\r\n this.setAria(\"role\", \"none\", $container);\r\n return $container.appendTo($wrapper).addClass(DX_MENU_ITEMS_CONTAINER_CLASS)\r\n };\r\n _proto._createDOMElement = function($nodeContainer) {\r\n var $node = (0, _renderer.default)(\"
  • \");\r\n this.setAria(\"role\", \"none\", $node);\r\n return $node.appendTo($nodeContainer).addClass(DX_MENU_ITEM_WRAPPER_CLASS)\r\n };\r\n _proto._renderItem = function(index, node, $nodeContainer, $nodeElement) {\r\n var items = this.option(\"items\");\r\n var $node = $nodeElement || this._createDOMElement($nodeContainer);\r\n if (items[index + 1] && items[index + 1].beginGroup) {\r\n $node.addClass(DX_MENU_ITEM_LAST_GROUP_ITEM)\r\n }\r\n var $itemFrame = _HierarchicalCollecti.prototype._renderItem.call(this, index, node.internalFields.item, $node);\r\n if (node.internalFields.item === this.option(\"selectedItem\")) {\r\n $itemFrame.addClass(DX_MENU_SELECTED_ITEM_CLASS)\r\n }\r\n $itemFrame.attr(\"tabIndex\", -1);\r\n if (this._hasSubmenu(node)) {\r\n this.setAria(\"haspopup\", \"true\", $itemFrame)\r\n }\r\n };\r\n _proto._renderItemFrame = function(index, itemData, $itemContainer) {\r\n var $itemFrame = $itemContainer.children(\".\".concat(ITEM_CLASS));\r\n return $itemFrame.length ? $itemFrame : _HierarchicalCollecti.prototype._renderItemFrame.apply(this, arguments)\r\n };\r\n _proto._refreshItem = function($item, item) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n var index = $item.data(this._itemIndexKey());\r\n var $nodeContainer = $item.closest(\"ul\");\r\n var $nodeElement = $item.closest(\"li\");\r\n this._renderItem(index, node, $nodeContainer, $nodeElement)\r\n };\r\n _proto._addContentClasses = function(itemData, $itemFrame) {\r\n var hasText = itemData.text ? !!itemData.text.length : false;\r\n var hasIcon = !!itemData.icon;\r\n var hasSubmenu = itemData.items ? !!itemData.items.length : false;\r\n $itemFrame.toggleClass(DX_ITEM_HAS_TEXT, hasText);\r\n $itemFrame.toggleClass(DX_ITEM_HAS_ICON, hasIcon);\r\n if (!this.hasIcons) {\r\n this.hasIcons = hasIcon\r\n }\r\n $itemFrame.toggleClass(DX_ITEM_HAS_SUBMENU, hasSubmenu)\r\n };\r\n _proto._getItemContent = function($itemFrame) {\r\n var $itemContent = _HierarchicalCollecti.prototype._getItemContent.call(this, $itemFrame);\r\n if (!$itemContent.length) {\r\n $itemContent = $itemFrame.children(\".\".concat(DX_ITEM_CONTENT_CLASS))\r\n }\r\n return $itemContent\r\n };\r\n _proto._postprocessRenderItem = function(args) {\r\n var $itemElement = (0, _renderer.default)(args.itemElement);\r\n var selectedIndex = this._dataAdapter.getSelectedNodesKeys();\r\n if (!selectedIndex.length || !this._selectedGetter(args.itemData) || !this._isItemSelectable(args.itemData)) {\r\n this._setAriaSelected($itemElement, \"false\");\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByItem(args.itemData);\r\n if (node.internalFields.key === selectedIndex[0]) {\r\n $itemElement.addClass(this._selectedItemClass());\r\n this._setAriaSelected($itemElement, \"true\")\r\n } else {\r\n this._setAriaSelected($itemElement, \"false\")\r\n }\r\n };\r\n _proto._isItemSelectable = function(item) {\r\n return false !== item.selectable\r\n };\r\n _proto._renderSeparator = function($itemsContainer) {\r\n (0, _renderer.default)(\"
  • \").appendTo($itemsContainer).addClass(DX_MENU_SEPARATOR_CLASS)\r\n };\r\n _proto._itemClickHandler = function(e) {\r\n if (e._skipHandling) {\r\n return\r\n }\r\n var itemClickActionHandler = this._createAction(this._updateSubmenuVisibilityOnClick.bind(this));\r\n this._itemDXEventHandler(e, \"onItemClick\", {}, {\r\n afterExecute: itemClickActionHandler.bind(this)\r\n });\r\n e._skipHandling = true\r\n };\r\n _proto._updateSubmenuVisibilityOnClick = function(actionArgs) {\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._addExpandedClass(actionArgs.args[0].itemElement)\r\n }\r\n };\r\n _proto._updateSelectedItemOnClick = function(actionArgs) {\r\n var args = actionArgs.args ? actionArgs.args[0] : actionArgs;\r\n if (!this._isItemSelectionAllowed(args.itemData)) {\r\n return\r\n }\r\n var selectedItemKey = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedNode = selectedItemKey.length && this._dataAdapter.getNodeByKey(selectedItemKey[0]);\r\n if (selectedNode) {\r\n this._toggleItemSelection(selectedNode, false)\r\n }\r\n if (!selectedNode || selectedNode.internalFields.item !== args.itemData) {\r\n this.selectItem(args.itemData)\r\n } else {\r\n this._fireSelectionChangeEvent(null, this.option(\"selectedItem\"));\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n };\r\n _proto._isItemSelectionAllowed = function(item) {\r\n var isSelectionByClickEnabled = this._isSelectionEnabled() && this.option(\"selectByClick\");\r\n return !this._isContainerEmpty() && isSelectionByClickEnabled && this._isItemSelectable(item) && !this._itemsGetter(item)\r\n };\r\n _proto._isContainerEmpty = function() {\r\n return this._itemContainer().is(\":empty\")\r\n };\r\n _proto._syncSelectionOptions = function() {\r\n return (0, _common.asyncNoop)()\r\n };\r\n _proto._optionChanged = function(args) {\r\n switch (args.name) {\r\n case \"showSubmenuMode\":\r\n break;\r\n case \"selectedItem\":\r\n var node = this._dataAdapter.getNodeByItem(args.value);\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n if (node && node.internalFields.key !== selectedKey) {\r\n if (false === node.selectable) {\r\n break\r\n }\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems()\r\n }\r\n break;\r\n case \"cssClass\":\r\n case \"position\":\r\n case \"selectByClick\":\r\n case \"animation\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n default:\r\n _HierarchicalCollecti.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto._toggleItemSelection = function(node, value) {\r\n var itemElement = this._getElementByItem(node.internalFields.item);\r\n itemElement && (0, _renderer.default)(itemElement).toggleClass(DX_MENU_SELECTED_ITEM_CLASS);\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value)\r\n };\r\n _proto._getElementByItem = function(itemData) {\r\n var _this3 = this;\r\n var result;\r\n (0, _iterator.each)(this._itemElements(), function(_, itemElement) {\r\n if ((0, _renderer.default)(itemElement).data(_this3._itemDataKey()) !== itemData) {\r\n return true\r\n }\r\n result = itemElement;\r\n return false\r\n });\r\n return result\r\n };\r\n _proto._updateSelectedItems = function(oldSelection, newSelection) {\r\n if (oldSelection || newSelection) {\r\n this._fireSelectionChangeEvent(newSelection, oldSelection)\r\n }\r\n };\r\n _proto._fireSelectionChangeEvent = function(addedSelection, removedSelection) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: [addedSelection],\r\n removedItems: [removedSelection]\r\n })\r\n };\r\n _proto.selectItem = function(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (node.internalFields.key !== selectedKey) {\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems(selectedItem, itemData);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", itemData)\r\n }\r\n };\r\n _proto.unselectItem = function(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (node.internalFields.selected) {\r\n this._toggleItemSelection(node, false);\r\n this._updateSelectedItems(selectedItem, null);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n };\r\n return MenuBase\r\n}(_ui.default);\r\nMenuBase.ItemClass = _item.default;\r\nvar _default = MenuBase;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.header_filter_core.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.updateHeaderFilterItemSelectionState = updateHeaderFilterItemSelectionState;\r\nexports.headerFilterMixin = exports.allowHeaderFiltering = exports.HeaderFilterView = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _popup = _interopRequireDefault(require(\"../popup\"));\r\nvar _tree_view = _interopRequireDefault(require(\"../tree_view\"));\r\nvar _list = _interopRequireDefault(require(\"../list\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar HEADER_FILTER_CLASS = \"dx-header-filter\";\r\nvar HEADER_FILTER_MENU_CLASS = \"dx-header-filter-menu\";\r\nvar DEFAULT_SEARCH_EXPRESSION = \"text\";\r\n\r\nfunction resetChildrenItemSelection(items) {\r\n items = items || [];\r\n for (var i = 0; i < items.length; i++) {\r\n items[i].selected = false;\r\n resetChildrenItemSelection(items[i].items)\r\n }\r\n}\r\n\r\nfunction updateSelectAllState(e, filterValues) {\r\n if (e.component.option(\"searchValue\")) {\r\n return\r\n }\r\n var selectAllCheckBox = (0, _renderer.default)(e.element).find(\".dx-list-select-all-checkbox\").data(\"dxCheckBox\");\r\n if (selectAllCheckBox && filterValues && filterValues.length) {\r\n selectAllCheckBox.option(\"value\", void 0)\r\n }\r\n}\r\n\r\nfunction isSearchEnabled(that, options) {\r\n var headerFilter = options.headerFilter;\r\n if (headerFilter && (0, _type.isDefined)(headerFilter.allowSearch)) {\r\n return headerFilter.allowSearch\r\n }\r\n return that.option(\"headerFilter.allowSearch\")\r\n}\r\n\r\nfunction updateHeaderFilterItemSelectionState(item, filterValuesMatch, isExcludeFilter) {\r\n if (filterValuesMatch ^ isExcludeFilter) {\r\n item.selected = true;\r\n if (isExcludeFilter && item.items) {\r\n for (var j = 0; j < item.items.length; j++) {\r\n if (!item.items[j].selected) {\r\n item.selected = void 0;\r\n break\r\n }\r\n }\r\n }\r\n } else {\r\n if (isExcludeFilter || item.selected) {\r\n item.selected = false;\r\n resetChildrenItemSelection(item.items)\r\n }\r\n }\r\n}\r\nvar HeaderFilterView = _uiGrid_core.default.View.inherit({\r\n getPopupContainer: function() {\r\n return this._popupContainer\r\n },\r\n getListContainer: function() {\r\n return this._listContainer\r\n },\r\n applyHeaderFilter: function(options) {\r\n var that = this;\r\n var list = that.getListContainer();\r\n var searchValue = list.option(\"searchValue\");\r\n var isSelectAll = !searchValue && !options.isFilterBuilder && list.$element().find(\".dx-checkbox\").eq(0).hasClass(\"dx-checkbox-checked\");\r\n var filterValues = [];\r\n var fillSelectedItemKeys = function fillSelectedItemKeys(filterValues, items, isExclude) {\r\n (0, _iterator.each)(items, function(_, item) {\r\n if (void 0 !== item.selected && !!item.selected ^ isExclude) {\r\n var node = list._getNode(item);\r\n var hasChildren = list._hasChildren(node);\r\n var hasChildrenWithSelection = hasChildren && item.items && item.items.some(function(item) {\r\n return item.selected\r\n });\r\n if (!searchValue || !hasChildrenWithSelection) {\r\n filterValues.push(item.value);\r\n return\r\n }\r\n }\r\n if (item.items && item.items.length) {\r\n fillSelectedItemKeys(filterValues, item.items, isExclude)\r\n }\r\n })\r\n };\r\n if (!isSelectAll) {\r\n if (\"tree\" === options.type) {\r\n if (options.filterType) {\r\n options.filterType = \"include\"\r\n }\r\n fillSelectedItemKeys(filterValues, list.option(\"items\"), false);\r\n options.filterValues = filterValues\r\n }\r\n } else {\r\n if (\"tree\" === options.type) {\r\n options.filterType = \"exclude\"\r\n }\r\n if (Array.isArray(options.filterValues)) {\r\n options.filterValues = []\r\n }\r\n }\r\n if (options.filterValues && !options.filterValues.length) {\r\n options.filterValues = null\r\n }\r\n options.apply();\r\n that.hideHeaderFilterMenu()\r\n },\r\n showHeaderFilterMenu: function($columnElement, options) {\r\n var that = this;\r\n if (options) {\r\n that._initializePopupContainer(options);\r\n var popupContainer = that.getPopupContainer();\r\n that.hideHeaderFilterMenu();\r\n that.updatePopup($columnElement, options);\r\n popupContainer.show()\r\n }\r\n },\r\n hideHeaderFilterMenu: function() {\r\n var headerFilterMenu = this.getPopupContainer();\r\n headerFilterMenu && headerFilterMenu.hide()\r\n },\r\n updatePopup: function($element, options) {\r\n var that = this;\r\n var alignment = \"right\" === options.alignment ? \"left\" : \"right\";\r\n if (that._popupContainer) {\r\n that._cleanPopupContent();\r\n that._popupContainer.option(\"position\", {\r\n my: alignment + \" top\",\r\n at: alignment + \" bottom\",\r\n of: $element,\r\n collision: \"flip fit\"\r\n })\r\n }\r\n },\r\n _getSearchExpr: function(options) {\r\n var lookup = options.lookup;\r\n var useDefaultSearchExpr = options.useDefaultSearchExpr;\r\n var headerFilterDataSource = options.headerFilter && options.headerFilter.dataSource;\r\n if (useDefaultSearchExpr || (0, _type.isDefined)(headerFilterDataSource) && !(0, _type.isFunction)(headerFilterDataSource)) {\r\n return DEFAULT_SEARCH_EXPRESSION\r\n }\r\n if (lookup) {\r\n return lookup.displayExpr || \"this\"\r\n }\r\n if (options.dataSource) {\r\n var group = options.dataSource.group;\r\n if (Array.isArray(group) && group.length > 0) {\r\n return group[0].selector\r\n } else {\r\n if ((0, _type.isFunction)(group) && !options.remoteFiltering) {\r\n return group\r\n }\r\n }\r\n }\r\n return options.dataField || options.selector\r\n },\r\n _cleanPopupContent: function() {\r\n this._popupContainer && this._popupContainer.$content().empty()\r\n },\r\n _initializePopupContainer: function(options) {\r\n var that = this;\r\n var $element = that.element();\r\n var headerFilterOptions = that.option(\"headerFilter\");\r\n var width = options.headerFilter && options.headerFilter.width || headerFilterOptions && headerFilterOptions.width;\r\n var height = options.headerFilter && options.headerFilter.height || headerFilterOptions && headerFilterOptions.height;\r\n var dxPopupOptions = {\r\n width: width,\r\n height: height,\r\n visible: false,\r\n shading: false,\r\n showTitle: false,\r\n showCloseButton: false,\r\n closeOnTargetScroll: false,\r\n dragEnabled: false,\r\n closeOnOutsideClick: true,\r\n focusStateEnabled: false,\r\n toolbarItems: [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: headerFilterOptions.texts.ok,\r\n onClick: function() {\r\n that.applyHeaderFilter(options)\r\n }\r\n }\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: headerFilterOptions.texts.cancel,\r\n onClick: function() {\r\n that.hideHeaderFilterMenu()\r\n }\r\n }\r\n }],\r\n resizeEnabled: true,\r\n onShowing: function(e) {\r\n e.component.$content().parent().addClass(\"dx-dropdowneditor-overlay\");\r\n that._initializeListContainer(options);\r\n options.onShowing && options.onShowing(e)\r\n },\r\n onShown: function() {\r\n that.getListContainer().focus()\r\n },\r\n onHidden: options.onHidden,\r\n onInitialized: function(e) {\r\n var component = e.component;\r\n component.option(\"animation\", component._getDefaultOptions().animation)\r\n }\r\n };\r\n if (!(0, _type.isDefined)(that._popupContainer)) {\r\n that._popupContainer = that._createComponent($element, _popup.default, dxPopupOptions)\r\n } else {\r\n that._popupContainer.option(dxPopupOptions)\r\n }\r\n },\r\n _initializeListContainer: function(options) {\r\n var that = this;\r\n var $content = that._popupContainer.$content();\r\n var widgetOptions = {\r\n searchEnabled: isSearchEnabled(that, options),\r\n searchTimeout: that.option(\"headerFilter.searchTimeout\"),\r\n searchMode: options.headerFilter && options.headerFilter.searchMode || \"\",\r\n dataSource: options.dataSource,\r\n onContentReady: function() {\r\n that.renderCompleted.fire()\r\n },\r\n itemTemplate: function(data, _, element) {\r\n var $element = (0, _renderer.default)(element);\r\n if (options.encodeHtml) {\r\n return $element.text(data.text)\r\n }\r\n return $element.html(data.text)\r\n }\r\n };\r\n\r\n function onOptionChanged(e) {\r\n if (\"searchValue\" === e.fullName && !options.isFilterBuilder && false !== that.option(\"headerFilter.hideSelectAllOnSearch\")) {\r\n if (\"tree\" === options.type) {\r\n e.component.option(\"showCheckBoxesMode\", e.value ? \"normal\" : \"selectAll\")\r\n } else {\r\n e.component.option(\"selectionMode\", e.value ? \"multiple\" : \"all\")\r\n }\r\n }\r\n }\r\n if (\"tree\" === options.type) {\r\n that._listContainer = that._createComponent((0, _renderer.default)(\"
    \").appendTo($content), _tree_view.default, (0, _extend.extend)(widgetOptions, {\r\n showCheckBoxesMode: options.isFilterBuilder ? \"normal\" : \"selectAll\",\r\n onOptionChanged: onOptionChanged,\r\n keyExpr: \"id\"\r\n }))\r\n } else {\r\n that._listContainer = that._createComponent((0, _renderer.default)(\"
    \").appendTo($content), _list.default, (0, _extend.extend)(widgetOptions, {\r\n searchExpr: that._getSearchExpr(options),\r\n pageLoadMode: \"scrollBottom\",\r\n showSelectionControls: true,\r\n selectionMode: options.isFilterBuilder ? \"multiple\" : \"all\",\r\n onOptionChanged: onOptionChanged,\r\n onSelectionChanged: function(e) {\r\n var items = e.component.option(\"items\");\r\n var selectedItems = e.component.option(\"selectedItems\");\r\n if (!e.component._selectedItemsUpdating && !e.component.option(\"searchValue\") && !options.isFilterBuilder) {\r\n var filterValues = options.filterValues || [];\r\n var isExclude = \"exclude\" === options.filterType;\r\n if (0 === selectedItems.length && items.length && (filterValues.length <= 1 || isExclude && filterValues.length === items.length - 1)) {\r\n options.filterType = \"include\";\r\n options.filterValues = []\r\n } else {\r\n if (selectedItems.length === items.length) {\r\n options.filterType = \"exclude\";\r\n options.filterValues = []\r\n }\r\n }\r\n }(0, _iterator.each)(items, function(index, item) {\r\n var selected = _uiGrid_core2.default.getIndexByKey(item, selectedItems, null) >= 0;\r\n var oldSelected = !!item.selected;\r\n if (oldSelected !== selected) {\r\n item.selected = selected;\r\n options.filterValues = options.filterValues || [];\r\n var filterValueIndex = _uiGrid_core2.default.getIndexByKey(item.value, options.filterValues, null);\r\n if (filterValueIndex >= 0) {\r\n options.filterValues.splice(filterValueIndex, 1)\r\n }\r\n if (selected ^ \"exclude\" === options.filterType) {\r\n options.filterValues.push(item.value)\r\n }\r\n }\r\n });\r\n updateSelectAllState(e, options.filterValues)\r\n },\r\n onContentReady: function(e) {\r\n var component = e.component;\r\n var items = component.option(\"items\");\r\n var selectedItems = [];\r\n (0, _iterator.each)(items, function() {\r\n if (this.selected) {\r\n selectedItems.push(this)\r\n }\r\n });\r\n component._selectedItemsUpdating = true;\r\n component.option(\"selectedItems\", selectedItems);\r\n component._selectedItemsUpdating = false;\r\n updateSelectAllState(e, options.filterValues)\r\n }\r\n }))\r\n }\r\n },\r\n _renderCore: function() {\r\n this.element().addClass(HEADER_FILTER_MENU_CLASS)\r\n }\r\n});\r\nexports.HeaderFilterView = HeaderFilterView;\r\nvar allowHeaderFiltering = function(column) {\r\n return (0, _type.isDefined)(column.allowHeaderFiltering) ? column.allowHeaderFiltering : column.allowFiltering\r\n};\r\nexports.allowHeaderFiltering = allowHeaderFiltering;\r\nvar headerFilterMixin = {\r\n _applyColumnState: function(options) {\r\n var $headerFilterIndicator;\r\n var rootElement = options.rootElement;\r\n var column = options.column;\r\n if (\"headerFilter\" === options.name) {\r\n rootElement.find(\".\" + HEADER_FILTER_CLASS).remove();\r\n if (allowHeaderFiltering(column)) {\r\n $headerFilterIndicator = this.callBase(options).toggleClass(\"dx-header-filter-empty\", this._isHeaderFilterEmpty(column));\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n $headerFilterIndicator.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n }\r\n return $headerFilterIndicator\r\n }\r\n return this.callBase(options)\r\n },\r\n _isHeaderFilterEmpty: function(column) {\r\n return !column.filterValues || !column.filterValues.length\r\n },\r\n _getIndicatorClassName: function(name) {\r\n if (\"headerFilter\" === name) {\r\n return HEADER_FILTER_CLASS\r\n }\r\n return this.callBase(name)\r\n },\r\n _renderIndicator: function(options) {\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"headerFilter\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if ($container.children().length && (!rtlEnabled && \"right\" === options.columnAlignment || rtlEnabled && \"left\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n optionChanged: function(args) {\r\n if (\"headerFilter\" === args.name) {\r\n var requireReady = \"columnHeadersView\" === this.name;\r\n this._invalidate(requireReady, requireReady);\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\nexports.headerFilterMixin = headerFilterMixin;\r\n","/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.editing.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nrequire(\"./ui.data_grid.editor_factory\");\r\nvar _uiData_grid2 = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.editing\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid2.default.registerModule(\"editing\", (0, _extend.extend)(true, {}, _uiGrid_core.default, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n _changeRowExpandCore: function(key) {\r\n var editingController = this._editingController;\r\n if (Array.isArray(key)) {\r\n editingController && editingController.refresh()\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","/**\r\n * DevExtreme (ui/track_bar.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _editor = _interopRequireDefault(require(\"./editor/editor\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _window = require(\"../core/utils/window\");\r\nvar _fx = _interopRequireDefault(require(\"../animation/fx\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TRACKBAR_CLASS = \"dx-trackbar\";\r\nvar TRACKBAR_CONTAINER_CLASS = \"dx-trackbar-container\";\r\nvar TRACKBAR_RANGE_CLASS = \"dx-trackbar-range\";\r\nvar TRACKBAR_WRAPPER_CLASS = \"dx-trackbar-wrapper\";\r\nvar TrackBar = _editor.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n min: 0,\r\n max: 100,\r\n value: 0\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TRACKBAR_CLASS);\r\n this._renderWrapper();\r\n this._renderContainer();\r\n this._renderRange();\r\n this._renderValue();\r\n this._setRangeStyles();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._setRangeStyles(this._rangeStylesConfig())\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = (0, _renderer.default)(\"
    \").addClass(TRACKBAR_WRAPPER_CLASS).appendTo(this.$element())\r\n },\r\n _renderContainer: function() {\r\n this._$bar = (0, _renderer.default)(\"
    \").addClass(TRACKBAR_CONTAINER_CLASS).appendTo(this._$wrapper)\r\n },\r\n _renderRange: function() {\r\n this._$range = (0, _renderer.default)(\"
    \").addClass(TRACKBAR_RANGE_CLASS).appendTo(this._$bar)\r\n },\r\n _renderValue: function() {\r\n var val = this.option(\"value\");\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (min > max) {\r\n return\r\n }\r\n if (val < min) {\r\n this.option(\"value\", min);\r\n this._currentRatio = 0;\r\n return\r\n }\r\n if (val > max) {\r\n this.option(\"value\", max);\r\n this._currentRatio = 1;\r\n return\r\n }\r\n var ratio = min === max ? 0 : (val - min) / (max - min);\r\n !this._needPreventAnimation && this._setRangeStyles({\r\n width: 100 * ratio + \"%\"\r\n });\r\n this.setAria({\r\n valuemin: this.option(\"min\"),\r\n valuemax: max,\r\n valuenow: val\r\n });\r\n this._currentRatio = ratio\r\n },\r\n _rangeStylesConfig: function() {\r\n return {\r\n width: 100 * this._currentRatio + \"%\"\r\n }\r\n },\r\n _setRangeStyles: function(options) {\r\n _fx.default.stop(this._$range);\r\n if (!options) {\r\n this._$range.css({\r\n width: 0\r\n });\r\n return\r\n }\r\n if (this._needPreventAnimation || !(0, _window.hasWindow)()) {\r\n return\r\n }\r\n _fx.default.animate(this._$range, {\r\n type: \"custom\",\r\n duration: 100,\r\n to: options\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._renderValue();\r\n this.callBase(args);\r\n break;\r\n case \"max\":\r\n case \"min\":\r\n this._renderValue();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dispose: function() {\r\n _fx.default.stop(this._$range);\r\n this.callBase()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxTrackBar\", TrackBar);\r\nvar _default = TrackBar;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.fill_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\nvar _excel2 = _interopRequireDefault(require(\"./excel.pattern_fill_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar fillHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if ((0, _type.isDefined)(sourceObj)) {\r\n result = {\r\n patternFill: _excel2.default.tryCreateTag(sourceObj.patternFill)\r\n };\r\n if (fillHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n tryCreateFillFromSimpleFormat: function() {\r\n var _ref = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\r\n backgroundColor = _ref.backgroundColor,\r\n fillPatternType = _ref.fillPatternType,\r\n fillPatternColor = _ref.fillPatternColor;\r\n if ((0, _type.isDefined)(backgroundColor) && !((0, _type.isDefined)(fillPatternType) && (0, _type.isDefined)(fillPatternColor))) {\r\n return {\r\n patternFill: {\r\n patternType: \"solid\",\r\n foregroundColor: {\r\n rgb: backgroundColor\r\n }\r\n }\r\n }\r\n } else {\r\n if ((0, _type.isDefined)(fillPatternType) && (0, _type.isDefined)(fillPatternColor)) {\r\n return {\r\n patternFill: {\r\n patternType: fillPatternType,\r\n foregroundColor: {\r\n rgb: fillPatternColor\r\n },\r\n backgroundColor: {\r\n rgb: backgroundColor\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n copySimpleFormat: function(source, target) {\r\n if (void 0 !== source.backgroundColor) {\r\n target.backgroundColor = source.backgroundColor\r\n }\r\n if (void 0 !== source.fillPatternType) {\r\n target.fillPatternType = source.fillPatternType\r\n }\r\n if (void 0 !== source.fillPatternColor) {\r\n target.fillPatternColor = source.fillPatternColor\r\n }\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if ((0, _type.isDefined)(source)) {\r\n result = {};\r\n if (void 0 !== source.patternFill) {\r\n result.patternFill = _excel2.default.copy(source.patternFill)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return fillHelper.isEmpty(leftTag) && fillHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && _excel2.default.areEqual(leftTag.patternFill, rightTag.patternFill)\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || _excel2.default.isEmpty(tag.patternFill)\r\n },\r\n toXml: function(tag) {\r\n return _excel.default.toXml(\"fill\", {}, _excel2.default.toXml(tag.patternFill))\r\n }\r\n};\r\nvar _default = fillHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/shared/ui.editor_factory_mixin.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _variable_wrapper = _interopRequireDefault(require(\"../../core/utils/variable_wrapper\"));\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _element = require(\"../../core/element\");\r\nvar _utils = require(\"../../data/data_source/utils\");\r\nvar _index = require(\"../../events/utils/index\");\r\nrequire(\"../text_box\");\r\nrequire(\"../number_box\");\r\nrequire(\"../check_box\");\r\nrequire(\"../select_box\");\r\nrequire(\"../date_box\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar isWrapped = _variable_wrapper.default.isWrapped;\r\nvar CHECKBOX_SIZE_CLASS = \"checkbox-size\";\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar EditorFactoryMixin = function() {\r\n var getResultConfig = function(config, options) {\r\n return (0, _extend.extend)(config, {\r\n readOnly: options.readOnly,\r\n placeholder: options.placeholder,\r\n inputAttr: {\r\n id: options.id\r\n },\r\n tabIndex: options.tabIndex\r\n }, options.editorOptions)\r\n };\r\n var checkEnterBug = function() {\r\n return _browser.default.msie || _browser.default.mozilla || _devices.default.real().ios\r\n };\r\n var getTextEditorConfig = function(options) {\r\n var data = {};\r\n var isEnterBug = checkEnterBug();\r\n var sharedData = options.sharedData || data;\r\n return getResultConfig({\r\n placeholder: options.placeholder,\r\n width: options.width,\r\n value: options.value,\r\n onValueChanged: function(e) {\r\n var needDelayedUpdate = \"filterRow\" === options.parentType || \"searchPanel\" === options.parentType;\r\n var isInputOrKeyUpEvent = e.event && (\"input\" === e.event.type || \"keyup\" === e.event.type);\r\n var updateValue = function(e, notFireEvent) {\r\n options && options.setValue(e.value, notFireEvent)\r\n };\r\n clearTimeout(data.valueChangeTimeout);\r\n if (isInputOrKeyUpEvent && needDelayedUpdate) {\r\n sharedData.valueChangeTimeout = data.valueChangeTimeout = setTimeout(function() {\r\n updateValue(e, data.valueChangeTimeout !== sharedData.valueChangeTimeout)\r\n }, (0, _type.isDefined)(options.updateValueTimeout) ? options.updateValueTimeout : 0)\r\n } else {\r\n updateValue(e)\r\n }\r\n },\r\n onKeyDown: function(e) {\r\n if (isEnterBug && \"enter\" === (0, _index.normalizeKeyName)(e.event)) {\r\n _events_engine.default.trigger((0, _renderer.default)(e.component._input()), \"change\")\r\n }\r\n },\r\n valueChangeEvent: \"change\" + (\"filterRow\" === options.parentType ? \" keyup input\" : \"\")\r\n }, options)\r\n };\r\n var prepareDateBox = function(options) {\r\n options.editorName = \"dxDateBox\";\r\n options.editorOptions = getResultConfig({\r\n value: options.value,\r\n onValueChanged: function(args) {\r\n options.setValue(args.value)\r\n },\r\n onKeyDown: function(e) {\r\n if (checkEnterBug() && \"enter\" === (0, _index.normalizeKeyName)(e.event)) {\r\n e.component.blur();\r\n e.component.focus()\r\n }\r\n },\r\n displayFormat: options.format,\r\n type: options.dataType,\r\n dateSerializationFormat: null,\r\n width: \"filterBuilder\" === options.parentType ? void 0 : \"auto\"\r\n }, options)\r\n };\r\n var prepareTextBox = function(options) {\r\n var config = getTextEditorConfig(options);\r\n var isSearching = \"searchPanel\" === options.parentType;\r\n var toString = function(value) {\r\n return (0, _type.isDefined)(value) ? value.toString() : \"\"\r\n };\r\n if (options.editorType && \"dxTextBox\" !== options.editorType) {\r\n config.value = options.value\r\n } else {\r\n config.value = toString(options.value)\r\n }\r\n config.valueChangeEvent += isSearching ? \" keyup input search\" : \"\";\r\n config.mode = config.mode || (isSearching ? \"search\" : \"text\");\r\n options.editorName = \"dxTextBox\";\r\n options.editorOptions = config\r\n };\r\n var prepareNumberBox = function(options) {\r\n var config = getTextEditorConfig(options);\r\n config.value = (0, _type.isDefined)(options.value) ? options.value : null;\r\n options.editorName = \"dxNumberBox\";\r\n options.editorOptions = config\r\n };\r\n var prepareBooleanEditor = function(options) {\r\n if (\"filterRow\" === options.parentType || \"filterBuilder\" === options.parentType) {\r\n prepareSelectBox((0, _extend.extend)(options, {\r\n lookup: {\r\n displayExpr: function(data) {\r\n if (true === data) {\r\n return options.trueText || \"true\"\r\n } else {\r\n if (false === data) {\r\n return options.falseText || \"false\"\r\n }\r\n }\r\n },\r\n dataSource: [true, false]\r\n }\r\n }))\r\n } else {\r\n prepareCheckBox(options)\r\n }\r\n };\r\n\r\n function watchLookupDataSource(options) {\r\n if (options.row && options.row.watch && \"dataRow\" === options.parentType) {\r\n var editorOptions = options.editorOptions || {};\r\n options.editorOptions = editorOptions;\r\n var selectBox;\r\n var onInitialized = editorOptions.onInitialized;\r\n editorOptions.onInitialized = function(e) {\r\n onInitialized && onInitialized.apply(this, arguments);\r\n selectBox = e.component;\r\n selectBox.on(\"disposing\", stopWatch)\r\n };\r\n var dataSource;\r\n var stopWatch = options.row.watch(function() {\r\n dataSource = options.lookup.dataSource(options.row);\r\n return dataSource && dataSource.filter\r\n }, function() {\r\n selectBox.option(\"dataSource\", dataSource)\r\n }, function(row) {\r\n options.row = row\r\n })\r\n }\r\n }\r\n\r\n function prepareSelectBox(options) {\r\n var lookup = options.lookup;\r\n var displayGetter;\r\n var dataSource;\r\n var postProcess;\r\n var isFilterRow = \"filterRow\" === options.parentType;\r\n if (lookup) {\r\n displayGetter = (0, _data.compileGetter)(lookup.displayExpr);\r\n dataSource = lookup.dataSource;\r\n if ((0, _type.isFunction)(dataSource) && !isWrapped(dataSource)) {\r\n dataSource = dataSource(options.row || {});\r\n watchLookupDataSource(options)\r\n }\r\n if ((0, _type.isObject)(dataSource) || Array.isArray(dataSource)) {\r\n dataSource = (0, _utils.normalizeDataSourceOptions)(dataSource);\r\n if (isFilterRow) {\r\n postProcess = dataSource.postProcess;\r\n dataSource.postProcess = function(items) {\r\n if (0 === this.pageIndex()) {\r\n items = items.slice(0);\r\n items.unshift(null)\r\n }\r\n if (postProcess) {\r\n return postProcess.call(this, items)\r\n }\r\n return items\r\n }\r\n }\r\n }\r\n var allowClearing = Boolean(lookup.allowClearing && !isFilterRow);\r\n options.editorName = \"dxSelectBox\";\r\n options.editorOptions = getResultConfig({\r\n searchEnabled: true,\r\n value: options.value,\r\n valueExpr: options.lookup.valueExpr,\r\n searchExpr: options.lookup.searchExpr || options.lookup.displayExpr,\r\n allowClearing: allowClearing,\r\n showClearButton: allowClearing,\r\n displayExpr: function(data) {\r\n if (null === data) {\r\n return options.showAllText\r\n }\r\n return displayGetter(data)\r\n },\r\n dataSource: dataSource,\r\n onValueChanged: function(e) {\r\n var params = [e.value];\r\n !isFilterRow && params.push(e.component.option(\"text\"));\r\n options.setValue.apply(this, params)\r\n }\r\n }, options)\r\n }\r\n }\r\n\r\n function prepareCheckBox(options) {\r\n options.editorName = \"dxCheckBox\";\r\n options.editorOptions = getResultConfig({\r\n elementAttr: {\r\n id: options.id\r\n },\r\n value: (0, _type.isDefined)(options.value) ? options.value : void 0,\r\n hoverStateEnabled: !options.readOnly,\r\n focusStateEnabled: !options.readOnly,\r\n activeStateEnabled: false,\r\n onValueChanged: function(e) {\r\n options.setValue && options.setValue(e.value, e)\r\n }\r\n }, options)\r\n }\r\n var createEditorCore = function(that, options) {\r\n var $editorElement = (0, _renderer.default)(options.editorElement);\r\n if (options.editorName && options.editorOptions && $editorElement[options.editorName]) {\r\n if (\"dxCheckBox\" === options.editorName || \"dxSwitch\" === options.editorName) {\r\n if (!options.isOnForm) {\r\n $editorElement.addClass(that.addWidgetPrefix(CHECKBOX_SIZE_CLASS));\r\n $editorElement.parent().addClass(EDITOR_INLINE_BLOCK)\r\n }\r\n }\r\n that._createComponent($editorElement, options.editorName, options.editorOptions);\r\n if (\"dxTextBox\" === options.editorName) {\r\n $editorElement.dxTextBox(\"instance\").registerKeyHandler(\"enter\", _common.noop)\r\n }\r\n if (\"dxDateBox\" === options.editorName) {\r\n var dateBox = $editorElement.dxDateBox(\"instance\");\r\n var defaultEnterKeyHandler = dateBox._supportedKeys().enter;\r\n dateBox.registerKeyHandler(\"enter\", function(e) {\r\n if (dateBox.option(\"opened\")) {\r\n defaultEnterKeyHandler(e)\r\n }\r\n return true\r\n })\r\n }\r\n if (\"dxTextArea\" === options.editorName) {\r\n $editorElement.dxTextArea(\"instance\").registerKeyHandler(\"enter\", function(event) {\r\n if (\"enter\" === (0, _index.normalizeKeyName)(event) && !event.ctrlKey && !event.shiftKey) {\r\n event.stopPropagation()\r\n }\r\n })\r\n }\r\n }\r\n };\r\n return {\r\n createEditor: function($container, options) {\r\n options.cancel = false;\r\n options.editorElement = (0, _element.getPublicElement)($container);\r\n if (!(0, _type.isDefined)(options.tabIndex)) {\r\n options.tabIndex = this.option(\"tabIndex\")\r\n }\r\n if (options.lookup) {\r\n prepareSelectBox(options)\r\n } else {\r\n switch (options.dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n prepareDateBox(options);\r\n break;\r\n case \"boolean\":\r\n prepareBooleanEditor(options);\r\n break;\r\n case \"number\":\r\n prepareNumberBox(options);\r\n break;\r\n default:\r\n prepareTextBox(options)\r\n }\r\n }\r\n var editorName = options.editorName;\r\n this.executeAction(\"onEditorPreparing\", options);\r\n if (options.cancel) {\r\n return\r\n } else {\r\n if (\"dataRow\" === options.parentType && options.editorType && editorName === options.editorName) {\r\n options.editorName = options.editorType\r\n }\r\n }\r\n if (\"dataRow\" === options.parentType && !options.isOnForm && !(0, _type.isDefined)(options.editorOptions.showValidationMark)) {\r\n options.editorOptions.showValidationMark = false\r\n }\r\n createEditorCore(this, options);\r\n this.executeAction(\"onEditorPrepared\", options)\r\n }\r\n }\r\n}();\r\nvar _default = EditorFactoryMixin;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/button_group.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _ui = _interopRequireDefault(require(\"./widget/ui.widget\"));\r\nvar _button = _interopRequireDefault(require(\"./button\"));\r\nvar _uiCollection_widget = _interopRequireDefault(require(\"./collection/ui.collection_widget.edit\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _bindable_template = require(\"../core/templates/bindable_template\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar BUTTON_GROUP_CLASS = \"dx-buttongroup\";\r\nvar BUTTON_GROUP_WRAPPER_CLASS = BUTTON_GROUP_CLASS + \"-wrapper\";\r\nvar BUTTON_GROUP_ITEM_CLASS = BUTTON_GROUP_CLASS + \"-item\";\r\nvar BUTTON_GROUP_FIRST_ITEM_CLASS = BUTTON_GROUP_CLASS + \"-first-item\";\r\nvar BUTTON_GROUP_LAST_ITEM_CLASS = BUTTON_GROUP_CLASS + \"-last-item\";\r\nvar BUTTON_GROUP_ITEM_HAS_WIDTH = BUTTON_GROUP_ITEM_CLASS + \"-has-width\";\r\nvar SHAPE_STANDARD_CLASS = \"dx-shape-standard\";\r\nvar ButtonCollection = _uiCollection_widget.default.inherit({\r\n _initTemplates: function() {\r\n var _this = this;\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new _bindable_template.BindableTemplate(function($container, data, model) {\r\n _this._prepareItemStyles($container);\r\n _this._createComponent($container, _button.default, (0, _extend.extend)({}, model, data, _this._getBasicButtonOptions(), {\r\n _templateData: model,\r\n template: model.template || _this.option(\"buttonTemplate\")\r\n }))\r\n }, [\"text\", \"type\", \"icon\", \"disabled\", \"visible\", \"hint\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _getBasicButtonOptions: function() {\r\n return {\r\n focusStateEnabled: false,\r\n onClick: null,\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n itemTemplateProperty: null\r\n })\r\n },\r\n _prepareItemStyles: function($item) {\r\n var itemIndex = $item.data(\"dxItemIndex\");\r\n 0 === itemIndex && $item.addClass(BUTTON_GROUP_FIRST_ITEM_CLASS);\r\n var items = this.option(\"items\");\r\n items && itemIndex === items.length - 1 && $item.addClass(BUTTON_GROUP_LAST_ITEM_CLASS);\r\n $item.addClass(SHAPE_STANDARD_CLASS)\r\n },\r\n _renderItemContent: function(args) {\r\n args.container = (0, _renderer.default)(args.container).parent();\r\n return this.callBase(args)\r\n },\r\n _renderItemContentByNode: function(args, $node) {\r\n args.container = (0, _renderer.default)(args.container.children().first());\r\n return this.callBase(args, $node)\r\n },\r\n _focusTarget: function() {\r\n return this.$element().parent()\r\n },\r\n _keyboardEventBindingTarget: function() {\r\n return this._focusTarget()\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _itemClass: function() {\r\n return BUTTON_GROUP_ITEM_CLASS\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n }\r\n});\r\nvar ButtonGroup = _ui.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n hoverStateEnabled: true,\r\n focusStateEnabled: true,\r\n selectionMode: \"single\",\r\n selectedItems: [],\r\n selectedItemKeys: [],\r\n stylingMode: \"contained\",\r\n keyExpr: \"text\",\r\n items: [],\r\n buttonTemplate: \"content\",\r\n onSelectionChanged: null,\r\n onItemClick: null\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._createItemClickAction()\r\n },\r\n _createItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initMarkup: function() {\r\n this.setAria(\"role\", \"group\");\r\n this.$element().addClass(BUTTON_GROUP_CLASS);\r\n this._renderButtons();\r\n this._syncSelectionOptions();\r\n this.callBase()\r\n },\r\n _fireSelectionChangeEvent: function(addedItems, removedItems) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n _renderButtons: function() {\r\n var _this2 = this;\r\n var $buttons = (0, _renderer.default)(\"
    \").addClass(BUTTON_GROUP_WRAPPER_CLASS).appendTo(this.$element());\r\n var selectedItems = this.option(\"selectedItems\");\r\n var options = {\r\n selectionMode: this.option(\"selectionMode\"),\r\n items: this.option(\"items\"),\r\n keyExpr: this.option(\"keyExpr\"),\r\n buttonTemplate: this.option(\"buttonTemplate\"),\r\n scrollingEnabled: false,\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n stylingMode: this.option(\"stylingMode\"),\r\n accessKey: this.option(\"accessKey\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n noDataText: \"\",\r\n selectionRequired: false,\r\n onItemRendered: function(e) {\r\n var width = _this2.option(\"width\");\r\n (0, _type.isDefined)(width) && (0, _renderer.default)(e.itemElement).addClass(BUTTON_GROUP_ITEM_HAS_WIDTH)\r\n },\r\n onSelectionChanged: function(e) {\r\n _this2._syncSelectionOptions();\r\n _this2._fireSelectionChangeEvent(e.addedItems, e.removedItems)\r\n },\r\n onItemClick: function(e) {\r\n _this2._itemClickAction(e)\r\n }\r\n };\r\n if ((0, _type.isDefined)(selectedItems) && selectedItems.length) {\r\n options.selectedItems = selectedItems\r\n }\r\n this._buttonsCollection = this._createComponent($buttons, ButtonCollection, options)\r\n },\r\n _syncSelectionOptions: function() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", this._buttonsCollection.option(\"selectedItems\"));\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._buttonsCollection.option(\"selectedItemKeys\"))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"stylingMode\":\r\n case \"selectionMode\":\r\n case \"keyExpr\":\r\n case \"buttonTemplate\":\r\n case \"items\":\r\n case \"activeStateEnabled\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n case \"tabIndex\":\r\n this._invalidate();\r\n break;\r\n case \"selectedItemKeys\":\r\n case \"selectedItems\":\r\n this._buttonsCollection.option(args.name, args.value);\r\n break;\r\n case \"onItemClick\":\r\n this._createItemClickAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._buttonsCollection.itemElements().toggleClass(BUTTON_GROUP_ITEM_HAS_WIDTH, !!args.value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxButtonGroup\", ButtonGroup);\r\nvar _default = ButtonGroup;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.validating.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _array_utils = require(\"../../data/array_utils\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _selectors = require(\"../widget/selectors\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _validation_engine = _interopRequireDefault(require(\"../validation_engine\"));\r\nvar _validator = _interopRequireDefault(require(\"../validator\"));\r\nvar _overlay = _interopRequireDefault(require(\"../overlay\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _load_indicator = _interopRequireDefault(require(\"../load_indicator\"));\r\nvar _string = require(\"../../core/utils/string\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\nvar INVALIDATE_CLASS = \"invalid\";\r\nvar REVERT_TOOLTIP_CLASS = \"revert-tooltip\";\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar INVALID_MESSAGE_CLASS = \"dx-invalid-message\";\r\nvar WIDGET_INVALID_MESSAGE_CLASS = \"invalid-message\";\r\nvar INVALID_MESSAGE_ALWAYS_CLASS = \"dx-invalid-message-always\";\r\nvar REVERT_BUTTON_CLASS = \"dx-revert-button\";\r\nvar VALIDATOR_CLASS = \"validator\";\r\nvar PENDING_INDICATOR_CLASS = \"dx-pending-indicator\";\r\nvar VALIDATION_PENDING_CLASS = \"dx-validation-pending\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar INSERT_INDEX = \"__DX_INSERT_INDEX__\";\r\nvar PADDING_BETWEEN_TOOLTIPS = 2;\r\nvar EDIT_MODE_ROW = \"row\";\r\nvar EDIT_MODE_FORM = \"form\";\r\nvar EDIT_MODE_BATCH = \"batch\";\r\nvar EDIT_MODE_CELL = \"cell\";\r\nvar EDIT_MODE_POPUP = \"popup\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar FORM_BASED_MODES = [EDIT_MODE_POPUP, EDIT_MODE_FORM];\r\nvar COMMAND_TRANSPARENT = \"transparent\";\r\nvar VALIDATION_STATUS = {\r\n valid: \"valid\",\r\n invalid: \"invalid\",\r\n pending: \"pending\"\r\n};\r\nvar EDIT_DATA_INSERT_TYPE = \"insert\";\r\nvar EDIT_DATA_REMOVE_TYPE = \"remove\";\r\nvar VALIDATION_CANCELLED = \"cancel\";\r\nvar validationResultIsValid = function(result) {\r\n return (0, _type.isDefined)(result) && result !== VALIDATION_CANCELLED\r\n};\r\nvar cellValueShouldBeValidated = function(value, rowOptions) {\r\n return void 0 !== value || void 0 === value && rowOptions && !rowOptions.isNewRow\r\n};\r\nvar ValidatingController = _uiGrid_core.default.Controller.inherit(function() {\r\n return {\r\n init: function() {\r\n this._editingController = this.getController(\"editing\");\r\n this.createAction(\"onRowValidating\");\r\n if (!this._validationState) {\r\n this._validationState = []\r\n }\r\n },\r\n _rowIsValidated: function(change) {\r\n var validationData = this._getValidationData(null === change || void 0 === change ? void 0 : change.key);\r\n return !!validationData && !!validationData.validated\r\n },\r\n _getValidationData: function(key, create) {\r\n var validationData = this._validationState.filter(function(data) {\r\n return (0, _common.equalByValue)(data.key, key)\r\n })[0];\r\n if (!validationData && create) {\r\n validationData = {\r\n key: key,\r\n isValid: true\r\n };\r\n this._validationState.push(validationData)\r\n }\r\n return validationData\r\n },\r\n _getBrokenRules: function(validationData, validationResults) {\r\n var brokenRules;\r\n if (validationResults) {\r\n brokenRules = validationResults.brokenRules || validationResults.brokenRule && [validationResults.brokenRule]\r\n } else {\r\n brokenRules = validationData.brokenRules || []\r\n }\r\n return brokenRules\r\n },\r\n _rowValidating: function(validationData, validationResults) {\r\n var deferred = new _deferred.Deferred;\r\n var change = this._editingController.getChangeByKey(null === validationData || void 0 === validationData ? void 0 : validationData.key);\r\n var brokenRules = this._getBrokenRules(validationData, validationResults);\r\n var isValid = validationResults ? validationResults.isValid : validationData.isValid;\r\n var parameters = {\r\n brokenRules: brokenRules,\r\n isValid: isValid,\r\n key: change.key,\r\n newData: change.data,\r\n oldData: this._editingController._getOldData(change.key),\r\n promise: null,\r\n errorText: this.getHiddenValidatorsErrorText(brokenRules)\r\n };\r\n this.executeAction(\"onRowValidating\", parameters);\r\n (0, _deferred.when)(parameters.promise).always(function() {\r\n validationData.isValid = parameters.isValid;\r\n validationData.errorText = parameters.errorText;\r\n deferred.resolve(parameters)\r\n });\r\n return deferred.promise()\r\n },\r\n getHiddenValidatorsErrorText: function(brokenRules) {\r\n var brokenRulesMessages = [];\r\n (0, _iterator.each)(brokenRules, function(_, brokenRule) {\r\n var column = brokenRule.column;\r\n var isGroupExpandColumn = column && void 0 !== column.groupIndex && !column.showWhenGrouped;\r\n var isVisibleColumn = column && column.visible;\r\n if (!brokenRule.validator.$element().parent().length && (!isVisibleColumn || isGroupExpandColumn)) {\r\n brokenRulesMessages.push(brokenRule.message)\r\n }\r\n });\r\n return brokenRulesMessages.join(\", \")\r\n },\r\n validate: function(isFull) {\r\n var _this = this;\r\n var isValid = true;\r\n var editingController = this._editingController;\r\n var deferred = new _deferred.Deferred;\r\n var completeList = [];\r\n var editMode = editingController.getEditMode();\r\n isFull = isFull || editMode === EDIT_MODE_ROW;\r\n if (this._isValidationInProgress) {\r\n return deferred.resolve(false).promise()\r\n }\r\n this._isValidationInProgress = true;\r\n if (isFull) {\r\n editingController.addDeferred(deferred);\r\n var changes = editingController.getChanges();\r\n (0, _iterator.each)(changes, function(index, _ref) {\r\n var type = _ref.type,\r\n key = _ref.key;\r\n if (\"remove\" !== type) {\r\n var validationData = _this._getValidationData(key, true);\r\n var validationResult = _this.validateGroup(validationData);\r\n completeList.push(validationResult);\r\n validationResult.done(function(validationResult) {\r\n validationData.validated = true;\r\n isValid = isValid && validationResult.isValid\r\n })\r\n }\r\n })\r\n } else {\r\n if (this._currentCellValidator) {\r\n var validationResult = this.validateGroup(this._currentCellValidator._findGroup());\r\n completeList.push(validationResult);\r\n validationResult.done(function(validationResult) {\r\n isValid = validationResult.isValid\r\n })\r\n }\r\n }\r\n _deferred.when.apply(void 0, completeList).done(function() {\r\n _this._isValidationInProgress = false;\r\n deferred.resolve(isValid)\r\n });\r\n return deferred.promise()\r\n },\r\n validateGroup: function validateGroup(validationData) {\r\n var _validationResult, _this2 = this;\r\n var result = new _deferred.Deferred;\r\n var validateGroup = validationData && _validation_engine.default.getGroupConfig(validationData);\r\n var validationResult;\r\n if (null !== validateGroup && void 0 !== validateGroup && validateGroup.validators.length) {\r\n this.resetRowValidationResults(validationData);\r\n validationResult = _validation_engine.default.validateGroup(validationData)\r\n }(0, _deferred.when)((null === (_validationResult = validationResult) || void 0 === _validationResult ? void 0 : _validationResult.complete) || validationResult).done(function(validationResult) {\r\n (0, _deferred.when)(_this2._rowValidating(validationData, validationResult)).done(result.resolve)\r\n });\r\n return result.promise()\r\n },\r\n isRowDataModified: function(change) {\r\n return !(0, _type.isEmptyObject)(change.data)\r\n },\r\n updateValidationState: function(change) {\r\n var editMode = this._editingController.getEditMode();\r\n var key = change.key;\r\n var validationData = this._getValidationData(key, true);\r\n if (FORM_BASED_MODES.indexOf(editMode) === -1) {\r\n if (change.type === EDIT_DATA_INSERT_TYPE && !this.isRowDataModified(change)) {\r\n validationData.isValid = true;\r\n return\r\n }\r\n this.setDisableApplyValidationResults(true);\r\n var groupConfig = _validation_engine.default.getGroupConfig(validationData);\r\n if (groupConfig) {\r\n var validationResult = _validation_engine.default.validateGroup(validationData);\r\n (0, _deferred.when)(validationResult.complete || validationResult).done(function(validationResult) {\r\n validationData.isValid = validationResult.isValid;\r\n validationData.brokenRules = validationResult.brokenRules\r\n })\r\n } else {\r\n if (!validationData.brokenRules || !validationData.brokenRules.length) {\r\n validationData.isValid = true\r\n }\r\n }\r\n this.setDisableApplyValidationResults(false)\r\n } else {\r\n validationData.isValid = true\r\n }\r\n },\r\n setValidator: function(validator) {\r\n this._currentCellValidator = validator\r\n },\r\n renderCellPendingIndicator: function($container) {\r\n var $indicator = $container.find(\".\" + PENDING_INDICATOR_CLASS);\r\n if (!$indicator.length) {\r\n var $indicatorContainer = $container;\r\n $indicator = (0, _renderer.default)(\"
    \").appendTo($indicatorContainer).addClass(PENDING_INDICATOR_CLASS);\r\n this._createComponent($indicator, _load_indicator.default);\r\n $container.addClass(VALIDATION_PENDING_CLASS)\r\n }\r\n },\r\n disposeCellPendingIndicator: function($container) {\r\n var $indicator = $container.find(\".\" + PENDING_INDICATOR_CLASS);\r\n if ($indicator.length) {\r\n var indicator = _load_indicator.default.getInstance($indicator);\r\n if (indicator) {\r\n indicator.dispose();\r\n indicator.$element().remove()\r\n }\r\n $container.removeClass(VALIDATION_PENDING_CLASS)\r\n }\r\n },\r\n validationStatusChanged: function(result) {\r\n var validator = result.validator;\r\n var validationGroup = validator.option(\"validationGroup\");\r\n var column = validator.option(\"dataGetter\")().column;\r\n this.updateCellValidationResult({\r\n rowKey: validationGroup.key,\r\n columnIndex: column.index,\r\n validationResult: result\r\n })\r\n },\r\n validatorInitialized: function(arg) {\r\n arg.component.on(\"validating\", this.validationStatusChanged.bind(this));\r\n arg.component.on(\"validated\", this.validationStatusChanged.bind(this))\r\n },\r\n validatorDisposing: function(arg) {\r\n var validator = arg.component;\r\n var validationGroup = validator.option(\"validationGroup\");\r\n var column = validator.option(\"dataGetter\")().column;\r\n var result = this.getCellValidationResult({\r\n rowKey: null === validationGroup || void 0 === validationGroup ? void 0 : validationGroup.key,\r\n columnIndex: column.index\r\n });\r\n if (validationResultIsValid(result) && result.status === VALIDATION_STATUS.pending) {\r\n this.cancelCellValidationResult({\r\n change: validationGroup,\r\n columnIndex: column.index\r\n })\r\n }\r\n },\r\n applyValidationResult: function($container, result) {\r\n var validator = result.validator;\r\n var validationGroup = validator.option(\"validationGroup\");\r\n var column = validator.option(\"dataGetter\")().column;\r\n result.brokenRules && result.brokenRules.forEach(function(rule) {\r\n rule.columnIndex = column.index;\r\n rule.column = column\r\n });\r\n if ($container) {\r\n var validationResult = this.getCellValidationResult({\r\n rowKey: validationGroup.key,\r\n columnIndex: column.index\r\n });\r\n var requestIsDisabled = validationResultIsValid(validationResult) && validationResult.disabledPendingId === result.id;\r\n if (this._disableApplyValidationResults || requestIsDisabled) {\r\n return\r\n }\r\n if (result.status === VALIDATION_STATUS.invalid) {\r\n var $focus = $container.find(\":focus\");\r\n if (!(0, _selectors.focused)($focus)) {\r\n _events_engine.default.trigger($focus, \"focus\");\r\n _events_engine.default.trigger($focus, _pointer.default.down)\r\n }\r\n }\r\n var editor = !column.editCellTemplate && this.getController(\"editorFactory\").getEditorInstance($container);\r\n if (result.status === VALIDATION_STATUS.pending) {\r\n if (editor) {\r\n editor.option(\"validationStatus\", VALIDATION_STATUS.pending)\r\n } else {\r\n this.renderCellPendingIndicator($container)\r\n }\r\n } else {\r\n if (editor) {\r\n editor.option(\"validationStatus\", VALIDATION_STATUS.valid)\r\n } else {\r\n this.disposeCellPendingIndicator($container)\r\n }\r\n }\r\n $container.toggleClass(this.addWidgetPrefix(INVALIDATE_CLASS), result.status === VALIDATION_STATUS.invalid)\r\n }\r\n },\r\n createValidator: function(parameters, $container) {\r\n var _this3 = this;\r\n var editingController = this._editingController;\r\n var column = parameters.column;\r\n var showEditorAlways = column.showEditorAlways;\r\n if ((0, _type.isDefined)(column.command) || !column.validationRules || !Array.isArray(column.validationRules) || !column.validationRules.length) {\r\n return\r\n }\r\n var editIndex = editingController.getIndexByKey(parameters.key, editingController.getChanges());\r\n var needCreateValidator = editIndex > -1;\r\n if (!needCreateValidator) {\r\n if (!showEditorAlways) {\r\n var columnsController = this.getController(\"columns\");\r\n var visibleColumns = (null === columnsController || void 0 === columnsController ? void 0 : columnsController.getVisibleColumns()) || [];\r\n showEditorAlways = visibleColumns.some(function(column) {\r\n return column.showEditorAlways\r\n })\r\n }\r\n var isEditRow = (0, _common.equalByValue)(this.option(\"editing.editRowKey\"), parameters.key);\r\n var isCellOrBatchEditingAllowed = editingController.isCellOrBatchEditMode() && editingController.allowUpdating({\r\n row: parameters.row\r\n });\r\n needCreateValidator = isEditRow || isCellOrBatchEditingAllowed && showEditorAlways;\r\n if (isCellOrBatchEditingAllowed && showEditorAlways) {\r\n editingController._addInternalData({\r\n key: parameters.key,\r\n oldData: parameters.data\r\n })\r\n }\r\n }\r\n if (needCreateValidator) {\r\n if ($container && !$container.length) {\r\n _ui.default.log(\"E1050\");\r\n return\r\n }\r\n var validationData = this._getValidationData(parameters.key, true);\r\n var getValue = function() {\r\n var change = editingController.getChangeByKey(null === validationData || void 0 === validationData ? void 0 : validationData.key);\r\n var value = column.calculateCellValue((null === change || void 0 === change ? void 0 : change.data) || {});\r\n return void 0 !== value ? value : parameters.value\r\n };\r\n var useDefaultValidator = $container && $container.hasClass(\"dx-widget\");\r\n $container && $container.addClass(this.addWidgetPrefix(VALIDATOR_CLASS));\r\n var validator = new _validator.default($container || (0, _renderer.default)(\"
    \"), {\r\n name: column.caption,\r\n validationRules: (0, _extend.extend)(true, [], column.validationRules),\r\n validationGroup: validationData,\r\n adapter: useDefaultValidator ? null : {\r\n getValue: getValue,\r\n applyValidationResults: function(result) {\r\n _this3.applyValidationResult($container, result)\r\n }\r\n },\r\n dataGetter: function() {\r\n var key = null === validationData || void 0 === validationData ? void 0 : validationData.key;\r\n var change = editingController.getChangeByKey(key);\r\n var oldData = editingController._getOldData(key);\r\n return {\r\n data: (0, _array_utils.createObjectWithChanges)(oldData, null === change || void 0 === change ? void 0 : change.data),\r\n column: column\r\n }\r\n },\r\n onInitialized: this.validatorInitialized.bind(this),\r\n onDisposing: this.validatorDisposing.bind(this)\r\n });\r\n if (useDefaultValidator) {\r\n var adapter = validator.option(\"adapter\");\r\n if (adapter) {\r\n adapter.getValue = getValue;\r\n adapter.validationRequestsCallbacks = []\r\n }\r\n }\r\n return validator\r\n }\r\n },\r\n setDisableApplyValidationResults: function(flag) {\r\n this._disableApplyValidationResults = flag\r\n },\r\n getDisableApplyValidationResults: function() {\r\n return this._disableApplyValidationResults\r\n },\r\n isCurrentValidatorProcessing: function(_ref2) {\r\n var rowKey = _ref2.rowKey,\r\n columnIndex = _ref2.columnIndex;\r\n return this._currentCellValidator && (0, _common.equalByValue)(this._currentCellValidator.option(\"validationGroup\").key, rowKey) && this._currentCellValidator.option(\"dataGetter\")().column.index === columnIndex\r\n },\r\n validateCell: function(validator) {\r\n var cellParams = {\r\n rowKey: validator.option(\"validationGroup\").key,\r\n columnIndex: validator.option(\"dataGetter\")().column.index\r\n };\r\n var validationResult = this.getCellValidationResult(cellParams);\r\n var stateRestored = validationResultIsValid(validationResult);\r\n if (!stateRestored) {\r\n validationResult = validator.validate()\r\n }\r\n var deferred = new _deferred.Deferred;\r\n var adapter = validator.option(\"adapter\");\r\n if (stateRestored && validationResult.status === VALIDATION_STATUS.pending) {\r\n this.updateCellValidationResult(cellParams);\r\n adapter.applyValidationResults(validationResult)\r\n }(0, _deferred.when)(validationResult.complete || validationResult).done(function(validationResult) {\r\n stateRestored && adapter.applyValidationResults(validationResult);\r\n deferred.resolve(validationResult)\r\n });\r\n return deferred.promise()\r\n },\r\n updateCellValidationResult: function(_ref3) {\r\n var rowKey = _ref3.rowKey,\r\n columnIndex = _ref3.columnIndex,\r\n validationResult = _ref3.validationResult;\r\n var validationData = this._getValidationData(rowKey);\r\n if (!validationData) {\r\n return\r\n }\r\n if (!validationData.validationResults) {\r\n validationData.validationResults = {}\r\n }\r\n var result;\r\n if (validationResult) {\r\n result = (0, _extend.extend)({}, validationResult);\r\n validationData.validationResults[columnIndex] = result;\r\n if (validationResult.status === VALIDATION_STATUS.pending) {\r\n if (this._editingController.getEditMode() === EDIT_MODE_CELL) {\r\n result.deferred = new _deferred.Deferred;\r\n result.complete.always(function() {\r\n result.deferred.resolve()\r\n });\r\n this._editingController.addDeferred(result.deferred)\r\n }\r\n if (this._disableApplyValidationResults) {\r\n result.disabledPendingId = validationResult.id;\r\n return\r\n }\r\n }\r\n } else {\r\n result = validationData.validationResults[columnIndex]\r\n }\r\n if (result && result.disabledPendingId) {\r\n delete result.disabledPendingId\r\n }\r\n },\r\n getCellValidationResult: function(_ref4) {\r\n var _validationData$valid;\r\n var rowKey = _ref4.rowKey,\r\n columnIndex = _ref4.columnIndex;\r\n var validationData = this._getValidationData(rowKey, true);\r\n return null === validationData || void 0 === validationData ? void 0 : null === (_validationData$valid = validationData.validationResults) || void 0 === _validationData$valid ? void 0 : _validationData$valid[columnIndex]\r\n },\r\n removeCellValidationResult: function(_ref5) {\r\n var change = _ref5.change,\r\n columnIndex = _ref5.columnIndex;\r\n var validationData = this._getValidationData(null === change || void 0 === change ? void 0 : change.key);\r\n if (validationData && validationData.validationResults) {\r\n this.cancelCellValidationResult({\r\n change: change,\r\n columnIndex: columnIndex\r\n });\r\n delete validationData.validationResults[columnIndex]\r\n }\r\n },\r\n cancelCellValidationResult: function(_ref6) {\r\n var change = _ref6.change,\r\n columnIndex = _ref6.columnIndex;\r\n var validationData = this._getValidationData(change.key);\r\n if (change && validationData.validationResults) {\r\n var result = validationData.validationResults[columnIndex];\r\n if (result) {\r\n result.deferred && result.deferred.reject(VALIDATION_CANCELLED);\r\n validationData.validationResults[columnIndex] = VALIDATION_CANCELLED\r\n }\r\n }\r\n },\r\n resetRowValidationResults: function(validationData) {\r\n if (validationData) {\r\n validationData.validationResults && delete validationData.validationResults;\r\n delete validationData.validated\r\n }\r\n },\r\n isInvalidCell: function(_ref7) {\r\n var rowKey = _ref7.rowKey,\r\n columnIndex = _ref7.columnIndex;\r\n var result = this.getCellValidationResult({\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n });\r\n return validationResultIsValid(result) && result.status === VALIDATION_STATUS.invalid\r\n },\r\n getCellValidator: function(_ref8) {\r\n var rowKey = _ref8.rowKey,\r\n columnIndex = _ref8.columnIndex;\r\n var validationData = this._getValidationData(rowKey);\r\n var groupConfig = validationData && _validation_engine.default.getGroupConfig(validationData);\r\n var validators = groupConfig && groupConfig.validators;\r\n return validators && validators.filter(function(v) {\r\n var column = v.option(\"dataGetter\")().column;\r\n return column ? column.index === columnIndex : false\r\n })[0]\r\n },\r\n setCellValidationStatus: function(cellOptions) {\r\n var validationResult = this.getCellValidationResult({\r\n rowKey: cellOptions.key,\r\n columnIndex: cellOptions.column.index\r\n });\r\n if ((0, _type.isDefined)(validationResult)) {\r\n cellOptions.validationStatus = validationResult !== VALIDATION_CANCELLED ? validationResult.status : VALIDATION_CANCELLED\r\n } else {\r\n delete cellOptions.validationStatus\r\n }\r\n }\r\n }\r\n}());\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n editing: {\r\n texts: {\r\n validationCancelChanges: _message.default.format(\"dxDataGrid-validationCancelChanges\")\r\n }\r\n }\r\n }\r\n },\r\n controllers: {\r\n validating: ValidatingController\r\n },\r\n extenders: {\r\n controllers: {\r\n editing: {\r\n _addChange: function(options, row) {\r\n var index = this.callBase(options, row);\r\n var validatingController = this.getController(\"validating\");\r\n if (index >= 0 && options.type !== EDIT_DATA_REMOVE_TYPE) {\r\n var change = this.getChanges()[index];\r\n change && validatingController.updateValidationState(change)\r\n }\r\n return index\r\n },\r\n _handleChangesChange: function(args) {\r\n this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n args.value.forEach(function(change) {\r\n if (void 0 === validatingController._getValidationData(change.key)) {\r\n validatingController.updateValidationState(change)\r\n }\r\n })\r\n },\r\n _updateRowAndPageIndices: function() {\r\n var _this4 = this;\r\n var that = this;\r\n var startInsertIndex = that.getView(\"rowsView\").getTopVisibleItemIndex();\r\n var rowIndex = startInsertIndex;\r\n (0, _iterator.each)(that.getChanges(), function(_, _ref9) {\r\n var key = _ref9.key,\r\n type = _ref9.type;\r\n var validationData = _this4.getController(\"validating\")._getValidationData(key);\r\n if (validationData && !validationData.isValid && validationData.pageIndex !== that._pageIndex) {\r\n validationData.pageIndex = that._pageIndex;\r\n if (type === EDIT_DATA_INSERT_TYPE) {\r\n validationData.rowIndex = startInsertIndex\r\n } else {\r\n validationData.rowIndex = rowIndex\r\n }\r\n rowIndex++\r\n }\r\n })\r\n },\r\n getEditFormOptions: function(detailOptions) {\r\n var editFormOptions = this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n var validationData = validatingController._getValidationData(detailOptions.key, true);\r\n return (0, _extend.extend)({}, editFormOptions, {\r\n validationGroup: validationData\r\n })\r\n },\r\n _updateEditRowCore: function(row, skipCurrentRow, isCustomSetCellValue) {\r\n this.callBase.apply(this, arguments);\r\n if (isCustomSetCellValue && this._editForm && !row.isNewRow) {\r\n this._editForm.validate()\r\n }\r\n },\r\n _needInsertItem: function(_ref10) {\r\n var key = _ref10.key;\r\n var result = this.callBase.apply(this, arguments);\r\n var validationData = this.getController(\"validating\")._getValidationData(key);\r\n if (result && !(null !== validationData && void 0 !== validationData && validationData.isValid)) {\r\n result = key.pageIndex === this._pageIndex\r\n }\r\n return result\r\n },\r\n _prepareEditCell: function(params) {\r\n var isNotCanceled = this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n if (isNotCanceled && params.column.showEditorAlways) {\r\n validatingController.updateValidationState({\r\n key: params.key\r\n })\r\n }\r\n return isNotCanceled\r\n },\r\n processItems: function(items, changeType) {\r\n var that = this;\r\n var i;\r\n var changes = that.getChanges();\r\n var dataController = that.getController(\"data\");\r\n var validatingController = this.getController(\"validating\");\r\n var getIndexByChange = function(change, items) {\r\n var index = -1;\r\n var isInsert = change.type === EDIT_DATA_INSERT_TYPE;\r\n var key = change.key;\r\n (0, _iterator.each)(items, function(i, item) {\r\n if ((0, _common.equalByValue)(key, isInsert ? item : dataController.keyOf(item))) {\r\n index = i;\r\n return false\r\n }\r\n });\r\n return index\r\n };\r\n items = that.callBase(items, changeType);\r\n var itemsCount = items.length;\r\n var addInValidItem = function(change, validationData) {\r\n var data = {\r\n key: change.key\r\n };\r\n var index = getIndexByChange(change, items);\r\n if (index >= 0) {\r\n return\r\n }\r\n validationData.rowIndex = validationData.rowIndex > itemsCount ? validationData.rowIndex % itemsCount : validationData.rowIndex;\r\n var rowIndex = validationData.rowIndex;\r\n data[INSERT_INDEX] = 1;\r\n items.splice(rowIndex, 0, data)\r\n };\r\n if (that.getEditMode() === EDIT_MODE_BATCH && \"prepend\" !== changeType && \"append\" !== changeType) {\r\n for (i = 0; i < changes.length; i++) {\r\n var key = changes[i].key;\r\n var validationData = validatingController._getValidationData(key);\r\n if (validationData && changes[i].type && validationData.pageIndex === that._pageIndex && key.pageIndex !== that._pageIndex) {\r\n addInValidItem(changes[i], validationData)\r\n }\r\n }\r\n }\r\n return items\r\n },\r\n processDataItem: function(item) {\r\n var isInserted = item.data[INSERT_INDEX];\r\n var key = isInserted ? item.data.key : item.key;\r\n var editMode = this.getEditMode();\r\n if (editMode === EDIT_MODE_BATCH && isInserted && key) {\r\n var changes = this.getChanges();\r\n var editIndex = _uiGrid_core2.default.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n var change = changes[editIndex];\r\n if (change.type !== EDIT_DATA_INSERT_TYPE) {\r\n var oldData = this._getOldData(change.key);\r\n item.data = (0, _extend.extend)(true, {}, oldData, change.data);\r\n item.key = key\r\n }\r\n }\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _createInvisibleColumnValidators: function(changes) {\r\n var _this5 = this;\r\n var that = this;\r\n var validatingController = this.getController(\"validating\");\r\n var columnsController = this.getController(\"columns\");\r\n var columns = columnsController.getColumns();\r\n var invisibleColumns = columnsController.getInvisibleColumns().filter(function(column) {\r\n return !column.isBand\r\n });\r\n var groupColumns = columnsController.getGroupColumns().filter(function(column) {\r\n return !column.showWhenGrouped && invisibleColumns.indexOf(column) === -1\r\n });\r\n var invisibleColumnValidators = [];\r\n var isCellVisible = function(column, rowKey) {\r\n return _this5._dataController.getRowIndexByKey(rowKey) >= 0 && invisibleColumns.indexOf(column) < 0\r\n };\r\n invisibleColumns.push.apply(invisibleColumns, _toConsumableArray(groupColumns));\r\n if (FORM_BASED_MODES.indexOf(this.getEditMode()) === -1) {\r\n (0, _iterator.each)(columns, function(_, column) {\r\n changes.forEach(function(change) {\r\n var data;\r\n if (isCellVisible(column, change.key)) {\r\n return\r\n }\r\n if (change.type === EDIT_DATA_INSERT_TYPE) {\r\n data = change.data\r\n } else {\r\n if (\"update\" === change.type) {\r\n var oldData = that._getOldData(change.key);\r\n data = (0, _array_utils.createObjectWithChanges)(oldData, change.data)\r\n }\r\n }\r\n if (data) {\r\n var validator = validatingController.createValidator({\r\n column: column,\r\n key: change.key,\r\n value: column.calculateCellValue(data)\r\n });\r\n if (validator) {\r\n invisibleColumnValidators.push(validator)\r\n }\r\n }\r\n })\r\n })\r\n }\r\n return function() {\r\n invisibleColumnValidators.forEach(function(validator) {\r\n validator.dispose()\r\n })\r\n }\r\n },\r\n _beforeSaveEditData: function(change, editIndex) {\r\n var _this6 = this;\r\n var result = this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n var validationData = validatingController._getValidationData(null === change || void 0 === change ? void 0 : change.key);\r\n if (change) {\r\n var isValid = \"remove\" === change.type || validationData.isValid;\r\n result = result || !isValid\r\n } else {\r\n var disposeValidators = this._createInvisibleColumnValidators(this.getChanges());\r\n result = new _deferred.Deferred;\r\n this.executeOperation(result, function() {\r\n validatingController.validate(true).done(function(isFullValid) {\r\n disposeValidators();\r\n _this6._updateRowAndPageIndices();\r\n switch (_this6.getEditMode()) {\r\n case EDIT_MODE_CELL:\r\n if (!isFullValid) {\r\n _this6._focusEditingCell()\r\n }\r\n break;\r\n case EDIT_MODE_BATCH:\r\n if (!isFullValid) {\r\n _this6._resetEditRowKey();\r\n _this6._resetEditColumnName();\r\n _this6.getController(\"data\").updateItems()\r\n }\r\n }\r\n result.resolve(!isFullValid)\r\n })\r\n })\r\n }\r\n return result.promise ? result.promise() : result\r\n },\r\n _beforeEditCell: function(rowIndex, columnIndex, item) {\r\n var result = this.callBase(rowIndex, columnIndex, item);\r\n if (this.getEditMode() === EDIT_MODE_CELL) {\r\n var $cell = this._rowsView._getCellElement(rowIndex, columnIndex);\r\n var validator = $cell && $cell.data(\"dxValidator\");\r\n var rowOptions = $cell && $cell.closest(\".dx-row\").data(\"options\");\r\n var value = validator && validator.option(\"adapter\").getValue();\r\n if (validator && cellValueShouldBeValidated(value, rowOptions)) {\r\n var validatingController = this.getController(\"validating\");\r\n var deferred = new _deferred.Deferred;\r\n (0, _deferred.when)(validatingController.validateCell(validator), result).done(function(validationResult, result) {\r\n deferred.resolve(validationResult.status === VALIDATION_STATUS.valid && result)\r\n });\r\n return deferred.promise()\r\n } else {\r\n if (!validator) {\r\n return result\r\n }\r\n }\r\n }\r\n },\r\n _afterSaveEditData: function(cancel) {\r\n var _this7 = this;\r\n var $firstErrorRow;\r\n (0, _iterator.each)(this.getChanges(), function(_, change) {\r\n var $errorRow = _this7._showErrorRow(change);\r\n $firstErrorRow = $firstErrorRow || $errorRow\r\n });\r\n if ($firstErrorRow) {\r\n var scrollable = this._rowsView.getScrollable();\r\n if (scrollable) {\r\n scrollable.update();\r\n scrollable.scrollToElement($firstErrorRow)\r\n }\r\n }\r\n if (cancel && this.getEditMode() === EDIT_MODE_CELL && this._needUpdateRow()) {\r\n var editRowIndex = this.getEditRowIndex();\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [editRowIndex]\r\n });\r\n this._focusEditingCell()\r\n } else {\r\n if (!cancel) {\r\n this.getController(\"validating\")._validationState = []\r\n }\r\n }\r\n },\r\n _handleDataChanged: function(args) {\r\n var validationState = this.getController(\"validating\")._validationState;\r\n if (\"standard\" === this.option(\"scrolling.mode\")) {\r\n this.resetRowAndPageIndices()\r\n }\r\n if (\"prepend\" === args.changeType) {\r\n (0, _iterator.each)(validationState, function(_, validationData) {\r\n validationData.rowIndex += args.items.length\r\n })\r\n }\r\n this.callBase(args)\r\n },\r\n resetRowAndPageIndices: function() {\r\n var _this8 = this;\r\n var validationState = this.getController(\"validating\")._validationState;\r\n (0, _iterator.each)(validationState, function(_, validationData) {\r\n if (validationData.pageIndex !== _this8._pageIndex) {\r\n delete validationData.pageIndex;\r\n delete validationData.rowIndex\r\n }\r\n })\r\n },\r\n _beforeCancelEditData: function() {\r\n var validatingController = this.getController(\"validating\");\r\n validatingController._validationState = [];\r\n this.callBase()\r\n },\r\n _showErrorRow: function(change) {\r\n var $popupContent;\r\n var errorHandling = this.getController(\"errorHandling\");\r\n var items = this.getController(\"data\").items();\r\n var rowIndex = this.getIndexByKey(change.key, items);\r\n var validationData = this.getController(\"validating\")._getValidationData(change.key);\r\n if (!(null !== validationData && void 0 !== validationData && validationData.isValid) && null !== validationData && void 0 !== validationData && validationData.errorText && rowIndex >= 0) {\r\n $popupContent = this.getPopupContent();\r\n return errorHandling && errorHandling.renderErrorRow(null === validationData || void 0 === validationData ? void 0 : validationData.errorText, rowIndex, $popupContent)\r\n }\r\n },\r\n updateFieldValue: function(e) {\r\n var _this9 = this;\r\n var validatingController = this.getController(\"validating\");\r\n var deferred = new _deferred.Deferred;\r\n validatingController.removeCellValidationResult({\r\n change: this.getChangeByKey(e.key),\r\n columnIndex: e.column.index\r\n });\r\n this.callBase.apply(this, arguments).done(function() {\r\n var currentValidator = validatingController.getCellValidator({\r\n rowKey: e.key,\r\n columnIndex: e.column.index\r\n });\r\n (0, _deferred.when)(currentValidator && validatingController.validateCell(currentValidator)).done(function(validationResult) {\r\n _this9.getController(\"editorFactory\").refocus();\r\n deferred.resolve(validationResult)\r\n })\r\n });\r\n return deferred.promise()\r\n },\r\n highlightDataCell: function($cell, parameters) {\r\n this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n validatingController.setCellValidationStatus(parameters);\r\n var isEditableCell = !!parameters.setValue;\r\n var cellModified = this.isCellModified(parameters);\r\n var isValidated = (0, _type.isDefined)(parameters.validationStatus);\r\n var needValidation = cellModified && parameters.column.setCellValue || isEditableCell && !cellModified && !(parameters.row.isNewRow || !isValidated);\r\n if (needValidation) {\r\n var validator = $cell.data(\"dxValidator\");\r\n if (validator) {\r\n (0, _deferred.when)(this.getController(\"validating\").validateCell(validator)).done(function() {\r\n validatingController.setCellValidationStatus(parameters)\r\n })\r\n }\r\n }\r\n },\r\n getChangeByKey: function(key) {\r\n var changes = this.getChanges();\r\n return changes[_uiGrid_core2.default.getIndexByKey(key, changes)]\r\n },\r\n isCellModified: function(parameters) {\r\n var cellModified = this.callBase(parameters);\r\n var change = this.getChangeByKey(parameters.key);\r\n var isCellInvalid = !!parameters.row && this.getController(\"validating\").isInvalidCell({\r\n rowKey: parameters.key,\r\n columnIndex: parameters.column.index\r\n });\r\n return cellModified || this.getController(\"validating\")._rowIsValidated(change) && isCellInvalid\r\n }\r\n },\r\n editorFactory: function() {\r\n var getWidthOfVisibleCells = function(that, element) {\r\n var rowIndex = (0, _renderer.default)(element).closest(\"tr\").index();\r\n var $cellElements = (0, _renderer.default)(that._rowsView.getRowElement(rowIndex)).first().children().filter(\":not(.dx-hidden-cell)\");\r\n return that._rowsView._getWidths($cellElements).reduce(function(w1, w2) {\r\n return w1 + w2\r\n }, 0)\r\n };\r\n var getBoundaryNonFixedColumnsInfo = function(fixedColumns) {\r\n var firstNonFixedColumnIndex;\r\n var lastNonFixedColumnIndex;\r\n fixedColumns.some(function(column, index) {\r\n if (column.command === COMMAND_TRANSPARENT) {\r\n firstNonFixedColumnIndex = 0 === index ? -1 : index;\r\n lastNonFixedColumnIndex = index === fixedColumns.length - 1 ? -1 : index + column.colspan - 1;\r\n return true\r\n }\r\n });\r\n return {\r\n startColumnIndex: firstNonFixedColumnIndex,\r\n endColumnIndex: lastNonFixedColumnIndex\r\n }\r\n };\r\n return {\r\n _showRevertButton: function($container) {\r\n var _this10 = this;\r\n if (!$container || !$container.length) {\r\n return\r\n }\r\n var $tooltipElement = $container.find(\".\" + this.addWidgetPrefix(REVERT_TOOLTIP_CLASS));\r\n var $overlayContainer = $container.closest(\".\".concat(this.addWidgetPrefix(CONTENT_CLASS)));\r\n $tooltipElement && $tooltipElement.remove();\r\n $tooltipElement = (0, _renderer.default)(\"
    \").addClass(this.addWidgetPrefix(REVERT_TOOLTIP_CLASS)).appendTo($container);\r\n var tooltipOptions = {\r\n animation: null,\r\n visible: true,\r\n width: \"auto\",\r\n height: \"auto\",\r\n target: $container,\r\n shading: false,\r\n container: $overlayContainer,\r\n propagateOutsideClick: true,\r\n closeOnOutsideClick: false,\r\n closeOnTargetScroll: false,\r\n contentTemplate: function() {\r\n var $buttonElement = (0, _renderer.default)(\"
    \").addClass(REVERT_BUTTON_CLASS);\r\n var buttonOptions = {\r\n icon: \"revert\",\r\n hint: _this10.option(\"editing.texts.validationCancelChanges\"),\r\n onClick: function() {\r\n _this10._editingController.cancelEditData()\r\n }\r\n };\r\n return new _button.default($buttonElement, buttonOptions).$element()\r\n },\r\n position: {\r\n my: \"left top\",\r\n at: \"right top\",\r\n offset: \"1 0\",\r\n collision: \"flip\",\r\n boundaryOffset: \"0 0\",\r\n boundary: this._rowsView.element()\r\n },\r\n onPositioned: this._positionedHandler.bind(this)\r\n };\r\n return new _overlay.default($tooltipElement, tooltipOptions)\r\n },\r\n _hideFixedGroupCell: function($cell, overlayOptions) {\r\n var $nextFixedRowElement;\r\n var $groupCellElement;\r\n var isFixedColumns = this._rowsView.isFixedColumns();\r\n var isFormEditMode = this._editingController.isFormEditMode();\r\n if (isFixedColumns && !isFormEditMode) {\r\n var nextRowOptions = $cell.closest(\".dx-row\").next().data(\"options\");\r\n if (nextRowOptions && \"group\" === nextRowOptions.rowType) {\r\n $nextFixedRowElement = (0, _renderer.default)(this._rowsView.getRowElement(nextRowOptions.rowIndex)).last();\r\n $groupCellElement = $nextFixedRowElement.find(\".\" + GROUP_CELL_CLASS);\r\n if ($groupCellElement.length && \"hidden\" !== $groupCellElement.get(0).style.visibility) {\r\n $groupCellElement.css(\"visibility\", \"hidden\");\r\n overlayOptions.onDisposing = function() {\r\n $groupCellElement.css(\"visibility\", \"\")\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _positionedHandler: function(e, isOverlayVisible) {\r\n if (!e.component.__skipPositionProcessing) {\r\n var isRevertButton = (0, _renderer.default)(e.element).hasClass(this.addWidgetPrefix(REVERT_TOOLTIP_CLASS));\r\n var needRepaint = !isRevertButton && this._rowsView.updateFreeSpaceRowHeight();\r\n var normalizedPosition = this._normalizeValidationMessagePositionAndMaxWidth(e, isRevertButton, isOverlayVisible);\r\n e.component.__skipPositionProcessing = !!(needRepaint || normalizedPosition);\r\n if (normalizedPosition) {\r\n e.component.option(normalizedPosition)\r\n } else {\r\n if (needRepaint) {\r\n e.component.repaint()\r\n }\r\n }\r\n }\r\n },\r\n _showValidationMessage: function($cell, messages, alignment, revertTooltip) {\r\n var _this11 = this;\r\n var editorPopup = $cell.find(\".dx-dropdowneditor-overlay\").data(\"dxPopup\");\r\n var isOverlayVisible = editorPopup && editorPopup.option(\"visible\");\r\n var myPosition = isOverlayVisible ? \"top right\" : \"top \" + alignment;\r\n var atPosition = isOverlayVisible ? \"top left\" : \"bottom \" + alignment;\r\n var $overlayContainer = $cell.closest(\".\".concat(this.addWidgetPrefix(CONTENT_CLASS)));\r\n var errorMessageText = \"\";\r\n messages && messages.forEach(function(message) {\r\n errorMessageText += (errorMessageText.length ? \"
    \" : \"\") + (0, _string.encodeHtml)(message)\r\n });\r\n var $overlayElement = (0, _renderer.default)(\"
    \").addClass(INVALID_MESSAGE_CLASS).addClass(INVALID_MESSAGE_ALWAYS_CLASS).addClass(this.addWidgetPrefix(WIDGET_INVALID_MESSAGE_CLASS)).html(errorMessageText).appendTo($cell);\r\n var overlayOptions = {\r\n target: $cell,\r\n container: $overlayContainer,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n visible: true,\r\n animation: false,\r\n propagateOutsideClick: true,\r\n closeOnOutsideClick: false,\r\n closeOnTargetScroll: false,\r\n position: {\r\n collision: \"flip\",\r\n boundary: this._rowsView.element(),\r\n boundaryOffset: \"0 0\",\r\n offset: {\r\n x: 0,\r\n y: !isOverlayVisible && (_browser.default.mozilla || _browser.default.msie) ? -1 : 0\r\n },\r\n my: myPosition,\r\n at: atPosition\r\n },\r\n onPositioned: function(e) {\r\n _this11._positionedHandler(e, isOverlayVisible);\r\n _this11._shiftValidationMessageIfNeed(e.component.$content(), revertTooltip && revertTooltip.$content(), $cell)\r\n }\r\n };\r\n this._hideFixedGroupCell($cell, overlayOptions);\r\n new _overlay.default($overlayElement, overlayOptions)\r\n },\r\n _normalizeValidationMessagePositionAndMaxWidth: function(options, isRevertButton, isOverlayVisible) {\r\n var fixedColumns = this._columnsController.getFixedColumns();\r\n if (!fixedColumns || !fixedColumns.length) {\r\n return\r\n }\r\n var position;\r\n var visibleTableWidth = !isRevertButton && getWidthOfVisibleCells(this, options.element);\r\n var $overlayContentElement = options.component.$content();\r\n var validationMessageWidth = $overlayContentElement.outerWidth(true);\r\n var needMaxWidth = !isRevertButton && validationMessageWidth > visibleTableWidth;\r\n var columnIndex = this._rowsView.getCellIndex((0, _renderer.default)(options.element).closest(\"td\"));\r\n var boundaryNonFixedColumnsInfo = getBoundaryNonFixedColumnsInfo(fixedColumns);\r\n if (!isRevertButton && (columnIndex === boundaryNonFixedColumnsInfo.startColumnIndex || needMaxWidth)) {\r\n position = {\r\n collision: \"none flip\",\r\n my: \"top left\",\r\n at: isOverlayVisible ? \"top right\" : \"bottom left\"\r\n }\r\n } else {\r\n if (columnIndex === boundaryNonFixedColumnsInfo.endColumnIndex) {\r\n position = {\r\n collision: \"none flip\",\r\n my: \"top right\",\r\n at: isRevertButton || isOverlayVisible ? \"top left\" : \"bottom right\"\r\n };\r\n if (isRevertButton) {\r\n position.offset = \"-1 0\"\r\n }\r\n }\r\n }\r\n return position && {\r\n position: position,\r\n maxWidth: needMaxWidth ? visibleTableWidth - 2 : void 0\r\n }\r\n },\r\n _shiftValidationMessageIfNeed: function($content, $revertContent, $cell) {\r\n if (!$revertContent) {\r\n return\r\n }\r\n var contentOffset = $content.offset();\r\n var revertContentOffset = $revertContent.offset();\r\n if (contentOffset.top === revertContentOffset.top && contentOffset.left + $content.width() > revertContentOffset.left) {\r\n var left = $revertContent.width() + PADDING_BETWEEN_TOOLTIPS;\r\n $content.css(\"left\", revertContentOffset.left < $cell.offset().left ? -left : left)\r\n }\r\n },\r\n _getTooltipsSelector: function() {\r\n var invalidMessageClass = this.addWidgetPrefix(WIDGET_INVALID_MESSAGE_CLASS);\r\n var revertTooltipClass = this.addWidgetPrefix(REVERT_TOOLTIP_CLASS);\r\n return \".dx-editor-cell .\" + revertTooltipClass + \", .dx-editor-cell .\" + invalidMessageClass + \", .dx-cell-modified .\" + invalidMessageClass\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._editingController = this.getController(\"editing\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n },\r\n loseFocus: function(skipValidator) {\r\n if (!skipValidator) {\r\n this.getController(\"validating\").setValidator(null)\r\n }\r\n this.callBase()\r\n },\r\n updateCellState: function($element, validationResult, hideBorder) {\r\n var _change$data;\r\n var $focus = null === $element || void 0 === $element ? void 0 : $element.closest(this._getFocusCellSelector());\r\n var $cell = null !== $focus && void 0 !== $focus && $focus.is(\"td\") ? $focus : null;\r\n var rowOptions = null === $focus || void 0 === $focus ? void 0 : $focus.closest(\".dx-row\").data(\"options\");\r\n var change = rowOptions ? this.getController(\"editing\").getChangeByKey(rowOptions.key) : null;\r\n var column = $cell && this.getController(\"columns\").getVisibleColumns()[$cell.index()];\r\n var isCellModified = void 0 !== (null === change || void 0 === change ? void 0 : null === (_change$data = change.data) || void 0 === _change$data ? void 0 : _change$data[null === column || void 0 === column ? void 0 : column.name]) && !this._editingController.isSaving();\r\n var revertTooltip;\r\n if ((null === validationResult || void 0 === validationResult ? void 0 : validationResult.status) === VALIDATION_STATUS.invalid || isCellModified) {\r\n if (this._editingController.getEditMode() === EDIT_MODE_CELL) {\r\n revertTooltip = this._showRevertButton($focus)\r\n }\r\n }\r\n var showValidationMessage = validationResult && validationResult.status === VALIDATION_STATUS.invalid;\r\n if (showValidationMessage && $cell && column && validationResult && validationResult.brokenRules) {\r\n var errorMessages = [];\r\n validationResult.brokenRules.forEach(function(rule) {\r\n errorMessages.push(rule.message)\r\n });\r\n this._showValidationMessage($focus, errorMessages, column.alignment || \"left\", revertTooltip)\r\n }!hideBorder && this._rowsView.element() && this._rowsView.updateFreeSpaceRowHeight()\r\n },\r\n focus: function($element, hideBorder) {\r\n var _this12 = this;\r\n if (!arguments.length) {\r\n return this.callBase()\r\n }\r\n var $tooltips = $element && $element.closest(\".\" + this.addWidgetPrefix(ROWS_VIEW_CLASS)).find(this._getTooltipsSelector());\r\n $tooltips && $tooltips.remove();\r\n if (null !== $element && void 0 !== $element && $element.hasClass(\"dx-row\")) {\r\n return this.callBase($element, hideBorder)\r\n }\r\n var $focus = null === $element || void 0 === $element ? void 0 : $element.closest(this._getFocusCellSelector());\r\n var callBase = this.callBase;\r\n var validator = $focus && ($focus.data(\"dxValidator\") || $element.find(\".\" + this.addWidgetPrefix(VALIDATOR_CLASS)).eq(0).data(\"dxValidator\"));\r\n var rowOptions = $focus && $focus.closest(\".dx-row\").data(\"options\");\r\n var editingController = this.getController(\"editing\");\r\n var change = rowOptions ? editingController.getChangeByKey(rowOptions.key) : null;\r\n var validationResult;\r\n var validatingController = this.getController(\"validating\");\r\n if (validator) {\r\n validatingController.setValidator(validator);\r\n var value = validator.option(\"adapter\").getValue();\r\n if (cellValueShouldBeValidated(value, rowOptions) || validatingController._rowIsValidated(change)) {\r\n editingController.waitForDeferredOperations().done(function() {\r\n (0, _deferred.when)(validatingController.validateCell(validator)).done(function(result) {\r\n validationResult = result;\r\n var column = validationResult.validator.option(\"dataGetter\")().column;\r\n if (change && column && !validatingController.isCurrentValidatorProcessing({\r\n rowKey: change.key,\r\n columnIndex: column.index\r\n })) {\r\n return\r\n }\r\n if (validationResult.status === VALIDATION_STATUS.invalid) {\r\n hideBorder = true\r\n }\r\n _this12.updateCellState($element, validationResult, hideBorder);\r\n callBase.call(_this12, $element, hideBorder)\r\n })\r\n });\r\n return this.callBase($element, hideBorder)\r\n }\r\n }\r\n this.updateCellState($element, validationResult, hideBorder);\r\n return this.callBase($element, hideBorder)\r\n },\r\n getEditorInstance: function($container) {\r\n var $editor = $container.find(\".dx-texteditor\").eq(0);\r\n return _uiGrid_core2.default.getWidgetInstance($editor)\r\n }\r\n }\r\n }(),\r\n data: {\r\n _isCellChanged: function(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n var cell = oldRow.cells[columnIndex];\r\n var oldValidationStatus = cell && cell.validationStatus;\r\n var validatingController = this.getController(\"validating\");\r\n var validationResult = validatingController.getCellValidationResult({\r\n rowKey: oldRow.key,\r\n columnIndex: columnIndex\r\n });\r\n var validationData = validatingController._getValidationData(oldRow.key);\r\n var newValidationStatus = validationResultIsValid(validationResult) ? validationResult.status : validationResult;\r\n var rowIsModified = JSON.stringify(newRow.modifiedValues) !== JSON.stringify(oldRow.modifiedValues);\r\n var cellIsMarkedAsInvalid = (0, _renderer.default)(null === cell || void 0 === cell ? void 0 : cell.cellElement).hasClass(this.addWidgetPrefix(INVALIDATE_CLASS));\r\n if (oldValidationStatus !== newValidationStatus && rowIsModified || validationData.isValid && cellIsMarkedAsInvalid) {\r\n return true\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n updateFreeSpaceRowHeight: function($table) {\r\n var that = this;\r\n var $rowElements;\r\n var $freeSpaceRowElement;\r\n var $freeSpaceRowElements;\r\n var $element = that.element();\r\n var $tooltipContent = $element && $element.find(\".\" + that.addWidgetPrefix(WIDGET_INVALID_MESSAGE_CLASS) + \" .dx-overlay-content\");\r\n that.callBase($table);\r\n if ($tooltipContent && $tooltipContent.length) {\r\n $rowElements = that._getRowElements();\r\n $freeSpaceRowElements = that._getFreeSpaceRowElements($table);\r\n $freeSpaceRowElement = $freeSpaceRowElements.first();\r\n if ($freeSpaceRowElement && 1 === $rowElements.length && (!$freeSpaceRowElement.is(\":visible\") || $tooltipContent.outerHeight() > $freeSpaceRowElement.outerHeight())) {\r\n $freeSpaceRowElements.show();\r\n $freeSpaceRowElements.height($tooltipContent.outerHeight());\r\n return true\r\n }\r\n }\r\n },\r\n _formItemPrepared: function(cellOptions, $container) {\r\n var _this13 = this;\r\n this.callBase.apply(this, arguments);\r\n (0, _common.deferUpdate)(function() {\r\n var $editor = $container.find(\".dx-widget\").first();\r\n var isEditorDisposed = $editor.length && !$editor.children().length;\r\n if (!isEditorDisposed) {\r\n _this13.getController(\"validating\").createValidator(cellOptions, $editor)\r\n }\r\n })\r\n },\r\n _cellPrepared: function($cell, parameters) {\r\n if (!this.getController(\"editing\").isFormEditMode()) {\r\n this.getController(\"validating\").createValidator(parameters, $cell)\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.virtual_columns_core.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.foreachColumnInfo = foreachColumnInfo;\r\nexports.createColumnsInfo = createColumnsInfo;\r\nvar _extend = require(\"../../core/utils/extend\");\r\n\r\nfunction foreachColumnInfo(info, callback, rowIndex, offsets, columnCount, lastProcessedIndexes) {\r\n rowIndex = rowIndex || 0;\r\n offsets = offsets || [];\r\n lastProcessedIndexes = lastProcessedIndexes || [];\r\n offsets[rowIndex] = offsets[rowIndex] || 0;\r\n var row = info[rowIndex];\r\n var startIndex = lastProcessedIndexes[rowIndex] + 1 || 0;\r\n var processedColumnCount = 0;\r\n var colIndex;\r\n if (!row) {\r\n return\r\n }\r\n for (colIndex = startIndex; colIndex < row.length; colIndex++) {\r\n var cell = row[colIndex];\r\n var visibleIndex = colIndex + offsets[rowIndex];\r\n var colspan = cell.colspan || 1;\r\n foreachColumnInfo(info, callback, rowIndex + (cell.rowspan || 1), offsets, colspan, lastProcessedIndexes);\r\n offsets[rowIndex] += colspan - 1;\r\n processedColumnCount += colspan;\r\n if (cell.rowspan) {\r\n for (var i = rowIndex + 1; i < rowIndex + cell.rowspan; i++) {\r\n offsets[i] = offsets[i] || 0;\r\n offsets[i] += cell.colspan || 1\r\n }\r\n }\r\n if (false === callback(cell, visibleIndex, rowIndex, colIndex)) {\r\n break\r\n }\r\n if (void 0 !== columnCount && processedColumnCount >= columnCount) {\r\n break\r\n }\r\n }\r\n lastProcessedIndexes[rowIndex] = colIndex\r\n}\r\n\r\nfunction createColumnsInfo(info, startIndex, endIndex) {\r\n var newInfo = [];\r\n foreachColumnInfo(info, function(columnInfo, visibleIndex, rowIndex) {\r\n var cell = columnInfo;\r\n var colspan;\r\n var cellColspan = cell.colspan || 1;\r\n var isVisible = visibleIndex + cellColspan - 1 >= startIndex && visibleIndex < endIndex;\r\n newInfo[rowIndex] = newInfo[rowIndex] || [];\r\n if (isVisible) {\r\n if (visibleIndex < startIndex) {\r\n colspan = cellColspan - (startIndex - visibleIndex);\r\n visibleIndex = startIndex\r\n } else {\r\n colspan = cellColspan\r\n }\r\n if (visibleIndex + colspan > endIndex) {\r\n colspan = endIndex - visibleIndex\r\n }\r\n if (colspan !== cellColspan) {\r\n cell = (0, _extend.extend)({}, cell, {\r\n colspan: colspan\r\n })\r\n }\r\n newInfo[rowIndex].push(cell)\r\n } else {\r\n if (visibleIndex > endIndex) {\r\n return false\r\n }\r\n }\r\n });\r\n for (var i = 0; i < newInfo.length; i++) {\r\n newInfo[i] = newInfo[i] || []\r\n }\r\n return newInfo\r\n}\r\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar n$Fetch = getBuiltIn('fetch');\nvar N$Request = getBuiltIn('Request');\nvar Headers = getBuiltIn('Headers');\nvar RequestPrototype = N$Request && N$Request.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(this.entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(this.entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n setInternalState(this, new URLSearchParamsState(init));\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) splice(entries, index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(n$Fetch)) {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return n$Fetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(N$Request)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new N$Request(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $ArrayCopyWithin = require('../internals/array-copy-within');\n\nvar u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","/**\r\n * DevExtreme (ui/drawer/ui.drawer.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _element = require(\"../../core/element\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _empty_template = require(\"../../core/templates/empty_template\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _uiDrawerRenderingStrategy = _interopRequireDefault(require(\"./ui.drawer.rendering.strategy.push\"));\r\nvar _uiDrawerRenderingStrategy2 = _interopRequireDefault(require(\"./ui.drawer.rendering.strategy.shrink\"));\r\nvar _uiDrawerRenderingStrategy3 = _interopRequireDefault(require(\"./ui.drawer.rendering.strategy.overlap\"));\r\nvar _uiDrawer = require(\"./ui.drawer.animation\");\r\nvar _click = require(\"../../events/click\");\r\nvar _fx = _interopRequireDefault(require(\"../../animation/fx\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _visibility_change = require(\"../../events/visibility_change\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DRAWER_CLASS = \"dx-drawer\";\r\nvar DRAWER_WRAPPER_CLASS = \"dx-drawer-wrapper\";\r\nvar DRAWER_PANEL_CONTENT_CLASS = \"dx-drawer-panel-content\";\r\nvar DRAWER_VIEW_CONTENT_CLASS = \"dx-drawer-content\";\r\nvar DRAWER_SHADER_CLASS = \"dx-drawer-shader\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar OPENED_STATE_CLASS = \"dx-drawer-opened\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar PANEL_TEMPLATE_NAME = \"panel\";\r\nvar Drawer = _ui.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n position: \"left\",\r\n opened: false,\r\n minSize: null,\r\n maxSize: null,\r\n shading: false,\r\n template: PANEL_TEMPLATE_NAME,\r\n openedStateMode: \"shrink\",\r\n revealMode: \"slide\",\r\n animationEnabled: true,\r\n animationDuration: 400,\r\n closeOnOutsideClick: false,\r\n contentTemplate: ANONYMOUS_TEMPLATE_NAME,\r\n target: void 0\r\n })\r\n },\r\n _setDeprecatedOptions: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._deprecatedOptions, {\r\n target: {\r\n since: \"20.1\",\r\n message: \"Functionality associated with this option is not intended for the Drawer widget.\"\r\n }\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initStrategy();\r\n this.$element().addClass(DRAWER_CLASS);\r\n this._whenAnimationCompleted = void 0;\r\n this._whenPanelContentRendered = void 0;\r\n this._whenPanelContentRefreshed = void 0;\r\n this._$wrapper = (0, _renderer.default)(\"
    \").addClass(DRAWER_WRAPPER_CLASS);\r\n this._$viewContentWrapper = (0, _renderer.default)(\"
    \").addClass(DRAWER_VIEW_CONTENT_CLASS);\r\n this._$wrapper.append(this._$viewContentWrapper);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _initStrategy: function() {\r\n switch (this.option(\"openedStateMode\")) {\r\n case \"push\":\r\n this._strategy = new _uiDrawerRenderingStrategy.default(this);\r\n break;\r\n case \"shrink\":\r\n this._strategy = new _uiDrawerRenderingStrategy2.default(this);\r\n break;\r\n case \"overlap\":\r\n this._strategy = new _uiDrawerRenderingStrategy3.default(this);\r\n break;\r\n default:\r\n this._strategy = new _uiDrawerRenderingStrategy.default(this)\r\n }\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates: function() {\r\n var defaultTemplates = {};\r\n defaultTemplates[PANEL_TEMPLATE_NAME] = new _empty_template.EmptyTemplate;\r\n defaultTemplates[ANONYMOUS_TEMPLATE_NAME] = new _empty_template.EmptyTemplate;\r\n this._templateManager.addDefaultTemplates(defaultTemplates);\r\n this.callBase()\r\n },\r\n _viewContentWrapperClickHandler: function(e) {\r\n var closeOnOutsideClick = this.option(\"closeOnOutsideClick\");\r\n if ((0, _type.isFunction)(closeOnOutsideClick)) {\r\n closeOnOutsideClick = closeOnOutsideClick(e)\r\n }\r\n if (closeOnOutsideClick && this.option(\"opened\")) {\r\n this.stopAnimations();\r\n if (this.option(\"shading\")) {\r\n e.preventDefault()\r\n }\r\n this.hide()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._toggleOpenedStateClass(this.option(\"opened\"));\r\n this._renderPanelContentWrapper();\r\n this._refreshOpenedStateModeClass();\r\n this._refreshRevealModeClass();\r\n this._renderShader();\r\n this._whenPanelContentRendered = new _deferred.Deferred;\r\n this._strategy.renderPanelContent(this._whenPanelContentRendered);\r\n this._strategy.onPanelContentRendered();\r\n this._renderViewContent();\r\n _events_engine.default.off(this._$viewContentWrapper, _click.name);\r\n _events_engine.default.on(this._$viewContentWrapper, _click.name, this._viewContentWrapperClickHandler.bind(this));\r\n this._refreshPositionClass();\r\n this._refreshWrapperChildrenOrder()\r\n },\r\n _render: function() {\r\n var _this = this;\r\n this._initMinMaxSize();\r\n this.callBase();\r\n this._whenPanelContentRendered.always(function() {\r\n _this._initMinMaxSize();\r\n _this._strategy.refreshPanelElementSize(\"slide\" === _this.option(\"revealMode\") || !_this.isHorizontalDirection());\r\n _this._renderPosition(_this.option(\"opened\"), true);\r\n _this._removePanelManualPosition()\r\n })\r\n },\r\n _removePanelManualPosition: function() {\r\n if (this._$panelContentWrapper.attr(\"manualposition\")) {\r\n this._$panelContentWrapper.removeAttr(\"manualPosition\");\r\n this._$panelContentWrapper.css({\r\n position: \"\",\r\n top: \"\",\r\n left: \"\",\r\n right: \"\",\r\n bottom: \"\"\r\n })\r\n }\r\n },\r\n _renderPanelContentWrapper: function() {\r\n this._$panelContentWrapper = (0, _renderer.default)(\"
    \").addClass(DRAWER_PANEL_CONTENT_CLASS);\r\n var position = this.calcTargetPosition();\r\n if (\"push\" === this.option(\"openedStateMode\") && [\"top\", \"bottom\"].indexOf(position) > -1) {\r\n this._$panelContentWrapper.addClass(DRAWER_PANEL_CONTENT_CLASS + \"-push-top-or-bottom\")\r\n }\r\n if (\"overlap\" !== this.option(\"openedStateMode\") && !this.option(\"opened\") && !this.option(\"minSize\")) {\r\n this._$panelContentWrapper.attr(\"manualposition\", true);\r\n this._$panelContentWrapper.css({\r\n position: \"absolute\",\r\n top: \"-10000px\",\r\n left: \"-10000px\",\r\n right: \"auto\",\r\n bottom: \"auto\"\r\n })\r\n }\r\n this._$wrapper.append(this._$panelContentWrapper)\r\n },\r\n _refreshOpenedStateModeClass: function(prevOpenedStateMode) {\r\n if (prevOpenedStateMode) {\r\n this.$element().removeClass(DRAWER_CLASS + \"-\" + prevOpenedStateMode)\r\n }\r\n this.$element().addClass(DRAWER_CLASS + \"-\" + this.option(\"openedStateMode\"))\r\n },\r\n _refreshPositionClass: function(prevPosition) {\r\n if (prevPosition) {\r\n this.$element().removeClass(DRAWER_CLASS + \"-\" + prevPosition)\r\n }\r\n this.$element().addClass(DRAWER_CLASS + \"-\" + this.calcTargetPosition())\r\n },\r\n _refreshWrapperChildrenOrder: function() {\r\n var position = this.calcTargetPosition();\r\n if (this._strategy.isViewContentFirst(position, this.option(\"rtlEnabled\"))) {\r\n this._$wrapper.prepend(this._$viewContentWrapper)\r\n } else {\r\n this._$wrapper.prepend(this._$panelContentWrapper)\r\n }\r\n },\r\n _refreshRevealModeClass: function(prevRevealMode) {\r\n if (prevRevealMode) {\r\n this.$element().removeClass(DRAWER_CLASS + \"-\" + prevRevealMode)\r\n }\r\n this.$element().addClass(DRAWER_CLASS + \"-\" + this.option(\"revealMode\"))\r\n },\r\n _renderViewContent: function() {\r\n var contentTemplateOption = this.option(\"contentTemplate\");\r\n var contentTemplate = this._getTemplate(contentTemplateOption);\r\n if (contentTemplate) {\r\n var $viewTemplate = contentTemplate.render({\r\n container: this.viewContent(),\r\n noModel: true,\r\n transclude: this._templateManager.anonymousTemplateName === contentTemplateOption\r\n });\r\n if ($viewTemplate.hasClass(\"ng-scope\")) {\r\n (0, _renderer.default)(this._$viewContentWrapper).children().not(\".\".concat(DRAWER_SHADER_CLASS)).replaceWith($viewTemplate)\r\n }\r\n }\r\n },\r\n _renderShader: function() {\r\n this._$shader = this._$shader || (0, _renderer.default)(\"
    \").addClass(DRAWER_SHADER_CLASS);\r\n this._$shader.appendTo(this.viewContent());\r\n this._toggleShaderVisibility(this.option(\"opened\"))\r\n },\r\n _initSize: function() {\r\n this._initMinMaxSize()\r\n },\r\n _initMinMaxSize: function() {\r\n var realPanelSize = this.isHorizontalDirection() ? this.getRealPanelWidth() : this.getRealPanelHeight();\r\n this._maxSize = this.option(\"maxSize\") || realPanelSize;\r\n this._minSize = this.option(\"minSize\") || 0\r\n },\r\n calcTargetPosition: function() {\r\n var position = this.option(\"position\");\r\n var rtl = this.option(\"rtlEnabled\");\r\n var result = position;\r\n if (\"before\" === position) {\r\n result = rtl ? \"right\" : \"left\"\r\n } else {\r\n if (\"after\" === position) {\r\n result = rtl ? \"left\" : \"right\"\r\n }\r\n }\r\n return result\r\n },\r\n getOverlayTarget: function() {\r\n return this._options.silent(\"target\") || this._$wrapper\r\n },\r\n getOverlay: function() {\r\n return this._overlay\r\n },\r\n getMaxSize: function() {\r\n return this._maxSize\r\n },\r\n getMinSize: function() {\r\n return this._minSize\r\n },\r\n getRealPanelWidth: function() {\r\n if ((0, _window.hasWindow)()) {\r\n if ((0, _type.isDefined)(this.option(\"templateSize\"))) {\r\n return this.option(\"templateSize\")\r\n } else {\r\n return (0, _position.getBoundingRect)(this._getPanelTemplateElement()).width\r\n }\r\n } else {\r\n return 0\r\n }\r\n },\r\n getRealPanelHeight: function() {\r\n if ((0, _window.hasWindow)()) {\r\n if ((0, _type.isDefined)(this.option(\"templateSize\"))) {\r\n return this.option(\"templateSize\")\r\n } else {\r\n return (0, _position.getBoundingRect)(this._getPanelTemplateElement()).height\r\n }\r\n } else {\r\n return 0\r\n }\r\n },\r\n _getPanelTemplateElement: function() {\r\n var $panelContent = this._strategy.getPanelContent();\r\n var $result = $panelContent;\r\n if ($panelContent.children().length) {\r\n $result = $panelContent.children().eq(0);\r\n if ($panelContent.hasClass(\"dx-overlay-content\") && $result.hasClass(\"dx-template-wrapper\") && $result.children().length) {\r\n $result = $result.children().eq(0)\r\n }\r\n }\r\n return $result.get(0)\r\n },\r\n getElementHeight: function($element) {\r\n var $children = $element.children();\r\n return $children.length ? (0, _position.getBoundingRect)($children.eq(0).get(0)).height : (0, _position.getBoundingRect)($element.get(0)).height\r\n },\r\n isHorizontalDirection: function() {\r\n var position = this.calcTargetPosition();\r\n return \"left\" === position || \"right\" === position\r\n },\r\n stopAnimations: function(jumpToEnd) {\r\n _fx.default.stop(this._$shader, jumpToEnd);\r\n _fx.default.stop((0, _renderer.default)(this.content()), jumpToEnd);\r\n _fx.default.stop((0, _renderer.default)(this.viewContent()), jumpToEnd);\r\n var overlay = this.getOverlay();\r\n if (overlay) {\r\n _fx.default.stop((0, _renderer.default)(overlay.$content()), jumpToEnd)\r\n }\r\n },\r\n setZIndex: function(zIndex) {\r\n this._$shader.css(\"zIndex\", zIndex - 1);\r\n this._$panelContentWrapper.css(\"zIndex\", zIndex)\r\n },\r\n resizeContent: function() {\r\n this.resizeViewContent\r\n },\r\n resizeViewContent: function() {\r\n (0, _visibility_change.triggerResizeEvent)(this.viewContent())\r\n },\r\n _isInvertedPosition: function() {\r\n var position = this.calcTargetPosition();\r\n return \"right\" === position || \"bottom\" === position\r\n },\r\n _renderPosition: function(isDrawerOpened, disableAnimation, jumpToEnd) {\r\n this.stopAnimations(jumpToEnd);\r\n if (!(0, _window.hasWindow)()) {\r\n return\r\n }(0, _renderer.default)(this.viewContent()).css(\"paddingLeft\", 0);\r\n (0, _renderer.default)(this.viewContent()).css(\"paddingRight\", 0);\r\n (0, _renderer.default)(this.viewContent()).css(\"paddingTop\", 0);\r\n (0, _renderer.default)(this.viewContent()).css(\"paddingBottom\", 0);\r\n var animationEnabled = this.option(\"animationEnabled\");\r\n if (true === disableAnimation) {\r\n animationEnabled = false\r\n }\r\n if (isDrawerOpened) {\r\n this._toggleShaderVisibility(isDrawerOpened)\r\n }\r\n this._strategy.renderPosition(animationEnabled, this.option(\"animationDuration\"))\r\n },\r\n _animationCompleteHandler: function() {\r\n this.resizeViewContent();\r\n if (this._whenAnimationCompleted) {\r\n this._whenAnimationCompleted.resolve()\r\n }\r\n },\r\n _getPositionCorrection: function() {\r\n return this._isInvertedPosition() ? -1 : 1\r\n },\r\n _dispose: function() {\r\n _uiDrawer.animation.complete((0, _renderer.default)(this.viewContent()));\r\n this.callBase()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._initMinMaxSize();\r\n this._strategy.refreshPanelElementSize(\"slide\" === this.option(\"revealMode\"));\r\n this._renderPosition(this.option(\"opened\"), true)\r\n },\r\n _toggleShaderVisibility: function(visible) {\r\n if (this.option(\"shading\")) {\r\n this._$shader.toggleClass(INVISIBLE_STATE_CLASS, !visible);\r\n this._$shader.css(\"visibility\", visible ? \"visible\" : \"hidden\")\r\n } else {\r\n this._$shader.toggleClass(INVISIBLE_STATE_CLASS, true)\r\n }\r\n },\r\n _toggleOpenedStateClass: function(opened) {\r\n this.$element().toggleClass(OPENED_STATE_CLASS, opened)\r\n },\r\n _refreshPanel: function() {\r\n var _this2 = this;\r\n (0, _renderer.default)(this.viewContent()).css(\"left\", 0);\r\n (0, _renderer.default)(this.viewContent()).css(\"transform\", \"translate(0px, 0px)\");\r\n (0, _renderer.default)(this.viewContent()).removeClass(\"dx-theme-background-color\");\r\n this._removePanelContentWrapper();\r\n this._removeOverlay();\r\n this._renderPanelContentWrapper();\r\n this._refreshWrapperChildrenOrder();\r\n this._whenPanelContentRefreshed = new _deferred.Deferred;\r\n this._strategy.renderPanelContent(this._whenPanelContentRefreshed);\r\n this._strategy.onPanelContentRendered();\r\n if ((0, _window.hasWindow)()) {\r\n this._whenPanelContentRefreshed.always(function() {\r\n _this2._strategy.refreshPanelElementSize(\"slide\" === _this2.option(\"revealMode\"));\r\n _this2._renderPosition(_this2.option(\"opened\"), true, true);\r\n _this2._removePanelManualPosition()\r\n })\r\n }\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n this._removePanelContentWrapper();\r\n this._removeOverlay()\r\n },\r\n _removePanelContentWrapper: function() {\r\n if (this._$panelContentWrapper) {\r\n this._$panelContentWrapper.remove()\r\n }\r\n },\r\n _removeOverlay: function() {\r\n if (this._overlay) {\r\n this._overlay.dispose();\r\n delete this._overlay;\r\n delete this._$panelContentWrapper\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"opened\":\r\n this._renderPosition(this.option(\"opened\"));\r\n this._toggleOpenedStateClass(args.value);\r\n break;\r\n case \"position\":\r\n this._refreshPositionClass(args.previousValue);\r\n this._refreshWrapperChildrenOrder();\r\n this._invalidate();\r\n break;\r\n case \"contentTemplate\":\r\n case \"template\":\r\n this._invalidate();\r\n break;\r\n case \"openedStateMode\":\r\n case \"target\":\r\n this._initStrategy();\r\n this._refreshOpenedStateModeClass(args.previousValue);\r\n this._refreshPanel();\r\n break;\r\n case \"minSize\":\r\n case \"maxSize\":\r\n this._initMinMaxSize();\r\n this._renderPosition(this.option(\"opened\"), true);\r\n break;\r\n case \"revealMode\":\r\n this._refreshRevealModeClass(args.previousValue);\r\n this._refreshPanel();\r\n break;\r\n case \"shading\":\r\n this._toggleShaderVisibility(this.option(\"opened\"));\r\n break;\r\n case \"animationEnabled\":\r\n case \"animationDuration\":\r\n case \"closeOnOutsideClick\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n content: function() {\r\n return (0, _element.getPublicElement)(this._$panelContentWrapper)\r\n },\r\n viewContent: function() {\r\n return (0, _element.getPublicElement)(this._$viewContentWrapper)\r\n },\r\n show: function() {\r\n return this.toggle(true)\r\n },\r\n hide: function() {\r\n return this.toggle(false)\r\n },\r\n toggle: function(opened) {\r\n var targetOpened = void 0 === opened ? !this.option(\"opened\") : opened;\r\n this._whenAnimationCompleted = new _deferred.Deferred;\r\n this.option(\"opened\", targetOpened);\r\n return this._whenAnimationCompleted.promise()\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxDrawer\", Drawer);\r\nvar _default = Drawer;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.state_storing.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiGrid_core = require(\"./ui.grid_core.state_storing_core\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar getDataState = function(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 (0, _extend.extend)(state, dataController.getUserState())\r\n};\r\nvar processLoadState = function(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(function() {\r\n that.updateState({\r\n columns: columnsController.getUserState()\r\n })\r\n })\r\n }\r\n if (selectionController) {\r\n selectionController.selectionChanged.add(function(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(function() {\r\n var state = getDataState(that);\r\n that.updateState(state)\r\n })\r\n }\r\n if (exportController) {\r\n exportController.selectionOnlyChanged.add(function() {\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 = function(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 } else {\r\n return that._initialFilterValue || filterSyncController.getFilterValueFromColumns(columnsController.getColumns())\r\n }\r\n }\r\n return DEFAULT_FILTER_VALUE\r\n};\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\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 },\r\n controllers: {\r\n stateStoring: _uiGrid_core.StateStoringController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n init: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n dataController.stateLoaded.add(function() {\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: function() {\r\n this.callBase.apply(this, arguments);\r\n processLoadState(this)\r\n },\r\n isLoading: function() {\r\n return this.callBase() || this.getController(\"data\").isStateLoading()\r\n },\r\n state: function(_state) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (void 0 !== _state) {\r\n this.applyState((0, _extend.extend)({}, _state))\r\n }\r\n return result\r\n },\r\n updateState: function(state) {\r\n if (this.isEnabled()) {\r\n var oldState = this.state();\r\n var newState = (0, _extend.extend)({}, oldState, state);\r\n var oldStateHash = (0, _common.getKeyHash)(oldState);\r\n var newStateHash = (0, _common.getKeyHash)(newState);\r\n if (!(0, _common.equalByValue)(oldStateHash, newStateHash)) {\r\n (0, _extend.extend)(this._state, state);\r\n this.save()\r\n }\r\n } else {\r\n (0, _extend.extend)(this._state, state)\r\n }\r\n },\r\n applyState: function(state) {\r\n var that = this;\r\n var allowedPageSizes = state.allowedPageSizes;\r\n var searchText = state.searchText;\r\n var selectedRowKeys = state.selectedRowKeys;\r\n var selectionFilter = state.selectionFilter;\r\n var exportController = that.getController(\"export\");\r\n var columnsController = that.getController(\"columns\");\r\n var dataController = that.getController(\"data\");\r\n var scrollingMode = that.option(\"scrolling.mode\");\r\n var isVirtualScrollingMode = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var showPageSizeSelector = true === that.option(\"pager.visible\") && that.option(\"pager.showPageSizeSelector\");\r\n that.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 (selectedRowKeys) {\r\n that.option(\"selectedRowKeys\", selectedRowKeys)\r\n }\r\n that.option(\"selectionFilter\", selectionFilter);\r\n if (allowedPageSizes && \"auto\" === that.option(\"pager.allowedPageSizes\")) {\r\n that.option(\"pager\").allowedPageSizes = allowedPageSizes\r\n }\r\n if (that.option(\"focusedRowEnabled\") && void 0 !== state.focusedRowKey) {\r\n that.option(\"focusedRowKey\", state.focusedRowKey)\r\n }\r\n that.component.endUpdate();\r\n searchText && that.option(\"searchPanel.text\", searchText);\r\n that.option(\"filterValue\", getFilterValue(that, state));\r\n that.option(\"filterPanel.filterEnabled\", state.filterPanel ? state.filterPanel.filterEnabled : true);\r\n that.option(\"paging.pageSize\", (!isVirtualScrollingMode || showPageSizeSelector) && (0, _type.isDefined)(state.pageSize) ? state.pageSize : that._initialPageSize);\r\n that.option(\"paging.pageIndex\", state.pageIndex || 0);\r\n dataController && dataController.reset()\r\n }\r\n },\r\n columns: {\r\n getVisibleColumns: function() {\r\n var visibleColumns = this.callBase.apply(this, arguments);\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return stateStoringController.isEnabled() && !stateStoringController.isLoaded() ? [] : visibleColumns\r\n }\r\n },\r\n data: {\r\n callbackNames: function() {\r\n return this.callBase().concat([\"stateLoaded\"])\r\n },\r\n _refreshDataSource: function() {\r\n var _this = this;\r\n var callBase = this.callBase;\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.Deferred;\r\n this._restoreStateTimeoutID = setTimeout(function() {\r\n stateStoringController.load().always(function() {\r\n _this._restoreStateTimeoutID = null\r\n }).done(function() {\r\n callBase.call(_this);\r\n _this.stateLoaded.fire();\r\n deferred.resolve()\r\n }).fail(function(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 } else {\r\n if (!this.isStateLoading()) {\r\n callBase.call(this)\r\n }\r\n }\r\n },\r\n isLoading: function() {\r\n var that = this;\r\n var stateStoringController = that.getController(\"stateStoring\");\r\n return this.callBase() || stateStoringController.isLoading()\r\n },\r\n isStateLoading: function() {\r\n return (0, _type.isDefined)(this._restoreStateTimeoutID)\r\n },\r\n isLoaded: function() {\r\n return this.callBase() && !this.isStateLoading()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n this.callBase()\r\n }\r\n },\r\n selection: {\r\n _fireSelectionChanged: function(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\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var C = aConstructor(this);\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n O = [];\n while (!(step = call(next, iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2]);\n }\n length = lengthOfArrayLike(O);\n result = new (aTypedArrayConstructor(C))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","/**\r\n * DevExtreme (file_management/custom_provider.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _common = require(\"../core/utils/common\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _data = require(\"../core/utils/data\");\r\nvar _provider_base = _interopRequireDefault(require(\"./provider_base\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar CustomFileSystemProvider = function(_FileSystemProviderBa) {\r\n _inheritsLoose(CustomFileSystemProvider, _FileSystemProviderBa);\r\n\r\n function CustomFileSystemProvider(options) {\r\n var _this;\r\n options = (0, _common.ensureDefined)(options, {});\r\n _this = _FileSystemProviderBa.call(this, options) || this;\r\n _this._hasSubDirsGetter = (0, _data.compileGetter)(options.hasSubDirectoriesExpr || \"hasSubDirectories\");\r\n _this._getItemsFunction = _this._ensureFunction(options.getItems, function() {\r\n return []\r\n });\r\n _this._renameItemFunction = _this._ensureFunction(options.renameItem);\r\n _this._createDirectoryFunction = _this._ensureFunction(options.createDirectory);\r\n _this._deleteItemFunction = _this._ensureFunction(options.deleteItem);\r\n _this._moveItemFunction = _this._ensureFunction(options.moveItem);\r\n _this._copyItemFunction = _this._ensureFunction(options.copyItem);\r\n _this._uploadFileChunkFunction = _this._ensureFunction(options.uploadFileChunk);\r\n _this._abortFileUploadFunction = _this._ensureFunction(options.abortFileUpload);\r\n _this._downloadItemsFunction = _this._ensureFunction(options.downloadItems);\r\n _this._getItemsContentFunction = _this._ensureFunction(options.getItemsContent);\r\n return _this\r\n }\r\n var _proto = CustomFileSystemProvider.prototype;\r\n _proto.getItems = function(parentDir) {\r\n var _this2 = this;\r\n var pathInfo = parentDir.getFullPathInfo();\r\n return this._executeActionAsDeferred(function() {\r\n return _this2._getItemsFunction(parentDir)\r\n }, true).then(function(dataItems) {\r\n return _this2._convertDataObjectsToFileItems(dataItems, pathInfo)\r\n })\r\n };\r\n _proto.renameItem = function(item, name) {\r\n var _this3 = this;\r\n return this._executeActionAsDeferred(function() {\r\n return _this3._renameItemFunction(item, name)\r\n })\r\n };\r\n _proto.createDirectory = function(parentDir, name) {\r\n var _this4 = this;\r\n return this._executeActionAsDeferred(function() {\r\n return _this4._createDirectoryFunction(parentDir, name)\r\n })\r\n };\r\n _proto.deleteItems = function(items) {\r\n var _this5 = this;\r\n return items.map(function(item) {\r\n return _this5._executeActionAsDeferred(function() {\r\n return _this5._deleteItemFunction(item)\r\n })\r\n })\r\n };\r\n _proto.moveItems = function(items, destinationDirectory) {\r\n var _this6 = this;\r\n return items.map(function(item) {\r\n return _this6._executeActionAsDeferred(function() {\r\n return _this6._moveItemFunction(item, destinationDirectory)\r\n })\r\n })\r\n };\r\n _proto.copyItems = function(items, destinationFolder) {\r\n var _this7 = this;\r\n return items.map(function(item) {\r\n return _this7._executeActionAsDeferred(function() {\r\n return _this7._copyItemFunction(item, destinationFolder)\r\n })\r\n })\r\n };\r\n _proto.uploadFileChunk = function(fileData, chunksInfo, destinationDirectory) {\r\n var _this8 = this;\r\n return this._executeActionAsDeferred(function() {\r\n return _this8._uploadFileChunkFunction(fileData, chunksInfo, destinationDirectory)\r\n })\r\n };\r\n _proto.abortFileUpload = function(fileData, chunksInfo, destinationDirectory) {\r\n var _this9 = this;\r\n return this._executeActionAsDeferred(function() {\r\n return _this9._abortFileUploadFunction(fileData, chunksInfo, destinationDirectory)\r\n })\r\n };\r\n _proto.downloadItems = function(items) {\r\n return this._downloadItemsFunction(items)\r\n };\r\n _proto.getItemsContent = function(items) {\r\n var _this10 = this;\r\n return this._executeActionAsDeferred(function() {\r\n return _this10._getItemsContentFunction(items)\r\n })\r\n };\r\n _proto._hasSubDirs = function(dataObj) {\r\n var hasSubDirs = this._hasSubDirsGetter(dataObj);\r\n return \"boolean\" === typeof hasSubDirs ? hasSubDirs : true\r\n };\r\n _proto._getKeyExpr = function(options) {\r\n return options.keyExpr || \"key\"\r\n };\r\n _proto._ensureFunction = function(functionObject, defaultFunction) {\r\n defaultFunction = defaultFunction || _common.noop;\r\n return (0, _type.isFunction)(functionObject) ? functionObject : defaultFunction\r\n };\r\n return CustomFileSystemProvider\r\n}(_provider_base.default);\r\nvar _default = CustomFileSystemProvider;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.column_headers.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.ColumnHeadersView = void 0;\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.column_headers\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ColumnHeadersView = _uiGrid_core.default.views.columnHeadersView;\r\nexports.ColumnHeadersView = ColumnHeadersView;\r\n_uiData_grid.default.registerModule(\"columnHeaders\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/hierarchical_collection/ui.data_converter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"../../ui/widget/ui.errors\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DataConverter = _class.default.inherit({\r\n ctor: function() {\r\n this._dataStructure = [];\r\n this._itemsCount = 0;\r\n this._visibleItemsCount = 0\r\n },\r\n _indexByKey: {},\r\n _convertItemsToNodes: function(items, parentKey) {\r\n var that = this;\r\n (0, _iterator.each)(items, function(_, item) {\r\n var parentId = (0, _type.isDefined)(parentKey) ? parentKey : that._getParentId(item);\r\n var node = that._convertItemToNode(item, parentId);\r\n that._dataStructure.push(node);\r\n that._checkForDuplicateId(node.internalFields.key);\r\n that._indexByKey[node.internalFields.key] = that._dataStructure.length - 1;\r\n if (that._itemHasChildren(item)) {\r\n that._convertItemsToNodes(that._dataAccessors.getters.items(item), node.internalFields.key)\r\n }\r\n })\r\n },\r\n _checkForDuplicateId: function(key) {\r\n if ((0, _type.isDefined)(this._indexByKey[key])) {\r\n throw _ui.default.Error(\"E1040\", key)\r\n }\r\n },\r\n _getParentId: function(item) {\r\n return \"plain\" === this._dataType ? this._dataAccessors.getters.parentKey(item) : void 0\r\n },\r\n _itemHasChildren: function(item) {\r\n if (\"plain\" === this._dataType) {\r\n return\r\n }\r\n var items = this._dataAccessors.getters.items(item);\r\n return items && items.length\r\n },\r\n _getUniqueKey: function(item) {\r\n var keyGetter = this._dataAccessors.getters.key;\r\n var itemKey = keyGetter(item);\r\n var isCorrectKey = keyGetter && (itemKey || 0 === itemKey) && (0, _type.isPrimitive)(itemKey);\r\n return isCorrectKey ? itemKey : this.getItemsCount()\r\n },\r\n _convertItemToNode: function(item, parentKey) {\r\n this._itemsCount++;\r\n false !== item.visible && this._visibleItemsCount++;\r\n var that = this;\r\n var node = {\r\n internalFields: {\r\n disabled: that._dataAccessors.getters.disabled(item, {\r\n defaultValue: false\r\n }),\r\n expanded: that._dataAccessors.getters.expanded(item, {\r\n defaultValue: false\r\n }),\r\n selected: that._dataAccessors.getters.selected(item, {\r\n defaultValue: false\r\n }),\r\n key: that._getUniqueKey(item),\r\n parentKey: (0, _type.isDefined)(parentKey) ? parentKey : that._rootValue,\r\n item: that._makeObjectFromPrimitive(item),\r\n childrenKeys: []\r\n }\r\n };\r\n (0, _extend.extend)(node, item);\r\n delete node.items;\r\n return node\r\n },\r\n setChildrenKeys: function() {\r\n var that = this;\r\n (0, _iterator.each)(this._dataStructure, function(_, node) {\r\n if (node.internalFields.parentKey === that._rootValue) {\r\n return\r\n }\r\n var parent = that.getParentNode(node);\r\n parent && parent.internalFields.childrenKeys.push(node.internalFields.key)\r\n })\r\n },\r\n _makeObjectFromPrimitive: function(item) {\r\n if ((0, _type.isPrimitive)(item)) {\r\n var key = item;\r\n item = {};\r\n this._dataAccessors.setters.key(item, key)\r\n }\r\n return item\r\n },\r\n _convertToPublicNode: function(node, parent) {\r\n if (!node) {\r\n return null\r\n }\r\n var publicNode = {\r\n text: this._dataAccessors.getters.display(node),\r\n key: node.internalFields.key,\r\n selected: node.internalFields.selected,\r\n expanded: node.internalFields.expanded,\r\n disabled: node.internalFields.disabled,\r\n parent: parent || null,\r\n itemData: node.internalFields.item,\r\n children: [],\r\n items: []\r\n };\r\n if (publicNode.parent) {\r\n publicNode.parent.children.push(publicNode);\r\n publicNode.parent.items.push(publicNode)\r\n }\r\n return publicNode\r\n },\r\n convertToPublicNodes: function(data, parent) {\r\n if (!data.length) {\r\n return []\r\n }\r\n var that = this;\r\n var publicNodes = [];\r\n (0, _iterator.each)(data, function(_, node) {\r\n node = (0, _type.isPrimitive)(node) ? that._getByKey(node) : node;\r\n var publicNode = that._convertToPublicNode(node, parent);\r\n publicNode.children = that.convertToPublicNodes(node.internalFields.childrenKeys, publicNode);\r\n publicNodes.push(publicNode);\r\n node.internalFields.publicNode = publicNode\r\n });\r\n return publicNodes\r\n },\r\n setDataAccessors: function(accessors) {\r\n this._dataAccessors = accessors\r\n },\r\n _getByKey: function(key) {\r\n return this._dataStructure[this.getIndexByKey(key)] || null\r\n },\r\n getParentNode: function(node) {\r\n return this._getByKey(node.internalFields.parentKey)\r\n },\r\n getByKey: function getByKey(data, key) {\r\n if (null === key || void 0 === key) {\r\n return null\r\n }\r\n var result = null;\r\n var that = this;\r\n var getByKey = function(data, key) {\r\n (0, _iterator.each)(data, function(_, element) {\r\n var currentElementKey = element.internalFields && element.internalFields.key || that._dataAccessors.getters.key(element);\r\n if (currentElementKey.toString() === key.toString()) {\r\n result = element;\r\n return false\r\n }\r\n });\r\n return result\r\n };\r\n return getByKey(data, key)\r\n },\r\n getItemsCount: function() {\r\n return this._itemsCount\r\n },\r\n getVisibleItemsCount: function() {\r\n return this._visibleItemsCount\r\n },\r\n updateIndexByKey: function() {\r\n var that = this;\r\n this._indexByKey = {};\r\n (0, _iterator.each)(this._dataStructure, function(index, node) {\r\n that._checkForDuplicateId(node.internalFields.key);\r\n that._indexByKey[node.internalFields.key] = index\r\n })\r\n },\r\n updateChildrenKeys: function() {\r\n this._indexByKey = {};\r\n this.removeChildrenKeys();\r\n this.updateIndexByKey();\r\n this.setChildrenKeys()\r\n },\r\n removeChildrenKeys: function() {\r\n this._indexByKey = {};\r\n (0, _iterator.each)(this._dataStructure, function(index, node) {\r\n node.internalFields.childrenKeys = []\r\n })\r\n },\r\n getIndexByKey: function(key) {\r\n return this._indexByKey[key]\r\n },\r\n createPlainStructure: function(items, rootValue, dataType) {\r\n this._itemsCount = 0;\r\n this._visibleItemsCount = 0;\r\n this._rootValue = rootValue;\r\n this._dataType = dataType;\r\n this._indexByKey = {};\r\n this._convertItemsToNodes(items);\r\n this.setChildrenKeys();\r\n return this._dataStructure\r\n }\r\n});\r\nvar _default = DataConverter;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/splitter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _ui = _interopRequireDefault(require(\"./widget/ui.widget\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../core/dom_adapter\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _pointer = _interopRequireDefault(require(\"../events/pointer\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _index = require(\"../events/utils/index\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar SPLITTER_CLASS = \"dx-splitter\";\r\nvar SPLITTER_WRAPPER_CLASS = \"\".concat(SPLITTER_CLASS, \"-wrapper\");\r\nvar SPLITTER_INACTIVE_CLASS = \"\".concat(SPLITTER_CLASS, \"-inactive\");\r\nvar SPLITTER_BORDER_CLASS = \"\".concat(SPLITTER_CLASS, \"-border\");\r\nvar SPLITTER_INITIAL_STATE_CLASS = \"\".concat(SPLITTER_CLASS, \"-initial\");\r\nvar STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar SPLITTER_MODULE_NAMESPACE = \"dxSplitterResizing\";\r\nvar SPLITTER_POINTER_DOWN_EVENT_NAME = (0, _index.addNamespace)(_pointer.default.down, SPLITTER_MODULE_NAMESPACE);\r\nvar SPLITTER_POINTER_MOVE_EVENT_NAME = (0, _index.addNamespace)(_pointer.default.move, SPLITTER_MODULE_NAMESPACE);\r\nvar SPLITTER_POINTER_UP_EVENT_NAME = (0, _index.addNamespace)(_pointer.default.up, SPLITTER_MODULE_NAMESPACE);\r\nvar SplitterControl = function(_Widget) {\r\n _inheritsLoose(SplitterControl, _Widget);\r\n\r\n function SplitterControl() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = SplitterControl.prototype;\r\n _proto._initMarkup = function() {\r\n _Widget.prototype._initMarkup.call(this);\r\n this._initActions();\r\n this._$container = this.option(\"container\");\r\n this._$leftElement = this.option(\"leftElement\");\r\n this._$rightElement = this.option(\"rightElement\");\r\n this.$element().addClass(SPLITTER_WRAPPER_CLASS).addClass(SPLITTER_INITIAL_STATE_CLASS);\r\n this._$splitterBorder = (0, _renderer.default)(\"
    \").addClass(SPLITTER_BORDER_CLASS).appendTo(this.$element());\r\n this._$splitter = (0, _renderer.default)(\"
    \").addClass(SPLITTER_CLASS).addClass(SPLITTER_INACTIVE_CLASS).appendTo(this._$splitterBorder)\r\n };\r\n _proto._initActions = function() {\r\n this._actions = {\r\n onApplyPanelSize: this._createActionByOption(\"onApplyPanelSize\"),\r\n onActiveStateChanged: this._createActionByOption(\"onActiveStateChanged\")\r\n }\r\n };\r\n _proto._render = function() {\r\n _Widget.prototype._render.call(this);\r\n this._detachEventHandlers();\r\n this._attachEventHandlers()\r\n };\r\n _proto._clean = function() {\r\n this._detachEventHandlers();\r\n _Widget.prototype._clean.call(this)\r\n };\r\n _proto._attachEventHandlers = function() {\r\n var document = _dom_adapter.default.getDocument();\r\n _events_engine.default.on(this._$splitterBorder, SPLITTER_POINTER_DOWN_EVENT_NAME, this._onMouseDownHandler.bind(this));\r\n _events_engine.default.on(document, SPLITTER_POINTER_MOVE_EVENT_NAME, this._onMouseMoveHandler.bind(this));\r\n _events_engine.default.on(document, SPLITTER_POINTER_UP_EVENT_NAME, this._onMouseUpHandler.bind(this))\r\n };\r\n _proto._detachEventHandlers = function() {\r\n var document = _dom_adapter.default.getDocument();\r\n _events_engine.default.off(this._$splitterBorder, SPLITTER_POINTER_DOWN_EVENT_NAME);\r\n _events_engine.default.off(document, SPLITTER_POINTER_MOVE_EVENT_NAME);\r\n _events_engine.default.off(document, SPLITTER_POINTER_UP_EVENT_NAME)\r\n };\r\n _proto._dimensionChanged = function(dimension) {\r\n if (!dimension || \"height\" !== dimension) {\r\n this._containerWidth = this._$container.get(0).clientWidth;\r\n this._setSplitterPositionLeft({\r\n needUpdatePanels: true,\r\n usePercentagePanelsWidth: true\r\n })\r\n }\r\n };\r\n _proto._onMouseDownHandler = function(e) {\r\n e.preventDefault();\r\n this._offsetX = e.pageX - this._$splitterBorder.offset().left <= this._getSplitterBorderWidth() ? e.pageX - this._$splitterBorder.offset().left : 0;\r\n this._containerWidth = this._$container.get(0).clientWidth;\r\n this.$element().removeClass(SPLITTER_INITIAL_STATE_CLASS);\r\n this._toggleActive(true);\r\n this._setSplitterPositionLeft({\r\n needUpdatePanels: true\r\n })\r\n };\r\n _proto._onMouseMoveHandler = function(e) {\r\n if (!this._isSplitterActive) {\r\n return\r\n }\r\n this._setSplitterPositionLeft({\r\n splitterPositionLeft: this._getNewSplitterPositionLeft(e),\r\n needUpdatePanels: true\r\n })\r\n };\r\n _proto._onMouseUpHandler = function() {\r\n if (!this._isSplitterActive) {\r\n return\r\n }\r\n this._leftPanelPercentageWidth = null;\r\n this._toggleActive(false);\r\n this._setSplitterPositionLeft({\r\n needUpdatePanels: true,\r\n usePercentagePanelsWidth: true\r\n })\r\n };\r\n _proto._getNewSplitterPositionLeft = function(e) {\r\n var newSplitterPositionLeft = e.pageX - this._getContainerLeftOffset() - this._offsetX;\r\n newSplitterPositionLeft = Math.max(0 - this._getSplitterOffset(), newSplitterPositionLeft);\r\n newSplitterPositionLeft = Math.min(this._containerWidth - this._getSplitterOffset() - this._getSplitterWidth(), newSplitterPositionLeft);\r\n return newSplitterPositionLeft\r\n };\r\n _proto._getContainerLeftOffset = function() {\r\n var offsetLeft = this._$container.offset().left;\r\n if (window) {\r\n var style = window.getComputedStyle(this._$container.get(0));\r\n var paddingLeft = parseFloat(style.paddingLeft) || 0;\r\n var borderLeft = parseFloat(style.borderLeftWidth) || 0;\r\n offsetLeft += paddingLeft + borderLeft\r\n }\r\n return offsetLeft\r\n };\r\n _proto._getSplitterOffset = function() {\r\n return (this._getSplitterBorderWidth() - this._getSplitterWidth()) / 2\r\n };\r\n _proto._getSplitterWidth = function() {\r\n return this._$splitter.get(0).clientWidth\r\n };\r\n _proto._getSplitterBorderWidth = function() {\r\n return this._$splitterBorder.get(0).clientWidth\r\n };\r\n _proto._getLeftPanelWidth = function() {\r\n return this._$leftElement.get(0).clientWidth\r\n };\r\n _proto._toggleActive = function(isActive) {\r\n this.$element().toggleClass(SPLITTER_INACTIVE_CLASS, !isActive);\r\n this._$splitter.toggleClass(SPLITTER_INACTIVE_CLASS, !isActive);\r\n this._isSplitterActive = isActive;\r\n this._actions.onActiveStateChanged({\r\n isActive: isActive\r\n })\r\n };\r\n _proto.toggleDisabled = function(isDisabled) {\r\n this.$element().toggleClass(STATE_DISABLED_CLASS, isDisabled);\r\n this._$splitter.toggleClass(STATE_DISABLED_CLASS, isDisabled)\r\n };\r\n _proto.isSplitterMoved = function() {\r\n return !this.$element().hasClass(SPLITTER_INITIAL_STATE_CLASS)\r\n };\r\n _proto.disableSplitterCalculation = function(value) {\r\n this._isSplitterCalculationDisabled = value\r\n };\r\n _proto._setSplitterPositionLeft = function() {\r\n var _ref = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\r\n _ref$splitterPosition = _ref.splitterPositionLeft,\r\n splitterPositionLeft = void 0 === _ref$splitterPosition ? null : _ref$splitterPosition,\r\n _ref$needUpdatePanels = _ref.needUpdatePanels,\r\n needUpdatePanels = void 0 === _ref$needUpdatePanels ? false : _ref$needUpdatePanels,\r\n _ref$usePercentagePan = _ref.usePercentagePanelsWidth,\r\n usePercentagePanelsWidth = void 0 === _ref$usePercentagePan ? false : _ref$usePercentagePan;\r\n splitterPositionLeft = splitterPositionLeft || this._getLeftPanelWidth() - this._getSplitterOffset();\r\n var leftPanelWidth = splitterPositionLeft + this._getSplitterOffset();\r\n var rightPanelWidth = this._containerWidth - leftPanelWidth;\r\n if (!this._isSplitterCalculationDisabled) {\r\n this.$element().css(\"left\", splitterPositionLeft)\r\n }\r\n this._leftPanelPercentageWidth = this._leftPanelPercentageWidth || this._convertToPercentage(leftPanelWidth);\r\n var rightPanelPercentageWidth = this._convertToPercentage(this._containerWidth - this._convertToPixels(this._leftPanelPercentageWidth));\r\n if (!needUpdatePanels) {\r\n return\r\n }\r\n this._actions.onApplyPanelSize({\r\n leftPanelWidth: usePercentagePanelsWidth ? \"\".concat(this._leftPanelPercentageWidth, \"%\") : leftPanelWidth,\r\n rightPanelWidth: usePercentagePanelsWidth ? \"\".concat(rightPanelPercentageWidth, \"%\") : rightPanelWidth\r\n })\r\n };\r\n _proto._optionChanged = function(args) {\r\n switch (args.name) {\r\n case \"initialLeftPanelWidth\":\r\n this._leftPanelPercentageWidth = this._convertToPercentage(args.value);\r\n this._dimensionChanged();\r\n break;\r\n case \"leftElement\":\r\n this.repaint();\r\n break;\r\n case \"onActiveStateChanged\":\r\n case \"onApplyPanelSize\":\r\n this._actions[args.name] = this._createActionByOption(args.name);\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto._convertToPercentage = function(pixelWidth) {\r\n return pixelWidth / this._$container.get(0).clientWidth * 100\r\n };\r\n _proto._convertToPixels = function(percentageWidth) {\r\n return percentageWidth / 100 * this._$container.get(0).clientWidth\r\n };\r\n return SplitterControl\r\n}(_ui.default);\r\nexports.default = SplitterControl;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.column_state_mixin.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _position = require(\"../../core/utils/position\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar COLUMN_INDICATORS_CLASS = \"dx-column-indicators\";\r\nvar GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nvar _default = {\r\n _applyColumnState: function(options) {\r\n var _that$component;\r\n var that = this;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var columnAlignment = that._getColumnAlignment(options.column.alignment, rtlEnabled);\r\n var parameters = (0, _extend.extend)(true, {\r\n columnAlignment: columnAlignment\r\n }, options);\r\n var isGroupPanelItem = parameters.rootElement.hasClass(GROUP_PANEL_ITEM_CLASS);\r\n var $indicatorsContainer = that._createIndicatorContainer(parameters, isGroupPanelItem);\r\n var $span = (0, _renderer.default)(\"\").addClass(that._getIndicatorClassName(options.name));\r\n var columnsController = null === (_that$component = that.component) || void 0 === _that$component ? void 0 : _that$component.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 that._renderIndicator(parameters);\r\n $indicatorsContainer[(isGroupPanelItem || !options.showColumnLines) && \"left\" === indicatorAlignment ? \"appendTo\" : \"prependTo\"](options.rootElement);\r\n return $span\r\n },\r\n _getIndicatorClassName: _common.noop,\r\n _getColumnAlignment: function(alignment, rtlEnabled) {\r\n rtlEnabled = rtlEnabled || this.option(\"rtlEnabled\");\r\n return alignment && \"center\" !== alignment ? alignment : (0, _position.getDefaultAlignment)(rtlEnabled)\r\n },\r\n _createIndicatorContainer: function(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 = (0, _renderer.default)(\"
    \").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: function($cell) {\r\n return $cell && $cell.find(\".\" + COLUMN_INDICATORS_CLASS)\r\n },\r\n _getIndicatorElements: function($cell) {\r\n var $indicatorContainer = this._getIndicatorContainer($cell);\r\n return $indicatorContainer && $indicatorContainer.children()\r\n },\r\n _renderIndicator: function(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: function(indicatorName) {\r\n var that = this;\r\n var columns = that.getColumns();\r\n var $cells = that.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 that._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: function($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\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/hierarchical_collection/ui.data_adapter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"../../ui/widget/ui.errors\"));\r\nvar _ui2 = _interopRequireDefault(require(\"../../ui/widget/ui.search_box_mixin\"));\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _query = _interopRequireDefault(require(\"../../data/query\"));\r\nvar _store_helper = _interopRequireDefault(require(\"../../data/store_helper\"));\r\nvar _ui3 = _interopRequireDefault(require(\"./ui.data_converter\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar EXPANDED = \"expanded\";\r\nvar SELECTED = \"selected\";\r\nvar DISABLED = \"disabled\";\r\nvar DataAdapter = _class.default.inherit({\r\n ctor: function(options) {\r\n this.options = {};\r\n (0, _extend.extend)(this.options, this._defaultOptions(), options);\r\n this.options.dataConverter.setDataAccessors(this.options.dataAccessors);\r\n this._selectedNodesKeys = [];\r\n this._expandedNodesKeys = [];\r\n this._dataStructure = [];\r\n this._createInternalDataStructure();\r\n this.getTreeNodes()\r\n },\r\n setOption: function(name, value) {\r\n this.options[name] = value;\r\n if (\"recursiveSelection\" === name) {\r\n this._updateSelection()\r\n }\r\n },\r\n _defaultOptions: function() {\r\n return {\r\n dataAccessors: void 0,\r\n items: [],\r\n multipleSelection: true,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n rootValue: 0,\r\n searchValue: \"\",\r\n dataType: \"tree\",\r\n searchMode: \"contains\",\r\n dataConverter: new _ui3.default,\r\n onNodeChanged: _common.noop,\r\n sort: null\r\n }\r\n },\r\n _createInternalDataStructure: function() {\r\n this._initialDataStructure = this.options.dataConverter.createPlainStructure(this.options.items, this.options.rootValue, this.options.dataType);\r\n this._dataStructure = this.options.searchValue.length ? this.search(this.options.searchValue) : this._initialDataStructure;\r\n this.options.dataConverter._dataStructure = this._dataStructure;\r\n this._updateSelection();\r\n this._updateExpansion()\r\n },\r\n _updateSelection: function() {\r\n if (this.options.recursiveSelection) {\r\n this._setChildrenSelection();\r\n this._setParentSelection()\r\n }\r\n this._selectedNodesKeys = this._updateNodesKeysArray(SELECTED)\r\n },\r\n _updateExpansion: function(key) {\r\n if (this.options.recursiveExpansion) {\r\n key ? this._updateOneBranch(key) : this._setParentExpansion()\r\n }\r\n this._expandedNodesKeys = this._updateNodesKeysArray(EXPANDED)\r\n },\r\n _updateNodesKeysArray: function(property) {\r\n var that = this;\r\n var array = [];\r\n (0, _iterator.each)(that._getDataBySelectionMode(), function(_, node) {\r\n if (!that._isNodeVisible(node)) {\r\n return\r\n }\r\n if (node.internalFields[property]) {\r\n if (property === EXPANDED || that.options.multipleSelection) {\r\n array.push(node.internalFields.key)\r\n } else {\r\n array.length && that.toggleSelection(array[0], false, true);\r\n array = [node.internalFields.key]\r\n }\r\n }\r\n });\r\n return array\r\n },\r\n _getDataBySelectionMode: function() {\r\n return this.options.multipleSelection ? this.getData() : this.getFullData()\r\n },\r\n _isNodeVisible: function(node) {\r\n return false !== node.internalFields.item.visible\r\n },\r\n _getByKey: function(data, key) {\r\n return data === this._dataStructure ? this.options.dataConverter._getByKey(key) : this.options.dataConverter.getByKey(data, key)\r\n },\r\n _setChildrenSelection: function() {\r\n var that = this;\r\n (0, _iterator.each)(this._dataStructure, function(_, node) {\r\n if (!node.internalFields.childrenKeys.length) {\r\n return\r\n }\r\n var isSelected = node.internalFields.selected;\r\n true === isSelected && that._toggleChildrenSelection(node, isSelected)\r\n })\r\n },\r\n _setParentSelection: function() {\r\n var that = this;\r\n (0, _iterator.each)(this._dataStructure, function(_, node) {\r\n var parent = that.options.dataConverter.getParentNode(node);\r\n if (parent && node.internalFields.parentKey !== that.options.rootValue) {\r\n that._iterateParents(node, function(parent) {\r\n var newParentState = that._calculateSelectedState(parent);\r\n that._setFieldState(parent, SELECTED, newParentState)\r\n })\r\n }\r\n })\r\n },\r\n _setParentExpansion: function() {\r\n var that = this;\r\n (0, _iterator.each)(this._dataStructure, function(_, node) {\r\n if (!node.internalFields.expanded) {\r\n return\r\n }\r\n that._updateOneBranch(node.internalFields.key)\r\n })\r\n },\r\n _updateOneBranch: function(key) {\r\n var that = this;\r\n var node = this.getNodeByKey(key);\r\n that._iterateParents(node, function(parent) {\r\n that._setFieldState(parent, EXPANDED, true)\r\n })\r\n },\r\n _iterateChildren: function(node, recursive, callback, processedKeys) {\r\n if (!(0, _type.isFunction)(callback)) {\r\n return\r\n }\r\n var that = this;\r\n var nodeKey = node.internalFields.key;\r\n processedKeys = processedKeys || [];\r\n if (processedKeys.indexOf(nodeKey) === -1) {\r\n processedKeys.push(nodeKey);\r\n (0, _iterator.each)(node.internalFields.childrenKeys, function(_, key) {\r\n var child = that.getNodeByKey(key);\r\n callback(child);\r\n if (child.internalFields.childrenKeys.length && recursive) {\r\n that._iterateChildren(child, recursive, callback, processedKeys)\r\n }\r\n })\r\n }\r\n },\r\n _iterateParents: function(node, callback, processedKeys) {\r\n if (node.internalFields.parentKey === this.options.rootValue || !(0, _type.isFunction)(callback)) {\r\n return\r\n }\r\n processedKeys = processedKeys || [];\r\n var key = node.internalFields.key;\r\n if (processedKeys.indexOf(key) === -1) {\r\n processedKeys.push(key);\r\n var parent = this.options.dataConverter.getParentNode(node);\r\n if (parent) {\r\n callback(parent);\r\n if (parent.internalFields.parentKey !== this.options.rootValue) {\r\n this._iterateParents(parent, callback, processedKeys)\r\n }\r\n }\r\n }\r\n },\r\n _calculateSelectedState: function(node) {\r\n var itemsCount = node.internalFields.childrenKeys.length;\r\n var selectedItemsCount = 0;\r\n var invisibleItemsCount = 0;\r\n var result = false;\r\n for (var i = 0; i <= itemsCount - 1; i++) {\r\n var childNode = this.getNodeByKey(node.internalFields.childrenKeys[i]);\r\n var isChildInvisible = false === childNode.internalFields.item.visible;\r\n var childState = childNode.internalFields.selected;\r\n if (isChildInvisible) {\r\n invisibleItemsCount++;\r\n continue\r\n }\r\n if (childState) {\r\n selectedItemsCount++\r\n } else {\r\n if (void 0 === childState) {\r\n selectedItemsCount += .5\r\n }\r\n }\r\n }\r\n if (selectedItemsCount) {\r\n result = selectedItemsCount === itemsCount - invisibleItemsCount ? true : void 0\r\n }\r\n return result\r\n },\r\n _toggleChildrenSelection: function(node, state) {\r\n var that = this;\r\n this._iterateChildren(node, true, function(child) {\r\n if (that._isNodeVisible(child)) {\r\n that._setFieldState(child, SELECTED, state)\r\n }\r\n })\r\n },\r\n _setFieldState: function(node, field, state) {\r\n if (node.internalFields[field] === state) {\r\n return\r\n }\r\n node.internalFields[field] = state;\r\n if (node.internalFields.publicNode) {\r\n node.internalFields.publicNode[field] = state\r\n }\r\n this.options.dataAccessors.setters[field](node.internalFields.item, state);\r\n this.options.onNodeChanged(node)\r\n },\r\n _markChildren: function(keys) {\r\n var that = this;\r\n (0, _iterator.each)(keys, function(_, key) {\r\n var index = that.getIndexByKey(key);\r\n var node = that.getNodeByKey(key);\r\n that._dataStructure[index] = 0;\r\n node.internalFields.childrenKeys.length && that._markChildren(node.internalFields.childrenKeys)\r\n })\r\n },\r\n _removeNode: function(key) {\r\n var node = this.getNodeByKey(key);\r\n this._dataStructure[this.getIndexByKey(key)] = 0;\r\n this._markChildren(node.internalFields.childrenKeys);\r\n var that = this;\r\n var counter = 0;\r\n var items = (0, _extend.extend)([], this._dataStructure);\r\n (0, _iterator.each)(items, function(index, item) {\r\n if (!item) {\r\n that._dataStructure.splice(index - counter, 1);\r\n counter++\r\n }\r\n })\r\n },\r\n _addNode: function(item) {\r\n var dataConverter = this.options.dataConverter;\r\n var node = dataConverter._convertItemToNode(item, this.options.dataAccessors.getters.parentKey(item));\r\n this._dataStructure = this._dataStructure.concat(node);\r\n this._initialDataStructure = this._initialDataStructure.concat(node);\r\n dataConverter._dataStructure = dataConverter._dataStructure.concat(node)\r\n },\r\n _updateFields: function() {\r\n this.options.dataConverter.updateChildrenKeys();\r\n this._updateSelection();\r\n this._updateExpansion()\r\n },\r\n getSelectedNodesKeys: function() {\r\n return this._selectedNodesKeys\r\n },\r\n getExpandedNodesKeys: function() {\r\n return this._expandedNodesKeys\r\n },\r\n getData: function() {\r\n return this._dataStructure\r\n },\r\n getFullData: function() {\r\n return this._initialDataStructure\r\n },\r\n getNodeByItem: function(item) {\r\n var result = null;\r\n (0, _iterator.each)(this._dataStructure, function(_, node) {\r\n if (node.internalFields.item === item) {\r\n result = node;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n getNodesByItems: function(items) {\r\n var that = this;\r\n var nodes = [];\r\n (0, _iterator.each)(items, function(_, item) {\r\n var node = that.getNodeByItem(item);\r\n node && nodes.push(node)\r\n });\r\n return nodes\r\n },\r\n getNodeByKey: function(key, data) {\r\n return this._getByKey(data || this._getDataBySelectionMode(), key)\r\n },\r\n getTreeNodes: function() {\r\n return this.options.dataConverter.convertToPublicNodes(this.getRootNodes())\r\n },\r\n getItemsCount: function() {\r\n return this.options.dataConverter.getItemsCount()\r\n },\r\n getVisibleItemsCount: function() {\r\n return this.options.dataConverter.getVisibleItemsCount()\r\n },\r\n getPublicNode: function(node) {\r\n return node.internalFields.publicNode\r\n },\r\n getRootNodes: function() {\r\n return this.getChildrenNodes(this.options.rootValue)\r\n },\r\n getChildrenNodes: function(parentKey) {\r\n return (0, _query.default)(this._dataStructure).filter([\"internalFields.parentKey\", parentKey]).toArray()\r\n },\r\n getIndexByKey: function(key) {\r\n return this.options.dataConverter.getIndexByKey(key)\r\n },\r\n addItem: function(item) {\r\n this._addNode(item);\r\n this._updateFields()\r\n },\r\n removeItem: function(key) {\r\n this._removeNode(key);\r\n this._updateFields()\r\n },\r\n toggleSelection: function(key, state, selectRecursive) {\r\n var isSingleModeUnselect = this._isSingleModeUnselect(state);\r\n var node = this._getByKey(selectRecursive || isSingleModeUnselect ? this._initialDataStructure : this._dataStructure, key);\r\n this._setFieldState(node, SELECTED, state);\r\n if (this.options.recursiveSelection && !selectRecursive) {\r\n state ? this._setChildrenSelection() : this._toggleChildrenSelection(node, state);\r\n this._setParentSelection()\r\n }\r\n this._selectedNodesKeys = this._updateNodesKeysArray(SELECTED)\r\n },\r\n _isSingleModeUnselect: function(selectionState) {\r\n return !this.options.multipleSelection && !selectionState\r\n },\r\n toggleNodeDisabledState: function(key, state) {\r\n var node = this.getNodeByKey(key);\r\n this._setFieldState(node, DISABLED, state)\r\n },\r\n toggleSelectAll: function(state) {\r\n if (!(0, _type.isDefined)(state)) {\r\n return\r\n }\r\n var that = this;\r\n var lastSelectedKey = that._selectedNodesKeys[that._selectedNodesKeys.length - 1];\r\n var dataStructure = that._isSingleModeUnselect(state) ? this._initialDataStructure : this._dataStructure;\r\n (0, _iterator.each)(dataStructure, function(index, node) {\r\n if (!that._isNodeVisible(node)) {\r\n return\r\n }\r\n that._setFieldState(node, SELECTED, state)\r\n });\r\n that._selectedNodesKeys = that._updateNodesKeysArray(SELECTED);\r\n if (!state && that.options.selectionRequired) {\r\n that.toggleSelection(lastSelectedKey, true)\r\n }\r\n },\r\n isAllSelected: function() {\r\n if (this.getSelectedNodesKeys().length) {\r\n return this.getSelectedNodesKeys().length === this.getVisibleItemsCount() ? true : void 0\r\n } else {\r\n return false\r\n }\r\n },\r\n toggleExpansion: function(key, state) {\r\n var node = this.getNodeByKey(key);\r\n this._setFieldState(node, EXPANDED, state);\r\n if (state) {\r\n this._updateExpansion(key)\r\n }\r\n this._expandedNodesKeys = this._updateNodesKeysArray(EXPANDED)\r\n },\r\n isFiltered: function(item) {\r\n return !this.options.searchValue.length || !!this._filterDataStructure(this.options.searchValue, [item]).length\r\n },\r\n _createCriteria: function(selector, value, operation) {\r\n var searchFilter = [];\r\n if (!Array.isArray(selector)) {\r\n return [selector, operation, value]\r\n }(0, _iterator.each)(selector, function(i, item) {\r\n searchFilter.push([item, operation, value], \"or\")\r\n });\r\n searchFilter.pop();\r\n return searchFilter\r\n },\r\n _filterDataStructure: function(filterValue, dataStructure) {\r\n var selector = this.options.searchExpr || this.options.dataAccessors.getters.display;\r\n var operation = _ui2.default.getOperationBySearchMode(this.options.searchMode);\r\n var criteria = this._createCriteria(selector, filterValue, operation);\r\n dataStructure = dataStructure || this._initialDataStructure;\r\n return (0, _query.default)(dataStructure).filter(criteria).toArray()\r\n },\r\n search: function(searchValue) {\r\n var that = this;\r\n var matches = this._filterDataStructure(searchValue);\r\n var dataConverter = this.options.dataConverter;\r\n\r\n function lookForParents(matches, index) {\r\n var length = matches.length;\r\n while (index < length) {\r\n var node = matches[index];\r\n if (node.internalFields.parentKey === that.options.rootValue) {\r\n index++;\r\n continue\r\n }\r\n var parent = dataConverter.getParentNode(node);\r\n if (!parent) {\r\n _ui.default.log(\"W1007\", node.internalFields.parentKey, node.internalFields.key);\r\n index++;\r\n continue\r\n }\r\n if (!parent.internalFields.expanded) {\r\n that._setFieldState(parent, EXPANDED, true)\r\n }\r\n if ((0, _array.inArray)(parent, matches) > -1) {\r\n index++;\r\n continue\r\n }\r\n matches.splice(index, 0, parent);\r\n lookForParents(matches, index)\r\n }\r\n }\r\n lookForParents(matches, 0);\r\n if (this.options.sort) {\r\n matches = _store_helper.default.queryByOptions((0, _query.default)(matches), {\r\n sort: this.options.sort\r\n }).toArray()\r\n }\r\n dataConverter._indexByKey = {};\r\n (0, _iterator.each)(matches, function(index, node) {\r\n node.internalFields.childrenKeys = [];\r\n dataConverter._indexByKey[node.internalFields.key] = index\r\n });\r\n dataConverter._dataStructure = matches;\r\n dataConverter.setChildrenKeys();\r\n return dataConverter._dataStructure\r\n }\r\n});\r\nvar _default = DataAdapter;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.grid_view.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.grid_view\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"gridView\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/toolbar.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _common = require(\"../core/utils/common\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _array = require(\"../core/utils/array\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _uiToolbarStrategy = _interopRequireDefault(require(\"./toolbar/ui.toolbar.strategy.action_sheet\"));\r\nvar _uiToolbarStrategy2 = _interopRequireDefault(require(\"./toolbar/ui.toolbar.strategy.drop_down_menu\"));\r\nvar _uiToolbar = _interopRequireDefault(require(\"./toolbar/ui.toolbar.base\"));\r\nvar _child_default_template = require(\"../core/templates/child_default_template\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar STRATEGIES = {\r\n actionSheet: _uiToolbarStrategy.default,\r\n dropDownMenu: _uiToolbarStrategy2.default\r\n};\r\nvar TOOLBAR_AUTO_HIDE_ITEM_CLASS = \"dx-toolbar-item-auto-hide\";\r\nvar TOOLBAR_AUTO_HIDE_TEXT_CLASS = \"dx-toolbar-text-auto-hide\";\r\nvar TOOLBAR_HIDDEN_ITEM = \"dx-toolbar-item-invisible\";\r\nvar Toolbar = _uiToolbar.default.inherit({\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n menuItemTemplate: \"menuItem\",\r\n submenuType: \"dropDownMenu\",\r\n menuContainer: void 0\r\n })\r\n },\r\n _dimensionChanged: function(dimension) {\r\n if (\"height\" === dimension) {\r\n return\r\n }\r\n this._menuStrategy.toggleMenuVisibility(false, true);\r\n this.callBase();\r\n this._menuStrategy.renderMenuItems()\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n actionSheetItem: new _child_default_template.ChildDefaultTemplate(\"item\")\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderMenu()\r\n },\r\n _postProcessRenderItems: function() {\r\n var _this = this;\r\n this._hideOverflowItems();\r\n this._menuStrategy._updateMenuVisibility();\r\n this.callBase();\r\n (0, _common.deferRender)(function() {\r\n _this._menuStrategy.renderMenuItems()\r\n })\r\n },\r\n _renderItem: function(index, item, itemContainer, $after) {\r\n var itemElement = this.callBase(index, item, itemContainer, $after);\r\n if (\"auto\" === item.locateInMenu) {\r\n itemElement.addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS)\r\n }\r\n if (\"dxButton\" === item.widget && \"inMenu\" === item.showText) {\r\n itemElement.toggleClass(TOOLBAR_AUTO_HIDE_TEXT_CLASS)\r\n }\r\n return itemElement\r\n },\r\n _getItemsWidth: function() {\r\n return this._getSummaryItemsWidth([this._$beforeSection, this._$centerSection, this._$afterSection])\r\n },\r\n _hideOverflowItems: function(elementWidth) {\r\n var overflowItems = this.$element().find(\".\" + TOOLBAR_AUTO_HIDE_ITEM_CLASS);\r\n if (!overflowItems.length) {\r\n return\r\n }\r\n elementWidth = elementWidth || this.$element().width();\r\n (0, _renderer.default)(overflowItems).removeClass(TOOLBAR_HIDDEN_ITEM);\r\n var itemsWidth = this._getItemsWidth();\r\n while (overflowItems.length && elementWidth < itemsWidth) {\r\n var $item = overflowItems.eq(-1);\r\n itemsWidth -= $item.outerWidth();\r\n $item.addClass(TOOLBAR_HIDDEN_ITEM);\r\n overflowItems.splice(-1, 1)\r\n }\r\n },\r\n _getMenuItems: function() {\r\n var that = this;\r\n var menuItems = (0, _common.grep)(this.option(\"items\") || [], function(item) {\r\n return that._isMenuItem(item)\r\n });\r\n var $hiddenItems = this._itemContainer().children(\".\" + TOOLBAR_AUTO_HIDE_ITEM_CLASS + \".\" + TOOLBAR_HIDDEN_ITEM).not(\".dx-state-invisible\");\r\n this._restoreItems = this._restoreItems || [];\r\n var overflowItems = [].slice.call($hiddenItems).map(function(item) {\r\n var itemData = that._getItemData(item);\r\n var $itemContainer = (0, _renderer.default)(item).children();\r\n var $itemMarkup = $itemContainer.children();\r\n return (0, _extend.extend)({\r\n menuItemTemplate: function() {\r\n that._restoreItems.push({\r\n container: $itemContainer,\r\n item: $itemMarkup\r\n });\r\n var $container = (0, _renderer.default)(\"
    \").addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS);\r\n return $container.append($itemMarkup)\r\n }\r\n }, itemData)\r\n });\r\n return (0, _array.merge)(overflowItems, menuItems)\r\n },\r\n _getToolbarItems: function() {\r\n var that = this;\r\n return (0, _common.grep)(this.option(\"items\") || [], function(item) {\r\n return !that._isMenuItem(item)\r\n })\r\n },\r\n _renderMenu: function() {\r\n var _this2 = this;\r\n this._renderMenuStrategy();\r\n (0, _common.deferRender)(function() {\r\n _this2._menuStrategy.render()\r\n })\r\n },\r\n _renderMenuStrategy: function() {\r\n var strategyName = this.option(\"submenuType\");\r\n if (this._requireDropDownStrategy()) {\r\n strategyName = \"dropDownMenu\"\r\n }\r\n var strategy = STRATEGIES[strategyName];\r\n if (!(this._menuStrategy && this._menuStrategy.NAME === strategyName)) {\r\n this._menuStrategy = new strategy(this)\r\n }\r\n },\r\n _requireDropDownStrategy: function() {\r\n var items = this.option(\"items\") || [];\r\n var result = false;\r\n (0, _iterator.each)(items, function(index, item) {\r\n if (\"auto\" === item.locateInMenu) {\r\n result = true\r\n } else {\r\n if (\"always\" === item.locateInMenu && item.widget) {\r\n result = true\r\n }\r\n }\r\n });\r\n return result\r\n },\r\n _arrangeItems: function() {\r\n if (this.$element().is(\":hidden\")) {\r\n return\r\n }\r\n this._$centerSection.css({\r\n margin: \"0 auto\",\r\n \"float\": \"none\"\r\n });\r\n (0, _iterator.each)(this._restoreItems || [], function(_, obj) {\r\n (0, _renderer.default)(obj.container).append(obj.item)\r\n });\r\n this._restoreItems = [];\r\n var elementWidth = this.$element().width();\r\n this._hideOverflowItems(elementWidth);\r\n this.callBase(elementWidth)\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n if (this._isMenuItem(item)) {\r\n this._menuStrategy.renderMenuItems()\r\n } else {\r\n if (this._isToolbarItem(item)) {\r\n this.callBase(item, property, value)\r\n } else {\r\n this.callBase(item, property, value);\r\n this._menuStrategy.renderMenuItems()\r\n }\r\n }\r\n if (\"location\" === property) {\r\n this.repaint()\r\n }\r\n },\r\n _isMenuItem: function(itemData) {\r\n return \"menu\" === itemData.location || \"always\" === itemData.locateInMenu\r\n },\r\n _isToolbarItem: function(itemData) {\r\n return void 0 === itemData.location || \"never\" === itemData.locateInMenu\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var value = args.value;\r\n switch (name) {\r\n case \"submenuType\":\r\n this._invalidate();\r\n break;\r\n case \"visible\":\r\n this.callBase.apply(this, arguments);\r\n this._menuStrategy.handleToolbarVisibilityChange(value);\r\n break;\r\n case \"menuItemTemplate\":\r\n this._changeMenuOption(\"itemTemplate\", this._getTemplate(value));\r\n break;\r\n case \"onItemClick\":\r\n this._changeMenuOption(name, value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"menuContainer\":\r\n this._changeMenuOption(\"container\", value);\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _changeMenuOption: function(name, value) {\r\n this._menuStrategy.widgetOption(name, value)\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxToolbar\", Toolbar);\r\nvar _default = Toolbar;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/file_manager.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _ui = _interopRequireDefault(require(\"./file_manager/ui.file_manager\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _ui.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.item_list.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _double_click = require(\"../../events/double_click\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _icon = require(\"../../core/utils/icon\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _custom_store = _interopRequireDefault(require(\"../../data/custom_store\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_FILES_VIEW_CLASS = \"dx-filemanager-files-view\";\r\nvar FILE_MANAGER_ITEM_LIST_ITEM_OPEN_EVENT_NAMESPACE = \"dxFileManager_open\";\r\nvar FileManagerItemListBase = function(_Widget) {\r\n _inheritsLoose(FileManagerItemListBase, _Widget);\r\n\r\n function FileManagerItemListBase() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerItemListBase.prototype;\r\n _proto._init = function() {\r\n this._initActions();\r\n this._lockFocusedItemProcessing = false;\r\n this._focusedItemKey = this.option(\"focusedItemKey\");\r\n _Widget.prototype._init.call(this)\r\n };\r\n _proto._initMarkup = function() {\r\n this.$element().addClass(FILE_MANAGER_FILES_VIEW_CLASS);\r\n var dblClickEventName = (0, _index.addNamespace)(_double_click.name, FILE_MANAGER_ITEM_LIST_ITEM_OPEN_EVENT_NAMESPACE);\r\n _events_engine.default.on(this.$element(), dblClickEventName, this._getItemSelector(), this._onItemDblClick.bind(this));\r\n _Widget.prototype._initMarkup.call(this)\r\n };\r\n _proto._initActions = function() {\r\n this._actions = {\r\n onError: this._createActionByOption(\"onError\"),\r\n onSelectionChanged: this._createActionByOption(\"onSelectionChanged\"),\r\n onFocusedItemChanged: this._createActionByOption(\"onFocusedItemChanged\"),\r\n onSelectedItemOpened: this._createActionByOption(\"onSelectedItemOpened\"),\r\n onContextMenuShowing: this._createActionByOption(\"onContextMenuShowing\")\r\n }\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {\r\n selectionMode: \"single\",\r\n selectedItemKeys: [],\r\n focusedItemKey: void 0,\r\n contextMenu: null,\r\n getItems: null,\r\n getItemThumbnail: null,\r\n onError: null,\r\n onSelectionChanged: null,\r\n onFocusedItemChanged: null,\r\n onSelectedItemOpened: null,\r\n onContextMenuShowing: null\r\n })\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"selectionMode\":\r\n case \"contextMenu\":\r\n case \"getItems\":\r\n case \"getItemThumbnail\":\r\n this.repaint();\r\n break;\r\n case \"selectedItemKeys\":\r\n this._setSelectedItemKeys(args.value);\r\n break;\r\n case \"focusedItemKey\":\r\n if (!this._lockFocusedItemProcessing) {\r\n this._setFocusedItemKey(args.value)\r\n }\r\n break;\r\n case \"onError\":\r\n case \"onSelectedItemOpened\":\r\n case \"onSelectionChanged\":\r\n case \"onFocusedItemChanged\":\r\n case \"onContextMenuShowing\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto._getItems = function() {\r\n var _this = this;\r\n return this._getItemsInternal().done(function(itemInfos) {\r\n _this._itemCount = itemInfos.length;\r\n var parentDirectoryItem = _this._findParentDirectoryItem(itemInfos);\r\n _this._hasParentDirectoryItem = !!parentDirectoryItem;\r\n _this._parentDirectoryItemKey = parentDirectoryItem ? parentDirectoryItem.fileItem.key : null\r\n })\r\n };\r\n _proto._getItemsInternal = function() {\r\n var itemsGetter = this.option(\"getItems\");\r\n var itemsResult = itemsGetter ? itemsGetter() : [];\r\n return (0, _deferred.when)(itemsResult)\r\n };\r\n _proto._raiseOnError = function(error) {\r\n this._actions.onError({\r\n error: error\r\n })\r\n };\r\n _proto._raiseSelectionChanged = function(args) {\r\n this._actions.onSelectionChanged(args)\r\n };\r\n _proto._raiseFocusedItemChanged = function(args) {\r\n this._actions.onFocusedItemChanged(args)\r\n };\r\n _proto._raiseSelectedItemOpened = function(fileItemInfo) {\r\n this._actions.onSelectedItemOpened({\r\n fileItemInfo: fileItemInfo\r\n })\r\n };\r\n _proto._raiseContextMenuShowing = function() {\r\n this._actions.onContextMenuShowing()\r\n };\r\n _proto._tryRaiseSelectionChanged = function(_ref) {\r\n var _this2 = this;\r\n var selectedItemInfos = _ref.selectedItemInfos,\r\n selectedItems = _ref.selectedItems,\r\n selectedItemKeys = _ref.selectedItemKeys,\r\n currentSelectedItemKeys = _ref.currentSelectedItemKeys,\r\n currentDeselectedItemKeys = _ref.currentDeselectedItemKeys;\r\n var parentDirectoryItem = this._findParentDirectoryItem(this.getSelectedItems());\r\n if (parentDirectoryItem) {\r\n this._deselectItem(parentDirectoryItem)\r\n }\r\n var raiseEvent = !this._hasParentDirectoryItem;\r\n raiseEvent = raiseEvent || this._hasValidKeys(currentSelectedItemKeys) || this._hasValidKeys(currentDeselectedItemKeys);\r\n if (raiseEvent) {\r\n selectedItemInfos = this._filterOutItemByPredicate(selectedItemInfos, function(item) {\r\n return item.fileItem.key === _this2._parentDirectoryItemKey\r\n });\r\n selectedItems = this._filterOutParentDirectory(selectedItems);\r\n selectedItemKeys = this._filterOutParentDirectoryKey(selectedItemKeys, true);\r\n currentSelectedItemKeys = this._filterOutParentDirectoryKey(currentSelectedItemKeys, true);\r\n currentDeselectedItemKeys = this._filterOutParentDirectoryKey(currentDeselectedItemKeys, true);\r\n this._raiseSelectionChanged({\r\n selectedItemInfos: selectedItemInfos,\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n currentSelectedItemKeys: currentSelectedItemKeys,\r\n currentDeselectedItemKeys: currentDeselectedItemKeys\r\n })\r\n }\r\n };\r\n _proto._onFocusedItemChanged = function(args) {\r\n if (this._focusedItemKey === args.itemKey) {\r\n return\r\n }\r\n this._focusedItemKey = args.itemKey;\r\n this._lockFocusedItemProcessing = true;\r\n this.option(\"focusedItemKey\", args.itemKey);\r\n this._lockFocusedItemProcessing = false;\r\n this._raiseFocusedItemChanged(args)\r\n };\r\n _proto._getItemThumbnail = function(fileInfo) {\r\n var itemThumbnailGetter = this.option(\"getItemThumbnail\");\r\n return itemThumbnailGetter ? itemThumbnailGetter(fileInfo) : {\r\n thumbnail: \"\"\r\n }\r\n };\r\n _proto._getItemThumbnailContainer = function(fileInfo) {\r\n var _this$_getItemThumbna = this._getItemThumbnail(fileInfo),\r\n thumbnail = _this$_getItemThumbna.thumbnail,\r\n cssClass = _this$_getItemThumbna.cssClass;\r\n var $itemThumbnail = (0, _icon.getImageContainer)(thumbnail).addClass(this._getItemThumbnailCssClass());\r\n if (cssClass) {\r\n $itemThumbnail.addClass(cssClass)\r\n }\r\n return $itemThumbnail\r\n };\r\n _proto._getItemThumbnailCssClass = function() {\r\n return \"\"\r\n };\r\n _proto._getItemSelector = function() {};\r\n _proto._onItemDblClick = function(e) {};\r\n _proto._isDesktop = function() {\r\n return \"desktop\" === _devices.default.real().deviceType\r\n };\r\n _proto._showContextMenu = function(items, element, offset, targetFileItem) {\r\n this._contextMenu.showAt(items, element, offset, targetFileItem)\r\n };\r\n _proto._findParentDirectoryItem = function(itemInfos) {\r\n for (var i = 0; i < itemInfos.length; i++) {\r\n var itemInfo = itemInfos[i];\r\n if (this._isParentDirectoryItem(itemInfo)) {\r\n return itemInfo\r\n }\r\n }\r\n return null\r\n };\r\n _proto._getFileItemsForContextMenu = function(fileItem) {\r\n var result = this.getSelectedItems();\r\n if (this._isParentDirectoryItem(fileItem)) {\r\n result.push(fileItem)\r\n }\r\n return result\r\n };\r\n _proto._isParentDirectoryItem = function(itemInfo) {\r\n return itemInfo.fileItem.isParentFolder\r\n };\r\n _proto._hasValidKeys = function(keys) {\r\n return keys.length > 1 || 1 === keys.length && keys[0] !== this._parentDirectoryItemKey\r\n };\r\n _proto._filterOutParentDirectory = function(array, createNewArray) {\r\n var _this3 = this;\r\n return this._filterOutItemByPredicate(array, function(item) {\r\n return item.key === _this3._parentDirectoryItemKey\r\n }, createNewArray)\r\n };\r\n _proto._filterOutParentDirectoryKey = function(array, createNewArray) {\r\n var _this4 = this;\r\n return this._filterOutItemByPredicate(array, function(key) {\r\n return key === _this4._parentDirectoryItemKey\r\n }, createNewArray)\r\n };\r\n _proto._filterOutItemByPredicate = function(array, predicate, createNewArray) {\r\n var result = array;\r\n var index = -1;\r\n for (var i = 0; i < array.length; i++) {\r\n if (predicate(array[i])) {\r\n index = i;\r\n break\r\n }\r\n }\r\n if (index !== -1) {\r\n if (createNewArray) {\r\n result = _toConsumableArray(array)\r\n }\r\n result.splice(index, 1)\r\n }\r\n return result\r\n };\r\n _proto._isMultipleSelectionMode = function() {\r\n return \"multiple\" === this.option(\"selectionMode\")\r\n };\r\n _proto._deselectItem = function(item) {};\r\n _proto._setSelectedItemKeys = function(itemKeys) {};\r\n _proto._setFocusedItemKey = function(itemKey) {};\r\n _proto._createDataSource = function() {\r\n return {\r\n store: new _custom_store.default({\r\n key: \"fileItem.key\",\r\n load: this._getItems.bind(this)\r\n })\r\n }\r\n };\r\n _proto.getSelectedItems = function() {};\r\n _proto.clearSelection = function() {};\r\n _proto.selectItem = function() {};\r\n _createClass(FileManagerItemListBase, [{\r\n key: \"_contextMenu\",\r\n get: function() {\r\n return this.option(\"contextMenu\")\r\n }\r\n }]);\r\n return FileManagerItemListBase\r\n}(_ui.default);\r\nvar _default = FileManagerItemListBase;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.file_actions_button.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_FILE_ACTIONS_BUTTON = \"dx-filemanager-file-actions-button\";\r\nvar FILE_MANAGER_FILE_ACTIONS_BUTTON_ACTIVATED = \"dx-filemanager-file-actions-button-activated\";\r\nvar ACTIVE_STATE_CLASS = \"dx-state-active\";\r\nvar FileManagerFileActionsButton = function(_Widget) {\r\n _inheritsLoose(FileManagerFileActionsButton, _Widget);\r\n\r\n function FileManagerFileActionsButton() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerFileActionsButton.prototype;\r\n _proto._initMarkup = function() {\r\n var _this = this;\r\n this._createClickAction();\r\n var $button = (0, _renderer.default)(\"
    \");\r\n this.$element().append($button).addClass(FILE_MANAGER_FILE_ACTIONS_BUTTON);\r\n this._button = this._createComponent($button, _button.default, {\r\n icon: \"overflow\",\r\n stylingMode: \"text\",\r\n onClick: function(e) {\r\n return _this._raiseClick(e)\r\n }\r\n });\r\n _Widget.prototype._initMarkup.call(this)\r\n };\r\n _proto._createClickAction = function() {\r\n this._clickAction = this._createActionByOption(\"onClick\")\r\n };\r\n _proto._raiseClick = function(e) {\r\n this._clickAction(e)\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {\r\n cssClass: \"\",\r\n onClick: null\r\n })\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"cssClass\":\r\n this.repaint();\r\n break;\r\n case \"onClick\":\r\n this._createClickAction();\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto.setActive = function(active) {\r\n var _this2 = this;\r\n this.$element().toggleClass(FILE_MANAGER_FILE_ACTIONS_BUTTON_ACTIVATED, active);\r\n setTimeout(function() {\r\n return _this2._button.$element().toggleClass(ACTIVE_STATE_CLASS, active)\r\n })\r\n };\r\n return FileManagerFileActionsButton\r\n}(_ui.default);\r\nvar _default = FileManagerFileActionsButton;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/notify.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _action = _interopRequireDefault(require(\"../core/action\"));\r\nvar _view_port = require(\"../core/utils/view_port\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _toast = _interopRequireDefault(require(\"./toast\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar $notify = null;\r\nvar notify = function(message, type, displayTime) {\r\n var options = (0, _type.isPlainObject)(message) ? message : {\r\n message: message\r\n };\r\n var userHiddenAction = options.onHidden;\r\n (0, _extend.extend)(options, {\r\n type: type,\r\n displayTime: displayTime,\r\n onHidden: function(args) {\r\n (0, _renderer.default)(args.element).remove();\r\n new _action.default(userHiddenAction, {\r\n context: args.model\r\n }).execute(arguments)\r\n }\r\n });\r\n $notify = (0, _renderer.default)(\"
    \").appendTo((0, _view_port.value)());\r\n new _toast.default($notify, options).show()\r\n};\r\nvar _default = notify;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (localization/language_codes.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getLanguageId = getLanguageId;\r\nvar _core = _interopRequireDefault(require(\"./core\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar LANGUAGE_CODES = {\r\n ar: 1,\r\n bg: 2,\r\n ca: 3,\r\n \"zh-Hans\": 4,\r\n cs: 5,\r\n da: 6,\r\n de: 7,\r\n el: 8,\r\n en: 9,\r\n es: 10,\r\n fi: 11,\r\n fr: 12,\r\n he: 13,\r\n hu: 14,\r\n is: 15,\r\n it: 16,\r\n ja: 17,\r\n ko: 18,\r\n nl: 19,\r\n no: 20,\r\n pl: 21,\r\n pt: 22,\r\n rm: 23,\r\n ro: 24,\r\n ru: 25,\r\n hr: 26,\r\n sk: 27,\r\n sq: 28,\r\n sv: 29,\r\n th: 30,\r\n tr: 31,\r\n ur: 32,\r\n id: 33,\r\n uk: 34,\r\n be: 35,\r\n sl: 36,\r\n et: 37,\r\n lv: 38,\r\n lt: 39,\r\n tg: 40,\r\n fa: 41,\r\n vi: 42,\r\n hy: 43,\r\n az: 44,\r\n eu: 45,\r\n hsb: 46,\r\n mk: 47,\r\n tn: 50,\r\n xh: 52,\r\n zu: 53,\r\n af: 54,\r\n ka: 55,\r\n fo: 56,\r\n hi: 57,\r\n mt: 58,\r\n se: 59,\r\n ga: 60,\r\n ms: 62,\r\n kk: 63,\r\n ky: 64,\r\n sw: 65,\r\n tk: 66,\r\n uz: 67,\r\n tt: 68,\r\n bn: 69,\r\n pa: 70,\r\n gu: 71,\r\n or: 72,\r\n ta: 73,\r\n te: 74,\r\n kn: 75,\r\n ml: 76,\r\n as: 77,\r\n mr: 78,\r\n sa: 79,\r\n mn: 80,\r\n bo: 81,\r\n cy: 82,\r\n km: 83,\r\n lo: 84,\r\n gl: 86,\r\n kok: 87,\r\n syr: 90,\r\n si: 91,\r\n iu: 93,\r\n am: 94,\r\n tzm: 95,\r\n ne: 97,\r\n fy: 98,\r\n ps: 99,\r\n fil: 100,\r\n dv: 101,\r\n ha: 104,\r\n yo: 106,\r\n quz: 107,\r\n nso: 108,\r\n ba: 109,\r\n lb: 110,\r\n kl: 111,\r\n ig: 112,\r\n ii: 120,\r\n arn: 122,\r\n moh: 124,\r\n br: 126,\r\n ug: 128,\r\n mi: 129,\r\n oc: 130,\r\n co: 131,\r\n gsw: 132,\r\n sah: 133,\r\n qut: 134,\r\n rw: 135,\r\n wo: 136,\r\n prs: 140,\r\n gd: 145,\r\n \"ar-SA\": 1025,\r\n \"bg-BG\": 1026,\r\n \"ca-ES\": 1027,\r\n \"zh-TW\": 1028,\r\n \"cs-CZ\": 1029,\r\n \"da-DK\": 1030,\r\n \"de-DE\": 1031,\r\n \"el-GR\": 1032,\r\n \"en-US\": 1033,\r\n \"fi-FI\": 1035,\r\n \"fr-FR\": 1036,\r\n \"he-IL\": 1037,\r\n \"hu-HU\": 1038,\r\n \"is-IS\": 1039,\r\n \"it-IT\": 1040,\r\n \"ja-JP\": 1041,\r\n \"ko-KR\": 1042,\r\n \"nl-NL\": 1043,\r\n \"nb-NO\": 1044,\r\n \"pl-PL\": 1045,\r\n \"pt-BR\": 1046,\r\n \"rm-CH\": 1047,\r\n \"ro-RO\": 1048,\r\n \"ru-RU\": 1049,\r\n \"hr-HR\": 1050,\r\n \"sk-SK\": 1051,\r\n \"sq-AL\": 1052,\r\n \"sv-SE\": 1053,\r\n \"th-TH\": 1054,\r\n \"tr-TR\": 1055,\r\n \"ur-PK\": 1056,\r\n \"id-ID\": 1057,\r\n \"uk-UA\": 1058,\r\n \"be-BY\": 1059,\r\n \"sl-SI\": 1060,\r\n \"et-EE\": 1061,\r\n \"lv-LV\": 1062,\r\n \"lt-LT\": 1063,\r\n \"tg-Cyrl-TJ\": 1064,\r\n \"fa-IR\": 1065,\r\n \"vi-VN\": 1066,\r\n \"hy-AM\": 1067,\r\n \"az-Latn-AZ\": 1068,\r\n \"eu-ES\": 1069,\r\n \"hsb-DE\": 1070,\r\n \"mk-MK\": 1071,\r\n \"tn-ZA\": 1074,\r\n \"xh-ZA\": 1076,\r\n \"zu-ZA\": 1077,\r\n \"af-ZA\": 1078,\r\n \"ka-GE\": 1079,\r\n \"fo-FO\": 1080,\r\n \"hi-IN\": 1081,\r\n \"mt-MT\": 1082,\r\n \"se-NO\": 1083,\r\n \"ms-MY\": 1086,\r\n \"kk-KZ\": 1087,\r\n \"ky-KG\": 1088,\r\n \"sw-KE\": 1089,\r\n \"tk-TM\": 1090,\r\n \"uz-Latn-UZ\": 1091,\r\n \"tt-RU\": 1092,\r\n \"bn-IN\": 1093,\r\n \"pa-IN\": 1094,\r\n \"gu-IN\": 1095,\r\n \"or-IN\": 1096,\r\n \"ta-IN\": 1097,\r\n \"te-IN\": 1098,\r\n \"kn-IN\": 1099,\r\n \"ml-IN\": 1100,\r\n \"as-IN\": 1101,\r\n \"mr-IN\": 1102,\r\n \"sa-IN\": 1103,\r\n \"mn-MN\": 1104,\r\n \"bo-CN\": 1105,\r\n \"cy-GB\": 1106,\r\n \"km-KH\": 1107,\r\n \"lo-LA\": 1108,\r\n \"gl-ES\": 1110,\r\n \"kok-IN\": 1111,\r\n \"syr-SY\": 1114,\r\n \"si-LK\": 1115,\r\n \"iu-Cans-CA\": 1117,\r\n \"am-ET\": 1118,\r\n \"ne-NP\": 1121,\r\n \"fy-NL\": 1122,\r\n \"ps-AF\": 1123,\r\n \"fil-PH\": 1124,\r\n \"dv-MV\": 1125,\r\n \"ha-Latn-NG\": 1128,\r\n \"yo-NG\": 1130,\r\n \"quz-BO\": 1131,\r\n \"nso-ZA\": 1132,\r\n \"ba-RU\": 1133,\r\n \"lb-LU\": 1134,\r\n \"kl-GL\": 1135,\r\n \"ig-NG\": 1136,\r\n \"ii-CN\": 1144,\r\n \"arn-CL\": 1146,\r\n \"moh-CA\": 1148,\r\n \"br-FR\": 1150,\r\n \"ug-CN\": 1152,\r\n \"mi-NZ\": 1153,\r\n \"oc-FR\": 1154,\r\n \"co-FR\": 1155,\r\n \"gsw-FR\": 1156,\r\n \"sah-RU\": 1157,\r\n \"qut-GT\": 1158,\r\n \"rw-RW\": 1159,\r\n \"wo-SN\": 1160,\r\n \"prs-AF\": 1164,\r\n \"gd-GB\": 1169,\r\n \"ar-IQ\": 2049,\r\n \"zh-CN\": 2052,\r\n \"de-CH\": 2055,\r\n \"en-GB\": 2057,\r\n \"es-MX\": 2058,\r\n \"fr-BE\": 2060,\r\n \"it-CH\": 2064,\r\n \"nl-BE\": 2067,\r\n \"nn-NO\": 2068,\r\n \"pt-PT\": 2070,\r\n \"sr-Latn-CS\": 2074,\r\n \"sv-FI\": 2077,\r\n \"az-Cyrl-AZ\": 2092,\r\n \"dsb-DE\": 2094,\r\n \"se-SE\": 2107,\r\n \"ga-IE\": 2108,\r\n \"ms-BN\": 2110,\r\n \"uz-Cyrl-UZ\": 2115,\r\n \"bn-BD\": 2117,\r\n \"mn-Mong-CN\": 2128,\r\n \"iu-Latn-CA\": 2141,\r\n \"tzm-Latn-DZ\": 2143,\r\n \"quz-EC\": 2155,\r\n \"ar-EG\": 3073,\r\n \"zh-HK\": 3076,\r\n \"de-AT\": 3079,\r\n \"en-AU\": 3081,\r\n \"es-ES\": 3082,\r\n \"fr-CA\": 3084,\r\n \"sr-Cyrl-CS\": 3098,\r\n \"se-FI\": 3131,\r\n \"quz-PE\": 3179,\r\n \"ar-LY\": 4097,\r\n \"zh-SG\": 4100,\r\n \"de-LU\": 4103,\r\n \"en-CA\": 4105,\r\n \"es-GT\": 4106,\r\n \"fr-CH\": 4108,\r\n \"hr-BA\": 4122,\r\n \"smj-NO\": 4155,\r\n \"ar-DZ\": 5121,\r\n \"zh-MO\": 5124,\r\n \"de-LI\": 5127,\r\n \"en-NZ\": 5129,\r\n \"es-CR\": 5130,\r\n \"fr-LU\": 5132,\r\n \"bs-Latn-BA\": 5146,\r\n \"smj-SE\": 5179,\r\n \"ar-MA\": 6145,\r\n \"en-IE\": 6153,\r\n \"es-PA\": 6154,\r\n \"fr-MC\": 6156,\r\n \"sr-Latn-BA\": 6170,\r\n \"sma-NO\": 6203,\r\n \"ar-TN\": 7169,\r\n \"en-ZA\": 7177,\r\n \"es-DO\": 7178,\r\n \"sr-Cyrl-BA\": 7194,\r\n \"sma-SE\": 7227,\r\n \"ar-OM\": 8193,\r\n \"en-JM\": 8201,\r\n \"es-VE\": 8202,\r\n \"bs-Cyrl-BA\": 8218,\r\n \"sms-FI\": 8251,\r\n \"ar-YE\": 9217,\r\n \"en-029\": 9225,\r\n \"es-CO\": 9226,\r\n \"sr-Latn-RS\": 9242,\r\n \"smn-FI\": 9275,\r\n \"ar-SY\": 10241,\r\n \"en-BZ\": 10249,\r\n \"es-PE\": 10250,\r\n \"sr-Cyrl-RS\": 10266,\r\n \"ar-JO\": 11265,\r\n \"en-TT\": 11273,\r\n \"es-AR\": 11274,\r\n \"sr-Latn-ME\": 11290,\r\n \"ar-LB\": 12289,\r\n \"en-ZW\": 12297,\r\n \"es-EC\": 12298,\r\n \"sr-Cyrl-ME\": 12314,\r\n \"ar-KW\": 13313,\r\n \"en-PH\": 13321,\r\n \"es-CL\": 13322,\r\n \"ar-AE\": 14337,\r\n \"es-UY\": 14346,\r\n \"ar-BH\": 15361,\r\n \"es-PY\": 15370,\r\n \"ar-QA\": 16385,\r\n \"en-IN\": 16393,\r\n \"es-BO\": 16394,\r\n \"en-MY\": 17417,\r\n \"es-SV\": 17418,\r\n \"en-SG\": 18441,\r\n \"es-HN\": 18442,\r\n \"es-NI\": 19466,\r\n \"es-PR\": 20490,\r\n \"es-US\": 21514,\r\n \"bs-Cyrl\": 25626,\r\n \"bs-Latn\": 26650,\r\n \"sr-Cyrl\": 27674,\r\n \"sr-Latn\": 28698,\r\n smn: 28731,\r\n \"az-Cyrl\": 29740,\r\n sms: 29755,\r\n zh: 30724,\r\n nn: 30740,\r\n bs: 30746,\r\n \"az-Latn\": 30764,\r\n sma: 30779,\r\n \"uz-Cyrl\": 30787,\r\n \"mn-Cyrl\": 30800,\r\n \"iu-Cans\": 30813,\r\n \"zh-Hant\": 31748,\r\n nb: 31764,\r\n sr: 31770,\r\n \"tg-Cyrl\": 31784,\r\n dsb: 31790,\r\n smj: 31803,\r\n \"uz-Latn\": 31811,\r\n \"mn-Mong\": 31824,\r\n \"iu-Latn\": 31837,\r\n \"tzm-Latn\": 31839,\r\n \"ha-Latn\": 31848\r\n};\r\n\r\nfunction getLanguageId() {\r\n return LANGUAGE_CODES[_core.default.locale()]\r\n}\r\n","/**\r\n * DevExtreme (ui/drawer/ui.drawer.rendering.strategy.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiDrawer = require(\"./ui.drawer.animation\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DrawerStrategy = function() {\r\n function DrawerStrategy(drawer) {\r\n this._drawer = drawer\r\n }\r\n var _proto = DrawerStrategy.prototype;\r\n _proto.getDrawerInstance = function() {\r\n return this._drawer\r\n };\r\n _proto.renderPanelContent = function(whenPanelContentRendered) {\r\n var drawer = this.getDrawerInstance();\r\n var template = drawer._getTemplate(drawer.option(\"template\"));\r\n if (template) {\r\n template.render({\r\n container: drawer.content(),\r\n onRendered: function() {\r\n whenPanelContentRendered.resolve()\r\n }\r\n })\r\n }\r\n };\r\n _proto.renderPosition = function(changePositionUsingFxAnimation, animationDuration) {\r\n var whenPositionAnimationCompleted = new _deferred.Deferred;\r\n var whenShaderAnimationCompleted = new _deferred.Deferred;\r\n var drawer = this.getDrawerInstance();\r\n if (changePositionUsingFxAnimation) {\r\n _deferred.when.apply(_renderer.default, [whenPositionAnimationCompleted, whenShaderAnimationCompleted]).done(function() {\r\n drawer._animationCompleteHandler()\r\n })\r\n }\r\n this._internalRenderPosition(changePositionUsingFxAnimation, whenPositionAnimationCompleted);\r\n if (!changePositionUsingFxAnimation) {\r\n drawer.resizeViewContent()\r\n }\r\n this.renderShaderVisibility(changePositionUsingFxAnimation, animationDuration, whenShaderAnimationCompleted)\r\n };\r\n _proto._getPanelOffset = function(isDrawerOpened) {\r\n var drawer = this.getDrawerInstance();\r\n var size = drawer.isHorizontalDirection() ? drawer.getRealPanelWidth() : drawer.getRealPanelHeight();\r\n if (isDrawerOpened) {\r\n return -(size - drawer.getMaxSize())\r\n } else {\r\n return -(size - drawer.getMinSize())\r\n }\r\n };\r\n _proto._getPanelSize = function(isDrawerOpened) {\r\n return isDrawerOpened ? this.getDrawerInstance().getMaxSize() : this.getDrawerInstance().getMinSize()\r\n };\r\n _proto.renderShaderVisibility = function(changePositionUsingFxAnimation, duration, whenAnimationCompleted) {\r\n var _this = this;\r\n var drawer = this.getDrawerInstance();\r\n var isShaderVisible = drawer.option(\"opened\");\r\n var fadeConfig = isShaderVisible ? {\r\n from: 0,\r\n to: 1\r\n } : {\r\n from: 1,\r\n to: 0\r\n };\r\n if (changePositionUsingFxAnimation) {\r\n _uiDrawer.animation.fade((0, _renderer.default)(drawer._$shader), fadeConfig, duration, function() {\r\n _this._drawer._toggleShaderVisibility(isShaderVisible);\r\n whenAnimationCompleted.resolve()\r\n })\r\n } else {\r\n drawer._toggleShaderVisibility(isShaderVisible);\r\n drawer._$shader.css(\"opacity\", fadeConfig.to)\r\n }\r\n };\r\n _proto.getPanelContent = function() {\r\n return (0, _renderer.default)(this.getDrawerInstance().content())\r\n };\r\n _proto.setPanelSize = function(calcFromRealPanelSize) {\r\n this.refreshPanelElementSize(calcFromRealPanelSize)\r\n };\r\n _proto.refreshPanelElementSize = function(calcFromRealPanelSize) {\r\n var drawer = this.getDrawerInstance();\r\n var panelSize = this._getPanelSize(drawer.option(\"opened\"));\r\n if (drawer.isHorizontalDirection()) {\r\n (0, _renderer.default)(drawer.content()).width(calcFromRealPanelSize ? drawer.getRealPanelWidth() : panelSize)\r\n } else {\r\n (0, _renderer.default)(drawer.content()).height(calcFromRealPanelSize ? drawer.getRealPanelHeight() : panelSize)\r\n }\r\n };\r\n _proto.isViewContentFirst = function() {\r\n return false\r\n };\r\n _proto.onPanelContentRendered = function() {};\r\n return DrawerStrategy\r\n}();\r\nvar _default = DrawerStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","/**\r\n * DevExtreme (ui/menu.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _ui = _interopRequireDefault(require(\"./menu/ui.menu\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _ui.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.virtual_scrolling.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiData_grid2 = _interopRequireDefault(require(\"./ui.data_grid.data_source_adapter\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.virtual_scrolling\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"virtualScrolling\", _uiGrid_core.default);\r\n_uiData_grid2.default.extend(_uiGrid_core.default.extenders.dataSourceAdapter);\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.sorting.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.sorting\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"sorting\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.header_panel.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _toolbar = _interopRequireDefault(require(\"../toolbar\"));\r\nvar _uiGrid_core = require(\"./ui.grid_core.columns_view\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _visibility_change = require(\"../../events/visibility_change\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nrequire(\"../drop_down_menu\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar TOOLBAR_BUTTON_CLASS = \"toolbar-button\";\r\nvar TOOLBAR_ARIA_LABEL = \"-ariaToolbar\";\r\nvar HeaderPanel = _uiGrid_core.ColumnsView.inherit({\r\n _getToolbarItems: function() {\r\n return []\r\n },\r\n _getButtonContainer: function() {\r\n return (0, _renderer.default)(\"
    \").addClass(this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS))\r\n },\r\n _getToolbarButtonClass: function(specificClass) {\r\n var secondClass = specificClass ? \" \" + specificClass : \"\";\r\n return this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS) + secondClass\r\n },\r\n _getToolbarOptions: function() {\r\n var options = {\r\n toolbarOptions: {\r\n items: this._getToolbarItems(),\r\n onItemRendered: function(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 this.executeAction(\"onToolbarPreparing\", options);\r\n if (options.toolbarOptions && !(0, _type.isDefined)(options.toolbarOptions.visible)) {\r\n var toolbarItems = options.toolbarOptions.items;\r\n options.toolbarOptions.visible = !!(toolbarItems && toolbarItems.length)\r\n }\r\n return options.toolbarOptions\r\n },\r\n _renderCore: function() {\r\n if (!this._toolbar) {\r\n var $headerPanel = this.element();\r\n $headerPanel.addClass(this.addWidgetPrefix(HEADER_PANEL_CLASS));\r\n var label = _message.default.format(this.component.NAME + TOOLBAR_ARIA_LABEL);\r\n var $toolbar = (0, _renderer.default)(\"
    \").attr(\"aria-label\", label).appendTo($headerPanel);\r\n this._toolbar = this._createComponent($toolbar, _toolbar.default, this._toolbarOptions)\r\n } else {\r\n this._toolbar.option(this._toolbarOptions)\r\n }\r\n },\r\n _columnOptionChanged: _common.noop,\r\n _handleDataChanged: function() {\r\n if (this._requireReady) {\r\n this.render()\r\n }\r\n },\r\n init: function() {\r\n this.callBase();\r\n this.createAction(\"onToolbarPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n render: function() {\r\n this._toolbarOptions = this._getToolbarOptions();\r\n this.callBase.apply(this, arguments)\r\n },\r\n setToolbarItemDisabled: function(name, optionValue) {\r\n var toolbarInstance = this._toolbar;\r\n if (toolbarInstance) {\r\n var items = toolbarInstance.option(\"items\") || [];\r\n var itemIndex = items.indexOf(items.filter(function(item) {\r\n return item.name === name\r\n })[0]);\r\n if (itemIndex >= 0) {\r\n var itemOptionPrefix = \"items[\" + itemIndex + \"]\";\r\n if (toolbarInstance.option(itemOptionPrefix + \".options\")) {\r\n toolbarInstance.option(itemOptionPrefix + \".options.disabled\", optionValue)\r\n } else {\r\n toolbarInstance.option(itemOptionPrefix + \".disabled\", optionValue)\r\n }\r\n }\r\n }\r\n },\r\n updateToolbarDimensions: function() {\r\n if (this._toolbar) {\r\n (0, _visibility_change.triggerResizeEvent)(this.getHeaderPanel())\r\n }\r\n },\r\n getHeaderPanel: function() {\r\n return this.element()\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n optionChanged: function(args) {\r\n if (\"onToolbarPreparing\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n }\r\n this.callBase(args)\r\n },\r\n isVisible: function() {\r\n return this._toolbarOptions && this._toolbarOptions.visible\r\n },\r\n allowDragging: _common.noop\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {}\r\n },\r\n views: {\r\n headerPanel: HeaderPanel\r\n },\r\n extenders: {\r\n controllers: {\r\n resizing: {\r\n _updateDimensionsCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"headerPanel\").updateToolbarDimensions()\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","import { store, itiHttpService, itiMessageService, itiSignalRService, ItiString } from '@/iti-core-vue';\nimport { Action, getModule, Module, Mutation, VuexModule } from 'vuex-module-decorators';\nimport { API } from '@/shared/api';\nimport { CollaborativeArea } from '@/shared/dtos/collaborative-area';\nimport { CollaborativeAreaType } from '@/shared/dtos/collaborative-area-type';\nimport { CollaborativeAreaMember } from '@/shared/dtos/collaborative-area-member';\nimport { Rol } from '@/shared/dtos/rol';\n\n@Module({\n namespaced: true,\n name: 'CollaborativeAreaModule',\n store,\n dynamic: true,\n})\nclass CollaborativeAreaModule extends VuexModule {\n\n public collaborativeAreasInfo: CollaborativeArea[] = [];\n public nameUsersByCollaborativeAreas: CollaborativeArea[] = [];\n public selectedCollaborativeArea: CollaborativeArea = new CollaborativeArea();\n public collaborativeAreaTypes: CollaborativeAreaType[] = [];\n public usersAndRolesArea: CollaborativeAreaMember[] = [];\n public collaborativeAreaMember: CollaborativeAreaMember = new CollaborativeAreaMember();\n public myId: number = 0;\n public areaEditMode: boolean = false;\n\n @Mutation\n public newCollaborativeArea() {\n this.selectedCollaborativeArea = new CollaborativeArea();\n this.selectedCollaborativeArea.users = [];\n }\n\n @Action\n public async saveCollaborativeArea(collaborativeArea: CollaborativeArea) {\n let res = null;\n if (collaborativeArea.id == null) {\n collaborativeArea.id = 0;\n collaborativeArea.active = true;\n res = await itiHttpService.post(API.collaborativeArea + \"/Create_CollaborativeArea\", collaborativeArea.toJson());\n } else {\n const collaborativeAreaDB: CollaborativeArea = new CollaborativeArea(collaborativeArea);\n res = await itiHttpService.put(API.collaborativeArea + \"/Put\", collaborativeAreaDB.toJson());\n }\n this.context.commit('setCollaborativeAreaById', res);\n }\n\n @Action\n public async asociateUserToCollaborativeArea() {\n await itiHttpService.post(API.collaborativeArea + \"/AsociateUserToCollaborativeArea?userId=\" + this.collaborativeAreaMember.userId + \"&collaborativeAreaId=\" + this.collaborativeAreaMember.ambitId + \"&roleId=\" + this.collaborativeAreaMember.roleId, \"\");\n }\n\n @Action\n public async disassociateUserToCollaborativeArea() {\n await itiHttpService.post(API.collaborativeArea + \"/DisassociateUserToCollaborativeArea?userId=\" + this.collaborativeAreaMember.userId + \"&collaborativeAreaId=\" + this.collaborativeAreaMember.ambitId, \"\");\n }\n\n @Action\n public async changeStateCollaborativeArea(state: boolean) {\n this.selectedCollaborativeArea.active = state;\n await itiHttpService.post(API.collaborativeArea + \"/ChangeStateCollaborativeArea\", this.selectedCollaborativeArea);\n }\n\n @Mutation\n public setMyId(myId: number) {\n this.myId = myId;\n }\n\n @Action\n public async fetchId() {\n await itiHttpService.get(API.chat + '/id', null, false)\n .catch((error) => { itiMessageService.toast(error, itiMessageService.TypeError); })\n .then((value) => this.context.commit('setMyId', Number.parseInt(value)));\n }\n\n @Mutation\n public setCollaborativeAreaById(collaborativeArea: CollaborativeArea) {\n this.selectedCollaborativeArea = collaborativeArea;\n }\n\n @Action\n public async getCollaborativeAreaById(ambitId: number) {\n const res = await itiHttpService.get(API.collaborativeArea + '/(' + ambitId + ')');\n this.context.commit('setCollaborativeAreaById', res);\n }\n\n @Mutation\n public setCollaborativeAreasInfo(collaborativeAreasInfo: CollaborativeArea[]) {\n this.collaborativeAreasInfo = collaborativeAreasInfo;\n }\n\n @Action\n public async getCollaborativeAreasInfo() {\n const res = await itiHttpService.get(API.collaborativeArea + '/GetCollaborativeAreasInfo');\n this.context.commit('setCollaborativeAreasInfo', res);\n }\n\n @Action\n public async getActiveCollaborativeAreasInfoByType(type: number) {\n const res = await itiHttpService.get(API.collaborativeArea + '/GetActiveCollaborativeAreasInfoByType?typeId=' + type);\n this.context.commit('setCollaborativeAreasInfo', res);\n }\n\n @Action\n public async getInactiveCollaborativeAreasInfoByType(type: number) {\n const res = await itiHttpService.get(API.collaborativeArea + '/GetInactiveCollaborativeAreasInfoByType?typeId=' + type);\n this.context.commit('setCollaborativeAreasInfo', res);\n }\n\n @Mutation\n public setNameUsersByCollaborativesAreas(nameUsersByCollaborativeAreas: CollaborativeArea[]) {\n this.nameUsersByCollaborativeAreas = nameUsersByCollaborativeAreas;\n }\n\n @Action\n public async getNameUsersByCollaborativesAreas() {\n const res = await itiHttpService.get(API.collaborativeArea + '/GetNameUsersByCollaborativeAreas');\n this.context.commit('setNameUsersByCollaborativesAreas', res);\n }\n\n @Mutation\n public setCollaborativeAreaTypes() {\n this.collaborativeAreaTypes = [];\n this.collaborativeAreaTypes[0] = new CollaborativeAreaType(0, \"PublicArea\");\n this.collaborativeAreaTypes[1] = new CollaborativeAreaType(1, \"WorkGroups\");\n //this.collaborativeAreaTypes[2] = new CollaborativeAreaType(2, \"PrivateArea\"); \n }\n\n @Mutation\n public setUsersAndRolesByAmbitId(usersAndRoles: CollaborativeAreaMember[]) {\n this.usersAndRolesArea = usersAndRoles;\n }\n\n @Action\n public async getUsersAndRolesByAmbitId(ambitId: number) {\n const res = await itiHttpService.get(API.collaborativeArea + '/GetUsersAndRolesByAmbitId?ambitId=' + ambitId);\n this.context.commit('setUsersAndRolesByAmbitId', res);\n }\n\n // @Action\n // public async getUsersAndRolesByAmbitIdExceptPublicArea(ambitId: number) { \n // const res = await itiHttpService.get(API.collaborativeArea + '/GetUsersAndRolesByAmbitIdExceptPublicArea?ambitId=' + ambitId);\n // this.context.commit('setUsersAndRolesByAmbitId', res);\n // }\n\n @Mutation\n public setAreaEditMode(editar: boolean) {\n this.areaEditMode = editar;\n }\n\n @Mutation\n public setNewCollaborativeAreaMember() {\n this.collaborativeAreaMember = new CollaborativeAreaMember();\n }\n\n}\nexport default getModule(CollaborativeAreaModule);\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.filter_row.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.filter_row\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"filterRow\", _uiGrid_core.default);\r\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return apply(\n $toLocaleString,\n TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n arraySlice(arguments)\n );\n}, FORCED);\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.keyboard_navigation.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _selectors = require(\"../widget/selectors\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar accessibility = _interopRequireWildcard(require(\"../shared/accessibility\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _short = require(\"../../events/short\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar EDIT_FORM_CLASS = \"edit-form\";\r\nvar GROUP_FOOTER_CLASS = \"group-footer\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar EDIT_FORM_ITEM_CLASS = \"edit-form-item\";\r\nvar MASTER_DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FREESPACE_ROW_CLASS = \"dx-freespace-row\";\r\nvar VIRTUAL_ROW_CLASS = \"dx-virtual-row\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar DROPDOWN_EDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nvar COMMAND_SELECT_CLASS = \"dx-command-select\";\r\nvar COMMAND_EDIT_CLASS = \"dx-command-edit\";\r\nvar COMMAND_CELL_SELECTOR = \"[class^=dx-command]\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar DATEBOX_WIDGET_NAME = \"dxDateBox\";\r\nvar FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nvar WIDGET_CLASS = \"dx-widget\";\r\nvar REVERT_BUTTON_CLASS = \"dx-revert-button\";\r\nvar FAST_EDITING_DELETE_KEY = \"delete\";\r\nvar INTERACTIVE_ELEMENTS_SELECTOR = \"input:not([type='hidden']), textarea, a, select, button, [tabindex]\";\r\nvar EDIT_MODE_ROW = \"row\";\r\nvar EDIT_MODE_FORM = \"form\";\r\nvar EDIT_MODE_BATCH = \"batch\";\r\nvar EDIT_MODE_CELL = \"cell\";\r\nvar FOCUS_TYPE_ROW = \"row\";\r\nvar FOCUS_TYPE_CELL = \"cell\";\r\nvar COLUMN_HEADERS_VIEW = \"columnHeadersView\";\r\n\r\nfunction isGroupRow($row) {\r\n return $row && $row.hasClass(GROUP_ROW_CLASS)\r\n}\r\n\r\nfunction isDetailRow($row) {\r\n return $row && $row.hasClass(MASTER_DETAIL_ROW_CLASS)\r\n}\r\n\r\nfunction isDataRow($row) {\r\n return $row && !isGroupRow($row) && !isDetailRow($row)\r\n}\r\n\r\nfunction isNotFocusedRow($row) {\r\n return !$row || $row.hasClass(FREESPACE_ROW_CLASS) || $row.hasClass(VIRTUAL_ROW_CLASS)\r\n}\r\n\r\nfunction isCellElement($element) {\r\n return $element.length && \"TD\" === $element[0].tagName\r\n}\r\n\r\nfunction isEditorCell(that, $cell) {\r\n return !that._isRowEditMode() && $cell && !$cell.hasClass(COMMAND_SELECT_CLASS) && $cell.hasClass(EDITOR_CELL_CLASS)\r\n}\r\n\r\nfunction isElementDefined($element) {\r\n return (0, _type.isDefined)($element) && $element.length > 0\r\n}\r\n\r\nfunction isMobile() {\r\n return \"desktop\" !== _devices.default.current().deviceType\r\n}\r\n\r\nfunction isCellInHeaderRow($cell) {\r\n return !!$cell.parent(\".\".concat(HEADER_ROW_CLASS)).length\r\n}\r\n\r\nfunction isFixedColumnIndexOffsetRequired(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var result = false;\r\n if (rtlEnabled) {\r\n result = !(\"right\" === column.fixedPosition || (0, _type.isDefined)(column.command) && !(0, _type.isDefined)(column.fixedPosition))\r\n } else {\r\n result = !(!(0, _type.isDefined)(column.fixedPosition) || \"left\" === column.fixedPosition)\r\n }\r\n return result\r\n}\r\n\r\nfunction shouldPreventScroll(that) {\r\n var keyboardController = that.getController(\"keyboardNavigation\");\r\n return keyboardController._isVirtualScrolling() ? that.option(\"focusedRowIndex\") === keyboardController.getRowIndex() : false\r\n}\r\nvar KeyboardNavigationController = _uiGrid_core.default.ViewController.inherit({\r\n init: function() {\r\n var _this = this;\r\n this._dataController = this.getController(\"data\");\r\n this._selectionController = this.getController(\"selection\");\r\n this._editingController = this.getController(\"editing\");\r\n this._headerPanel = this.getView(\"headerPanel\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._editorFactory = this.getController(\"editorFactory\");\r\n if (this.isKeyboardEnabled()) {\r\n accessibility.subscribeVisibilityChange();\r\n this._updateFocusTimeout = null;\r\n this._fastEditingStarted = false;\r\n this._focusedCellPosition = {};\r\n this._canceledCellPosition = null;\r\n var elementFocused = function($element) {\r\n _this.setupFocusedView();\r\n if (_this._isNeedScroll) {\r\n if ($element.is(\":visible\") && _this._focusedView && _this._focusedView.getScrollable) {\r\n _this._focusedView._scrollToElement($element);\r\n _this._isNeedScroll = false\r\n }\r\n }\r\n };\r\n this._editorFactory.focused.add(elementFocused);\r\n this._initViewHandlers();\r\n this._initDocumentHandlers();\r\n this.createAction(\"onKeyDown\")\r\n }\r\n },\r\n _initViewHandlers: function() {\r\n var _this2 = this;\r\n var rowsView = this.getView(\"rowsView\");\r\n var rowsViewFocusHandler = function(event) {\r\n var $element = (0, _renderer.default)(event.target);\r\n var isRelatedTargetInRowsView = (0, _renderer.default)(event.relatedTarget).closest(rowsView.element()).length;\r\n var isCommandButton = $element.hasClass(\"dx-link\");\r\n if (isCommandButton && !isRelatedTargetInRowsView && _this2._isEventInCurrentGrid(event)) {\r\n var $focusedCell = _this2._getFocusedCell();\r\n $focusedCell = !isElementDefined($focusedCell) ? rowsView.getCellElements(0).filter(\"[tabindex]\").eq(0) : $focusedCell;\r\n if (!$element.closest($focusedCell).length) {\r\n event.preventDefault();\r\n _events_engine.default.trigger($focusedCell, \"focus\")\r\n }\r\n }\r\n };\r\n rowsView.renderCompleted.add(function(e) {\r\n var $rowsView = rowsView.element();\r\n var isFullUpdate = !e || \"refresh\" === e.changeType;\r\n var isFocusedViewCorrect = _this2._focusedView && _this2._focusedView.name === rowsView.name;\r\n var needUpdateFocus = false;\r\n var isAppend = e && (\"append\" === e.changeType || \"prepend\" === e.changeType);\r\n var $focusedElement = (0, _renderer.default)(\":focus\");\r\n var isFocusedElementCorrect = !$focusedElement.length || $focusedElement.closest($rowsView).length || _browser.default.msie && $focusedElement.is(\"body\");\r\n _events_engine.default.off($rowsView, \"focusin\", rowsViewFocusHandler);\r\n _events_engine.default.on($rowsView, \"focusin\", rowsViewFocusHandler);\r\n _this2._initPointerEventHandler();\r\n _this2._initKeyDownHandler();\r\n _this2._setRowsViewAttributes();\r\n if (isFocusedViewCorrect && isFocusedElementCorrect) {\r\n needUpdateFocus = _this2._isNeedFocus ? !isAppend : _this2._isHiddenFocus && isFullUpdate;\r\n needUpdateFocus && _this2._updateFocus(true)\r\n }\r\n })\r\n },\r\n _initDocumentHandlers: function() {\r\n var _this3 = this;\r\n var document = _dom_adapter.default.getDocument();\r\n this._documentClickHandler = this.createAction(function(e) {\r\n var $target = (0, _renderer.default)(e.event.target);\r\n var isCurrentRowsViewClick = _this3._isEventInCurrentGrid(e.event) && $target.closest(\".\".concat(_this3.addWidgetPrefix(ROWS_VIEW_CLASS))).length;\r\n var isEditorOverlay = $target.closest(\".\".concat(DROPDOWN_EDITOR_OVERLAY_CLASS)).length;\r\n var columnsResizerController = _this3.getController(\"columnsResizer\");\r\n var isColumnResizing = !!columnsResizerController && columnsResizerController.isResizing();\r\n if (!isCurrentRowsViewClick && !isEditorOverlay && !isColumnResizing) {\r\n var targetInsideFocusedView = _this3._focusedView ? $target.parents().filter(_this3._focusedView.element()).length > 0 : false;\r\n !targetInsideFocusedView && _this3._resetFocusedCell(true);\r\n _this3._resetFocusedView()\r\n }\r\n });\r\n _events_engine.default.on(document, (0, _index.addNamespace)(_pointer.default.down, \"dxDataGridKeyboardNavigation\"), this._documentClickHandler)\r\n },\r\n _setRowsViewAttributes: function() {\r\n var $rowsView = this._getRowsViewElement();\r\n var isGridEmpty = !this._dataController.getVisibleRows().length;\r\n if (isGridEmpty) {\r\n this._applyTabIndexToElement($rowsView)\r\n }\r\n },\r\n _initPointerEventHandler: function() {\r\n var pointerEventName = !isMobile() ? _pointer.default.down : _click.name;\r\n var clickSelector = \".\".concat(ROW_CLASS, \" > td, .\").concat(ROW_CLASS);\r\n var $rowsView = this._getRowsViewElement();\r\n if (!(0, _type.isDefined)(this._pointerEventAction)) {\r\n this._pointerEventAction = this.createAction(this._pointerEventHandler)\r\n }\r\n _events_engine.default.off($rowsView, (0, _index.addNamespace)(pointerEventName, \"dxDataGridKeyboardNavigation\"), this._pointerEventAction);\r\n _events_engine.default.on($rowsView, (0, _index.addNamespace)(pointerEventName, \"dxDataGridKeyboardNavigation\"), clickSelector, this._pointerEventAction)\r\n },\r\n _initKeyDownHandler: function() {\r\n var _this4 = this;\r\n var $rowsView = this._getRowsViewElement();\r\n _short.keyboard.off(this._keyDownListener);\r\n this._keyDownListener = _short.keyboard.on($rowsView, null, function(e) {\r\n return _this4._keyDownHandler(e)\r\n })\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._resetFocusedView();\r\n _short.keyboard.off(this._keyDownListener);\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), (0, _index.addNamespace)(_pointer.default.down, \"dxDataGridKeyboardNavigation\"), this._documentClickHandler);\r\n clearTimeout(this._updateFocusTimeout);\r\n accessibility.unsubscribeVisibilityChange()\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n switch (args.name) {\r\n case \"keyboardNavigation\":\r\n case \"useLegacyKeyboardNavigation\":\r\n args.handled = true;\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n },\r\n isRowFocusType: function() {\r\n return this.focusType === FOCUS_TYPE_ROW\r\n },\r\n isCellFocusType: function() {\r\n return this.focusType === FOCUS_TYPE_CELL\r\n },\r\n setRowFocusType: function() {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.focusType = FOCUS_TYPE_ROW\r\n }\r\n },\r\n setCellFocusType: function() {\r\n this.focusType = FOCUS_TYPE_CELL\r\n },\r\n _keyDownHandler: function(e) {\r\n var isEditing = this._editingController.isEditing();\r\n var needStopPropagation = true;\r\n var originalEvent = e.originalEvent;\r\n var isHandled = this._processOnKeyDown(e);\r\n if (originalEvent.isDefaultPrevented()) {\r\n return\r\n }\r\n this._isNeedFocus = true;\r\n this._isNeedScroll = true;\r\n this._updateFocusedCellPositionByTarget(originalEvent.target);\r\n if (!isHandled) {\r\n switch (e.keyName) {\r\n case \"leftArrow\":\r\n case \"rightArrow\":\r\n this._leftRightKeysHandler(e, isEditing);\r\n break;\r\n case \"upArrow\":\r\n case \"downArrow\":\r\n if (e.ctrl) {\r\n accessibility.selectView(\"rowsView\", this, originalEvent)\r\n } else {\r\n this._upDownKeysHandler(e, isEditing)\r\n }\r\n break;\r\n case \"pageUp\":\r\n case \"pageDown\":\r\n this._pageUpDownKeyHandler(e);\r\n break;\r\n case \"space\":\r\n this._spaceKeyHandler(e, isEditing);\r\n break;\r\n case \"A\":\r\n if (e.ctrl) {\r\n this._ctrlAKeyHandler(e, isEditing)\r\n } else {\r\n this._beginFastEditing(e.originalEvent)\r\n }\r\n break;\r\n case \"tab\":\r\n this._tabKeyHandler(e, isEditing);\r\n break;\r\n case \"enter\":\r\n this._enterKeyHandler(e, isEditing);\r\n break;\r\n case \"escape\":\r\n this._escapeKeyHandler(e, isEditing);\r\n break;\r\n case \"F\":\r\n if (e.ctrl) {\r\n this._ctrlFKeyHandler(e)\r\n } else {\r\n this._beginFastEditing(e.originalEvent)\r\n }\r\n break;\r\n case \"F2\":\r\n this._f2KeyHandler();\r\n break;\r\n case \"del\":\r\n case \"backspace\":\r\n if (this._isFastEditingAllowed() && !this._isFastEditingStarted()) {\r\n this._beginFastEditing(originalEvent, true)\r\n }\r\n break;\r\n default:\r\n if (!this._beginFastEditing(originalEvent)) {\r\n this._isNeedFocus = false;\r\n this._isNeedScroll = false;\r\n needStopPropagation = false\r\n }\r\n }\r\n if (needStopPropagation) {\r\n originalEvent.stopPropagation()\r\n }\r\n }\r\n },\r\n _processOnKeyDown: function(eventArgs) {\r\n var originalEvent = eventArgs.originalEvent;\r\n var args = {\r\n handled: false,\r\n event: originalEvent\r\n };\r\n this.executeAction(\"onKeyDown\", args);\r\n eventArgs.ctrl = originalEvent.ctrlKey;\r\n eventArgs.alt = originalEvent.altKey;\r\n eventArgs.shift = originalEvent.shiftKey;\r\n return !!args.handled\r\n },\r\n _closeEditCell: function() {\r\n var _this5 = this;\r\n setTimeout(function() {\r\n _this5._editingController.closeEditCell()\r\n })\r\n },\r\n _leftRightKeysHandler: function(eventArgs, isEditing) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $event = eventArgs.originalEvent;\r\n var $row = this._focusedView && this._focusedView.getRow(rowIndex);\r\n var directionCode = this._getDirectionCodeByKey(eventArgs.keyName);\r\n var isEditingNavigationMode = this._isFastEditingStarted();\r\n var allowNavigate = (!isEditing || isEditingNavigationMode) && isDataRow($row);\r\n if (allowNavigate) {\r\n this.setCellFocusType();\r\n isEditingNavigationMode && this._closeEditCell();\r\n if (this._isVirtualColumnRender()) {\r\n this._processVirtualHorizontalPosition(directionCode)\r\n }\r\n var $cell = this._getNextCell(directionCode);\r\n if (isElementDefined($cell)) {\r\n this._arrowKeysHandlerFocusCell($event, $cell, directionCode)\r\n }\r\n $event && $event.preventDefault()\r\n }\r\n },\r\n _upDownKeysHandler: function(eventArgs, isEditing) {\r\n var rowIndex = this._focusedCellPosition.rowIndex;\r\n var visibleRowIndex = this.getVisibleRowIndex();\r\n var $row = this._focusedView && this._focusedView.getRow(visibleRowIndex);\r\n var $event = eventArgs.originalEvent;\r\n var isUpArrow = \"upArrow\" === eventArgs.keyName;\r\n var dataSource = this._dataController.dataSource();\r\n var isEditingNavigationMode = this._isFastEditingStarted();\r\n var allowNavigate = (!isEditing || isEditingNavigationMode) && $row && !isDetailRow($row);\r\n if (allowNavigate) {\r\n isEditingNavigationMode && this._closeEditCell();\r\n if (!this._navigateNextCell($event, eventArgs.keyName)) {\r\n if (this._isVirtualRowRender() && isUpArrow && dataSource && !dataSource.isLoading()) {\r\n var rowHeight = $row.outerHeight();\r\n rowIndex = this._focusedCellPosition.rowIndex - 1;\r\n this._scrollBy(0, -rowHeight, rowIndex, $event)\r\n }\r\n }\r\n $event && $event.preventDefault()\r\n }\r\n },\r\n _pageUpDownKeyHandler: function(eventArgs) {\r\n var pageIndex = this._dataController.pageIndex();\r\n var pageCount = this._dataController.pageCount();\r\n var pagingEnabled = this.option(\"paging.enabled\");\r\n var isPageUp = \"pageUp\" === eventArgs.keyName;\r\n var pageStep = isPageUp ? -1 : 1;\r\n var scrollable = this.getView(\"rowsView\").getScrollable();\r\n if (pagingEnabled && !this._isVirtualScrolling()) {\r\n if ((isPageUp ? pageIndex > 0 : pageIndex < pageCount - 1) && !this._isVirtualScrolling()) {\r\n this._dataController.pageIndex(pageIndex + pageStep);\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n } else {\r\n if (scrollable && scrollable._container().height() < scrollable.$content().height()) {\r\n this._scrollBy(0, scrollable._container().height() * pageStep);\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n }\r\n },\r\n _spaceKeyHandler: function(eventArgs, isEditing) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $target = (0, _renderer.default)(eventArgs.originalEvent && eventArgs.originalEvent.target);\r\n if (this.option(\"selection\") && \"none\" !== this.option(\"selection\").mode && !isEditing) {\r\n var isFocusedRowElement = \"row\" === this._getElementType($target) && this.isRowFocusType() && isDataRow($target);\r\n var isFocusedSelectionCell = $target.hasClass(COMMAND_SELECT_CLASS);\r\n if (isFocusedSelectionCell && \"onClick\" === this.option(\"selection.showCheckBoxesMode\")) {\r\n this._selectionController.startSelectionWithCheckboxes()\r\n }\r\n if (isFocusedRowElement || $target.parent().hasClass(DATA_ROW_CLASS) || $target.hasClass(this.addWidgetPrefix(ROWS_VIEW_CLASS))) {\r\n this._selectionController.changeItemSelection(rowIndex, {\r\n shift: eventArgs.shift,\r\n control: eventArgs.ctrl\r\n });\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n } else {\r\n this._beginFastEditing(eventArgs.originalEvent)\r\n }\r\n },\r\n _ctrlAKeyHandler: function(eventArgs, isEditing) {\r\n if (!isEditing && eventArgs.ctrl && !eventArgs.alt && \"multiple\" === this.option(\"selection.mode\") && this.option(\"selection.allowSelectAll\")) {\r\n this._selectionController.selectAll();\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n },\r\n _tabKeyHandler: function(eventArgs, isEditing) {\r\n var editingOptions = this.option(\"editing\");\r\n var direction = eventArgs.shift ? \"previous\" : \"next\";\r\n var isCellPositionDefined = (0, _type.isDefined)(this._focusedCellPosition) && !(0, _type.isEmptyObject)(this._focusedCellPosition);\r\n var isOriginalHandlerRequired = !isCellPositionDefined || !eventArgs.shift && this._isLastValidCell(this._focusedCellPosition) || eventArgs.shift && this._isFirstValidCell(this._focusedCellPosition);\r\n var eventTarget = eventArgs.originalEvent.target;\r\n var focusedViewElement = this._focusedView && this._focusedView.element();\r\n if (this._handleTabKeyOnMasterDetailCell(eventTarget, direction)) {\r\n return\r\n }(0, _renderer.default)(focusedViewElement).addClass(FOCUS_STATE_CLASS);\r\n if (editingOptions && eventTarget && !isOriginalHandlerRequired) {\r\n if ((0, _renderer.default)(eventTarget).hasClass(this.addWidgetPrefix(ROWS_VIEW_CLASS))) {\r\n this._resetFocusedCell()\r\n }\r\n if (this._isVirtualColumnRender()) {\r\n this._processVirtualHorizontalPosition(direction)\r\n }\r\n if (isEditing) {\r\n if (!this._editingCellTabHandler(eventArgs, direction)) {\r\n return\r\n }\r\n } else {\r\n if (this._targetCellTabHandler(eventArgs, direction)) {\r\n isOriginalHandlerRequired = true\r\n }\r\n }\r\n }\r\n if (isOriginalHandlerRequired) {\r\n this._editorFactory.loseFocus();\r\n if (this._editingController.isEditing() && !this._isRowEditMode()) {\r\n this._resetFocusedCell(true);\r\n this._resetFocusedView();\r\n this._closeEditCell()\r\n }\r\n } else {\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n },\r\n _getMaxHorizontalOffset: function() {\r\n var scrollable = this.component.getScrollable();\r\n var rowsView = this.getView(\"rowsView\");\r\n var offset = scrollable ? scrollable.scrollWidth() - (0, _renderer.default)(rowsView.element()).width() : 0;\r\n return offset\r\n },\r\n _isColumnRendered: function(columnIndex) {\r\n var allVisibleColumns = this._columnsController.getVisibleColumns(null, true);\r\n var renderedVisibleColumns = this._columnsController.getVisibleColumns();\r\n var column = allVisibleColumns[columnIndex];\r\n var result = false;\r\n if (column) {\r\n result = renderedVisibleColumns.indexOf(column) >= 0\r\n }\r\n return result\r\n },\r\n _isFixedColumn: function(columnIndex) {\r\n var allVisibleColumns = this._columnsController.getVisibleColumns(null, true);\r\n var column = allVisibleColumns[columnIndex];\r\n return !!column && !!column.fixed\r\n },\r\n _isColumnVirtual: function(columnIndex) {\r\n var localColumnIndex = columnIndex - this._columnsController.getColumnIndexOffset();\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var column = visibleColumns[localColumnIndex];\r\n return !!column && \"virtual\" === column.command\r\n },\r\n _processVirtualHorizontalPosition: function(direction) {\r\n var scrollable = this.component.getScrollable();\r\n var columnIndex = this.getColumnIndex();\r\n var nextColumnIndex;\r\n var horizontalScrollPosition = 0;\r\n var needToScroll = false;\r\n switch (direction) {\r\n case \"next\":\r\n case \"nextInRow\":\r\n var columnsCount = this._getVisibleColumnCount();\r\n nextColumnIndex = columnIndex + 1;\r\n horizontalScrollPosition = this.option(\"rtlEnabled\") ? this._getMaxHorizontalOffset() : 0;\r\n if (\"next\" === direction) {\r\n needToScroll = columnsCount === nextColumnIndex || this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n } else {\r\n needToScroll = columnsCount > nextColumnIndex && this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n }\r\n break;\r\n case \"previous\":\r\n case \"previousInRow\":\r\n nextColumnIndex = columnIndex - 1;\r\n horizontalScrollPosition = this.option(\"rtlEnabled\") ? 0 : this._getMaxHorizontalOffset();\r\n if (\"previous\" === direction) {\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var leftEdgePosition = nextColumnIndex < 0 && 0 === columnIndexOffset;\r\n needToScroll = leftEdgePosition || this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n } else {\r\n needToScroll = nextColumnIndex >= 0 && this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n }\r\n }\r\n if (needToScroll) {\r\n scrollable.scrollTo({\r\n left: horizontalScrollPosition\r\n })\r\n } else {\r\n if ((0, _type.isDefined)(nextColumnIndex) && (0, _type.isDefined)(direction) && this._isColumnVirtual(nextColumnIndex)) {\r\n horizontalScrollPosition = this._getHorizontalScrollPositionOffset(direction);\r\n 0 !== horizontalScrollPosition && scrollable.scrollBy({\r\n left: horizontalScrollPosition,\r\n top: 0\r\n })\r\n }\r\n }\r\n },\r\n _getHorizontalScrollPositionOffset: function(direction) {\r\n var positionOffset = 0;\r\n var $currentCell = this._getCell(this._focusedCellPosition);\r\n var currentCellWidth = $currentCell && $currentCell.outerWidth();\r\n if (currentCellWidth > 0) {\r\n var rtlMultiplier = this.option(\"rtlEnabled\") ? -1 : 1;\r\n positionOffset = \"nextInRow\" === direction || \"next\" === direction ? currentCellWidth * rtlMultiplier : currentCellWidth * rtlMultiplier * -1\r\n }\r\n return positionOffset\r\n },\r\n _editingCellTabHandler: function(eventArgs, direction) {\r\n var eventTarget = eventArgs.originalEvent.target;\r\n var $cell = this._getCellElementFromTarget(eventTarget);\r\n var isEditingAllowed;\r\n var $event = eventArgs.originalEvent;\r\n var elementType = this._getElementType(eventTarget);\r\n if ($cell.is(COMMAND_CELL_SELECTOR)) {\r\n return !this._targetCellTabHandler(eventArgs, direction)\r\n }\r\n this._updateFocusedCellPosition($cell);\r\n var nextCellInfo = this._getNextCellByTabKey($event, direction, elementType);\r\n $cell = nextCellInfo.$cell;\r\n if (!$cell || this._handleTabKeyOnMasterDetailCell($cell, direction)) {\r\n return false\r\n }\r\n var columnsController = this._columnsController;\r\n var cellIndex = this.getView(\"rowsView\").getCellIndex($cell);\r\n var columnIndex = cellIndex + columnsController.getColumnIndexOffset();\r\n var column = columnsController.getVisibleColumns(null, true)[columnIndex];\r\n var $row = $cell && $cell.parent();\r\n var rowIndex = this._getRowIndex($row);\r\n var row = this._dataController.items()[rowIndex];\r\n var editingController = this._editingController;\r\n if (column && column.allowEditing) {\r\n var _isDataRow = !row || \"data\" === row.rowType;\r\n isEditingAllowed = editingController.allowUpdating({\r\n row: row\r\n }) ? _isDataRow : row && row.isNewRow\r\n }\r\n if (!isEditingAllowed) {\r\n this._closeEditCell()\r\n }\r\n if (this._focusCell($cell, !nextCellInfo.isHighlighted)) {\r\n if (!this._isRowEditMode() && isEditingAllowed) {\r\n this._editFocusedCell()\r\n } else {\r\n this._focusInteractiveElement($cell, eventArgs.shift)\r\n }\r\n }\r\n return true\r\n },\r\n _targetCellTabHandler: function(eventArgs, direction) {\r\n var $event = eventArgs.originalEvent;\r\n var eventTarget = $event.target;\r\n var $cell = this._getCellElementFromTarget(eventTarget);\r\n var $lastInteractiveElement = this._getInteractiveElement($cell, !eventArgs.shift);\r\n var isOriginalHandlerRequired = false;\r\n var elementType;\r\n if (!isEditorCell(this, $cell) && $lastInteractiveElement.length && eventTarget !== $lastInteractiveElement.get(0)) {\r\n isOriginalHandlerRequired = true\r\n } else {\r\n if (void 0 === this._focusedCellPosition.rowIndex && (0, _renderer.default)(eventTarget).hasClass(ROW_CLASS)) {\r\n this._updateFocusedCellPosition($cell)\r\n }\r\n elementType = this._getElementType(eventTarget);\r\n if (this.isRowFocusType()) {\r\n this.setCellFocusType();\r\n if (\"row\" === elementType && isDataRow((0, _renderer.default)(eventTarget))) {\r\n eventTarget = this.getFirstValidCellInRow((0, _renderer.default)(eventTarget));\r\n elementType = this._getElementType(eventTarget)\r\n }\r\n }\r\n var nextCellInfo = this._getNextCellByTabKey($event, direction, elementType);\r\n $cell = nextCellInfo.$cell;\r\n if (!$cell) {\r\n return false\r\n }\r\n $cell = this._checkNewLineTransition($event, $cell);\r\n if (!$cell) {\r\n return false\r\n }\r\n this._focusCell($cell, !nextCellInfo.isHighlighted);\r\n if (!isEditorCell(this, $cell)) {\r\n this._focusInteractiveElement($cell, eventArgs.shift)\r\n }\r\n }\r\n return isOriginalHandlerRequired\r\n },\r\n _getNextCellByTabKey: function($event, direction, elementType) {\r\n var $cell = this._getNextCell(direction, elementType);\r\n var args = $cell && this._fireFocusedCellChanging($event, $cell, true);\r\n if (!args || args.cancel) {\r\n return {}\r\n }\r\n if (args.$newCellElement) {\r\n $cell = args.$newCellElement\r\n }\r\n return {\r\n $cell: $cell,\r\n isHighlighted: args.isHighlighted\r\n }\r\n },\r\n _checkNewLineTransition: function($event, $cell) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $row = $cell.parent();\r\n if (rowIndex !== this._getRowIndex($row)) {\r\n var cellPosition = this._getCellPosition($cell);\r\n var args = this._fireFocusedRowChanging($event, $row);\r\n if (args.cancel) {\r\n return\r\n }\r\n if (args.rowIndexChanged) {\r\n this.setFocusedColumnIndex(cellPosition.columnIndex);\r\n $cell = this._getFocusedCell()\r\n }\r\n }\r\n return $cell\r\n },\r\n _enterKeyHandler: function(eventArgs, isEditing) {\r\n var $cell = this._getFocusedCell();\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $row = this._focusedView && this._focusedView.getRow(rowIndex);\r\n if (this.option(\"grouping.allowCollapsing\") && isGroupRow($row) || this.option(\"masterDetail.enabled\") && $cell && $cell.hasClass(COMMAND_EXPAND_CLASS)) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n var item = this._dataController.items()[rowIndex];\r\n if (void 0 !== key && item && item.data && !item.data.isContinuation) {\r\n this._dataController.changeRowExpand(key)\r\n }\r\n } else {\r\n this._processEnterKeyForDataCell(eventArgs, isEditing)\r\n }\r\n },\r\n _processEnterKeyForDataCell: function(eventArgs, isEditing) {\r\n var direction = this._getEnterKeyDirection(eventArgs);\r\n var allowEditingOnEnterKey = this._allowEditingOnEnterKey();\r\n if (isEditing || !allowEditingOnEnterKey && direction) {\r\n this._handleEnterKeyEditingCell(eventArgs.originalEvent);\r\n if (\"next\" === direction || \"previous\" === direction) {\r\n this._targetCellTabHandler(eventArgs, direction)\r\n } else {\r\n if (\"upArrow\" === direction || \"downArrow\" === direction) {\r\n this._navigateNextCell(eventArgs.originalEvent, direction)\r\n }\r\n }\r\n } else {\r\n if (allowEditingOnEnterKey) {\r\n this._startEditing(eventArgs)\r\n }\r\n }\r\n },\r\n _getEnterKeyDirection: function(eventArgs) {\r\n var enterKeyDirection = this.option(\"keyboardNavigation.enterKeyDirection\");\r\n var isShift = eventArgs.shift;\r\n if (\"column\" === enterKeyDirection) {\r\n return isShift ? \"upArrow\" : \"downArrow\"\r\n }\r\n if (\"row\" === enterKeyDirection) {\r\n return isShift ? \"previous\" : \"next\"\r\n }\r\n },\r\n _handleEnterKeyEditingCell: function(event) {\r\n var target = event.target;\r\n var $cell = this._getCellElementFromTarget(target);\r\n var isRowEditMode = this._isRowEditMode();\r\n this._updateFocusedCellPosition($cell);\r\n if (isRowEditMode) {\r\n this._focusEditFormCell($cell);\r\n setTimeout(this._editingController.saveEditData.bind(this._editingController))\r\n } else {\r\n _events_engine.default.trigger((0, _renderer.default)(target), \"change\");\r\n this._closeEditCell();\r\n event.preventDefault()\r\n }\r\n },\r\n _escapeKeyHandler: function(eventArgs, isEditing) {\r\n var $cell = this._getCellElementFromTarget(eventArgs.originalEvent.target);\r\n if (isEditing) {\r\n this._updateFocusedCellPosition($cell);\r\n if (!this._isRowEditMode()) {\r\n if (\"cell\" === this._editingController.getEditMode()) {\r\n this._editingController.cancelEditData()\r\n } else {\r\n this._closeEditCell()\r\n }\r\n } else {\r\n this._focusEditFormCell($cell);\r\n this._editingController.cancelEditData();\r\n if (0 === this._dataController.items().length) {\r\n this._resetFocusedCell();\r\n this._editorFactory.loseFocus()\r\n }\r\n }\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n },\r\n _ctrlFKeyHandler: function(eventArgs) {\r\n if (this.option(\"searchPanel.visible\")) {\r\n var searchTextEditor = this._headerPanel.getSearchTextEditor();\r\n if (searchTextEditor) {\r\n searchTextEditor.focus();\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n }\r\n },\r\n _f2KeyHandler: function() {\r\n var isEditing = this._editingController.isEditing();\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $row = this._focusedView && this._focusedView.getRow(rowIndex);\r\n if (!isEditing && isDataRow($row)) {\r\n this._startEditing()\r\n }\r\n },\r\n _navigateNextCell: function($event, keyCode) {\r\n var $cell = this._getNextCell(keyCode);\r\n var directionCode = this._getDirectionCodeByKey(keyCode);\r\n var isCellValid = $cell && this._isCellValid($cell);\r\n var result = isCellValid ? this._arrowKeysHandlerFocusCell($event, $cell, directionCode) : false;\r\n return result\r\n },\r\n _arrowKeysHandlerFocusCell: function($event, $nextCell, direction) {\r\n var isVerticalDirection = \"prevRow\" === direction || \"nextRow\" === direction;\r\n var args = this._fireFocusChangingEvents($event, $nextCell, isVerticalDirection, true);\r\n $nextCell = args.$newCellElement;\r\n if (!args.cancel && this._isCellValid($nextCell)) {\r\n this._focus($nextCell, !args.isHighlighted);\r\n return true\r\n }\r\n return false\r\n },\r\n _beginFastEditing: function(originalEvent, isDeleting) {\r\n if (!this._isFastEditingAllowed() || originalEvent.altKey || originalEvent.ctrlKey || this._editingController.isEditing()) {\r\n return false\r\n }\r\n if (isDeleting) {\r\n this._startEditing(originalEvent, FAST_EDITING_DELETE_KEY)\r\n } else {\r\n var key = originalEvent.key;\r\n var keyCode = originalEvent.keyCode || originalEvent.which;\r\n var fastEditingKey = key || keyCode && String.fromCharCode(keyCode);\r\n if (fastEditingKey && (1 === fastEditingKey.length || fastEditingKey === FAST_EDITING_DELETE_KEY)) {\r\n this._startEditing(originalEvent, fastEditingKey)\r\n }\r\n }\r\n return true\r\n },\r\n _pointerEventHandler: function(e) {\r\n var event = e.event || e;\r\n var $target = (0, _renderer.default)(event.currentTarget);\r\n var rowsView = this.getView(\"rowsView\");\r\n var focusedViewElement = rowsView && rowsView.element();\r\n var $parent = $target.parent();\r\n var isInteractiveElement = (0, _renderer.default)(event.target).is(INTERACTIVE_ELEMENTS_SELECTOR);\r\n var isRevertButton = !!(0, _renderer.default)(event.target).closest(\".\".concat(REVERT_BUTTON_CLASS)).length;\r\n var isExpandCommandCell = $target.hasClass(COMMAND_EXPAND_CLASS);\r\n if (!this._isEventInCurrentGrid(event)) {\r\n return\r\n }\r\n if (!isRevertButton && (this._isCellValid($target, !isInteractiveElement) || isExpandCommandCell)) {\r\n $target = this._isInsideEditForm($target) ? (0, _renderer.default)(event.target) : $target;\r\n this._focusView();\r\n (0, _renderer.default)(focusedViewElement).removeClass(FOCUS_STATE_CLASS);\r\n if ($parent.hasClass(FREESPACE_ROW_CLASS)) {\r\n this._updateFocusedCellPosition($target);\r\n this._applyTabIndexToElement(this._focusedView.element());\r\n this._focusedView.focus()\r\n } else {\r\n if (!this._isMasterDetailCell($target)) {\r\n this._clickTargetCellHandler(event, $target)\r\n } else {\r\n this._updateFocusedCellPosition($target)\r\n }\r\n }\r\n } else {\r\n if ($target.is(\"td\")) {\r\n this._resetFocusedCell()\r\n }\r\n }\r\n },\r\n _clickTargetCellHandler: function(event, $cell) {\r\n var columnIndex = this.getView(\"rowsView\").getCellIndex($cell);\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n var isCellEditMode = this._isCellEditMode();\r\n this.setCellFocusType();\r\n var args = this._fireFocusChangingEvents(event, $cell, true);\r\n $cell = args.$newCellElement;\r\n if (!args.cancel) {\r\n if (args.resetFocusedRow) {\r\n this.getController(\"focus\")._resetFocusedRow();\r\n return\r\n }\r\n if (args.rowIndexChanged) {\r\n $cell = this._getFocusedCell()\r\n }\r\n if (!args.isHighlighted && !isCellEditMode) {\r\n this.setRowFocusType()\r\n }\r\n this._updateFocusedCellPosition($cell);\r\n if (this._allowRowUpdating() && isCellEditMode && column && column.allowEditing) {\r\n this._isNeedFocus = false;\r\n this._isHiddenFocus = false\r\n } else {\r\n var $target = event && (0, _renderer.default)(event.target).closest(INTERACTIVE_ELEMENTS_SELECTOR + \", td\");\r\n var isInteractiveTarget = $target && $target.not($cell).is(INTERACTIVE_ELEMENTS_SELECTOR);\r\n var isEditor = !!column && !column.command && $cell.hasClass(EDITOR_CELL_CLASS);\r\n var isDisabled = !isEditor && (!args.isHighlighted || isInteractiveTarget);\r\n this._focus($cell, isDisabled, isInteractiveTarget)\r\n }\r\n } else {\r\n this.setRowFocusType();\r\n this.setFocusedRowIndex(args.prevRowIndex);\r\n $cell = this._getFocusedCell();\r\n if (this._editingController.isEditing() && isCellEditMode) {\r\n this._closeEditCell()\r\n }\r\n }\r\n },\r\n _allowRowUpdating: function() {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var row = this._dataController.items()[rowIndex];\r\n return this._editingController.allowUpdating({\r\n row: row\r\n }, \"click\")\r\n },\r\n focus: function(element) {\r\n var activeElementSelector;\r\n var focusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var isHighlighted = isCellElement((0, _renderer.default)(element));\r\n if (!element) {\r\n activeElementSelector = \".dx-datagrid-rowsview .dx-row[tabindex]\";\r\n if (!focusedRowEnabled) {\r\n activeElementSelector += \", .dx-datagrid-rowsview .dx-row > td[tabindex]\"\r\n }\r\n element = this.component.$element().find(activeElementSelector).first()\r\n }\r\n element && this._focusElement((0, _renderer.default)(element), isHighlighted)\r\n },\r\n getFocusedView: function() {\r\n return this._focusedView\r\n },\r\n setupFocusedView: function() {\r\n if (this.isKeyboardEnabled() && !(0, _type.isDefined)(this._focusedView)) {\r\n this._focusView()\r\n }\r\n },\r\n _focusElement: function($element, isHighlighted) {\r\n var rowsViewElement = (0, _renderer.default)(this._getRowsViewElement());\r\n var $focusedView = $element.closest(rowsViewElement);\r\n var isRowFocusType = this.isRowFocusType();\r\n var args = {};\r\n if (!$focusedView.length || isCellElement($element) && !this._isCellValid($element)) {\r\n return\r\n }\r\n this._focusView();\r\n this._isNeedFocus = true;\r\n this._isNeedScroll = true;\r\n if (isCellElement($element) || isGroupRow($element)) {\r\n this.setCellFocusType();\r\n args = this._fireFocusChangingEvents(null, $element, false, isHighlighted);\r\n $element = args.$newCellElement;\r\n if (isRowFocusType && !args.isHighlighted) {\r\n this.setRowFocusType()\r\n }\r\n }\r\n if (!args.cancel) {\r\n this._focus($element, !args.isHighlighted);\r\n this._focusInteractiveElement($element)\r\n }\r\n },\r\n _getFocusedViewByElement: function($element) {\r\n var view = this.getFocusedView();\r\n var $view = view && (0, _renderer.default)(view.element());\r\n return $element && 0 !== $element.closest($view).length\r\n },\r\n _focusView: function() {\r\n this._focusedView = this.getView(\"rowsView\")\r\n },\r\n _resetFocusedView: function() {\r\n this.setRowFocusType();\r\n this._focusedView = null\r\n },\r\n _focusInteractiveElement: function($cell, isLast) {\r\n if (!$cell) {\r\n return\r\n }\r\n var $focusedElement = this._getInteractiveElement($cell, isLast);\r\n _uiGrid_core2.default.focusAndSelectElement(this, $focusedElement)\r\n },\r\n _focus: function($cell, disableFocus, isInteractiveElement) {\r\n var $row = $cell && !$cell.hasClass(ROW_CLASS) ? $cell.closest(\".\".concat(ROW_CLASS)) : $cell;\r\n if ($row && isNotFocusedRow($row)) {\r\n return\r\n }\r\n var focusedView = this._focusedView;\r\n var $focusViewElement = focusedView && focusedView.element();\r\n var $focusElement;\r\n this._isHiddenFocus = disableFocus;\r\n if (isGroupRow($row) || this.isRowFocusType()) {\r\n $focusElement = $row;\r\n if (focusedView) {\r\n this.setFocusedRowIndex(this._getRowIndex($row))\r\n }\r\n } else {\r\n if (isCellElement($cell)) {\r\n $focusElement = $cell;\r\n this._updateFocusedCellPosition($cell)\r\n }\r\n }\r\n if ($focusElement) {\r\n if ($focusViewElement) {\r\n $focusViewElement.find(\".dx-row[tabindex], .dx-row > td[tabindex]\").not($focusElement).removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabindex\")\r\n }\r\n _events_engine.default.one($focusElement, \"blur\", function(e) {\r\n if (e.relatedTarget) {\r\n $focusElement.removeClass(CELL_FOCUS_DISABLED_CLASS)\r\n }\r\n });\r\n if (!isInteractiveElement) {\r\n this._applyTabIndexToElement($focusElement);\r\n _events_engine.default.trigger($focusElement, \"focus\")\r\n }\r\n if (disableFocus) {\r\n $focusElement.addClass(CELL_FOCUS_DISABLED_CLASS)\r\n } else {\r\n this._editorFactory.focus($focusElement)\r\n }\r\n }\r\n },\r\n _updateFocus: function(isRenderView) {\r\n var _this6 = this;\r\n this._updateFocusTimeout = setTimeout(function() {\r\n var editingController = _this6._editingController;\r\n var isCellEditMode = editingController.getEditMode() === EDIT_MODE_CELL;\r\n if (!_this6.option(\"repaintChangesOnly\") && isCellEditMode && editingController.hasChanges()) {\r\n editingController._focusEditingCell();\r\n return\r\n }\r\n var $cell = _this6._getFocusedCell();\r\n var isEditing = editingController.isEditing();\r\n if ($cell && !(_this6._isMasterDetailCell($cell) && !_this6._isRowEditMode())) {\r\n if (_this6._hasSkipRow($cell.parent())) {\r\n var direction = _this6._focusedCellPosition && _this6._focusedCellPosition.rowIndex > 0 ? \"upArrow\" : \"downArrow\";\r\n $cell = _this6._getNextCell(direction)\r\n }\r\n if (isElementDefined($cell)) {\r\n if (isRenderView && !isEditing && _this6._checkCellOverlapped($cell)) {\r\n return\r\n }\r\n if ($cell.is(\"td\") || $cell.hasClass(_this6.addWidgetPrefix(EDIT_FORM_ITEM_CLASS))) {\r\n var isCommandCell = $cell.is(COMMAND_CELL_SELECTOR);\r\n var $focusedElementInsideCell = $cell.find(\":focus\");\r\n var isFocusedElementDefined = isElementDefined($focusedElementInsideCell);\r\n if ((isRenderView || !isCommandCell) && _this6._editorFactory.focus()) {\r\n if (isCommandCell && isFocusedElementDefined) {\r\n _uiGrid_core2.default.focusAndSelectElement(_this6, $focusedElementInsideCell);\r\n return\r\n }!isFocusedElementDefined && _this6._focus($cell)\r\n } else {\r\n if (!isFocusedElementDefined && (_this6._isNeedFocus || _this6._isHiddenFocus)) {\r\n _this6._focus($cell, _this6._isHiddenFocus)\r\n }\r\n }\r\n if (isEditing) {\r\n _this6._focusInteractiveElement.bind(_this6)($cell)\r\n }\r\n } else {\r\n _events_engine.default.trigger($cell, \"focus\")\r\n }\r\n }\r\n }\r\n })\r\n },\r\n _checkCellOverlapped: function($cell) {\r\n var cellOffset = $cell.offset();\r\n var hasScrollable = this.component.getScrollable && this.component.getScrollable();\r\n var isOverlapped = false;\r\n if (hasScrollable) {\r\n if (cellOffset.left < 0) {\r\n isOverlapped = $cell.width() + cellOffset.left <= 0\r\n } else {\r\n if (cellOffset.top < 0) {\r\n isOverlapped = $cell.height() + cellOffset.top <= 0\r\n }\r\n }\r\n }\r\n return isOverlapped\r\n },\r\n _getFocusedCell: function() {\r\n return (0, _renderer.default)(this._getCell(this._focusedCellPosition))\r\n },\r\n _updateFocusedCellPositionByTarget: function(target) {\r\n var _this$_focusedCellPos;\r\n var elementType = this._getElementType(target);\r\n if (\"row\" === elementType && (0, _type.isDefined)(null === (_this$_focusedCellPos = this._focusedCellPosition) || void 0 === _this$_focusedCellPos ? void 0 : _this$_focusedCellPos.columnIndex)) {\r\n var $row = (0, _renderer.default)(target);\r\n this._focusedView && isGroupRow($row) && this.setFocusedRowIndex(this._getRowIndex($row))\r\n } else {\r\n this._updateFocusedCellPosition(this._getCellElementFromTarget(target))\r\n }\r\n },\r\n _updateFocusedCellPosition: function($cell, direction) {\r\n var position = this._getCellPosition($cell, direction);\r\n if (position) {\r\n if (!$cell.length || position.rowIndex >= 0 && position.columnIndex >= 0) {\r\n this.setFocusedCellPosition(position.rowIndex, position.columnIndex)\r\n }\r\n }\r\n return position\r\n },\r\n _getFocusedColumnIndexOffset: function(columnIndex) {\r\n var offset = 0;\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n if (column && column.fixed) {\r\n offset = this._getFixedColumnIndexOffset(column)\r\n } else {\r\n if (columnIndex >= 0) {\r\n offset = this._columnsController.getColumnIndexOffset()\r\n }\r\n }\r\n return offset\r\n },\r\n _getFixedColumnIndexOffset: function(column) {\r\n var offset = isFixedColumnIndexOffsetRequired(this, column) ? this._getVisibleColumnCount() - this._columnsController.getVisibleColumns().length : 0;\r\n return offset\r\n },\r\n _getCellPosition: function($cell, direction) {\r\n var columnIndex;\r\n var $row = isElementDefined($cell) && $cell.closest(\"tr\");\r\n var rowsView = this.getView(\"rowsView\");\r\n if (isElementDefined($row)) {\r\n var rowIndex = this._getRowIndex($row);\r\n columnIndex = rowsView.getCellIndex($cell, rowIndex);\r\n columnIndex += this._getFocusedColumnIndexOffset(columnIndex);\r\n if (direction) {\r\n columnIndex = \"previous\" === direction ? columnIndex - 1 : columnIndex + 1;\r\n columnIndex = this._applyColumnIndexBoundaries(columnIndex)\r\n }\r\n return {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }\r\n },\r\n _focusCell: function($cell, isDisabled) {\r\n if (this._isCellValid($cell)) {\r\n this._focus($cell, isDisabled);\r\n return true\r\n }\r\n },\r\n _focusEditFormCell: function($cell) {\r\n if ($cell.hasClass(MASTER_DETAIL_CELL_CLASS)) {\r\n this._editorFactory.focus($cell, true)\r\n }\r\n },\r\n _resetFocusedCell: function(preventScroll) {\r\n var _this$_focusedView;\r\n var $cell = this._getFocusedCell();\r\n isElementDefined($cell) && $cell.removeAttr(\"tabindex\");\r\n this._isNeedFocus = false;\r\n this._isNeedScroll = false;\r\n this._focusedCellPosition = {};\r\n clearTimeout(this._updateFocusTimeout);\r\n null === (_this$_focusedView = this._focusedView) || void 0 === _this$_focusedView ? void 0 : _this$_focusedView.renderFocusState(preventScroll)\r\n },\r\n restoreFocusableElement: function(rowIndex, $event) {\r\n var that = this;\r\n var args;\r\n var $rowElement;\r\n var isUpArrow = (0, _type.isDefined)(rowIndex);\r\n var rowsView = that.getView(\"rowsView\");\r\n var $rowsViewElement = rowsView.element();\r\n var columnIndex = that._focusedCellPosition.columnIndex;\r\n var rowIndexOffset = that._dataController.getRowIndexOffset();\r\n rowIndex = isUpArrow ? rowIndex : rowsView.getTopVisibleItemIndex() + rowIndexOffset;\r\n if (!isUpArrow) {\r\n that._editorFactory.loseFocus();\r\n that._applyTabIndexToElement($rowsViewElement);\r\n _events_engine.default.trigger($rowsViewElement, \"focus\")\r\n } else {\r\n $rowElement = rowsView.getRow(rowIndex - rowIndexOffset);\r\n args = that._fireFocusedRowChanging($event, $rowElement);\r\n if (!args.cancel && args.rowIndexChanged) {\r\n rowIndex = args.newRowIndex\r\n }\r\n }\r\n if (!isUpArrow || !args.cancel) {\r\n that.setFocusedCellPosition(rowIndex, columnIndex)\r\n }\r\n isUpArrow && that._updateFocus()\r\n },\r\n _getNewPositionByCode: function(cellPosition, elementType, code) {\r\n var columnIndex = cellPosition.columnIndex;\r\n var rowIndex = cellPosition.rowIndex;\r\n var visibleColumnsCount;\r\n if (void 0 === cellPosition.rowIndex && \"next\" === code) {\r\n return {\r\n columnIndex: 0,\r\n rowIndex: 0\r\n }\r\n }\r\n switch (code) {\r\n case \"nextInRow\":\r\n case \"next\":\r\n visibleColumnsCount = this._getVisibleColumnCount();\r\n if (columnIndex < visibleColumnsCount - 1 && \"row\" !== elementType && this._hasValidCellAfterPosition({\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n })) {\r\n columnIndex++\r\n } else {\r\n if (!this._isLastRow(rowIndex) && \"next\" === code) {\r\n columnIndex = 0;\r\n rowIndex++\r\n }\r\n }\r\n break;\r\n case \"previousInRow\":\r\n case \"previous\":\r\n if (columnIndex > 0 && \"row\" !== elementType && this._hasValidCellBeforePosition({\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n })) {\r\n columnIndex--\r\n } else {\r\n if (rowIndex > 0 && \"previous\" === code) {\r\n rowIndex--;\r\n visibleColumnsCount = this._getVisibleColumnCount();\r\n columnIndex = visibleColumnsCount - 1\r\n }\r\n }\r\n break;\r\n case \"upArrow\":\r\n rowIndex = rowIndex > 0 ? rowIndex - 1 : rowIndex;\r\n break;\r\n case \"downArrow\":\r\n rowIndex = !this._isLastRow(rowIndex) ? rowIndex + 1 : rowIndex\r\n }\r\n return {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n }\r\n },\r\n setFocusedCellPosition: function(rowIndex, columnIndex) {\r\n this.setFocusedRowIndex(rowIndex);\r\n this.setFocusedColumnIndex(columnIndex)\r\n },\r\n setFocusedRowIndex: function(rowIndex) {\r\n if (!this._focusedCellPosition) {\r\n this._focusedCellPosition = {}\r\n }\r\n this._focusedCellPosition.rowIndex = rowIndex\r\n },\r\n setFocusedColumnIndex: function(columnIndex) {\r\n if (!this._focusedCellPosition) {\r\n this._focusedCellPosition = {}\r\n }\r\n this._focusedCellPosition.columnIndex = columnIndex\r\n },\r\n getRowIndex: function() {\r\n return this._focusedCellPosition ? this._focusedCellPosition.rowIndex : -1\r\n },\r\n getColumnIndex: function() {\r\n return this._focusedCellPosition ? this._focusedCellPosition.columnIndex : -1\r\n },\r\n getVisibleRowIndex: function() {\r\n var rowIndex = this._focusedCellPosition && this._focusedCellPosition.rowIndex;\r\n if (!(0, _type.isDefined)(rowIndex)) {\r\n return -1\r\n }\r\n return rowIndex - this._dataController.getRowIndexOffset()\r\n },\r\n getVisibleColumnIndex: function() {\r\n var columnIndex = this._focusedCellPosition && this._focusedCellPosition.columnIndex;\r\n if (!(0, _type.isDefined)(columnIndex)) {\r\n return -1\r\n }\r\n return columnIndex - this._columnsController.getColumnIndexOffset()\r\n },\r\n _applyColumnIndexBoundaries: function(columnIndex) {\r\n var visibleColumnsCount = this._getVisibleColumnCount();\r\n if (columnIndex < 0) {\r\n columnIndex = 0\r\n } else {\r\n if (columnIndex >= visibleColumnsCount) {\r\n columnIndex = visibleColumnsCount - 1\r\n }\r\n }\r\n return columnIndex\r\n },\r\n _isCellByPositionValid: function(cellPosition) {\r\n var $cell = (0, _renderer.default)(this._getCell(cellPosition));\r\n return this._isCellValid($cell)\r\n },\r\n _isLastRow: function(rowIndex) {\r\n if (this._isVirtualRowRender()) {\r\n return rowIndex >= this._dataController.totalItemsCount() - 1\r\n }\r\n return rowIndex === this._dataController.items().length - 1\r\n },\r\n _isFirstValidCell: function(cellPosition) {\r\n var isFirstValidCell = false;\r\n if (0 === cellPosition.rowIndex && cellPosition.columnIndex >= 0) {\r\n isFirstValidCell = isFirstValidCell || !this._hasValidCellBeforePosition(cellPosition)\r\n }\r\n return isFirstValidCell\r\n },\r\n _hasValidCellBeforePosition: function(cellPosition) {\r\n var columnIndex = cellPosition.columnIndex;\r\n var hasValidCells = false;\r\n while (columnIndex > 0 && !hasValidCells) {\r\n var checkingPosition = {\r\n columnIndex: --columnIndex,\r\n rowIndex: cellPosition.rowIndex\r\n };\r\n hasValidCells = this._isCellByPositionValid(checkingPosition)\r\n }\r\n return hasValidCells\r\n },\r\n _hasValidCellAfterPosition: function(cellPosition) {\r\n var columnIndex = cellPosition.columnIndex;\r\n var hasValidCells = false;\r\n var visibleColumnCount = this._getVisibleColumnCount();\r\n while (columnIndex < visibleColumnCount - 1 && !hasValidCells) {\r\n var checkingPosition = {\r\n columnIndex: ++columnIndex,\r\n rowIndex: cellPosition.rowIndex\r\n };\r\n hasValidCells = this._isCellByPositionValid(checkingPosition)\r\n }\r\n return hasValidCells\r\n },\r\n _isLastValidCell: function(cellPosition) {\r\n var nextColumnIndex = cellPosition.columnIndex >= 0 ? cellPosition.columnIndex + 1 : 0;\r\n var rowIndex = cellPosition.rowIndex;\r\n var checkingPosition = {\r\n columnIndex: nextColumnIndex,\r\n rowIndex: rowIndex\r\n };\r\n var visibleRows = this._dataController.getVisibleRows();\r\n var row = visibleRows && visibleRows[rowIndex];\r\n var isLastRow = this._isLastRow(rowIndex);\r\n if (!isLastRow) {\r\n return false\r\n }\r\n if (row && \"group\" === row.rowType && cellPosition.columnIndex > 0) {\r\n return true\r\n }\r\n if (cellPosition.columnIndex === this._getVisibleColumnCount() - 1) {\r\n return true\r\n }\r\n if (this._isCellByPositionValid(checkingPosition)) {\r\n return false\r\n }\r\n return this._isLastValidCell(checkingPosition)\r\n },\r\n _isCellValid: function($cell, isClick) {\r\n if (isElementDefined($cell)) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var $row = $cell.parent();\r\n var columnsController = this._columnsController;\r\n var columnIndex = rowsView.getCellIndex($cell) + columnsController.getColumnIndexOffset();\r\n var column = columnsController.getVisibleColumns(null, true)[columnIndex];\r\n var visibleColumnCount = this._getVisibleColumnCount();\r\n var editingController = this._editingController;\r\n var isMasterDetailRow = isDetailRow($row);\r\n var isShowWhenGrouped = column && column.showWhenGrouped;\r\n var isDataCell = column && !$cell.hasClass(COMMAND_EXPAND_CLASS) && isDataRow($row);\r\n var isValidGroupSpaceColumn = function() {\r\n return !isMasterDetailRow && column && (!(0, _type.isDefined)(column.groupIndex) || isShowWhenGrouped && isDataCell) || parseInt($cell.attr(\"colspan\")) > 1\r\n };\r\n if (this._isMasterDetailCell($cell)) {\r\n return true\r\n }\r\n if (visibleColumnCount > columnIndex && isValidGroupSpaceColumn()) {\r\n var rowItems = this._dataController.items();\r\n var visibleRowIndex = rowsView.getRowIndex($row);\r\n var row = rowItems[visibleRowIndex];\r\n var isCellEditing = editingController && this._isCellEditMode() && editingController.isEditing();\r\n var isRowEditingInCurrentRow = editingController && editingController.isEditRow(visibleRowIndex);\r\n var isEditing = isRowEditingInCurrentRow || isCellEditing;\r\n if (column.command) {\r\n if (this._isLegacyNavigation()) {\r\n return !isEditing && \"expand\" === column.command\r\n }\r\n if (isCellEditing) {\r\n return false\r\n }\r\n if (isRowEditingInCurrentRow) {\r\n return \"select\" !== column.command\r\n }\r\n return !isEditing\r\n }\r\n if (isCellEditing && row && \"data\" !== row.rowType) {\r\n return false\r\n }\r\n return !isEditing || column.allowEditing || isClick\r\n }\r\n }\r\n },\r\n getFirstValidCellInRow: function($row, columnIndex) {\r\n var that = this;\r\n var $cells = $row.find(\"> td\");\r\n var $cell;\r\n var $result;\r\n columnIndex = columnIndex || 0;\r\n for (var i = columnIndex; i < $cells.length; ++i) {\r\n $cell = $cells.eq(i);\r\n if (that._isCellValid($cell)) {\r\n $result = $cell;\r\n break\r\n }\r\n }\r\n return $result\r\n },\r\n _getNextCell: function(keyCode, elementType, cellPosition) {\r\n var focusedCellPosition = cellPosition || this._focusedCellPosition;\r\n var isRowFocusType = this.isRowFocusType();\r\n var includeCommandCells = isRowFocusType || (0, _array.inArray)(keyCode, [\"next\", \"previous\"]) > -1;\r\n var $cell;\r\n var $row;\r\n if (this._focusedView && focusedCellPosition) {\r\n var newFocusedCellPosition = this._getNewPositionByCode(focusedCellPosition, elementType, keyCode);\r\n $cell = (0, _renderer.default)(this._getCell(newFocusedCellPosition));\r\n var isLastCellOnDirection = \"previous\" === keyCode ? this._isFirstValidCell(newFocusedCellPosition) : this._isLastValidCell(newFocusedCellPosition);\r\n if (isElementDefined($cell) && !this._isCellValid($cell) && this._isCellInRow(newFocusedCellPosition, includeCommandCells) && !isLastCellOnDirection) {\r\n if (isRowFocusType) {\r\n $cell = this.getFirstValidCellInRow($cell.parent(), newFocusedCellPosition.columnIndex)\r\n } else {\r\n $cell = this._getNextCell(keyCode, \"cell\", newFocusedCellPosition)\r\n }\r\n }\r\n $row = isElementDefined($cell) && $cell.parent();\r\n if (this._hasSkipRow($row)) {\r\n var rowIndex = this._getRowIndex($row);\r\n if (!this._isLastRow(rowIndex)) {\r\n $cell = this._getNextCell(keyCode, \"row\", {\r\n columnIndex: focusedCellPosition.columnIndex,\r\n rowIndex: rowIndex\r\n })\r\n } else {\r\n return null\r\n }\r\n }\r\n return isElementDefined($cell) ? $cell : null\r\n }\r\n return null\r\n },\r\n _startEditing: function(eventArgs, fastEditingKey) {\r\n var focusedCellPosition = this._focusedCellPosition;\r\n var visibleRowIndex = this.getVisibleRowIndex();\r\n var visibleColumnIndex = this.getVisibleColumnIndex();\r\n var row = this._dataController.items()[visibleRowIndex];\r\n var column = this._columnsController.getVisibleColumns()[visibleColumnIndex];\r\n if (this._isAllowEditing(row, column)) {\r\n if (this._isRowEditMode()) {\r\n this._editingController.editRow(visibleRowIndex)\r\n } else {\r\n if (focusedCellPosition) {\r\n this._startEditCell(eventArgs, fastEditingKey)\r\n }\r\n }\r\n }\r\n },\r\n _isAllowEditing: function(row, column) {\r\n return this._editingController.allowUpdating({\r\n row: row\r\n }) && column && column.allowEditing\r\n },\r\n _editFocusedCell: function() {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var colIndex = this.getVisibleColumnIndex();\r\n return this._editingController.editCell(rowIndex, colIndex)\r\n },\r\n _startEditCell: function(eventArgs, fastEditingKey) {\r\n var _this7 = this;\r\n this._fastEditingStarted = (0, _type.isDefined)(fastEditingKey);\r\n var editResult = this._editFocusedCell();\r\n if (this._isFastEditingStarted()) {\r\n if (true === editResult) {\r\n this._editingCellHandler(eventArgs, fastEditingKey)\r\n } else {\r\n if (editResult && editResult.done) {\r\n var editorValue = fastEditingKey !== FAST_EDITING_DELETE_KEY ? fastEditingKey : \"\";\r\n editResult.done(function() {\r\n return _this7._editingCellHandler(eventArgs, editorValue)\r\n })\r\n }\r\n }\r\n }\r\n },\r\n _editingCellHandler: function(eventArgs, editorValue) {\r\n var $input = this._getFocusedCell().find(\".dx-texteditor-input\").eq(0);\r\n var keyDownEvent = (0, _index.createEvent)(eventArgs, {\r\n type: \"keydown\",\r\n target: $input.get(0)\r\n });\r\n var keyPressEvent = (0, _index.createEvent)(eventArgs, {\r\n type: \"keypress\",\r\n target: $input.get(0)\r\n });\r\n var inputEvent = (0, _index.createEvent)(eventArgs, {\r\n type: \"input\",\r\n target: $input.get(0)\r\n });\r\n _events_engine.default.trigger($input, keyDownEvent);\r\n if (!keyDownEvent.isDefaultPrevented()) {\r\n _events_engine.default.trigger($input, keyPressEvent);\r\n if (!keyPressEvent.isDefaultPrevented()) {\r\n var timeout = _browser.default.mozilla ? 25 : 0;\r\n setTimeout(function() {\r\n $input.val(editorValue);\r\n var $widgetContainer = $input.closest(\".\".concat(WIDGET_CLASS));\r\n _events_engine.default.off($widgetContainer, \"focusout\");\r\n _events_engine.default.one($widgetContainer, \"focusout\", function() {\r\n _events_engine.default.trigger($input, \"change\")\r\n });\r\n _events_engine.default.trigger($input, inputEvent)\r\n }, timeout)\r\n }\r\n }\r\n },\r\n _fireFocusChangingEvents: function($event, $cell, fireRowEvent, isHighlighted) {\r\n var args = {};\r\n var cellPosition = this._getCellPosition($cell) || {};\r\n if (this.isCellFocusType()) {\r\n args = this._fireFocusedCellChanging($event, $cell, isHighlighted);\r\n if (!args.cancel) {\r\n cellPosition.columnIndex = args.newColumnIndex;\r\n cellPosition.rowIndex = args.newRowIndex;\r\n isHighlighted = args.isHighlighted;\r\n $cell = (0, _renderer.default)(this._getCell(cellPosition))\r\n }\r\n }\r\n if (!args.cancel && fireRowEvent && $cell) {\r\n args = this._fireFocusedRowChanging($event, $cell.parent());\r\n if (!args.cancel) {\r\n cellPosition.rowIndex = args.newRowIndex;\r\n args.isHighlighted = isHighlighted\r\n }\r\n }\r\n args.$newCellElement = (0, _renderer.default)(this._getCell(cellPosition));\r\n if (!args.$newCellElement.length) {\r\n args.$newCellElement = $cell\r\n }\r\n return args\r\n },\r\n _fireFocusedCellChanging: function($event, $cellElement, isHighlighted) {\r\n var that = this;\r\n var prevCellIndex = that.option(\"focusedColumnIndex\");\r\n var prevRowIndex = that.option(\"focusedRowIndex\");\r\n var cellPosition = that._getCellPosition($cellElement);\r\n var columnIndex = cellPosition ? cellPosition.columnIndex : -1;\r\n var rowIndex = cellPosition ? cellPosition.rowIndex : -1;\r\n var args = {\r\n cellElement: $cellElement,\r\n prevColumnIndex: prevCellIndex,\r\n prevRowIndex: prevRowIndex,\r\n newColumnIndex: columnIndex,\r\n newRowIndex: rowIndex,\r\n rows: that._dataController.getVisibleRows(),\r\n columns: that._columnsController.getVisibleColumns(),\r\n event: $event,\r\n isHighlighted: isHighlighted || false,\r\n cancel: false\r\n };\r\n this._canceledCellPosition = null;\r\n that.executeAction(\"onFocusedCellChanging\", args);\r\n if (args.newColumnIndex !== columnIndex || args.newRowIndex !== rowIndex) {\r\n args.$newCellElement = (0, _renderer.default)(this._getCell({\r\n columnIndex: args.newColumnIndex,\r\n rowIndex: args.newRowIndex\r\n }))\r\n }\r\n if (args.cancel) {\r\n this._canceledCellPosition = {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }\r\n return args\r\n },\r\n _fireFocusedCellChanged: function($cellElement, prevCellIndex, prevRowIndex) {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var columnIndex = that.getView(\"rowsView\").getCellIndex($cellElement);\r\n var rowIndex = this._getRowIndex($cellElement && $cellElement.parent());\r\n var localRowIndex = Math.min(rowIndex - dataController.getRowIndexOffset(), dataController.items().length - 1);\r\n var isEditingCell = that._editingController.isEditCell(localRowIndex, columnIndex);\r\n var row = dataController.items()[localRowIndex];\r\n if (!isEditingCell && (prevCellIndex !== columnIndex || prevRowIndex !== rowIndex)) {\r\n that.executeAction(\"onFocusedCellChanged\", {\r\n cellElement: $cellElement,\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex,\r\n row: row,\r\n column: that._columnsController.getVisibleColumns()[columnIndex]\r\n })\r\n }\r\n },\r\n _fireFocusedRowChanging: function(eventArgs, $newFocusedRow) {\r\n var newRowIndex = this._getRowIndex($newFocusedRow);\r\n var dataController = this._dataController;\r\n var prevFocusedRowIndex = this.option(\"focusedRowIndex\");\r\n var loadingOperationTypes = dataController.loadingOperationTypes();\r\n var args = {\r\n rowElement: $newFocusedRow,\r\n prevRowIndex: prevFocusedRowIndex,\r\n newRowIndex: newRowIndex,\r\n event: eventArgs,\r\n rows: dataController.getVisibleRows(),\r\n cancel: false\r\n };\r\n if (!dataController || dataController.isLoading() && (loadingOperationTypes.reload || loadingOperationTypes.paging)) {\r\n args.cancel = true;\r\n return args\r\n }\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.executeAction(\"onFocusedRowChanging\", args);\r\n if (!args.cancel && args.newRowIndex !== newRowIndex) {\r\n args.resetFocusedRow = args.newRowIndex < 0;\r\n if (!args.resetFocusedRow) {\r\n this.setFocusedRowIndex(args.newRowIndex)\r\n }\r\n args.rowIndexChanged = true\r\n }\r\n }\r\n return args\r\n },\r\n _fireFocusedRowChanged: function($rowElement) {\r\n var row;\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var focusController = this.getController(\"focus\");\r\n var focusedRowIndex = null === focusController || void 0 === focusController ? void 0 : focusController.getFocusedRowIndexByKey(focusedRowKey);\r\n if (this.option(\"focusedRowEnabled\")) {\r\n if (focusedRowIndex >= 0) {\r\n var dataController = this._dataController;\r\n row = focusedRowIndex >= 0 && dataController.getVisibleRows()[focusedRowIndex - dataController.getRowIndexOffset()]\r\n }\r\n this.executeAction(\"onFocusedRowChanged\", {\r\n rowElement: $rowElement,\r\n rowIndex: focusedRowIndex,\r\n row: row\r\n })\r\n }\r\n },\r\n _isEventInCurrentGrid: function(event) {\r\n return _uiGrid_core2.default.isElementInCurrentGrid(this, (0, _renderer.default)(event.target))\r\n },\r\n _isRowEditMode: function() {\r\n var editMode = this._editingController.getEditMode();\r\n return editMode === EDIT_MODE_ROW || editMode === EDIT_MODE_FORM\r\n },\r\n _isCellEditMode: function() {\r\n var editMode = this._editingController.getEditMode();\r\n return editMode === EDIT_MODE_CELL || editMode === EDIT_MODE_BATCH\r\n },\r\n _isFastEditingAllowed: function() {\r\n return this._isCellEditMode() && this.option(\"keyboardNavigation.editOnKeyPress\")\r\n },\r\n _getInteractiveElement: function($cell, isLast) {\r\n var $focusedElement = $cell.find(INTERACTIVE_ELEMENTS_SELECTOR).filter(\":visible\");\r\n return isLast ? $focusedElement.last() : $focusedElement.first()\r\n },\r\n _applyTabIndexToElement: function($element) {\r\n var tabIndex = this.option(\"tabIndex\") || 0;\r\n $element.attr(\"tabindex\", (0, _type.isDefined)(tabIndex) ? tabIndex : 0)\r\n },\r\n _getCell: function(cellPosition) {\r\n if (this._focusedView && cellPosition) {\r\n var rowIndexOffset = this._dataController.getRowIndexOffset();\r\n var column = this._columnsController.getVisibleColumns(null, true)[cellPosition.columnIndex];\r\n var columnIndexOffset = column && column.fixed ? this._getFixedColumnIndexOffset(column) : this._columnsController.getColumnIndexOffset();\r\n var rowIndex = cellPosition.rowIndex >= 0 ? cellPosition.rowIndex - rowIndexOffset : -1;\r\n var columnIndex = cellPosition.columnIndex >= 0 ? cellPosition.columnIndex - columnIndexOffset : -1;\r\n return this._focusedView.getCell({\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n })\r\n }\r\n },\r\n _getRowIndex: function($row) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var rowIndex = rowsView.getRowIndex($row);\r\n if (rowIndex >= 0) {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n return rowIndex\r\n },\r\n _hasSkipRow: function($row) {\r\n var row = $row && $row.get(0);\r\n return row && (\"none\" === row.style.display || $row.hasClass(this.addWidgetPrefix(GROUP_FOOTER_CLASS)) || isDetailRow($row) && !$row.hasClass(this.addWidgetPrefix(EDIT_FORM_CLASS)))\r\n },\r\n _allowEditingOnEnterKey: function() {\r\n return \"startEdit\" === this.option(\"keyboardNavigation.enterKeyAction\")\r\n },\r\n _isLegacyNavigation: function() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n },\r\n _getDirectionCodeByKey: function(key) {\r\n var directionCode;\r\n switch (key) {\r\n case \"upArrow\":\r\n directionCode = \"prevRow\";\r\n break;\r\n case \"downArrow\":\r\n directionCode = \"nextRow\";\r\n break;\r\n case \"leftArrow\":\r\n directionCode = this.option(\"rtlEnabled\") ? \"nextInRow\" : \"previousInRow\";\r\n break;\r\n case \"rightArrow\":\r\n directionCode = this.option(\"rtlEnabled\") ? \"previousInRow\" : \"nextInRow\"\r\n }\r\n return directionCode\r\n },\r\n _isVirtualScrolling: function() {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n return \"virtual\" === scrollingMode || \"infinite\" === scrollingMode\r\n },\r\n _isVirtualRowRender: function() {\r\n return this._isVirtualScrolling() || \"virtual\" === this.option(\"scrolling.rowRenderingMode\")\r\n },\r\n _isVirtualColumnRender: function() {\r\n return \"virtual\" === this.option(\"scrolling.columnRenderingMode\")\r\n },\r\n _scrollBy: function(left, top, rowIndex, $event) {\r\n var that = this;\r\n var scrollable = this.getView(\"rowsView\").getScrollable();\r\n if (that._focusedCellPosition) {\r\n var scrollHandler = function scrollHandler() {\r\n scrollable.off(\"scroll\", scrollHandler);\r\n setTimeout(that.restoreFocusableElement.bind(that, rowIndex, $event))\r\n };\r\n scrollable.on(\"scroll\", scrollHandler)\r\n }\r\n return scrollable.scrollBy({\r\n left: left,\r\n top: top\r\n })\r\n },\r\n _isInsideEditForm: function(element) {\r\n return (0, _renderer.default)(element).closest(\".\" + this.addWidgetPrefix(EDIT_FORM_CLASS)).length > 0\r\n },\r\n _isMasterDetailCell: function(element) {\r\n var $masterDetailCell = (0, _renderer.default)(element).closest(\".\" + MASTER_DETAIL_CELL_CLASS);\r\n var $masterDetailGrid = $masterDetailCell.closest(\".\" + this.getWidgetContainerClass()).parent();\r\n return $masterDetailCell.length && $masterDetailGrid.is(this.component.$element())\r\n },\r\n _processNextCellInMasterDetail: function($nextCell) {\r\n if (!this._isInsideEditForm($nextCell) && $nextCell) {\r\n this._applyTabIndexToElement($nextCell)\r\n }\r\n },\r\n _handleTabKeyOnMasterDetailCell: function(target, direction) {\r\n if (this._isMasterDetailCell(target)) {\r\n this._updateFocusedCellPosition((0, _renderer.default)(target), direction);\r\n var $nextCell = this._getNextCell(direction, \"row\");\r\n this._processNextCellInMasterDetail($nextCell);\r\n return true\r\n }\r\n return false\r\n },\r\n _getElementType: function(target) {\r\n return (0, _renderer.default)(target).is(\"tr\") ? \"row\" : \"cell\"\r\n },\r\n _isFastEditingStarted: function() {\r\n return this._isFastEditingAllowed() && this._fastEditingStarted\r\n },\r\n _getVisibleColumnCount: function() {\r\n return this._columnsController.getVisibleColumns(null, true).length\r\n },\r\n _isCellInRow: function(cellPosition, includeCommandCells) {\r\n var columnIndex = cellPosition.columnIndex;\r\n var visibleColumnsCount = this._getVisibleColumnCount();\r\n return includeCommandCells ? columnIndex >= 0 && columnIndex <= visibleColumnsCount - 1 : columnIndex > 0 && columnIndex < visibleColumnsCount - 1\r\n },\r\n _getCellElementFromTarget: function(target) {\r\n var elementType = this._getElementType(target);\r\n var $targetElement = (0, _renderer.default)(target);\r\n var $cell;\r\n if (\"cell\" === elementType) {\r\n $cell = $targetElement.closest(\".\".concat(ROW_CLASS, \" > td\"))\r\n } else {\r\n $cell = $targetElement.children().not(\".\" + COMMAND_EXPAND_CLASS).first()\r\n }\r\n return $cell\r\n },\r\n _getRowsViewElement: function() {\r\n var rowsView = this.getView(\"rowsView\");\r\n return rowsView && rowsView.element()\r\n },\r\n isKeyboardEnabled: function() {\r\n return this.option(\"keyboardNavigation.enabled\")\r\n },\r\n _processCanceledEditCellPosition: function(rowIndex, columnIndex) {\r\n if (this._canceledCellPosition) {\r\n var isCanceled = this._canceledCellPosition.rowIndex === rowIndex && this._canceledCellPosition.columnIndex === columnIndex;\r\n this._canceledCellPosition = null;\r\n return isCanceled\r\n }\r\n }\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n useLegacyKeyboardNavigation: false,\r\n keyboardNavigation: {\r\n enabled: true,\r\n enterKeyAction: \"startEdit\",\r\n enterKeyDirection: \"none\",\r\n editOnKeyPress: false\r\n }\r\n }\r\n },\r\n controllers: {\r\n keyboardNavigation: KeyboardNavigationController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n _rowClick: function(e) {\r\n var editRowIndex = this.getController(\"editing\").getEditRowIndex();\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n if (editRowIndex === e.rowIndex) {\r\n keyboardController.setCellFocusType()\r\n }\r\n var needTriggerPointerEventHandler = isMobile() && this.option(\"focusedRowEnabled\");\r\n if (needTriggerPointerEventHandler) {\r\n this._triggerPointerDownEventHandler(e)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _triggerPointerDownEventHandler: function(e) {\r\n var originalEvent = e.event.originalEvent;\r\n if (originalEvent) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var $cell = (0, _renderer.default)(originalEvent.target);\r\n var columnIndex = this.getCellIndex($cell);\r\n var column = this.getController(\"columns\").getVisibleColumns()[columnIndex];\r\n var row = this.getController(\"data\").items()[e.rowIndex];\r\n if (keyboardController._isAllowEditing(row, column)) {\r\n var eventArgs = (0, _index.createEvent)(originalEvent, {\r\n currentTarget: originalEvent.target\r\n });\r\n keyboardController._pointerEventHandler(eventArgs)\r\n }\r\n }\r\n },\r\n renderFocusState: function(preventScroll) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var $rowsViewElement = this.element();\r\n if ($rowsViewElement && !(0, _selectors.focused)($rowsViewElement)) {\r\n $rowsViewElement.attr(\"tabindex\", null)\r\n }\r\n var rowIndex = keyboardController.getVisibleRowIndex();\r\n if (!(0, _type.isDefined)(rowIndex) || rowIndex < 0) {\r\n rowIndex = 0\r\n }\r\n var cellElements = this.getCellElements(rowIndex);\r\n if (keyboardController.isKeyboardEnabled() && cellElements.length) {\r\n this.updateFocusElementTabIndex(cellElements, preventScroll)\r\n }\r\n },\r\n updateFocusElementTabIndex: function(cellElements) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var $row = cellElements.eq(0).parent();\r\n if (isGroupRow($row)) {\r\n keyboardController._applyTabIndexToElement($row)\r\n } else {\r\n var columnIndex = keyboardController.getColumnIndex();\r\n if (!(0, _type.isDefined)(columnIndex) || columnIndex < 0) {\r\n columnIndex = 0\r\n }\r\n this._updateFocusedCellTabIndex(cellElements, columnIndex)\r\n }\r\n },\r\n _updateFocusedCellTabIndex: function(cellElements, columnIndex) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var cellElementsLength = cellElements ? cellElements.length : -1;\r\n var updateCellTabIndex = function($cell) {\r\n var isMasterDetailCell = keyboardController._isMasterDetailCell($cell);\r\n var isValidCell = keyboardController._isCellValid($cell);\r\n if (!isMasterDetailCell && isValidCell && isCellElement($cell)) {\r\n keyboardController._applyTabIndexToElement($cell);\r\n keyboardController.setCellFocusType();\r\n return true\r\n }\r\n };\r\n var $cell = cellElements.filter(\"[aria-colindex='\".concat(columnIndex + 1, \"']\"));\r\n if ($cell.length) {\r\n updateCellTabIndex($cell)\r\n } else {\r\n if (cellElementsLength <= columnIndex) {\r\n columnIndex = cellElementsLength - 1\r\n }\r\n for (var i = columnIndex; i < cellElementsLength; ++i) {\r\n if (updateCellTabIndex((0, _renderer.default)(cellElements[i]))) {\r\n break\r\n }\r\n }\r\n }\r\n },\r\n renderDelayedTemplates: function(change) {\r\n this.callBase.apply(this, arguments);\r\n this._renderFocusByChange(change)\r\n },\r\n _renderFocusByChange: function(change) {\r\n if (!change || !change.repaintChangesOnly) {\r\n var preventScroll = shouldPreventScroll(this);\r\n this.renderFocusState(preventScroll)\r\n }\r\n },\r\n _renderCore: function(change) {\r\n this.callBase.apply(this, arguments);\r\n this._renderFocusByChange(change)\r\n },\r\n _editCellPrepared: function($cell) {\r\n var editorInstance = this._getEditorInstance($cell);\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var isEditingNavigationMode = keyboardController && keyboardController._isFastEditingStarted();\r\n if (editorInstance && isEditingNavigationMode) {\r\n this._handleEditingNavigationMode(editorInstance)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _handleEditingNavigationMode: function(editorInstance) {\r\n [\"downArrow\", \"upArrow\"].forEach(function(keyName) {\r\n var originalKeyHandler = editorInstance._supportedKeys()[keyName];\r\n editorInstance.registerKeyHandler(keyName, function(e) {\r\n var isDropDownOpened = \"true\" === editorInstance._input().attr(\"aria-expanded\");\r\n if (isDropDownOpened) {\r\n return originalKeyHandler && originalKeyHandler.call(editorInstance, e)\r\n }\r\n })\r\n });\r\n editorInstance.registerKeyHandler(\"leftArrow\", _common.noop);\r\n editorInstance.registerKeyHandler(\"rightArrow\", _common.noop);\r\n var isDateBoxWithMask = editorInstance.NAME === DATEBOX_WIDGET_NAME && editorInstance.option(\"useMaskBehavior\");\r\n if (isDateBoxWithMask) {\r\n editorInstance.registerKeyHandler(\"enter\", _common.noop)\r\n }\r\n },\r\n _getEditorInstance: function($cell) {\r\n var $editor = $cell.find(\".dx-texteditor\").eq(0);\r\n return _uiGrid_core2.default.getWidgetInstance($editor)\r\n }\r\n }\r\n },\r\n controllers: {\r\n editing: {\r\n editCell: function(rowIndex, columnIndex) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n if (keyboardController._processCanceledEditCellPosition(rowIndex, columnIndex)) {\r\n return false\r\n }\r\n var isCellEditing = this.callBase(rowIndex, columnIndex);\r\n if (isCellEditing) {\r\n keyboardController.setupFocusedView()\r\n }\r\n return isCellEditing\r\n },\r\n editRow: function(rowIndex) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var visibleColumnIndex = keyboardController.getVisibleColumnIndex();\r\n var column = this._columnsController.getVisibleColumns()[visibleColumnIndex];\r\n if (column && column.type || this.option(\"editing.mode\") === EDIT_MODE_FORM) {\r\n keyboardController._resetFocusedCell()\r\n }\r\n this.callBase(rowIndex)\r\n },\r\n addRow: function(parentKey) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n keyboardController.setupFocusedView();\r\n keyboardController.setCellFocusType();\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getFocusedCellInRow: function(rowIndex) {\r\n var keyboardNavigationController = this.getController(\"keyboardNavigation\");\r\n var $cell = this.callBase(rowIndex);\r\n if (keyboardNavigationController.isKeyboardEnabled() && keyboardNavigationController._focusedCellPosition.rowIndex === rowIndex) {\r\n var $focusedCell = keyboardNavigationController._getFocusedCell();\r\n if (isElementDefined($focusedCell) && !$focusedCell.hasClass(COMMAND_EDIT_CLASS)) {\r\n $cell = $focusedCell\r\n }\r\n }\r\n return $cell\r\n },\r\n _processCanceledEditingCell: function() {\r\n var _this8 = this;\r\n this.closeEditCell().done(function() {\r\n var keyboardNavigation = _this8.getController(\"keyboardNavigation\");\r\n keyboardNavigation._updateFocus()\r\n })\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._keyboardNavigationController = this.getController(\"keyboardNavigation\")\r\n },\r\n closeEditCell: function() {\r\n var keyboardNavigation = this._keyboardNavigationController;\r\n keyboardNavigation._fastEditingStarted = false;\r\n var result = this.callBase.apply(this, arguments);\r\n keyboardNavigation._updateFocus();\r\n return result\r\n },\r\n _delayedInputFocus: function() {\r\n this._keyboardNavigationController._isNeedScroll = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _isEditingStart: function() {\r\n var keyboardNavigation = this.getController(\"keyboardNavigation\");\r\n var cancel = this.callBase.apply(this, arguments);\r\n if (cancel && !keyboardNavigation._isNeedFocus) {\r\n var $cell = keyboardNavigation._getFocusedCell();\r\n keyboardNavigation._focus($cell, true)\r\n }\r\n return cancel;\r\n }\r\n },\r\n data: {\r\n _correctRowIndices: function(getRowIndexCorrection) {\r\n var that = this;\r\n var keyboardNavigationController = that.getController(\"keyboardNavigation\");\r\n var editorFactory = that.getController(\"editorFactory\");\r\n var focusedCellPosition = keyboardNavigationController._focusedCellPosition;\r\n that.callBase.apply(that, arguments);\r\n if (focusedCellPosition && focusedCellPosition.rowIndex >= 0) {\r\n var focusedRowIndexCorrection = getRowIndexCorrection(focusedCellPosition.rowIndex);\r\n if (focusedRowIndexCorrection) {\r\n focusedCellPosition.rowIndex += focusedRowIndexCorrection;\r\n editorFactory.refocus()\r\n }\r\n }\r\n }\r\n },\r\n adaptiveColumns: {\r\n _showHiddenCellsInView: function(_ref) {\r\n var viewName = _ref.viewName,\r\n $cells = _ref.$cells,\r\n isCommandColumn = _ref.isCommandColumn;\r\n this.callBase.apply(this, arguments);\r\n viewName === COLUMN_HEADERS_VIEW && !isCommandColumn && $cells.each(function(_, cellElement) {\r\n var $cell = (0, _renderer.default)(cellElement);\r\n isCellInHeaderRow($cell) && $cell.attr(\"tabindex\", 0)\r\n })\r\n },\r\n _hideVisibleCellInView: function(_ref2) {\r\n var viewName = _ref2.viewName,\r\n $cell = _ref2.$cell,\r\n isCommandColumn = _ref2.isCommandColumn;\r\n this.callBase.apply(this, arguments);\r\n if (viewName === COLUMN_HEADERS_VIEW && !isCommandColumn && isCellInHeaderRow($cell)) {\r\n $cell.removeAttr(\"tabindex\")\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.adaptivity.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _click = require(\"../../events/click\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _guid = _interopRequireDefault(require(\"../../core/guid\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _form = _interopRequireDefault(require(\"../form\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _themes = require(\"../themes\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar COLUMN_HEADERS_VIEW = \"columnHeadersView\";\r\nvar ROWS_VIEW = \"rowsView\";\r\nvar FOOTER_VIEW = \"footerView\";\r\nvar COLUMN_VIEWS = [COLUMN_HEADERS_VIEW, ROWS_VIEW, FOOTER_VIEW];\r\nvar ADAPTIVE_NAMESPACE = \"dxDataGridAdaptivity\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar ADAPTIVE_ROW_TYPE = \"detailAdaptive\";\r\nvar FORM_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar FORM_ITEM_MODIFIED = \"dx-item-modified\";\r\nvar HIDDEN_COLUMN_CLASS = \"hidden-column\";\r\nvar ADAPTIVE_COLUMN_BUTTON_CLASS = \"adaptive-more\";\r\nvar ADAPTIVE_COLUMN_NAME_CLASS = \"dx-command-adaptive\";\r\nvar COMMAND_ADAPTIVE_HIDDEN_CLASS = \"dx-command-adaptive-hidden\";\r\nvar ADAPTIVE_DETAIL_ROW_CLASS = \"dx-adaptive-detail-row\";\r\nvar ADAPTIVE_ITEM_TEXT_CLASS = \"dx-adaptive-item-text\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar LAST_DATA_CELL_CLASS = \"dx-last-data-cell\";\r\nvar ADAPTIVE_COLUMN_NAME = \"adaptive\";\r\nvar EDIT_MODE_BATCH = \"batch\";\r\nvar EDIT_MODE_ROW = \"row\";\r\nvar EDIT_MODE_FORM = \"form\";\r\nvar EDIT_MODE_POPUP = \"popup\";\r\nvar REVERT_TOOLTIP_CLASS = \"revert-tooltip\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar EXPAND_ARIA_NAME = \"dxDataGrid-ariaAdaptiveExpand\";\r\nvar COLLAPSE_ARIA_NAME = \"dxDataGrid-ariaAdaptiveCollapse\";\r\n\r\nfunction getColumnId(that, column) {\r\n return that._columnsController.getColumnId(column)\r\n}\r\n\r\nfunction getDataCellElements($row) {\r\n return $row.find(\"td:not(.dx-datagrid-hidden-column):not([class*='dx-command-'])\")\r\n}\r\n\r\nfunction adaptiveCellTemplate(container, options) {\r\n var $adaptiveColumnButton;\r\n var $container = (0, _renderer.default)(container);\r\n var adaptiveColumnsController = options.component.getController(\"adaptiveColumns\");\r\n if (\"data\" === options.rowType) {\r\n $adaptiveColumnButton = (0, _renderer.default)(\"\").addClass(adaptiveColumnsController.addWidgetPrefix(ADAPTIVE_COLUMN_BUTTON_CLASS));\r\n _events_engine.default.on($adaptiveColumnButton, (0, _index.addNamespace)(_click.name, ADAPTIVE_NAMESPACE), adaptiveColumnsController.createAction(function() {\r\n adaptiveColumnsController.toggleExpandAdaptiveDetailRow(options.key)\r\n }));\r\n $adaptiveColumnButton.appendTo($container)\r\n } else {\r\n _uiGrid_core2.default.setEmptyText($container)\r\n }\r\n}\r\nvar AdaptiveColumnsController = _uiGrid_core.default.ViewController.inherit({\r\n _isRowEditMode: function() {\r\n var editMode = this._getEditMode();\r\n return editMode === EDIT_MODE_ROW\r\n },\r\n _isItemModified: function(item, cellOptions) {\r\n var columnIndex = this._columnsController.getVisibleIndex(item.column.index);\r\n var rowIndex = this._dataController.getRowIndexByKey(cellOptions.key);\r\n var row = this._dataController.items()[rowIndex + 1];\r\n return row && row.modifiedValues && (0, _type.isDefined)(row.modifiedValues[columnIndex])\r\n },\r\n _renderFormViewTemplate: function(item, cellOptions, $container) {\r\n var that = this;\r\n var column = item.column;\r\n var focusAction = that.createAction(function() {\r\n _events_engine.default.trigger($container, _click.name)\r\n });\r\n var value = column.calculateCellValue(cellOptions.data);\r\n var displayValue = _uiGrid_core2.default.getDisplayValue(column, value, cellOptions.data, cellOptions.rowType);\r\n var text = _uiGrid_core2.default.formatValue(displayValue, column);\r\n var isCellOrBatchEditMode = this._editingController.isCellOrBatchEditMode();\r\n var rowsView = that._rowsView;\r\n if (column.allowEditing && that.getController(\"keyboardNavigation\").isKeyboardEnabled()) {\r\n $container.attr(\"tabIndex\", that.option(\"tabIndex\"));\r\n if (isCellOrBatchEditMode) {\r\n _events_engine.default.off($container, \"focus\", focusAction);\r\n _events_engine.default.on($container, \"focus\", focusAction)\r\n }\r\n }\r\n if (column.cellTemplate) {\r\n var templateOptions = (0, _extend.extend)({}, cellOptions, {\r\n value: value,\r\n displayValue: displayValue,\r\n text: text,\r\n column: column\r\n });\r\n var isDomElement = !!$container.closest((0, _window.getWindow)().document).length;\r\n rowsView.renderTemplate($container, column.cellTemplate, templateOptions, isDomElement).done(function() {\r\n rowsView._cellPrepared($container, cellOptions)\r\n })\r\n } else {\r\n var container = $container.get(0);\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n $container.addClass(ADAPTIVE_ITEM_TEXT_CLASS);\r\n if (!(0, _type.isDefined)(text) || \"\" === text) {\r\n $container.html(\" \")\r\n }\r\n if (!that._isRowEditMode()) {\r\n if (that._isItemModified(item, cellOptions)) {\r\n $container.addClass(FORM_ITEM_MODIFIED)\r\n }\r\n }\r\n rowsView._cellPrepared($container, cellOptions)\r\n }\r\n },\r\n _getTemplate: function(item, cellOptions) {\r\n var that = this;\r\n var column = item.column;\r\n var editingController = this.getController(\"editing\");\r\n return function(options, container) {\r\n var $container = (0, _renderer.default)(container);\r\n var columnIndex = that._columnsController.getVisibleIndex(column.index);\r\n var templateOptions = (0, _extend.extend)({}, cellOptions);\r\n var renderFormTemplate = function() {\r\n var isItemEdited = that._isItemEdited(item);\r\n templateOptions.value = cellOptions.row.values[columnIndex];\r\n if (isItemEdited || column.showEditorAlways) {\r\n editingController.renderFormEditTemplate(templateOptions, item, options.component, $container, !isItemEdited)\r\n } else {\r\n templateOptions.column = column;\r\n templateOptions.columnIndex = columnIndex;\r\n that._renderFormViewTemplate(item, templateOptions, $container)\r\n }\r\n };\r\n renderFormTemplate();\r\n templateOptions.watch && templateOptions.watch(function() {\r\n return {\r\n isItemEdited: that._isItemEdited(item),\r\n value: cellOptions.row.values[columnIndex]\r\n }\r\n }, function() {\r\n $container.contents().remove();\r\n $container.removeClass(ADAPTIVE_ITEM_TEXT_CLASS);\r\n renderFormTemplate()\r\n })\r\n }\r\n },\r\n _isVisibleColumnsValid: function(visibleColumns) {\r\n var getCommandColumnsCount = function() {\r\n var result = 0;\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var visibleColumn = visibleColumns[j];\r\n if (visibleColumn.command) {\r\n result++\r\n }\r\n }\r\n return result\r\n };\r\n if (visibleColumns < 2) {\r\n return false\r\n }\r\n if (visibleColumns.length - getCommandColumnsCount() <= 1) {\r\n return false\r\n }\r\n return true\r\n },\r\n _calculatePercentWidths: function(widths, visibleColumns) {\r\n var that = this;\r\n var percentWidths = 0;\r\n visibleColumns.forEach(function(item, index) {\r\n if (widths[index] !== HIDDEN_COLUMNS_WIDTH) {\r\n percentWidths += that._getItemPercentWidth(item)\r\n }\r\n });\r\n return percentWidths\r\n },\r\n _isPercentWidth: function(width) {\r\n return (0, _type.isString)(width) && \"%\" === width.slice(-1)\r\n },\r\n _isColumnHidden: function(column) {\r\n return this._hiddenColumns.filter(function(hiddenColumn) {\r\n return hiddenColumn.index === column.index\r\n }).length > 0\r\n },\r\n _getAverageColumnsWidth: function(containerWidth, columns, columnsCanFit) {\r\n var that = this;\r\n var fixedColumnsWidth = 0;\r\n var columnsWithoutFixedWidthCount = 0;\r\n columns.forEach(function(column) {\r\n if (!that._isColumnHidden(column)) {\r\n var width = column.width;\r\n if ((0, _type.isDefined)(width) && !isNaN(parseFloat(width))) {\r\n fixedColumnsWidth += that._isPercentWidth(width) ? that._calculatePercentWidth({\r\n visibleIndex: column.visibleIndex,\r\n columnsCount: columns.length,\r\n columnsCanFit: columnsCanFit,\r\n bestFitWidth: column.bestFitWidth,\r\n columnWidth: width,\r\n containerWidth: containerWidth\r\n }) : parseFloat(width)\r\n } else {\r\n columnsWithoutFixedWidthCount++\r\n }\r\n }\r\n });\r\n return (containerWidth - fixedColumnsWidth) / columnsWithoutFixedWidthCount\r\n },\r\n _calculateColumnWidth: function(column, containerWidth, contentColumns, columnsCanFit) {\r\n var columnId = getColumnId(this, column);\r\n var widthOption = this._columnsController.columnOption(columnId, \"width\");\r\n var bestFitWidth = this._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n var columnsCount = contentColumns.length;\r\n var colWidth;\r\n if (widthOption && \"auto\" !== widthOption) {\r\n if (this._isPercentWidth(widthOption)) {\r\n colWidth = this._calculatePercentWidth({\r\n visibleIndex: column.visibleIndex,\r\n columnsCount: columnsCount,\r\n columnsCanFit: columnsCanFit,\r\n bestFitWidth: bestFitWidth,\r\n columnWidth: widthOption,\r\n containerWidth: containerWidth\r\n })\r\n } else {\r\n return widthOption\r\n }\r\n } else {\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n colWidth = columnAutoWidth || !!column.command ? bestFitWidth : this._getAverageColumnsWidth(containerWidth, contentColumns, columnsCanFit)\r\n }\r\n return colWidth\r\n },\r\n _calculatePercentWidth: function(options) {\r\n var columnFitted = options.visibleIndex < options.columnsCount - 1 && options.columnsCanFit;\r\n var partialWidth = options.containerWidth * parseFloat(options.columnWidth) / 100;\r\n var resultWidth = options.columnsCanFit && partialWidth < options.bestFitWidth ? options.bestFitWidth : partialWidth;\r\n return columnFitted ? options.containerWidth * parseFloat(options.columnWidth) / 100 : resultWidth\r\n },\r\n _getNotTruncatedColumnWidth: function(column, containerWidth, contentColumns, columnsCanFit) {\r\n var columnId = getColumnId(this, column);\r\n var widthOption = this._columnsController.columnOption(columnId, \"width\");\r\n var bestFitWidth = this._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n if (widthOption && \"auto\" !== widthOption && !this._isPercentWidth(widthOption)) {\r\n return parseFloat(widthOption)\r\n }\r\n var colWidth = this._calculateColumnWidth(column, containerWidth, contentColumns, columnsCanFit);\r\n return colWidth < bestFitWidth ? null : colWidth\r\n },\r\n _getItemPercentWidth: function(item) {\r\n var result = 0;\r\n if (item.width && this._isPercentWidth(item.width)) {\r\n result = parseFloat(item.width)\r\n }\r\n return result\r\n },\r\n _getCommandColumnsWidth: function() {\r\n var that = this;\r\n var columns = that._columnsController.getVisibleColumns();\r\n var colWidth = 0;\r\n (0, _iterator.each)(columns, function(index, column) {\r\n if (column.index < 0 || column.command) {\r\n colWidth += that._columnsController.columnOption(getColumnId(that, column), \"bestFitWidth\") || 0\r\n }\r\n });\r\n return colWidth\r\n },\r\n _isItemEdited: function(item) {\r\n if (this.isFormEditMode()) {\r\n return false\r\n }\r\n if (this._isRowEditMode()) {\r\n var editRowKey = this.option(\"editing.editRowKey\");\r\n if ((0, _common.equalByValue)(editRowKey, this._dataController.adaptiveExpandedKey())) {\r\n return true\r\n }\r\n } else {\r\n var rowIndex = this._dataController.getRowIndexByKey(this._dataController.adaptiveExpandedKey()) + 1;\r\n var columnIndex = this._columnsController.getVisibleIndex(item.column.index);\r\n return this._editingController.isEditCell(rowIndex, columnIndex)\r\n }\r\n },\r\n _getFormItemsByHiddenColumns: function(hiddenColumns) {\r\n var items = [];\r\n (0, _iterator.each)(hiddenColumns, function(_, column) {\r\n items.push({\r\n column: column,\r\n name: column.name,\r\n dataField: column.dataField,\r\n visibleIndex: column.visibleIndex\r\n })\r\n });\r\n return items\r\n },\r\n _getAdaptiveColumnVisibleIndex: function(visibleColumns) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n var column = visibleColumns[i];\r\n if (column.command === ADAPTIVE_COLUMN_NAME) {\r\n return i\r\n }\r\n }\r\n },\r\n _hideAdaptiveColumn: function(resultWidths, visibleColumns) {\r\n var visibleIndex = this._getAdaptiveColumnVisibleIndex(visibleColumns);\r\n if ((0, _type.isDefined)(visibleIndex)) {\r\n resultWidths[visibleIndex] = HIDDEN_COLUMNS_WIDTH;\r\n this._hideVisibleColumn({\r\n isCommandColumn: true,\r\n visibleIndex: visibleIndex\r\n })\r\n }\r\n },\r\n _showHiddenCellsInView: function(_ref) {\r\n var $cells = _ref.$cells,\r\n isCommandColumn = _ref.isCommandColumn;\r\n var cssClassNameToRemove = isCommandColumn ? COMMAND_ADAPTIVE_HIDDEN_CLASS : this.addWidgetPrefix(HIDDEN_COLUMN_CLASS);\r\n $cells.removeClass(cssClassNameToRemove)\r\n },\r\n _showHiddenColumns: function() {\r\n for (var i = 0; i < COLUMN_VIEWS.length; i++) {\r\n var view = this.getView(COLUMN_VIEWS[i]);\r\n if (view && view.isVisible() && view.element()) {\r\n var viewName = view.name;\r\n var $hiddenCommandCells = view.element().find(\".\" + COMMAND_ADAPTIVE_HIDDEN_CLASS);\r\n this._showHiddenCellsInView({\r\n viewName: viewName,\r\n $cells: $hiddenCommandCells,\r\n isCommandColumn: true\r\n });\r\n var $hiddenCells = view.element().find(\".\" + this.addWidgetPrefix(HIDDEN_COLUMN_CLASS));\r\n this._showHiddenCellsInView({\r\n viewName: viewName,\r\n $cells: $hiddenCells\r\n })\r\n }\r\n }\r\n },\r\n _isCellValid: function($cell) {\r\n return $cell && $cell.length && !$cell.hasClass(MASTER_DETAIL_CELL_CLASS) && !$cell.hasClass(GROUP_CELL_CLASS)\r\n },\r\n _hideVisibleColumn: function(_ref2) {\r\n var isCommandColumn = _ref2.isCommandColumn,\r\n visibleIndex = _ref2.visibleIndex;\r\n var that = this;\r\n COLUMN_VIEWS.forEach(function(viewName) {\r\n var view = that.getView(viewName);\r\n view && that._hideVisibleColumnInView({\r\n view: view,\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n })\r\n })\r\n },\r\n _hideVisibleColumnInView: function(_ref3) {\r\n var view = _ref3.view,\r\n isCommandColumn = _ref3.isCommandColumn,\r\n visibleIndex = _ref3.visibleIndex;\r\n var viewName = view.name;\r\n var $cellElement;\r\n var column = this._columnsController.getVisibleColumns()[visibleIndex];\r\n var editFormRowIndex = this._editingController && this._editingController.getEditFormRowIndex();\r\n if (view && view.isVisible() && column) {\r\n var rowsCount = view.getRowsCount();\r\n var $rowElements = view._getRowElements();\r\n for (var rowIndex = 0; rowIndex < rowsCount; rowIndex++) {\r\n var cancelClassAdding = rowIndex === editFormRowIndex && viewName === ROWS_VIEW && \"popup\" !== this.option(\"editing.mode\");\r\n if (!cancelClassAdding) {\r\n var currentVisibleIndex = viewName === COLUMN_HEADERS_VIEW ? this._columnsController.getVisibleIndex(column.index, rowIndex) : visibleIndex;\r\n if (currentVisibleIndex >= 0) {\r\n var $rowElement = $rowElements.eq(rowIndex);\r\n $cellElement = this._findCellElementInRow($rowElement, currentVisibleIndex);\r\n this._isCellValid($cellElement) && this._hideVisibleCellInView({\r\n viewName: viewName,\r\n isCommandColumn: isCommandColumn,\r\n $cell: $cellElement\r\n })\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _findCellElementInRow: function($rowElement, visibleColumnIndex) {\r\n var $rowCells = $rowElement.children();\r\n var visibleIndex = visibleColumnIndex;\r\n var cellIsInsideGroup = false;\r\n if ($rowElement.hasClass(GROUP_ROW_CLASS)) {\r\n var $groupCell = $rowElement.find(\".\".concat(GROUP_CELL_CLASS));\r\n var colSpan = $groupCell.attr(\"colspan\");\r\n if ($groupCell.length && (0, _type.isDefined)(colSpan)) {\r\n var groupCellLength = parseInt(colSpan);\r\n var endGroupIndex = $groupCell.index() + groupCellLength - 1;\r\n if (visibleColumnIndex > endGroupIndex) {\r\n visibleIndex = visibleColumnIndex - groupCellLength + 1\r\n } else {\r\n cellIsInsideGroup = true\r\n }\r\n }\r\n }\r\n var $cellElement = !cellIsInsideGroup ? $rowCells.eq(visibleIndex) : void 0;\r\n return $cellElement\r\n },\r\n _hideVisibleCellInView: function(_ref4) {\r\n var $cell = _ref4.$cell,\r\n isCommandColumn = _ref4.isCommandColumn;\r\n var cssClassNameToAdd = isCommandColumn ? COMMAND_ADAPTIVE_HIDDEN_CLASS : this.addWidgetPrefix(HIDDEN_COLUMN_CLASS);\r\n $cell.addClass(cssClassNameToAdd)\r\n },\r\n _getEditMode: function() {\r\n return this._editingController.getEditMode()\r\n },\r\n isFormEditMode: function() {\r\n var editMode = this._getEditMode();\r\n return editMode === EDIT_MODE_FORM || editMode === EDIT_MODE_POPUP\r\n },\r\n hideRedundantColumns: function(resultWidths, visibleColumns, hiddenQueue) {\r\n var that = this;\r\n this._hiddenColumns = [];\r\n if (that._isVisibleColumnsValid(visibleColumns) && hiddenQueue.length) {\r\n var totalWidth = 0;\r\n var $rootElement = that.component.$element();\r\n var rootElementWidth = $rootElement.width() - that._getCommandColumnsWidth();\r\n var getVisibleContentColumns = function() {\r\n var _this = this;\r\n return visibleColumns.filter(function(item) {\r\n return !item.command && 0 === _this._hiddenColumns.filter(function(i) {\r\n return i.index === item.index\r\n }).length\r\n })\r\n }.bind(this);\r\n var visibleContentColumns = getVisibleContentColumns();\r\n var contentColumnsCount = visibleContentColumns.length;\r\n var i;\r\n var hasHiddenColumns;\r\n var needHideColumn;\r\n do {\r\n needHideColumn = false;\r\n totalWidth = 0;\r\n var percentWidths = that._calculatePercentWidths(resultWidths, visibleColumns);\r\n var columnsCanFit = percentWidths < 100 && 0 !== percentWidths;\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n var visibleColumn = visibleColumns[i];\r\n var columnWidth = that._getNotTruncatedColumnWidth(visibleColumn, rootElementWidth, visibleContentColumns, columnsCanFit);\r\n var columnId = getColumnId(that, visibleColumn);\r\n var widthOption = that._columnsController.columnOption(columnId, \"width\");\r\n var minWidth = that._columnsController.columnOption(columnId, \"minWidth\");\r\n var columnBestFitWidth = that._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n if (resultWidths[i] === HIDDEN_COLUMNS_WIDTH) {\r\n hasHiddenColumns = true;\r\n continue\r\n }\r\n if (!columnWidth && !visibleColumn.command && !visibleColumn.fixed) {\r\n needHideColumn = true;\r\n break\r\n }\r\n if (!widthOption || \"auto\" === widthOption) {\r\n columnWidth = Math.max(columnBestFitWidth || 0, minWidth || 0)\r\n }\r\n if (visibleColumn.command !== ADAPTIVE_COLUMN_NAME || hasHiddenColumns) {\r\n totalWidth += columnWidth\r\n }\r\n }\r\n needHideColumn = needHideColumn || totalWidth > $rootElement.width();\r\n if (needHideColumn) {\r\n var column = hiddenQueue.pop();\r\n var visibleIndex = that._columnsController.getVisibleIndex(column.index);\r\n rootElementWidth += that._calculateColumnWidth(column, rootElementWidth, visibleContentColumns, columnsCanFit);\r\n that._hideVisibleColumn({\r\n visibleIndex: visibleIndex\r\n });\r\n resultWidths[visibleIndex] = HIDDEN_COLUMNS_WIDTH;\r\n this._hiddenColumns.push(column);\r\n visibleContentColumns = getVisibleContentColumns()\r\n }\r\n } while (needHideColumn && visibleContentColumns.length > 1 && hiddenQueue.length);\r\n if (contentColumnsCount === visibleContentColumns.length) {\r\n that._hideAdaptiveColumn(resultWidths, visibleColumns)\r\n }\r\n } else {\r\n that._hideAdaptiveColumn(resultWidths, visibleColumns)\r\n }\r\n },\r\n getItemContentByColumnIndex: function(visibleColumnIndex) {\r\n var $itemContent;\r\n for (var i = 0; i < this._$itemContents.length; i++) {\r\n $itemContent = this._$itemContents.eq(i);\r\n var item = $itemContent.data(\"dx-form-item\");\r\n if (item && item.column && this._columnsController.getVisibleIndex(item.column.index) === visibleColumnIndex) {\r\n return $itemContent\r\n }\r\n }\r\n },\r\n toggleExpandAdaptiveDetailRow: function(key, alwaysExpanded) {\r\n if (!(this.isFormEditMode() && this._editingController.isEditing())) {\r\n this.getController(\"data\").toggleExpandAdaptiveDetailRow(key, alwaysExpanded)\r\n }\r\n },\r\n createFormByHiddenColumns: function(container, options) {\r\n var that = this;\r\n var $container = (0, _renderer.default)(container);\r\n var userFormOptions = {\r\n items: that._getFormItemsByHiddenColumns(that._hiddenColumns),\r\n formID: \"dx-\" + new _guid.default\r\n };\r\n var defaultFormOptions = (0, _themes.isMaterial)() ? {\r\n colCount: 2\r\n } : {};\r\n this.executeAction(\"onAdaptiveDetailRowPreparing\", {\r\n formOptions: userFormOptions\r\n });\r\n that._$itemContents = null;\r\n that._form = that._createComponent((0, _renderer.default)(\"
    \").appendTo($container), _form.default, (0, _extend.extend)(defaultFormOptions, userFormOptions, {\r\n customizeItem: function(item) {\r\n var column = item.column || that._columnsController.columnOption(item.name || item.dataField);\r\n if (column) {\r\n item.label = item.label || {};\r\n item.label.text = item.label.text || column.caption;\r\n item.column = column;\r\n item.template = that._getTemplate(item, options, that.updateForm.bind(that))\r\n }\r\n userFormOptions.customizeItem && userFormOptions.customizeItem.call(this, item)\r\n },\r\n onContentReady: function(e) {\r\n userFormOptions.onContentReady && userFormOptions.onContentReady.call(this, e);\r\n that._$itemContents = $container.find(\".\" + FORM_ITEM_CONTENT_CLASS)\r\n }\r\n }))\r\n },\r\n hasAdaptiveDetailRowExpanded: function() {\r\n return (0, _type.isDefined)(this._dataController.adaptiveExpandedKey())\r\n },\r\n updateForm: function(hiddenColumns) {\r\n if (this.hasAdaptiveDetailRowExpanded()) {\r\n if (this._form && (0, _type.isDefined)(this._form._contentReadyAction)) {\r\n if (hiddenColumns && hiddenColumns.length) {\r\n this._form.option(\"items\", this._getFormItemsByHiddenColumns(hiddenColumns))\r\n } else {\r\n this._form.repaint()\r\n }\r\n }\r\n }\r\n },\r\n updateHidingQueue: function(columns) {\r\n var that = this;\r\n var hideableColumns = columns.filter(function(column) {\r\n return column.visible && !column.type && !column.fixed && !((0, _type.isDefined)(column.groupIndex) && column.groupIndex >= 0)\r\n });\r\n var columnsHasHidingPriority;\r\n var i;\r\n that._hidingColumnsQueue = [];\r\n if (that.option(\"allowColumnResizing\") && \"widget\" === that.option(\"columnResizingMode\")) {\r\n return that._hidingColumnsQueue\r\n }\r\n for (i = 0; i < hideableColumns.length; i++) {\r\n if ((0, _type.isDefined)(hideableColumns[i].hidingPriority) && hideableColumns[i].hidingPriority >= 0) {\r\n columnsHasHidingPriority = true;\r\n that._hidingColumnsQueue[hideableColumns[i].hidingPriority] = hideableColumns[i]\r\n }\r\n }\r\n if (columnsHasHidingPriority) {\r\n that._hidingColumnsQueue.reverse()\r\n } else {\r\n if (that.option(\"columnHidingEnabled\")) {\r\n for (i = 0; i < hideableColumns.length; i++) {\r\n var visibleIndex = that._columnsController.getVisibleIndex(hideableColumns[i].index);\r\n that._hidingColumnsQueue[visibleIndex] = hideableColumns[i]\r\n }\r\n }\r\n }\r\n that._hidingColumnsQueue = that._hidingColumnsQueue.filter(Object);\r\n return that._hidingColumnsQueue\r\n },\r\n getHiddenColumns: function() {\r\n return this._hiddenColumns\r\n },\r\n hasHiddenColumns: function() {\r\n return this._hiddenColumns.length > 0\r\n },\r\n getHidingColumnsQueue: function() {\r\n return this._hidingColumnsQueue\r\n },\r\n init: function() {\r\n var that = this;\r\n that._columnsController = that.getController(\"columns\");\r\n that._dataController = that.getController(\"data\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._columnsController.addCommandColumn({\r\n type: ADAPTIVE_COLUMN_NAME,\r\n command: ADAPTIVE_COLUMN_NAME,\r\n visible: true,\r\n adaptiveHidden: true,\r\n cssClass: ADAPTIVE_COLUMN_NAME_CLASS,\r\n alignment: \"center\",\r\n width: \"auto\",\r\n cellTemplate: adaptiveCellTemplate,\r\n fixedPosition: \"right\"\r\n });\r\n that._columnsController.columnsChanged.add(function() {\r\n var isAdaptiveVisible = !!that.updateHidingQueue(that._columnsController.getColumns()).length;\r\n that._columnsController.columnOption(\"command:adaptive\", \"adaptiveHidden\", !isAdaptiveVisible, true)\r\n });\r\n that._editingController = that.getController(\"editing\");\r\n that._hidingColumnsQueue = [];\r\n that._hiddenColumns = [];\r\n that.createAction(\"onAdaptiveDetailRowPreparing\");\r\n that.callBase()\r\n },\r\n optionChanged: function(args) {\r\n if (\"columnHidingEnabled\" === args.name) {\r\n this._columnsController.columnOption(\"command:adaptive\", \"adaptiveHidden\", !args.value)\r\n }\r\n this.callBase(args)\r\n },\r\n publicMethods: function() {\r\n return [\"isAdaptiveDetailRowExpanded\", \"expandAdaptiveDetailRow\", \"collapseAdaptiveDetailRow\"]\r\n },\r\n isAdaptiveDetailRowExpanded: function(key) {\r\n return this._dataController.adaptiveExpandedKey() && (0, _common.equalByValue)(this._dataController.adaptiveExpandedKey(), key)\r\n },\r\n expandAdaptiveDetailRow: function(key) {\r\n if (!this.hasAdaptiveDetailRowExpanded()) {\r\n this.toggleExpandAdaptiveDetailRow(key)\r\n }\r\n },\r\n collapseAdaptiveDetailRow: function() {\r\n if (this.hasAdaptiveDetailRowExpanded()) {\r\n this.toggleExpandAdaptiveDetailRow()\r\n }\r\n },\r\n updateCommandAdaptiveAriaLabel: function(key, label) {\r\n var rowIndex = this._dataController.getRowIndexByKey(key);\r\n if (rowIndex === -1) {\r\n return\r\n }\r\n var $row = (0, _renderer.default)(this.component.getRowElement(rowIndex));\r\n this.setCommandAdaptiveAriaLabel($row, label)\r\n },\r\n setCommandAdaptiveAriaLabel: function($row, labelName) {\r\n var $adaptiveCommand = $row.find(\".dx-command-adaptive\");\r\n $adaptiveCommand.attr(\"aria-label\", _message.default.format(labelName))\r\n }\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n columnHidingEnabled: false,\r\n onAdaptiveDetailRowPreparing: null\r\n }\r\n },\r\n controllers: {\r\n adaptiveColumns: AdaptiveColumnsController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n _getCellTemplate: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n if (options.rowType === ADAPTIVE_ROW_TYPE && \"detail\" === column.command) {\r\n return function(container, options) {\r\n that._adaptiveColumnsController.createFormByHiddenColumns((0, _renderer.default)(container), options)\r\n }\r\n }\r\n return that.callBase(options)\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (row && row.rowType === ADAPTIVE_ROW_TYPE && row.key === this._dataController.adaptiveExpandedKey()) {\r\n $row.addClass(ADAPTIVE_DETAIL_ROW_CLASS)\r\n }\r\n return $row\r\n },\r\n _renderCells: function($row, options) {\r\n this.callBase($row, options);\r\n var adaptiveColumnsController = this._adaptiveColumnsController;\r\n var hidingColumnsQueueLength = adaptiveColumnsController.getHidingColumnsQueue().length;\r\n var hiddenColumnsLength = adaptiveColumnsController.getHiddenColumns().length;\r\n if (hidingColumnsQueueLength && !hiddenColumnsLength) {\r\n getDataCellElements($row).last().addClass(LAST_DATA_CELL_CLASS)\r\n }\r\n if (\"data\" === options.row.rowType) {\r\n adaptiveColumnsController.setCommandAdaptiveAriaLabel($row, EXPAND_ARIA_NAME)\r\n }\r\n },\r\n _getColumnIndexByElementCore: function($element) {\r\n var $itemContent = $element.closest(\".\" + FORM_ITEM_CONTENT_CLASS);\r\n if ($itemContent.length && $itemContent.closest(this.component.$element()).length) {\r\n var formItem = $itemContent.length ? $itemContent.first().data(\"dx-form-item\") : null;\r\n return formItem && formItem.column && this._columnsController.getVisibleIndex(formItem.column.index)\r\n } else {\r\n return this.callBase($element)\r\n }\r\n },\r\n _cellPrepared: function($cell, options) {\r\n this.callBase.apply(this, arguments);\r\n if (options.row.rowType !== ADAPTIVE_ROW_TYPE && options.column.visibleWidth === HIDDEN_COLUMNS_WIDTH) {\r\n $cell.addClass(this.addWidgetPrefix(HIDDEN_COLUMN_CLASS))\r\n }\r\n },\r\n _getCellElement: function(rowIndex, columnIdentifier) {\r\n var item = this._dataController.items()[rowIndex];\r\n if (item && item.rowType === ADAPTIVE_ROW_TYPE) {\r\n return this._adaptiveColumnsController.getItemContentByColumnIndex(columnIdentifier)\r\n } else {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n },\r\n getContextMenuItems: function(options) {\r\n if (options.row && \"detailAdaptive\" === options.row.rowType) {\r\n var view = this.component.getView(\"columnHeadersView\");\r\n var formItem = (0, _renderer.default)(options.targetElement).closest(\".dx-field-item-label\").next().data(\"dx-form-item\");\r\n options.column = formItem ? formItem.column : options.column;\r\n return view.getContextMenuItems && view.getContextMenuItems(options)\r\n }\r\n return this.callBase && this.callBase(options)\r\n },\r\n isClickableElement: function($target) {\r\n var isClickable = this.callBase ? this.callBase($target) : false;\r\n return isClickable || !!$target.closest(\".\" + ADAPTIVE_COLUMN_NAME_CLASS).length\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._adaptiveColumnsController = this.getController(\"adaptiveColumns\")\r\n }\r\n }\r\n },\r\n controllers: {\r\n \"export\": {\r\n _updateColumnWidth: function(column, width) {\r\n this.callBase(column, column.visibleWidth === HIDDEN_COLUMNS_WIDTH ? column.bestFitWidth : width)\r\n }\r\n },\r\n columnsResizer: {\r\n _pointCreated: function(point, cellsLength, columns) {\r\n var result = this.callBase(point, cellsLength, columns);\r\n var currentColumn = columns[point.columnIndex] || {};\r\n var nextColumnIndex = this._getNextColumnIndex(point.columnIndex);\r\n var nextColumn = columns[nextColumnIndex] || {};\r\n var hasHiddenColumnsOnly = nextColumnIndex !== point.columnIndex + 1 && nextColumn.command;\r\n var hasAdaptiveHiddenWidth = currentColumn.visibleWidth === HIDDEN_COLUMNS_WIDTH || hasHiddenColumnsOnly;\r\n return result || hasAdaptiveHiddenWidth\r\n },\r\n _getNextColumnIndex: function(currentColumnIndex) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var index = this.callBase(currentColumnIndex);\r\n while (visibleColumns[index] && visibleColumns[index].visibleWidth === HIDDEN_COLUMNS_WIDTH) {\r\n index++\r\n }\r\n return index\r\n }\r\n },\r\n draggingHeader: {\r\n _pointCreated: function(point, columns, location, sourceColumn) {\r\n var result = this.callBase(point, columns, location, sourceColumn);\r\n var column = columns[point.columnIndex - 1] || {};\r\n var hasAdaptiveHiddenWidth = column.visibleWidth === HIDDEN_COLUMNS_WIDTH;\r\n return result || hasAdaptiveHiddenWidth\r\n }\r\n },\r\n editing: {\r\n _isRowEditMode: function() {\r\n return this.getEditMode() === EDIT_MODE_ROW\r\n },\r\n _getFormEditItemTemplate: function(cellOptions, column) {\r\n if (this.getEditMode() !== EDIT_MODE_ROW && \"detailAdaptive\" === cellOptions.rowType) {\r\n cellOptions.columnIndex = this._columnsController.getVisibleIndex(column.index);\r\n return this.getColumnTemplate(cellOptions)\r\n }\r\n return this.callBase(cellOptions, column)\r\n },\r\n _closeEditItem: function($targetElement) {\r\n var $itemContents = $targetElement.closest(\".\" + FORM_ITEM_CONTENT_CLASS);\r\n var rowIndex = this._dataController.getRowIndexByKey(this._dataController.adaptiveExpandedKey()) + 1;\r\n var formItem = $itemContents.length ? $itemContents.first().data(\"dx-form-item\") : null;\r\n var columnIndex = formItem && formItem.column && this._columnsController.getVisibleIndex(formItem.column.index);\r\n if (!this.isEditCell(rowIndex, columnIndex)) {\r\n this.callBase($targetElement)\r\n }\r\n },\r\n _beforeUpdateItems: function(rowIndices, rowIndex) {\r\n if (!this._adaptiveController.isFormEditMode() && this._adaptiveController.hasHiddenColumns()) {\r\n var items = this._dataController.items();\r\n var item = items[rowIndex];\r\n var oldExpandRowIndex = _uiGrid_core2.default.getIndexByKey(this._dataController.adaptiveExpandedKey(), items);\r\n this._isForceRowAdaptiveExpand = !this._adaptiveController.hasAdaptiveDetailRowExpanded();\r\n if (oldExpandRowIndex >= 0) {\r\n rowIndices.push(oldExpandRowIndex + 1)\r\n }\r\n rowIndices.push(rowIndex + 1);\r\n this._dataController.adaptiveExpandedKey(item.key)\r\n }\r\n },\r\n _afterInsertRow: function(options) {\r\n this.callBase(options);\r\n if (this._adaptiveController.hasHiddenColumns()) {\r\n this._adaptiveController.toggleExpandAdaptiveDetailRow(options.key, this.isRowEditMode());\r\n this._isForceRowAdaptiveExpand = true\r\n }\r\n },\r\n _collapseAdaptiveDetailRow: function() {\r\n if (this._isRowEditMode() && this._isForceRowAdaptiveExpand) {\r\n this._adaptiveController.collapseAdaptiveDetailRow();\r\n this._isForceRowAdaptiveExpand = false\r\n }\r\n },\r\n _cancelEditAdaptiveDetailRow: function() {\r\n if (this._adaptiveController.hasHiddenColumns()) {\r\n this._collapseAdaptiveDetailRow()\r\n }\r\n },\r\n _afterSaveEditData: function() {\r\n var _this2 = this;\r\n this.callBase.apply(this, arguments);\r\n var deferred = new _deferred.Deferred;\r\n if (this._isRowEditMode() && this._adaptiveController.hasHiddenColumns()) {\r\n (0, _deferred.when)(this.getController(\"validating\").validate(true)).done(function(isValid) {\r\n if (isValid) {\r\n _this2._cancelEditAdaptiveDetailRow()\r\n }\r\n deferred.resolve()\r\n })\r\n } else {\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n },\r\n _beforeCancelEditData: function() {\r\n this.callBase();\r\n this._cancelEditAdaptiveDetailRow()\r\n },\r\n _getRowIndicesForCascadeUpdating: function(row) {\r\n var rowIndices = this.callBase.apply(this, arguments);\r\n if (this._adaptiveController.isAdaptiveDetailRowExpanded(row.key)) {\r\n rowIndices.push(row.rowType === ADAPTIVE_ROW_TYPE ? row.rowIndex - 1 : row.rowIndex + 1)\r\n }\r\n return rowIndices\r\n },\r\n _beforeCloseEditCellInBatchMode: function(rowIndices) {\r\n var expandedKey = this._dataController._adaptiveExpandedKey;\r\n if (expandedKey) {\r\n var rowIndex = _uiGrid_core2.default.getIndexByKey(expandedKey, this._dataController.items());\r\n if (rowIndex > -1) {\r\n rowIndices.unshift(rowIndex)\r\n }\r\n }\r\n },\r\n editRow: function(rowIndex) {\r\n if (this._adaptiveController.isFormEditMode()) {\r\n this._adaptiveController.collapseAdaptiveDetailRow()\r\n }\r\n this.callBase(rowIndex)\r\n },\r\n deleteRow: function(rowIndex) {\r\n var rowKey = this._dataController.getKeyByRowIndex(rowIndex);\r\n if (this.getEditMode() === EDIT_MODE_BATCH && this._adaptiveController.isAdaptiveDetailRowExpanded(rowKey)) {\r\n this._adaptiveController.collapseAdaptiveDetailRow()\r\n }\r\n this.callBase(rowIndex)\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._adaptiveController = this.getController(\"adaptiveColumns\")\r\n }\r\n },\r\n resizing: {\r\n _needBestFit: function() {\r\n return this.callBase() || !!this._adaptiveColumnsController.getHidingColumnsQueue().length\r\n },\r\n _updateScrollableForIE: function() {\r\n var that = this;\r\n if (_browser.default.msie && parseInt(_browser.default.version) <= 11) {\r\n this._updateScrollableTimeoutID = setTimeout(function() {\r\n that.getView(\"rowsView\")._updateScrollable()\r\n })\r\n }\r\n },\r\n _correctColumnWidths: function(resultWidths, visibleColumns) {\r\n var adaptiveController = this._adaptiveColumnsController;\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var oldHiddenColumns = adaptiveController.getHiddenColumns();\r\n var hidingColumnsQueue = adaptiveController.updateHidingQueue(this._columnsController.getColumns());\r\n adaptiveController.hideRedundantColumns(resultWidths, visibleColumns, hidingColumnsQueue);\r\n var hiddenColumns = adaptiveController.getHiddenColumns();\r\n if (adaptiveController.hasAdaptiveDetailRowExpanded()) {\r\n if (oldHiddenColumns.length !== hiddenColumns.length) {\r\n adaptiveController.updateForm(hiddenColumns)\r\n }\r\n }!hiddenColumns.length && adaptiveController.collapseAdaptiveDetailRow();\r\n if (columnAutoWidth && hidingColumnsQueue.length && !hiddenColumns.length) {\r\n this._updateScrollableForIE()\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n isBestFit && this._adaptiveColumnsController._showHiddenColumns();\r\n this.callBase(isBestFit)\r\n },\r\n _needStretch: function() {\r\n var adaptiveColumnsController = this._adaptiveColumnsController;\r\n return this.callBase.apply(this, arguments) || adaptiveColumnsController.getHidingColumnsQueue().length || adaptiveColumnsController.hasHiddenColumns()\r\n },\r\n init: function() {\r\n this._adaptiveColumnsController = this.getController(\"adaptiveColumns\");\r\n this.callBase()\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._updateScrollableTimeoutID)\r\n }\r\n },\r\n data: {\r\n _processItems: function(items, change) {\r\n var that = this;\r\n var changeType = change.changeType;\r\n items = that.callBase.apply(that, arguments);\r\n if (\"loadingAll\" === changeType || !(0, _type.isDefined)(that._adaptiveExpandedKey)) {\r\n return items\r\n }\r\n var expandRowIndex = _uiGrid_core2.default.getIndexByKey(that._adaptiveExpandedKey, items);\r\n if (expandRowIndex >= 0) {\r\n var item = items[expandRowIndex];\r\n items.splice(expandRowIndex + 1, 0, {\r\n visible: true,\r\n rowType: ADAPTIVE_ROW_TYPE,\r\n key: item.key,\r\n data: item.data,\r\n node: item.node,\r\n modifiedValues: item.modifiedValues,\r\n isNewRow: item.isNewRow,\r\n values: item.values\r\n })\r\n } else {\r\n if (\"refresh\" === changeType) {\r\n that._adaptiveExpandedKey = void 0\r\n }\r\n }\r\n return items\r\n },\r\n _getRowIndicesForExpand: function(key) {\r\n var rowIndices = this.callBase.apply(this, arguments);\r\n if (this.getController(\"adaptiveColumns\").isAdaptiveDetailRowExpanded(key)) {\r\n var lastRowIndex = rowIndices[rowIndices.length - 1];\r\n rowIndices.push(lastRowIndex + 1)\r\n }\r\n return rowIndices\r\n },\r\n adaptiveExpandedKey: function(value) {\r\n if ((0, _type.isDefined)(value)) {\r\n this._adaptiveExpandedKey = value\r\n } else {\r\n return this._adaptiveExpandedKey\r\n }\r\n },\r\n toggleExpandAdaptiveDetailRow: function(key, alwaysExpanded) {\r\n var that = this;\r\n var oldExpandLoadedRowIndex = _uiGrid_core2.default.getIndexByKey(that._adaptiveExpandedKey, that._items);\r\n var newExpandLoadedRowIndex = _uiGrid_core2.default.getIndexByKey(key, that._items);\r\n if (oldExpandLoadedRowIndex >= 0 && oldExpandLoadedRowIndex === newExpandLoadedRowIndex && !alwaysExpanded) {\r\n key = void 0;\r\n newExpandLoadedRowIndex = -1\r\n }\r\n var oldKey = that._adaptiveExpandedKey;\r\n that._adaptiveExpandedKey = key;\r\n if (oldExpandLoadedRowIndex >= 0) {\r\n oldExpandLoadedRowIndex++\r\n }\r\n if (newExpandLoadedRowIndex >= 0) {\r\n newExpandLoadedRowIndex++\r\n }\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n that.updateItems({\r\n allowInvisibleRowIndices: true,\r\n changeType: \"update\",\r\n rowIndices: [oldExpandLoadedRowIndex - rowIndexDelta, newExpandLoadedRowIndex - rowIndexDelta]\r\n });\r\n var adaptiveColumnsController = this.getController(\"adaptiveColumns\");\r\n adaptiveColumnsController.updateCommandAdaptiveAriaLabel(key, COLLAPSE_ARIA_NAME);\r\n adaptiveColumnsController.updateCommandAdaptiveAriaLabel(oldKey, EXPAND_ARIA_NAME)\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._adaptiveExpandedKey = void 0\r\n }\r\n },\r\n editorFactory: {\r\n _getFocusCellSelector: function() {\r\n return this.callBase() + \", .dx-adaptive-detail-row .dx-field-item > .dx-field-item-content\"\r\n },\r\n _getTooltipsSelector: function() {\r\n return this.callBase() + \", .dx-field-item-content .\" + this.addWidgetPrefix(REVERT_TOOLTIP_CLASS)\r\n }\r\n },\r\n columns: {\r\n _isColumnVisible: function(column) {\r\n return this.callBase(column) && !column.adaptiveHidden\r\n }\r\n },\r\n keyboardNavigation: {\r\n _isCellValid: function($cell) {\r\n return this.callBase.apply(this, arguments) && !$cell.hasClass(this.addWidgetPrefix(HIDDEN_COLUMN_CLASS))\r\n },\r\n _processNextCellInMasterDetail: function($nextCell) {\r\n this.callBase($nextCell);\r\n var isCellOrBatchMode = this._editingController.isCellOrBatchEditMode();\r\n if (!this._isInsideEditForm($nextCell) && $nextCell && isCellOrBatchMode) {\r\n var focusHandler = function focusHandler() {\r\n _events_engine.default.off($nextCell, \"focus\", focusHandler);\r\n _events_engine.default.trigger($nextCell, \"dxclick\")\r\n };\r\n _events_engine.default.on($nextCell, \"focus\", focusHandler)\r\n }\r\n },\r\n _handleTabKeyOnMasterDetailCell: function(eventTarget, direction) {\r\n var result = this.callBase(eventTarget, direction);\r\n var $currentCell = this._getFocusedCell();\r\n var $row = $currentCell && $currentCell.parent();\r\n if (!result && $row && $row.length) {\r\n var $dataCells = getDataCellElements($row);\r\n var $targetCell = \"next\" === direction ? $dataCells.last() : $dataCells.first();\r\n var rowIndex = $row.get(0).rowIndex;\r\n var adaptiveController = this._adaptiveController;\r\n var key = this._dataController.getKeyByRowIndex(\"next\" === direction ? rowIndex : rowIndex - 1);\r\n var isCellElementsEquals = $currentCell && $targetCell && $currentCell.get(0) === $targetCell.get(0);\r\n return adaptiveController.isAdaptiveDetailRowExpanded(key) && isCellElementsEquals\r\n }\r\n return result\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._adaptiveController = this.getController(\"adaptiveColumns\")\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","var ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n return aTypedArrayConstructor(speciesConstructor(originalArray, originalArray[TYPED_ARRAY_CONSTRUCTOR]));\n};\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.editor_factory.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.editor_factory\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"editorFactory\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.item_list.thumbnails.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _contextmenu = require(\"../../events/contextmenu\");\r\nvar _uiFile_manager = require(\"./ui.file_manager.common\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _uiFile_managerItems_listThumbnails = _interopRequireDefault(require(\"./ui.file_manager.items_list.thumbnails.list_box\"));\r\nvar _uiFile_manager2 = _interopRequireDefault(require(\"./ui.file_manager.item_list\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_LIST_CLASS = \"dx-filemanager-thumbnails\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_CLASS = \"dx-filemanager-thumbnails-item\";\r\nvar FILE_MANAGER_THUMBNAILS_ITEM_THUMBNAIL_CLASS = \"dx-filemanager-thumbnails-item-thumbnail\";\r\nvar FILE_MANAGER_THUMBNAILS_EVENT_NAMESPACE = \"dxFileManager_thumbnails\";\r\nvar FileManagerThumbnailsItemList = function(_FileManagerItemListB) {\r\n _inheritsLoose(FileManagerThumbnailsItemList, _FileManagerItemListB);\r\n\r\n function FileManagerThumbnailsItemList() {\r\n return _FileManagerItemListB.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerThumbnailsItemList.prototype;\r\n _proto._initMarkup = function() {\r\n _FileManagerItemListB.prototype._initMarkup.call(this);\r\n this.$element().addClass(FILE_MANAGER_THUMBNAILS_ITEM_LIST_CLASS);\r\n var contextMenuEvent = (0, _index.addNamespace)(_contextmenu.name, FILE_MANAGER_THUMBNAILS_EVENT_NAMESPACE);\r\n _events_engine.default.on(this.$element(), contextMenuEvent, this._onContextMenu.bind(this));\r\n this._createItemList()\r\n };\r\n _proto._createItemList = function() {\r\n var _this = this;\r\n var selectionMode = this._isMultipleSelectionMode() ? \"multiple\" : \"single\";\r\n var $itemListContainer = (0, _renderer.default)(\"
    \").appendTo(this.$element());\r\n this._itemList = this._createComponent($itemListContainer, _uiFile_managerItems_listThumbnails.default, {\r\n dataSource: this._createDataSource(),\r\n selectionMode: selectionMode,\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n focusedItemKey: this.option(\"focusedItemKey\"),\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n loopItemFocus: false,\r\n focusStateEnabled: true,\r\n onItemEnterKeyPressed: this._tryOpen.bind(this),\r\n itemThumbnailTemplate: this._getItemThumbnailContainer.bind(this),\r\n getTooltipText: this._getTooltipText.bind(this),\r\n onSelectionChanged: this._onItemListSelectionChanged.bind(this),\r\n onFocusedItemChanged: this._onItemListFocusedItemChanged.bind(this),\r\n onContentReady: function() {\r\n var _this$_refreshDeferre;\r\n return null === (_this$_refreshDeferre = _this._refreshDeferred) || void 0 === _this$_refreshDeferre ? void 0 : _this$_refreshDeferre.resolve()\r\n }\r\n })\r\n };\r\n _proto._onContextMenu = function(e) {\r\n e.preventDefault();\r\n if (!this._isDesktop()) {\r\n return\r\n }\r\n var items = null;\r\n var targetItemElement = (0, _renderer.default)(e.target).closest(this._getItemSelector());\r\n var targetItem = null;\r\n if (targetItemElement.length > 0) {\r\n targetItem = this._itemList.getItemByItemElement(targetItemElement);\r\n this._itemList.selectItem(targetItem);\r\n items = this._getFileItemsForContextMenu(targetItem)\r\n }\r\n this._showContextMenu(items, e.target, e, targetItem)\r\n };\r\n _proto._getItemThumbnailCssClass = function() {\r\n return FILE_MANAGER_THUMBNAILS_ITEM_THUMBNAIL_CLASS\r\n };\r\n _proto._getItemSelector = function() {\r\n return \".\".concat(FILE_MANAGER_THUMBNAILS_ITEM_CLASS)\r\n };\r\n _proto._getTooltipText = function(fileItemInfo) {\r\n var item = fileItemInfo.fileItem;\r\n if (item.tooltipText) {\r\n return item.tooltipText\r\n }\r\n var text = \"\".concat(item.name, \"\\r\\n\");\r\n if (!item.isDirectory) {\r\n text += \"\".concat(_message.default.format(\"dxFileManager-listThumbnailsTooltipTextSize\"), \": \").concat((0, _uiFile_manager.getDisplayFileSize)(item.size), \"\\r\\n\")\r\n }\r\n text += \"\".concat(_message.default.format(\"dxFileManager-listThumbnailsTooltipTextDateModified\"), \": \").concat(item.dateModified);\r\n return text\r\n };\r\n _proto._onItemDblClick = function(e) {\r\n var $item = (0, _renderer.default)(e.currentTarget);\r\n var item = this._itemList.getItemByItemElement($item);\r\n this._tryOpen(item)\r\n };\r\n _proto._tryOpen = function(item) {\r\n if (item) {\r\n this._raiseSelectedItemOpened(item)\r\n }\r\n };\r\n _proto._getItemsInternal = function() {\r\n return _FileManagerItemListB.prototype._getItemsInternal.call(this).then(function(items) {\r\n var deferred = new _deferred.Deferred;\r\n setTimeout(function() {\r\n return deferred.resolve(items)\r\n });\r\n return deferred.promise()\r\n })\r\n };\r\n _proto._disableDragging = function() {\r\n return false\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_FileManagerItemListB.prototype._getDefaultOptions.call(this), {\r\n focusStateEnabled: true\r\n })\r\n };\r\n _proto._onItemListSelectionChanged = function(_ref) {\r\n var addedItemKeys = _ref.addedItemKeys,\r\n removedItemKeys = _ref.removedItemKeys;\r\n var selectedItemInfos = this.getSelectedItems();\r\n var selectedItems = selectedItemInfos.map(function(itemInfo) {\r\n return itemInfo.fileItem\r\n });\r\n var selectedItemKeys = selectedItems.map(function(item) {\r\n return item.key\r\n });\r\n this._tryRaiseSelectionChanged({\r\n selectedItemInfos: selectedItemInfos,\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n currentSelectedItemKeys: addedItemKeys,\r\n currentDeselectedItemKeys: removedItemKeys\r\n })\r\n };\r\n _proto._onItemListFocusedItemChanged = function(_ref2) {\r\n var item = _ref2.item,\r\n itemElement = _ref2.itemElement;\r\n if (!this._isMultipleSelectionMode()) {\r\n this._selectItemSingleSelection(item)\r\n }\r\n var fileSystemItem = (null === item || void 0 === item ? void 0 : item.fileItem) || null;\r\n this._onFocusedItemChanged({\r\n item: fileSystemItem,\r\n itemKey: null === fileSystemItem || void 0 === fileSystemItem ? void 0 : fileSystemItem.key,\r\n itemElement: itemElement || void 0\r\n })\r\n };\r\n _proto._setSelectedItemKeys = function(itemKeys) {\r\n this._itemList.option(\"selectedItemKeys\", itemKeys)\r\n };\r\n _proto._setFocusedItemKey = function(itemKey) {\r\n this._itemList.option(\"focusedItemKey\", itemKey)\r\n };\r\n _proto.refresh = function(options) {\r\n var actualOptions = {\r\n dataSource: this._createDataSource()\r\n };\r\n if (options && Object.prototype.hasOwnProperty.call(options, \"focusedItemKey\")) {\r\n actualOptions.focusedItemKey = options.focusedItemKey\r\n }\r\n this._itemList.option(actualOptions);\r\n this._refreshDeferred = new _deferred.Deferred;\r\n return this._refreshDeferred.promise()\r\n };\r\n _proto._deselectItem = function(item) {\r\n var itemElement = this._itemList.getItemElementByItem(item);\r\n this._itemList.unselectItem(itemElement)\r\n };\r\n _proto._selectItemSingleSelection = function(item) {\r\n if (item) {\r\n this._itemList.selectItem(item)\r\n } else {\r\n this._itemList.clearSelection()\r\n }\r\n };\r\n _proto.clearSelection = function() {\r\n this._itemList.clearSelection()\r\n };\r\n _proto.getSelectedItems = function() {\r\n return this._itemList.getSelectedItems()\r\n };\r\n return FileManagerThumbnailsItemList\r\n}(_uiFile_manager2.default);\r\nvar _default = FileManagerThumbnailsItemList;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.error_handling.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.error_handling\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"errorHandling\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/filter_builder/utils.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getGroupCriteria = getGroupCriteria;\r\nexports.setGroupValue = setGroupValue;\r\nexports.getGroupMenuItem = getGroupMenuItem;\r\nexports.getGroupValue = getGroupValue;\r\nexports.getFilterOperations = getFilterOperations;\r\nexports.getCaptionByOperation = getCaptionByOperation;\r\nexports.getOperationFromAvailable = getOperationFromAvailable;\r\nexports.getCustomOperation = getCustomOperation;\r\nexports.getAvailableOperations = getAvailableOperations;\r\nexports.getDefaultOperation = getDefaultOperation;\r\nexports.createCondition = createCondition;\r\nexports.removeItem = removeItem;\r\nexports.createEmptyGroup = createEmptyGroup;\r\nexports.isEmptyGroup = isEmptyGroup;\r\nexports.addItem = addItem;\r\nexports.getField = getField;\r\nexports.isGroup = isGroup;\r\nexports.isCondition = isCondition;\r\nexports.convertToInnerStructure = convertToInnerStructure;\r\nexports.getNormalizedFields = getNormalizedFields;\r\nexports.getFilterExpression = getFilterExpression;\r\nexports.getNormalizedFilter = getNormalizedFilter;\r\nexports.getCurrentLookupValueText = getCurrentLookupValueText;\r\nexports.getCurrentValueText = getCurrentValueText;\r\nexports.getItems = getItems;\r\nexports.getCaptionWithParents = getCaptionWithParents;\r\nexports.updateConditionByOperation = updateConditionByOperation;\r\nexports.getOperationValue = getOperationValue;\r\nexports.isValidCondition = isValidCondition;\r\nexports.getMergedOperations = getMergedOperations;\r\nexports.removeFieldConditionsFromFilter = removeFieldConditionsFromFilter;\r\nexports.syncFilters = syncFilters;\r\nexports.getMatchedConditions = getMatchedConditions;\r\nexports.filterHasField = filterHasField;\r\nexports.renderValueText = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _errors = _interopRequireDefault(require(\"../../data/errors\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _data = require(\"../../core/utils/data\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _filtering = _interopRequireDefault(require(\"../shared/filtering\"));\r\nvar _format_helper = _interopRequireDefault(require(\"../../format_helper\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _inflector = require(\"../../core/utils/inflector\");\r\nvar _between = require(\"./between\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _data_source = require(\"../../data/data_source/data_source\");\r\nvar _ui2 = _interopRequireDefault(require(\"./ui.filter_operations_dictionary\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DEFAULT_DATA_TYPE = \"string\";\r\nvar EMPTY_MENU_ICON = \"icon-none\";\r\nvar AND_GROUP_OPERATION = \"and\";\r\nvar EQUAL_OPERATION = \"=\";\r\nvar NOT_EQUAL_OPERATION = \"<>\";\r\nvar DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\", \"isblank\", \"isnotblank\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n \"boolean\": [\"=\", \"<>\", \"isblank\", \"isnotblank\"],\r\n object: [\"isblank\", \"isnotblank\"]\r\n};\r\nvar DEFAULT_FORMAT = {\r\n date: \"shortDate\",\r\n datetime: \"shortDateShortTime\"\r\n};\r\nvar LOOKUP_OPERATIONS = [\"=\", \"<>\", \"isblank\", \"isnotblank\"];\r\nvar AVAILABLE_FIELD_PROPERTIES = [\"caption\", \"customizeText\", \"dataField\", \"dataType\", \"editorTemplate\", \"falseText\", \"editorOptions\", \"filterOperations\", \"format\", \"lookup\", \"trueText\", \"calculateFilterExpression\", \"name\"];\r\nvar FILTER_BUILDER_CLASS = \"dx-filterbuilder\";\r\nvar FILTER_BUILDER_ITEM_TEXT_CLASS = FILTER_BUILDER_CLASS + \"-text\";\r\nvar FILTER_BUILDER_ITEM_TEXT_PART_CLASS = FILTER_BUILDER_ITEM_TEXT_CLASS + \"-part\";\r\nvar FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS = FILTER_BUILDER_ITEM_TEXT_CLASS + \"-separator\";\r\nvar FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS = FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS + \"-empty\";\r\n\r\nfunction getFormattedValueText(field, value) {\r\n var fieldFormat = field.format || DEFAULT_FORMAT[field.dataType];\r\n return _format_helper.default.format(value, fieldFormat)\r\n}\r\n\r\nfunction isNegationGroup(group) {\r\n return group && group.length > 1 && \"!\" === group[0] && !isCondition(group)\r\n}\r\n\r\nfunction getGroupCriteria(group) {\r\n return isNegationGroup(group) ? group[1] : group\r\n}\r\n\r\nfunction setGroupCriteria(group, criteria) {\r\n if (isNegationGroup(group)) {\r\n group[1] = criteria\r\n } else {\r\n group = criteria\r\n }\r\n return group\r\n}\r\n\r\nfunction convertGroupToNewStructure(group, value) {\r\n var isNegationValue = function(value) {\r\n return value.indexOf(\"!\") !== -1\r\n };\r\n var convertGroupToNegationGroup = function(group) {\r\n var criteria = group.slice(0);\r\n group.length = 0;\r\n group.push(\"!\", criteria)\r\n };\r\n var convertNegationGroupToGroup = function(group) {\r\n var criteria = getGroupCriteria(group);\r\n group.length = 0;\r\n [].push.apply(group, criteria)\r\n };\r\n if (isNegationValue(value)) {\r\n if (!isNegationGroup(group)) {\r\n convertGroupToNegationGroup(group)\r\n }\r\n } else {\r\n if (isNegationGroup(group)) {\r\n convertNegationGroupToGroup(group)\r\n }\r\n }\r\n}\r\n\r\nfunction setGroupValue(group, value) {\r\n convertGroupToNewStructure(group, value);\r\n var criteria = getGroupCriteria(group);\r\n var i;\r\n var getNormalizedGroupValue = function(value) {\r\n return value.indexOf(\"!\") === -1 ? value : value.substring(1)\r\n };\r\n var changeCriteriaValue = function(criteria, value) {\r\n for (i = 0; i < criteria.length; i++) {\r\n if (!Array.isArray(criteria[i])) {\r\n criteria[i] = value\r\n }\r\n }\r\n };\r\n value = getNormalizedGroupValue(value);\r\n changeCriteriaValue(criteria, value);\r\n return group\r\n}\r\n\r\nfunction getGroupMenuItem(group, availableGroups) {\r\n var groupValue = getGroupValue(group);\r\n return availableGroups.filter(function(item) {\r\n return item.value === groupValue\r\n })[0]\r\n}\r\n\r\nfunction getCriteriaOperation(criteria) {\r\n if (isCondition(criteria)) {\r\n return AND_GROUP_OPERATION\r\n }\r\n var value = \"\";\r\n for (var i = 0; i < criteria.length; i++) {\r\n var item = criteria[i];\r\n if (!Array.isArray(item)) {\r\n if (value && value !== item) {\r\n throw new _errors.default.errors.Error(\"E4019\")\r\n }\r\n if (\"!\" !== item) {\r\n value = item\r\n }\r\n }\r\n }\r\n return value\r\n}\r\n\r\nfunction getGroupValue(group) {\r\n var criteria = getGroupCriteria(group);\r\n var value = getCriteriaOperation(criteria);\r\n if (!value) {\r\n value = AND_GROUP_OPERATION\r\n }\r\n if (criteria !== group) {\r\n value = \"!\" + value\r\n }\r\n return value\r\n}\r\n\r\nfunction getDefaultFilterOperations(field) {\r\n return field.lookup && LOOKUP_OPERATIONS || DATATYPE_OPERATIONS[field.dataType || DEFAULT_DATA_TYPE]\r\n}\r\n\r\nfunction containItems(entity) {\r\n return Array.isArray(entity) && entity.length\r\n}\r\n\r\nfunction getFilterOperations(field) {\r\n var result = containItems(field.filterOperations) ? field.filterOperations : getDefaultFilterOperations(field);\r\n return (0, _extend.extend)([], result)\r\n}\r\n\r\nfunction getCaptionByOperation(operation, filterOperationDescriptions) {\r\n var operationName = _ui2.default.getNameByFilterOperation(operation);\r\n return filterOperationDescriptions && filterOperationDescriptions[operationName] ? filterOperationDescriptions[operationName] : operationName\r\n}\r\n\r\nfunction getOperationFromAvailable(operation, availableOperations) {\r\n for (var i = 0; i < availableOperations.length; i++) {\r\n if (availableOperations[i].value === operation) {\r\n return availableOperations[i]\r\n }\r\n }\r\n throw new _ui.default.Error(\"E1048\", operation)\r\n}\r\n\r\nfunction getCustomOperation(customOperations, name) {\r\n var filteredOperations = customOperations.filter(function(item) {\r\n return item.name === name\r\n });\r\n return filteredOperations.length ? filteredOperations[0] : null\r\n}\r\n\r\nfunction getAvailableOperations(field, filterOperationDescriptions, customOperations) {\r\n var filterOperations = getFilterOperations(field);\r\n var isLookupField = !!field.lookup;\r\n customOperations.forEach(function(customOperation) {\r\n if (!field.filterOperations && filterOperations.indexOf(customOperation.name) === -1) {\r\n var dataTypes = customOperation && customOperation.dataTypes;\r\n var isOperationForbidden = isLookupField ? !!customOperation.notForLookup : false;\r\n if (!isOperationForbidden && dataTypes && dataTypes.indexOf(field.dataType || DEFAULT_DATA_TYPE) >= 0) {\r\n filterOperations.push(customOperation.name)\r\n }\r\n }\r\n });\r\n return filterOperations.map(function(operation) {\r\n var customOperation = getCustomOperation(customOperations, operation);\r\n if (customOperation) {\r\n return {\r\n icon: customOperation.icon || EMPTY_MENU_ICON,\r\n text: customOperation.caption || (0, _inflector.captionize)(customOperation.name),\r\n value: customOperation.name,\r\n isCustom: true\r\n }\r\n } else {\r\n return {\r\n icon: _ui2.default.getIconByFilterOperation(operation) || EMPTY_MENU_ICON,\r\n text: getCaptionByOperation(operation, filterOperationDescriptions),\r\n value: operation\r\n }\r\n }\r\n })\r\n}\r\n\r\nfunction getDefaultOperation(field) {\r\n return field.defaultFilterOperation || getFilterOperations(field)[0]\r\n}\r\n\r\nfunction createCondition(field, customOperations) {\r\n var condition = [field.dataField, \"\", \"\"];\r\n var filterOperation = getDefaultOperation(field);\r\n updateConditionByOperation(condition, filterOperation, customOperations);\r\n return condition\r\n}\r\n\r\nfunction removeItem(group, item) {\r\n var criteria = getGroupCriteria(group);\r\n var index = criteria.indexOf(item);\r\n criteria.splice(index, 1);\r\n if (1 !== criteria.length) {\r\n criteria.splice(index, 1)\r\n }\r\n return group\r\n}\r\n\r\nfunction createEmptyGroup(value) {\r\n return value.indexOf(\"not\") !== -1 ? [\"!\", [value.substring(3).toLowerCase()]] : [value]\r\n}\r\n\r\nfunction isEmptyGroup(group) {\r\n var criteria = getGroupCriteria(group);\r\n if (isCondition(criteria)) {\r\n return false\r\n }\r\n var hasConditions = criteria.some(function(item) {\r\n return isCondition(item)\r\n });\r\n return !hasConditions\r\n}\r\n\r\nfunction addItem(item, group) {\r\n var criteria = getGroupCriteria(group);\r\n var groupValue = getGroupValue(criteria);\r\n 1 === criteria.length ? criteria.unshift(item) : criteria.push(item, groupValue);\r\n return group\r\n}\r\n\r\nfunction getField(dataField, fields) {\r\n for (var i = 0; i < fields.length; i++) {\r\n if (fields[i].name === dataField) {\r\n return fields[i]\r\n }\r\n if (fields[i].dataField.toLowerCase() === dataField.toLowerCase()) {\r\n return fields[i]\r\n }\r\n }\r\n var extendedFields = getItems(fields, true).filter(function(item) {\r\n return item.dataField.toLowerCase() === dataField.toLowerCase()\r\n });\r\n if (extendedFields.length > 0) {\r\n return extendedFields[0]\r\n }\r\n throw new _ui.default.Error(\"E1047\", dataField)\r\n}\r\n\r\nfunction isGroup(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n return false\r\n }\r\n return criteria.length < 2 || Array.isArray(criteria[0]) || Array.isArray(criteria[1])\r\n}\r\n\r\nfunction isCondition(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n return false\r\n }\r\n return criteria.length > 1 && !Array.isArray(criteria[0]) && !Array.isArray(criteria[1])\r\n}\r\n\r\nfunction convertToInnerGroup(group, customOperations) {\r\n var groupOperation = getCriteriaOperation(group).toLowerCase() || AND_GROUP_OPERATION;\r\n var innerGroup = [];\r\n for (var i = 0; i < group.length; i++) {\r\n if (isGroup(group[i])) {\r\n innerGroup.push(convertToInnerStructure(group[i], customOperations));\r\n innerGroup.push(groupOperation)\r\n } else {\r\n if (isCondition(group[i])) {\r\n innerGroup.push(convertToInnerCondition(group[i], customOperations));\r\n innerGroup.push(groupOperation)\r\n }\r\n }\r\n }\r\n if (0 === innerGroup.length) {\r\n innerGroup.push(groupOperation)\r\n }\r\n return innerGroup\r\n}\r\n\r\nfunction conditionHasCustomOperation(condition, customOperations) {\r\n var customOperation = getCustomOperation(customOperations, condition[1]);\r\n return customOperation && customOperation.name === condition[1]\r\n}\r\n\r\nfunction convertToInnerCondition(condition, customOperations) {\r\n if (conditionHasCustomOperation(condition, customOperations)) {\r\n return condition\r\n }\r\n if (condition.length < 3) {\r\n condition[2] = condition[1];\r\n condition[1] = EQUAL_OPERATION\r\n }\r\n return condition\r\n}\r\n\r\nfunction convertToInnerStructure(value, customOperations) {\r\n if (!value) {\r\n return [AND_GROUP_OPERATION]\r\n }\r\n value = (0, _extend.extend)(true, [], value);\r\n if (isCondition(value)) {\r\n return [convertToInnerCondition(value, customOperations), AND_GROUP_OPERATION]\r\n }\r\n if (isNegationGroup(value)) {\r\n return [\"!\", isCondition(value[1]) ? [convertToInnerCondition(value[1], customOperations), AND_GROUP_OPERATION] : isNegationGroup(value[1]) ? [convertToInnerStructure(value[1], customOperations), AND_GROUP_OPERATION] : convertToInnerGroup(value[1], customOperations)]\r\n }\r\n return convertToInnerGroup(value, customOperations)\r\n}\r\n\r\nfunction getNormalizedFields(fields) {\r\n return fields.reduce(function(result, field) {\r\n if ((0, _type.isDefined)(field.dataField)) {\r\n var normalizedField = {};\r\n for (var key in field) {\r\n if (field[key] && AVAILABLE_FIELD_PROPERTIES.indexOf(key) > -1) {\r\n normalizedField[key] = field[key]\r\n }\r\n }\r\n normalizedField.defaultCalculateFilterExpression = _filtering.default.defaultCalculateFilterExpression;\r\n if (!(0, _type.isDefined)(normalizedField.dataType)) {\r\n normalizedField.dataType = DEFAULT_DATA_TYPE\r\n }\r\n if (!(0, _type.isDefined)(normalizedField.trueText)) {\r\n normalizedField.trueText = _message.default.format(\"dxDataGrid-trueText\")\r\n }\r\n if (!(0, _type.isDefined)(normalizedField.falseText)) {\r\n normalizedField.falseText = _message.default.format(\"dxDataGrid-falseText\")\r\n }\r\n result.push(normalizedField)\r\n }\r\n return result\r\n }, [])\r\n}\r\n\r\nfunction getConditionFilterExpression(condition, fields, customOperations, target) {\r\n var field = getField(condition[0], fields);\r\n var filterExpression = convertToInnerCondition(condition, customOperations);\r\n var customOperation = customOperations.length && getCustomOperation(customOperations, filterExpression[1]);\r\n if (customOperation && customOperation.calculateFilterExpression) {\r\n return customOperation.calculateFilterExpression.apply(customOperation, [filterExpression[2], field, fields])\r\n } else {\r\n if (field.createFilterExpression) {\r\n return field.createFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n } else {\r\n if (field.calculateFilterExpression) {\r\n return field.calculateFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n } else {\r\n return field.defaultCalculateFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getFilterExpression(value, fields, customOperations, target) {\r\n if (!(0, _type.isDefined)(value)) {\r\n return null\r\n }\r\n if (isNegationGroup(value)) {\r\n var filterExpression = getFilterExpression(value[1], fields, customOperations, target);\r\n return [\"!\", filterExpression]\r\n }\r\n var criteria = getGroupCriteria(value);\r\n if (isCondition(criteria)) {\r\n return getConditionFilterExpression(criteria, fields, customOperations, target) || null\r\n } else {\r\n var result = [];\r\n var _filterExpression;\r\n var groupValue = getGroupValue(criteria);\r\n for (var i = 0; i < criteria.length; i++) {\r\n if (isGroup(criteria[i])) {\r\n _filterExpression = getFilterExpression(criteria[i], fields, customOperations, target);\r\n if (_filterExpression) {\r\n i && result.push(groupValue);\r\n result.push(_filterExpression)\r\n }\r\n } else {\r\n if (isCondition(criteria[i])) {\r\n _filterExpression = getConditionFilterExpression(criteria[i], fields, customOperations, target);\r\n if (_filterExpression) {\r\n result.length && result.push(groupValue);\r\n result.push(_filterExpression)\r\n }\r\n }\r\n }\r\n }\r\n if (1 === result.length) {\r\n result = result[0]\r\n }\r\n return result.length ? result : null\r\n }\r\n}\r\n\r\nfunction getNormalizedFilter(group) {\r\n var criteria = getGroupCriteria(group);\r\n var i;\r\n if (0 === criteria.length) {\r\n return null\r\n }\r\n var itemsForRemove = [];\r\n for (i = 0; i < criteria.length; i++) {\r\n if (isGroup(criteria[i])) {\r\n var normalizedGroupValue = getNormalizedFilter(criteria[i]);\r\n if (normalizedGroupValue) {\r\n criteria[i] = normalizedGroupValue\r\n } else {\r\n itemsForRemove.push(criteria[i])\r\n }\r\n } else {\r\n if (isCondition(criteria[i])) {\r\n if (!isValidCondition(criteria[i])) {\r\n itemsForRemove.push(criteria[i])\r\n }\r\n }\r\n }\r\n }\r\n for (i = 0; i < itemsForRemove.length; i++) {\r\n removeItem(criteria, itemsForRemove[i])\r\n }\r\n if (1 === criteria.length) {\r\n return null\r\n }\r\n criteria.splice(criteria.length - 1, 1);\r\n if (1 === criteria.length) {\r\n group = setGroupCriteria(group, criteria[0])\r\n }\r\n if (0 === group.length) {\r\n return null\r\n }\r\n return group\r\n}\r\n\r\nfunction getCurrentLookupValueText(field, value, handler) {\r\n if (\"\" === value) {\r\n handler(\"\");\r\n return\r\n }\r\n var lookup = field.lookup;\r\n if (lookup.items) {\r\n handler(lookup.calculateCellValue(value) || \"\")\r\n } else {\r\n var lookupDataSource = (0, _type.isFunction)(lookup.dataSource) ? lookup.dataSource({}) : lookup.dataSource;\r\n var dataSource = new _data_source.DataSource(lookupDataSource);\r\n dataSource.loadSingle(lookup.valueExpr, value).done(function(result) {\r\n var valueText = \"\";\r\n if (result) {\r\n valueText = lookup.displayExpr ? (0, _data.compileGetter)(lookup.displayExpr)(result) : result\r\n }\r\n if (field.customizeText) {\r\n valueText = field.customizeText({\r\n value: value,\r\n valueText: valueText\r\n })\r\n }\r\n handler(valueText)\r\n }).fail(function() {\r\n handler(\"\")\r\n })\r\n }\r\n}\r\n\r\nfunction getPrimitiveValueText(field, value, customOperation, target) {\r\n var valueText;\r\n if (true === value) {\r\n valueText = field.trueText || _message.default.format(\"dxDataGrid-trueText\")\r\n } else {\r\n if (false === value) {\r\n valueText = field.falseText || _message.default.format(\"dxDataGrid-falseText\")\r\n } else {\r\n valueText = getFormattedValueText(field, value)\r\n }\r\n }\r\n if (field.customizeText) {\r\n valueText = field.customizeText.call(field, {\r\n value: value,\r\n valueText: valueText,\r\n target: target\r\n })\r\n }\r\n if (customOperation && customOperation.customizeText) {\r\n valueText = customOperation.customizeText.call(customOperation, {\r\n value: value,\r\n valueText: valueText,\r\n field: field,\r\n target: target\r\n })\r\n }\r\n return valueText\r\n}\r\n\r\nfunction getArrayValueText(field, value, customOperation, target) {\r\n return value.map(function(v) {\r\n return getPrimitiveValueText(field, v, customOperation, target)\r\n })\r\n}\r\n\r\nfunction checkDefaultValue(value) {\r\n return \"\" === value || null === value\r\n}\r\n\r\nfunction getCurrentValueText(field, value, customOperation) {\r\n var target = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : \"filterBuilder\";\r\n if (checkDefaultValue(value)) {\r\n return \"\"\r\n }\r\n if (Array.isArray(value)) {\r\n var result = new _deferred.Deferred;\r\n _deferred.when.apply(this, getArrayValueText(field, value, customOperation, target)).done(function() {\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 var text = args.some(function(item) {\r\n return !checkDefaultValue(item)\r\n }) ? args.map(function(item) {\r\n return !checkDefaultValue(item) ? item : \"?\"\r\n }) : \"\";\r\n result.resolve(text)\r\n });\r\n return result\r\n } else {\r\n return getPrimitiveValueText(field, value, customOperation, target)\r\n }\r\n}\r\n\r\nfunction itemExists(plainItems, parentId) {\r\n return plainItems.some(function(item) {\r\n return item.dataField === parentId\r\n })\r\n}\r\n\r\nfunction pushItemAndCheckParent(originalItems, plainItems, item) {\r\n var dataField = item.dataField;\r\n if (hasParent(dataField)) {\r\n item.parentId = getParentIdFromItemDataField(dataField);\r\n if (!itemExists(plainItems, item.parentId) && !itemExists(originalItems, item.parentId)) {\r\n pushItemAndCheckParent(originalItems, plainItems, {\r\n id: item.parentId,\r\n dataType: \"object\",\r\n dataField: item.parentId,\r\n caption: generateCaptionByDataField(item.parentId, true),\r\n filterOperations: [\"isblank\", \"isnotblank\"]\r\n })\r\n }\r\n }\r\n plainItems.push(item)\r\n}\r\n\r\nfunction generateCaptionByDataField(dataField, allowHierarchicalFields) {\r\n var caption = \"\";\r\n if (allowHierarchicalFields) {\r\n dataField = dataField.substring(dataField.lastIndexOf(\".\") + 1)\r\n } else {\r\n if (hasParent(dataField)) {\r\n dataField.split(\".\").forEach(function(field, index, arr) {\r\n caption += (0, _inflector.captionize)(field);\r\n if (index !== arr.length - 1) {\r\n caption += \".\"\r\n }\r\n });\r\n return caption\r\n }\r\n }\r\n return (0, _inflector.captionize)(dataField)\r\n}\r\n\r\nfunction getItems(fields, allowHierarchicalFields) {\r\n var items = [];\r\n for (var i = 0; i < fields.length; i++) {\r\n var item = (0, _extend.extend)(true, {\r\n caption: generateCaptionByDataField(fields[i].dataField, allowHierarchicalFields)\r\n }, fields[i]);\r\n item.id = item.name || item.dataField;\r\n if (allowHierarchicalFields) {\r\n pushItemAndCheckParent(fields, items, item)\r\n } else {\r\n items.push(item)\r\n }\r\n }\r\n return items\r\n}\r\n\r\nfunction hasParent(dataField) {\r\n return dataField.lastIndexOf(\".\") !== -1\r\n}\r\n\r\nfunction getParentIdFromItemDataField(dataField) {\r\n return dataField.substring(0, dataField.lastIndexOf(\".\"))\r\n}\r\n\r\nfunction getCaptionWithParents(item, plainItems) {\r\n if (hasParent(item.dataField)) {\r\n var parentId = getParentIdFromItemDataField(item.dataField);\r\n for (var i = 0; i < plainItems.length; i++) {\r\n if (plainItems[i].dataField === parentId) {\r\n return getCaptionWithParents(plainItems[i], plainItems) + \".\" + item.caption\r\n }\r\n }\r\n }\r\n return item.caption\r\n}\r\n\r\nfunction updateConditionByOperation(condition, operation, customOperations) {\r\n var customOperation = getCustomOperation(customOperations, operation);\r\n if (customOperation) {\r\n if (false === customOperation.hasValue) {\r\n condition[1] = operation;\r\n condition.length = 2\r\n } else {\r\n condition[1] = operation;\r\n condition[2] = \"\"\r\n }\r\n return condition\r\n }\r\n if (\"isblank\" === operation) {\r\n condition[1] = EQUAL_OPERATION;\r\n condition[2] = null\r\n } else {\r\n if (\"isnotblank\" === operation) {\r\n condition[1] = NOT_EQUAL_OPERATION;\r\n condition[2] = null\r\n } else {\r\n customOperation = getCustomOperation(customOperations, condition[1]);\r\n if (customOperation || 2 === condition.length || null === condition[2]) {\r\n condition[2] = \"\"\r\n }\r\n condition[1] = operation\r\n }\r\n }\r\n return condition\r\n}\r\n\r\nfunction getOperationValue(condition) {\r\n var caption;\r\n if (null === condition[2]) {\r\n if (condition[1] === EQUAL_OPERATION) {\r\n caption = \"isblank\"\r\n } else {\r\n caption = \"isnotblank\"\r\n }\r\n } else {\r\n caption = condition[1]\r\n }\r\n return caption\r\n}\r\n\r\nfunction isValidCondition(condition) {\r\n return \"\" !== condition[2]\r\n}\r\n\r\nfunction getMergedOperations(customOperations, betweenCaption, context) {\r\n var result = (0, _extend.extend)(true, [], customOperations);\r\n var betweenIndex = -1;\r\n result.some(function(customOperation, index) {\r\n if (\"between\" === customOperation.name) {\r\n betweenIndex = index;\r\n return true\r\n }\r\n });\r\n if (betweenIndex !== -1) {\r\n result[betweenIndex] = (0, _extend.extend)((0, _between.getConfig)(betweenCaption, context), result[betweenIndex])\r\n } else {\r\n result.unshift((0, _between.getConfig)(betweenCaption, context))\r\n }\r\n return result\r\n}\r\n\r\nfunction isMatchedCondition(filter, addedFilterDataField) {\r\n return filter[0] === addedFilterDataField\r\n}\r\n\r\nfunction removeFieldConditionsFromFilter(filter, dataField) {\r\n if (!filter || 0 === filter.length) {\r\n return null\r\n }\r\n if (isCondition(filter)) {\r\n var hasMatchedCondition = isMatchedCondition(filter, dataField);\r\n return !hasMatchedCondition ? filter : null\r\n } else {\r\n return syncConditionIntoGroup(filter, [dataField], false)\r\n }\r\n}\r\n\r\nfunction syncConditionIntoGroup(filter, addedFilter, canPush) {\r\n var result = [];\r\n filter.forEach(function(item) {\r\n if (isCondition(item)) {\r\n if (isMatchedCondition(item, addedFilter[0])) {\r\n if (canPush) {\r\n result.push(addedFilter);\r\n canPush = false\r\n } else {\r\n result.splice(result.length - 1, 1)\r\n }\r\n } else {\r\n result.push(item)\r\n }\r\n } else {\r\n (result.length || isGroup(item)) && result.push(item)\r\n }\r\n });\r\n if (0 === result.length) {\r\n return null\r\n }\r\n if (canPush) {\r\n result.push(AND_GROUP_OPERATION);\r\n result.push(addedFilter)\r\n }\r\n return 1 === result.length ? result[0] : result\r\n}\r\n\r\nfunction syncFilters(filter, addedFilter) {\r\n if (null === filter || 0 === filter.length) {\r\n return addedFilter\r\n }\r\n if (isCondition(filter)) {\r\n if (isMatchedCondition(filter, addedFilter[0])) {\r\n return addedFilter\r\n } else {\r\n return [filter, AND_GROUP_OPERATION, addedFilter]\r\n }\r\n }\r\n var groupValue = getGroupValue(filter);\r\n if (groupValue !== AND_GROUP_OPERATION) {\r\n return [addedFilter, \"and\", filter]\r\n }\r\n return syncConditionIntoGroup(filter, addedFilter, true)\r\n}\r\n\r\nfunction getMatchedConditions(filter, dataField) {\r\n if (null === filter || 0 === filter.length) {\r\n return []\r\n }\r\n if (isCondition(filter)) {\r\n if (isMatchedCondition(filter, dataField)) {\r\n return [filter]\r\n } else {\r\n return []\r\n }\r\n }\r\n var groupValue = getGroupValue(filter);\r\n if (groupValue !== AND_GROUP_OPERATION) {\r\n return []\r\n }\r\n var result = filter.filter(function(item) {\r\n return isCondition(item) && isMatchedCondition(item, dataField)\r\n });\r\n return result\r\n}\r\n\r\nfunction filterHasField(filter, dataField) {\r\n if (null === filter || 0 === filter.length) {\r\n return false\r\n }\r\n if (isCondition(filter)) {\r\n return filter[0] === dataField\r\n }\r\n return filter.some(function(item) {\r\n return (isCondition(item) || isGroup(item)) && filterHasField(item, dataField)\r\n })\r\n}\r\nvar renderValueText = function($container, value, customOperation) {\r\n if (Array.isArray(value)) {\r\n var lastItemIndex = value.length - 1;\r\n $container.empty();\r\n value.forEach(function(t, i) {\r\n (0, _renderer.default)(\"\").addClass(FILTER_BUILDER_ITEM_TEXT_PART_CLASS).text(t).appendTo($container);\r\n if (i !== lastItemIndex) {\r\n (0, _renderer.default)(\"\").addClass(FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS).text(customOperation && customOperation.valueSeparator ? customOperation.valueSeparator : \"|\").addClass(FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS).appendTo($container)\r\n }\r\n })\r\n } else {\r\n if (value) {\r\n $container.text(value)\r\n } else {\r\n $container.text(_message.default.format(\"dxFilterBuilder-enterValueText\"))\r\n }\r\n }\r\n};\r\nexports.renderValueText = renderValueText;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.filter_panel.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _check_box = _interopRequireDefault(require(\"../check_box\"));\r\nvar _utils = require(\"../filter_builder/utils\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _inflector = require(\"../../core/utils/inflector\");\r\nvar _uiGrid_core3 = require(\"./ui.grid_core.accessibility\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar FILTER_PANEL_CLASS = \"filter-panel\";\r\nvar FILTER_PANEL_TEXT_CLASS = FILTER_PANEL_CLASS + \"-text\";\r\nvar FILTER_PANEL_CHECKBOX_CLASS = FILTER_PANEL_CLASS + \"-checkbox\";\r\nvar FILTER_PANEL_CLEAR_FILTER_CLASS = FILTER_PANEL_CLASS + \"-clear-filter\";\r\nvar FILTER_PANEL_LEFT_CONTAINER = FILTER_PANEL_CLASS + \"-left\";\r\nvar FILTER_PANEL_TARGET = \"filterPanel\";\r\nvar FilterPanelView = _uiGrid_core.default.View.inherit({\r\n isVisible: function() {\r\n return this.option(\"filterPanel.visible\") && this.getController(\"data\").dataSource()\r\n },\r\n init: function() {\r\n var _this = this;\r\n this.getController(\"data\").dataSourceChanged.add(function() {\r\n return _this.render()\r\n })\r\n },\r\n _renderCore: function() {\r\n var that = this;\r\n var $element = that.element();\r\n $element.empty().addClass(that.addWidgetPrefix(FILTER_PANEL_CLASS));\r\n var $leftContainer = (0, _renderer.default)(\"
    \").addClass(that.addWidgetPrefix(FILTER_PANEL_LEFT_CONTAINER)).appendTo($element);\r\n if (that.option(\"filterValue\") || that._filterValueBuffer) {\r\n $leftContainer.append(that._getCheckElement()).append(that._getFilterElement()).append(that._getTextElement());\r\n $element.append(that._getRemoveButtonElement())\r\n } else {\r\n $leftContainer.append(that._getFilterElement()).append(that._getTextElement())\r\n }\r\n },\r\n _getCheckElement: function() {\r\n var that = this;\r\n var $element = (0, _renderer.default)(\"
    \").addClass(this.addWidgetPrefix(FILTER_PANEL_CHECKBOX_CLASS));\r\n that._createComponent($element, _check_box.default, {\r\n value: that.option(\"filterPanel.filterEnabled\"),\r\n onValueChanged: function(e) {\r\n that.option(\"filterPanel.filterEnabled\", e.value)\r\n }\r\n });\r\n $element.attr(\"title\", this.option(\"filterPanel.texts.filterEnabledHint\"));\r\n return $element\r\n },\r\n _getFilterElement: function() {\r\n var that = this;\r\n var $element = (0, _renderer.default)(\"
    \").addClass(\"dx-icon-filter\");\r\n _events_engine.default.on($element, \"click\", function() {\r\n return that._showFilterBuilder()\r\n });\r\n (0, _uiGrid_core3.registerKeyboardAction)(\"filterPanel\", that, $element, void 0, function() {\r\n return that._showFilterBuilder()\r\n });\r\n that._addTabIndexToElement($element);\r\n return $element\r\n },\r\n _getTextElement: function() {\r\n var that = this;\r\n var $textElement = (0, _renderer.default)(\"
    \").addClass(that.addWidgetPrefix(FILTER_PANEL_TEXT_CLASS));\r\n var filterText;\r\n var filterValue = that.option(\"filterValue\");\r\n if (filterValue) {\r\n (0, _deferred.when)(that.getFilterText(filterValue, that.getController(\"filterSync\").getCustomFilterOperations())).done(function(filterText) {\r\n var customizeText = that.option(\"filterPanel.customizeText\");\r\n if (customizeText) {\r\n var customText = customizeText({\r\n component: that.component,\r\n filterValue: filterValue,\r\n text: filterText\r\n });\r\n if (\"string\" === typeof customText) {\r\n filterText = customText\r\n }\r\n }\r\n $textElement.text(filterText)\r\n })\r\n } else {\r\n filterText = that.option(\"filterPanel.texts.createFilter\");\r\n $textElement.text(filterText)\r\n }\r\n _events_engine.default.on($textElement, \"click\", function() {\r\n return that._showFilterBuilder()\r\n });\r\n (0, _uiGrid_core3.registerKeyboardAction)(\"filterPanel\", that, $textElement, void 0, function() {\r\n return that._showFilterBuilder()\r\n });\r\n that._addTabIndexToElement($textElement);\r\n return $textElement\r\n },\r\n _showFilterBuilder: function() {\r\n this.option(\"filterBuilderPopup.visible\", true)\r\n },\r\n _getRemoveButtonElement: function() {\r\n var that = this;\r\n var clearFilterValue = function() {\r\n return that.option(\"filterValue\", null)\r\n };\r\n var $element = (0, _renderer.default)(\"
    \").addClass(that.addWidgetPrefix(FILTER_PANEL_CLEAR_FILTER_CLASS)).text(that.option(\"filterPanel.texts.clearFilter\"));\r\n _events_engine.default.on($element, \"click\", clearFilterValue);\r\n (0, _uiGrid_core3.registerKeyboardAction)(\"filterPanel\", this, $element, void 0, clearFilterValue);\r\n that._addTabIndexToElement($element);\r\n return $element\r\n },\r\n _addTabIndexToElement: function($element) {\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n var tabindex = this.option(\"tabindex\") || 0;\r\n $element.attr(\"tabindex\", tabindex)\r\n }\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"filterValue\":\r\n this._invalidate();\r\n this.option(\"filterPanel.filterEnabled\", true);\r\n args.handled = true;\r\n break;\r\n case \"filterPanel\":\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 _getConditionText: function(fieldText, operationText, valueText) {\r\n var result = \"[\".concat(fieldText, \"] \").concat(operationText);\r\n if ((0, _type.isDefined)(valueText)) {\r\n result += valueText\r\n }\r\n return result\r\n },\r\n _getValueMaskedText: function(value) {\r\n return Array.isArray(value) ? \"('\".concat(value.join(\"', '\"), \"')\") : \" '\".concat(value, \"'\")\r\n },\r\n _getValueText: function(field, customOperation, value) {\r\n var _this2 = this;\r\n var deferred = new _deferred.Deferred;\r\n var hasCustomOperation = customOperation && customOperation.customizeText;\r\n if ((0, _type.isDefined)(value) || hasCustomOperation) {\r\n if (!hasCustomOperation && field.lookup) {\r\n (0, _utils.getCurrentLookupValueText)(field, value, function(data) {\r\n deferred.resolve(_this2._getValueMaskedText(data))\r\n })\r\n } else {\r\n var displayValue = Array.isArray(value) ? value : _uiGrid_core2.default.getDisplayValue(field, value);\r\n (0, _deferred.when)((0, _utils.getCurrentValueText)(field, displayValue, customOperation, FILTER_PANEL_TARGET)).done(function(data) {\r\n deferred.resolve(_this2._getValueMaskedText(data))\r\n })\r\n }\r\n } else {\r\n deferred.resolve(\"\")\r\n }\r\n return deferred.promise()\r\n },\r\n getConditionText: function(filterValue, options) {\r\n var that = this;\r\n var operation = filterValue[1];\r\n var deferred = new _deferred.Deferred;\r\n var customOperation = (0, _utils.getCustomOperation)(options.customOperations, operation);\r\n var operationText;\r\n var field = (0, _utils.getField)(filterValue[0], options.columns);\r\n var fieldText = field.caption || \"\";\r\n var value = filterValue[2];\r\n if (customOperation) {\r\n operationText = customOperation.caption || (0, _inflector.captionize)(customOperation.name)\r\n } else {\r\n if (null === value) {\r\n operationText = (0, _utils.getCaptionByOperation)(\"=\" === operation ? \"isblank\" : \"isnotblank\", options.filterOperationDescriptions)\r\n } else {\r\n operationText = (0, _utils.getCaptionByOperation)(operation, options.filterOperationDescriptions)\r\n }\r\n }\r\n this._getValueText(field, customOperation, value).done(function(valueText) {\r\n deferred.resolve(that._getConditionText(fieldText, operationText, valueText))\r\n });\r\n return deferred\r\n },\r\n getGroupText: function(filterValue, options, isInnerGroup) {\r\n var that = this;\r\n var result = new _deferred.Deferred;\r\n var textParts = [];\r\n var groupValue = (0, _utils.getGroupValue)(filterValue);\r\n filterValue.forEach(function(item) {\r\n if ((0, _utils.isCondition)(item)) {\r\n textParts.push(that.getConditionText(item, options))\r\n } else {\r\n if ((0, _utils.isGroup)(item)) {\r\n textParts.push(that.getGroupText(item, options, true))\r\n }\r\n }\r\n });\r\n _deferred.when.apply(this, textParts).done(function() {\r\n var text;\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 if (\"!\" === groupValue[0]) {\r\n var groupText = options.groupOperationDescriptions[\"not\" + groupValue.substring(1, 2).toUpperCase() + groupValue.substring(2)].split(\" \");\r\n text = \"\".concat(groupText[0], \" \").concat(args[0])\r\n } else {\r\n text = args.join(\" \".concat(options.groupOperationDescriptions[groupValue], \" \"))\r\n }\r\n if (isInnerGroup) {\r\n text = \"(\".concat(text, \")\")\r\n }\r\n result.resolve(text)\r\n });\r\n return result\r\n },\r\n getFilterText: function(filterValue, customOperations) {\r\n var that = this;\r\n var options = {\r\n customOperations: customOperations,\r\n columns: that.getController(\"columns\").getFilteringColumns(),\r\n filterOperationDescriptions: that.option(\"filterBuilder.filterOperationDescriptions\"),\r\n groupOperationDescriptions: that.option(\"filterBuilder.groupOperationDescriptions\")\r\n };\r\n return (0, _utils.isCondition)(filterValue) ? that.getConditionText(filterValue, options) : that.getGroupText(filterValue, options)\r\n }\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n filterPanel: {\r\n visible: false,\r\n filterEnabled: true,\r\n texts: {\r\n createFilter: _message.default.format(\"dxDataGrid-filterPanelCreateFilter\"),\r\n clearFilter: _message.default.format(\"dxDataGrid-filterPanelClearFilter\"),\r\n filterEnabledHint: _message.default.format(\"dxDataGrid-filterPanelFilterEnabledHint\")\r\n }\r\n }\r\n }\r\n },\r\n views: {\r\n filterPanelView: FilterPanelView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"filterPanel\":\r\n this._applyFilter();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.selection.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _uiData_grid = _interopRequireDefault(require(\"../data_grid/ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _support = require(\"../../core/utils/support\");\r\nvar _click = require(\"../../events/click\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _hold = _interopRequireDefault(require(\"../../events/hold\"));\r\nvar _selection = _interopRequireDefault(require(\"../selection/selection\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar 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 = (0, _renderer.default)(dxEvent.target).closest(\".\" + 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 SelectionController = _uiData_grid.default.Controller.inherit(function() {\r\n var 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\n var selectionCellTemplate = function(container, options) {\r\n var component = options.component;\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((0, _renderer.default)(container), options)\r\n };\r\n var selectionHeaderTemplate = function(container, options) {\r\n var column = options.column;\r\n var $cellElement = (0, _renderer.default)(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\n return {\r\n init: function() {\r\n this._dataController = this.getController(\"data\");\r\n this._selectionMode = this.option(SELECTION_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 },\r\n _getSelectionConfig: function() {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var selectionOptions = that.option(\"selection\") || {};\r\n return {\r\n selectedKeys: that.option(\"selectedRowKeys\"),\r\n mode: that._selectionMode,\r\n deferred: selectionOptions.deferred,\r\n maxFilterLengthInRequest: selectionOptions.maxFilterLengthInRequest,\r\n selectionFilter: that.option(\"selectionFilter\"),\r\n key: function() {\r\n return dataController && dataController.key()\r\n },\r\n keyOf: function(item) {\r\n return dataController && dataController.keyOf(item)\r\n },\r\n dataFields: function() {\r\n return dataController.dataSource() && dataController.dataSource().select()\r\n },\r\n load: function(options) {\r\n return dataController.dataSource() && dataController.dataSource().load(options) || (new _deferred.Deferred).resolve([])\r\n },\r\n plainItems: function() {\r\n return dataController.items(true)\r\n },\r\n isItemSelected: function(item) {\r\n return item.selected\r\n },\r\n isSelectableItem: function(item) {\r\n return item && \"data\" === item.rowType && !item.isNewRow\r\n },\r\n getItemData: function(item) {\r\n return item && (item.oldData || item.data || item)\r\n },\r\n filter: function() {\r\n return dataController.getCombinedFilter(true)\r\n },\r\n totalCount: function() {\r\n return dataController.totalCount()\r\n },\r\n onSelectionChanged: that._updateSelectedItems.bind(this)\r\n }\r\n },\r\n _updateSelectColumn: function() {\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: function() {\r\n var options = this._getSelectionConfig();\r\n return new _selection.default(options)\r\n },\r\n _fireSelectionChanged: function(options) {\r\n if (options) {\r\n this.executeAction(\"onSelectionChanged\", options)\r\n }\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 },\r\n _updateCheckboxesState: function(options) {\r\n var isDeferredMode = options.isDeferredMode;\r\n var selectionFilter = options.selectionFilter;\r\n var selectedItemKeys = options.selectedItemKeys;\r\n var removedItemKeys = options.removedItemKeys;\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 {\r\n if (isDeferredMode ? selectionFilter && !selectionFilter.length : 0 === selectedItemKeys.length && removedItemKeys.length) {\r\n this.stopSelectionWithCheckboxes()\r\n }\r\n }\r\n }\r\n },\r\n _updateSelectedItems: function(args) {\r\n var that = this;\r\n var selectionChangedOptions;\r\n var isDeferredMode = that.option(\"selection.deferred\");\r\n var selectionFilter = that._selection.selectionFilter();\r\n var dataController = that._dataController;\r\n var items = dataController.items();\r\n if (!items) {\r\n return\r\n }\r\n var isSelectionWithCheckboxes = that.isSelectionWithCheckboxes();\r\n var changedItemIndexes = that.getChangedItemIndexes(items);\r\n that._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 !== that.isSelectionWithCheckboxes()) {\r\n dataController.updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: changedItemIndexes\r\n })\r\n }\r\n if (isDeferredMode) {\r\n that.option(\"selectionFilter\", selectionFilter);\r\n selectionChangedOptions = {}\r\n } else {\r\n if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n that._selectedItemsInternalChange = true;\r\n that.option(\"selectedRowKeys\", args.selectedItemKeys.slice(0));\r\n that._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 }\r\n that._fireSelectionChanged(selectionChangedOptions)\r\n },\r\n getChangedItemIndexes: function(items) {\r\n var that = this;\r\n var itemIndexes = [];\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n for (var i = 0, length = items.length; i < length; i++) {\r\n var row = items[i];\r\n var isItemSelected = that.isRowSelected(isDeferredSelection ? row.data : row.key);\r\n if (that._selection.isDataItem(row) && row.isSelected !== isItemSelected) {\r\n itemIndexes.push(i)\r\n }\r\n }\r\n return itemIndexes\r\n },\r\n callbackNames: function() {\r\n return [\"selectionChanged\"]\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n that.callBase(args);\r\n switch (args.name) {\r\n case \"selection\":\r\n var oldSelectionMode = that._selectionMode;\r\n that.init();\r\n var selectionMode = that._selectionMode;\r\n var selectedRowKeys = that.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 {\r\n if (\"multiple\" !== selectionMode) {\r\n selectedRowKeys = []\r\n }\r\n }\r\n }\r\n that.selectRows(selectedRowKeys).always(function() {\r\n that._fireSelectionChanged()\r\n });\r\n that.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) && !that._selectedItemsInternalChange && (that.component.getDataSource() || !value.length)) {\r\n that.selectRows(value)\r\n }\r\n args.handled = true\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"selectRows\", \"deselectRows\", \"selectRowsByIndexes\", \"getSelectedRowKeys\", \"getSelectedRowsData\", \"clearSelection\", \"selectAll\", \"deselectAll\", \"startSelectionWithCheckboxes\", \"stopSelectionWithCheckboxes\", \"isRowSelected\"]\r\n },\r\n isRowSelected: function(arg) {\r\n return this._selection.isItemSelected(arg)\r\n },\r\n isSelectColumnVisible: function() {\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: function() {\r\n return \"page\" === this.option(\"selection.selectAllMode\")\r\n },\r\n isSelectAll: function() {\r\n return this._selection.getSelectAllState(this._isOnePageSelectAll())\r\n },\r\n selectAll: function() {\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: function() {\r\n return this._selection.deselectAll(this._isOnePageSelectAll())\r\n },\r\n clearSelection: function() {\r\n return this.selectedItemKeys([])\r\n },\r\n refresh: function() {\r\n var selectedRowKeys = this.option(\"selectedRowKeys\") || [];\r\n if (!this.option(\"selection.deferred\") && selectedRowKeys.length) {\r\n return this.selectedItemKeys(selectedRowKeys)\r\n }\r\n return (new _deferred.Deferred).resolve().promise()\r\n },\r\n selectedItemKeys: function(value, preserve, isDeselect, isSelectAll) {\r\n return this._selection.selectedItemKeys(value, preserve, isDeselect, isSelectAll)\r\n },\r\n getSelectedRowKeys: function() {\r\n return this._selection.getSelectedItemKeys()\r\n },\r\n selectRows: function(keys, preserve) {\r\n return this.selectedItemKeys(keys, preserve)\r\n },\r\n deselectRows: function(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n },\r\n selectRowsByIndexes: function(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 }(0, _iterator.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: function() {\r\n return this._selection.getSelectedItems()\r\n },\r\n changeItemSelection: function(itemIndex, keys) {\r\n keys = keys || {};\r\n if (this.isSelectionWithCheckboxes()) {\r\n keys.control = true\r\n }\r\n return this._selection.changeItemSelection(this._dataController.getRowIndexDelta() + itemIndex, keys)\r\n },\r\n focusedItemIndex: function(itemIndex) {\r\n var that = this;\r\n if ((0, _type.isDefined)(itemIndex)) {\r\n that._selection._focusedItemIndex = itemIndex\r\n } else {\r\n return that._selection._focusedItemIndex\r\n }\r\n },\r\n isSelectionWithCheckboxes: function() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n },\r\n startSelectionWithCheckboxes: function() {\r\n var that = this;\r\n if (\"multiple\" === that.option(SELECTION_MODE) && !that.isSelectionWithCheckboxes()) {\r\n that._isSelectionWithCheckboxes = true;\r\n that._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n },\r\n stopSelectionWithCheckboxes: function() {\r\n var that = this;\r\n if (that._isSelectionWithCheckboxes) {\r\n that._isSelectionWithCheckboxes = false;\r\n that._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n }\r\n}());\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\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 },\r\n controllers: {\r\n selection: SelectionController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\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: function() {\r\n var that = this;\r\n return that.callBase().done(function() {\r\n that.getController(\"selection\").refresh()\r\n })\r\n },\r\n _processDataItem: function(item, options) {\r\n var that = this;\r\n var selectionController = that.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: function(options) {\r\n var that = this;\r\n var d = new _deferred.Deferred;\r\n this.callBase.apply(this, arguments).done(function() {\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: function(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: function(change) {\r\n var _this = this;\r\n if (change && \"updateSelection\" === change.changeType) {\r\n change.items.forEach(function(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: function() {\r\n var changes = this._changes;\r\n var isUpdateSelection = changes.length > 1 && changes.every(function(change) {\r\n return \"updateSelection\" === change.changeType\r\n });\r\n if (isUpdateSelection) {\r\n var itemIndexes = changes.map(function(change) {\r\n return change.itemIndexes || []\r\n }).reduce(function(a, b) {\r\n return a.concat(b)\r\n });\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 push: function(changes) {\r\n this.callBase.apply(this, arguments);\r\n var removedKeys = changes.filter(function(change) {\r\n return \"remove\" === change.type\r\n }).map(function(change) {\r\n return change.key\r\n });\r\n removedKeys.length && this.getController(\"selection\").deselectRows(removedKeys)\r\n }\r\n },\r\n contextMenu: {\r\n _contextMenuPrepared: function(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: function() {\r\n var that = this;\r\n that.callBase();\r\n that.getController(\"selection\").selectionChanged.add(that._updateSelectAllValue.bind(that))\r\n },\r\n _updateSelectAllValue: function() {\r\n var that = this;\r\n var $element = that.element();\r\n var $editor = $element && $element.find(\".\" + SELECT_CHECKBOX_CLASS);\r\n if ($element && $editor.length && \"multiple\" === that.option(\"selection.mode\")) {\r\n $editor.dxCheckBox(\"instance\").option({\r\n visible: !that.getController(\"data\").isEmpty(),\r\n value: that.getController(\"selection\").isSelectAll()\r\n })\r\n }\r\n },\r\n _handleDataChanged: function(e) {\r\n this.callBase(e);\r\n if (!e || \"refresh\" === e.changeType) {\r\n this._updateSelectAllValue()\r\n }\r\n },\r\n _renderSelectAllCheckBox: function($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 = (0, _renderer.default)(\"
    \").appendTo($container).addClass(SELECT_CHECKBOX_CLASS);\r\n that.setAria(\"label\", _message.default.format(\"dxDataGrid-ariaSelectAll\"), $container);\r\n that.getController(\"editorFactory\").createEditor(groupElement, (0, _extend.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: function(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: function($element) {\r\n _events_engine.default.on($element, _click.name, this.createAction(function(e) {\r\n var event = e.event;\r\n if (!(0, _renderer.default)(event.target).closest(\".\" + SELECT_CHECKBOX_CLASS).length) {\r\n _events_engine.default.trigger((0, _renderer.default)(event.currentTarget).children(\".\" + SELECT_CHECKBOX_CLASS), _click.name)\r\n }\r\n event.preventDefault()\r\n }))\r\n }\r\n },\r\n rowsView: {\r\n renderSelectCheckBoxContainer: function($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.setAria(\"label\", _message.default.format(\"dxDataGrid-ariaSelectRow\"), $container);\r\n this._renderSelectCheckBox($container, options)\r\n } else {\r\n _uiGrid_core.default.setEmptyText($container)\r\n }\r\n },\r\n _renderSelectCheckBox: function(container, options) {\r\n var groupElement = (0, _renderer.default)(\"
    \").addClass(SELECT_CHECKBOX_CLASS).appendTo(container);\r\n this.getController(\"editorFactory\").createEditor(groupElement, (0, _extend.extend)({}, options.column, {\r\n parentType: \"dataRow\",\r\n dataType: \"boolean\",\r\n lookup: null,\r\n value: options.value,\r\n setValue: function(value, e) {\r\n var _e$event;\r\n if (\"keydown\" === (null === e || void 0 === e ? void 0 : null === (_e$event = e.event) || void 0 === _e$event ? void 0 : _e$event.type)) {\r\n _events_engine.default.trigger(e.element, _click.name, e)\r\n }\r\n },\r\n row: options.row\r\n }));\r\n return groupElement\r\n },\r\n _attachCheckBoxClickEvent: function($element) {\r\n _events_engine.default.on($element, _click.name, this.createAction(function(e) {\r\n var selectionController = this.getController(\"selection\");\r\n var event = e.event;\r\n var rowIndex = this.getRowIndex((0, _renderer.default)(event.currentTarget).closest(\".\" + 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 ((0, _renderer.default)(event.target).closest(\".\" + 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: function(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 (0, _iterator.each)(tableElements, function(_, tableElement) {\r\n (0, _iterator.each)(change.itemIndexes || [], function(_, index) {\r\n var $row;\r\n if (change.items[index]) {\r\n $row = that._getRowElements((0, _renderer.default)(tableElement)).eq(index);\r\n if ($row.length) {\r\n var isSelected = change.items[index].isSelected;\r\n $row.toggleClass(ROW_SELECTION_CLASS, void 0 === isSelected ? false : isSelected).find(\".\" + 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: function() {\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) || !_support.touch) {\r\n _events_engine.default.on($table, (0, _index.addNamespace)(_hold.default.name, \"dxDataGridRowsView\"), \".\" + DATA_ROW_CLASS, that.createAction(function(e) {\r\n processLongTap(that.component, e.event);\r\n e.event.stopPropagation()\r\n }))\r\n }\r\n _events_engine.default.on($table, \"mousedown selectstart\", that.createAction(function(e) {\r\n var event = e.event;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n }))\r\n }\r\n return $table\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (row) {\r\n var isSelected = !!row.isSelected;\r\n if (isSelected) {\r\n $row.addClass(ROW_SELECTION_CLASS)\r\n }\r\n this.setAria(\"selected\", isSelected, $row)\r\n }\r\n return $row\r\n },\r\n _rowClick: function(e) {\r\n var that = this;\r\n var dxEvent = e.event;\r\n var isSelectionDisabled = (0, _renderer.default)(dxEvent.target).closest(\".\" + SELECTION_DISABLED_CLASS).length;\r\n if (!that.isClickableElement((0, _renderer.default)(dxEvent.target))) {\r\n if (!isSelectionDisabled && (\"multiple\" !== that.option(SELECTION_MODE) || \"always\" !== that.option(SHOW_CHECKBOXES_MODE))) {\r\n if (that.getController(\"selection\").changeItemSelection(e.rowIndex, {\r\n control: (0, _index.isCommandKeyPressed)(dxEvent),\r\n shift: dxEvent.shiftKey\r\n })) {\r\n dxEvent.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n that.callBase(e)\r\n }\r\n },\r\n isClickableElement: function($target) {\r\n var isCommandSelect = $target.closest(\".\" + COMMAND_SELECT_CLASS).length;\r\n return !!isCommandSelect\r\n },\r\n _renderCore: function(change) {\r\n this.callBase(change);\r\n this._updateCheckboxesClass()\r\n },\r\n _updateCheckboxesClass: function() {\r\n var tableElements = this.getTableElements();\r\n var selectionController = this.getController(\"selection\");\r\n var isCheckBoxesHidden = selectionController.isSelectColumnVisible() && !selectionController.isSelectionWithCheckboxes();\r\n (0, _iterator.each)(tableElements, function(_, tableElement) {\r\n (0, _renderer.default)(tableElement).toggleClass(CHECKBOXES_HIDDEN_CLASS, isCheckBoxesHidden)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/drawer/ui.drawer.rendering.strategy.overlap.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _uiDrawer = require(\"./ui.drawer.animation\");\r\nvar _uiDrawerRendering = _interopRequireDefault(require(\"./ui.drawer.rendering.strategy\"));\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _overlay = _interopRequireDefault(require(\"../overlay\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _inflector = require(\"../../core/utils/inflector\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar OverlapStrategy = function(_DrawerStrategy) {\r\n _inheritsLoose(OverlapStrategy, _DrawerStrategy);\r\n\r\n function OverlapStrategy() {\r\n return _DrawerStrategy.apply(this, arguments) || this\r\n }\r\n var _proto = OverlapStrategy.prototype;\r\n _proto.renderPanelContent = function(whenPanelContentRendered) {\r\n var _this = this;\r\n delete this._initialPosition;\r\n var drawer = this.getDrawerInstance();\r\n var _drawer$option = drawer.option(),\r\n opened = _drawer$option.opened,\r\n minSize = _drawer$option.minSize;\r\n drawer._overlay = drawer._createComponent(drawer.content(), _overlay.default, {\r\n shading: false,\r\n container: drawer.getOverlayTarget(),\r\n position: this._getOverlayPosition(),\r\n width: opened ? \"auto\" : minSize || 0,\r\n height: \"100%\",\r\n templatesRenderAsynchronously: drawer.option(\"templatesRenderAsynchronously\"),\r\n animation: {\r\n show: {\r\n duration: 0\r\n }\r\n },\r\n onPositioned: function(e) {\r\n this._fixOverlayPosition(e.component.$content())\r\n }.bind(this),\r\n contentTemplate: drawer.option(\"template\"),\r\n onContentReady: function(args) {\r\n whenPanelContentRendered.resolve();\r\n _this._processOverlayZIndex(args.component.content())\r\n },\r\n visible: true,\r\n propagateOutsideClick: true\r\n })\r\n };\r\n _proto._fixOverlayPosition = function($overlayContent) {\r\n var position = (0, _common.ensureDefined)(this._initialPosition, {\r\n left: 0,\r\n top: 0\r\n });\r\n (0, _translator.move)($overlayContent, position);\r\n if (\"right\" === this.getDrawerInstance().calcTargetPosition()) {\r\n $overlayContent.css(\"left\", \"auto\")\r\n }\r\n if (\"bottom\" === this.getDrawerInstance().calcTargetPosition()) {\r\n $overlayContent.css(\"top\", \"auto\");\r\n $overlayContent.css(\"bottom\", \"0px\")\r\n }\r\n };\r\n _proto._getOverlayPosition = function() {\r\n var drawer = this.getDrawerInstance();\r\n var panelPosition = drawer.calcTargetPosition();\r\n var result = {};\r\n switch (panelPosition) {\r\n case \"left\":\r\n result = {\r\n my: \"top left\",\r\n at: \"top left\"\r\n };\r\n break;\r\n case \"right\":\r\n result = {\r\n my: drawer.option(\"rtlEnabled\") ? \"top left\" : \"top right\",\r\n at: \"top right\"\r\n };\r\n break;\r\n case \"top\":\r\n case \"bottom\":\r\n result = {\r\n my: panelPosition,\r\n at: panelPosition\r\n }\r\n }\r\n result.of = drawer.getOverlayTarget();\r\n return result\r\n };\r\n _proto.refreshPanelElementSize = function(calcFromRealPanelSize) {\r\n var drawer = this.getDrawerInstance();\r\n var overlay = drawer.getOverlay();\r\n if (drawer.isHorizontalDirection()) {\r\n overlay.option(\"height\", \"100%\");\r\n overlay.option(\"width\", calcFromRealPanelSize ? drawer.getRealPanelWidth() : this._getPanelSize(drawer.option(\"opened\")))\r\n } else {\r\n overlay.option(\"width\", overlay.option(\"container\").width());\r\n overlay.option(\"height\", calcFromRealPanelSize ? drawer.getRealPanelHeight() : this._getPanelSize(drawer.option(\"opened\")))\r\n }\r\n };\r\n _proto.onPanelContentRendered = function() {\r\n this._updateViewContentStyles()\r\n };\r\n _proto._updateViewContentStyles = function() {\r\n var drawer = this.getDrawerInstance();\r\n (0, _renderer.default)(drawer.viewContent()).css(\"padding\" + (0, _inflector.camelize)(drawer.calcTargetPosition(), true), drawer.option(\"minSize\"));\r\n (0, _renderer.default)(drawer.viewContent()).css(\"transform\", \"inherit\")\r\n };\r\n _proto._internalRenderPosition = function(changePositionUsingFxAnimation, whenAnimationCompleted) {\r\n var drawer = this.getDrawerInstance();\r\n var $panel = (0, _renderer.default)(drawer.content());\r\n var $panelOverlayContent = drawer.getOverlay().$content();\r\n var revealMode = drawer.option(\"revealMode\");\r\n var targetPanelPosition = drawer.calcTargetPosition();\r\n var panelSize = this._getPanelSize(drawer.option(\"opened\"));\r\n var panelOffset = this._getPanelOffset(drawer.option(\"opened\")) * drawer._getPositionCorrection();\r\n var marginTop = drawer.getRealPanelHeight() - panelSize;\r\n this._updateViewContentStyles();\r\n if (changePositionUsingFxAnimation) {\r\n if (\"slide\" === revealMode) {\r\n this._initialPosition = drawer.isHorizontalDirection() ? {\r\n left: panelOffset\r\n } : {\r\n top: panelOffset\r\n };\r\n _uiDrawer.animation.moveTo({\r\n complete: function() {\r\n whenAnimationCompleted.resolve()\r\n },\r\n duration: drawer.option(\"animationDuration\"),\r\n direction: targetPanelPosition,\r\n $element: $panel,\r\n position: panelOffset\r\n })\r\n } else {\r\n if (\"expand\" === revealMode) {\r\n this._initialPosition = {\r\n left: 0\r\n };\r\n (0, _translator.move)($panelOverlayContent, this._initialPosition);\r\n _uiDrawer.animation.size({\r\n complete: function() {\r\n whenAnimationCompleted.resolve()\r\n },\r\n duration: drawer.option(\"animationDuration\"),\r\n direction: targetPanelPosition,\r\n $element: $panelOverlayContent,\r\n size: panelSize,\r\n marginTop: marginTop\r\n })\r\n }\r\n }\r\n } else {\r\n if (\"slide\" === revealMode) {\r\n this._initialPosition = drawer.isHorizontalDirection() ? {\r\n left: panelOffset\r\n } : {\r\n top: panelOffset\r\n };\r\n (0, _translator.move)($panel, this._initialPosition)\r\n } else {\r\n if (\"expand\" === revealMode) {\r\n this._initialPosition = {\r\n left: 0\r\n };\r\n (0, _translator.move)($panelOverlayContent, this._initialPosition);\r\n if (drawer.isHorizontalDirection()) {\r\n (0, _renderer.default)($panelOverlayContent).css(\"width\", panelSize)\r\n } else {\r\n (0, _renderer.default)($panelOverlayContent).css(\"height\", panelSize);\r\n if (\"bottom\" === targetPanelPosition) {\r\n (0, _renderer.default)($panelOverlayContent).css(\"marginTop\", marginTop)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n _proto.getPanelContent = function() {\r\n return (0, _renderer.default)(this.getDrawerInstance().getOverlay().content())\r\n };\r\n _proto._processOverlayZIndex = function($element) {\r\n var styles = (0, _renderer.default)($element).get(0).style;\r\n var zIndex = styles.zIndex || 1;\r\n this.getDrawerInstance().setZIndex(zIndex)\r\n };\r\n _proto.isViewContentFirst = function(position) {\r\n return \"right\" === position || \"bottom\" === position\r\n };\r\n return OverlapStrategy\r\n}(_uiDrawerRendering.default);\r\nvar _default = OverlapStrategy;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.color_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar colorHelper = {\r\n _tryConvertColor: function(source) {\r\n if (\"string\" !== typeof source) {\r\n return source\r\n }\r\n var result;\r\n if (source.length > 0 && \"#\" === source[0]) {\r\n var colorCode = source.substr(1, source.length);\r\n if (6 === colorCode.length) {\r\n result = \"FF\" + colorCode\r\n } else {\r\n if (8 === colorCode.length) {\r\n result = colorCode[6] + colorCode[7] + colorCode.substr(0, 6)\r\n } else {\r\n result = colorCode\r\n }\r\n }\r\n } else {\r\n result = source\r\n }\r\n return result\r\n },\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if ((0, _type.isDefined)(sourceObj)) {\r\n if (\"string\" === typeof sourceObj) {\r\n result = {\r\n rgb: this._tryConvertColor(sourceObj)\r\n }\r\n } else {\r\n result = {\r\n rgb: this._tryConvertColor(sourceObj.rgb),\r\n theme: sourceObj.theme\r\n }\r\n }\r\n if (colorHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if ((0, _type.isDefined)(source)) {\r\n if (\"string\" === typeof source) {\r\n result = source\r\n } else {\r\n result = {};\r\n if (void 0 !== source.rgb) {\r\n result.rgb = source.rgb\r\n }\r\n if (void 0 !== source.theme) {\r\n result.theme = source.theme\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || !(0, _type.isDefined)(tag.rgb) && !(0, _type.isDefined)(tag.theme)\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return colorHelper.isEmpty(leftTag) && colorHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && leftTag.rgb === rightTag.rgb && leftTag.theme === rightTag.theme\r\n },\r\n toXml: function(tagName, tag) {\r\n return _excel.default.toXml(tagName, {\r\n rgb: tag.rgb,\r\n theme: tag.theme\r\n })\r\n }\r\n};\r\nvar _default = colorHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (exporter/excel/excel.pattern_fill_helper.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _excel = _interopRequireDefault(require(\"./excel.tag_helper\"));\r\nvar _excel2 = _interopRequireDefault(require(\"./excel.color_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar patternFillHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if ((0, _type.isDefined)(sourceObj)) {\r\n result = {\r\n patternType: sourceObj.patternType,\r\n backgroundColor: _excel2.default.tryCreateTag(sourceObj.backgroundColor),\r\n foregroundColor: _excel2.default.tryCreateTag(sourceObj.foregroundColor)\r\n };\r\n if (patternFillHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if ((0, _type.isDefined)(source)) {\r\n result = {};\r\n if (void 0 !== source.patternType) {\r\n result.patternType = source.patternType\r\n }\r\n if (void 0 !== source.backgroundColor) {\r\n result.backgroundColor = _excel2.default.copy(source.backgroundColor)\r\n }\r\n if (void 0 !== source.foregroundColor) {\r\n result.foregroundColor = _excel2.default.copy(source.foregroundColor)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return patternFillHelper.isEmpty(leftTag) && patternFillHelper.isEmpty(rightTag) || (0, _type.isDefined)(leftTag) && (0, _type.isDefined)(rightTag) && leftTag.patternType === rightTag.patternType && _excel2.default.areEqual(leftTag.backgroundColor, rightTag.backgroundColor) && _excel2.default.areEqual(leftTag.foregroundColor, rightTag.foregroundColor)\r\n },\r\n isEmpty: function(tag) {\r\n return !(0, _type.isDefined)(tag) || !(0, _type.isDefined)(tag.patternType)\r\n },\r\n toXml: function(tag) {\r\n var content = [(0, _type.isDefined)(tag.foregroundColor) ? _excel2.default.toXml(\"fgColor\", tag.foregroundColor) : \"\", (0, _type.isDefined)(tag.backgroundColor) ? _excel2.default.toXml(\"bgColor\", tag.backgroundColor) : \"\"].join(\"\");\r\n return _excel.default.toXml(\"patternFill\", {\r\n patternType: tag.patternType\r\n }, content)\r\n }\r\n};\r\nvar _default = patternFillHelper;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.columns_resizing_reordering.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.TrackerView = exports.ColumnsResizerViewController = exports.TablePositionViewController = exports.ColumnsSeparatorView = exports.DraggingHeaderViewController = exports.DraggingHeaderView = void 0;\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.columns_resizing_reordering\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DraggingHeaderView = _uiGrid_core.default.views.draggingHeaderView;\r\nexports.DraggingHeaderView = DraggingHeaderView;\r\nvar DraggingHeaderViewController = _uiGrid_core.default.controllers.draggingHeader;\r\nexports.DraggingHeaderViewController = DraggingHeaderViewController;\r\nvar ColumnsSeparatorView = _uiGrid_core.default.views.columnsSeparatorView;\r\nexports.ColumnsSeparatorView = ColumnsSeparatorView;\r\nvar TablePositionViewController = _uiGrid_core.default.controllers.tablePosition;\r\nexports.TablePositionViewController = TablePositionViewController;\r\nvar ColumnsResizerViewController = _uiGrid_core.default.controllers.columnsResizer;\r\nexports.ColumnsResizerViewController = ColumnsResizerViewController;\r\nvar TrackerView = _uiGrid_core.default.views.trackerView;\r\nexports.TrackerView = TrackerView;\r\n_uiData_grid.default.registerModule(\"columnsResizingReordering\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (color.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar standardColorNames = {\r\n aliceblue: \"f0f8ff\",\r\n antiquewhite: \"faebd7\",\r\n aqua: \"00ffff\",\r\n aquamarine: \"7fffd4\",\r\n azure: \"f0ffff\",\r\n beige: \"f5f5dc\",\r\n bisque: \"ffe4c4\",\r\n black: \"000000\",\r\n blanchedalmond: \"ffebcd\",\r\n blue: \"0000ff\",\r\n blueviolet: \"8a2be2\",\r\n brown: \"a52a2a\",\r\n burlywood: \"deb887\",\r\n cadetblue: \"5f9ea0\",\r\n chartreuse: \"7fff00\",\r\n chocolate: \"d2691e\",\r\n coral: \"ff7f50\",\r\n cornflowerblue: \"6495ed\",\r\n cornsilk: \"fff8dc\",\r\n crimson: \"dc143c\",\r\n cyan: \"00ffff\",\r\n darkblue: \"00008b\",\r\n darkcyan: \"008b8b\",\r\n darkgoldenrod: \"b8860b\",\r\n darkgray: \"a9a9a9\",\r\n darkgreen: \"006400\",\r\n darkkhaki: \"bdb76b\",\r\n darkmagenta: \"8b008b\",\r\n darkolivegreen: \"556b2f\",\r\n darkorange: \"ff8c00\",\r\n darkorchid: \"9932cc\",\r\n darkred: \"8b0000\",\r\n darksalmon: \"e9967a\",\r\n darkseagreen: \"8fbc8f\",\r\n darkslateblue: \"483d8b\",\r\n darkslategray: \"2f4f4f\",\r\n darkturquoise: \"00ced1\",\r\n darkviolet: \"9400d3\",\r\n deeppink: \"ff1493\",\r\n deepskyblue: \"00bfff\",\r\n dimgray: \"696969\",\r\n dodgerblue: \"1e90ff\",\r\n feldspar: \"d19275\",\r\n firebrick: \"b22222\",\r\n floralwhite: \"fffaf0\",\r\n forestgreen: \"228b22\",\r\n fuchsia: \"ff00ff\",\r\n gainsboro: \"dcdcdc\",\r\n ghostwhite: \"f8f8ff\",\r\n gold: \"ffd700\",\r\n goldenrod: \"daa520\",\r\n gray: \"808080\",\r\n green: \"008000\",\r\n greenyellow: \"adff2f\",\r\n honeydew: \"f0fff0\",\r\n hotpink: \"ff69b4\",\r\n indianred: \"cd5c5c\",\r\n indigo: \"4b0082\",\r\n ivory: \"fffff0\",\r\n khaki: \"f0e68c\",\r\n lavender: \"e6e6fa\",\r\n lavenderblush: \"fff0f5\",\r\n lawngreen: \"7cfc00\",\r\n lemonchiffon: \"fffacd\",\r\n lightblue: \"add8e6\",\r\n lightcoral: \"f08080\",\r\n lightcyan: \"e0ffff\",\r\n lightgoldenrodyellow: \"fafad2\",\r\n lightgrey: \"d3d3d3\",\r\n lightgreen: \"90ee90\",\r\n lightpink: \"ffb6c1\",\r\n lightsalmon: \"ffa07a\",\r\n lightseagreen: \"20b2aa\",\r\n lightskyblue: \"87cefa\",\r\n lightslateblue: \"8470ff\",\r\n lightslategray: \"778899\",\r\n lightsteelblue: \"b0c4de\",\r\n lightyellow: \"ffffe0\",\r\n lime: \"00ff00\",\r\n limegreen: \"32cd32\",\r\n linen: \"faf0e6\",\r\n magenta: \"ff00ff\",\r\n maroon: \"800000\",\r\n mediumaquamarine: \"66cdaa\",\r\n mediumblue: \"0000cd\",\r\n mediumorchid: \"ba55d3\",\r\n mediumpurple: \"9370d8\",\r\n mediumseagreen: \"3cb371\",\r\n mediumslateblue: \"7b68ee\",\r\n mediumspringgreen: \"00fa9a\",\r\n mediumturquoise: \"48d1cc\",\r\n mediumvioletred: \"c71585\",\r\n midnightblue: \"191970\",\r\n mintcream: \"f5fffa\",\r\n mistyrose: \"ffe4e1\",\r\n moccasin: \"ffe4b5\",\r\n navajowhite: \"ffdead\",\r\n navy: \"000080\",\r\n oldlace: \"fdf5e6\",\r\n olive: \"808000\",\r\n olivedrab: \"6b8e23\",\r\n orange: \"ffa500\",\r\n orangered: \"ff4500\",\r\n orchid: \"da70d6\",\r\n palegoldenrod: \"eee8aa\",\r\n palegreen: \"98fb98\",\r\n paleturquoise: \"afeeee\",\r\n palevioletred: \"d87093\",\r\n papayawhip: \"ffefd5\",\r\n peachpuff: \"ffdab9\",\r\n peru: \"cd853f\",\r\n pink: \"ffc0cb\",\r\n plum: \"dda0dd\",\r\n powderblue: \"b0e0e6\",\r\n purple: \"800080\",\r\n rebeccapurple: \"663399\",\r\n red: \"ff0000\",\r\n rosybrown: \"bc8f8f\",\r\n royalblue: \"4169e1\",\r\n saddlebrown: \"8b4513\",\r\n salmon: \"fa8072\",\r\n sandybrown: \"f4a460\",\r\n seagreen: \"2e8b57\",\r\n seashell: \"fff5ee\",\r\n sienna: \"a0522d\",\r\n silver: \"c0c0c0\",\r\n skyblue: \"87ceeb\",\r\n slateblue: \"6a5acd\",\r\n slategray: \"708090\",\r\n snow: \"fffafa\",\r\n springgreen: \"00ff7f\",\r\n steelblue: \"4682b4\",\r\n tan: \"d2b48c\",\r\n teal: \"008080\",\r\n thistle: \"d8bfd8\",\r\n tomato: \"ff6347\",\r\n turquoise: \"40e0d0\",\r\n violet: \"ee82ee\",\r\n violetred: \"d02090\",\r\n wheat: \"f5deb3\",\r\n white: \"ffffff\",\r\n whitesmoke: \"f5f5f5\",\r\n yellow: \"ffff00\",\r\n yellowgreen: \"9acd32\"\r\n};\r\nvar standardColorTypes = [{\r\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 10), parseInt(colorString[2], 10), parseInt(colorString[3], 10)]\r\n }\r\n}, {\r\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d*\\.*\\d+)\\)$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 10), parseInt(colorString[2], 10), parseInt(colorString[3], 10), parseFloat(colorString[4])]\r\n }\r\n}, {\r\n re: /^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 16), parseInt(colorString[2], 16), parseInt(colorString[3], 16)]\r\n }\r\n}, {\r\n re: /^#([a-f0-9]{1})([a-f0-9]{1})([a-f0-9]{1})$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1] + colorString[1], 16), parseInt(colorString[2] + colorString[2], 16), parseInt(colorString[3] + colorString[3], 16)]\r\n }\r\n}, {\r\n re: /^hsv\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n var h = parseInt(colorString[1], 10);\r\n var s = parseInt(colorString[2], 10);\r\n var v = parseInt(colorString[3], 10);\r\n var rgb = hsvToRgb(h, s, v);\r\n return [rgb[0], rgb[1], rgb[2], 1, [h, s, v]]\r\n }\r\n}, {\r\n re: /^hsl\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n var h = parseInt(colorString[1], 10);\r\n var s = parseInt(colorString[2], 10);\r\n var l = parseInt(colorString[3], 10);\r\n var rgb = hslToRgb(h, s, l);\r\n return [rgb[0], rgb[1], rgb[2], 1, null, [h, s, l]]\r\n }\r\n}];\r\nvar _round = Math.round;\r\n\r\nfunction Color(value) {\r\n this.baseColor = value;\r\n var color;\r\n if (value) {\r\n color = String(value).toLowerCase().replace(/ /g, \"\");\r\n color = standardColorNames[color] ? \"#\" + standardColorNames[color] : color;\r\n color = parseColor(color)\r\n }\r\n if (!color) {\r\n this.colorIsInvalid = true\r\n }\r\n color = color || {};\r\n this.r = normalize(color[0]);\r\n this.g = normalize(color[1]);\r\n this.b = normalize(color[2]);\r\n this.a = normalize(color[3], 1, 1);\r\n if (color[4]) {\r\n this.hsv = {\r\n h: color[4][0],\r\n s: color[4][1],\r\n v: color[4][2]\r\n }\r\n } else {\r\n this.hsv = toHsvFromRgb(this.r, this.g, this.b)\r\n }\r\n if (color[5]) {\r\n this.hsl = {\r\n h: color[5][0],\r\n s: color[5][1],\r\n l: color[5][2]\r\n }\r\n } else {\r\n this.hsl = toHslFromRgb(this.r, this.g, this.b)\r\n }\r\n}\r\n\r\nfunction parseColor(color) {\r\n if (\"transparent\" === color) {\r\n return [0, 0, 0, 0]\r\n }\r\n var i = 0;\r\n var ii = standardColorTypes.length;\r\n var str;\r\n for (; i < ii; ++i) {\r\n str = standardColorTypes[i].re.exec(color);\r\n if (str) {\r\n return standardColorTypes[i].process(str)\r\n }\r\n }\r\n return null\r\n}\r\n\r\nfunction normalize(colorComponent, def, max) {\r\n def = def || 0;\r\n max = max || 255;\r\n return colorComponent < 0 || isNaN(colorComponent) ? def : colorComponent > max ? max : colorComponent\r\n}\r\n\r\nfunction toHexFromRgb(r, g, b) {\r\n return \"#\" + (16777216 | r << 16 | g << 8 | b).toString(16).slice(1)\r\n}\r\n\r\nfunction toHsvFromRgb(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var delta = max - min;\r\n var H;\r\n var S;\r\n var V = max;\r\n S = 0 === max ? 0 : 1 - min / max;\r\n if (max === min) {\r\n H = 0\r\n } else {\r\n switch (max) {\r\n case r:\r\n H = 60 * ((g - b) / delta);\r\n if (g < b) {\r\n H += 360\r\n }\r\n break;\r\n case g:\r\n H = 60 * ((b - r) / delta) + 120;\r\n break;\r\n case b:\r\n H = 60 * ((r - g) / delta) + 240\r\n }\r\n }\r\n S *= 100;\r\n V *= 100 / 255;\r\n return {\r\n h: Math.round(H),\r\n s: Math.round(S),\r\n v: Math.round(V)\r\n }\r\n}\r\n\r\nfunction hsvToRgb(h, s, v) {\r\n var index = Math.floor(h % 360 / 60);\r\n var vMin = (100 - s) * v / 100;\r\n var a = (v - vMin) * (h % 60 / 60);\r\n var vInc = vMin + a;\r\n var vDec = v - a;\r\n var r;\r\n var g;\r\n var b;\r\n switch (index) {\r\n case 0:\r\n r = v;\r\n g = vInc;\r\n b = vMin;\r\n break;\r\n case 1:\r\n r = vDec;\r\n g = v;\r\n b = vMin;\r\n break;\r\n case 2:\r\n r = vMin;\r\n g = v;\r\n b = vInc;\r\n break;\r\n case 3:\r\n r = vMin;\r\n g = vDec;\r\n b = v;\r\n break;\r\n case 4:\r\n r = vInc;\r\n g = vMin;\r\n b = v;\r\n break;\r\n case 5:\r\n r = v;\r\n g = vMin;\r\n b = vDec\r\n }\r\n return [Math.round(2.55 * r), Math.round(2.55 * g), Math.round(2.55 * b)]\r\n}\r\n\r\nfunction calculateHue(r, g, b, delta) {\r\n var max = Math.max(r, g, b);\r\n switch (max) {\r\n case r:\r\n return (g - b) / delta + (g < b ? 6 : 0);\r\n case g:\r\n return (b - r) / delta + 2;\r\n case b:\r\n return (r - g) / delta + 4\r\n }\r\n}\r\n\r\nfunction toHslFromRgb(r, g, b) {\r\n r = convertTo01Bounds(r, 255);\r\n g = convertTo01Bounds(g, 255);\r\n b = convertTo01Bounds(b, 255);\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var maxMinSum = max + min;\r\n var h;\r\n var s;\r\n var l = maxMinSum / 2;\r\n if (max === min) {\r\n h = s = 0\r\n } else {\r\n var delta = max - min;\r\n if (l > .5) {\r\n s = delta / (2 - maxMinSum)\r\n } else {\r\n s = delta / maxMinSum\r\n }\r\n h = calculateHue(r, g, b, delta);\r\n h /= 6\r\n }\r\n return {\r\n h: _round(360 * h),\r\n s: _round(100 * s),\r\n l: _round(100 * l)\r\n }\r\n}\r\n\r\nfunction makeColorTint(colorPart, h) {\r\n var colorTint = h;\r\n if (\"r\" === colorPart) {\r\n colorTint = h + 1 / 3\r\n }\r\n if (\"b\" === colorPart) {\r\n colorTint = h - 1 / 3\r\n }\r\n return colorTint\r\n}\r\n\r\nfunction modifyColorTint(colorTint) {\r\n if (colorTint < 0) {\r\n colorTint += 1\r\n }\r\n if (colorTint > 1) {\r\n colorTint -= 1\r\n }\r\n return colorTint\r\n}\r\n\r\nfunction hueToRgb(p, q, colorTint) {\r\n colorTint = modifyColorTint(colorTint);\r\n if (colorTint < 1 / 6) {\r\n return p + 6 * (q - p) * colorTint\r\n }\r\n if (colorTint < .5) {\r\n return q\r\n }\r\n if (colorTint < 2 / 3) {\r\n return p + (q - p) * (2 / 3 - colorTint) * 6\r\n }\r\n return p\r\n}\r\n\r\nfunction hslToRgb(h, s, l) {\r\n var r;\r\n var g;\r\n var b;\r\n h = convertTo01Bounds(h, 360);\r\n s = convertTo01Bounds(s, 100);\r\n l = convertTo01Bounds(l, 100);\r\n if (0 === s) {\r\n r = g = b = l\r\n } else {\r\n var q = l < .5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hueToRgb(p, q, makeColorTint(\"r\", h));\r\n g = hueToRgb(p, q, makeColorTint(\"g\", h));\r\n b = hueToRgb(p, q, makeColorTint(\"b\", h))\r\n }\r\n return [_round(255 * r), _round(255 * g), _round(255 * b)]\r\n}\r\n\r\nfunction convertTo01Bounds(n, max) {\r\n n = Math.min(max, Math.max(0, parseFloat(n)));\r\n if (Math.abs(n - max) < 1e-6) {\r\n return 1\r\n }\r\n return n % max / parseFloat(max)\r\n}\r\n\r\nfunction isIntegerBetweenMinAndMax(number, min, max) {\r\n min = min || 0;\r\n max = max || 255;\r\n if (number % 1 !== 0 || number < min || number > max || \"number\" !== typeof number || isNaN(number)) {\r\n return false\r\n }\r\n return true\r\n}\r\nColor.prototype = {\r\n constructor: Color,\r\n highlight: function(step) {\r\n step = step || 10;\r\n return this.alter(step).toHex()\r\n },\r\n darken: function(step) {\r\n step = step || 10;\r\n return this.alter(-step).toHex()\r\n },\r\n alter: function(step) {\r\n var result = new Color;\r\n result.r = normalize(this.r + step);\r\n result.g = normalize(this.g + step);\r\n result.b = normalize(this.b + step);\r\n return result\r\n },\r\n blend: function(blendColor, opacity) {\r\n var other = blendColor instanceof Color ? blendColor : new Color(blendColor);\r\n var result = new Color;\r\n result.r = normalize(_round(this.r * (1 - opacity) + other.r * opacity));\r\n result.g = normalize(_round(this.g * (1 - opacity) + other.g * opacity));\r\n result.b = normalize(_round(this.b * (1 - opacity) + other.b * opacity));\r\n return result\r\n },\r\n toHex: function() {\r\n return toHexFromRgb(this.r, this.g, this.b)\r\n },\r\n getPureColor: function() {\r\n var rgb = hsvToRgb(this.hsv.h, 100, 100);\r\n return new Color(\"rgb(\" + rgb.join(\",\") + \")\")\r\n },\r\n isValidHex: function(hex) {\r\n return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hex)\r\n },\r\n isValidRGB: function(r, g, b) {\r\n if (!isIntegerBetweenMinAndMax(r) || !isIntegerBetweenMinAndMax(g) || !isIntegerBetweenMinAndMax(b)) {\r\n return false\r\n }\r\n return true\r\n },\r\n isValidAlpha: function(a) {\r\n if (isNaN(a) || a < 0 || a > 1 || \"number\" !== typeof a) {\r\n return false\r\n }\r\n return true\r\n },\r\n colorIsInvalid: false,\r\n fromHSL: function(hsl) {\r\n var color = new Color;\r\n var rgb = hslToRgb(hsl.h, hsl.s, hsl.l);\r\n color.r = rgb[0];\r\n color.g = rgb[1];\r\n color.b = rgb[2];\r\n return color\r\n }\r\n};\r\nvar _default = Color;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n});\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.toolbar.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _uiFile_manager = require(\"./ui.file_manager.common\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _toolbar = _interopRequireDefault(require(\"../toolbar\"));\r\nrequire(\"../drop_down_button\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FILE_MANAGER_TOOLBAR_CLASS = \"dx-filemanager-toolbar\";\r\nvar FILE_MANAGER_GENERAL_TOOLBAR_CLASS = \"dx-filemanager-general-toolbar\";\r\nvar FILE_MANAGER_FILE_TOOLBAR_CLASS = \"dx-filemanager-file-toolbar\";\r\nvar FILE_MANAGER_TOOLBAR_SEPARATOR_ITEM_CLASS = FILE_MANAGER_TOOLBAR_CLASS + \"-separator-item\";\r\nvar FILE_MANAGER_TOOLBAR_VIEWMODE_ITEM_CLASS = FILE_MANAGER_TOOLBAR_CLASS + \"-viewmode-item\";\r\nvar FILE_MANAGER_TOOLBAR_HAS_LARGE_ICON_CLASS = FILE_MANAGER_TOOLBAR_CLASS + \"-has-large-icon\";\r\nvar FILE_MANAGER_VIEW_SWITCHER_POPUP_CLASS = \"dx-filemanager-view-switcher-popup\";\r\nvar DEFAULT_ITEM_CONFIGS = {\r\n showNavPane: {\r\n location: \"before\"\r\n },\r\n create: {\r\n location: \"before\",\r\n compactMode: {\r\n showText: \"inMenu\",\r\n locateInMenu: \"auto\"\r\n }\r\n },\r\n upload: {\r\n location: \"before\",\r\n compactMode: {\r\n showText: \"inMenu\",\r\n locateInMenu: \"auto\"\r\n }\r\n },\r\n refresh: {\r\n location: \"after\",\r\n showText: \"inMenu\",\r\n cssClass: FILE_MANAGER_TOOLBAR_HAS_LARGE_ICON_CLASS,\r\n compactMode: {\r\n showText: \"inMenu\",\r\n locateInMenu: \"auto\"\r\n }\r\n },\r\n switchView: {\r\n location: \"after\"\r\n },\r\n download: {\r\n location: \"before\",\r\n compactMode: {\r\n showText: \"inMenu\",\r\n locateInMenu: \"auto\"\r\n }\r\n },\r\n move: {\r\n location: \"before\",\r\n compactMode: {\r\n showText: \"inMenu\",\r\n locateInMenu: \"auto\"\r\n }\r\n },\r\n copy: {\r\n location: \"before\",\r\n compactMode: {\r\n showText: \"inMenu\",\r\n locateInMenu: \"auto\"\r\n }\r\n },\r\n rename: {\r\n location: \"before\",\r\n compactMode: {\r\n showText: \"inMenu\",\r\n locateInMenu: \"auto\"\r\n }\r\n },\r\n \"delete\": {\r\n location: \"before\",\r\n compactMode: {\r\n showText: \"inMenu\"\r\n }\r\n },\r\n clearSelection: {\r\n location: \"after\",\r\n locateInMenu: \"never\",\r\n compactMode: {\r\n showText: \"inMenu\"\r\n }\r\n },\r\n separator: {\r\n location: \"before\"\r\n }\r\n};\r\nvar DEFAULT_ITEM_ALLOWED_PROPERTIES = [\"visible\", \"location\", \"locateInMenu\", \"disabled\", \"showText\"];\r\nvar DEFAULT_ITEM_ALLOWED_OPTION_PROPERTIES = [\"accessKey\", \"elementAttr\", \"height\", \"hint\", \"icon\", \"stylingMode\", \"tabIndex\", \"text\", \"width\"];\r\nvar ALWAYS_VISIBLE_TOOLBAR_ITEMS = [\"separator\", \"switchView\"];\r\nvar REFRESH_ICON_MAP = {\r\n \"default\": \"dx-filemanager-i dx-filemanager-i-refresh\",\r\n progress: \"dx-filemanager-i dx-filemanager-i-progress\",\r\n success: \"dx-filemanager-i dx-filemanager-i-done\",\r\n error: \"dx-filemanager-i dx-filemanager-i-danger\"\r\n};\r\nvar REFRESH_ITEM_PROGRESS_MESSAGE_DELAY = 500;\r\nvar FileManagerToolbar = function(_Widget) {\r\n _inheritsLoose(FileManagerToolbar, _Widget);\r\n\r\n function FileManagerToolbar() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerToolbar.prototype;\r\n _proto._initMarkup = function() {\r\n this._commandManager = this.option(\"commandManager\");\r\n this._createItemClickedAction();\r\n this._generalToolbarVisible = true;\r\n this._$viewSwitcherPopup = (0, _renderer.default)(\"
    \").addClass(FILE_MANAGER_VIEW_SWITCHER_POPUP_CLASS);\r\n this._generalToolbar = this._createToolbar(this.option(\"generalItems\"));\r\n this._fileToolbar = this._createToolbar(this.option(\"fileItems\"), true);\r\n this._$viewSwitcherPopup.appendTo(this.$element());\r\n this.$element().addClass(FILE_MANAGER_TOOLBAR_CLASS + \" \" + FILE_MANAGER_GENERAL_TOOLBAR_CLASS)\r\n };\r\n _proto._render = function() {\r\n _Widget.prototype._render.call(this);\r\n var toolbar = this._getVisibleToolbar();\r\n this._checkCompactMode(toolbar)\r\n };\r\n _proto._dimensionChanged = function(dimension) {\r\n if (!dimension || \"height\" !== dimension) {\r\n var toolbar = this._getVisibleToolbar();\r\n this._checkCompactMode(toolbar)\r\n }\r\n };\r\n _proto._getVisibleToolbar = function() {\r\n return this._generalToolbarVisible ? this._generalToolbar : this._fileToolbar\r\n };\r\n _proto._createToolbar = function(items, hidden) {\r\n var _this = this;\r\n var toolbarItems = this._getPreparedItems(items);\r\n var $toolbar = (0, _renderer.default)(\"
    \").appendTo(this.$element());\r\n var result = this._createComponent($toolbar, _toolbar.default, {\r\n items: toolbarItems,\r\n visible: !hidden,\r\n onItemClick: function(args) {\r\n return _this._raiseItemClicked(args)\r\n }\r\n });\r\n result.compactMode = false;\r\n return result\r\n };\r\n _proto._getPreparedItems = function(items) {\r\n var _this2 = this;\r\n items = items.map(function(item) {\r\n var extendedItem = item;\r\n if ((0, _type.isString)(item)) {\r\n extendedItem = {\r\n name: item\r\n }\r\n }\r\n var commandName = extendedItem.name;\r\n var preparedItem = _this2._configureItemByCommandName(commandName, extendedItem);\r\n preparedItem.originalItemData = item;\r\n if (\"separator\" !== commandName) {\r\n _this2._setItemVisibleAvailable(preparedItem)\r\n }\r\n return preparedItem\r\n });\r\n this._updateSeparatorsVisibility(items);\r\n return items\r\n };\r\n _proto._updateSeparatorsVisibility = function(items, toolbar) {\r\n var _this3 = this;\r\n var hasModifications = false;\r\n var menuItems = this._getMenuItems(toolbar);\r\n var hasItemsBefore = {\r\n before: false,\r\n center: false,\r\n after: false\r\n };\r\n var itemGroups = {\r\n before: this._getItemsInGroup(items, menuItems, \"before\"),\r\n center: this._getItemsInGroup(items, menuItems, \"center\"),\r\n after: this._getItemsInGroup(items, menuItems, \"after\")\r\n };\r\n items.forEach(function(item, i) {\r\n var itemLocation = item.location;\r\n if (\"separator\" === item.name) {\r\n var isSeparatorVisible = hasItemsBefore[itemLocation] && _this3._groupHasItemsAfter(itemGroups[itemLocation]);\r\n if (item.visible !== isSeparatorVisible) {\r\n hasModifications = true;\r\n item.visible = isSeparatorVisible\r\n }\r\n hasItemsBefore[itemLocation] = false\r\n } else {\r\n if (!_this3._isItemInMenu(menuItems, item)) {\r\n hasItemsBefore[itemLocation] = hasItemsBefore[itemLocation] || item.visible\r\n }\r\n itemGroups[itemLocation].shift()\r\n }\r\n });\r\n if (toolbar && hasModifications) {\r\n toolbar.repaint()\r\n }\r\n return hasModifications\r\n };\r\n _proto._getMenuItems = function(toolbar) {\r\n var result = toolbar ? toolbar._getMenuItems() : [];\r\n return result.map(function(menuItem) {\r\n return menuItem.originalItemData\r\n })\r\n };\r\n _proto._isItemInMenu = function(menuItems, item) {\r\n return !!menuItems.length && \"never\" !== (0, _common.ensureDefined)(item.locateInMenu, \"never\") && menuItems.indexOf(item.originalItemData) !== -1\r\n };\r\n _proto._getItemsInGroup = function(items, menuItems, groupName) {\r\n var _this4 = this;\r\n return items.filter(function(item) {\r\n return item.location === groupName && !_this4._isItemInMenu(menuItems, item)\r\n })\r\n };\r\n _proto._groupHasItemsAfter = function(items) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (\"separator\" !== items[i].name && items[i].visible) {\r\n return true\r\n }\r\n }\r\n return false\r\n };\r\n _proto._configureItemByCommandName = function(commandName, item) {\r\n var _result$options;\r\n var result = {};\r\n var command = this._commandManager.getCommandByName(commandName);\r\n if (command) {\r\n result = this._createCommandItem(command)\r\n }\r\n switch (commandName) {\r\n case \"separator\":\r\n result = this._createSeparatorItem();\r\n break;\r\n case \"switchView\":\r\n result = this._createViewModeItem()\r\n }\r\n if (this._isDefaultItem(commandName)) {\r\n var defaultConfig = DEFAULT_ITEM_CONFIGS[commandName];\r\n (0, _extend.extend)(true, result, defaultConfig);\r\n var resultCssClass = result.cssClass || \"\";\r\n (0, _uiFile_manager.extendAttributes)(result, item, DEFAULT_ITEM_ALLOWED_PROPERTIES);\r\n if ((0, _type.isDefined)(item.options)) {\r\n (0, _uiFile_manager.extendAttributes)(result.options, item.options, DEFAULT_ITEM_ALLOWED_OPTION_PROPERTIES)\r\n }(0, _uiFile_manager.extendAttributes)(result.options, item, [\"text\", \"icon\"]);\r\n if (item.cssClass) {\r\n resultCssClass = \"\".concat(resultCssClass, \" \").concat(item.cssClass)\r\n }\r\n if (resultCssClass) {\r\n result.cssClass = resultCssClass\r\n }\r\n if (!(0, _type.isDefined)(item.visible)) {\r\n result._autoHide = true\r\n }\r\n if (\"dxButton\" === result.widget) {\r\n if (\"inMenu\" === result.showText && !(0, _type.isDefined)(result.options.hint)) {\r\n result.options.hint = result.options.text\r\n }\r\n if (result.compactMode && !(0, _type.isDefined)(result.options.hint)) {\r\n this._configureHintForCompactMode(result)\r\n }\r\n }\r\n } else {\r\n (0, _extend.extend)(true, result, item);\r\n if (!result.widget) {\r\n result.widget = \"dxButton\"\r\n }\r\n if (\"dxButton\" === result.widget && !result.compactMode && !result.showText && result.options && result.options.icon && result.options.text) {\r\n result.compactMode = {\r\n showText: \"inMenu\"\r\n }\r\n }\r\n }\r\n if (commandName && !result.name) {\r\n (0, _extend.extend)(result, {\r\n name: commandName\r\n })\r\n }\r\n result.location = (0, _common.ensureDefined)(result.location, \"before\");\r\n if (!(0, _type.isDefined)(null === (_result$options = result.options) || void 0 === _result$options ? void 0 : _result$options.stylingMode)) {\r\n if (\"dxButton\" === result.widget) {\r\n (0, _extend.extend)(true, result, {\r\n options: {\r\n stylingMode: \"text\"\r\n }\r\n })\r\n }\r\n if (\"dxSelectBox\" === result.widget) {\r\n (0, _extend.extend)(true, result, {\r\n options: {\r\n stylingMode: \"filled\"\r\n }\r\n })\r\n }\r\n }\r\n return result\r\n };\r\n _proto._isDefaultItem = function(commandName) {\r\n return !!DEFAULT_ITEM_CONFIGS[commandName]\r\n };\r\n _proto._createCommandItem = function(command) {\r\n var _this5 = this;\r\n return {\r\n widget: \"dxButton\",\r\n options: {\r\n text: command.text,\r\n hint: command.hint,\r\n commandText: command.text,\r\n icon: command.icon,\r\n stylingMode: \"text\",\r\n onClick: function(e) {\r\n return _this5._executeCommand(command)\r\n }\r\n }\r\n }\r\n };\r\n _proto._createSeparatorItem = function() {\r\n return {\r\n template: function(data, index, element) {\r\n (0, _renderer.default)(element).addClass(FILE_MANAGER_TOOLBAR_SEPARATOR_ITEM_CLASS)\r\n }\r\n }\r\n };\r\n _proto._createViewModeItem = function() {\r\n var _this6 = this;\r\n var commandItems = [\"details\", \"thumbnails\"].map(function(name) {\r\n var _this6$_commandManage = _this6._commandManager.getCommandByName(name),\r\n text = _this6$_commandManage.text,\r\n icon = _this6$_commandManage.icon;\r\n return {\r\n name: name,\r\n text: text,\r\n icon: icon\r\n }\r\n });\r\n var selectedIndex = \"thumbnails\" === this.option(\"itemViewMode\") ? 1 : 0;\r\n return {\r\n cssClass: FILE_MANAGER_TOOLBAR_VIEWMODE_ITEM_CLASS,\r\n widget: \"dxDropDownButton\",\r\n options: {\r\n items: commandItems,\r\n keyExpr: \"name\",\r\n selectedItemKey: this.option(\"itemViewMode\"),\r\n displayExpr: \" \",\r\n hint: commandItems[selectedIndex].text,\r\n stylingMode: \"text\",\r\n showArrowIcon: false,\r\n useSelectMode: true,\r\n dropDownOptions: {\r\n container: this._$viewSwitcherPopup\r\n },\r\n onItemClick: function(e) {\r\n return _this6._executeCommand(e.itemData.name)\r\n }\r\n }\r\n }\r\n };\r\n _proto._configureHintForCompactMode = function(item) {\r\n item.options.hint = \"\";\r\n item.compactMode.options = item.compactMode.options || {};\r\n item.compactMode.options.hint = item.options.text\r\n };\r\n _proto._checkCompactMode = function(toolbar) {\r\n if (toolbar.compactMode) {\r\n this._toggleCompactMode(toolbar, false)\r\n }\r\n var useCompactMode = this._toolbarHasItemsOverflow(toolbar);\r\n if (toolbar.compactMode !== useCompactMode) {\r\n if (!toolbar.compactMode) {\r\n this._toggleCompactMode(toolbar, useCompactMode)\r\n }\r\n toolbar.compactMode = useCompactMode\r\n } else {\r\n if (toolbar.compactMode) {\r\n this._toggleCompactMode(toolbar, true)\r\n }\r\n }\r\n };\r\n _proto._toolbarHasItemsOverflow = function(toolbar) {\r\n var toolbarWidth = toolbar.$element().width();\r\n var itemsWidth = toolbar._getItemsWidth();\r\n return toolbarWidth < itemsWidth\r\n };\r\n _proto._toggleCompactMode = function(toolbar, useCompactMode) {\r\n var _this7 = this;\r\n var hasModifications = false;\r\n var items = toolbar.option(\"items\");\r\n items.forEach(function(item) {\r\n if (item.compactMode) {\r\n var optionsSource = null;\r\n if (useCompactMode) {\r\n item.saved = _this7._getCompactModeOptions(item, item._available);\r\n optionsSource = item.compactMode\r\n } else {\r\n optionsSource = item.saved\r\n }\r\n var options = _this7._getCompactModeOptions(optionsSource, item._available);\r\n (0, _extend.extend)(true, item, options);\r\n hasModifications = true\r\n }\r\n });\r\n hasModifications = this._updateSeparatorsVisibility(items) || hasModifications;\r\n if (hasModifications) {\r\n toolbar.repaint()\r\n }\r\n this._updateSeparatorsVisibility(items, toolbar)\r\n };\r\n _proto._getCompactModeOptions = function(_ref, available) {\r\n var showText = _ref.showText,\r\n locateInMenu = _ref.locateInMenu,\r\n options = _ref.options;\r\n return {\r\n visible: available,\r\n showText: (0, _common.ensureDefined)(showText, \"always\"),\r\n locateInMenu: (0, _common.ensureDefined)(locateInMenu, \"never\"),\r\n options: {\r\n hint: null === options || void 0 === options ? void 0 : options.hint\r\n }\r\n }\r\n };\r\n _proto._ensureAvailableCommandsVisible = function(toolbar, fileItems) {\r\n var _this8 = this;\r\n var hasModifications = false;\r\n var items = toolbar.option(\"items\");\r\n items.forEach(function(item) {\r\n if (\"separator\" !== item.name) {\r\n var itemVisible = item._available;\r\n _this8._setItemVisibleAvailable(item, fileItems);\r\n if (item._available !== itemVisible) {\r\n hasModifications = true\r\n }\r\n }\r\n });\r\n hasModifications = this._updateSeparatorsVisibility(items) || hasModifications;\r\n if (hasModifications) {\r\n toolbar.repaint()\r\n }\r\n this._updateSeparatorsVisibility(items, toolbar)\r\n };\r\n _proto._setItemVisibleAvailable = function(item, fileItems) {\r\n var _item$originalItemDat;\r\n var originalVisible = null === (_item$originalItemDat = item.originalItemData) || void 0 === _item$originalItemDat ? void 0 : _item$originalItemDat.visible;\r\n item._available = this._isToolbarItemAvailable(item, fileItems);\r\n item.visible = (0, _type.isDefined)(originalVisible) ? originalVisible : item._available\r\n };\r\n _proto._fileToolbarHasEffectiveItems = function(fileItems) {\r\n var _this9 = this;\r\n var items = this._fileToolbar.option(\"items\");\r\n return items.some(function(item) {\r\n return _this9._isFileToolbarItemAvailable(item, fileItems)\r\n })\r\n };\r\n _proto._executeCommand = function(command) {\r\n this._commandManager.executeCommand(command)\r\n };\r\n _proto._isToolbarItemAvailable = function(toolbarItem, fileItems) {\r\n if (!this._isDefaultItem(toolbarItem.name) || !toolbarItem._autoHide) {\r\n return (0, _common.ensureDefined)(toolbarItem.visible, true)\r\n }\r\n if (\"refresh\" === toolbarItem.name) {\r\n return this._generalToolbarVisible || !!this._isRefreshVisibleInFileToolbar\r\n }\r\n if (ALWAYS_VISIBLE_TOOLBAR_ITEMS.indexOf(toolbarItem.name) > -1) {\r\n return true\r\n }\r\n return this._commandManager.isCommandAvailable(toolbarItem.name, fileItems)\r\n };\r\n _proto._isFileToolbarItemAvailable = function(_ref2, fileItems) {\r\n var name = _ref2.name,\r\n visible = _ref2.visible;\r\n return !this._isDefaultItem(name) && (0, _common.ensureDefined)(visible, true) || \"clearSelection\" !== name && \"refresh\" !== name && this._commandManager.isCommandAvailable(name, fileItems)\r\n };\r\n _proto._updateItemInToolbar = function(toolbar, commandName, options) {\r\n toolbar.beginUpdate();\r\n var items = toolbar.option(\"items\");\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item.name === commandName) {\r\n toolbar.option(\"items[\".concat(i, \"]\"), options);\r\n break\r\n }\r\n }\r\n toolbar.endUpdate()\r\n };\r\n _proto._raiseItemClicked = function(args) {\r\n var changedArgs = (0, _extend.extend)(true, {}, args);\r\n changedArgs.itemData = args.itemData.originalItemData;\r\n this._itemClickedAction(changedArgs)\r\n };\r\n _proto._createItemClickedAction = function() {\r\n this._itemClickedAction = this._createActionByOption(\"onItemClick\")\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {\r\n commandManager: null,\r\n generalItems: [],\r\n fileItems: [],\r\n itemViewMode: \"details\",\r\n onItemClick: null\r\n })\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"commandManager\":\r\n case \"itemViewMode\":\r\n case \"generalItems\":\r\n case \"fileItems\":\r\n this.repaint();\r\n break;\r\n case \"onItemClick\":\r\n this._itemClickedAction = this._createActionByOption(name);\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto.updateRefreshItem = function(message, status) {\r\n var generalToolbarOptions = null;\r\n var text = _message.default.format(\"dxFileManager-commandRefresh\");\r\n var showText = \"inMenu\";\r\n this._isRefreshVisibleInFileToolbar = false;\r\n if (\"default\" === status) {\r\n generalToolbarOptions = {\r\n options: {\r\n icon: REFRESH_ICON_MAP.default\r\n }\r\n }\r\n } else {\r\n generalToolbarOptions = {\r\n options: {\r\n icon: REFRESH_ICON_MAP[status]\r\n }\r\n };\r\n this._isRefreshVisibleInFileToolbar = true;\r\n text = message;\r\n showText = \"always\"\r\n }\r\n var fileToolbarOptions = (0, _extend.extend)({}, generalToolbarOptions, {\r\n visible: this._isRefreshVisibleInFileToolbar\r\n });\r\n this._applyRefreshItemOptions(generalToolbarOptions, fileToolbarOptions);\r\n this._refreshItemTextTimeout = this._updateRefreshItemText(\"progress\" === status, text, showText)\r\n };\r\n _proto._updateRefreshItemText = function(isDeferredUpdate, text, showText) {\r\n var _this10 = this;\r\n var options = {\r\n showText: showText,\r\n options: {\r\n text: text\r\n }\r\n };\r\n if (isDeferredUpdate) {\r\n return setTimeout(function() {\r\n _this10._applyRefreshItemOptions(options);\r\n _this10._refreshItemTextTimeout = void 0\r\n }, REFRESH_ITEM_PROGRESS_MESSAGE_DELAY)\r\n } else {\r\n if (this._refreshItemTextTimeout) {\r\n clearTimeout(this._refreshItemTextTimeout)\r\n }\r\n this._applyRefreshItemOptions(options);\r\n return\r\n }\r\n };\r\n _proto._applyRefreshItemOptions = function(generalToolbarOptions, fileToolbarOptions) {\r\n if (!fileToolbarOptions) {\r\n fileToolbarOptions = (0, _extend.extend)({}, generalToolbarOptions)\r\n }\r\n this._updateItemInToolbar(this._generalToolbar, \"refresh\", generalToolbarOptions);\r\n this._updateItemInToolbar(this._fileToolbar, \"refresh\", fileToolbarOptions)\r\n };\r\n _proto.update = function(fileItems) {\r\n fileItems = (0, _common.ensureDefined)(fileItems, []);\r\n var showGeneralToolbar = 0 === fileItems.length || !this._fileToolbarHasEffectiveItems(fileItems);\r\n if (this._generalToolbarVisible !== showGeneralToolbar) {\r\n this._generalToolbar.option(\"visible\", showGeneralToolbar);\r\n this._fileToolbar.option(\"visible\", !showGeneralToolbar);\r\n this._generalToolbarVisible = showGeneralToolbar;\r\n this.$element().toggleClass(FILE_MANAGER_GENERAL_TOOLBAR_CLASS, showGeneralToolbar);\r\n this.$element().toggleClass(FILE_MANAGER_FILE_TOOLBAR_CLASS, !showGeneralToolbar)\r\n }\r\n var toolbar = this._getVisibleToolbar();\r\n this._ensureAvailableCommandsVisible(toolbar, fileItems);\r\n this._checkCompactMode(toolbar)\r\n };\r\n return FileManagerToolbar\r\n}(_ui.default);\r\nvar _default = FileManagerToolbar;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/*!\n\nJSZip v3.7.1 - A JavaScript class for generating and reading zip files\n\n\n(c) 2009-2016 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/master/LICENSE\n*/\n\n!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=t()}}(function(){return function s(a,o,h){function u(r,t){if(!o[r]){if(!a[r]){var e=\"function\"==typeof require&&require;if(!t&&e)return e(r,!0);if(l)return l(r,!0);var i=new Error(\"Cannot find module '\"+r+\"'\");throw i.code=\"MODULE_NOT_FOUND\",i}var n=o[r]={exports:{}};a[r][0].call(n.exports,function(t){var e=a[r][1][t];return u(e||t)},n,n.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,t=0;t>2,s=(3&e)<<4|r>>4,a=1>6:64,o=2>4,r=(15&n)<<4|(s=p.indexOf(t.charAt(o++)))>>2,i=(3&s)<<6|(a=p.indexOf(t.charAt(o++))),l[h++]=e,64!==s&&(l[h++]=r),64!==a&&(l[h++]=i);return l}},{\"./support\":30,\"./utils\":32}],2:[function(t,e,r){\"use strict\";var i=t(\"./external\"),n=t(\"./stream/DataWorker\"),s=t(\"./stream/Crc32Probe\"),a=t(\"./stream/DataLengthProbe\");function o(t,e,r,i,n){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=i,this.compressedContent=n}o.prototype={getContentWorker:function(){var t=new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),e=this;return t.on(\"end\",function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),t},getCompressedWorker:function(){return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(t,e,r){return t.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(e.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",e)},e.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(t,e,r){\"use strict\";var i=t(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(t){return new i(\"STORE compression\")},uncompressWorker:function(){return new i(\"STORE decompression\")}},r.DEFLATE=t(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(t,e,r){\"use strict\";var i=t(\"./utils\");var o=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?\"string\"!==i.getTypeOf(t)?function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e[a])];return-1^t}(0|e,t,t.length,0):function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e.charCodeAt(a))];return-1^t}(0|e,t,t.length,0):0}},{\"./utils\":32}],5:[function(t,e,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,e,r){\"use strict\";var i=null;i=\"undefined\"!=typeof Promise?Promise:t(\"lie\"),e.exports={Promise:i}},{lie:37}],7:[function(t,e,r){\"use strict\";var i=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,n=t(\"pako\"),s=t(\"./utils\"),a=t(\"./stream/GenericWorker\"),o=i?\"uint8array\":\"array\";function h(t,e){a.call(this,\"FlateWorker/\"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,t.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new n[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(t){return new h(\"Deflate\",t)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(t,e,r){\"use strict\";function A(t,e){var r,i=\"\";for(r=0;r>>=8;return i}function i(t,e,r,i,n,s){var a,o,h=t.file,u=t.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),d=I.transformTo(\"string\",O.utf8encode(h.name)),c=h.comment,p=I.transformTo(\"string\",s(c)),m=I.transformTo(\"string\",O.utf8encode(c)),_=d.length!==h.name.length,g=m.length!==c.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===n?(C=798,z|=function(t,e){var r=t;return t||(r=e?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(t){return 63&(t||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+d,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(i,4)+f+b+p}}var I=t(\"../utils\"),n=t(\"../stream/GenericWorker\"),O=t(\"../utf8\"),B=t(\"../crc32\"),R=t(\"../signature\");function s(t,e,r,i){n.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=i,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,n),s.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,i=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,n.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-i-1))/r:100}}))},s.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=i(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=i(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:function(t){return R.DATA_DESCRIPTOR+A(t.crc32,4)+A(t.compressedSize,4)+A(t.uncompressedSize,4)}(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return i.transformTo(\"string\",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readAndCheckSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=n},{\"../utils\":32}],19:[function(t,e,r){\"use strict\";var i=t(\"./Uint8ArrayReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(t,e,r){\"use strict\";var i=t(\"./DataReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},n.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},n.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./DataReader\":18}],21:[function(t,e,r){\"use strict\";var i=t(\"./ArrayReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"../support\"),s=t(\"./ArrayReader\"),a=t(\"./StringReader\"),o=t(\"./NodeBufferReader\"),h=t(\"./Uint8ArrayReader\");e.exports=function(t){var e=i.getTypeOf(t);return i.checkSupport(e),\"string\"!==e||n.uint8array?\"nodebuffer\"===e?new o(t):n.uint8array?new h(i.transformTo(\"uint8array\",t)):new s(i.transformTo(\"array\",t)):new a(t)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(t,e,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(t,e,r){\"use strict\";var i=t(\"./GenericWorker\"),n=t(\"../utils\");function s(t){i.call(this,\"ConvertWorker to \"+t),this.destType=t}n.inherits(s,i),s.prototype.processChunk=function(t){this.push({data:n.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(t,e,r){\"use strict\";var i=t(\"./GenericWorker\"),n=t(\"../crc32\");function s(){i.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}t(\"../utils\").inherits(s,i),s.prototype.processChunk=function(t){this.streamInfo.crc32=n(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"./GenericWorker\");function s(t){n.call(this,\"DataLengthProbe for \"+t),this.propName=t,this.withStreamInfo(t,0)}i.inherits(s,n),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}n.prototype.processChunk.call(this,t)},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"./GenericWorker\");function s(t){n.call(this,\"DataWorker\");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,t.then(function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=i.getTypeOf(t),e.isPaused||e._tickAndRepeat()},function(t){e.error(t)})}i.inherits(s,n),s.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":t=this.data.substring(this.index,e);break;case\"uint8array\":t=this.data.subarray(this.index,e);break;case\"array\":case\"nodebuffer\":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(t,e,r){\"use strict\";function i(t){this.name=t||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(t){this.emit(\"data\",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit(\"error\",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit(\"error\",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var r=0;r \"+t:t}},e.exports=i},{}],29:[function(t,e,r){\"use strict\";var h=t(\"../utils\"),n=t(\"./ConvertWorker\"),s=t(\"./GenericWorker\"),u=t(\"../base64\"),i=t(\"../support\"),a=t(\"../external\"),o=null;if(i.nodestream)try{o=t(\"../nodejs/NodejsStreamOutputAdapter\")}catch(t){}function l(t,o){return new a.Promise(function(e,r){var i=[],n=t._internalType,s=t._outputType,a=t._mimeType;t.on(\"data\",function(t,e){i.push(t),o&&o(e)}).on(\"error\",function(t){i=[],r(t)}).on(\"end\",function(){try{var t=function(t,e,r){switch(t){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",e),r);case\"base64\":return u.encode(e);default:return h.transformTo(t,e)}}(s,function(t,e){var r,i=0,n=null,s=0;for(r=0;r>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e}(t)},s.utf8decode=function(t){return h.nodebuffer?o.transformTo(\"nodebuffer\",t).toString(\"utf-8\"):function(t){var e,r,i,n,s=t.length,a=new Array(2*s);for(e=r=0;e>10&1023,a[r++]=56320|1023&i)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(t=o.transformTo(h.uint8array?\"uint8array\":\"array\",t))},o.inherits(a,i),a.prototype.processChunk=function(t){var e=o.transformTo(h.uint8array?\"uint8array\":\"array\",t.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=e;(e=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),e.set(r,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var i=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}(e),n=e;i!==e.length&&(h.uint8array?(n=e.subarray(0,i),this.leftOver=e.subarray(i,e.length)):(n=e.slice(0,i),this.leftOver=e.slice(i,e.length))),this.push({data:s.utf8decode(n),meta:t.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,i),l.prototype.processChunk=function(t){this.push({data:s.utf8encode(t.data),meta:t.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(t,e,a){\"use strict\";var o=t(\"./support\"),h=t(\"./base64\"),r=t(\"./nodejsUtils\"),i=t(\"set-immediate-shim\"),u=t(\"./external\");function n(t){return t}function l(t,e){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=i(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,r,i,n=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e},r.buf2binstring=function(t){return l(t,t.length)},r.binstring2buf=function(t){for(var e=new h.Buf8(t.length),r=0,i=e.length;r>10&1023,o[i++]=56320|1023&n)}return l(o,i)},r.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}},{\"./common\":41}],43:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,i){for(var n=65535&t|0,s=t>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e[a])];return-1^t}},{}],46:[function(t,e,r){\"use strict\";var h,d=t(\"../utils/common\"),u=t(\"./trees\"),c=t(\"./adler32\"),p=t(\"./crc32\"),i=t(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,n=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(t,e){return t.msg=i[e],e}function T(t){return(t<<1)-(4t.avail_out&&(r=t.avail_out),0!==r&&(d.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function N(t,e){u._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,F(t.strm)}function U(t,e){t.pending_buf[t.pending++]=e}function P(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function L(t,e){var r,i,n=t.max_chain_length,s=t.strstart,a=t.prev_length,o=t.nice_match,h=t.strstart>t.w_size-z?t.strstart-(t.w_size-z):0,u=t.window,l=t.w_mask,f=t.prev,d=t.strstart+S,c=u[s+a-1],p=u[s+a];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(u[(r=e)+a]===p&&u[r+a-1]===c&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--n);return a<=t.lookahead?a:t.lookahead}function j(t){var e,r,i,n,s,a,o,h,u,l,f=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-z)){for(d.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=r=t.hash_size;i=t.head[--e],t.head[e]=f<=i?i-f:0,--r;);for(e=r=f;i=t.prev[--e],t.prev[e]=f<=i?i-f:0,--r;);n+=f}if(0===t.strm.avail_in)break;if(a=t.strm,o=t.window,h=t.strstart+t.lookahead,u=n,l=void 0,l=a.avail_in,u=x)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x)if(i=u._tr_tally(t,t.strstart-t.match_start,t.match_length-x),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=x){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x&&t.match_length<=t.prev_length){for(n=t.strstart+t.lookahead-x,i=u._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-x),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=n&&(t.ins_h=(t.ins_h<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(j(t),0===t.lookahead&&e===l)return A;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+r;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,N(t,!1),0===t.strm.avail_out))return A;if(t.strstart-t.block_start>=t.w_size-z&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):(t.strstart>t.block_start&&(N(t,!1),t.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(t,e){return Y(t,e,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?_:(t.state.gzhead=e,m):_},r.deflate=function(t,e){var r,i,n,s;if(!t||!t.state||5>8&255),U(i,i.gzhead.time>>16&255),U(i,i.gzhead.time>>24&255),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(U(i,255&i.gzhead.extra.length),U(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=p(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(U(i,0),U(i,0),U(i,0),U(i,0),U(i,0),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,3),i.status=E);else{var a=v+(i.w_bits-8<<4)<<8;a|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(a|=32),a+=31-a%31,i.status=E,P(i,a),0!==i.strstart&&(P(i,t.adler>>>16),P(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending!==i.pending_buf_size));)U(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&F(t),i.pending+2<=i.pending_buf_size&&(U(i,255&t.adler),U(i,t.adler>>8&255),t.adler=0,i.status=E)):i.status=E),0!==i.pending){if(F(t),0===t.avail_out)return i.last_flush=-1,m}else if(0===t.avail_in&&T(e)<=T(r)&&e!==f)return R(t,-5);if(666===i.status&&0!==t.avail_in)return R(t,-5);if(0!==t.avail_in||0!==i.lookahead||e!==l&&666!==i.status){var o=2===i.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(j(t),0===t.lookahead)){if(e===l)return A;break}if(t.match_length=0,r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):3===i.strategy?function(t,e){for(var r,i,n,s,a=t.window;;){if(t.lookahead<=S){if(j(t),t.lookahead<=S&&e===l)return A;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=x&&0t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=x?(r=u._tr_tally(t,1,t.match_length-x),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):h[i.level].func(i,e);if(o!==O&&o!==B||(i.status=666),o===A||o===O)return 0===t.avail_out&&(i.last_flush=-1),m;if(o===I&&(1===e?u._tr_align(i):5!==e&&(u._tr_stored_block(i,0,0,!1),3===e&&(D(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),F(t),0===t.avail_out))return i.last_flush=-1,m}return e!==f?m:i.wrap<=0?1:(2===i.wrap?(U(i,255&t.adler),U(i,t.adler>>8&255),U(i,t.adler>>16&255),U(i,t.adler>>24&255),U(i,255&t.total_in),U(i,t.total_in>>8&255),U(i,t.total_in>>16&255),U(i,t.total_in>>24&255)):(P(i,t.adler>>>16),P(i,65535&t.adler)),F(t),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new d.Buf8(r.w_size),d.arraySet(u,e,l-r.w_size,r.w_size,0),e=u,l=r.w_size),a=t.avail_in,o=t.next_in,h=t.input,t.avail_in=l,t.next_in=0,t.input=e,j(r);r.lookahead>=x;){for(i=r.strstart,n=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(c&(1<>>=y,p-=y),p<15&&(c+=z[i++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(c&(1<>>=y,p-=y,(y=s-a)>3,c&=(1<<(p-=w<<3))-1,t.next_in=i,t.next_out=s,t.avail_in=i>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg=\"\",e.wrap&&(t.adler=1&e.wrap),e.mode=P,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new I.Buf32(i),e.distcode=e.distdyn=new I.Buf32(n),e.sane=1,e.back=-1,N):U}function o(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,a(t)):U}function h(t,e){var r,i;return t&&t.state?(i=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15=s.wsize?(I.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i<(n=s.wsize-s.wnext)&&(n=i),I.arraySet(s.window,e,r-i,n,s.wnext),(i-=n)?(I.arraySet(s.window,e,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){t.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){t.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break t;o--,u+=i[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break t;o--,u+=i[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(c=r.length)&&(c=o),c&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,i,s,c,k)),512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,r.length-=c),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&c>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break t;o--,u+=i[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==e)break;u>>>=2,l-=2;break t;case 2:r.mode=17;break;case 3:t.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break t;o--,u+=i[s++]<>>16^65535)){t.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(c=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){t.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],c=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+c>r.nlen+r.ndist){t.msg=\"invalid bit length repeat\",r.mode=30;break}for(;c--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){t.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(6<=o&&258<=h){t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,R(t,d),a=t.next_out,n=t.output,h=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){t.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){t.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break t;if(c=d-h,r.offset>c){if((c=r.offset-c)>r.whave&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break}p=c>r.wnext?(c-=r.wnext,r.wsize-c):r.wnext-c,c>r.length&&(c=r.length),m=r.window}else m=n,p=a-r.offset,c=r.length;for(hc?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=e[r+a[v]]}if(k>>7)]}function U(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function P(t,e,r){t.bi_valid>c-r?(t.bi_buf|=e<>c-t.bi_valid,t.bi_valid+=r-c):(t.bi_buf|=e<>>=1,r<<=1,0<--e;);return r>>>1}function Z(t,e,r){var i,n,s=new Array(g+1),a=0;for(i=1;i<=g;i++)s[i]=a=a+r[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=j(s[o]++,o))}}function W(t){var e;for(e=0;e>1;1<=r;r--)G(t,s,r);for(n=h;r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],G(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=i,s[2*n]=s[2*r]+s[2*i],t.depth[n]=(t.depth[r]>=t.depth[i]?t.depth[r]:t.depth[i])+1,s[2*r+1]=s[2*i+1]=n,t.heap[1]=n++,G(t,s,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,i,n,s,a,o,h=e.dyn_tree,u=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(s=0;s<=g;s++)t.bl_count[s]=0;for(h[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<_;r++)p<(s=h[2*h[2*(i=t.heap[r])+1]+1]+1)&&(s=p,m++),h[2*i+1]=s,u>=7;i>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return o;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return h;for(e=32;e>>3,(s=t.static_len+3+7>>>3)<=n&&(n=s)):n=s=r+5,r+4<=n&&-1!==e?J(t,e,r,i):4===t.strategy||s===n?(P(t,2+(i?1:0),3),K(t,z,C)):(P(t,4+(i?1:0),3),function(t,e,r,i){var n;for(P(t,e-257,5),P(t,r-1,5),P(t,i-4,4),n=0;n>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(A[r]+u+1)]++,t.dyn_dtree[2*N(e)]++),t.last_lit===t.lit_bufsize-1},r._tr_align=function(t){P(t,2,3),L(t,m,z),function(t){16===t.bi_valid?(U(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{\"../utils/common\":41}],53:[function(t,e,r){\"use strict\";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,r){\"use strict\";e.exports=\"function\"==typeof setImmediate?setImmediate:function(){var t=[].slice.apply(arguments);t.splice(1,0,0),setTimeout.apply(null,t)}},{}]},{},[10])(10)});","/**\r\n * DevExtreme (exporter/file_saver.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.fileSaver = exports.MIME_TYPES = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../core/dom_adapter\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _ui = _interopRequireDefault(require(\"../ui/widget/ui.errors\"));\r\nvar _type = require(\"../core/utils/type\");\r\nvar _console = require(\"../core/utils/console\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar window = (0, _window.getWindow)();\r\nvar navigator = (0, _window.getNavigator)();\r\nvar FILE_EXTESIONS = {\r\n EXCEL: \"xlsx\",\r\n CSS: \"css\",\r\n PNG: \"png\",\r\n JPEG: \"jpeg\",\r\n GIF: \"gif\",\r\n SVG: \"svg\",\r\n PDF: \"pdf\"\r\n};\r\nvar MIME_TYPES = {\r\n CSS: \"text/css\",\r\n EXCEL: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n PNG: \"image/png\",\r\n JPEG: \"image/jpeg\",\r\n GIF: \"image/gif\",\r\n SVG: \"image/svg+xml\",\r\n PDF: \"application/pdf\"\r\n};\r\nexports.MIME_TYPES = MIME_TYPES;\r\nvar fileSaver = {\r\n _revokeObjectURLTimeout: 3e4,\r\n _getDataUri: function(format, data) {\r\n var mimeType = this._getMimeType(format);\r\n return \"data:\".concat(mimeType, \";base64,\").concat(data)\r\n },\r\n _getMimeType: function(format) {\r\n return MIME_TYPES[format] || \"application/octet-stream\"\r\n },\r\n _linkDownloader: function(fileName, href) {\r\n var exportLinkElement = _dom_adapter.default.createElement(\"a\");\r\n exportLinkElement.download = fileName;\r\n exportLinkElement.href = href;\r\n exportLinkElement.target = \"_blank\";\r\n return exportLinkElement\r\n },\r\n _formDownloader: function(proxyUrl, fileName, contentType, data) {\r\n var formAttributes = {\r\n method: \"post\",\r\n action: proxyUrl,\r\n enctype: \"multipart/form-data\"\r\n };\r\n var exportForm = (0, _renderer.default)(\"\").css({\r\n display: \"none\"\r\n }).attr(formAttributes);\r\n\r\n function setAttributes(element, attributes) {\r\n for (var key in attributes) {\r\n element.setAttribute(key, attributes[key])\r\n }\r\n return element\r\n }\r\n exportForm.append(setAttributes(_dom_adapter.default.createElement(\"input\"), {\r\n type: \"hidden\",\r\n name: \"fileName\",\r\n value: fileName\r\n }));\r\n exportForm.append(setAttributes(_dom_adapter.default.createElement(\"input\"), {\r\n type: \"hidden\",\r\n name: \"contentType\",\r\n value: contentType\r\n }));\r\n exportForm.append(setAttributes(_dom_adapter.default.createElement(\"input\"), {\r\n type: \"hidden\",\r\n name: \"data\",\r\n value: data\r\n }));\r\n exportForm.appendTo(\"body\");\r\n _events_engine.default.trigger(exportForm, \"submit\");\r\n if (_events_engine.default.trigger(exportForm, \"submit\")) {\r\n exportForm.remove()\r\n }\r\n },\r\n _saveByProxy: function(proxyUrl, fileName, format, data) {\r\n var contentType = this._getMimeType(format);\r\n return this._formDownloader(proxyUrl, fileName, contentType, data)\r\n },\r\n _winJSBlobSave: function(blob, fileName, format) {\r\n var savePicker = new Windows.Storage.Pickers.FileSavePicker;\r\n savePicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.documentsLibrary;\r\n var fileExtension = FILE_EXTESIONS[format];\r\n if (fileExtension) {\r\n var mimeType = this._getMimeType(format);\r\n savePicker.fileTypeChoices.insert(mimeType, [\".\" + fileExtension])\r\n }\r\n savePicker.suggestedFileName = fileName;\r\n savePicker.pickSaveFileAsync().then(function(file) {\r\n if (file) {\r\n file.openAsync(Windows.Storage.FileAccessMode.readWrite).then(function(outputStream) {\r\n var inputStream = blob.msDetachStream();\r\n Windows.Storage.Streams.RandomAccessStream.copyAsync(inputStream, outputStream).then(function() {\r\n outputStream.flushAsync().done(function() {\r\n inputStream.close();\r\n outputStream.close()\r\n })\r\n })\r\n })\r\n }\r\n })\r\n },\r\n _click: function(link) {\r\n try {\r\n link.dispatchEvent(new MouseEvent(\"click\", {\r\n cancelable: true\r\n }))\r\n } catch (e) {\r\n var event = _dom_adapter.default.getDocument().createEvent(\"MouseEvents\");\r\n event.initMouseEvent(\"click\", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\r\n link.dispatchEvent(event)\r\n }\r\n },\r\n _saveBlobAs: function(fileName, format, data) {\r\n var _this = this;\r\n this._blobSaved = false;\r\n if ((0, _type.isDefined)(navigator.msSaveOrOpenBlob)) {\r\n navigator.msSaveOrOpenBlob(data, fileName);\r\n this._blobSaved = true\r\n } else {\r\n if ((0, _type.isDefined)(window.WinJS)) {\r\n this._winJSBlobSave(data, fileName, format);\r\n this._blobSaved = true\r\n } else {\r\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL || window.oURL;\r\n if ((0, _type.isDefined)(URL)) {\r\n var objectURL = URL.createObjectURL(data);\r\n var downloadLink = this._linkDownloader(fileName, objectURL);\r\n setTimeout(function() {\r\n URL.revokeObjectURL(objectURL);\r\n _this._objectUrlRevoked = true\r\n }, this._revokeObjectURLTimeout);\r\n this._click(downloadLink)\r\n } else {\r\n _console.logger.warn(\"window.URL || window.webkitURL || window.mozURL || window.msURL || window.oURL is not defined\")\r\n }\r\n }\r\n }\r\n },\r\n saveAs: function(fileName, format, data, proxyURL, forceProxy) {\r\n var fileExtension = FILE_EXTESIONS[format];\r\n if (fileExtension) {\r\n fileName += \".\" + fileExtension\r\n }\r\n if ((0, _type.isDefined)(proxyURL)) {\r\n _ui.default.log(\"W0001\", \"Export\", \"proxyURL\", \"19.2\", \"This option is no longer required\")\r\n }\r\n if (forceProxy) {\r\n this._saveByProxy(proxyURL, fileName, format, data)\r\n } else {\r\n if ((0, _type.isFunction)(window.Blob)) {\r\n this._saveBlobAs(fileName, format, data)\r\n } else {\r\n if ((0, _type.isDefined)(proxyURL) && !(0, _type.isDefined)(navigator.userAgent.match(/iPad/i))) {\r\n this._saveByProxy(proxyURL, fileName, format, data)\r\n } else {\r\n if (!(0, _type.isDefined)(navigator.userAgent.match(/iPad/i))) {\r\n _ui.default.log(\"E1034\")\r\n }\r\n var downloadLink = this._linkDownloader(fileName, this._getDataUri(format, data));\r\n this._click(downloadLink)\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.fileSaver = fileSaver;\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.header_filter.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.header_filter\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n_uiData_grid.default.registerModule(\"headerFilter\", _uiGrid_core.default);\r\n","/**\r\n * DevExtreme (ui/data_grid/ui.data_grid.grouping.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.GroupingHeaderPanelExtender = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiData_grid = _interopRequireDefault(require(\"./ui.data_grid.core\"));\r\nvar _uiData_gridGrouping = require(\"./ui.data_grid.grouping.expanded\");\r\nvar _uiData_gridGrouping2 = require(\"./ui.data_grid.grouping.collapsed\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _uiData_grid2 = _interopRequireDefault(require(\"./ui.data_grid.data_source_adapter\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _uiGrid_core = require(\"../grid_core/ui.grid_core.accessibility\");\r\nvar _accessibility = require(\"../shared/accessibility\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DATAGRID_GROUP_PANEL_CLASS = \"dx-datagrid-group-panel\";\r\nvar DATAGRID_GROUP_PANEL_MESSAGE_CLASS = \"dx-group-panel-message\";\r\nvar DATAGRID_GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nvar DATAGRID_GROUP_PANEL_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar DATAGRID_EXPAND_CLASS = \"dx-datagrid-expand\";\r\nvar DATAGRID_GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar GroupingDataSourceAdapterExtender = function() {\r\n return {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._initGroupingHelper()\r\n },\r\n _initGroupingHelper: function(options) {\r\n var grouping = this._grouping;\r\n var isAutoExpandAll = this.option(\"grouping.autoExpandAll\");\r\n var isFocusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var remoteOperations = options ? options.remoteOperations : this.remoteOperations();\r\n var isODataRemoteOperations = remoteOperations.filtering && remoteOperations.sorting && remoteOperations.paging;\r\n if (isODataRemoteOperations && !remoteOperations.grouping && (isAutoExpandAll || !isFocusedRowEnabled)) {\r\n if (!grouping || grouping instanceof _uiData_gridGrouping2.GroupingHelper) {\r\n this._grouping = new _uiData_gridGrouping.GroupingHelper(this)\r\n }\r\n } else {\r\n if (!grouping || grouping instanceof _uiData_gridGrouping.GroupingHelper) {\r\n this._grouping = new _uiData_gridGrouping2.GroupingHelper(this)\r\n }\r\n }\r\n },\r\n totalItemsCount: function() {\r\n var that = this;\r\n var totalCount = that.callBase();\r\n return totalCount > 0 && that._dataSource.group() && that._dataSource.requireTotalCount() ? totalCount + that._grouping.totalCountCorrection() : totalCount\r\n },\r\n itemsCount: function() {\r\n return this._dataSource.group() ? this._grouping.itemsCount() || 0 : this.callBase.apply(this, arguments)\r\n },\r\n allowCollapseAll: function() {\r\n return this._grouping.allowCollapseAll()\r\n },\r\n isGroupItemCountable: function(item) {\r\n return this._grouping.isGroupItemCountable(item)\r\n },\r\n isRowExpanded: function(key) {\r\n var groupInfo = this._grouping.findGroupInfo(key);\r\n return groupInfo ? groupInfo.isExpanded : !this._grouping.allowCollapseAll()\r\n },\r\n collapseAll: function(groupIndex) {\r\n return this._collapseExpandAll(groupIndex, false)\r\n },\r\n expandAll: function(groupIndex) {\r\n return this._collapseExpandAll(groupIndex, true)\r\n },\r\n _collapseExpandAll: function(groupIndex, isExpand) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var group = dataSource.group();\r\n var groups = _uiData_grid.default.normalizeSortingInfo(group || []);\r\n if (groups.length) {\r\n for (var i = 0; i < groups.length; i++) {\r\n if (void 0 === groupIndex || groupIndex === i) {\r\n groups[i].isExpanded = isExpand\r\n } else {\r\n if (group && group[i]) {\r\n groups[i].isExpanded = group[i].isExpanded\r\n }\r\n }\r\n }\r\n dataSource.group(groups);\r\n that._grouping.foreachGroups(function(groupInfo, parents) {\r\n if (void 0 === groupIndex || groupIndex === parents.length - 1) {\r\n groupInfo.isExpanded = isExpand\r\n }\r\n }, false, true);\r\n that.resetPagesCache()\r\n }\r\n return true\r\n },\r\n refresh: function() {\r\n this.callBase.apply(this, arguments);\r\n return this._grouping.refresh.apply(this._grouping, arguments)\r\n },\r\n changeRowExpand: function(path) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n if (dataSource.group()) {\r\n dataSource.beginLoading();\r\n if (that._lastLoadOptions) {\r\n that._lastLoadOptions.groupExpand = true\r\n }\r\n return that._changeRowExpandCore(path).always(function() {\r\n dataSource.endLoading()\r\n })\r\n }\r\n },\r\n _changeRowExpandCore: function(path) {\r\n return this._grouping.changeRowExpand(path)\r\n },\r\n _hasGroupLevelsExpandState: function(group, isExpanded) {\r\n if (group && Array.isArray(group)) {\r\n for (var i = 0; i < group.length; i++) {\r\n if (group[i].isExpanded === isExpanded) {\r\n return true\r\n }\r\n }\r\n }\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n var remoteOperations = options.remoteOperations;\r\n if (options.storeLoadOptions.group) {\r\n if (remoteOperations.grouping && !options.isCustomLoading) {\r\n if (!remoteOperations.groupPaging || this._hasGroupLevelsExpandState(options.storeLoadOptions.group, true)) {\r\n remoteOperations.paging = false\r\n }\r\n }\r\n if (!remoteOperations.grouping && (!remoteOperations.sorting || !remoteOperations.filtering || options.isCustomLoading || this._hasGroupLevelsExpandState(options.storeLoadOptions.group, false))) {\r\n remoteOperations.paging = false\r\n }\r\n } else {\r\n if (!options.isCustomLoading && remoteOperations.paging && operationTypes.grouping) {\r\n this.resetCache()\r\n }\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _handleDataLoading: function(options) {\r\n this.callBase(options);\r\n this._initGroupingHelper(options);\r\n return this._grouping.handleDataLoading(options)\r\n },\r\n _handleDataLoaded: function(options) {\r\n return this._grouping.handleDataLoaded(options, this.callBase.bind(this))\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n return this._grouping.handleDataLoadedCore(options, this.callBase.bind(this))\r\n }\r\n }\r\n}();\r\n_uiData_grid2.default.extend(GroupingDataSourceAdapterExtender);\r\nvar GroupingDataControllerExtender = function() {\r\n return {\r\n init: function() {\r\n var that = this;\r\n that.callBase();\r\n that.createAction(\"onRowExpanding\");\r\n that.createAction(\"onRowExpanded\");\r\n that.createAction(\"onRowCollapsing\");\r\n that.createAction(\"onRowCollapsed\")\r\n },\r\n _beforeProcessItems: function(items) {\r\n var groupColumns = this._columnsController.getGroupColumns();\r\n items = this.callBase(items);\r\n if (items.length && groupColumns.length) {\r\n items = this._processGroupItems(items, groupColumns.length)\r\n }\r\n return items\r\n },\r\n _processItem: function(item, options) {\r\n if ((0, _type.isDefined)(item.groupIndex) && (0, _type.isString)(item.rowType) && 0 === item.rowType.indexOf(\"group\")) {\r\n item = this._processGroupItem(item, options);\r\n options.dataIndex = 0\r\n } else {\r\n item = this.callBase.apply(this, arguments)\r\n }\r\n return item\r\n },\r\n _processGroupItem: function(item) {\r\n return item\r\n },\r\n _processGroupItems: function(items, groupsCount, options) {\r\n var that = this;\r\n var groupedColumns = that._columnsController.getGroupColumns();\r\n var column = groupedColumns[groupedColumns.length - groupsCount];\r\n if (!options) {\r\n var scrollingMode = that.option(\"scrolling.mode\");\r\n options = {\r\n collectContinuationItems: \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode,\r\n resultItems: [],\r\n path: [],\r\n values: []\r\n }\r\n }\r\n var resultItems = options.resultItems;\r\n if (options.data) {\r\n if (options.collectContinuationItems || !options.data.isContinuation) {\r\n resultItems.push({\r\n rowType: \"group\",\r\n data: options.data,\r\n groupIndex: options.path.length - 1,\r\n isExpanded: !!options.data.items,\r\n key: options.path.slice(0),\r\n values: options.values.slice(0)\r\n })\r\n }\r\n }\r\n if (items) {\r\n if (0 === groupsCount) {\r\n resultItems.push.apply(resultItems, items)\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item && \"items\" in item) {\r\n options.data = item;\r\n options.path.push(item.key);\r\n options.values.push(column && column.deserializeValue && !column.calculateDisplayValue ? column.deserializeValue(item.key) : item.key);\r\n that._processGroupItems(item.items, groupsCount - 1, options);\r\n options.data = void 0;\r\n options.path.pop();\r\n options.values.pop()\r\n } else {\r\n resultItems.push(item)\r\n }\r\n }\r\n }\r\n }\r\n return resultItems\r\n },\r\n publicMethods: function() {\r\n return this.callBase().concat([\"collapseAll\", \"expandAll\", \"isRowExpanded\", \"expandRow\", \"collapseRow\"])\r\n },\r\n collapseAll: function(groupIndex) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && dataSource.collapseAll(groupIndex)) {\r\n dataSource.pageIndex(0);\r\n dataSource.reload()\r\n }\r\n },\r\n expandAll: function(groupIndex) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && dataSource.expandAll(groupIndex)) {\r\n dataSource.pageIndex(0);\r\n dataSource.reload()\r\n }\r\n },\r\n changeRowExpand: function(key) {\r\n var that = this;\r\n var expanded = that.isRowExpanded(key);\r\n var args = {\r\n key: key,\r\n expanded: expanded\r\n };\r\n that.executeAction(expanded ? \"onRowCollapsing\" : \"onRowExpanding\", args);\r\n if (!args.cancel) {\r\n return (0, _deferred.when)(that._changeRowExpandCore(key)).done(function() {\r\n args.expanded = !expanded;\r\n that.executeAction(expanded ? \"onRowCollapsed\" : \"onRowExpanded\", args)\r\n })\r\n }\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n _changeRowExpandCore: function(key) {\r\n var that = this;\r\n var dataSource = this._dataSource;\r\n var d = new _deferred.Deferred;\r\n if (!dataSource) {\r\n d.resolve()\r\n } else {\r\n (0, _deferred.when)(dataSource.changeRowExpand(key)).done(function() {\r\n that.load().done(d.resolve).fail(d.reject)\r\n }).fail(d.reject)\r\n }\r\n return d\r\n },\r\n isRowExpanded: function(key) {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.isRowExpanded(key)\r\n },\r\n expandRow: function(key) {\r\n if (!this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n collapseRow: function(key) {\r\n if (this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new _deferred.Deferred).resolve()\r\n },\r\n optionChanged: function(args) {\r\n if (\"grouping\" === args.name) {\r\n args.name = \"dataSource\"\r\n }\r\n this.callBase(args)\r\n }\r\n }\r\n}();\r\nvar onGroupingMenuItemClick = function(column, params) {\r\n var columnsController = this._columnsController;\r\n switch (params.itemData.value) {\r\n case \"group\":\r\n var groups = columnsController._dataSource.group() || [];\r\n columnsController.columnOption(column.dataField, \"groupIndex\", groups.length);\r\n break;\r\n case \"ungroup\":\r\n columnsController.columnOption(column.dataField, \"groupIndex\", -1);\r\n break;\r\n case \"ungroupAll\":\r\n this.component.clearGrouping()\r\n }\r\n};\r\nvar GroupingHeaderPanelExtender = function() {\r\n return {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._appendGroupingItem(items)\r\n },\r\n _appendGroupingItem: function(items) {\r\n var _this = this;\r\n if (this._isGroupPanelVisible()) {\r\n var isRendered = false;\r\n var toolbarItem = {\r\n template: function() {\r\n var $groupPanel = (0, _renderer.default)(\"
    \").addClass(DATAGRID_GROUP_PANEL_CLASS);\r\n _this._updateGroupPanelContent($groupPanel);\r\n (0, _uiGrid_core.registerKeyboardAction)(\"groupPanel\", _this, $groupPanel, void 0, _this._handleActionKeyDown.bind(_this));\r\n return $groupPanel\r\n },\r\n name: \"groupPanel\",\r\n onItemRendered: function() {\r\n isRendered && _this.renderCompleted.fire();\r\n isRendered = true\r\n },\r\n location: \"before\",\r\n locateInMenu: \"never\",\r\n sortIndex: 1\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n _handleActionKeyDown: function(args) {\r\n var event = args.event;\r\n var $target = (0, _renderer.default)(event.target);\r\n var groupColumnIndex = $target.closest(\".\".concat(DATAGRID_GROUP_PANEL_ITEM_CLASS)).index();\r\n var column = this._columnsController.getGroupColumns()[groupColumnIndex];\r\n var columnIndex = column && column.index;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n this.getController(\"headerFilter\").showHeaderFilterMenu(columnIndex, true)\r\n } else {\r\n this._processGroupItemAction(columnIndex)\r\n }\r\n event.preventDefault()\r\n },\r\n _isGroupPanelVisible: function() {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n var isVisible;\r\n if (groupPanelOptions) {\r\n isVisible = groupPanelOptions.visible;\r\n if (\"auto\" === isVisible) {\r\n isVisible = \"desktop\" === _devices.default.current().deviceType ? true : false\r\n }\r\n }\r\n return isVisible\r\n },\r\n _renderGroupPanelItems: function($groupPanel, groupColumns) {\r\n var that = this;\r\n $groupPanel.empty();\r\n (0, _iterator.each)(groupColumns, function(index, groupColumn) {\r\n that._createGroupPanelItem($groupPanel, groupColumn)\r\n });\r\n (0, _accessibility.restoreFocus)(this)\r\n },\r\n _createGroupPanelItem: function($rootElement, groupColumn) {\r\n var $groupPanelItem = (0, _renderer.default)(\"
    \").addClass(groupColumn.cssClass).addClass(DATAGRID_GROUP_PANEL_ITEM_CLASS).data(\"columnData\", groupColumn).appendTo($rootElement).text(groupColumn.caption);\r\n (0, _accessibility.setTabIndex)(this, $groupPanelItem);\r\n return $groupPanelItem\r\n },\r\n _columnOptionChanged: function(e) {\r\n if (!this._requireReady && !_uiData_grid.default.checkChanges(e.optionNames, [\"width\", \"visibleWidth\"])) {\r\n var $toolbarElement = this.element();\r\n var $groupPanel = $toolbarElement && $toolbarElement.find(\".\" + DATAGRID_GROUP_PANEL_CLASS);\r\n if ($groupPanel && $groupPanel.length) {\r\n this._updateGroupPanelContent($groupPanel);\r\n this.renderCompleted.fire()\r\n }\r\n }\r\n this.callBase()\r\n },\r\n _updateGroupPanelContent: function($groupPanel) {\r\n var that = this;\r\n var groupColumns = that.getController(\"columns\").getGroupColumns();\r\n var groupPanelOptions = that.option(\"groupPanel\");\r\n that._renderGroupPanelItems($groupPanel, groupColumns);\r\n if (groupPanelOptions.allowColumnDragging && !groupColumns.length) {\r\n (0, _renderer.default)(\"
    \").addClass(DATAGRID_GROUP_PANEL_MESSAGE_CLASS).text(groupPanelOptions.emptyPanelText).appendTo($groupPanel);\r\n $groupPanel.closest(\".\" + DATAGRID_GROUP_PANEL_LABEL_CLASS).css(\"maxWidth\", \"none\");\r\n that.updateToolbarDimensions()\r\n }\r\n },\r\n allowDragging: function(column) {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n return this._isGroupPanelVisible() && groupPanelOptions.allowColumnDragging && column && column.allowGrouping\r\n },\r\n getColumnElements: function() {\r\n var $element = this.element();\r\n return $element && $element.find(\".\" + DATAGRID_GROUP_PANEL_ITEM_CLASS)\r\n },\r\n getColumns: function() {\r\n return this.getController(\"columns\").getGroupColumns()\r\n },\r\n getBoundingRect: function() {\r\n var that = this;\r\n var $element = that.element();\r\n if ($element && $element.find(\".\" + DATAGRID_GROUP_PANEL_CLASS).length) {\r\n var offset = $element.offset();\r\n return {\r\n top: offset.top,\r\n bottom: offset.top + $element.height()\r\n }\r\n }\r\n return null\r\n },\r\n getName: function() {\r\n return \"group\"\r\n },\r\n getContextMenuItems: function(options) {\r\n var that = this;\r\n var contextMenuEnabled = that.option(\"grouping.contextMenuEnabled\");\r\n var $groupedColumnElement = (0, _renderer.default)(options.targetElement).closest(\".\" + DATAGRID_GROUP_PANEL_ITEM_CLASS);\r\n var items;\r\n if ($groupedColumnElement.length) {\r\n options.column = $groupedColumnElement.data(\"columnData\")\r\n }\r\n if (contextMenuEnabled && options.column) {\r\n var column = options.column;\r\n var isGroupingAllowed = (0, _type.isDefined)(column.allowGrouping) ? column.allowGrouping : true;\r\n if (isGroupingAllowed) {\r\n var isColumnGrouped = (0, _type.isDefined)(column.groupIndex) && column.groupIndex > -1;\r\n var groupingTexts = that.option(\"grouping.texts\");\r\n var onItemClick = onGroupingMenuItemClick.bind(that, column);\r\n items = [{\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n disabled: !isColumnGrouped,\r\n onItemClick: onItemClick\r\n }, {\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n return items\r\n },\r\n isVisible: function() {\r\n return this.callBase() || this._isGroupPanelVisible()\r\n },\r\n optionChanged: function(args) {\r\n if (\"groupPanel\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n}();\r\nexports.GroupingHeaderPanelExtender = GroupingHeaderPanelExtender;\r\nvar GroupingRowsViewExtender = function() {\r\n return {\r\n getContextMenuItems: function(options) {\r\n var that = this;\r\n var contextMenuEnabled = that.option(\"grouping.contextMenuEnabled\");\r\n var items;\r\n if (contextMenuEnabled && options.row && \"group\" === options.row.rowType) {\r\n var columnsController = that._columnsController;\r\n var column = columnsController.columnOption(\"groupIndex:\" + options.row.groupIndex);\r\n if (column && column.allowGrouping) {\r\n var groupingTexts = that.option(\"grouping.texts\");\r\n var onItemClick = onGroupingMenuItemClick.bind(that, column);\r\n items = [];\r\n items.push({\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n onItemClick: onItemClick\r\n }, {\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n },\r\n _rowClick: function(e) {\r\n var that = this;\r\n var expandMode = that.option(\"grouping.expandMode\");\r\n var scrollingMode = that.option(\"scrolling.mode\");\r\n var isGroupRowStateChanged = \"infinite\" !== scrollingMode && \"rowClick\" === expandMode && (0, _renderer.default)(e.event.target).closest(\".\" + DATAGRID_GROUP_ROW_CLASS).length;\r\n var isExpandButtonClicked = (0, _renderer.default)(e.event.target).closest(\".\" + DATAGRID_EXPAND_CLASS).length;\r\n if (isGroupRowStateChanged || isExpandButtonClicked) {\r\n that._changeGroupRowState(e)\r\n }\r\n that.callBase(e)\r\n },\r\n _changeGroupRowState: function(e) {\r\n var dataController = this.getController(\"data\");\r\n var row = dataController.items()[e.rowIndex];\r\n var allowCollapsing = this._columnsController.columnOption(\"groupIndex:\" + row.groupIndex, \"allowCollapsing\");\r\n if (\"data\" === row.rowType || \"group\" === row.rowType && false !== allowCollapsing) {\r\n dataController.changeRowExpand(row.key, true);\r\n e.event.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n }\r\n}();\r\nvar columnHeadersViewExtender = function() {\r\n return {\r\n getContextMenuItems: function(options) {\r\n var that = this;\r\n var contextMenuEnabled = that.option(\"grouping.contextMenuEnabled\");\r\n var items = that.callBase(options);\r\n if (contextMenuEnabled && options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var column = options.column;\r\n if (!column.command && (!(0, _type.isDefined)(column.allowGrouping) || column.allowGrouping)) {\r\n var groupingTexts = that.option(\"grouping.texts\");\r\n var isColumnGrouped = (0, _type.isDefined)(column.groupIndex) && column.groupIndex > -1;\r\n var onItemClick = onGroupingMenuItemClick.bind(that, column);\r\n items = items || [];\r\n items.push({\r\n text: groupingTexts.groupByThisColumn,\r\n value: \"group\",\r\n beginGroup: true,\r\n disabled: isColumnGrouped,\r\n onItemClick: onItemClick\r\n });\r\n if (column.showWhenGrouped) {\r\n items.push({\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n disabled: !isColumnGrouped,\r\n onItemClick: onItemClick\r\n })\r\n }\r\n items.push({\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n }\r\n }\r\n}();\r\n_uiData_grid.default.registerModule(\"grouping\", {\r\n defaultOptions: function() {\r\n return {\r\n grouping: {\r\n autoExpandAll: true,\r\n allowCollapsing: true,\r\n contextMenuEnabled: false,\r\n expandMode: \"buttonClick\",\r\n texts: {\r\n groupContinuesMessage: _message.default.format(\"dxDataGrid-groupContinuesMessage\"),\r\n groupContinuedMessage: _message.default.format(\"dxDataGrid-groupContinuedMessage\"),\r\n groupByThisColumn: _message.default.format(\"dxDataGrid-groupHeaderText\"),\r\n ungroup: _message.default.format(\"dxDataGrid-ungroupHeaderText\"),\r\n ungroupAll: _message.default.format(\"dxDataGrid-ungroupAllText\")\r\n }\r\n },\r\n groupPanel: {\r\n visible: false,\r\n emptyPanelText: _message.default.format(\"dxDataGrid-groupPanelEmptyText\"),\r\n allowColumnDragging: true\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n data: GroupingDataControllerExtender,\r\n columns: {\r\n _getExpandColumnOptions: function() {\r\n var options = this.callBase.apply(this, arguments);\r\n options.cellTemplate = _uiData_grid.default.getExpandCellTemplate();\r\n return options\r\n }\r\n }\r\n },\r\n views: {\r\n headerPanel: GroupingHeaderPanelExtender,\r\n rowsView: GroupingRowsViewExtender,\r\n columnHeadersView: columnHeadersViewExtender\r\n }\r\n }\r\n});\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.data_controller.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _array_store = _interopRequireDefault(require(\"../../data/array_store\"));\r\nvar _custom_store = _interopRequireDefault(require(\"../../data/custom_store\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.errors\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _data_helper = _interopRequireDefault(require(\"../../data_helper\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _array_compare = require(\"../../core/utils/array_compare\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\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 },\r\n controllers: {\r\n data: _uiGrid_core.default.Controller.inherit({}).include(_data_helper.default).inherit(function() {\r\n var changePaging = function(that, optionName, value) {\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (void 0 !== value) {\r\n if (dataSource[optionName]() !== 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.\" + optionName, value);\r\n that._skipProcessingPagingChange = false;\r\n return dataSource[\"pageIndex\" === optionName ? \"load\" : \"reload\"]().done(that.pageChanged.fire.bind(that.pageChanged))\r\n }\r\n return (0, _deferred.Deferred)().resolve().promise()\r\n }\r\n return dataSource[optionName]()\r\n }\r\n return 0\r\n };\r\n var members = {\r\n init: function() {\r\n var _this = this;\r\n var that = this;\r\n that._items = [];\r\n that._columnsController = that.getController(\"columns\");\r\n that._currentOperationTypes = null;\r\n that._dataChangedHandler = function(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._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(function(error) {\r\n return that.executeAction(\"onDataErrorOccurred\", {\r\n error: error\r\n })\r\n });\r\n that._refreshDataSource()\r\n },\r\n callbackNames: function() {\r\n return [\"changed\", \"loadingChanged\", \"dataErrorOccurred\", \"pageChanged\", \"dataSourceChanged\"]\r\n },\r\n callbackFlags: function(name) {\r\n if (\"dataErrorOccurred\" === name) {\r\n return {\r\n stopOnFalse: true\r\n }\r\n }\r\n },\r\n publicMethods: function() {\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: function() {\r\n this._columnsController.reset();\r\n this._items = [];\r\n this._refreshDataSource()\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n var dataSource;\r\n\r\n function handled() {\r\n args.handled = true\r\n }\r\n if (\"dataSource\" === args.name && args.name === args.fullName && (args.value === args.previousValue || that.option(\"columns\") && Array.isArray(args.value) && Array.isArray(args.previousValue))) {\r\n if (args.value !== args.previousValue) {\r\n var store = that.store();\r\n if (store) {\r\n store._array = args.value\r\n }\r\n }\r\n handled();\r\n that.refresh(that.option(\"repaintChangesOnly\"));\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 && that._setPagingOptions(dataSource)) {\r\n dataSource.load().done(that.pageChanged.fire.bind(that.pageChanged))\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 that.callBase(args)\r\n }\r\n },\r\n isReady: function() {\r\n return !this._isLoading\r\n },\r\n getDataSource: function() {\r\n return this._dataSource && this._dataSource._dataSource\r\n },\r\n getCombinedFilter: function(returnDataField) {\r\n return this.combinedFilter(void 0, returnDataField)\r\n },\r\n combinedFilter: function(filter, returnDataField) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var columnsController = that._columnsController;\r\n if (dataSource) {\r\n if (void 0 === filter) {\r\n filter = dataSource.filter()\r\n }\r\n var additionalFilter = that._calculateAdditionalFilter();\r\n if (additionalFilter) {\r\n if (columnsController.isDataSourceApplied() || columnsController.isAllDataTypesDefined()) {\r\n filter = _uiGrid_core2.default.combineFilters([additionalFilter, filter])\r\n }\r\n }\r\n filter = columnsController.updateFilter(filter, returnDataField || dataSource.remoteOperations().filtering)\r\n }\r\n return filter\r\n },\r\n waitReady: function() {\r\n if (this._updateLockCount) {\r\n this._readyDeferred = new _deferred.Deferred;\r\n return this._readyDeferred\r\n }\r\n return (0, _deferred.when)()\r\n },\r\n _endUpdateCore: function() {\r\n var changes = this._changes;\r\n if (changes.length) {\r\n this._changes = [];\r\n var repaintChangesOnly = changes.every(function(change) {\r\n return change.repaintChangesOnly\r\n });\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: function(e) {\r\n var columnsController = this._columnsController;\r\n var dataSource = this._dataSource;\r\n var storeLoadOptions = e.storeLoadOptions;\r\n if (e.isCustomLoading && !storeLoadOptions.isLoadingAll) {\r\n return\r\n }\r\n storeLoadOptions.filter = this.combinedFilter(storeLoadOptions.filter);\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: function(e) {\r\n var that = this;\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n var filterValue;\r\n var filterValues;\r\n var filterApplied;\r\n var updateItemsHandler = function updateItemsHandler() {\r\n that._columnsController.columnsChanged.remove(updateItemsHandler);\r\n that.updateItems()\r\n };\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 {\r\n if (changeTypes.columns) {\r\n if (optionNames.filterValues || optionNames.filterValue || optionNames.selectedFilterOperation) {\r\n filterValue = that._columnsController.columnOption(e.columnIndex, \"filterValue\");\r\n filterValues = that._columnsController.columnOption(e.columnIndex, \"filterValues\");\r\n if (Array.isArray(filterValues) || void 0 === e.columnIndex || (0, _type.isDefined)(filterValue) || !optionNames.selectedFilterOperation || optionNames.filterValue) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n if (!that._needApplyFilter && !_uiGrid_core2.default.checkChanges(optionNames, [\"width\", \"visibleWidth\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"filterValues\", \"filterType\"])) {\r\n that._columnsController.columnsChanged.add(updateItemsHandler)\r\n }\r\n if ((0, _type.isDefined)(optionNames.visible)) {\r\n var column = that._columnsController.columnOption(e.columnIndex);\r\n if (column && ((0, _type.isDefined)(column.filterValue) || (0, _type.isDefined)(column.filterValues))) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n }\r\n }\r\n if (!filterApplied && changeTypes.filtering) {\r\n that.reload()\r\n }\r\n },\r\n _handleDataChanged: function(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 (0, _deferred.when)(that._columnsController.applyDataSource(dataSource)).done(function() {\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 hasAdditionalFilter = function() {\r\n var additionalFilter = that._calculateAdditionalFilter();\r\n return additionalFilter && additionalFilter.length\r\n };\r\n var needApplyFilter = that._needApplyFilter;\r\n that._needApplyFilter = false;\r\n if (needApplyFilter && !that._isAllDataTypesDefined && hasAdditionalFilter()) {\r\n _ui.default.log(\"W1005\", that.component.NAME);\r\n that._applyFilter()\r\n } else {\r\n that.updateItems(e, true)\r\n }\r\n }).fail(function() {\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: function(isLoading) {\r\n this._isLoading = isLoading;\r\n this._fireLoadingChanged()\r\n },\r\n _handleLoadError: function(e) {\r\n this.dataErrorOccurred.fire(e)\r\n },\r\n fireError: function() {\r\n this.dataErrorOccurred.fire(_ui.default.Error.apply(_ui.default, arguments))\r\n },\r\n _setPagingOptions: function(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 isChanged = false;\r\n dataSource.requireTotalCount(!appendMode);\r\n if (void 0 !== pagingEnabled && dataSource.paginate() !== paginate) {\r\n dataSource.paginate(paginate);\r\n isChanged = true\r\n }\r\n if (void 0 !== pageSize && dataSource.pageSize() !== pageSize) {\r\n dataSource.pageSize(pageSize);\r\n isChanged = true\r\n }\r\n if (void 0 !== pageIndex && dataSource.pageIndex() !== pageIndex) {\r\n dataSource.pageIndex(pageIndex);\r\n isChanged = true\r\n }\r\n return isChanged\r\n },\r\n _getSpecificDataSourceOption: function() {\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: function() {\r\n var that = this;\r\n var dataSource = this.option(\"dataSource\");\r\n var oldDataSource = this._dataSource;\r\n that.callBase();\r\n dataSource = that._dataSource;\r\n that._useSortingGroupingFromColumns = true;\r\n if (dataSource) {\r\n that._setPagingOptions(dataSource);\r\n that.setDataSource(dataSource)\r\n } else {\r\n if (oldDataSource) {\r\n that.updateItems()\r\n }\r\n }\r\n },\r\n _loadDataSource: function() {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var result = new _deferred.Deferred;\r\n (0, _deferred.when)(this._columnsController.refresh(true)).always(function() {\r\n if (dataSource) {\r\n dataSource.load().done(result.resolve).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n });\r\n return result.promise()\r\n },\r\n _beforeProcessItems: function(items) {\r\n return items.slice(0)\r\n },\r\n getRowIndexDelta: function() {\r\n return 0\r\n },\r\n _processItems: function(items, change) {\r\n var that = this;\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var changeType = change.changeType;\r\n var visibleColumns = that._columnsController.getVisibleColumns(null, \"loadingAll\" === changeType);\r\n var visibleItems = that._items;\r\n var lastVisibleItem = \"append\" === changeType && visibleItems.length > 0 ? visibleItems[visibleItems.length - 1] : null;\r\n var dataIndex = (0, _type.isDefined)(null === lastVisibleItem || void 0 === lastVisibleItem ? void 0 : lastVisibleItem.dataIndex) ? lastVisibleItem.dataIndex + 1 : 0;\r\n var options = {\r\n visibleColumns: visibleColumns,\r\n dataIndex: dataIndex\r\n };\r\n var result = [];\r\n (0, _iterator.each)(items, function(index, item) {\r\n if ((0, _type.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: function(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: function(data) {\r\n return {\r\n rowType: \"data\",\r\n data: data,\r\n key: this.keyOf(data)\r\n }\r\n },\r\n _processDataItem: function(dataItem, options) {\r\n dataItem.values = this.generateDataValues(dataItem.data, options.visibleColumns);\r\n return dataItem\r\n },\r\n generateDataValues: function(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 {\r\n if (column.dataField) {\r\n value = data[column.dataField]\r\n }\r\n }\r\n }\r\n values.push(value)\r\n }\r\n return values\r\n },\r\n _applyChange: function(change) {\r\n var that = this;\r\n if (\"update\" === change.changeType) {\r\n that._applyChangeUpdate(change)\r\n } else {\r\n if (that.items().length && change.repaintChangesOnly && \"refresh\" === change.changeType) {\r\n that._applyChangesOnly(change)\r\n } else {\r\n if (\"refresh\" === change.changeType) {\r\n that._applyChangeFull(change)\r\n }\r\n }\r\n }\r\n },\r\n _applyChangeFull: function(change) {\r\n this._items = change.items.slice(0)\r\n },\r\n _getRowIndices: function(change) {\r\n var rowIndices = change.rowIndices.slice(0);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n rowIndices.sort(function(a, b) {\r\n return a - b\r\n });\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: function(change) {\r\n var that = this;\r\n var items = change.items;\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 && (0, _common.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 (0, _iterator.each)(rowIndices, function(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 {\r\n if (repaintChangesOnly && !change.isFullUpdate) {\r\n columnIndices = that._partialUpdateRow(oldItem, newItem, rowIndex - rowIndexDelta)\r\n }\r\n }\r\n } else {\r\n 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 {\r\n 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 {\r\n if (newItem) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem\r\n } else {\r\n return\r\n }\r\n }\r\n }\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: function(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: function(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n if (oldItem.rowType === newItem.rowType && \"group\" !== newItem.rowType && \"groupFooter\" !== newItem.rowType) {\r\n var 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 return columnIndices\r\n }\r\n },\r\n _partialUpdateRow: function(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var changedColumnIndices = this._getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate);\r\n if (changedColumnIndices) {\r\n oldItem.cells && oldItem.cells.forEach(function(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: function(item1, item2) {\r\n if (JSON.stringify(item1.values) !== JSON.stringify(item2.values)) {\r\n return false\r\n }\r\n var compareFields = [\"modified\", \"isNewRow\", \"removed\", \"isEditing\"];\r\n if (compareFields.some(function(field) {\r\n return item1[field] !== item2[field]\r\n })) {\r\n return false\r\n }\r\n if (\"group\" === item1.rowType || \"groupFooter\" === item1.rowType) {\r\n var _item1$data, _item2$data, _item1$data2, _item2$data2;\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 === (_item1$data = item1.data) || void 0 === _item1$data ? void 0 : _item1$data.isContinuation) === (null === (_item2$data = item2.data) || void 0 === _item2$data ? void 0 : _item2$data.isContinuation) && (null === (_item1$data2 = item1.data) || void 0 === _item1$data2 ? void 0 : _item1$data2.isContinuationOnNextPage) === (null === (_item2$data2 = item2.data) || void 0 === _item2$data2 ? void 0 : _item2$data2.isContinuationOnNextPage);\r\n if (!expandedMatch || !summaryCellsMatch || !continuationMatch) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _applyChangesOnly: function(change) {\r\n var _this2 = this;\r\n var rowIndices = [];\r\n var columnIndices = [];\r\n var changeTypes = [];\r\n var items = [];\r\n var newIndexByKey = {};\r\n\r\n function getRowKey(row) {\r\n if (row) {\r\n return row.rowType + \",\" + JSON.stringify(row.key)\r\n }\r\n }\r\n var isItemEquals = function(item1, item2) {\r\n if (!_this2._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(function(cell) {\r\n if (cell && cell.update) {\r\n cell.update(item2)\r\n }\r\n })\r\n }\r\n return true\r\n };\r\n var oldItems = this._items.slice();\r\n change.items.forEach(function(item, index) {\r\n var key = getRowKey(item);\r\n newIndexByKey[key] = index;\r\n item.rowIndex = index\r\n });\r\n var result = (0, _array_compare.findChanges)(oldItems, change.items, getRowKey, isItemEquals);\r\n if (!result) {\r\n this._applyChangeFull(change);\r\n return\r\n }\r\n result.forEach(function(change) {\r\n switch (change.type) {\r\n case \"update\":\r\n var index = change.index;\r\n var newItem = change.data;\r\n var oldItem = change.oldItem;\r\n var changedColumnIndices = _this2._partialUpdateRow(oldItem, newItem, index, true);\r\n rowIndices.push(index);\r\n changeTypes.push(\"update\");\r\n items.push(newItem);\r\n _this2._items[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 _this2._items.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 _this2._items.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(function(rowIndex) {\r\n var oldItem = oldItems[rowIndex];\r\n var key = getRowKey(oldItem);\r\n var newRowIndex = newIndexByKey[key];\r\n return newRowIndex >= 0 ? newRowIndex - rowIndex : 0\r\n })\r\n },\r\n _correctRowIndices: _common.noop,\r\n _updateItemsCore: function(change) {\r\n var that = this;\r\n var items;\r\n var dataSource = that._dataSource;\r\n var changeType = change.changeType || \"refresh\";\r\n change.changeType = changeType;\r\n if (dataSource) {\r\n items = change.items || dataSource.items();\r\n items = that._beforeProcessItems(items);\r\n items = that._processItems(items, change);\r\n change.items = items;\r\n var oldItems = that._items.length === items.length && that._items;\r\n that._applyChange(change);\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n (0, _iterator.each)(that._items, function(index, item) {\r\n item.rowIndex = index - rowIndexDelta;\r\n if (oldItems) {\r\n item.cells = oldItems[index].cells || []\r\n }\r\n })\r\n } else {\r\n that._items = []\r\n }\r\n },\r\n _handleChanging: function(e) {\r\n var that = this;\r\n var rows = that.getVisibleRows();\r\n var dataSource = that.dataSource();\r\n if (dataSource) {\r\n e.changes.forEach(function(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: function(change, isDataChanged) {\r\n change = change || {};\r\n var that = this;\r\n if (void 0 !== that._repaintChangesOnly) {\r\n change.repaintChangesOnly = that._repaintChangesOnly\r\n } else {\r\n if (change.changes) {\r\n change.repaintChangesOnly = that.option(\"repaintChangesOnly\")\r\n } else {\r\n if (isDataChanged) {\r\n var operationTypes = that.dataSource().operationTypes();\r\n change.repaintChangesOnly = operationTypes && !operationTypes.grouping && !operationTypes.filtering && that.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 }\r\n }\r\n if (that._updateLockCount) {\r\n that._changes.push(change);\r\n return\r\n }\r\n that._updateItemsCore(change);\r\n if (change.cancel) {\r\n return\r\n }\r\n that._fireChanged(change)\r\n },\r\n loadingOperationTypes: function() {\r\n var dataSource = this.dataSource();\r\n return dataSource && dataSource.loadingOperationTypes() || {}\r\n },\r\n _fireChanged: function(change) {\r\n var _this3 = this;\r\n if (this._currentOperationTypes) {\r\n change.operationTypes = this._currentOperationTypes;\r\n this._currentOperationTypes = null\r\n }(0, _common.deferRender)(function() {\r\n _this3.changed.fire(change)\r\n })\r\n },\r\n isLoading: function() {\r\n return this._isLoading || this._isCustomLoading\r\n },\r\n _fireLoadingChanged: function() {\r\n this.loadingChanged.fire(this.isLoading(), this._loadingText)\r\n },\r\n _calculateAdditionalFilter: function() {\r\n return null\r\n },\r\n _applyFilter: function() {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n dataSource.pageIndex(0);\r\n return that.reload().done(that.pageChanged.fire.bind(that.pageChanged))\r\n }\r\n },\r\n filter: function 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 (_uiGrid_core2.default.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: function(filterName) {\r\n var that = this;\r\n var columnsController = that._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 that.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n switch (filterName) {\r\n case \"dataSource\":\r\n that.filter(null);\r\n break;\r\n case \"search\":\r\n that.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 that.filter(null);\r\n that.searchByText(\"\");\r\n clearColumnOption(\"filterValue\");\r\n clearColumnOption(\"bufferedFilterValue\");\r\n clearColumnOption(\"filterValues\")\r\n }\r\n that.component.endUpdate()\r\n },\r\n _fireDataSourceChanged: function() {\r\n var that = this;\r\n var changedHandler = function changedHandler() {\r\n that.changed.remove(changedHandler);\r\n that.dataSourceChanged.fire()\r\n };\r\n that.changed.add(changedHandler)\r\n },\r\n _getDataSourceAdapter: _common.noop,\r\n _createDataSourceAdapterCore: function(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: function(store) {\r\n store = store || this.store();\r\n return store instanceof _array_store.default\r\n },\r\n isCustomStore: function(store) {\r\n store = store || this.store();\r\n return store instanceof _custom_store.default\r\n },\r\n _createDataSourceAdapter: function(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 (remoteOperations && remoteOperations.groupPaging) {\r\n remoteOperations = (0, _extend.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: function(dataSource) {\r\n var that = this;\r\n var oldDataSource = that._dataSource;\r\n if (!dataSource && oldDataSource) {\r\n oldDataSource.cancelAll();\r\n oldDataSource.changed.remove(that._dataChangedHandler);\r\n oldDataSource.loadingChanged.remove(that._loadingChangedHandler);\r\n oldDataSource.loadError.remove(that._loadErrorHandler);\r\n oldDataSource.customizeStoreLoadOptions.remove(that._customizeStoreLoadOptionsHandler);\r\n oldDataSource.changing.remove(that._changingHandler);\r\n oldDataSource.dispose(that._isSharedDataSource)\r\n }\r\n if (dataSource) {\r\n dataSource = that._createDataSourceAdapter(dataSource)\r\n }\r\n that._dataSource = dataSource;\r\n if (dataSource) {\r\n that._fireDataSourceChanged();\r\n that._isLoading = !dataSource.isLoaded();\r\n that._needApplyFilter = true;\r\n that._isAllDataTypesDefined = that._columnsController.isAllDataTypesDefined();\r\n dataSource.changed.add(that._dataChangedHandler);\r\n dataSource.loadingChanged.add(that._loadingChangedHandler);\r\n dataSource.loadError.add(that._loadErrorHandler);\r\n dataSource.customizeStoreLoadOptions.add(that._customizeStoreLoadOptionsHandler);\r\n dataSource.changing.add(that._changingHandler)\r\n }\r\n },\r\n items: function() {\r\n return this._items\r\n },\r\n isEmpty: function() {\r\n return !this.items().length\r\n },\r\n pageCount: function() {\r\n return this._dataSource ? this._dataSource.pageCount() : 1\r\n },\r\n dataSource: function() {\r\n return this._dataSource\r\n },\r\n store: function() {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.store()\r\n },\r\n loadAll: function(data) {\r\n var that = this;\r\n var d = new _deferred.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: that.getCombinedFilter(),\r\n group: dataSource.group(),\r\n sort: dataSource.sort()\r\n }\r\n };\r\n dataSource._handleDataLoaded(options);\r\n (0, _deferred.when)(options.data).done(function(data) {\r\n data = that._beforeProcessItems(data);\r\n d.resolve(that._processItems(data, {\r\n changeType: \"loadingAll\"\r\n }), options.extra && options.extra.summary)\r\n }).fail(d.reject)\r\n } else {\r\n if (!dataSource.isLoading()) {\r\n var loadOptions = (0, _extend.extend)({}, dataSource.loadOptions(), {\r\n isLoadingAll: true,\r\n requireTotalCount: false\r\n });\r\n dataSource.load(loadOptions).done(function(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 }\r\n } else {\r\n d.resolve([])\r\n }\r\n return d\r\n },\r\n getKeyByRowIndex: function(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: function(key, byLoaded) {\r\n return _uiGrid_core2.default.getIndexByKey(key, this.items(byLoaded))\r\n },\r\n keyOf: function(data) {\r\n var store = this.store();\r\n if (store) {\r\n return store.keyOf(data)\r\n }\r\n },\r\n byKey: function(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.Deferred).resolve(this.items()[rowIndex].data)\r\n }\r\n return result || store.byKey(key)\r\n },\r\n key: function() {\r\n var store = this.store();\r\n if (store) {\r\n return store.key()\r\n }\r\n },\r\n getRowIndexOffset: function() {\r\n return 0\r\n },\r\n getDataByKeys: function(rowKeys) {\r\n var that = this;\r\n var result = new _deferred.Deferred;\r\n var deferreds = [];\r\n var data = [];\r\n (0, _iterator.each)(rowKeys, function(index, key) {\r\n deferreds.push(that.byKey(key).done(function(keyData) {\r\n data[index] = keyData\r\n }))\r\n });\r\n _deferred.when.apply(_renderer.default, deferreds).always(function() {\r\n result.resolve(data)\r\n });\r\n return result\r\n },\r\n pageIndex: function(value) {\r\n return changePaging(this, \"pageIndex\", value)\r\n },\r\n pageSize: function(value) {\r\n return changePaging(this, \"pageSize\", value)\r\n },\r\n beginCustomLoading: function(messageText) {\r\n this._isCustomLoading = true;\r\n this._loadingText = messageText || \"\";\r\n this._fireLoadingChanged()\r\n },\r\n endCustomLoading: function() {\r\n this._isCustomLoading = false;\r\n this._loadingText = void 0;\r\n this._fireLoadingChanged()\r\n },\r\n refresh: function(options) {\r\n if (true === options) {\r\n options = {\r\n reload: true,\r\n changesOnly: true\r\n }\r\n } else {\r\n if (!options) {\r\n options = {\r\n lookup: true,\r\n selection: true,\r\n reload: true\r\n }\r\n }\r\n }\r\n var that = this;\r\n var dataSource = that.getDataSource();\r\n var changesOnly = options.changesOnly;\r\n var d = new _deferred.Deferred;\r\n var customizeLoadResult = function() {\r\n that._repaintChangesOnly = !!changesOnly\r\n };\r\n (0, _deferred.when)(!options.lookup || that._columnsController.refresh()).always(function() {\r\n if (options.load || options.reload) {\r\n dataSource && dataSource.on(\"customizeLoadResult\", customizeLoadResult);\r\n (0, _deferred.when)(that.reload(options.reload, changesOnly)).always(function() {\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: function() {\r\n return this.items()\r\n },\r\n _disposeDataSource: function() {\r\n this.setDataSource(null)\r\n },\r\n dispose: function() {\r\n this._disposeDataSource();\r\n this.callBase.apply(this, arguments)\r\n },\r\n repaintRows: function(rowIndexes, changesOnly) {\r\n rowIndexes = Array.isArray(rowIndexes) ? rowIndexes : [rowIndexes];\r\n if (rowIndexes.length > 1 || (0, _type.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: function(fullName) {\r\n return this._skipProcessingPagingChange && (\"paging.pageIndex\" === fullName || \"paging.pageSize\" === fullName)\r\n },\r\n getUserState: function() {\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: function() {\r\n return this._dataSource && this._dataSource.getCachedStoreData()\r\n }\r\n };\r\n _uiGrid_core2.default.proxyMethod(members, \"load\");\r\n _uiGrid_core2.default.proxyMethod(members, \"reload\");\r\n _uiGrid_core2.default.proxyMethod(members, \"push\");\r\n _uiGrid_core2.default.proxyMethod(members, \"itemsCount\", 0);\r\n _uiGrid_core2.default.proxyMethod(members, \"totalItemsCount\", 0);\r\n _uiGrid_core2.default.proxyMethod(members, \"hasKnownLastPage\", true);\r\n _uiGrid_core2.default.proxyMethod(members, \"isLoaded\", true);\r\n _uiGrid_core2.default.proxyMethod(members, \"totalCount\", 0);\r\n return members\r\n }())\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.sorting.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"../grid_core/ui.grid_core.sorting_mixin\"));\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _index = require(\"../../events/utils/index\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar COLUMN_HEADERS_VIEW_NAMESPACE = \"dxDataGridColumnHeadersView\";\r\nvar ColumnHeadersViewSortingExtender = (0, _extend.extend)({}, _uiGrid_core.default, {\r\n _createRow: function(row) {\r\n var _this = this;\r\n var $row = this.callBase(row);\r\n if (\"header\" === row.rowType) {\r\n _events_engine.default.on($row, (0, _index.addNamespace)(_click.name, COLUMN_HEADERS_VIEW_NAMESPACE), \"td\", this.createAction(function(e) {\r\n _this._processHeaderAction(e.event, $row)\r\n }))\r\n }\r\n return $row\r\n },\r\n _processHeaderAction: function(event, $row) {\r\n if ((0, _renderer.default)(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 = (0, _renderer.default)(event.currentTarget);\r\n var rowIndex = $cellElementFromEvent.parent().index();\r\n var columnIndex = -1;\r\n [].slice.call(that.getCellElements(rowIndex)).some(function($cellElement, index) {\r\n if ($cellElement === $cellElementFromEvent.get(0)) {\r\n columnIndex = index;\r\n return true\r\n }\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((0, _renderer.default)(event.target))) {\r\n return\r\n }\r\n if (column && !(0, _type.isDefined)(column.groupIndex) && !column.command) {\r\n if (event.shiftKey) {\r\n keyName = \"shift\"\r\n } else {\r\n if (event.ctrlKey) {\r\n keyName = \"ctrl\"\r\n }\r\n }\r\n setTimeout(function() {\r\n that._columnsController.changeSortOrder(column.index, keyName)\r\n })\r\n }\r\n },\r\n _renderCellContent: function($cell, options) {\r\n var that = this;\r\n var column = options.column;\r\n if (!column.command && \"header\" === options.rowType) {\r\n that._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: that.option(\"showColumnLines\")\r\n })\r\n }\r\n that.callBase($cell, options)\r\n },\r\n _columnOptionChanged: function(e) {\r\n var changeTypes = e.changeTypes;\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: function(args) {\r\n var that = this;\r\n switch (args.name) {\r\n case \"sorting\":\r\n that._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n }\r\n});\r\nvar HeaderPanelSortingExtender = (0, _extend.extend)({}, _uiGrid_core.default, {\r\n _createGroupPanelItem: function($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = that.callBase.apply(that, arguments);\r\n _events_engine.default.on($item, (0, _index.addNamespace)(_click.name, \"dxDataGridHeaderPanel\"), that.createAction(function() {\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: function(groupColumnIndex) {\r\n var _this2 = this;\r\n setTimeout(function() {\r\n return _this2.getController(\"columns\").changeSortOrder(groupColumnIndex)\r\n })\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n switch (args.name) {\r\n case \"sorting\":\r\n that._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n }\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n sorting: {\r\n mode: \"single\",\r\n ascendingText: _message.default.format(\"dxDataGrid-sortingAscendingText\"),\r\n descendingText: _message.default.format(\"dxDataGrid-sortingDescendingText\"),\r\n clearText: _message.default.format(\"dxDataGrid-sortingClearText\"),\r\n showSortIndexes: true\r\n }\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\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","/**\r\n * DevExtreme (ui/context_menu.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _ui = _interopRequireDefault(require(\"./context_menu/ui.context_menu\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _ui.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.column_chooser.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _uiGrid_core = _interopRequireDefault(require(\"./ui.grid_core.modules\"));\r\nvar _uiGrid_core2 = require(\"./ui.grid_core.columns_view\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _themes = require(\"../themes\");\r\nvar _button = _interopRequireDefault(require(\"../button\"));\r\nvar _tree_view = _interopRequireDefault(require(\"../tree_view\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _popup = _interopRequireDefault(require(\"../popup\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar COLUMN_CHOOSER_CLASS = \"column-chooser\";\r\nvar COLUMN_CHOOSER_BUTTON_CLASS = \"column-chooser-button\";\r\nvar NOTOUCH_ACTION_CLASS = \"notouch-action\";\r\nvar COLUMN_CHOOSER_LIST_CLASS = \"column-chooser-list\";\r\nvar COLUMN_CHOOSER_PLAIN_CLASS = \"column-chooser-plain\";\r\nvar COLUMN_CHOOSER_DRAG_CLASS = \"column-chooser-mode-drag\";\r\nvar COLUMN_CHOOSER_SELECT_CLASS = \"column-chooser-mode-select\";\r\nvar COLUMN_CHOOSER_ICON_NAME = \"column-chooser\";\r\nvar COLUMN_CHOOSER_ITEM_CLASS = \"dx-column-chooser-item\";\r\nvar TREEVIEW_NODE_SELECTOR = \".dx-treeview-node\";\r\nvar CHECKBOX_SELECTOR = \".dx-checkbox\";\r\nvar CLICK_TIMEOUT = 300;\r\nvar processItems = function(that, chooserColumns) {\r\n var items = [];\r\n var isSelectMode = \"select\" === that.option(\"columnChooser.mode\");\r\n if (chooserColumns.length) {\r\n (0, _iterator.each)(chooserColumns, function(index, column) {\r\n var item = {\r\n text: column.caption,\r\n cssClass: column.cssClass,\r\n allowHiding: column.allowHiding,\r\n expanded: true,\r\n id: column.index,\r\n disabled: false,\r\n disableCheckBox: false === column.allowHiding,\r\n parentId: (0, _type.isDefined)(column.ownerBand) ? column.ownerBand : null\r\n };\r\n if (isSelectMode) {\r\n item.selected = column.visible\r\n }\r\n items.push(item)\r\n })\r\n }\r\n return items\r\n};\r\nvar ColumnChooserController = _uiGrid_core.default.ViewController.inherit({\r\n renderShowColumnChooserButton: function($element) {\r\n var that = this;\r\n var columnChooserButtonClass = that.addWidgetPrefix(COLUMN_CHOOSER_BUTTON_CLASS);\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n var $showColumnChooserButton = $element.find(\".\" + columnChooserButtonClass);\r\n var $columnChooserButton;\r\n if (columnChooserEnabled) {\r\n if (!$showColumnChooserButton.length) {\r\n $columnChooserButton = (0, _renderer.default)(\"
    \").addClass(columnChooserButtonClass).appendTo($element);\r\n that._createComponent($columnChooserButton, _button.default, {\r\n icon: COLUMN_CHOOSER_ICON_NAME,\r\n onClick: function() {\r\n that.getView(\"columnChooserView\").showColumnChooser()\r\n },\r\n hint: that.option(\"columnChooser.title\"),\r\n integrationOptions: {}\r\n })\r\n } else {\r\n $showColumnChooserButton.show()\r\n }\r\n } else {\r\n $showColumnChooserButton.hide()\r\n }\r\n },\r\n getPosition: function() {\r\n var rowsView = this.getView(\"rowsView\");\r\n return {\r\n my: \"right bottom\",\r\n at: \"right bottom\",\r\n of: rowsView && rowsView.element(),\r\n collision: \"fit\",\r\n offset: \"-2 -2\",\r\n boundaryOffset: \"2 2\"\r\n }\r\n }\r\n});\r\nvar ColumnChooserView = _uiGrid_core2.ColumnsView.inherit({\r\n _resizeCore: _common.noop,\r\n _isWinDevice: function() {\r\n return !!_devices.default.real().win\r\n },\r\n _updateList: function(change) {\r\n var items;\r\n var $popupContent = this._popupContainer.$content();\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n var columnChooserList = this._columnChooserList;\r\n var chooserColumns = this._columnsController.getChooserColumns(isSelectMode);\r\n if (isSelectMode && columnChooserList && change && \"selection\" === change.changeType) {\r\n items = processItems(this, chooserColumns);\r\n for (var i = 0; i < items.length; i++) {\r\n var selected = items[i].selected;\r\n var id = items[i].id;\r\n if (id === change.columnIndex) {\r\n if (selected) {\r\n columnChooserList.selectItem(id, selected)\r\n } else {\r\n columnChooserList.unselectItem(id, selected)\r\n }\r\n }\r\n }\r\n } else {\r\n if (!isSelectMode || !columnChooserList || \"full\" === change) {\r\n this._popupContainer._wrapper().toggleClass(this.addWidgetPrefix(COLUMN_CHOOSER_DRAG_CLASS), !isSelectMode).toggleClass(this.addWidgetPrefix(COLUMN_CHOOSER_SELECT_CLASS), isSelectMode);\r\n items = processItems(this, chooserColumns);\r\n this._renderTreeView($popupContent, items)\r\n }\r\n }\r\n },\r\n _initializePopupContainer: function() {\r\n var that = this;\r\n var $element = that.element().addClass(that.addWidgetPrefix(COLUMN_CHOOSER_CLASS));\r\n var columnChooserOptions = that.option(\"columnChooser\");\r\n var themeName = (0, _themes.current)();\r\n var isGenericTheme = (0, _themes.isGeneric)(themeName);\r\n var isMaterial = (0, _themes.isMaterial)(themeName);\r\n var dxPopupOptions = {\r\n visible: false,\r\n shading: false,\r\n showCloseButton: false,\r\n dragEnabled: true,\r\n resizeEnabled: true,\r\n toolbarItems: [{\r\n text: columnChooserOptions.title,\r\n toolbar: \"top\",\r\n location: isGenericTheme || isMaterial ? \"before\" : \"center\"\r\n }],\r\n position: that.getController(\"columnChooser\").getPosition(),\r\n width: columnChooserOptions.width,\r\n height: columnChooserOptions.height,\r\n rtlEnabled: that.option(\"rtlEnabled\"),\r\n onHidden: function() {\r\n if (that._isWinDevice()) {\r\n (0, _renderer.default)(\"body\").removeClass(that.addWidgetPrefix(NOTOUCH_ACTION_CLASS))\r\n }\r\n },\r\n container: columnChooserOptions.container\r\n };\r\n if (isGenericTheme || isMaterial) {\r\n (0, _extend.extend)(dxPopupOptions, {\r\n showCloseButton: true\r\n })\r\n } else {\r\n dxPopupOptions.toolbarItems[dxPopupOptions.toolbarItems.length] = {\r\n shortcut: \"cancel\"\r\n }\r\n }\r\n if (!(0, _type.isDefined)(this._popupContainer)) {\r\n that._popupContainer = that._createComponent($element, _popup.default, dxPopupOptions);\r\n that._popupContainer.on(\"optionChanged\", function(args) {\r\n if (\"visible\" === args.name) {\r\n that.renderCompleted.fire()\r\n }\r\n })\r\n } else {\r\n this._popupContainer.option(dxPopupOptions)\r\n }\r\n },\r\n _renderCore: function(change) {\r\n if (this._popupContainer) {\r\n this._updateList(change)\r\n }\r\n },\r\n _renderTreeView: function($container, items) {\r\n var that = this;\r\n var columnChooser = this.option(\"columnChooser\");\r\n var isSelectMode = \"select\" === columnChooser.mode;\r\n var treeViewConfig = {\r\n items: items,\r\n dataStructure: \"plain\",\r\n activeStateEnabled: true,\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n itemTemplate: \"item\",\r\n showCheckBoxesMode: \"none\",\r\n rootValue: null,\r\n searchEnabled: columnChooser.allowSearch,\r\n searchTimeout: columnChooser.searchTimeout,\r\n onItemRendered: function(e) {\r\n if (e.itemData.disableCheckBox) {\r\n var $treeViewNode = (0, _renderer.default)(e.itemElement).closest(TREEVIEW_NODE_SELECTOR);\r\n var $checkBox;\r\n if ($treeViewNode.length) {\r\n $checkBox = $treeViewNode.find(CHECKBOX_SELECTOR);\r\n if ($checkBox.length) {\r\n var checkBoxInstance = $checkBox.data(\"dxCheckBox\");\r\n checkBoxInstance && checkBoxInstance.option(\"disabled\", true)\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var scrollableInstance = $container.find(\".dx-scrollable\").data(\"dxScrollable\");\r\n var scrollTop = scrollableInstance && scrollableInstance.scrollTop();\r\n if (isSelectMode && !this._columnsController.isBandColumnsUsed()) {\r\n $container.addClass(this.addWidgetPrefix(COLUMN_CHOOSER_PLAIN_CLASS))\r\n }\r\n treeViewConfig.onContentReady = function(e) {\r\n (0, _common.deferUpdate)(function() {\r\n if (scrollTop) {\r\n var scrollable = (0, _renderer.default)(e.element).find(\".dx-scrollable\").data(\"dxScrollable\");\r\n scrollable && scrollable.scrollTo({\r\n y: scrollTop\r\n })\r\n }\r\n that.renderCompleted.fire()\r\n })\r\n };\r\n if (this._isWinDevice()) {\r\n treeViewConfig.useNativeScrolling = false\r\n }(0, _extend.extend)(treeViewConfig, isSelectMode ? this._prepareSelectModeConfig() : this._prepareDragModeConfig());\r\n if (this._columnChooserList) {\r\n if (!treeViewConfig.searchEnabled) {\r\n treeViewConfig.searchValue = \"\"\r\n }\r\n this._columnChooserList.option(treeViewConfig)\r\n } else {\r\n this._columnChooserList = this._createComponent($container, _tree_view.default, treeViewConfig);\r\n $container.addClass(this.addWidgetPrefix(COLUMN_CHOOSER_LIST_CLASS))\r\n }\r\n },\r\n _prepareDragModeConfig: function() {\r\n var columnChooserOptions = this.option(\"columnChooser\");\r\n return {\r\n noDataText: columnChooserOptions.emptyPanelText,\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n itemTemplate: function(data, index, item) {\r\n (0, _renderer.default)(item).text(data.text).parent().addClass(data.cssClass).addClass(COLUMN_CHOOSER_ITEM_CLASS)\r\n }\r\n }\r\n },\r\n _prepareSelectModeConfig: function() {\r\n var that = this;\r\n var selectionChangedHandler = function(e) {\r\n var visibleColumns = that._columnsController.getVisibleColumns().filter(function(item) {\r\n return !item.command\r\n });\r\n var isLastColumnUnselected = 1 === visibleColumns.length && !e.itemData.selected;\r\n if (isLastColumnUnselected) {\r\n e.component.selectItem(e.itemElement)\r\n } else {\r\n setTimeout(function() {\r\n that._columnsController.columnOption(e.itemData.id, \"visible\", e.itemData.selected)\r\n }, CLICK_TIMEOUT)\r\n }\r\n };\r\n return {\r\n selectNodesRecursive: false,\r\n showCheckBoxesMode: \"normal\",\r\n onItemSelectionChanged: selectionChangedHandler\r\n }\r\n },\r\n _columnOptionChanged: function(e) {\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n this.callBase(e);\r\n if (isSelectMode) {\r\n var needPartialRender = optionNames.visible && 1 === optionNames.length && void 0 !== e.columnIndex;\r\n var needFullRender = optionNames.showInColumnChooser || optionNames.caption || optionNames.visible || changeTypes.columns && optionNames.all;\r\n if (needPartialRender) {\r\n this.render(null, {\r\n changeType: \"selection\",\r\n columnIndex: e.columnIndex\r\n })\r\n } else {\r\n if (needFullRender) {\r\n this.render(null, \"full\")\r\n }\r\n }\r\n }\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"columnChooser\":\r\n this._initializePopupContainer();\r\n this.render(null, \"full\");\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getColumnElements: function() {\r\n var result = [];\r\n var $node;\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n var chooserColumns = this._columnsController.getChooserColumns(isSelectMode);\r\n var $content = this._popupContainer && this._popupContainer.$content();\r\n var $nodes = $content && $content.find(\".dx-treeview-node\");\r\n if ($nodes) {\r\n chooserColumns.forEach(function(column) {\r\n $node = $nodes.filter(\"[data-item-id = '\" + column.index + \"']\");\r\n var item = $node.length ? $node.children(\".\" + COLUMN_CHOOSER_ITEM_CLASS).get(0) : null;\r\n result.push(item)\r\n })\r\n }\r\n return (0, _renderer.default)(result)\r\n },\r\n getName: function() {\r\n return \"columnChooser\"\r\n },\r\n getColumns: function() {\r\n return this._columnsController.getChooserColumns()\r\n },\r\n allowDragging: function(column, sourceLocation) {\r\n var columnVisible = column && column.allowHiding && (\"columnChooser\" !== sourceLocation || !column.visible && this._columnsController.isParentColumnVisible(column.index));\r\n return this.isColumnChooserVisible() && columnVisible\r\n },\r\n getBoundingRect: function() {\r\n var that = this;\r\n var container = that._popupContainer && that._popupContainer._container();\r\n if (container && container.is(\":visible\")) {\r\n var offset = container.offset();\r\n return {\r\n left: offset.left,\r\n top: offset.top,\r\n right: offset.left + container.outerWidth(),\r\n bottom: offset.top + container.outerHeight()\r\n }\r\n }\r\n return null\r\n },\r\n showColumnChooser: function() {\r\n if (!this._popupContainer) {\r\n this._initializePopupContainer();\r\n this.render()\r\n }\r\n this._popupContainer.show();\r\n if (this._isWinDevice()) {\r\n (0, _renderer.default)(\"body\").addClass(this.addWidgetPrefix(NOTOUCH_ACTION_CLASS))\r\n }\r\n },\r\n hideColumnChooser: function() {\r\n if (this._popupContainer) {\r\n this._popupContainer.hide()\r\n }\r\n },\r\n isColumnChooserVisible: function() {\r\n var popupContainer = this._popupContainer;\r\n return popupContainer && popupContainer.option(\"visible\")\r\n },\r\n publicMethods: function() {\r\n return [\"showColumnChooser\", \"hideColumnChooser\"]\r\n }\r\n});\r\nvar _default = {\r\n defaultOptions: function() {\r\n return {\r\n columnChooser: {\r\n enabled: false,\r\n allowSearch: false,\r\n searchTimeout: 500,\r\n mode: \"dragAndDrop\",\r\n width: 250,\r\n height: 260,\r\n title: _message.default.format(\"dxDataGrid-columnChooserTitle\"),\r\n emptyPanelText: _message.default.format(\"dxDataGrid-columnChooserEmptyText\"),\r\n container: void 0\r\n }\r\n }\r\n },\r\n controllers: {\r\n columnChooser: ColumnChooserController\r\n },\r\n views: {\r\n columnChooserView: ColumnChooserView\r\n },\r\n extenders: {\r\n views: {\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._appendColumnChooserItem(items)\r\n },\r\n _appendColumnChooserItem: function(items) {\r\n var that = this;\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n if (columnChooserEnabled) {\r\n var onClickHandler = function() {\r\n that.component.getView(\"columnChooserView\").showColumnChooser()\r\n };\r\n var onInitialized = function(e) {\r\n (0, _renderer.default)(e.element).addClass(that._getToolbarButtonClass(that.addWidgetPrefix(COLUMN_CHOOSER_BUTTON_CLASS)))\r\n };\r\n var hintText = that.option(\"columnChooser.title\");\r\n var toolbarItem = {\r\n widget: \"dxButton\",\r\n options: {\r\n icon: COLUMN_CHOOSER_ICON_NAME,\r\n onClick: onClickHandler,\r\n hint: hintText,\r\n text: hintText,\r\n onInitialized: onInitialized\r\n },\r\n showText: \"inMenu\",\r\n location: \"after\",\r\n name: \"columnChooserButton\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 40\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"columnChooser\":\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 isVisible: function() {\r\n var that = this;\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n return that.callBase() || columnChooserEnabled\r\n }\r\n }\r\n },\r\n controllers: {\r\n columns: {\r\n allowMoveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var columnChooserMode = this.option(\"columnChooser.mode\");\r\n var isMoveColumnDisallowed = \"select\" === columnChooserMode && \"columnChooser\" === targetLocation;\r\n return isMoveColumnDisallowed ? false : this.callBase(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation)\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","var global = require('../internals/global');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar TypeError = global.TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.dialog_manager.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _uiFile_managerDialog = _interopRequireDefault(require(\"./ui.file_manager.dialog.name_editor\"));\r\nvar _uiFile_managerDialog2 = _interopRequireDefault(require(\"./ui.file_manager.dialog.folder_chooser\"));\r\nvar _uiFile_managerDialog3 = _interopRequireDefault(require(\"./ui.file_manager.dialog.delete_item\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar FileManagerDialogManager = function() {\r\n function FileManagerDialogManager($element, options) {\r\n this._$element = $element;\r\n this._options = options;\r\n var $chooseFolderDialog = (0, _renderer.default)(\"
    \").appendTo(this._$element);\r\n this._chooseDirectoryDialog = new _uiFile_managerDialog2.default($chooseFolderDialog, (0, _extend.extend)(this._options.chooseDirectoryDialog, {\r\n onClosed: this._options.onDialogClosed\r\n }));\r\n var $renameDialog = (0, _renderer.default)(\"
    \").appendTo(this._$element);\r\n this._renameItemDialog = new _uiFile_managerDialog.default($renameDialog, {\r\n title: _message.default.format(\"dxFileManager-dialogRenameItemTitle\"),\r\n buttonText: _message.default.format(\"dxFileManager-dialogRenameItemButtonText\"),\r\n onClosed: this._options.onDialogClosed\r\n });\r\n var $createDialog = (0, _renderer.default)(\"
    \").appendTo(this._$element);\r\n this._createItemDialog = new _uiFile_managerDialog.default($createDialog, {\r\n title: _message.default.format(\"dxFileManager-dialogCreateDirectoryTitle\"),\r\n buttonText: _message.default.format(\"dxFileManager-dialogCreateDirectoryButtonText\"),\r\n onClosed: this._options.onDialogClosed\r\n });\r\n var $deleteItemDialog = (0, _renderer.default)(\"
    \").appendTo(this._$element);\r\n this._deleteItemDialog = new _uiFile_managerDialog3.default($deleteItemDialog, {\r\n onClosed: this._options.onDialogClosed\r\n })\r\n }\r\n var _proto = FileManagerDialogManager.prototype;\r\n _proto.getCopyDialog = function(targetItemInfos) {\r\n this._chooseDirectoryDialog.switchToCopyDialog(targetItemInfos);\r\n return this._chooseDirectoryDialog\r\n };\r\n _proto.getMoveDialog = function(targetItemInfos) {\r\n this._chooseDirectoryDialog.switchToMoveDialog(targetItemInfos);\r\n return this._chooseDirectoryDialog\r\n };\r\n _proto.getRenameItemDialog = function() {\r\n return this._renameItemDialog\r\n };\r\n _proto.getCreateItemDialog = function() {\r\n return this._createItemDialog\r\n };\r\n _proto.getDeleteItemDialog = function() {\r\n return this._deleteItemDialog\r\n };\r\n return FileManagerDialogManager\r\n}();\r\nvar _default = FileManagerDialogManager;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n return passed;\n};\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.editing.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _string = require(\"../../core/utils/string\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _uiFile_manager = _interopRequireDefault(require(\"./ui.file_manager.dialog_manager\"));\r\nvar _uiFile_manager2 = _interopRequireDefault(require(\"./ui.file_manager.file_uploader\"));\r\nvar _uiFile_manager3 = require(\"./ui.file_manager.messages\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\n\r\nfunction _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) {\r\n descriptor.writable = true\r\n }\r\n Object.defineProperty(target, descriptor.key, descriptor)\r\n }\r\n}\r\n\r\nfunction _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) {\r\n _defineProperties(Constructor.prototype, protoProps)\r\n }\r\n if (staticProps) {\r\n _defineProperties(Constructor, staticProps)\r\n }\r\n return Constructor\r\n}\r\n\r\nfunction _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n _setPrototypeOf(subClass, superClass)\r\n}\r\n\r\nfunction _setPrototypeOf(o, p) {\r\n _setPrototypeOf = Object.setPrototypeOf || function(o, p) {\r\n o.__proto__ = p;\r\n return o\r\n };\r\n return _setPrototypeOf(o, p)\r\n}\r\nvar FileManagerEditingControl = function(_Widget) {\r\n _inheritsLoose(FileManagerEditingControl, _Widget);\r\n\r\n function FileManagerEditingControl() {\r\n return _Widget.apply(this, arguments) || this\r\n }\r\n var _proto = FileManagerEditingControl.prototype;\r\n _proto._initMarkup = function() {\r\n _Widget.prototype._initMarkup.call(this);\r\n this._initActions();\r\n this._controller = this.option(\"controller\");\r\n this._controller.on(\"EditActionStarting\", this._onEditActionStarting.bind(this));\r\n this._controller.on(\"EditActionResultAcquired\", this._onEditActionResultAcquired.bind(this));\r\n this._controller.on(\"EditActionItemError\", this._onEditActionItemError.bind(this));\r\n this._controller.on(\"EditActionError\", this._onEditActionError.bind(this));\r\n this._controller.on(\"CompleteEditActionItem\", this._onCompleteEditActionItem.bind(this));\r\n this._controller.on(\"CompleteEditAction\", this._onCompleteEditAction.bind(this));\r\n this._model = this.option(\"model\");\r\n this._uploadOperationInfoMap = {};\r\n this._dialogManager = new _uiFile_manager.default(this.$element(), {\r\n chooseDirectoryDialog: {\r\n provider: this._controller._fileProvider,\r\n getDirectories: this._controller.getDirectories.bind(this._controller),\r\n getCurrentDirectory: this._controller.getCurrentDirectory.bind(this._controller)\r\n },\r\n onDialogClosed: this._onDialogClosed.bind(this)\r\n });\r\n this._fileUploader = this._createFileUploader();\r\n var notificationControl = this.option(\"notificationControl\");\r\n if (notificationControl) {\r\n this._initNotificationControl(notificationControl)\r\n }\r\n this._createMetadataMap()\r\n };\r\n _proto._initNotificationControl = function(notificationControl) {\r\n var _this = this;\r\n this._notificationControl = notificationControl;\r\n this._notificationControl.option({\r\n onOperationCanceled: function(_ref) {\r\n var info = _ref.info;\r\n return _this._onCancelUploadSession(info)\r\n },\r\n onOperationItemCanceled: function(_ref2) {\r\n var item = _ref2.item,\r\n itemIndex = _ref2.itemIndex;\r\n return _this._onCancelFileUpload(item, itemIndex)\r\n }\r\n })\r\n };\r\n _proto._getFileUploaderComponent = function() {\r\n return _uiFile_manager2.default\r\n };\r\n _proto._createFileUploader = function() {\r\n var _this2 = this;\r\n var $fileUploader = (0, _renderer.default)(\"
    \").appendTo(this.$element());\r\n return this._createComponent($fileUploader, this._getFileUploaderComponent(), {\r\n getController: this._getFileUploaderController.bind(this),\r\n dropZonePlaceholderContainer: this.option(\"uploadDropZonePlaceholderContainer\"),\r\n onUploadSessionStarted: function(e) {\r\n return _this2._onUploadSessionStarted(e)\r\n },\r\n onUploadProgress: function(e) {\r\n return _this2._onUploadProgress(e)\r\n }\r\n })\r\n };\r\n _proto.setUploaderDropZone = function($element) {\r\n this._fileUploader.option(\"dropZone\", $element)\r\n };\r\n _proto._getFileUploaderController = function() {\r\n var _this3 = this;\r\n var uploadDirectory = this.uploadDirectoryInfo.fileItem;\r\n return {\r\n chunkSize: this._controller.getFileUploadChunkSize(),\r\n uploadFileChunk: function(fileData, chunksInfo) {\r\n return _this3._controller.uploadFileChunk(fileData, chunksInfo, uploadDirectory)\r\n },\r\n abortFileUpload: function(fileData, chunksInfo) {\r\n return _this3._controller.abortFileUpload(fileData, chunksInfo, uploadDirectory)\r\n }\r\n }\r\n };\r\n _proto._createMetadataMap = function() {\r\n var _this4 = this;\r\n this._metadataMap = {\r\n create: {\r\n action: function(arg) {\r\n return _this4._tryCreate(arg)\r\n },\r\n affectsAllItems: true,\r\n singleItemProcessingMessage: _message.default.format(\"dxFileManager-editingCreateSingleItemProcessingMessage\"),\r\n singleItemSuccessMessage: _message.default.format(\"dxFileManager-editingCreateSingleItemSuccessMessage\"),\r\n singleItemErrorMessage: _message.default.format(\"dxFileManager-editingCreateSingleItemErrorMessage\"),\r\n commonErrorMessage: _message.default.format(\"dxFileManager-editingCreateCommonErrorMessage\")\r\n },\r\n rename: {\r\n action: function(arg) {\r\n return _this4._tryRename(arg)\r\n },\r\n singleItemProcessingMessage: _message.default.format(\"dxFileManager-editingRenameSingleItemProcessingMessage\"),\r\n singleItemSuccessMessage: _message.default.format(\"dxFileManager-editingRenameSingleItemSuccessMessage\"),\r\n singleItemErrorMessage: _message.default.format(\"dxFileManager-editingRenameSingleItemErrorMessage\"),\r\n commonErrorMessage: _message.default.format(\"dxFileManager-editingRenameCommonErrorMessage\")\r\n },\r\n \"delete\": {\r\n action: function(arg) {\r\n return _this4._tryDelete(arg)\r\n },\r\n singleItemProcessingMessage: _message.default.format(\"dxFileManager-editingDeleteSingleItemProcessingMessage\"),\r\n multipleItemsProcessingMessage: _message.default.format(\"dxFileManager-editingDeleteMultipleItemsProcessingMessage\"),\r\n singleItemSuccessMessage: _message.default.format(\"dxFileManager-editingDeleteSingleItemSuccessMessage\"),\r\n multipleItemsSuccessMessage: _message.default.format(\"dxFileManager-editingDeleteMultipleItemsSuccessMessage\"),\r\n singleItemErrorMessage: _message.default.format(\"dxFileManager-editingDeleteSingleItemErrorMessage\"),\r\n multipleItemsErrorMessage: _message.default.format(\"dxFileManager-editingDeleteMultipleItemsErrorMessage\"),\r\n commonErrorMessage: _message.default.format(\"dxFileManager-editingDeleteCommonErrorMessage\")\r\n },\r\n move: {\r\n action: function(arg) {\r\n return _this4._tryMove(arg)\r\n },\r\n singleItemProcessingMessage: _message.default.format(\"dxFileManager-editingMoveSingleItemProcessingMessage\"),\r\n multipleItemsProcessingMessage: _message.default.format(\"dxFileManager-editingMoveMultipleItemsProcessingMessage\"),\r\n singleItemSuccessMessage: _message.default.format(\"dxFileManager-editingMoveSingleItemSuccessMessage\"),\r\n multipleItemsSuccessMessage: _message.default.format(\"dxFileManager-editingMoveMultipleItemsSuccessMessage\"),\r\n singleItemErrorMessage: _message.default.format(\"dxFileManager-editingMoveSingleItemErrorMessage\"),\r\n multipleItemsErrorMessage: _message.default.format(\"dxFileManager-editingMoveMultipleItemsErrorMessage\"),\r\n commonErrorMessage: _message.default.format(\"dxFileManager-editingMoveCommonErrorMessage\")\r\n },\r\n copy: {\r\n action: function(arg) {\r\n return _this4._tryCopy(arg)\r\n },\r\n singleItemProcessingMessage: _message.default.format(\"dxFileManager-editingCopySingleItemProcessingMessage\"),\r\n multipleItemsProcessingMessage: _message.default.format(\"dxFileManager-editingCopyMultipleItemsProcessingMessage\"),\r\n singleItemSuccessMessage: _message.default.format(\"dxFileManager-editingCopySingleItemSuccessMessage\"),\r\n multipleItemsSuccessMessage: _message.default.format(\"dxFileManager-editingCopyMultipleItemsSuccessMessage\"),\r\n singleItemErrorMessage: _message.default.format(\"dxFileManager-editingCopySingleItemErrorMessage\"),\r\n multipleItemsErrorMessage: _message.default.format(\"dxFileManager-editingCopyMultipleItemsErrorMessage\"),\r\n commonErrorMessage: _message.default.format(\"dxFileManager-editingCopyCommonErrorMessage\")\r\n },\r\n upload: {\r\n action: function(arg) {\r\n return _this4._tryUpload(arg)\r\n },\r\n allowCancel: true,\r\n allowItemProgress: true,\r\n singleItemProcessingMessage: _message.default.format(\"dxFileManager-editingUploadSingleItemProcessingMessage\"),\r\n multipleItemsProcessingMessage: _message.default.format(\"dxFileManager-editingUploadMultipleItemsProcessingMessage\"),\r\n singleItemSuccessMessage: _message.default.format(\"dxFileManager-editingUploadSingleItemSuccessMessage\"),\r\n multipleItemsSuccessMessage: _message.default.format(\"dxFileManager-editingUploadMultipleItemsSuccessMessage\"),\r\n singleItemErrorMessage: _message.default.format(\"dxFileManager-editingUploadSingleItemErrorMessage\"),\r\n multipleItemsErrorMessage: _message.default.format(\"dxFileManager-editingUploadMultipleItemsErrorMessage\"),\r\n canceledMessage: _message.default.format(\"dxFileManager-editingUploadCanceledMessage\")\r\n },\r\n download: {\r\n action: function(arg) {\r\n return _this4._download(arg)\r\n }\r\n },\r\n getItemContent: {\r\n action: function(arg) {\r\n return _this4._getItemContent(arg)\r\n }\r\n },\r\n getItems: {\r\n singleItemProcessingMessage: \"\",\r\n singleItemErrorMessage: _message.default.format(\"dxFileManager-errorDirectoryOpenFailed\"),\r\n commonErrorMessage: _message.default.format(\"dxFileManager-errorDirectoryOpenFailed\")\r\n }\r\n }\r\n };\r\n _proto.getCommandActions = function() {\r\n var _this5 = this;\r\n var result = {};\r\n (0, _iterator.each)(this._metadataMap, function(name) {\r\n if (Object.prototype.hasOwnProperty.call(_this5._metadataMap, name)) {\r\n result[name] = function(arg) {\r\n return _this5._executeAction(name, arg)\r\n }\r\n }\r\n });\r\n return result\r\n };\r\n _proto._executeAction = function(actionName, arg) {\r\n var actionMetadata = this._metadataMap[actionName];\r\n return actionMetadata ? actionMetadata.action(arg) : null\r\n };\r\n _proto._onCancelUploadSession = function(info) {\r\n this._fileUploader.cancelUpload(info.uploadSessionId)\r\n };\r\n _proto._onCancelFileUpload = function(item, itemIndex) {\r\n this._fileUploader.cancelFileUpload(item.info.uploadSessionId, itemIndex)\r\n };\r\n _proto._onUploadProgress = function(_ref3) {\r\n var sessionId = _ref3.sessionId,\r\n fileIndex = _ref3.fileIndex,\r\n commonValue = _ref3.commonValue,\r\n fileValue = _ref3.fileValue;\r\n var operationInfo = this._uploadOperationInfoMap[sessionId];\r\n this._notificationControl.updateOperationItemProgress(operationInfo, fileIndex, 100 * fileValue, 100 * commonValue)\r\n };\r\n _proto._onUploadSessionStarted = function(_ref4) {\r\n var sessionInfo = _ref4.sessionInfo;\r\n this._controller.processUploadSession(sessionInfo, this.uploadDirectoryInfo)\r\n };\r\n _proto._onEditActionStarting = function(actionInfo) {\r\n var actionMetadata = this._metadataMap[actionInfo.name];\r\n var context = new FileManagerActionContext(actionMetadata, actionInfo.itemInfos, actionInfo.directory);\r\n var operationInfo = this._notificationControl.addOperation(context.processingMessage, actionMetadata.allowCancel, !actionMetadata.allowItemProgress);\r\n (0, _extend.extend)(actionInfo.customData, {\r\n context: context,\r\n operationInfo: operationInfo\r\n });\r\n switch (actionInfo.name) {\r\n case \"upload\":\r\n var sessionId = actionInfo.customData.sessionInfo.sessionId;\r\n operationInfo.uploadSessionId = sessionId;\r\n this._uploadOperationInfoMap[sessionId] = operationInfo;\r\n break;\r\n case \"rename\":\r\n actionInfo.customData.context.itemNewName = actionInfo.customData.itemNewName\r\n }\r\n };\r\n _proto._onEditActionResultAcquired = function(actionInfo) {\r\n var _this6 = this;\r\n var _actionInfo$customDat = actionInfo.customData,\r\n context = _actionInfo$customDat.context,\r\n operationInfo = _actionInfo$customDat.operationInfo;\r\n context.singleRequest = actionInfo.singleRequest;\r\n var details = context.itemInfos.map(function(itemInfo) {\r\n return _this6._getItemProgressDisplayInfo(itemInfo)\r\n });\r\n this._notificationControl.addOperationDetails(operationInfo, details, context.actionMetadata.allowCancel)\r\n };\r\n _proto._onEditActionError = function(actionInfo, errorInfo) {\r\n var _actionInfo$customDat2 = actionInfo.customData,\r\n context = _actionInfo$customDat2.context,\r\n operationInfo = _actionInfo$customDat2.operationInfo;\r\n context.singleRequest = actionInfo.singleRequest;\r\n this._handleActionError(operationInfo, context, errorInfo);\r\n this._completeAction(operationInfo, context)\r\n };\r\n _proto._onEditActionItemError = function(actionInfo, errorInfo) {\r\n var _actionInfo$customDat3 = actionInfo.customData,\r\n context = _actionInfo$customDat3.context,\r\n operationInfo = _actionInfo$customDat3.operationInfo;\r\n this._handleActionError(operationInfo, context, errorInfo)\r\n };\r\n _proto._onCompleteEditActionItem = function(actionInfo, info) {\r\n var _actionInfo$customDat4 = actionInfo.customData,\r\n context = _actionInfo$customDat4.context,\r\n operationInfo = _actionInfo$customDat4.operationInfo;\r\n if (!info.result || !info.result.canceled) {\r\n context.completeOperationItem(info.index);\r\n this._notificationControl.completeOperationItem(operationInfo, info.index, context.commonProgress)\r\n }\r\n };\r\n _proto._onCompleteEditAction = function(actionInfo) {\r\n var _actionInfo$customDat5 = actionInfo.customData,\r\n context = _actionInfo$customDat5.context,\r\n operationInfo = _actionInfo$customDat5.operationInfo;\r\n this._completeAction(operationInfo, context);\r\n if (\"upload\" === actionInfo.name) {\r\n delete this._uploadOperationInfoMap[actionInfo.customData.sessionInfo.sessionId]\r\n }\r\n };\r\n _proto._tryCreate = function(parentDirectories) {\r\n var _this7 = this;\r\n var parentDirectoryInfo = parentDirectories && parentDirectories[0] || this._getCurrentDirectory();\r\n var newDirName = _message.default.format(\"dxFileManager-newDirectoryName\");\r\n return this._showDialog(this._dialogManager.getCreateItemDialog(), newDirName).then(function(_ref5) {\r\n var name = _ref5.name;\r\n return _this7._controller.createDirectory(parentDirectoryInfo, name)\r\n })\r\n };\r\n _proto._tryRename = function(itemInfos) {\r\n var _this8 = this;\r\n var itemInfo = itemInfos && itemInfos[0] || this._model.getMultipleSelectedItems()[0];\r\n return this._showDialog(this._dialogManager.getRenameItemDialog(), itemInfo.fileItem.name).then(function(_ref6) {\r\n var name = _ref6.name;\r\n return _this8._controller.renameItem(itemInfo, name)\r\n })\r\n };\r\n _proto._tryDelete = function(itemInfos) {\r\n var _this9 = this;\r\n itemInfos = itemInfos || this._model.getMultipleSelectedItems();\r\n var itemName = itemInfos[0].fileItem.name;\r\n var itemCount = itemInfos.length;\r\n return this._showDialog(this._dialogManager.getDeleteItemDialog(), {\r\n itemName: itemName,\r\n itemCount: itemCount\r\n }).then(function() {\r\n return _this9._controller.deleteItems(itemInfos)\r\n })\r\n };\r\n _proto._tryMove = function(itemInfos) {\r\n var _this10 = this;\r\n itemInfos = itemInfos || this._model.getMultipleSelectedItems();\r\n return this._showDialog(this._dialogManager.getMoveDialog(itemInfos)).then(function(_ref7) {\r\n var folder = _ref7.folder;\r\n return _this10._controller.moveItems(itemInfos, folder)\r\n })\r\n };\r\n _proto._tryCopy = function(itemInfos) {\r\n var _this11 = this;\r\n itemInfos = itemInfos || this._model.getMultipleSelectedItems();\r\n return this._showDialog(this._dialogManager.getCopyDialog(itemInfos)).then(function(_ref8) {\r\n var folder = _ref8.folder;\r\n return _this11._controller.copyItems(itemInfos, folder)\r\n })\r\n };\r\n _proto._tryUpload = function(destinationFolder) {\r\n this._uploadDirectoryInfo = null === destinationFolder || void 0 === destinationFolder ? void 0 : destinationFolder[0];\r\n this._fileUploader.tryUpload()\r\n };\r\n _proto._download = function(itemInfos) {\r\n itemInfos = itemInfos || this._model.getMultipleSelectedItems();\r\n return this._controller.downloadItems(itemInfos)\r\n };\r\n _proto._getItemContent = function(itemInfos) {\r\n itemInfos = itemInfos || this._model.getMultipleSelectedItems();\r\n return this._controller.getItemContent(itemInfos)\r\n };\r\n _proto._completeAction = function(operationInfo, context) {\r\n this._notificationControl.completeOperation(operationInfo, context.completionMessage, !context.success, context.statusText);\r\n if (context.hasModifiedItems()) {\r\n this._raiseOnSuccess(context.onlyFiles)\r\n }\r\n };\r\n _proto._handleActionError = function(operationInfo, context, errorInfo) {\r\n operationInfo.hasError = true;\r\n if (context.singleRequest) {\r\n this._handleSingleRequestActionError(operationInfo, context, errorInfo)\r\n } else {\r\n this._handleMultipleRequestActionError(operationInfo, context, errorInfo)\r\n }\r\n };\r\n _proto._handleSingleRequestActionError = function(operationInfo, context, errorInfo) {\r\n var itemInfo = context.getItemForSingleRequestError();\r\n var itemName = context.itemNewName;\r\n var errorText = this._getErrorText(errorInfo, itemInfo, itemName);\r\n context.processSingleRequestError(errorText);\r\n var operationErrorInfo = this._getOperationErrorInfo(context);\r\n this._notificationControl.completeSingleOperationWithError(operationInfo, operationErrorInfo);\r\n if (context.multipleItems) {\r\n this._raiseOnSuccess(context.onlyFiles)\r\n }\r\n };\r\n _proto._handleMultipleRequestActionError = function(operationInfo, context, errorInfo) {\r\n var itemInfo = context.getItemForMultipleRequestError(errorInfo.index);\r\n var errorText = this._getErrorText(errorInfo, itemInfo);\r\n context.processMultipleRequestError(errorInfo.index, errorText);\r\n var operationErrorInfo = this._getOperationErrorInfo(context);\r\n this._notificationControl.addOperationDetailsError(operationInfo, operationErrorInfo)\r\n };\r\n _proto._getOperationErrorInfo = function(context) {\r\n var detailError = context.errorState.currentDetailError;\r\n return {\r\n commonErrorText: context.errorState.commonErrorText,\r\n item: detailError.itemInfo ? this._getItemProgressDisplayInfo(detailError.itemInfo) : null,\r\n itemIndex: detailError.itemIndex,\r\n detailErrorText: detailError.errorText\r\n }\r\n };\r\n _proto._getErrorText = function(errorInfo, itemInfo, itemName) {\r\n itemName = itemName || (null === itemInfo || void 0 === itemInfo ? void 0 : itemInfo.fileItem.name);\r\n var errorText = errorInfo.errorText || _uiFile_manager3.FileManagerMessages.get(errorInfo.errorId, itemName);\r\n var errorArgs = {\r\n fileSystemItem: null === itemInfo || void 0 === itemInfo ? void 0 : itemInfo.fileItem,\r\n errorCode: errorInfo.errorId,\r\n errorText: errorText\r\n };\r\n this._raiseOnError(errorArgs);\r\n return errorArgs.errorText\r\n };\r\n _proto._getItemProgressDisplayInfo = function(itemInfo) {\r\n return {\r\n commonText: itemInfo.fileItem.name,\r\n imageUrl: this._getItemThumbnail(itemInfo)\r\n }\r\n };\r\n _proto._showDialog = function(dialog, dialogArgument) {\r\n this._dialogDeferred = new _deferred.Deferred;\r\n dialog.show(dialogArgument);\r\n return this._dialogDeferred.promise()\r\n };\r\n _proto._onDialogClosed = function(e) {\r\n var result = e.dialogResult;\r\n if (result) {\r\n this._dialogDeferred.resolve(result)\r\n } else {\r\n this._dialogDeferred.reject()\r\n }\r\n };\r\n _proto._getItemThumbnail = function(item) {\r\n var itemThumbnailGetter = this.option(\"getItemThumbnail\");\r\n if (!itemThumbnailGetter) {\r\n return null\r\n }\r\n var info = itemThumbnailGetter(item);\r\n return info ? info.thumbnail : null\r\n };\r\n _proto._initActions = function() {\r\n this._actions = {\r\n onSuccess: this._createActionByOption(\"onSuccess\"),\r\n onError: this._createActionByOption(\"onError\"),\r\n onCreating: this._createActionByOption(\"onCreating\")\r\n }\r\n };\r\n _proto._getDefaultOptions = function() {\r\n return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {\r\n model: {\r\n getMultipleSelectedItems: null\r\n },\r\n notificationControl: null,\r\n getItemThumbnail: null,\r\n onSuccess: null,\r\n onError: null,\r\n onCreating: null\r\n })\r\n };\r\n _proto._optionChanged = function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"model\":\r\n this.repaint();\r\n break;\r\n case \"notificationControl\":\r\n this._initNotificationControl(args.value);\r\n break;\r\n case \"getItemThumbnail\":\r\n break;\r\n case \"uploadDropZonePlaceholderContainer\":\r\n this._fileUploader.option(\"dropZonePlaceholderContainer\", args.value);\r\n break;\r\n case \"onSuccess\":\r\n case \"onError\":\r\n case \"onCreating\":\r\n this._actions[name] = this._createActionByOption(name);\r\n break;\r\n default:\r\n _Widget.prototype._optionChanged.call(this, args)\r\n }\r\n };\r\n _proto._raiseOnSuccess = function(updatedOnlyFiles) {\r\n this._actions.onSuccess({\r\n updatedOnlyFiles: updatedOnlyFiles\r\n })\r\n };\r\n _proto._raiseOnError = function(args) {\r\n this._actions.onError(args)\r\n };\r\n _proto._getCurrentDirectory = function() {\r\n return this._controller.getCurrentDirectory()\r\n };\r\n _createClass(FileManagerEditingControl, [{\r\n key: \"uploadDirectoryInfo\",\r\n get: function() {\r\n return this._uploadDirectoryInfo || this._getCurrentDirectory()\r\n }\r\n }]);\r\n return FileManagerEditingControl\r\n}(_ui.default);\r\nvar FileManagerActionContext = function() {\r\n function FileManagerActionContext(actionMetadata, itemInfos, directoryInfo) {\r\n this._actionMetadata = actionMetadata;\r\n this._itemInfos = itemInfos;\r\n this._onlyFiles = !this._actionMetadata.affectsAllItems && this._itemInfos.every(function(info) {\r\n return !info.fileItem.isDirectory\r\n });\r\n this._items = this._itemInfos.map(function(itemInfo) {\r\n return itemInfo.fileItem\r\n });\r\n this._multipleItems = this._items.length > 1;\r\n this._location = directoryInfo.getDisplayName();\r\n this._singleRequest = true;\r\n this._completedItems = [];\r\n this._commonProgress = 0;\r\n this._errorState = {\r\n failedCount: 0\r\n };\r\n this._itemNewName = \"\"\r\n }\r\n var _proto2 = FileManagerActionContext.prototype;\r\n _proto2.completeOperationItem = function(itemIndex) {\r\n if (this._singleRequest) {\r\n this._completedItems = _toConsumableArray(this._items)\r\n } else {\r\n var item = this._items[itemIndex];\r\n this._completedItems.push(item)\r\n }\r\n if (!this._actionMetadata.allowItemProgress) {\r\n this._commonProgress = this._completedItems.length / this._items.length * 100\r\n }\r\n };\r\n _proto2.processSingleRequestError = function(errorText) {\r\n this._errorState.failedCount = 1;\r\n this._errorState.commonErrorText = this._multipleItems ? this._actionMetadata.commonErrorMessage : this._actionMetadata.singleItemErrorMessage;\r\n var itemIndex = this._multipleItems ? -1 : 1;\r\n var itemInfo = this.getItemForSingleRequestError();\r\n this._setCurrentDetailError(itemIndex, itemInfo, errorText)\r\n };\r\n _proto2.processMultipleRequestError = function(itemIndex, errorText) {\r\n this._errorState.failedCount++;\r\n this._errorState.commonErrorText = this._errorState.failedCount > 1 ? (0, _string.format)(this._actionMetadata.multipleItemsErrorMessage, this._errorState.failedCount) : this._actionMetadata.singleItemErrorMessage;\r\n var itemInfo = this.getItemForMultipleRequestError(itemIndex);\r\n this._setCurrentDetailError(itemIndex, itemInfo, errorText)\r\n };\r\n _proto2.hasModifiedItems = function() {\r\n return this._hasCompletedItems() || this._singleRequest && !this.success && this._multipleItems\r\n };\r\n _proto2.getItemForSingleRequestError = function() {\r\n return this._multipleItems ? null : this._itemInfos[0]\r\n };\r\n _proto2.getItemForMultipleRequestError = function(itemIndex) {\r\n return this._itemInfos[itemIndex]\r\n };\r\n _proto2._setCurrentDetailError = function(itemIndex, itemInfo, errorText) {\r\n this._errorState.currentDetailError = {\r\n itemIndex: itemIndex,\r\n itemInfo: itemInfo,\r\n errorText: errorText\r\n }\r\n };\r\n _proto2._hasCompletedItems = function() {\r\n return this._completedItems.length > 0\r\n };\r\n _createClass(FileManagerActionContext, [{\r\n key: \"actionMetadata\",\r\n get: function() {\r\n return this._actionMetadata\r\n }\r\n }, {\r\n key: \"itemInfos\",\r\n get: function() {\r\n return this._itemInfos\r\n }\r\n }, {\r\n key: \"itemNewName\",\r\n get: function() {\r\n return this._itemNewName\r\n },\r\n set: function(value) {\r\n this._itemNewName = value\r\n }\r\n }, {\r\n key: \"errorState\",\r\n get: function() {\r\n return this._errorState\r\n }\r\n }, {\r\n key: \"singleRequest\",\r\n get: function() {\r\n return this._singleRequest\r\n },\r\n set: function(value) {\r\n this._singleRequest = value\r\n }\r\n }, {\r\n key: \"multipleItems\",\r\n get: function() {\r\n return this._multipleItems\r\n }\r\n }, {\r\n key: \"onlyFiles\",\r\n get: function() {\r\n return this._onlyFiles\r\n }\r\n }, {\r\n key: \"processingMessage\",\r\n get: function() {\r\n return this._multipleItems ? (0, _string.format)(this._actionMetadata.multipleItemsProcessingMessage, this._items.length, this._location) : (0, _string.format)(this._actionMetadata.singleItemProcessingMessage, this._location)\r\n }\r\n }, {\r\n key: \"successMessage\",\r\n get: function() {\r\n if (this._hasCompletedItems()) {\r\n return this._multipleItems ? (0, _string.format)(this._actionMetadata.multipleItemsSuccessMessage, this._completedItems.length, this._location) : (0, _string.format)(this._actionMetadata.singleItemSuccessMessage, this._location)\r\n } else {\r\n return this._multipleItems ? (0, _string.format)(this._actionMetadata.multipleItemsErrorMessage, this._items.length) : this._actionMetadata.singleItemErrorMessage\r\n }\r\n }\r\n }, {\r\n key: \"completionMessage\",\r\n get: function() {\r\n return this.success ? this.successMessage : this.errorState.commonErrorText\r\n }\r\n }, {\r\n key: \"statusText\",\r\n get: function() {\r\n return this.success && !this._hasCompletedItems() ? this._actionMetadata.canceledMessage : void 0\r\n }\r\n }, {\r\n key: \"commonProgress\",\r\n get: function() {\r\n return this._commonProgress\r\n }\r\n }, {\r\n key: \"success\",\r\n get: function() {\r\n return !this._errorState.failedCount\r\n }\r\n }]);\r\n return FileManagerActionContext\r\n}();\r\nvar _default = FileManagerEditingControl;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/*!\n * devextreme-vue\n * Version: 20.2.7\n * Build date: Thu Apr 22 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxToolbarItem = exports.DxShow = exports.DxPosition = exports.DxOffset = exports.DxMy = exports.DxHide = exports.DxCollision = exports.DxBoundaryOffset = exports.DxAt = exports.DxAnimation = exports.DxPopup = void 0;\nvar popup_1 = require(\"devextreme/ui/popup\");\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxPopup = index_1.createComponent({\n props: {\n accessKey: String,\n animation: Object,\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n deferRendering: Boolean,\n disabled: Boolean,\n dragEnabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n maxHeight: [Function, Number, String],\n maxWidth: [Function, Number, String],\n minHeight: [Function, Number, String],\n minWidth: [Function, Number, String],\n onContentReady: Function,\n onDisposing: Function,\n onHidden: Function,\n onHiding: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onResize: Function,\n onResizeEnd: Function,\n onResizeStart: Function,\n onShowing: Function,\n onShown: Function,\n onTitleRendered: Function,\n position: [Function, Object, String],\n resizeEnabled: Boolean,\n rtlEnabled: Boolean,\n shading: Boolean,\n shadingColor: String,\n showCloseButton: Boolean,\n showTitle: Boolean,\n tabIndex: Number,\n title: String,\n titleTemplate: {},\n toolbarItems: Array,\n visible: Boolean,\n width: [Function, Number, String]\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:animation\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragEnabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxHeight\": null,\n \"update:maxWidth\": null,\n \"update:minHeight\": null,\n \"update:minWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onHidden\": null,\n \"update:onHiding\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onResize\": null,\n \"update:onResizeEnd\": null,\n \"update:onResizeStart\": null,\n \"update:onShowing\": null,\n \"update:onShown\": null,\n \"update:onTitleRendered\": null,\n \"update:position\": null,\n \"update:resizeEnabled\": null,\n \"update:rtlEnabled\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showCloseButton\": null,\n \"update:showTitle\": null,\n \"update:tabIndex\": null,\n \"update:title\": null,\n \"update:titleTemplate\": null,\n \"update:toolbarItems\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = popup_1.default;\n this.$_expectedChildren = {\n animation: { isCollectionItem: false, optionName: \"animation\" },\n position: { isCollectionItem: false, optionName: \"position\" },\n toolbarItem: { isCollectionItem: true, optionName: \"toolbarItems\" }\n };\n }\n});\nexports.DxPopup = DxPopup;\nvar DxAnimation = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:hide\": null,\n \"update:show\": null,\n },\n props: {\n hide: Object,\n show: Object\n }\n});\nexports.DxAnimation = DxAnimation;\nDxAnimation.$_optionName = \"animation\";\nDxAnimation.$_expectedChildren = {\n hide: { isCollectionItem: false, optionName: \"hide\" },\n show: { isCollectionItem: false, optionName: \"show\" }\n};\nvar DxAt = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxAt = DxAt;\nDxAt.$_optionName = \"at\";\nvar DxBoundaryOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxBoundaryOffset = DxBoundaryOffset;\nDxBoundaryOffset.$_optionName = \"boundaryOffset\";\nvar DxCollision = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxCollision = DxCollision;\nDxCollision.$_optionName = \"collision\";\nvar DxHide = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: [Number, Object, String],\n staggerDelay: Number,\n start: Function,\n to: [Number, Object, String],\n type: String\n }\n});\nexports.DxHide = DxHide;\nDxHide.$_optionName = \"hide\";\nvar DxMy = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxMy = DxMy;\nDxMy.$_optionName = \"my\";\nvar DxOffset = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxOffset = DxOffset;\nDxOffset.$_optionName = \"offset\";\nvar DxPosition = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:at\": null,\n \"update:boundary\": null,\n \"update:boundaryOffset\": null,\n \"update:collision\": null,\n \"update:my\": null,\n \"update:of\": null,\n \"update:offset\": null,\n },\n props: {\n at: [Object, String],\n boundary: {},\n boundaryOffset: [Object, String],\n collision: [Object, String],\n my: [Object, String],\n of: {},\n offset: [Object, String]\n }\n});\nexports.DxPosition = DxPosition;\nDxPosition.$_optionName = \"position\";\nDxPosition.$_expectedChildren = {\n at: { isCollectionItem: false, optionName: \"at\" },\n boundaryOffset: { isCollectionItem: false, optionName: \"boundaryOffset\" },\n collision: { isCollectionItem: false, optionName: \"collision\" },\n my: { isCollectionItem: false, optionName: \"my\" },\n offset: { isCollectionItem: false, optionName: \"offset\" }\n};\nvar DxShow = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: [Number, Object, String],\n staggerDelay: Number,\n start: Function,\n to: [Number, Object, String],\n type: String\n }\n});\nexports.DxShow = DxShow;\nDxShow.$_optionName = \"show\";\nvar DxToolbarItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:location\": null,\n \"update:options\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:toolbar\": null,\n \"update:visible\": null,\n \"update:widget\": null,\n },\n props: {\n disabled: Boolean,\n html: String,\n location: String,\n options: Object,\n template: {},\n text: String,\n toolbar: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxToolbarItem = DxToolbarItem;\nDxToolbarItem.$_optionName = \"toolbarItems\";\nDxToolbarItem.$_isCollectionItem = true;\nexports.default = DxPopup;\n","/**\r\n * DevExtreme (ui/grid_core/ui.grid_core.virtual_scrolling.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _uiGrid_core = require(\"./ui.grid_core.virtual_scrolling_core\");\r\nvar _uiGrid_core2 = _interopRequireDefault(require(\"./ui.grid_core.utils\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _translator = require(\"../../animation/translator\");\r\nvar _load_indicator = _interopRequireDefault(require(\"../load_indicator\"));\r\nvar _browser = _interopRequireDefault(require(\"../../core/utils/browser\"));\r\nvar _position = require(\"../../core/utils/position\");\r\nvar _type = require(\"../../core/utils/type\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar TABLE_CLASS = \"table\";\r\nvar BOTTOM_LOAD_PANEL_CLASS = \"bottom-load-panel\";\r\nvar TABLE_CONTENT_CLASS = \"table-content\";\r\nvar GROUP_SPACE_CLASS = \"group-space\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar FREESPACE_CLASS = \"dx-freespace-row\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar VIRTUAL_ROW_CLASS = \"dx-virtual-row\";\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar SCROLLING_MODE_STANDARD = \"standard\";\r\nvar PIXELS_LIMIT = 25e4;\r\nvar LOAD_TIMEOUT = 300;\r\nvar isVirtualMode = function(that) {\r\n return that.option(\"scrolling.mode\") === SCROLLING_MODE_VIRTUAL\r\n};\r\nvar isAppendMode = function(that) {\r\n return that.option(\"scrolling.mode\") === SCROLLING_MODE_INFINITE\r\n};\r\nvar isVirtualRowRendering = function(that) {\r\n var rowRenderingMode = that.option(\"scrolling.rowRenderingMode\");\r\n if (rowRenderingMode === SCROLLING_MODE_VIRTUAL) {\r\n return true\r\n } else {\r\n if (rowRenderingMode === SCROLLING_MODE_STANDARD) {\r\n return false\r\n }\r\n }\r\n};\r\nvar _correctCount = function(items, count, fromEnd, isItemCountableFunc) {\r\n for (var i = 0; i < count + 1; i++) {\r\n var item = items[fromEnd ? items.length - 1 - i : i];\r\n if (item && !isItemCountableFunc(item, i === count, fromEnd)) {\r\n count++\r\n }\r\n }\r\n return count\r\n};\r\nvar isItemCountableByDataSource = function(item, dataSource) {\r\n return \"data\" === item.rowType && !item.isNewRow || \"group\" === item.rowType && dataSource.isGroupItemCountable(item.data)\r\n};\r\nvar VirtualScrollingDataSourceAdapterExtender = function() {\r\n var _updateLoading = function(that) {\r\n var beginPageIndex = that._virtualScrollController.beginPageIndex(-1);\r\n if (isVirtualMode(that)) {\r\n if (beginPageIndex < 0 || that.viewportSize() >= 0 && that.getViewportItemIndex() >= 0 && (beginPageIndex * that.pageSize() > that.getViewportItemIndex() || beginPageIndex * that.pageSize() + that.itemsCount() < that.getViewportItemIndex() + that.viewportSize()) && that._dataSource.isLoading()) {\r\n if (!that._isLoading) {\r\n that._isLoading = true;\r\n that.loadingChanged.fire(true)\r\n }\r\n } else {\r\n if (that._isLoading) {\r\n that._isLoading = false;\r\n that.loadingChanged.fire(false)\r\n }\r\n }\r\n }\r\n };\r\n var result = {\r\n init: function(dataSource) {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n that._items = [];\r\n that._isLoaded = true;\r\n that._virtualScrollController = new _uiGrid_core.VirtualScrollController(that.component, {\r\n pageSize: function() {\r\n return that.pageSize()\r\n },\r\n totalItemsCount: function() {\r\n return that.totalItemsCount()\r\n },\r\n hasKnownLastPage: function() {\r\n return that.hasKnownLastPage()\r\n },\r\n pageIndex: function(index) {\r\n return dataSource.pageIndex(index)\r\n },\r\n isLoading: function() {\r\n return dataSource.isLoading() && !that.isCustomLoading()\r\n },\r\n pageCount: function() {\r\n return that.pageCount()\r\n },\r\n load: function() {\r\n return dataSource.load()\r\n },\r\n updateLoading: function() {\r\n _updateLoading(that)\r\n },\r\n itemsCount: function() {\r\n return that.itemsCount(true)\r\n },\r\n items: function() {\r\n return dataSource.items()\r\n },\r\n viewportItems: function(items) {\r\n if (items) {\r\n that._items = items\r\n }\r\n return that._items\r\n },\r\n onChanged: function(e) {\r\n that.changed.fire(e)\r\n },\r\n changingDuration: function(e) {\r\n if (that.isLoading()) {\r\n return LOAD_TIMEOUT\r\n }\r\n return that._renderTime || 0\r\n }\r\n })\r\n },\r\n _handleLoadingChanged: function(isLoading) {\r\n if (!isVirtualMode(this) || this._isLoadingAll) {\r\n this._isLoading = isLoading;\r\n this.callBase.apply(this, arguments)\r\n }\r\n if (isLoading) {\r\n this._startLoadTime = new Date\r\n } else {\r\n this._startLoadTime = void 0\r\n }\r\n },\r\n _handleLoadError: function() {\r\n var that = this;\r\n that._isLoading = false;\r\n that.loadingChanged.fire(false);\r\n that.callBase.apply(that, arguments)\r\n },\r\n _handleDataChanged: function(e) {\r\n var callBase = this.callBase.bind(this);\r\n this._virtualScrollController.handleDataChanged(callBase, e)\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n var that = this;\r\n if (!that.option(\"legacyRendering\") && isVirtualMode(that) && !operationTypes.reload && operationTypes.skip && that._renderTime < that.option(\"scrolling.renderingThreshold\")) {\r\n options.delay = void 0\r\n }\r\n that.callBase.apply(that, arguments)\r\n },\r\n items: function() {\r\n return this._items\r\n },\r\n itemsCount: function(isBase) {\r\n if (isBase) {\r\n return this.callBase()\r\n }\r\n return this._virtualScrollController.itemsCount()\r\n },\r\n load: function(loadOptions) {\r\n if (loadOptions) {\r\n return this.callBase(loadOptions)\r\n }\r\n return this._virtualScrollController.load()\r\n },\r\n isLoading: function() {\r\n return this._isLoading\r\n },\r\n isLoaded: function() {\r\n return this._dataSource.isLoaded() && this._isLoaded\r\n },\r\n resetPagesCache: function(isLiveUpdate) {\r\n if (!isLiveUpdate) {\r\n this._virtualScrollController.reset(true)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _changeRowExpandCore: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n this.resetPagesCache();\r\n _updateLoading(this);\r\n return result\r\n },\r\n reload: function() {\r\n this._dataSource.pageIndex(this.pageIndex());\r\n var virtualScrollController = this._virtualScrollController;\r\n if (virtualScrollController) {\r\n var d = new _deferred.Deferred;\r\n this.callBase.apply(this, arguments).done(function(r) {\r\n var delayDeferred = virtualScrollController._delayDeferred;\r\n if (delayDeferred) {\r\n delayDeferred.done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve(r)\r\n }\r\n }).fail(d.reject);\r\n return d\r\n } else {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n },\r\n refresh: function(options, operationTypes) {\r\n var that = this;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var dataSource = that._dataSource;\r\n if (operationTypes.reload) {\r\n that._virtualScrollController.reset();\r\n dataSource.items().length = 0;\r\n that._isLoaded = false;\r\n _updateLoading(that);\r\n that._isLoaded = true;\r\n if (isAppendMode(that)) {\r\n that.pageIndex(0);\r\n dataSource.pageIndex(0);\r\n storeLoadOptions.pageIndex = 0;\r\n options.pageIndex = 0;\r\n storeLoadOptions.skip = 0\r\n } else {\r\n dataSource.pageIndex(that.pageIndex());\r\n if (dataSource.paginate()) {\r\n options.pageIndex = that.pageIndex();\r\n storeLoadOptions.skip = that.pageIndex() * that.pageSize()\r\n }\r\n }\r\n } else {\r\n if (isAppendMode(that) && storeLoadOptions.skip && that._skipCorrection < 0) {\r\n storeLoadOptions.skip += that._skipCorrection\r\n }\r\n }\r\n return that.callBase.apply(that, arguments)\r\n },\r\n dispose: function() {\r\n this._virtualScrollController.dispose();\r\n this.callBase.apply(this, arguments)\r\n }\r\n };\r\n [\"virtualItemsCount\", \"getContentOffset\", \"getVirtualContentSize\", \"setContentSize\", \"setViewportPosition\", \"getViewportItemIndex\", \"setViewportItemIndex\", \"getItemIndexByPosition\", \"viewportSize\", \"viewportItemSize\", \"getItemSize\", \"getItemSizes\", \"pageIndex\", \"beginPageIndex\", \"endPageIndex\", \"loadIfNeed\"].forEach(function(name) {\r\n result[name] = function() {\r\n var virtualScrollController = this._virtualScrollController;\r\n return virtualScrollController[name].apply(virtualScrollController, arguments)\r\n }\r\n });\r\n return result\r\n}();\r\nvar VirtualScrollingRowsViewExtender = function() {\r\n var removeEmptyRows = function($emptyRows, className) {\r\n var getRowParent = function(row) {\r\n return (0, _renderer.default)(row).parent(\".\" + className).get(0)\r\n };\r\n var tBodies = $emptyRows.toArray().map(getRowParent).filter(function(row) {\r\n return row\r\n });\r\n if (tBodies.length) {\r\n $emptyRows = (0, _renderer.default)(tBodies)\r\n }\r\n var rowCount = className === FREESPACE_CLASS ? $emptyRows.length - 1 : $emptyRows.length;\r\n for (var i = 0; i < rowCount; i++) {\r\n $emptyRows.eq(i).remove()\r\n }\r\n };\r\n return {\r\n init: function() {\r\n var _dataController$state, _this = this;\r\n var dataController = this.getController(\"data\");\r\n this.callBase();\r\n dataController.pageChanged.add(function() {\r\n _this.scrollToPage(dataController.pageIndex())\r\n });\r\n dataController.dataSourceChanged.add(function() {\r\n !_this._scrollTop && _this._scrollToCurrentPageOnResize()\r\n });\r\n null === (_dataController$state = dataController.stateLoaded) || void 0 === _dataController$state ? void 0 : _dataController$state.add(function() {\r\n _this._scrollToCurrentPageOnResize()\r\n });\r\n this._scrollToCurrentPageOnResize()\r\n },\r\n _scrollToCurrentPageOnResize: function() {\r\n var _this2 = this;\r\n var dataController = this.getController(\"data\");\r\n if (!this.option(\"legacyRendering\") && dataController.pageIndex() > 0) {\r\n var resizeHandler = function resizeHandler() {\r\n _this2.resizeCompleted.remove(resizeHandler);\r\n _this2.scrollToPage(dataController.pageIndex())\r\n };\r\n this.resizeCompleted.add(resizeHandler)\r\n }\r\n },\r\n scrollToPage: function(pageIndex) {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var pageSize = dataController ? dataController.pageSize() : 0;\r\n var scrollPosition;\r\n if (isVirtualMode(that) || isAppendMode(that)) {\r\n var itemSize = dataController.getItemSize();\r\n var itemSizes = dataController.getItemSizes();\r\n var itemIndex = pageIndex * pageSize;\r\n scrollPosition = itemIndex * itemSize;\r\n for (var index in itemSizes) {\r\n if (index < itemIndex) {\r\n scrollPosition += itemSizes[index] - itemSize\r\n }\r\n }\r\n } else {\r\n scrollPosition = 0\r\n }\r\n that.scrollTo({\r\n y: scrollPosition,\r\n x: that._scrollLeft\r\n })\r\n },\r\n renderDelayedTemplates: function(e) {\r\n this._updateContentPosition(true);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _renderCore: function(e) {\r\n var that = this;\r\n var startRenderTime = new Date;\r\n that.callBase.apply(that, arguments);\r\n var dataSource = that._dataController._dataSource;\r\n if (dataSource && e) {\r\n var itemCount = e.items ? e.items.length : 20;\r\n var viewportSize = that._dataController.viewportSize() || 20;\r\n if (isVirtualRowRendering(that)) {\r\n dataSource._renderTime = (new Date - startRenderTime) * viewportSize / itemCount\r\n } else {\r\n dataSource._renderTime = new Date - startRenderTime\r\n }\r\n }\r\n },\r\n _getRowElements: function(tableElement) {\r\n var $rows = this.callBase(tableElement);\r\n return $rows && $rows.not(\".\" + VIRTUAL_ROW_CLASS)\r\n },\r\n _renderContent: function(contentElement, tableElement) {\r\n var that = this;\r\n var virtualItemsCount = that._dataController.virtualItemsCount();\r\n if (virtualItemsCount && that.option(\"legacyRendering\")) {\r\n if ((0, _window.hasWindow)()) {\r\n tableElement.addClass(that.addWidgetPrefix(TABLE_CONTENT_CLASS))\r\n }\r\n if (!contentElement.children().length) {\r\n contentElement.append(tableElement)\r\n } else {\r\n contentElement.children().first().replaceWith(tableElement)\r\n }\r\n if (1 === contentElement.children(\"table\").length) {\r\n contentElement.append(that._createTable());\r\n that._contentHeight = 0\r\n }\r\n return contentElement\r\n }\r\n return that.callBase.apply(that, arguments)\r\n },\r\n _removeRowsElements: function(contentTable, removeCount, changeType) {\r\n var rowElements = this._getRowElements(contentTable).toArray();\r\n if (\"append\" === changeType) {\r\n rowElements = rowElements.slice(0, removeCount)\r\n } else {\r\n rowElements = rowElements.slice(-removeCount)\r\n }\r\n var errorHandlingController = this.getController(\"errorHandling\");\r\n rowElements.map(function(rowElement) {\r\n var $rowElement = (0, _renderer.default)(rowElement);\r\n errorHandlingController && errorHandlingController.removeErrorRow($rowElement.next());\r\n $rowElement.remove()\r\n })\r\n },\r\n _restoreErrorRow: function(contentTable) {\r\n var editingController = this.getController(\"editing\");\r\n editingController && editingController.hasChanges() && this._getRowElements(contentTable).each(function(_, item) {\r\n var rowOptions = (0, _renderer.default)(item).data(\"options\");\r\n if (rowOptions) {\r\n var change = editingController.getChangeByKey(rowOptions.key);\r\n change && editingController._showErrorRow(change)\r\n }\r\n })\r\n },\r\n _updateContent: function(tableElement, change) {\r\n var that = this;\r\n var $freeSpaceRowElements;\r\n var contentElement = that._findContentElement();\r\n var changeType = change && change.changeType;\r\n if (\"append\" === changeType || \"prepend\" === changeType) {\r\n var contentTable = contentElement.children().first();\r\n var $tBodies = that._getBodies(tableElement);\r\n if (!that.option(\"legacyRendering\") && 1 === $tBodies.length) {\r\n that._getBodies(contentTable)[\"append\" === changeType ? \"append\" : \"prepend\"]($tBodies.children())\r\n } else {\r\n $tBodies[\"append\" === changeType ? \"appendTo\" : \"prependTo\"](contentTable)\r\n }\r\n tableElement.remove();\r\n $freeSpaceRowElements = that._getFreeSpaceRowElements(contentTable);\r\n removeEmptyRows($freeSpaceRowElements, FREESPACE_CLASS);\r\n if (change.removeCount) {\r\n that._removeRowsElements(contentTable, change.removeCount, changeType)\r\n }\r\n that._restoreErrorRow(contentTable)\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n that._updateBottomLoading()\r\n },\r\n _addVirtualRow: function($table, isFixed, location, position) {\r\n if (!position) {\r\n return\r\n }\r\n var $virtualRow = this._createEmptyRow(VIRTUAL_ROW_CLASS, isFixed, position);\r\n $virtualRow = this._wrapRowIfNeed($table, $virtualRow);\r\n this._appendEmptyRow($table, $virtualRow, location)\r\n },\r\n _getRowHeights: function() {\r\n var rowHeights = this._getRowElements(this._tableElement).toArray().map(function(row) {\r\n return (0, _position.getBoundingRect)(row).height\r\n });\r\n return rowHeights\r\n },\r\n _correctRowHeights: function(rowHeights) {\r\n var dataController = this._dataController;\r\n var dataSource = dataController._dataSource;\r\n var correctedRowHeights = [];\r\n var visibleRows = dataController.getVisibleRows();\r\n var itemSize = 0;\r\n var firstCountableItem = true;\r\n for (var i = 0; i < rowHeights.length; i++) {\r\n var currentItem = visibleRows[i];\r\n if (!(0, _type.isDefined)(currentItem)) {\r\n continue\r\n }\r\n if (isItemCountableByDataSource(currentItem, dataSource)) {\r\n if (firstCountableItem) {\r\n firstCountableItem = false\r\n } else {\r\n correctedRowHeights.push(itemSize);\r\n itemSize = 0\r\n }\r\n }\r\n itemSize += rowHeights[i]\r\n }\r\n itemSize > 0 && correctedRowHeights.push(itemSize);\r\n return correctedRowHeights\r\n },\r\n _updateContentPosition: function(isRender) {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var rowHeight = that._rowHeight || 20;\r\n dataController.viewportItemSize(rowHeight);\r\n if (!that.option(\"legacyRendering\") && (isVirtualMode(that) || isVirtualRowRendering(that))) {\r\n if (!isRender) {\r\n var rowHeights = that._getRowHeights();\r\n var correctedRowHeights = that._correctRowHeights(rowHeights);\r\n dataController.setContentSize(correctedRowHeights)\r\n }\r\n var top = dataController.getContentOffset(\"begin\");\r\n var bottom = dataController.getContentOffset(\"end\");\r\n var $tables = that.getTableElements();\r\n var $virtualRows = $tables.children(\"tbody\").children(\".\" + VIRTUAL_ROW_CLASS);\r\n removeEmptyRows($virtualRows, VIRTUAL_ROW_CLASS);\r\n $tables.each(function(index) {\r\n var isFixed = index > 0;\r\n that._isFixedTableRendering = isFixed;\r\n that._addVirtualRow((0, _renderer.default)(this), isFixed, \"top\", top);\r\n that._addVirtualRow((0, _renderer.default)(this), isFixed, \"bottom\", bottom);\r\n that._isFixedTableRendering = false\r\n })\r\n } else {\r\n (0, _common.deferUpdate)(function() {\r\n that._updateContentPositionCore()\r\n })\r\n }\r\n },\r\n _updateContentPositionCore: function() {\r\n var that = this;\r\n var contentHeight;\r\n var $tables;\r\n var $contentTable;\r\n var rowHeight = that._rowHeight || 20;\r\n var virtualItemsCount = that._dataController.virtualItemsCount();\r\n if (virtualItemsCount) {\r\n var contentElement = that._findContentElement();\r\n $tables = contentElement.children();\r\n $contentTable = $tables.eq(0);\r\n var virtualTable = $tables.eq(1);\r\n that._contentTableHeight = $contentTable[0].offsetHeight;\r\n that._dataController.viewportItemSize(rowHeight);\r\n that._dataController.setContentSize(that._contentTableHeight);\r\n contentHeight = that._dataController.getVirtualContentSize();\r\n var top = that._dataController.getContentOffset();\r\n (0, _common.deferRender)(function() {\r\n (0, _translator.move)($contentTable, {\r\n left: 0,\r\n top: top\r\n });\r\n var isRenderVirtualTableContentRequired = that._contentHeight !== contentHeight || 0 === contentHeight || !that._isTableLinesDisplaysCorrect(virtualTable) || !that._isColumnElementsEqual($contentTable.find(\"col\"), virtualTable.find(\"col\"));\r\n if (isRenderVirtualTableContentRequired) {\r\n that._contentHeight = contentHeight;\r\n that._renderVirtualTableContent(virtualTable, contentHeight)\r\n }\r\n })\r\n }\r\n },\r\n _isTableLinesDisplaysCorrect: function(table) {\r\n var hasColumnLines = table.find(\".\" + COLUMN_LINES_CLASS).length > 0;\r\n return hasColumnLines === this.option(\"showColumnLines\")\r\n },\r\n _isColumnElementsEqual: function($columns, $virtualColumns) {\r\n var result = $columns.length === $virtualColumns.length;\r\n if (result) {\r\n (0, _iterator.each)($columns, function(index, element) {\r\n if (element.style.width !== $virtualColumns[index].style.width) {\r\n result = false;\r\n return result\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _renderVirtualTableContent: function(container, height) {\r\n var that = this;\r\n var columns = that._columnsController.getVisibleColumns();\r\n var html = that._createColGroup(columns).prop(\"outerHTML\");\r\n var freeSpaceCellsHtml = \"\";\r\n var columnLinesClass = that.option(\"showColumnLines\") ? COLUMN_LINES_CLASS : \"\";\r\n var createFreeSpaceRowHtml = function(height) {\r\n return \"