{"version":3,"sources":["webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.files_tree_view.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.file_actions_button.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.item_list.js","webpack:///./node_modules/devextreme/ui/editor/editor.js","webpack:///./node_modules/devextreme/ui/filter_builder/between.js","webpack:///./node_modules/devextreme/ui/filter_builder/ui.filter_operations_dictionary.js","webpack:///./node_modules/devextreme/ui/filter_builder/filter_builder.js","webpack:///./node_modules/devextreme/ui/file_manager.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.js","webpack:///./node_modules/devextreme/ui/file_manager/file_items_controller.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.command_manager.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.context_menu.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.item_list.details.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.item_list.thumbnails.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.items_list.thumbnails.list_box.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.toolbar.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.notification.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.notification.progress_panel.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.editing.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.dialog_manager.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.dialog.folder_chooser.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.dialog.delete_item.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.file_uploader.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.messages.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.breadcrumbs.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.adaptivity.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.common.js","webpack:///./node_modules/devextreme/ui/filter_builder/utils.js","webpack:///./node_modules/devextreme/ui/editor/ui.data_expression.js","webpack:///./node_modules/devextreme/ui/file_uploader.js","webpack:///./node_modules/devextreme/ui/file_manager/ui.file_manager.dialog.js","webpack:///./node_modules/devextreme/ui/filter_builder.js"],"names":["exports","default","_renderer","_interopRequireDefault","_events_engine","_extend","_icon","_common","_ui","_uiTree_view","_uiFile_manager","_deferred","_window","_type","obj","__esModule","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_default","_Widget","subClass","superClass","FileManagerFilesTreeView","apply","this","arguments","prototype","create","constructor","Constructor","protoProps","staticProps","_proto","_initMarkup","_this","_initActions","_getCurrentDirectory","option","_createFileActionsButton","noop","_storeExpandedState","$treeView","addClass","appendTo","$element","treeViewOptions","dataStructure","rootValue","createChildren","_onFilesTreeViewCreateSubDirectories","bind","itemTemplate","_createFilesTreeViewItemTemplate","keyExpr","parentIdExpr","displayExpr","itemInfo","getDisplayName","hasItemsExpr","onItemClick","e","_actions","onDirectoryClick","onItemExpanded","_onFilesTreeViewItemExpanded","onItemCollapsed","_onFilesTreeViewItemCollapsed","onItemRendered","_onFilesTreeViewItemRendered","onContentReady","onFilesTreeViewContentReady","_contextMenu","_onContextMenuHidden","onItemContextMenu","_onFilesTreeViewItemContextMenu","element","options","_createComponent","_filesTreeView","on","onClick","_createActionByOption","_render","call","that","setTimeout","_updateFocusedElement","rootItem","getDirectories","directoryInfo","itemData","_ref","currentDirectory","fileItem","equals","_restoreScrollTopPosition","_ref2","expanded","_ref3","itemIndex","itemElement","_this2","$itemElement","closest","_filesTreeViewItemSelector","data","$image","getImageContainer","icon","$text","text","$button","append","_onFileItemActionButtonClick","_ref4","event","preventDefault","showAt","_ref5","component","stopPropagation","item","_activeFileActionsButton","setActive","toggleNodeDisabledState","state","node","_getNodeByKey","map","getInternalKey","indexOf","concat","_saveScrollTopPosition","hasWindow","_scrollTopPosition","_scrollableContainer","scrollTop","_this3","isNumeric","scrollTo","_getItemElementByKey","_$focusedElement","toggleClass","_this$_filesTreeView","_getNode","$node","_getNodeElement","children","_getDefaultOptions","extend","storeExpandedState","initialFolder","contextMenu","getItems","getCurrentDirectory","_optionChanged","args","name","repaint","toggleDirectoryExpandedState","deferred","Deferred","treeViewNode","reject","promise","itemsLoaded","hasSubDirectories","resolve","action","refresh","updateCurrentDirectory","_disposed","_updateExpandedStateToCurrentDirectory","toggleDirectoryExpandedStateRecursive","dirLine","dirInfo","parentDirectory","unshift","toggleDirectoryLineExpandedState","_this4","shift","then","get","module","_button","FileManagerFileActionsButton","_createClickAction","stylingMode","_raiseClick","_clickAction","cssClass","active","_double_click","_index","_devices","_custom_store","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","Symbol","iterator","from","_iterableToArray","minLen","n","toString","slice","test","_unsupportedIterableToArray","TypeError","_nonIterableSpread","len","arr2","FileManagerItemListBase","_init","_lockFocusedItemProcessing","_focusedItemKey","dblClickEventName","addNamespace","_getItemSelector","_onItemDblClick","onError","onSelectionChanged","onFocusedItemChanged","onSelectedItemOpened","onContextMenuShowing","selectionMode","selectedItemKeys","focusedItemKey","getItemThumbnail","_setSelectedItemKeys","value","_setFocusedItemKey","_getItems","_getItemsInternal","done","itemInfos","_itemCount","parentDirectoryItem","_findParentDirectoryItem","_hasParentDirectoryItem","_parentDirectoryItemKey","itemsGetter","itemsResult","when","_raiseOnError","error","_raiseSelectionChanged","_raiseFocusedItemChanged","_raiseSelectedItemOpened","fileItemInfo","_raiseContextMenuShowing","_tryRaiseSelectionChanged","selectedItemInfos","selectedItems","currentSelectedItemKeys","currentDeselectedItemKeys","getSelectedItems","_deselectItem","raiseEvent","_hasValidKeys","_filterOutItemByPredicate","_filterOutParentDirectory","_filterOutParentDirectoryKey","_onFocusedItemChanged","itemKey","_getItemThumbnail","fileInfo","itemThumbnailGetter","thumbnail","_getItemThumbnailContainer","_this$_getItemThumbna","$itemThumbnail","_getItemThumbnailCssClass","_isDesktop","real","deviceType","_showContextMenu","items","offset","targetFileItem","_isParentDirectoryItem","_getFileItemsForContextMenu","result","push","isParentFolder","keys","array","createNewArray","predicate","index","splice","_isMultipleSelectionMode","itemKeys","_createDataSource","store","load","clearSelection","selectItem","_element_data","_callbacks","_validation_engine","_validation_message","_guid","VALIDATION_MESSAGE_KEYS_MAP","validationMessageMode","validationMessageOffset","validationBoundary","inherit","ctor","showValidationMessageTimeout","validationRequest","callBase","_createElement","_initOptions","initValidationOptions","_options","cache","onValueChanged","readOnly","isValid","validationError","validationErrors","validationStatus","h","v","validationTooltipOptions","_attachKeyboardEvents","_setOptionsByReference","_optionsByReference","_createValueChangeAction","_valueChangeAction","excludeValidators","_suppressValueChangeAction","_valueChangeActionSuppressed","_resumeValueChangeAction","_toggleReadOnlyState","_setSubmitElementName","_renderValidationState","_raiseValueChangeAction","previousValue","_valueChangeArgs","_valueChangeEventInstance","_saveValueChangeEvent","_focusInHandler","isValidationMessageShownOnFocus","_canValueBeChangedByClick","_this$_validationMess","$validationMessageWrapper","_validationMessage","_wrapper","removeClass","clearTimeout","_getValidationErrors","_disposeValidationMessage","_$validationMessage","remove","setAria","_toggleValidationClasses","isInvalid","_this$option","rtlEnabled","_getValidationMessageTarget","container","mode","positionRequest","boundary","describedElement","_focusTarget","_bindInnerWidgetOptions","_toggleBackspaceHandler","isReadOnly","$eventTarget","_keyboardEventBindingTarget","eventName","off","normalizeKeyName","_dispose","$submitElement","_getSubmitElement","attr","removeAttr","_setValidationMessageOption","_this$_validationMess2","optionKey","_this$_validationMess3","_refreshFocusState","fire","editor","updateMaxWidth","synchronizeValidationOptions","_innerWidgetOptionChanged","reset","defaultOptions","getConfig","caption","context","valueSeparator","dataTypes","editorTemplate","notForLookup","conditionInfo","$editorStart","FILTER_BUILDER_RANGE_CLASS","$editorEnd","values","getStartValue","getEndValue","_editorFactory","createEditor","field","parentType","setValue","OPERATION_ICONS","notcontains","contains","startswith","endswith","isblank","isnotblank","OPERATION_NAME","between","getIconByFilterOperation","filterOperation","getNameByFilterOperation","_dom_adapter","_class","_component_registrator","_message","_tree_view","_popup","_utils","_ui2","_utils2","ACTIONS","config","category","OPERATORS","and","or","notAnd","notOr","EditorFactory","FilterBuilder","onEditorPreparing","onEditorPrepared","fields","defaultGroupOperation","groupOperations","maxGroupLevel","allowHierarchicalFields","groupOperationDescriptions","format","customOperations","closePopupOnTargetScroll","filterOperationDescriptions","equal","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","startsWith","notContains","endsWith","isBlank","isNotBlank","_initCustomOperations","_invalidate","disableInvalidateForValue","_disableInvalidateForValue","_initModel","executeAction","getFilterExpression","_getNormalizedFields","_model","getNormalizedFilter","_customOperations","getNormalizedFields","_updateFilter","normalizedValue","oldValue","_getModel","JSON","stringify","_fireContentReadyAction","_initEditorFactory","getMergedOperations","convertToInnerStructure","forEach","actionConfig","actionName","_createGroupElementByCriteria","_createConditionElement","condition","parent","FILTER_BUILDER_CLASS","_createConditionItem","criteria","groupLevel","$group","_createGroupElement","$groupContent","find","groupCriteria","getGroupCriteria","innerCriteria","isGroup","isCondition","$groupItem","FILTER_BUILDER_GROUP_CLASS","_createRemoveButton","removeItem","_createGroupOperationButton","_createAddButton","newGroup","createEmptyGroup","addItem","newCondition","createCondition","_createButton","_getGroupOperations","groupMenuItem","getGroupMenuItem","$operationButton","_createButtonWithMenu","menu","setGroupValue","html","handler","removeMenu","position","focusStateEnabled","type","onHiding","my","at","of","collision","animation","onHidden","FILTER_BUILDER_OVERLAY_CLASS","popup","onShown","info","treeViewElement","content","treeView","dxTreeView","keyName","hide","trigger","focus","_subscribeOnClickAndEnterKey","_createPopupWithTreeView","_hasValueButton","customOperation","getCustomOperation","hasValue","_createOperationButtonWithMenu","availableOperations","getAvailableOperations","currentOperation","getOperationFromAvailable","getOperationValue","isCustom","updateConditionByOperation","$valueButton","siblings","filter","_createValueButton","_createOperationAndValueButtons","$item","_createFieldButtonWithMenu","getField","dataField","getFullCaption","getCaptionWithParents","$fieldButton","parentId","dataType","getDefaultOperation","_this5","getGroupValue","replace","operation","$removeButton","FILTER_BUILDER_ACTION_CLASS","addGroupHandler","addConditionHandler","isDefined","click","_createValueText","$container","lookup","getCurrentLookupValueText","renderValueText","getCurrentValueText","_createValueEditorWithEvents","_updateConditionValue","callback","_addDocumentKeyUp","$editor","isComposing","hasCompositionJustEnded","document","getDocument","documentKeyUpHandler","input","which","_documentKeyUpHandler","_addDocumentClick","closeEditorFunc","_this6","documentClickHandler","_isFocusOnEditorParts","_documentClickHandler","activeElement","getActiveElement","_removeEvents","_this7","createValueText","empty","closeEditor","_createValueEditor","not","eq","shiftKey","prev","_getTemplate","render","model","$popup","contentTemplate","contentElement","$menuContainer","maxHeight","getElementMaxHeightByWindow","visible","closeOnTargetScroll","closeOnOutsideClick","shading","width","height","showTitle","_notify","_file_items_controller","_uiFile_manager2","_uiFile_manager3","_uiFile_manager4","_uiFile_managerItem_list","_uiFile_managerItem_list2","_uiFile_manager5","_uiFile_manager6","_uiFile_manager7","_uiFile_manager8","_uiFile_manager9","VIEW_AREAS","FileManager","_initTemplates","_firstItemViewLoad","_lockSelectionProcessing","_itemKeyToFocus","_controller","currentPath","currentPathKeys","rootText","fileProvider","allowedFileExtensions","uploadMaxFileSize","maxFileSize","uploadChunkSize","chunkSize","onInitialized","_onControllerInitialized","onDataLoading","_onDataLoading","onSelectedDirectoryChanged","_onSelectedDirectoryChanged","_commandManager","FileManagerCommandManager","_createNotificationControl","_initCommandManager","_setItemsViewAreaActive","$notificationControl","_notificationControl","progressPanelContainer","notificationControl","_createWrapper","onActionProgress","_onActionProgress","positionTarget","FILE_MANAGER_CLASS","_$wrapper","_createEditing","$toolbar","_toolbar","commandManager","generalItems","fileItems","itemViewMode","onToolbarItemClick","_createAdaptivityControl","_adaptivityControl","drawerTemplate","_createFilesTreeView","_createItemsPanel","onAdaptiveStateChanged","_onAdaptiveStateChanged","$editingContainer","_editing","controller","getMultipleSelectedItems","_getMultipleSelectedItems","_getItemThumbnailInfo","uploadDropZonePlaceholderContainer","onSuccess","updatedOnlyFiles","_redrawComponent","onCreating","_onEditingError","_$itemsPanel","_createBreadcrumbs","_createItemView","isCommandAvailable","setUploaderDropZone","_filesTreeViewContextMenu","_createContextMenu","$filesTreeView","_onFilesTreeViewDirectoryClick","viewMode","_itemViewContextMenu","itemViewOptions","_getItemViewItems","_showError","_onItemViewSelectionChanged","_onItemViewFocusedItemChanged","_onSelectedItemOpened","_onContextMenuShowing","customizeDetailColumns","detailColumns","$itemView","widgetClass","_itemView","_onItemViewClick","$breadcrumbs","_breadcrumbs","rootFolderDisplayName","onCurrentDirectoryChanging","_setCurrentDirectory","setCurrentDirectory","isolateCreationItemCommands","viewArea","_this8","$contextMenu","onContextMenuItemClick","_this9","actions","getCommandActions","_refreshAndShowProgress","thumbnails","details","_clearSelection","showNavPane","toggleDrawer","registerActions","_updateToolbar","_ref6","enabled","setCommandEnabled","_ref7","message","status","updateRefreshItem","extendAttributes","onErrorOccurred","errorText","_this10","tryShowProgressPanel","_getSelectedItemInfos","update","_itemsViewAreaActive","$activeArea","$inactiveArea","_switchView","_disposeWidget","widget","dispose","_showNotification","isSuccess","onlyFileItemsView","_this11","_this12","showFolders","getCurrentItems","_updateToolbarWithSelectionOnFirstLoad","_getPreparedItemViewItems","_this13","findItemsByKeys","selectedDir","isRoot","parentDirItem","createClone","relativeName","itemsCopy","func","isFunction","fileSystemProvider","rootFolderName","toolbar","location","fileSelectionItems","itemView","columns","showParentFolder","customizeThumbnail","onCurrentDirectoryChanged","onSelectedFileOpened","upload","permissions","copy","move","rename","download","setCurrentPath","setCurrentPathByKeys","fullName","toolbarOptions","contextMenuItems","executeCommand","commandName","checkActuality","_ref8","_syncToCurrentDirectory","_ref9","directory","getCurrentPath","pathKeys","equalByValue","parentDirectoryInfo","skipNavigationOnError","_ref10","isDirectory","newCurrentDirectory","file","_provider_base","_file_system_item","_object_provider","_remote_provider","_custom_provider","_errors","_array","FileItemsController","_isInitialized","_dataLoading","_dataLoadingDeferred","_rootDirectoryInfo","_createRootDirectoryInfo","_currentDirectoryInfo","_defaultIconMap","_createDefaultIconMap","_securityController","FileSecurityController","_setProvider","_initialize","_fileProvider","_createFileProvider","_resetState","path","pathParts","getPathParts","rawPath","pathCombine","_setCurrentDirectoryByPathParts","escapedName","getEscapedFileName","_getActualDirectoryInfo","requireRaiseSelectedDirectory","_raiseDataLoading","_raiseSelectedDirectoryChanged","onlyFiles","_getCurrentItemsInternal","getDirectoryContents","separatedItems","_separateItemsByType","folders","files","dirKey","loadItemsDeferred","_loadedItems","_getFileItems","_createDirectoryInfo","_createFileInfo","always","_handleItemLoadError","getAllowedItems","errorInfo","createDirectory","tempDirInfo","_createDirInfoByName","actionInfo","_createEditActionInfo","_processEditAction","_resetDirectoryState","renameItem","itemNewName","validateExtension","moveItems","destinationDirectory","copyItems","deleteItems","parentDir","processUploadSession","sessionInfo","uploadDirectoryInfo","_getItemInfosForUploaderFiles","deferreds","uploadFileChunk","fileData","chunksInfo","validateMaxFileSize","size","abortFileUpload","getFileUploadChunkSize","downloadItems","getItemContent","getItemsContent","_raiseEditActionStarting","_raiseEditActionResultAcquired","_raiseEditActionError","errorId","completeAction","actionResult","singleRequest","whenSome","_raiseCompleteEditActionItem","_raiseEditActionItemError","_raiseCompleteEditAction","targetItemInfos","customData","pathInfo","_getPathInfo","_lockRefresh","_refreshDeferred","_executeDataLoad","_refreshInternal","cachedRootInfo","selectedKeyParts","_getDirectoryPathKeyParts","_loadItemsRecursive","_findDirectoryByPathKeyParts","cachedDirectoryInfo","_this14","dirInfos","itemDeferreds","_loop","cachedItem","_this15","completeInitialization","_raiseInitialized","useKeys","_this16","_setCurrentDirectoryByPathPartsInternal","_this17","_getDirectoryByPathParts","_this18","_this19","fieldName","subDirInfo","d","restPathParts","keyParts","selectedDirInfo","newSelectedDir","dirPathInfo","_getFileItemDefaultIcon","displayName","isActualDirectoryRequired","extension","getFileExtension","rootDirectory","selectedDirectoryInfo","onEditActionStarting","onEditActionResultAcquired","onEditActionError","onEditActionItemError","onCompleteEditActionItem","onCompleteEditAction","_selectedDirectory","eventHandler","finalEventName","_this20","_extensionsMap","_allowedFileExtensions","toUpperCase","_proto2","_this21","_isValidExtension","_throwError","WrongFileExtension","_maxFileSize","MaxFileSizeExceeded","_permissions","_initCommands","_commands","noFileItemRequired","isSingleFileItemCommand","delete","hint","_commandMap","command","arg","isString","getCommandByName","itemsLength","some","every","DEFAULT_CONTEXT_MENU_ITEMS","beginGroup","DEFAULT_ITEM_ALLOWED_PROPERTIES","FileManagerContextMenu","_isVisible","$menu","showEvent","_onContextMenuItemClick","onShowing","_raiseContextMenuHidden","createContextMenuItems","offsetX","offsetY","boundaryOffset","dataSource","show","_targetFileItems","_targetFileItem","srcItem","_configureItemByCommandName","_isContextMenuItemAvailable","menuItem","_isDefaultItem","_autoHide","_isIsolatedCreationItemCommand","ensureDefined","_extendAttributes","targetObject","sourceObject","objectKeysArray","objectKey","res","originalItemData","_addItemClickHandler","_createMenuItemByCommandName","defaultConfig","_this$_commandManager","contextMenuItem","_this$_targetFileItem","changedArgs","fileSystemItem","targetFileItems","onContextMenuHidden","DEFAULT_COLUMN_CONFIGS","calculateSortValue","alignment","dateModified","hidingPriority","sortIndex","sortOrder","_FileManagerItemListB","FileManagerDetailsItemList","_focusedItem","_selectAllCheckBox","_selectAllCheckBoxUpdating","_createFilesView","$filesView","_filesView","hoverStateEnabled","selection","showCheckBoxesMode","selectedRowKeys","focusedRowKey","focusedRowEnabled","allowColumnResizing","scrolling","sorting","showSortIndexes","showColumnLines","showRowLines","columnHidingEnabled","_createColumns","_onEditorPreparing","onRowPrepared","_onRowPrepared","onContextMenuPreparing","_onContextMenuPreparing","_onFilesViewSelectionChanged","onFocusedRowChanged","_onFilesViewFocusedRowChanged","onOptionChanged","_onFilesViewOptionChanged","_this2$_refreshDeferr","column","extendedItem","_getPreparedColumn","_updateColumnDataField","columnOptions","resultCssClass","_isDefaultColumn","cellTemplate","_createThumbnailColumnCell","_createNameColumnCell","calculateCellValue","_calculateSizeColumnCellValue","rowData","dataItemSuffix","columnDataField","_selectItem","currentTarget","_isAllItemsSelected","selectableItemsCount","row","editorOptions","disabled","_onSelectAllCheckBoxValueChanged","selectAll","deselectAll","rowType","rowElement","$row","selectedRowsData","currentSelectedRowKeys","currentDeselectedRowKeys","_e$row2","_e$row","_selectItemSingleSelection","columnOption","cellInfo","$name","$wrapper","getDisplayFileSize","_selectItemMultipleSelection","deselectRows","oldFocusedItem","deselectedKeys","selectedKeys","isRowSelected","preserve","getController","isSelectionWithCheckboxes","selectRows","actualOptions","hasOwnProperty","focusedRowIndex","getSelectedRowsData","_contextmenu","_uiFile_managerItems_listThumbnails","FileManagerThumbnailsItemList","contextMenuEvent","_onContextMenu","_createItemList","$itemListContainer","_itemList","activeStateEnabled","loopItemFocus","onItemEnterKeyPressed","_tryOpen","itemThumbnailTemplate","getTooltipText","_getTooltipText","_onItemListSelectionChanged","_onItemListFocusedItemChanged","_this$_refreshDeferre","targetItemElement","targetItem","getItemByItemElement","tooltipText","_disableDragging","addedItemKeys","removedItemKeys","getItemElementByItem","unselectItem","_hold","_bindable_template","_scroll_view","_uiCollection_widget","_selection","FILE_MANAGER_THUMBNAILS_LIST_BOX_HOLD_EVENT_NAME","FileManagerThumbnailListBox","_CollectionWidget","_renderScrollView","_renderItemsContainer","_createScrollViewControl","_layoutUtils","ListBoxLayoutUtils","_scrollView","_$itemContainer","itemElements","first","_syncFocusedItemKey","_itemThumbnailTemplate","_templateManager","addDefaultTemplates","BindableTemplate","itemModel","_getDefaultItemTemplate","_$scrollView","scrollByContent","scrollByThumb","useKeyboard","showScrollbar","_detachEventHandlers","_attachEventHandlers","_clean","_supportedKeys","upArrow","_beforeKeyProcessing","_processArrowKeys","downArrow","home","_processHomeEndKeys","end","_getItemsLength","pageUp","_processPageChange","pageDown","enter","_getFocusedItem","A","isCommandKeyPressed","horizontal","eventArgs","layout","getLayoutModel","itemPerRowCount","newItemIndex","_getIndexByItem","_focusItemByIndex","scrollToItem","itemLayout","createItemLayoutModel","rowOffset","rowPerPageRate","newRowRate","itemRowIndex","Math","ceil","floor","itemColumnIndex","_processLongTap","$targetItem","_closestItemElement","_getIndexByItemElement","changeItemSelection","control","_itemContainer","_itemContentClass","_itemClass","_itemDataKey","$itemSpacer","$itemName","_itemSelectHandler","_isPreserveSelectionMode","_initSelectionModule","_getItemsByKeys","_updateSelectedItems","_rendered","selectionChangePromise","_selectionChangePromise","_rendering","normalizedIndex","addedSelection","removedSelection","_editStrategy","beginCache","_getIndexByKey","_removeSelection","_i","_addSelection","endCache","_updateSelection","_fireSelectionChangeEvent","_normalizeSelectedItems","newKeys","_getKeysByItems","oldKeys","getSelectedItemKeys","_compareKeys","setSelection","_focusOutHandler","getNormalizedIndex","_getItemByIndex","_focusItem","_syncFocusedItemKeyDeferred","_dataSource","isLoading","focusedItem","keyOf","newFocusedItemKey","_changeItemSelection","select","isItemSelected","_chooseSelectOption","getItemElement","deselectItem","updateItems","scrollView","$viewPort","$itemContainer","_layoutModel","_$viewPort","_$item","_createLayoutModel","itemWidth","outerWidth","itemHeight","outerHeight","viewPortWidth","innerWidth","viewPortHeight","innerHeight","viewPortScrollTop","viewPortScrollBottom","itemTop","itemBottom","newScrollTop","DEFAULT_ITEM_CONFIGS","compactMode","showText","locateInMenu","FILE_MANAGER_TOOLBAR_CLASS","switchView","separator","DEFAULT_ITEM_ALLOWED_OPTION_PROPERTIES","ALWAYS_VISIBLE_TOOLBAR_ITEMS","REFRESH_ICON_MAP","progress","success","FileManagerToolbar","_createItemClickedAction","_generalToolbarVisible","_$viewSwitcherPopup","_generalToolbar","_createToolbar","_fileToolbar","_getVisibleToolbar","_checkCompactMode","_dimensionChanged","dimension","hidden","toolbarItems","_getPreparedItems","_raiseItemClicked","preparedItem","_setItemVisibleAvailable","_updateSeparatorsVisibility","hasModifications","menuItems","_getMenuItems","hasItemsBefore","before","center","after","itemGroups","_getItemsInGroup","itemLocation","isSeparatorVisible","_groupHasItemsAfter","_isItemInMenu","groupName","_result$options","_createCommandItem","_createSeparatorItem","_createViewModeItem","_configureHintForCompactMode","commandText","_executeCommand","template","commandItems","_this6$_commandManage","selectedIndex","selectedItemKey","showArrowIcon","useSelectMode","dropDownOptions","_toggleCompactMode","useCompactMode","_toolbarHasItemsOverflow","_getItemsWidth","optionsSource","saved","_getCompactModeOptions","_available","available","_ensureAvailableCommandsVisible","itemVisible","_item$originalItemDat","originalVisible","_isToolbarItemAvailable","_fileToolbarHasEffectiveItems","_isFileToolbarItemAvailable","toolbarItem","_isRefreshVisibleInFileToolbar","_updateItemInToolbar","beginUpdate","endUpdate","_itemClickedAction","generalToolbarOptions","fileToolbarOptions","_applyRefreshItemOptions","_refreshItemTextTimeout","_updateRefreshItemText","isDeferredUpdate","showGeneralToolbar","_uiFile_managerNotification","window","getWindow","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","_isInAdaptiveState","_isSmallScreen","$progressPanelContainer","$progressDrawer","drawerOptions","opened","_ensureProgressPanelCreated","_getProgressDrawerAdaptiveOptions","_progressDrawer","$drawerContent","contentRenderer","_isProgressDrawerOpened","_getNotificationPopup","_tryHideActionProgress","addOperation","processingMessage","allowCancel","allowProgressAutoUpdate","operationInfo","_progressPanel","_updateActionProgress","addOperationDetails","showCloseButton","updateOperationItemProgress","itemProgress","commonProgress","completeOperationItem","completeOperation","commonText","isError","statusText","_showPopup","completeSingleOperationWithError","detailErrorText","_notifyError","addOperationDetailsError","_hideProgressPanel","_raiseActionProgress","_checkAdaptiveState","oldState","detach","openedStateMode","$progressPanelElement","_getProgressPanelComponent","onOperationClosed","_onProgressPanelOperationClosed","onOperationCanceled","_raiseOperationCanceled","onOperationItemCanceled","_raiseOperationItemCanceled","onPanelClosed","_showPopupError","commonErrorText","hasError","errorMode","$content","$message","$separator","$details","createErrorDetailsProgressBox","renderError","_notificationPopup","dragEnabled","duration","_progress_bar","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_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","FileManagerProgressPanel","_operationCount","$scrollView","$title","$closeButton","_raisePanelClosed","_$infosContainer","_renderEmptyListText","showCloseButtonAlways","prependTo","customCloseHandling","$info","$common","common","_createProgressBox","onCloseButtonClick","_closeOperation","_createDetailsItem","skipProgressBox","$detailsItem","imageUrl","_cancelOperationItem","_setCloseButtonVisible","progressBar","completed","$commonText","_removeProgressBar","_setProgressBarText","_info$details","detailsItem","_renderOperationError","$target","progressBox","$progressBar","min","max","statusFormat","ratio","_getStatusString","closeButton","_displayClosedOperationItem","_raiseOperationClosed","next","round","_iterator","_string","_createClass","FileManagerEditingControl","_onEditActionStarting","_onEditActionResultAcquired","_onEditActionItemError","_onEditActionError","_onCompleteEditActionItem","_onCompleteEditAction","_uploadOperationInfoMap","_dialogManager","chooseDirectoryDialog","provider","onDialogClosed","_onDialogClosed","_fileUploader","_createFileUploader","_initNotificationControl","_createMetadataMap","_onCancelUploadSession","_onCancelFileUpload","_getFileUploaderComponent","$fileUploader","_getFileUploaderController","dropZonePlaceholderContainer","onUploadSessionStarted","_onUploadSessionStarted","onUploadProgress","_onUploadProgress","uploadDirectory","_metadataMap","_tryCreate","affectsAllItems","singleItemProcessingMessage","singleItemSuccessMessage","singleItemErrorMessage","commonErrorMessage","_tryRename","_tryDelete","multipleItemsProcessingMessage","multipleItemsSuccessMessage","multipleItemsErrorMessage","_tryMove","_tryCopy","_tryUpload","allowItemProgress","canceledMessage","_download","_getItemContent","each","_executeAction","actionMetadata","cancelUpload","uploadSessionId","cancelFileUpload","sessionId","fileIndex","commonValue","fileValue","FileManagerActionContext","_actionInfo$customDat","_getItemProgressDisplayInfo","_actionInfo$customDat2","_handleActionError","_completeAction","_actionInfo$customDat3","_actionInfo$customDat4","canceled","_actionInfo$customDat5","parentDirectories","newDirName","_showDialog","getCreateItemDialog","getRenameItemDialog","itemName","itemCount","getDeleteItemDialog","getMoveDialog","folder","getCopyDialog","destinationFolder","_uploadDirectoryInfo","tryUpload","completionMessage","hasModifiedItems","_raiseOnSuccess","_handleSingleRequestActionError","_handleMultipleRequestActionError","getItemForSingleRequestError","_getErrorText","processSingleRequestError","operationErrorInfo","_getOperationErrorInfo","multipleItems","getItemForMultipleRequestError","processMultipleRequestError","detailError","errorState","currentDetailError","FileManagerMessages","errorArgs","errorCode","dialog","dialogArgument","_dialogDeferred","dialogResult","_actionMetadata","_itemInfos","_onlyFiles","_items","_multipleItems","_location","_singleRequest","_completedItems","_commonProgress","_errorState","failedCount","_itemNewName","_setCurrentDetailError","_hasCompletedItems","set","successMessage","_uiFile_managerDialog","_uiFile_managerDialog2","_uiFile_managerDialog3","FileManagerDialogManager","_$element","$chooseFolderDialog","_chooseDirectoryDialog","onClosed","$renameDialog","_renameItemDialog","title","buttonText","$createDialog","_createItemDialog","$deleteItemDialog","_deleteItemDialog","switchToCopyDialog","switchToMoveDialog","_text_box","_FileManagerDialogBas","FileManagerNameEditorDialog","_nameTextBox","_initialNameValue","_onPopupShown","$textBoxInput","_input","_getDialogOptions","contentCssClass","popupCssClass","_createContentTemplate","onEnterKey","_applyDialogChanges","_$contentElement","_getDialogResult","nameValue","FileManagerFolderChooserDialog","_resetDialogSelectedDirectory","_targetItemInfos","_setTitle","_setButtonText","_getDialogSelectedDirectory","_toggleUnavailableLocationsDisabled","_selectedDirectoryInfo","_onPopupHidden","isDisabled","locations","_getLocationsToProcess","locationsToExpand","locationsToCollapse","locationKeysToDisable","_expandMap$keys","expandLocations","collapseLocations","expandMap","getMapFromObject","collapseMap","FileManagerDeleteItemDialog","_$text","_initialText","_file_uploader","FileManagerFileUploader","_uploaderInfos","_createInternalFileUploader","_createDropZonePlaceholder","_setDropZonePlaceholderVisible","_getController","fileUploader","multiple","showFileList","labelText","readyToUploadMessage","accept","dropZone","_onFileUploaderValueChanged","onProgress","_onFileUploaderProgress","onUploaded","_onFileUploaderUploaded","onUploadAborted","_onFileUploaderUploadAborted","onUploadError","_onFileUploaderUploadError","onDropZoneEnter","onDropZoneLeave","uploadChunk","chunksData","_fileUploaderUploadChunk","abortUpload","_fileUploaderAbortUpload","uploaderInfo","_findAndUpdateAvailableUploaderInfo","_selectButtonClickHandler","_cancelUpload","_findUploaderInfoBySessionId","_this$_findSessionByF","_findSessionByFile","session","_this$_findSessionByF2","_findUploaderInfo","_uploadFiles","bytesLoaded","bytesTotal","_this$_findSessionByF3","id","_raiseUploadProgress","_getDeferredForFile","_$dropZonePlaceholder","_adjustDropZonePlaceholder","$dropZoneTarget","placeholderBorderTopWidth","parseFloat","css","placeholderBorderLeftWidth","$placeholderContainer","containerBorderBottomWidth","containerBorderLeftWidth","containerHeight","containerOffset","dropZoneOffset","top","left","offsetHeight","offsetWidth","_raiseUploadSessionStarted","_this$_findSessionByF4","_info","currentInfo","controllerGetter","NoAccess","FileExists","FileNotFound","DirectoryExists","DirectoryNotFound","InvalidSymbols","FileManagerBreadcrumbs","_currentDirectory","_renderMenu","_areDirsEqual","_menu","_onItemClick","_onItemRendered","_getParentDirsLine","isPathItem","FILE_MANAGER_BREADCRUMBS_CLASS","dir","newDir","_raiseCurrentDirectoryChanged","dir1","dir2","_splitter","FileManagerAdaptivityControl","$drawer","_drawer","_createDrawerTemplate","_updateDrawerMaxSize","leftElement","rightElement","viewContent","onApplyPanelSize","_onApplyPanelSize","onActiveStateChanged","_onActiveStateChanged","disableSplitterCalculation","isSplitterMoved","_setDrawerWidth","leftPanelWidth","isActive","resizeViewContent","getRealPanelWidth","_raiseAdaptiveStateChanged","_isDrawerOpened","isInAdaptiveState","showing","skipAnimation","toggle","isSplitterActive","toggleDisabled","byteSize","sizesTitles","displaySize","itemMap","object","group","isNegationValue","isNegationGroup","convertNegationGroupToGroup","convertGroupToNegationGroup","convertGroupToNewStructure","substring","getNormalizedGroupValue","changeCriteriaValue","availableGroups","groupValue","getFilterOperations","getCaptionByOperation","Error","filterOperations","isLookupField","_inflector","captionize","toLowerCase","isEmptyGroup","reduce","normalizedField","AVAILABLE_FIELD_PROPERTIES","defaultCalculateFilterExpression","_filtering","trueText","falseText","getConditionFilterExpression","_filterExpression","itemsForRemove","normalizedGroupValue","isValidCondition","setGroupCriteria","lookupDataSource","_data_source","DataSource","loadSingle","valueExpr","valueText","_data","compileGetter","customizeText","fail","checkDefaultValue","getArrayValueText","_len","_key","getPrimitiveValueText","plainItems","hasParent","getParentIdFromItemDataField","betweenCaption","betweenIndex","_between","removeFieldConditionsFromFilter","isMatchedCondition","syncConditionIntoGroup","syncFilters","addedFilter","getMatchedConditions","filterHasField","_format_helper","DATATYPE_OPERATIONS","number","string","date","datetime","DEFAULT_FORMAT","LOOKUP_OPERATIONS","getCriteriaOperation","errors","entity","getDefaultFilterOperations","operationName","filteredOperations","defaultFilterOperation","extendedFields","convertToInnerGroup","groupOperation","innerGroup","convertToInnerCondition","conditionHasCustomOperation","filterExpression","calculateFilterExpression","createFilterExpression","fieldFormat","getFormattedValueText","itemExists","pushItemAndCheckParent","originalItems","generateCaptionByDataField","lastIndexOf","split","addedFilterDataField","canPush","lastItemIndex","t","FILTER_BUILDER_ITEM_TEXT_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS","_variable_wrapper","_data_helper","_array_store","_typeof","_dataExpressionDefaultOptions","_initDataExpressions","_compileValueGetter","_compileDisplayGetter","_initDynamicTemplates","_initDataSource","_itemsToDataSource","pageSize","_displayGetter","_displayGetterExpr","_valueGetter","_valueGetterExpr","_loadValue","_unwrappedValue","_loadSingle","_isValueEquals","_getCurrentValue","_value","_getItemKey","unwrap","value1","value2","dataSourceKey","_compareValues","_compareByCompositeKey","_compareByKey","isObject","unwrapObservable","valueKey1","valueKey2","toComparable","_setCollectionWidgetItemTemplate","_setCollectionWidgetOption","_getCollectionKeyExpr","_dataExpressionOptionChanged","_ajax","_editor","_browser","_click","_themes","_inheritsLoose","isFormDataSupported","FormData","FileUploader","_Editor","$selectButton","_selectButton","space","selectButtonText","uploadButtonText","uploadUrl","allowCanceling","dialogTrigger","uploadedMessage","uploadFailedMessage","uploadAbortedMessage","uploadMode","uploadMethod","uploadHeaders","uploadCustomData","onBeforeSend","onUploadStarted","onFilesUploaded","minFileSize","inputAttr","invalidFileExtensionMessage","invalidMaxFileSizeMessage","invalidMinFileSizeMessage","extendSelection","uploadFile","useNativeInputClick","useDragOver","nativeDropSupported","_uploadButtonType","_defaultOptionsRules","device","isSimulator","platform","msie","isMaterial","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","tabIndex","_doPreventInputChange","fileName","val","_getFiles","_changeValue","_shouldFileListBeExtended","_removeDuplicates","_isFileInArray","fileList","_","_getFile","targetFileValue","_files","_$inputLabel","_updateInputLabelText","correctedValue","_isInteractionDisabled","_renderWrapper","_renderInputWrapper","_renderSelectButton","_renderInputContainer","_renderUploadButton","_preventRecreatingFiles","_attachDragEventHandlers","_$inputWrapper","_renderFiles","_createFileProgressBar","_createProgressBar","$file","_initStatusMessage","_ensureCancelButtonInitialized","_setStatusMessage","$statusMessage","_getUploadAbortedStatusMessage","_preventFilesUploading","_createFile","_validateFile","isValidFileExtension","_validateFileExtension","isValidMinSize","_validateMinFileSize","isValidMaxSize","_validateMaxFileSize","allowedExtensions","fileExtension","fileSize","_beforeSendAction","_uploadStartedAction","_uploadedAction","_filesUploadedAction","_progressAction","_uploadAbortedAction","_uploadErrorAction","_dropZoneEnterAction","_dropZoneLeaveAction","loadedSize","onAbort","onLoad","onLoadStart","isInitialized","_resetFileState","isAborted","uploadStarted","isStartLoad","request","_$filesContainer","_$content","_renderFile","_toggleFileUploaderEmptyClassName","_updateFileNameMaxWidth","$fileContainer","_renderFileButtons","$fileInfo","_getFileSize","_createValidationElement","cancelButtonsCount","uploadButtonsCount","filesContainerWidth","buttonsWidth","$fileSize","prevFileSize","fileSizeWidth","$cancelButton","_getCancelButton","$uploadButton","_getUploadButton","cancelButton","FILEUPLOADER_BUTTON_CLASS","_removeFile","integrationOptions","uploadButton","_uploadFile","add","_file$$file","inArray","removeFile","_hasInvalidFile","labels","count","_selectFileDialogHandler","_attachSelectFileDialogHandler","_detachSelectFileDialogHandler","_uploadButton","_uploadButtonClickHandler","_$inputContainer","_renderInput","labelId","_selectButtonInputTemplate","_applyInputAttributes","_detachDragEventHandlers","NAME","isCustomTarget","_dragEventsTargets","_dragEnterHandler","_dragOverHandler","_dragLeaveHandler","_dropHandler","customAttributes","_useInputForDrop","_tryToggleDropZoneActive","_updateEventTargets","originalEvent","dataTransfer","dropEffect","targetIndex","isTargetExists","classAction","mouseAction","dropZoneElement","_filterFiles","_handleAllFilesUploaded","_isError","_isLoaded","allowedTypes","_getAllowedFileTypes","_isFileTypeAllowed","acceptSting","trim","allowedType","match","RegExp","_updateProgressBar","loadedFileData","loaded","showStatus","segmentSize","currentSegmentSize","total","_updateTotalProgress","totalFilesSize","totalLoadedFilesSize","_getProgressValue","_setLoadedSize","hideCancelButton","statusPosition","_getTotalFilesSize","_totalFilesSize","_getTotalLoadedFilesSize","_totalLoadedFilesSize","_recalculateProgress","_updateReadOnlyState","_file$cancelButton","FileBlobReader","read","createBlobResult","isCompleted","currentPosition","blob","sliceFile","startPos","webkitSlice","FileUploadStrategyBase","_proto3","_prepareFileBeforeUpload","_uploadCore","abort","_isCustomCallback","_createUploadArgument","fromPromise","_handleFileError","_beforeSend","xhr","uploadInfo","_file$progressBar","_onUploadStarted","_onLoadedHandler","_onErrorHandler","_onAbortHandler","_onProgressHandler","_isStatusError","_getLoadedData","_extendFormData","formData","formDataEntries","entryName","ChunksFileUploadStrategyBase","_FileUploadStrategyBa","_proto4","realFile","loadedBytes","blobReader","guid","_sendChunk","chunk","currentChunk","_sendChunkCore","_shouldHandleError","_tryRaiseStartLoad","_getEvent","_createChunksInfo","bytesUploaded","chunkCount","chunkBlob","chunkIndex","_ChunksFileUploadStra","_proto5","sendRequest","url","method","headers","beforeSend","onloadstart","onabort","_createFormData","blobName","FileName","Index","TotalCount","FileSize","FileType","FileGuid","_ChunksFileUploadStra2","_proto6","WholeFileUploadStrategyBase","_FileUploadStrategyBa2","_proto7","_handleProgress","_isProgressStarted","_WholeFileUploadStrat","_proto8","onprogress","fieldValue","_WholeFileUploadStrat2","_proto9","FileManagerDialogBase","_createOnClosedAction","popupOptions","_closeDialog","registerKeyHandler","_dialogResult","_onClosedAction","newTitle","newText","_createOnPathChangedAction"],"mappings":"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","file":"vendors~ed47a448.db8e54690455bd17db0d.bundle.js","sourcesContent":["/**\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/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/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/editor/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 _element_data = require(\"../../core/element_data\");\r\nvar _callbacks = _interopRequireDefault(require(\"../../core/utils/callbacks\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _ui = _interopRequireDefault(require(\"../widget/ui.widget\"));\r\nvar _validation_engine = _interopRequireDefault(require(\"../validation_engine\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _validation_message = _interopRequireDefault(require(\"../validation_message\"));\r\nvar _guid = _interopRequireDefault(require(\"../../core/guid\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar READONLY_STATE_CLASS = \"dx-state-readonly\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar VALIDATION_TARGET = \"dx-validation-target\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar READONLY_NAMESPACE = \"editorReadOnly\";\r\nvar VALIDATION_MESSAGE_KEYS_MAP = {\r\n validationMessageMode: \"mode\",\r\n validationMessageOffset: \"offset\",\r\n validationBoundary: \"boundary\"\r\n};\r\nvar Editor = _ui.default.inherit({\r\n ctor: function() {\r\n this.showValidationMessageTimeout = null;\r\n this.validationRequest = (0, _callbacks.default)();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _createElement: function(element) {\r\n this.callBase(element);\r\n var $element = this.$element();\r\n if ($element) {\r\n (0, _element_data.data)($element[0], VALIDATION_TARGET, this)\r\n }\r\n },\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(_validation_engine.default.initValidationOptions(options))\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._options.cache(\"validationTooltipOptions\", this.option(\"validationTooltipOptions\"));\r\n var $element = this.$element();\r\n $element.addClass(DX_INVALID_BADGE_CLASS)\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n value: null,\r\n name: \"\",\r\n onValueChanged: null,\r\n readOnly: false,\r\n isValid: true,\r\n validationError: null,\r\n validationErrors: null,\r\n validationStatus: VALIDATION_STATUS_VALID,\r\n validationMessageMode: \"auto\",\r\n validationBoundary: void 0,\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {}\r\n })\r\n },\r\n _attachKeyboardEvents: function() {\r\n if (!this.option(\"readOnly\")) {\r\n this.callBase()\r\n }\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n (0, _extend.extend)(this._optionsByReference, {\r\n validationError: true\r\n })\r\n },\r\n _createValueChangeAction: function() {\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _suppressValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = true\r\n },\r\n _resumeValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = false\r\n },\r\n _initMarkup: function() {\r\n this._toggleReadOnlyState();\r\n this._setSubmitElementName(this.option(\"name\"));\r\n this.callBase();\r\n this._renderValidationState()\r\n },\r\n _raiseValueChangeAction: function(value, previousValue) {\r\n if (!this._valueChangeAction) {\r\n this._createValueChangeAction()\r\n }\r\n this._valueChangeAction(this._valueChangeArgs(value, previousValue))\r\n },\r\n _valueChangeArgs: function(value, previousValue) {\r\n return {\r\n value: value,\r\n previousValue: previousValue,\r\n event: this._valueChangeEventInstance\r\n }\r\n },\r\n _saveValueChangeEvent: function(e) {\r\n this._valueChangeEventInstance = e\r\n },\r\n _focusInHandler: function(e) {\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (this._canValueBeChangedByClick() && isValidationMessageShownOnFocus) {\r\n var _this$_validationMess;\r\n var $validationMessageWrapper = null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess._wrapper();\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this.showValidationMessageTimeout = setTimeout(function() {\r\n return null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO)\r\n }, 150)\r\n }\r\n return this.callBase(e)\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return false\r\n },\r\n _getValidationErrors: function() {\r\n var validationErrors = this.option(\"validationErrors\");\r\n if (!validationErrors && this.option(\"validationError\")) {\r\n validationErrors = [this.option(\"validationError\")]\r\n }\r\n return validationErrors\r\n },\r\n _disposeValidationMessage: function() {\r\n if (this._$validationMessage) {\r\n this._$validationMessage.remove();\r\n this.setAria(\"describedby\", null);\r\n this._$validationMessage = void 0;\r\n this._validationMessage = void 0\r\n }\r\n },\r\n _toggleValidationClasses: function(isInvalid) {\r\n this.$element().toggleClass(INVALID_CLASS, isInvalid);\r\n this.setAria(VALIDATION_STATUS_INVALID, isInvalid || void 0)\r\n },\r\n _renderValidationState: function() {\r\n var isValid = this.option(\"isValid\") && this.option(\"validationStatus\") !== VALIDATION_STATUS_INVALID;\r\n var validationErrors = this._getValidationErrors();\r\n var $element = this.$element();\r\n this._toggleValidationClasses(!isValid);\r\n if (!(0, _window.hasWindow)()) {\r\n return\r\n }\r\n this._disposeValidationMessage();\r\n if (!isValid && validationErrors) {\r\n var _this$option = this.option(),\r\n validationMessageMode = _this$option.validationMessageMode,\r\n validationMessageOffset = _this$option.validationMessageOffset,\r\n validationBoundary = _this$option.validationBoundary,\r\n rtlEnabled = _this$option.rtlEnabled;\r\n this._$validationMessage = (0, _renderer.default)(\"
\").appendTo($element);\r\n this.setAria(\"describedby\", \"dx-\" + new _guid.default);\r\n this._validationMessage = new _validation_message.default(this._$validationMessage, (0, _extend.extend)({\r\n validationErrors: validationErrors,\r\n rtlEnabled: rtlEnabled,\r\n target: this._getValidationMessageTarget(),\r\n container: $element,\r\n mode: validationMessageMode,\r\n positionRequest: \"below\",\r\n offset: validationMessageOffset,\r\n boundary: validationBoundary,\r\n describedElement: this._focusTarget()\r\n }, this._options.cache(\"validationTooltipOptions\")));\r\n this._bindInnerWidgetOptions(this._validationMessage, \"validationTooltipOptions\")\r\n }\r\n },\r\n _getValidationMessageTarget: function() {\r\n return this.$element()\r\n },\r\n _toggleReadOnlyState: function() {\r\n var readOnly = this.option(\"readOnly\");\r\n this._toggleBackspaceHandler(readOnly);\r\n this.$element().toggleClass(READONLY_STATE_CLASS, !!readOnly);\r\n this.setAria(\"readonly\", readOnly || void 0)\r\n },\r\n _toggleBackspaceHandler: function(isReadOnly) {\r\n var $eventTarget = this._keyboardEventBindingTarget();\r\n var eventName = (0, _index.addNamespace)(\"keydown\", READONLY_NAMESPACE);\r\n _events_engine.default.off($eventTarget, eventName);\r\n if (isReadOnly) {\r\n _events_engine.default.on($eventTarget, eventName, function(e) {\r\n if (\"backspace\" === (0, _index.normalizeKeyName)(e)) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n },\r\n _dispose: function() {\r\n var element = this.$element()[0];\r\n (0, _element_data.data)(element, VALIDATION_TARGET, null);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this._disposeValidationMessage();\r\n this.callBase()\r\n },\r\n _setSubmitElementName: function(name) {\r\n var $submitElement = this._getSubmitElement();\r\n if (!$submitElement) {\r\n return\r\n }\r\n if (name.length > 0) {\r\n $submitElement.attr(\"name\", name)\r\n } else {\r\n $submitElement.removeAttr(\"name\")\r\n }\r\n },\r\n _getSubmitElement: function() {\r\n return null\r\n },\r\n _setValidationMessageOption: function(_ref) {\r\n var _this$_validationMess2;\r\n var name = _ref.name,\r\n value = _ref.value;\r\n var optionKey = VALIDATION_MESSAGE_KEYS_MAP[name] ? VALIDATION_MESSAGE_KEYS_MAP[name] : name;\r\n null === (_this$_validationMess2 = this._validationMessage) || void 0 === _this$_validationMess2 ? void 0 : _this$_validationMess2.option(optionKey, value)\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_validationMess3;\r\n switch (args.name) {\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"readOnly\":\r\n this._toggleReadOnlyState();\r\n this._refreshFocusState();\r\n break;\r\n case \"value\":\r\n if (args.value != args.previousValue) {\r\n this.validationRequest.fire({\r\n value: args.value,\r\n editor: this\r\n })\r\n }\r\n if (!this._valueChangeActionSuppressed) {\r\n this._raiseValueChangeAction(args.value, args.previousValue);\r\n this._saveValueChangeEvent(void 0)\r\n }\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n null === (_this$_validationMess3 = this._validationMessage) || void 0 === _this$_validationMess3 ? void 0 : _this$_validationMess3.updateMaxWidth();\r\n break;\r\n case \"name\":\r\n this._setSubmitElementName(args.value);\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(_validation_engine.default.synchronizeValidationOptions(args, this.option()));\r\n this._renderValidationState();\r\n break;\r\n case \"validationBoundary\":\r\n case \"validationMessageMode\":\r\n case \"validationMessageOffset\":\r\n this._setValidationMessageOption(args);\r\n break;\r\n case \"rtlEnabled\":\r\n this._setValidationMessageOption(args);\r\n this.callBase(args);\r\n break;\r\n case \"validationTooltipOptions\":\r\n this._innerWidgetOptionChanged(this._validationMessage, args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n reset: function() {\r\n var defaultOptions = this._getDefaultOptions();\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n});\r\nvar _default = Editor;\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/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/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","/**\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.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express 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 (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/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/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/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","/**\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/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 (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","/**\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 (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","/**\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","/**\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","/**\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.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/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/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/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.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/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/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/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/editor/ui.data_expression.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express 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 _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 _extend = require(\"../../core/utils/extend\");\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\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 DataExpressionMixin = (0, _extend.extend)({}, _data_helper.default, {\r\n _dataExpressionDefaultOptions: function() {\r\n return {\r\n items: [],\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n value: null,\r\n valueExpr: \"this\",\r\n displayExpr: void 0\r\n }\r\n },\r\n _initDataExpressions: function() {\r\n this._compileValueGetter();\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._initDataSource();\r\n this._itemsToDataSource()\r\n },\r\n _itemsToDataSource: function() {\r\n if (!this.option(\"dataSource\")) {\r\n this._dataSource = new _data_source.DataSource({\r\n store: new _array_store.default(this.option(\"items\")),\r\n pageSize: 0\r\n })\r\n }\r\n },\r\n _compileDisplayGetter: function() {\r\n this._displayGetter = (0, _data.compileGetter)(this._displayGetterExpr())\r\n },\r\n _displayGetterExpr: function() {\r\n return this.option(\"displayExpr\")\r\n },\r\n _compileValueGetter: function() {\r\n this._valueGetter = (0, _data.compileGetter)(this._valueGetterExpr())\r\n },\r\n _valueGetterExpr: function() {\r\n return this.option(\"valueExpr\") || \"this\"\r\n },\r\n _loadValue: function(value) {\r\n var deferred = new _deferred.Deferred;\r\n value = this._unwrappedValue(value);\r\n if (!(0, _type.isDefined)(value)) {\r\n return deferred.reject().promise()\r\n }\r\n this._loadSingle(this._valueGetterExpr(), value).done(function(item) {\r\n this._isValueEquals(this._valueGetter(item), value) ? deferred.resolve(item) : deferred.reject()\r\n }.bind(this)).fail(function() {\r\n deferred.reject()\r\n });\r\n return deferred.promise()\r\n },\r\n _getCurrentValue: function() {\r\n return this.option(\"value\")\r\n },\r\n _unwrappedValue: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this._getCurrentValue();\r\n if (value && this._dataSource && \"this\" === this._valueGetterExpr()) {\r\n value = this._getItemKey(value)\r\n }\r\n return _variable_wrapper.default.unwrap(value)\r\n },\r\n _getItemKey: function(value) {\r\n var key = this._dataSource.key();\r\n if (Array.isArray(key)) {\r\n var result = {};\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n result[key[i]] = value[key[i]]\r\n }\r\n return result\r\n }\r\n if (key && \"object\" === _typeof(value)) {\r\n value = value[key]\r\n }\r\n return value\r\n },\r\n _isValueEquals: function(value1, value2) {\r\n var dataSourceKey = this._dataSource && this._dataSource.key();\r\n var result = this._compareValues(value1, value2);\r\n if (!result && dataSourceKey && (0, _type.isDefined)(value1) && (0, _type.isDefined)(value2)) {\r\n if (Array.isArray(dataSourceKey)) {\r\n result = this._compareByCompositeKey(value1, value2, dataSourceKey)\r\n } else {\r\n result = this._compareByKey(value1, value2, dataSourceKey)\r\n }\r\n }\r\n return result\r\n },\r\n _compareByCompositeKey: function(value1, value2, key) {\r\n var isObject = _type.isObject;\r\n if (!isObject(value1) || !isObject(value2)) {\r\n return false\r\n }\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n if (value1[key[i]] !== value2[key[i]]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _compareByKey: function(value1, value2, key) {\r\n var unwrapObservable = _variable_wrapper.default.unwrap;\r\n var valueKey1 = (0, _common.ensureDefined)(unwrapObservable(value1[key]), value1);\r\n var valueKey2 = (0, _common.ensureDefined)(unwrapObservable(value2[key]), value2);\r\n return this._compareValues(valueKey1, valueKey2)\r\n },\r\n _compareValues: function(value1, value2) {\r\n return (0, _data.toComparable)(value1, true) === (0, _data.toComparable)(value2, true)\r\n },\r\n _initDynamicTemplates: _common.noop,\r\n _setCollectionWidgetItemTemplate: function() {\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"itemTemplate\", this.option(\"itemTemplate\"))\r\n },\r\n _getCollectionKeyExpr: function() {\r\n var valueExpr = this.option(\"valueExpr\");\r\n var isValueExprField = (0, _type.isString)(valueExpr) && \"this\" !== valueExpr || (0, _type.isFunction)(valueExpr);\r\n return isValueExprField ? valueExpr : null\r\n },\r\n _dataExpressionOptionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n this._itemsToDataSource();\r\n this._setCollectionWidgetOption(\"items\");\r\n break;\r\n case \"dataSource\":\r\n this._initDataSource();\r\n break;\r\n case \"itemTemplate\":\r\n this._setCollectionWidgetItemTemplate();\r\n break;\r\n case \"valueExpr\":\r\n this._compileValueGetter();\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"displayExpr\")\r\n }\r\n }\r\n});\r\nvar _default = DataExpressionMixin;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (ui/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 _guid = _interopRequireDefault(require(\"../core/guid\"));\r\nvar _window = require(\"../core/utils/window\");\r\nvar _events_engine = _interopRequireDefault(require(\"../events/core/events_engine\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\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 _array = require(\"../core/utils/array\");\r\nvar _deferred = require(\"../core/utils/deferred\");\r\nvar _ajax = _interopRequireDefault(require(\"../core/utils/ajax\"));\r\nvar _editor = _interopRequireDefault(require(\"./editor/editor\"));\r\nvar _button = _interopRequireDefault(require(\"./button\"));\r\nvar _progress_bar = _interopRequireDefault(require(\"./progress_bar\"));\r\nvar _browser = _interopRequireDefault(require(\"../core/utils/browser\"));\r\nvar _devices = _interopRequireDefault(require(\"../core/devices\"));\r\nvar _index = require(\"../events/utils/index\");\r\nvar _click = require(\"../events/click\");\r\nvar _message = _interopRequireDefault(require(\"../localization/message\"));\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\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 FILEUPLOADER_CLASS = \"dx-fileuploader\";\r\nvar FILEUPLOADER_EMPTY_CLASS = \"dx-fileuploader-empty\";\r\nvar FILEUPLOADER_SHOW_FILE_LIST_CLASS = \"dx-fileuploader-show-file-list\";\r\nvar FILEUPLOADER_DRAGOVER_CLASS = \"dx-fileuploader-dragover\";\r\nvar FILEUPLOADER_WRAPPER_CLASS = \"dx-fileuploader-wrapper\";\r\nvar FILEUPLOADER_CONTAINER_CLASS = \"dx-fileuploader-container\";\r\nvar FILEUPLOADER_CONTENT_CLASS = \"dx-fileuploader-content\";\r\nvar FILEUPLOADER_INPUT_WRAPPER_CLASS = \"dx-fileuploader-input-wrapper\";\r\nvar FILEUPLOADER_INPUT_CONTAINER_CLASS = \"dx-fileuploader-input-container\";\r\nvar FILEUPLOADER_INPUT_LABEL_CLASS = \"dx-fileuploader-input-label\";\r\nvar FILEUPLOADER_INPUT_CLASS = \"dx-fileuploader-input\";\r\nvar FILEUPLOADER_FILES_CONTAINER_CLASS = \"dx-fileuploader-files-container\";\r\nvar FILEUPLOADER_FILE_CONTAINER_CLASS = \"dx-fileuploader-file-container\";\r\nvar FILEUPLOADER_FILE_INFO_CLASS = \"dx-fileuploader-file-info\";\r\nvar FILEUPLOADER_FILE_STATUS_MESSAGE_CLASS = \"dx-fileuploader-file-status-message\";\r\nvar FILEUPLOADER_FILE_CLASS = \"dx-fileuploader-file\";\r\nvar FILEUPLOADER_FILE_NAME_CLASS = \"dx-fileuploader-file-name\";\r\nvar FILEUPLOADER_FILE_SIZE_CLASS = \"dx-fileuploader-file-size\";\r\nvar FILEUPLOADER_BUTTON_CLASS = \"dx-fileuploader-button\";\r\nvar FILEUPLOADER_BUTTON_CONTAINER_CLASS = \"dx-fileuploader-button-container\";\r\nvar FILEUPLOADER_CANCEL_BUTTON_CLASS = \"dx-fileuploader-cancel-button\";\r\nvar FILEUPLOADER_UPLOAD_BUTTON_CLASS = \"dx-fileuploader-upload-button\";\r\nvar FILEUPLOADER_INVALID_CLASS = \"dx-fileuploader-invalid\";\r\nvar FILEUPLOADER_AFTER_LOAD_DELAY = 400;\r\nvar FILEUPLOADER_CHUNK_META_DATA_NAME = \"chunkMetadata\";\r\nvar renderFileUploaderInput = function() {\r\n return (0, _renderer.default)(\"\").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/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","/**\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"],"sourceRoot":""}