{"version":3,"sources":["../node_modules/devextreme/ui/file_uploader.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.dialog.js","../node_modules/devextreme/ui/filter_builder.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.files_tree_view.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.file_actions_button.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.item_list.js","../node_modules/devextreme/ui/filter_builder/between.js","../node_modules/devextreme/ui/filter_builder/ui.filter_operations_dictionary.js","../node_modules/devextreme/ui/filter_builder/filter_builder.js","../node_modules/devextreme/ui/file_manager.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.js","../node_modules/devextreme/ui/file_manager/file_items_controller.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.command_manager.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.context_menu.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.item_list.details.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.item_list.thumbnails.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.items_list.thumbnails.list_box.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.toolbar.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.notification.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.notification.progress_panel.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.editing.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.dialog_manager.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.dialog.name_editor.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.dialog.folder_chooser.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.dialog.delete_item.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.file_uploader.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.messages.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.breadcrumbs.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.adaptivity.js","../node_modules/devextreme/ui/file_manager/ui.file_manager.common.js","../node_modules/devextreme/ui/filter_builder/utils.js"],"names":["exports","default","_renderer","_interopRequireDefault","require","_guid","_window","_events_engine","_component_registrator","_callbacks","_type","_iterator","_extend","_array","_deferred","_ajax","_editor","_button","_progress_bar","_browser","_devices","_index","_click","_message","_themes","obj","__esModule","_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","__proto__","window","getWindow","isFormDataSupported","FormData","FileUploader","_Editor","apply","this","arguments","_proto","_supportedKeys","_this","click","e","preventDefault","$selectButton","_selectButton","$element","trigger","name","extend","call","space","enter","_setOptionsByReference","_optionsByReference","value","_getDefaultOptions","chunkSize","selectButtonText","format","uploadButtonText","labelText","multiple","accept","uploadUrl","allowCanceling","showFileList","progress","dialogTrigger","dropZone","readyToUploadMessage","uploadedMessage","uploadFailedMessage","uploadAbortedMessage","uploadMode","uploadMethod","uploadHeaders","uploadCustomData","onBeforeSend","onUploadStarted","onUploaded","onFilesUploaded","onProgress","onUploadError","onUploadAborted","onDropZoneEnter","onDropZoneLeave","allowedFileExtensions","maxFileSize","minFileSize","inputAttr","invalidFileExtensionMessage","invalidMaxFileSizeMessage","invalidMinFileSizeMessage","extendSelection","validationMessageMode","uploadFile","uploadChunk","abortUpload","validationMessageOffset","h","v","hoverStateEnabled","useNativeInputClick","useDragOver","nativeDropSupported","_uploadButtonType","_defaultOptionsRules","concat","device","real","deviceType","isSimulator","options","focusStateEnabled","platform","msie","isMaterial","_initOptions","isLabelTextDefined","_shouldDragOverBeRendered","option","_init","_initFileInput","_initLabel","_setUploadStrategy","_createFiles","_createBeforeSendAction","_createUploadStartedAction","_createUploadedAction","_createFilesUploadedAction","_createProgressAction","_createUploadErrorAction","_createUploadAbortedAction","_createDropZoneEnterAction","_createDropZoneLeaveAction","strategy","isFunction","CustomChunksFileUploadStrategy","DefaultChunksFileUploadStrategy","CustomWholeFileUploadStrategy","DefaultWholeFileUploadStrategy","_uploadStrategy","_this2","_isCustomClickEvent","_$fileInput","attr","on","_inputChangeHandler","bind","stopPropagation","_resetInputValue","prop","tabIndex","_doPreventInputChange","fileName","val","replace","files","length","_getFiles","_changeValue","_uploadFiles","_shouldFileListBeExtended","slice","fileList","values","each","_","push","_getFile","fileData","targetFileValue","isNumeric","_files","filter","file","_$inputLabel","_updateInputLabelText","correctedValue","_isInteractionDisabled","text","_focusTarget","find","_getSubmitElement","_initMarkup","addClass","_renderWrapper","_renderInputWrapper","_renderSelectButton","_renderInputContainer","_renderUploadButton","_preventRecreatingFiles","_render","_attachDragEventHandlers","_$inputWrapper","_renderFiles","_createFileProgressBar","progressBar","_createProgressBar","size","appendTo","$file","_initStatusMessage","_ensureCancelButtonInitialized","_setStatusMessage","message","_this3","setTimeout","$statusMessage","css","remove","_getUploadAbortedStatusMessage","_this4","_preventFilesUploading","_createFile","_validateFile","_this5","forEach","isValidFileExtension","_validateFileExtension","isValidMinSize","_validateMinFileSize","isValidMaxSize","_validateMaxFileSize","allowedExtensions","fileExtension","substring","lastIndexOf","toLowerCase","i","fileSize","_beforeSendAction","_createActionByOption","excludeValidators","_uploadStartedAction","_uploadedAction","_filesUploadedAction","_progressAction","_uploadAbortedAction","_uploadErrorAction","_dropZoneEnterAction","_dropZoneLeaveAction","loadedSize","onAbort","onLoad","onError","onLoadStart","isValid","isInitialized","_resetFileState","isAborted","uploadStarted","isStartLoad","chunksData","request","_this$_validationMess","_this6","_$filesContainer","empty","_$content","_renderFile","toggleClass","_toggleFileUploaderEmptyClassName","_updateFileNameMaxWidth","_validationMessage","repaint","$fileContainer","_renderFileButtons","$fileInfo","isDefined","_getFileSize","append","_createValidationElement","key","cancelButtonsCount","uploadButtonsCount","filesContainerWidth","first","width","buttonsWidth","eq","$fileSize","prevFileSize","fileSizeWidth","$container","$cancelButton","_getCancelButton","$uploadButton","_getUploadButton","_this7","cancelButton","_createComponent","FILEUPLOADER_BUTTON_CLASS","onClick","_removeFile","icon","visible","disabled","integrationOptions","_this8","uploadButton","_uploadFile","add","_file$$file","parent","splice","inArray","removeFile","_hasInvalidFile","labels","count","Math","round","$button","_selectFileDialogHandler","_selectButtonClickHandler","_attachSelectFileDialogHandler","target","_detachSelectFileDialogHandler","off","_uploadButton","_uploadButtonClickHandler","type","_$inputContainer","_renderInput","labelId","setAria","_selectButtonInputTemplate","_applyInputAttributes","data","content","$content","$text","_detachDragEventHandlers","addNamespace","NAME","isCustomTarget","_dragEventsTargets","_dragEnterHandler","_dragOverHandler","_dragLeaveHandler","_dropHandler","customAttributes","_useInputForDrop","_tryToggleDropZoneActive","_updateEventTargets","originalEvent","dataTransfer","dropEffect","targetIndex","indexOf","isTargetExists","active","isCustom","event","classAction","mouseAction","dropZoneElement","currentTarget","removeClass","_filterFiles","_handleAllFilesUploaded","every","_isError","_isLoaded","result","allowedTypes","_getAllowedFileTypes","n","_isFileTypeAllowed","acceptSting","split","map","item","trim","allowedType","match","RegExp","$wrapper","_clean","detach","upload","_this9","_updateProgressBar","loadedFileData","loaded","showStatus","segmentSize","currentSegmentSize","bytesLoaded","bytesTotal","total","_updateTotalProgress","totalFilesSize","totalLoadedFilesSize","_getProgressValue","_setLoadedSize","ratio","floor","_this10","hideCancelButton","_this11","min","max","statusFormat","statusPosition","_getTotalFilesSize","_this12","_totalFilesSize","_getTotalLoadedFilesSize","_this13","_totalLoadedFilesSize","_recalculateProgress","_updateReadOnlyState","readOnly","_file$cancelButton","_updateHoverState","_this$_selectButton","_this$_uploadButton","_file$uploadButton","_file$cancelButton2","_optionChanged","args","previousValue","reset","_invalidate","force","FileBlobReader","index","_proto2","read","createBlobResult","isCompleted","currentPosition","blob","sliceFile","startPos","webkitSlice","FileUploadStrategyBase","fileUploader","_proto3","_prepareFileBeforeUpload","_uploadCore","_this14","abort","_isCustomCallback","arg","_createUploadArgument","deferred","fromPromise","error","Deferred","reject","promise","done","fire","fail","_handleFileError","_beforeSend","xhr","uploadInfo","callback","_file$progressBar","dispose","_onUploadStarted","_onLoadedHandler","_onErrorHandler","_onAbortHandler","_onProgressHandler","_isStatusError","status","_getLoadedData","_extendFormData","formData","formDataEntries","entryName","hasOwnProperty","ChunksFileUploadStrategyBase","_FileUploadStrategyBa","_this15","_proto4","realFile","loadedBytes","blobReader","guid","ceil","customData","_sendChunk","_this16","chunk","currentChunk","_sendChunkCore","_shouldHandleError","_tryRaiseStartLoad","_getEvent","_createChunksInfo","bytesUploaded","chunkCount","chunkBlob","chunkIndex","_ChunksFileUploadStra","_proto5","_this17","sendRequest","url","method","headers","beforeSend","onloadstart","onabort","_createFormData","blobName","JSON","stringify","FileName","Index","TotalCount","FileSize","FileType","FileGuid","_ChunksFileUploadStra2","_proto6","chunksInfo","WholeFileUploadStrategyBase","_FileUploadStrategyBa2","_proto7","_this18","_handleProgress","_isProgressStarted","_WholeFileUploadStrat","_proto8","_this19","onprogress","fieldName","fieldValue","_WholeFileUploadStrat2","_proto9","_this20","_default","module","_ui","_popup","_Widget","FileManagerDialogBase","_createOnClosedAction","_getDialogOptions","$popup","popupCssClass","popupOptions","showTitle","title","closeOnOutsideClick","contentTemplate","_createContentTemplate","toolbarItems","widget","toolbar","location","buttonText","_applyDialogChanges","_closeDialog","onInitialized","_ref","component","registerKeyHandler","onHidden","_onPopupHidden","onShown","_onPopupShown","height","maxHeight","show","_dialogResult","contentCssClass","element","_$contentElement","cssClass","_getDialogResult","hide","_onClosedAction","dialogResult","_setTitle","newTitle","_setButtonText","newText","onClosed","_createOnPathChangedAction","_icon","_common","_uiTree_view","_uiFile_manager","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","Symbol","iterator","from","_iterableToArray","minLen","toString","test","_unsupportedIterableToArray","TypeError","_nonIterableSpread","len","arr2","_defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","FileManagerFilesTreeView","Constructor","protoProps","staticProps","_initActions","_getCurrentDirectory","_createFileActionsButton","noop","_storeExpandedState","$treeView","treeViewOptions","dataStructure","rootValue","createChildren","_onFilesTreeViewCreateSubDirectories","itemTemplate","_createFilesTreeViewItemTemplate","keyExpr","parentIdExpr","displayExpr","itemInfo","getDisplayName","hasItemsExpr","onItemClick","_actions","onDirectoryClick","onItemExpanded","_onFilesTreeViewItemExpanded","onItemCollapsed","_onFilesTreeViewItemCollapsed","onItemRendered","_onFilesTreeViewItemRendered","onContentReady","onFilesTreeViewContentReady","_contextMenu","_onContextMenuHidden","onItemContextMenu","_onFilesTreeViewItemContextMenu","_filesTreeView","that","_updateFocusedElement","rootItem","getDirectories","directoryInfo","itemData","currentDirectory","fileItem","equals","_restoreScrollTopPosition","_ref2","expanded","_ref3","itemIndex","itemElement","$itemElement","closest","_filesTreeViewItemSelector","$image","getImageContainer","_onFileItemActionButtonClick","_ref4","showAt","_ref5","_activeFileActionsButton","setActive","toggleNodeDisabledState","state","node","_getNodeByKey","getInternalKey","_saveScrollTopPosition","hasWindow","_scrollTopPosition","_scrollableContainer","scrollTop","scrollTo","_getItemElementByKey","_$focusedElement","_this$_filesTreeView","_getNode","_getPublicNode","_this$_filesTreeView2","nodesQueue","getNodes","shift","children","$node","_getNodeElement","storeExpandedState","initialFolder","contextMenu","getItems","getCurrentDirectory","toggleDirectoryExpandedState","treeViewNode","itemsLoaded","hasSubDirectories","resolve","action","refresh","updateCurrentDirectory","_disposed","_updateExpandedStateToCurrentDirectory","toggleDirectoryExpandedStateRecursive","parentDirectory","dirLine","dirInfo","unshift","toggleDirectoryLineExpandedState","then","get","FileManagerFileActionsButton","_createClickAction","stylingMode","_raiseClick","_clickAction","_double_click","_custom_store","FileManagerItemListBase","_lockFocusedItemProcessing","_focusedItemKey","dblClickEventName","_getItemSelector","_onItemDblClick","onSelectionChanged","onFocusedItemChanged","onSelectedItemOpened","selectionMode","selectedItemKeys","focusedItemKey","getItemThumbnail","_setSelectedItemKeys","_setFocusedItemKey","_getItems","_getItemsInternal","itemInfos","_itemCount","_resetFocus","parentDirectoryItem","_findParentDirectoryItem","_hasParentDirectoryItem","_parentDirectoryItemKey","itemsGetter","itemsResult","when","_raiseOnError","_raiseSelectionChanged","_raiseFocusedItemChanged","_raiseSelectedItemOpened","fileItemInfo","_tryRaiseSelectionChanged","selectedItemInfos","selectedItems","currentSelectedItemKeys","currentDeselectedItemKeys","getSelectedItems","_deselectItem","raiseEvent","_hasValidKeys","_filterOutItemByPredicate","_filterOutParentDirectory","_filterOutParentDirectoryKey","_onFocusedItemChanged","itemKey","_getItemThumbnail","fileInfo","itemThumbnailGetter","thumbnail","_getItemThumbnailContainer","_this$_getItemThumbna","$itemThumbnail","_getItemThumbnailCssClass","_isDesktop","_showContextMenu","items","offset","targetFileItem","_isParentDirectoryItem","_getFileItemsForContextMenu","isParentFolder","keys","array","createNewArray","predicate","_isMultipleSelectionMode","itemKeys","_createDataSource","store","load","clearSelection","selectItem","getConfig","caption","context","valueSeparator","dataTypes","editorTemplate","notForLookup","conditionInfo","container","$editorStart","FILTER_BUILDER_RANGE_CLASS","$editorEnd","getStartValue","getEndValue","_editorFactory","createEditor","field","parentType","setValue","OPERATION_ICONS","notcontains","contains","startswith","endswith","isblank","isnotblank","OPERATION_NAME","between","getIconByFilterOperation","filterOperation","getNameByFilterOperation","_dom_adapter","_class","_tree_view","_utils","_ui2","_utils2","ACTIONS","config","category","OPERATORS","and","or","notAnd","notOr","EditorFactory","inherit","FilterBuilder","callBase","onEditorPreparing","onEditorPrepared","onValueChanged","fields","defaultGroupOperation","groupOperations","maxGroupLevel","allowHierarchicalFields","groupOperationDescriptions","customOperations","closePopupOnTargetScroll","filterOperationDescriptions","equal","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","startsWith","notContains","endsWith","isBlank","isNotBlank","_initCustomOperations","disableInvalidateForValue","_disableInvalidateForValue","_initModel","executeAction","getFilterExpression","_getNormalizedFields","_model","getNormalizedFilter","_customOperations","getNormalizedFields","_updateFilter","normalizedValue","oldValue","_getModel","_fireContentReadyAction","_initEditorFactory","getMergedOperations","convertToInnerStructure","actionConfig","actionName","_createGroupElementByCriteria","_createConditionElement","condition","FILTER_BUILDER_CLASS","_createConditionItem","criteria","groupLevel","$group","_createGroupElement","$groupContent","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","rtlEnabled","position","onHiding","my","at","of","collision","animation","FILTER_BUILDER_OVERLAY_CLASS","popup","info","treeViewElement","treeView","dxTreeView","keyName","normalizeKeyName","focus","_subscribeOnClickAndEnterKey","_createPopupWithTreeView","_hasValueButton","customOperation","getCustomOperation","hasValue","_createOperationButtonWithMenu","availableOperations","getAvailableOperations","currentOperation","getOperationFromAvailable","getOperationValue","updateConditionByOperation","$valueButton","siblings","_createValueButton","_createOperationAndValueButtons","$item","_createFieldButtonWithMenu","getField","dataField","getFullCaption","getCaptionWithParents","$fieldButton","parentId","dataType","getDefaultOperation","getGroupValue","operation","$removeButton","FILTER_BUILDER_ACTION_CLASS","addGroupHandler","addConditionHandler","_createValueText","lookup","getCurrentLookupValueText","renderValueText","getCurrentValueText","_createValueEditorWithEvents","_updateConditionValue","_addDocumentKeyUp","$editor","isComposing","hasCompositionJustEnded","document","getDocument","documentKeyUpHandler","input","which","_documentKeyUpHandler","_addDocumentClick","closeEditorFunc","documentClickHandler","_isFocusOnEditorParts","_documentClickHandler","activeElement","getActiveElement","_removeEvents","_dispose","createValueText","closeEditor","_createValueEditor","not","shiftKey","prev","_getTemplate","render","model","contentElement","$menuContainer","getElementMaxHeightByWindow","closeOnTargetScroll","shading","_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","_controller","currentPath","currentPathKeys","rootText","fileProvider","uploadMaxFileSize","uploadChunkSize","_onControllerInitialized","onDataLoading","_onDataLoading","onSelectedDirectoryChanged","_onSelectedDirectoryChanged","_firstItemViewLoad","_lockSelectionProcessing","_itemKeyToFocus","_commandManager","FileManagerCommandManager","_createNotificationControl","_initCommandManager","$notificationControl","_notificationControl","progressPanelContainer","notificationControl","_createWrapper","onActionProgress","_onActionProgress","positionTarget","FILE_MANAGER_CLASS","_$wrapper","_createEditing","$toolbar","_toolbar","commandManager","generalItems","fileItems","itemViewMode","mode","onToolbarItemClick","_createAdaptivityControl","_adaptivityControl","drawerTemplate","_createFilesTreeView","_createItemsPanel","onAdaptiveStateChanged","_onAdaptiveStateChanged","$editingContainer","_editing","controller","getMultipleSelectedItems","_getSelectedItemInfos","_getItemThumbnailInfo","uploadDropZonePlaceholderContainer","onSuccess","updatedOnlyFiles","_redrawComponent","_onEditingError","_$itemsPanel","_createBreadcrumbs","_createItemView","isCommandAvailable","setUploaderDropZone","_filesTreeViewContextMenu","_createContextMenu","$filesTreeView","_setCurrentDirectory","viewMode","_itemViewContextMenu","itemViewOptions","_getItemViewItems","_showError","_onItemViewSelectionChanged","_onItemViewFocusedItemChanged","_onSelectedItemOpened","customizeDetailColumns","detailColumns","$itemView","widgetClass","_itemView","$breadcrumbs","_breadcrumbs","rootFolderDisplayName","onCurrentDirectoryChanging","setCurrentDirectory","isolateCreationItemCommands","viewArea","$contextMenu","onContextMenuItemClick","actions","getCommandActions","_refreshAndShowProgress","thumbnails","details","_clearSelection","showNavPane","toggleDrawer","registerActions","_updateToolbar","_ref6","enabled","setCommandEnabled","_ref7","updateRefreshItem","extendAttributes","onErrorOccurred","errorText","tryShowProgressPanel","ensureDefined","_switchView","_disposeWidget","_showNotification","isSuccess","onlyFileItemsView","showFolders","getCurrentItems","_updateToolbarWithSelectionOnFirstLoad","_getPreparedItemViewItems","findItemsByKeys","selectedDir","isRoot","parentDirItem","createClone","relativeName","itemsCopy","func","fileSystemProvider","rootFolderName","fileSelectionItems","itemView","columns","showParentFolder","customizeThumbnail","onCurrentDirectoryChanged","onSelectedFileOpened","permissions","copy","move","rename","download","setCurrentPath","setCurrentPathByKeys","setRootText","updateProvider","setAllowedFileExtensions","setUploadOptions","fullName","toolbarOptions","contextMenuItems","updateDialogRtl","executeCommand","commandName","checkActuality","_ref8","_syncToCurrentDirectory","_ref9","directory","getCurrentPath","pathKeys","equalByValue","parentDirectoryInfo","skipNavigationOnError","_ref10","isDirectory","newCurrentDirectory","_provider_base","_file_system_item","_object_provider","_remote_provider","_custom_provider","_errors","FileItemsController","_options","_isInitialized","_dataLoading","_dataLoadingDeferred","_rootDirectoryInfo","_createRootDirectoryInfo","_currentDirectoryInfo","_defaultIconMap","_createDefaultIconMap","_setSecurityController","_setProvider","_initialize","_securityController","FileSecurityController","_resetState","_fileProvider","_createFileProvider","_resetCurrentDirectory","path","pathParts","getPathParts","rawPath","pathCombine","_setCurrentDirectoryByPathParts","escapedName","getEscapedFileName","_getActualDirectoryInfo","requireRaiseSelectedDirectory","_raiseDataLoading","_raiseSelectedDirectoryChanged","onlyFiles","_getCurrentItemsInternal","getDirectoryContents","separatedItems","_separateItemsByType","folders","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","validateMaxFileSize","abortFileUpload","getFileUploadChunkSize","downloadItems","getItemContent","getItemsContent","_raiseEditActionStarting","_raiseEditActionResultAcquired","_raiseEditActionError","errorId","completeAction","actionResult","singleRequest","whenSome","_raiseCompleteEditActionItem","_raiseEditActionItemError","_raiseCompleteEditAction","targetItemInfos","pathInfo","_getPathInfo","_lockRefresh","_refreshDeferred","_executeDataLoad","_refreshInternal","cachedRootInfo","selectedKeyParts","_getDirectoryPathKeyParts","_loadItemsRecursive","_findDirectoryByPathKeyParts","cachedDirectoryInfo","dirInfos","itemDeferreds","_loop","cachedItem","cache","completeInitialization","_raiseInitialized","useKeys","_setCurrentDirectoryByPathPartsInternal","_getDirectoryByPathParts","tempDeferred","subDirInfo","d","restPathParts","keyParts","selectedDirInfo","newSelectedDir","dirPathInfo","_getFileItemDefaultIcon","displayName","isActualDirectoryRequired","extension","getFileExtension","rootDirectory","selectedDirectoryInfo","onEditActionStarting","onEditActionResultAcquired","onEditActionError","onEditActionItemError","onCompleteEditActionItem","onCompleteEditAction","_selectedDirectory","eventName","eventHandler","finalEventName","_this21","_extensionsMap","_allowedFileExtensions","toUpperCase","_this22","_isValidExtension","_throwError","WrongFileExtension","_maxFileSize","MaxFileSizeExceeded","_permissions","_initCommands","_commands","noFileItemRequired","isSingleFileItemCommand","delete","hint","_commandMap","command","isString","getCommandByName","itemsLength","some","DEFAULT_CONTEXT_MENU_ITEMS","beginGroup","DEFAULT_ITEM_ALLOWED_PROPERTIES","FileManagerContextMenu","_isVisible","$menu","showEvent","_onContextMenuItemClick","_raiseContextMenuHidden","createContextMenuItems","offsetX","offsetY","boundaryOffset","dataSource","_targetFileItems","_targetFileItem","srcItem","_configureItemByCommandName","_isContextMenuItemAvailable","menuItem","_isDefaultItem","_autoHide","_isIsolatedCreationItemCommand","_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","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","_isAllItemsSelected","selectableItemsCount","row","editorOptions","_onSelectAllCheckBoxValueChanged","selectAll","deselectAll","rowType","rowElement","$row","selectedRowsData","currentSelectedRowKeys","currentDeselectedRowKeys","_e$row2","_e$row","_selectItemSingleSelection","columnOption","cellInfo","$name","getDisplayFileSize","_selectItemMultipleSelection","deselectRows","oldFocusedItem","deselectedKeys","selectedKeys","isRowSelected","preserve","getController","isSelectionWithCheckboxes","selectRows","_this$_filesView","actualOptions","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","_syncFocusedItemKey","_itemThumbnailTemplate","_templateManager","addDefaultTemplates","BindableTemplate","itemModel","_getDefaultItemTemplate","_$scrollView","scrollByContent","scrollByThumb","useKeyboard","showScrollbar","_detachEventHandlers","_attachEventHandlers","upArrow","_beforeKeyProcessing","_processArrowKeys","downArrow","home","_processHomeEndKeys","end","_getItemsLength","pageUp","_processPageChange","pageDown","_getFocusedItem","A","isCommandKeyPressed","horizontal","eventArgs","layout","getLayoutModel","itemPerRowCount","newItemIndex","_getIndexByItem","_focusItemByIndex","scrollToItem","itemLayout","createItemLayoutModel","rowOffset","rowPerPageRate","newRowRate","itemRowIndex","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","success","FileManagerToolbar","_generalToolbarVisible","_createItemClickedAction","_$viewSwitcherPopup","_generalToolbar","_createToolbar","_fileToolbar","_getVisibleToolbar","_checkCompactMode","_itemClickedAction","_dimensionChanged","dimension","hidden","_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","_isCommandAvailable","_updateItemInToolbar","beginUpdate","endUpdate","contextItems","_update","generalToolbarOptions","fileToolbarOptions","_applyRefreshItemOptions","_refreshItemTextTimeout","_updateRefreshItemText","isDeferredUpdate","clearTimeout","showGeneralToolbar","_uiFile_managerNotification","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","openedStateMode","$progressPanelElement","_getProgressPanelComponent","onOperationClosed","_onProgressPanelOperationClosed","onOperationCanceled","_raiseOperationCanceled","onOperationItemCanceled","_raiseOperationItemCanceled","onPanelClosed","_showPopupError","commonErrorText","hasError","errorMode","$message","$separator","$details","createErrorDetailsProgressBox","renderError","_notificationPopup","dragEnabled","duration","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","completed","$commonText","_removeProgressBar","_setProgressBarText","_info$details","detailsItem","_renderOperationError","$target","progressBox","$progressBar","_getStatusString","closeButton","_displayClosedOperationItem","_raiseOperationClosed","next","_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","_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","_actionMetadata","_itemInfos","_onlyFiles","_items","_multipleItems","_location","_singleRequest","_completedItems","_commonProgress","_errorState","failedCount","_itemNewName","_setCurrentDetailError","_hasCompletedItems","set","successMessage","_uiFile_managerDialog","_uiFile_managerDialog2","_uiFile_managerDialog3","FileManagerDialogManager","_$element","baseDialogOptions","$chooseFolderDialog","_chooseDirectoryDialog","$renameDialog","_renameItemDialog","$createDialog","_createItemDialog","$deleteItemDialog","_deleteItemDialog","switchToCopyDialog","switchToMoveDialog","_text_box","_FileManagerDialogBas","FileManagerNameEditorDialog","_nameTextBox","_initialNameValue","$textBoxInput","_input","onEnterKey","_hasCompositionJustEnded","onKeyDown","_checkCompositionEnded","nameValue","FileManagerFolderChooserDialog","_resetDialogSelectedDirectory","_targetItemInfos","_getDialogSelectedDirectory","_onFilesTreeViewDirectoryClick","_toggleUnavailableLocationsDisabled","_selectedDirectoryInfo","isDisabled","locations","_getLocationsToProcess","locationsToExpand","locationsToCollapse","locationKeysToDisable","_expandMap$keys","expandLocations","collapseLocations","expandMap","getMapFromObject","collapseMap","FileManagerDeleteItemDialog","_$text","_initialText","_file_uploader","FileManagerFileUploader","_uploaderInfos","_createInternalFileUploader","_createDropZonePlaceholder","_setDropZonePlaceholderVisible","_getController","_onFileUploaderValueChanged","_onFileUploaderProgress","_onFileUploaderUploaded","_onFileUploaderUploadAborted","_onFileUploaderUploadError","_fileUploaderUploadChunk","_fileUploaderAbortUpload","uploaderInfo","_findAndUpdateAvailableUploaderInfo","_cancelUpload","_findUploaderInfoBySessionId","_this$_findSessionByF","_findSessionByFile","session","_this$_findSessionByF2","_findUploaderInfo","_this$_findSessionByF3","id","_raiseUploadProgress","_getDeferredForFile","_$dropZonePlaceholder","_adjustDropZonePlaceholder","$dropZoneTarget","placeholderBorderTopWidth","parseFloat","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","groupValue","filterHasField","filterOperations","getFilterOperations","isLookupField","_inflector","captionize","getCaptionByOperation","plainItems","hasParent","getParentIdFromItemDataField","lookupDataSource","_data_source","DataSource","loadSingle","valueExpr","valueText","_data","compileGetter","customizeText","checkDefaultValue","getArrayValueText","_len","_key","getPrimitiveValueText","isNegationGroup","getConditionFilterExpression","_filterExpression","availableGroups","getMatchedConditions","isMatchedCondition","betweenCaption","betweenIndex","_between","reduce","normalizedField","AVAILABLE_FIELD_PROPERTIES","defaultCalculateFilterExpression","_filtering","trueText","falseText","itemsForRemove","normalizedGroupValue","isValidCondition","setGroupCriteria","Error","isEmptyGroup","removeFieldConditionsFromFilter","syncConditionIntoGroup","isNegationValue","convertNegationGroupToGroup","convertGroupToNegationGroup","convertGroupToNewStructure","getNormalizedGroupValue","changeCriteriaValue","syncFilters","addedFilter","_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","addedFilterDataField","canPush","lastItemIndex","t","FILTER_BUILDER_ITEM_TEXT_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS"],"mappings":"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","file":"static/js/main~6a2c54cc.ba1870c3.chunk.js","sourcesContent":["/**\r\n * DevExtreme (ui/file_uploader.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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 hoverStateEnabled: true,\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 _this2._resetInputValue();\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._changeValue = function(value) {\r\n var files = this._shouldFileListBeExtended() ? this.option(\"value\").slice() : [];\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 hoverStateEnabled: this.option(\"hoverStateEnabled\")\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 hoverStateEnabled: this.option(\"hoverStateEnabled\")\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._resetInputValue(true)\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 hoverStateEnabled: this.option(\"hoverStateEnabled\")\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 hoverStateEnabled: this.option(\"hoverStateEnabled\")\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 this._detachSelectFileDialogHandler(this.option(\"dialogTrigger\"));\r\n this._detachDragEventHandlers(this.option(\"dropZone\"));\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._updateHoverState = function() {\r\n var _this$_selectButton, _this$_uploadButton;\r\n var value = this.option(\"hoverStateEnabled\");\r\n null === (_this$_selectButton = this._selectButton) || void 0 === _this$_selectButton ? void 0 : _this$_selectButton.option(\"hoverStateEnabled\", value);\r\n null === (_this$_uploadButton = this._uploadButton) || void 0 === _this$_uploadButton ? void 0 : _this$_uploadButton.option(\"hoverStateEnabled\", value);\r\n this._files.forEach(function(file) {\r\n var _file$uploadButton, _file$cancelButton2;\r\n null === (_file$uploadButton = file.uploadButton) || void 0 === _file$uploadButton ? void 0 : _file$uploadButton.option(\"hoverStateEnabled\", value);\r\n null === (_file$cancelButton2 = file.cancelButton) || void 0 === _file$cancelButton2 ? void 0 : _file$cancelButton2.option(\"hoverStateEnabled\", value)\r\n })\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 \"hoverStateEnabled\":\r\n this._updateHoverState();\r\n _Editor.prototype._optionChanged.call(this, args);\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._resetInputValue = function(force) {\r\n if (\"useForm\" === this.option(\"uploadMode\") && !force) {\r\n return\r\n }\r\n this._doPreventInputChange = true;\r\n this._$fileInput.val(\"\");\r\n this._doPreventInputChange = false\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) && !file.isAborted\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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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._closeDialog()\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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _filter_builder = _interopRequireDefault(require(\"./filter_builder/filter_builder\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _filter_builder.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (ui/file_manager/ui.file_manager.files_tree_view.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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 _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 _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 Object.defineProperty(Constructor, \"prototype\", {\r\n writable: false\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 };\r\n _proto._initActions = function() {\r\n this._actions = {\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._getPublicNode = function(key) {\r\n var _this$_filesTreeView2;\r\n var nodesQueue = _toConsumableArray(null === (_this$_filesTreeView2 = this._filesTreeView) || void 0 === _this$_filesTreeView2 ? void 0 : _this$_filesTreeView2.getNodes());\r\n while (nodesQueue.length) {\r\n var node = nodesQueue.shift();\r\n if (node.itemData.getInternalKey() === key) {\r\n return node\r\n } else {\r\n if (node.children.length) {\r\n nodesQueue.push.apply(nodesQueue, _toConsumableArray(node.children))\r\n }\r\n }\r\n }\r\n return\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 \"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._getPublicNode(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.itemData.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().parentDirectory, 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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 Object.defineProperty(Constructor, \"prototype\", {\r\n writable: false\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 }\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 })\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 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 if (0 === _this._itemCount) {\r\n _this._resetFocus()\r\n }\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._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._resetFocus = function() {};\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/filter_builder/between.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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 _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_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._init = function() {\r\n _Widget.prototype._init.call(this);\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 };\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._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 };\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._getSelectedItemInfos.bind(this)\r\n },\r\n getItemThumbnail: this._getItemThumbnailInfo.bind(this),\r\n notificationControl: notificationControl,\r\n uploadDropZonePlaceholderContainer: this.$element(),\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n onSuccess: function(_ref) {\r\n var updatedOnlyFiles = _ref.updatedOnlyFiles;\r\n return _this4._redrawComponent(updatedOnlyFiles)\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: function(_ref2) {\r\n var itemData = _ref2.itemData;\r\n return _this5._setCurrentDirectory(itemData)\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(_ref3) {\r\n var error = _ref3.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 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 };\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(_ref4) {\r\n var currentDirectory = _ref4.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 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._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 };\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.option(\"contextItems\", (0, _common.ensureDefined)(items, []))\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._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._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 _this14 = this;\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 \"rootFolderName\":\r\n this._controller.setRootText(args.value);\r\n this.repaint();\r\n break;\r\n case \"fileSystemProvider\":\r\n this._controller.updateProvider(args.value, this.option(\"currentPath\")).then(function() {\r\n return _this14.repaint()\r\n });\r\n break;\r\n case \"allowedFileExtensions\":\r\n this._controller.setAllowedFileExtensions(args.value);\r\n this.repaint();\r\n break;\r\n case \"upload\":\r\n this._controller.setUploadOptions(this.option(\"upload\"));\r\n this.repaint();\r\n break;\r\n case \"permissions\":\r\n case \"selectionMode\":\r\n case \"customizeThumbnail\":\r\n case \"customizeDetailColumns\":\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 case \"rtlEnabled\":\r\n this._editing.updateDialogRtl(args.value);\r\n _Widget.prototype._optionChanged.call(this, args);\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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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\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 Object.defineProperty(Constructor, \"prototype\", {\r\n writable: false\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._setSecurityController();\r\n this._setProvider(options.fileProvider);\r\n this._initialize()\r\n }\r\n var _proto = FileItemsController.prototype;\r\n _proto._setSecurityController = function() {\r\n this._securityController = new FileSecurityController({\r\n allowedFileExtensions: this._options.allowedFileExtensions,\r\n maxFileSize: this._options.uploadMaxFileSize\r\n });\r\n this._resetState()\r\n };\r\n _proto.setAllowedFileExtensions = function(allowedFileExtensions) {\r\n if ((0, _type.isDefined)(allowedFileExtensions)) {\r\n this._options.allowedFileExtensions = allowedFileExtensions\r\n }\r\n this._setSecurityController();\r\n this.refresh()\r\n };\r\n _proto.setUploadOptions = function(_ref) {\r\n var maxFileSize = _ref.maxFileSize,\r\n chunkSize = _ref.chunkSize;\r\n if ((0, _type.isDefined)(chunkSize)) {\r\n this._options.uploadChunkSize = chunkSize\r\n }\r\n if ((0, _type.isDefined)(maxFileSize)) {\r\n this._options.uploadMaxFileSize = maxFileSize;\r\n this._setSecurityController();\r\n this.refresh()\r\n }\r\n };\r\n _proto._setProvider = function(fileProvider) {\r\n this._fileProvider = this._createFileProvider(fileProvider);\r\n this._resetState()\r\n };\r\n _proto.updateProvider = function(fileProvider, currentPath) {\r\n var _this = this;\r\n this._resetCurrentDirectory();\r\n this._setProvider(fileProvider);\r\n return this.refresh().then(function() {\r\n return _this.setCurrentPath(currentPath)\r\n })\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 (new _deferred.Deferred).resolve().promise()\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._resetCurrentDirectory = function() {\r\n this._currentDirectoryInfo = this._rootDirectoryInfo\r\n };\r\n _proto.getCurrentItems = function(onlyFiles) {\r\n var _this2 = this;\r\n return this._dataLoadingDeferred ? this._dataLoadingDeferred.then(function() {\r\n return _this2._getCurrentItemsInternal(onlyFiles)\r\n }) : this._getCurrentItemsInternal(onlyFiles)\r\n };\r\n _proto._getCurrentItemsInternal = function(onlyFiles) {\r\n var _this3 = 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 = _this3._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 _this4 = 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 && _this4._createDirectoryInfo(fileItem, parentDirectoryInfo) || _this4._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 _this4._loadedItems[dirKey]\r\n });\r\n return loadItemsDeferred\r\n };\r\n _proto._getFileItems = function(parentDirectoryInfo, skipNavigationOnError) {\r\n var _this5 = 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 _this5._securityController.getAllowedItems(fileItems)\r\n }, function(errorInfo) {\r\n return _this5._handleItemLoadError(parentDirectoryInfo, errorInfo, skipNavigationOnError)\r\n })\r\n };\r\n _proto.createDirectory = function(parentDirectoryInfo, name) {\r\n var _this6 = 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 _this6._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 _this6._resetDirectoryState(parentDirectoryInfo, true)\r\n })\r\n };\r\n _proto.renameItem = function(fileItemInfo, name) {\r\n var _this7 = 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 _this7._securityController.validateExtension(name)\r\n }\r\n return _this7._fileProvider.renameItem(fileItemInfo.fileItem, name)\r\n }, function() {\r\n var parentDirectory = _this7._getActualDirectoryInfo(fileItemInfo.parentDirectory);\r\n _this7._resetDirectoryState(parentDirectory);\r\n _this7.setCurrentDirectory(parentDirectory)\r\n })\r\n };\r\n _proto.moveItems = 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(\"move\", itemInfos, destinationDirectory);\r\n return this._processEditAction(actionInfo, function() {\r\n return _this8._fileProvider.moveItems(items, destinationDirectory.fileItem)\r\n }, function() {\r\n destinationDirectory = _this8._getActualDirectoryInfo(destinationDirectory);\r\n itemInfos.forEach(function(itemInfo) {\r\n return _this8._resetDirectoryState(itemInfo.parentDirectory, true)\r\n });\r\n _this8._resetDirectoryState(destinationDirectory);\r\n _this8.setCurrentDirectory(destinationDirectory);\r\n destinationDirectory.expanded = true\r\n })\r\n };\r\n _proto.copyItems = function(itemInfos, destinationDirectory) {\r\n var _this9 = 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 _this9._fileProvider.copyItems(items, destinationDirectory.fileItem)\r\n }, function() {\r\n destinationDirectory = _this9._getActualDirectoryInfo(destinationDirectory);\r\n _this9._resetDirectoryState(destinationDirectory);\r\n _this9.setCurrentDirectory(destinationDirectory);\r\n destinationDirectory.expanded = true\r\n })\r\n };\r\n _proto.deleteItems = function(itemInfos) {\r\n var _this10 = 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 _this10._fileProvider.deleteItems(items)\r\n }, function() {\r\n itemInfos.forEach(function(itemInfo) {\r\n var parentDir = _this10._getActualDirectoryInfo(itemInfo.parentDirectory);\r\n _this10._resetDirectoryState(parentDir);\r\n _this10.setCurrentDirectory(parentDir)\r\n })\r\n })\r\n };\r\n _proto.processUploadSession = function(sessionInfo, uploadDirectoryInfo) {\r\n var _this11 = 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 _this11._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 _this12 = 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 _this12._raiseCompleteEditActionItem(actionInfo, info)\r\n }, function(errorInfo) {\r\n return _this12._raiseEditActionItemError(actionInfo, errorInfo)\r\n }).then(function() {\r\n completeAction();\r\n _this12._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 _this13 = 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 _this13._refreshDeferred = _this13._refreshInternal()\r\n }, \"refresh\")\r\n };\r\n _proto._refreshInternal = function() {\r\n var _this14 = 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 = _this14._findDirectoryByPathKeyParts(selectedKeyParts);\r\n _this14.setCurrentDirectory(dirInfo);\r\n delete _this14._lockRefresh\r\n })\r\n };\r\n _proto._loadItemsRecursive = function(directoryInfo, cachedDirectoryInfo) {\r\n var _this15 = 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(_this15._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 _this16 = 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 _this16._isInitialized = true;\r\n _this16._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 _this17 = this;\r\n return this._executeDataLoad(function() {\r\n return _this17._setCurrentDirectoryByPathPartsInternal(pathParts, useKeys)\r\n }, \"navigation\")\r\n };\r\n _proto._setCurrentDirectoryByPathPartsInternal = function(pathParts, useKeys) {\r\n var _this18 = 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 _this18.setCurrentDirectory(directoryInfo)\r\n })\r\n };\r\n _proto._executeDataLoad = function(action, operation) {\r\n var _this19 = this;\r\n if (this._dataLoadingDeferred) {\r\n return this._dataLoadingDeferred.then(function() {\r\n return _this19._executeDataLoad(action, operation)\r\n })\r\n }\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 var tempDeferred = _this19._dataLoadingDeferred;\r\n _this19._dataLoadingDeferred = null;\r\n _this19._dataLoading = false;\r\n tempDeferred.resolve()\r\n })\r\n };\r\n _proto._getDirectoryByPathParts = function(parentDirectoryInfo, pathParts, useKeys) {\r\n var _this20 = 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 _this20._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.setRootText = function(rootText) {\r\n this._rootDirectoryInfo.displayName = rootText || DEFAULT_ROOT_FILE_SYSTEM_ITEM_NAME\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 _this21 = 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 _this21._extensionsMap[extension.toUpperCase()] = true\r\n })\r\n }\r\n var _proto2 = FileSecurityController.prototype;\r\n _proto2.getAllowedItems = function(items) {\r\n var _this22 = 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 || _this22._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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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 Object.defineProperty(Constructor, \"prototype\", {\r\n writable: false\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 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 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 \"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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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 };\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._resetFocus = function() {\r\n this._setFocusedItemKey(void 0)\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 && !this._isParentDirectoryItem(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 var _this$_filesView;\r\n null === (_this$_filesView = this._filesView) || void 0 === _this$_filesView ? void 0 : _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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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._init = function() {\r\n _Widget.prototype._init.call(this);\r\n this._generalToolbarVisible = true\r\n };\r\n _proto._initMarkup = function() {\r\n this._commandManager = this.option(\"commandManager\");\r\n this._createItemClickedAction();\r\n this._$viewSwitcherPopup = (0, _renderer.default)(\"
\").addClass(FILE_MANAGER_VIEW_SWITCHER_POPUP_CLASS);\r\n this._generalToolbar = this._createToolbar(this.option(\"generalItems\"), !this._generalToolbarVisible);\r\n this._fileToolbar = this._createToolbar(this.option(\"fileItems\"), this._generalToolbarVisible);\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._clean = function() {\r\n delete this._commandManager;\r\n delete this._itemClickedAction;\r\n delete this._$viewSwitcherPopup;\r\n delete this._generalToolbar;\r\n delete this._fileToolbar;\r\n _Widget.prototype._clean.call(this)\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) {\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);\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) {\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);\r\n item.visible = (0, _type.isDefined)(originalVisible) ? originalVisible : item._available\r\n };\r\n _proto._fileToolbarHasEffectiveItems = function() {\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)\r\n })\r\n };\r\n _proto._executeCommand = function(command) {\r\n this._commandManager.executeCommand(command)\r\n };\r\n _proto._isToolbarItemAvailable = function(toolbarItem) {\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._isCommandAvailable(toolbarItem.name)\r\n };\r\n _proto._isFileToolbarItemAvailable = function(_ref2) {\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._isCommandAvailable(name)\r\n };\r\n _proto._isCommandAvailable = function(name) {\r\n return this._commandManager.isCommandAvailable(name, this.option(\"contextItems\"))\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 contextItems: [],\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 \"contextItems\":\r\n this._update();\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() {\r\n var showGeneralToolbar = 0 === this.option(\"contextItems\").length || !this._fileToolbarHasEffectiveItems();\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);\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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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 Object.defineProperty(Constructor, \"prototype\", {\r\n writable: false\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 rtlEnabled: this.option(\"rtlEnabled\"),\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 if (!itemInfo) {\r\n return (new _deferred.Deferred).reject().promise()\r\n }\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 if (0 === itemInfos.length) {\r\n return (new _deferred.Deferred).reject().promise()\r\n }\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 if (0 === itemInfos.length) {\r\n return (new _deferred.Deferred).reject().promise()\r\n }\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 if (0 === itemInfos.length) {\r\n return (new _deferred.Deferred).reject().promise()\r\n }\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 if (0 === itemInfos.length) {\r\n return (new _deferred.Deferred).reject().promise()\r\n }\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.updateDialogRtl = function(value) {\r\n this._dialogManager.updateDialogRtl(value)\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 }\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 })\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 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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 baseDialogOptions = {\r\n onClosed: this._options.onDialogClosed,\r\n rtlEnabled: this._options.rtlEnabled\r\n };\r\n var $chooseFolderDialog = (0, _renderer.default)(\"
\").appendTo(this._$element);\r\n this._chooseDirectoryDialog = new _uiFile_managerDialog2.default($chooseFolderDialog, (0, _extend.extend)(baseDialogOptions, this._options.chooseDirectoryDialog));\r\n var $renameDialog = (0, _renderer.default)(\"
\").appendTo(this._$element);\r\n this._renameItemDialog = new _uiFile_managerDialog.default($renameDialog, (0, _extend.extend)(baseDialogOptions, {\r\n title: _message.default.format(\"dxFileManager-dialogRenameItemTitle\"),\r\n buttonText: _message.default.format(\"dxFileManager-dialogRenameItemButtonText\")\r\n }));\r\n var $createDialog = (0, _renderer.default)(\"
\").appendTo(this._$element);\r\n this._createItemDialog = new _uiFile_managerDialog.default($createDialog, (0, _extend.extend)(baseDialogOptions, {\r\n title: _message.default.format(\"dxFileManager-dialogCreateDirectoryTitle\"),\r\n buttonText: _message.default.format(\"dxFileManager-dialogCreateDirectoryButtonText\")\r\n }));\r\n var $deleteItemDialog = (0, _renderer.default)(\"
\").appendTo(this._$element);\r\n this._deleteItemDialog = new _uiFile_managerDialog3.default($deleteItemDialog, baseDialogOptions)\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 _proto.updateDialogRtl = function(value) {\r\n [this._chooseDirectoryDialog, this._renameItemDialog, this._createItemDialog, this._deleteItemDialog].forEach(function(dialog) {\r\n dialog.option(\"rtlEnabled\", value)\r\n })\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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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 var _this = this;\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: function() {\r\n return _this._hasCompositionJustEnded && _this._applyDialogChanges()\r\n },\r\n onKeyDown: function(e) {\r\n return _this._checkCompositionEnded(e)\r\n }\r\n });\r\n this._$contentElement.append(this._nameTextBox.$element())\r\n };\r\n _proto._checkCompositionEnded = function(_ref) {\r\n var event = _ref.event;\r\n this._hasCompositionJustEnded = 229 !== event.which\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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.whenSome = exports.getMapFromObject = exports.getDisplayFileSize = exports.findItemsByKeys = exports.extendAttributes = 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.addItem = addItem;\r\nexports.convertToInnerStructure = convertToInnerStructure;\r\nexports.createCondition = createCondition;\r\nexports.createEmptyGroup = createEmptyGroup;\r\nexports.filterHasField = filterHasField;\r\nexports.getAvailableOperations = getAvailableOperations;\r\nexports.getCaptionByOperation = getCaptionByOperation;\r\nexports.getCaptionWithParents = getCaptionWithParents;\r\nexports.getCurrentLookupValueText = getCurrentLookupValueText;\r\nexports.getCurrentValueText = getCurrentValueText;\r\nexports.getCustomOperation = getCustomOperation;\r\nexports.getDefaultOperation = getDefaultOperation;\r\nexports.getField = getField;\r\nexports.getFilterExpression = getFilterExpression;\r\nexports.getFilterOperations = getFilterOperations;\r\nexports.getGroupCriteria = getGroupCriteria;\r\nexports.getGroupMenuItem = getGroupMenuItem;\r\nexports.getGroupValue = getGroupValue;\r\nexports.getItems = getItems;\r\nexports.getMatchedConditions = getMatchedConditions;\r\nexports.getMergedOperations = getMergedOperations;\r\nexports.getNormalizedFields = getNormalizedFields;\r\nexports.getNormalizedFilter = getNormalizedFilter;\r\nexports.getOperationFromAvailable = getOperationFromAvailable;\r\nexports.getOperationValue = getOperationValue;\r\nexports.isCondition = isCondition;\r\nexports.isEmptyGroup = isEmptyGroup;\r\nexports.isGroup = isGroup;\r\nexports.isValidCondition = isValidCondition;\r\nexports.removeFieldConditionsFromFilter = removeFieldConditionsFromFilter;\r\nexports.removeItem = removeItem;\r\nexports.renderValueText = void 0;\r\nexports.setGroupValue = setGroupValue;\r\nexports.syncFilters = syncFilters;\r\nexports.updateConditionByOperation = updateConditionByOperation;\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, options) {\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 }, options)\r\n }\r\n return valueText\r\n}\r\n\r\nfunction getArrayValueText(field, value, customOperation, target) {\r\n var options = {\r\n values: value\r\n };\r\n return value.map(function(v) {\r\n return getPrimitiveValueText(field, v, customOperation, target, options)\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"],"sourceRoot":""}