@iobroker/adapter-react-v5 4.9.10 → 4.9.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/AdminConnection.js.map +1 -1
  2. package/Components/404.js.map +1 -1
  3. package/Components/ColorPicker.js.map +1 -1
  4. package/Components/ComplexCron.js.map +1 -1
  5. package/Components/CustomModal.js.map +1 -1
  6. package/Components/FileBrowser.js.map +1 -1
  7. package/Components/FileViewer.js.map +1 -1
  8. package/Components/Icon.js.map +1 -1
  9. package/Components/IconPicker.js.map +1 -1
  10. package/Components/IconSelector.js.map +1 -1
  11. package/Components/Loader.js.map +1 -1
  12. package/Components/Loaders/PT.js.map +1 -1
  13. package/Components/Loaders/Vendor.js.map +1 -1
  14. package/Components/ObjectBrowser.js +4 -6
  15. package/Components/ObjectBrowser.js.map +1 -1
  16. package/Components/Router.js.map +1 -1
  17. package/Components/SelectWithIcon.js.map +1 -1
  18. package/Components/SimpleCron/cron2text.js.map +1 -1
  19. package/Components/SimpleCron/cronText.js.map +1 -1
  20. package/Components/SimpleCron/index.js.map +1 -1
  21. package/Components/SimpleCron/jquery.cron.locale.js.map +1 -1
  22. package/Components/TableResize.js.map +1 -1
  23. package/Components/TextWithIcon.js.map +1 -1
  24. package/Components/TreeTable.js.map +1 -1
  25. package/Components/UploadImage.js.map +1 -1
  26. package/Components/withWidth.js.map +1 -1
  27. package/Connection.js.map +1 -1
  28. package/Dialogs/ComplexCron.js.map +1 -1
  29. package/Dialogs/Cron.js.map +1 -1
  30. package/Dialogs/SelectFile.js.map +1 -1
  31. package/Dialogs/SimpleCron.js.map +1 -1
  32. package/Dialogs/TextInput.js.map +1 -1
  33. package/GenericApp.d.ts +4 -4
  34. package/GenericApp.js +1 -1
  35. package/GenericApp.js.map +1 -1
  36. package/LegacyConnection.js.map +1 -1
  37. package/README.md +3 -0
  38. package/Theme.js.map +1 -1
  39. package/i18n.js.map +1 -1
  40. package/icons/IconAdapter.js.map +1 -1
  41. package/icons/IconAlias.js.map +1 -1
  42. package/icons/IconChannel.js.map +1 -1
  43. package/icons/IconClearFilter.js.map +1 -1
  44. package/icons/IconClosed.js.map +1 -1
  45. package/icons/IconCopy.js.map +1 -1
  46. package/icons/IconDevice.js.map +1 -1
  47. package/icons/IconDocument.js.map +1 -1
  48. package/icons/IconDocumentReadOnly.js.map +1 -1
  49. package/icons/IconExpert.js.map +1 -1
  50. package/icons/IconFx.js.map +1 -1
  51. package/icons/IconInstance.js.map +1 -1
  52. package/icons/IconLogout.js.map +1 -1
  53. package/icons/IconNoIcon.js.map +1 -1
  54. package/icons/IconOpen.js.map +1 -1
  55. package/icons/IconState.js.map +1 -1
  56. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"FileBrowser.js","names":["_react","_interopRequireWildcard","require","_styles","_propTypes","_interopRequireDefault","_reactDropzone","_material","_iconsMaterial","_Error","_Utils","_TextInput","_IconExpert","_IconClosed","_IconOpen","_IconNoIcon","_withWidth","_FileViewer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof3","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_callSuper","o","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","valueOf","ROW_HEIGHT","BUTTON_WIDTH","TILE_HEIGHT","TILE_WIDTH","NOT_FOUND","FILE_TYPE_ICONS","all","FileIcon","images","TypeIconImages","code","JSIcon","txt","TypeIconTxt","audio","TypeIconAudio","video","TypeIconVideo","styles","theme","dialog","height","concat","mixins","toolbar","minHeight","root","width","overflow","position","filesDiv","spacing","overflowX","overflowY","padding","filesDivHint","bottom","left","opacity","fontStyle","fontSize","filesDivTable","parseInt","filesDivTile","display","alignContent","alignItems","flexWrap","flex","itemTile","userSelect","cursor","textAlign","transition","margin","background","palette","secondary","light","color","Utils","invertColor","main","itemNameFolderTile","fontWeight","itemNameTile","textOverflow","wordBreak","itemFolderIconTile","paddingLeft","itemFolderIconBack","top","zIndex","mode","itemSizeTile","itemImageTile","objectFit","itemIconTile","itemSelected","primary","itemTable","lineHeight","itemNameTable","verticalAlign","flexGrow","itemNameFolderTable","itemSizeTable","itemAccessTable","paddingRight","justifyContent","itemImageTable","marginTop","maxHeight","itemIconTable","itemFolderTable","itemFolderTemp","itemFolderIconTable","marginLeft","itemDownloadButtonTable","minWidth","borderRadius","backgroundColor","paddingTop","itemDownloadEmptyTable","itemAclButtonTable","itemDeleteButtonTable","uploadDiv","right","uploadDivDragging","uploadCenterDiv","border","uploadCenterIcon","uploadCenterText","uploadCloseButton","uploadCenterTextAndIcon","menuButtonExpertActive","menuButtonRestrictActive","pathDiv","marginRight","whiteSpace","pathDivInput","pathDivBreadcrumbDir","backgroundImageLight","backgroundImageDark","backgroundImageColored","direction","specialFolder","USER_DATA","sortFolders","b","folder","name","getParentDir","dir","parts","split","length","pop","join","isFile","path","ext","getFileExtension","toLowerCase","match","TABLE","TILE","FileBrowser","_Component","_inherits2","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","id","fileName","size","key","pos","lastIndexOf","substring","console","log","state","folders","_tempTimeout","clearTimeout","setTimeout","browseFolder","then","setState","array","_ref","backgroundImage","indexOf","window","_localStorage","localStorage","setItem","classes","expanded","getItem","limitPath","limitToObjectID","limitToPath","endsWith","JSON","parse","filter","startsWith","viewType","showViewTypeButton","selected","currentDir","restrictToFolder","push","Array","isArray","filterEmpty","expertMode","addFolder","uploadFile","deleteItem","viewer","formatEditFile","errorText","modalEditOfAccess","queueLength","loadAllFolders","fileErrors","filterByType","showTypesMenu","imagePrefix","levelPadding","mounted","suppressDeleteConfirm","browseList","browseListRunning","initialReadFinished","supportSubscribes","_createClass2","value","_loadFolders","_asyncToGenerator2","_regenerator","mark","_callee","_this2","wrap","_callee$","_context","prev","next","sent","browseFolders","_toConsumableArray2","findItem","pathFocus","scrollToSelected","stop","loadFolders","arguments","el","document","getElementById","scrollIntoView","componentDidMount","_this3","socket","checkFeatureSupported","result","subscribeFiles","onFileChange","componentWillUnmount","unsubscribeFiles","values","forEach","timer","foldersList","_newFolders","_resolve","_this4","keys","Promise","resolve","shift","readDirSerial","adapter","relPath","_this5","reject","processBrowseList","level","_this6","processing","readDir","files","item","folderId","_checkEmpty","force","_this7","map","error","readMetaItems","objs","_folders","userData","obj","_id","findIndex","splice","title","common","meta","from","ts","icon","acl","sort","unshift","alert","file","isDir","stats","modified","modifiedAt","toggleFolder","_this8","stopPropagation","stringify","temp","err","changeFolder","_this9","lastSelect","Date","now","_folder","altKey","shiftKey","ctrlKey","metaKey","onSelect","select","cb","_this10","filterFiles","includes","EXTENSIONS","renderFolder","_this11","Icon","IconOpen","IconClosed","isUserData","isSpecialData","createElement","style","onClick","onDoubleClick","_typeof2","lang","end","className","clsx","undefined","Hidden","smDown","formatAcl","allowDownload","allowDelete","IconButton","Delete","renderBackFolder","_this12","ArrowBack","formatSize","formatBytes","_this13","access","permissions","toString","padStart","modalEditOfAccessControl","getFileIcon","Bookmark","BookmarkBorder","Code","Description","MusicNote","InsertDriveFile","renderFile","_this14","getClassBackgroundImage","onError","target","onerror","src","alt","getEditFile","Edit","tabIndex","download","href","SaveAlt","renderItems","_this15","res","CircularProgress","renderToolbar","_this16","IconType","showTypeSelector","isInFolder","findFirstFolder","Toolbar","variant","allowNonRestricted","edge","menuButton","FolderSpecial","showExpertButton","List","ViewModule","FolderOpen","Refresh","allowCreateFolder","disabled","CreateNewFolder","allowUpload","Publish","Tooltip","Menu","open","anchorEl","onClose","type","MyIcon","MenuItem","removeItem","ListItemIcon","ListItemText","setStateBackgroundImage","Brightness6","parentFolder","find","renderInputDialog","_this17","applyText","cancelText","titleText","promptText","labelText","verify","text","parent","replace","componentDidUpdate","_this18","setOpacityTimer","items","getElementsByClassName","data","writeFile64","_item","renderUpload","_this19","Fab","Close","onDragEnter","onDragLeave","onDrop","acceptedFiles","count","reader","FileReader","onabort","onload","readAsArrayBuffer","_ref2","getRootProps","getInputProps","_extends2","deleteRecursive","_this20","deleteFolder","parentId","f","deleteFile","_this21","newState","renderDeleteDialog","_this22","Dialog","DialogTitle","DialogContent","DialogContentText","DialogActions","Button","autoFocus","renderViewDialog","_this23","themeType","renderError","_this24","updateItemsAcl","info","_this25","cacheFolders","changed","it","cacheFoldersTimeout","changeToPath","_this26","renderBreadcrumb","_this27","p","Breadcrumbs","part","pathDivBreadcrumbSelected","renderPath","_this28","Input","onKeyDown","keyCode","endAdornment","KeyboardReturn","onBlur","onChange","render","_this29","ready","LinearProgress","foldersLoading","showToolbar","allowView","getDerivedStateFromProps","Component","defaultProps","propTypes","PropTypes","object","string","func","isRequired","bool","tileView","_export","withWidth","withStyles","_default","exports"],"sources":["FileBrowser.js"],"sourcesContent":["/**\n * Copyright 2020-2023, Denis Haev <dogafox@gmail.com>\n *\n * MIT License\n *\n * */\nimport React, { Component } from 'react';\nimport { withStyles } from '@mui/styles';\nimport PropTypes from 'prop-types';\nimport Dropzone from 'react-dropzone';\n\nimport {\n LinearProgress,\n Hidden,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Tooltip,\n CircularProgress,\n Toolbar,\n IconButton,\n Fab,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogContentText,\n DialogActions,\n Button,\n Input,\n Breadcrumbs,\n} from '@mui/material';\n\n// MUI Icons\nimport {\n Refresh as RefreshIcon,\n Close as CloseIcon,\n Bookmark as JsonIcon,\n BookmarkBorder as CssIcon,\n Description as HtmlIcon,\n Edit as EditIcon,\n Code as JSIcon,\n InsertDriveFile as FileIcon,\n Publish as UploadIcon,\n MusicNote as MusicIcon,\n SaveAlt as DownloadIcon,\n CreateNewFolder as AddFolderIcon,\n FolderOpen as EmptyFilterIcon,\n List as IconList,\n ViewModule as IconTile,\n ArrowBack as IconBack,\n Delete as DeleteIcon,\n Brightness6 as Brightness5Icon,\n Image as TypeIconImages,\n FontDownload as TypeIconTxt,\n AudioFile as TypeIconAudio,\n Videocam as TypeIconVideo,\n KeyboardReturn as EnterIcon,\n FolderSpecial as RestrictedIcon,\n} from '@mui/icons-material';\n\nimport ErrorDialog from '../Dialogs/Error';\nimport Utils from './Utils';\nimport TextInputDialog from '../Dialogs/TextInput';\n\n// Custom Icons\nimport ExpertIcon from '../icons/IconExpert';\nimport IconClosed from '../icons/IconClosed';\nimport IconOpen from '../icons/IconOpen';\nimport IconNoIcon from '../icons/IconNoIcon';\n\nimport withWidth from './withWidth';\n\nimport FileViewer, { EXTENSIONS } from './FileViewer';\n\nconst ROW_HEIGHT = 32;\nconst BUTTON_WIDTH = 32;\nconst TILE_HEIGHT = 120;\nconst TILE_WIDTH = 64;\n\nconst NOT_FOUND = 'Not found';\n\nconst FILE_TYPE_ICONS = {\n all: FileIcon,\n images: TypeIconImages,\n code: JSIcon,\n txt: TypeIconTxt,\n audio: TypeIconAudio,\n video: TypeIconVideo,\n};\n\nconst styles = theme => ({\n dialog: {\n height: `calc(100% - ${theme.mixins.toolbar.minHeight}px)`,\n },\n root: {\n width: '100%',\n overflow: 'hidden',\n height: '100%',\n position: 'relative',\n },\n filesDiv: {\n width: `calc(100% - ${theme.spacing(2)})`,\n overflowX: 'hidden',\n overflowY: 'auto',\n padding: theme.spacing(1),\n },\n filesDivHint: {\n position: 'absolute',\n bottom: 0,\n left: 20,\n opacity: 0.7,\n fontStyle: 'italic',\n fontSize: 12,\n },\n filesDivTable: {\n height: `calc(100% - ${48 + parseInt(theme.spacing(1), 10)}px)`,\n },\n filesDivTile: {\n height: `calc(100% - ${48 * 2 + parseInt(theme.spacing(1), 10)}px)`,\n display: 'flex',\n alignContent: 'flex-start',\n alignItems: 'stretch',\n flexWrap: 'wrap',\n flex: `0 0 ${TILE_WIDTH}px`,\n },\n\n itemTile: {\n position: 'relative',\n userSelect: 'none',\n cursor: 'pointer',\n height: TILE_HEIGHT,\n width: TILE_WIDTH,\n display: 'inline-block',\n textAlign: 'center',\n opacity: 0.1,\n transition: 'opacity 1s',\n margin: 4,\n '&:hover': {\n background: theme.palette.secondary.light,\n color: Utils.invertColor(theme.palette.secondary.main, true),\n },\n },\n itemNameFolderTile: {\n fontWeight: 'bold',\n },\n itemNameTile: {\n width: '100%',\n height: 32,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n fontSize: 12,\n textAlign: 'center',\n wordBreak: 'break-all',\n },\n itemFolderIconTile: {\n width: '100%',\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\n display: 'block',\n paddingLeft: 8,\n color: theme.palette.secondary.main || '#fbff7d',\n },\n itemFolderIconBack: {\n position: 'absolute',\n top: 22,\n left: 18,\n zIndex: 1,\n color: theme.palette.mode === 'dark' ? '#FFF' : '#000',\n },\n itemSizeTile: {\n width: '100%',\n height: 16,\n textAlign: 'center',\n fontSize: 10,\n },\n itemImageTile: {\n width: 'calc(100% - 8px)',\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\n margin: 4,\n display: 'block',\n textAlign: 'center',\n objectFit: 'contain',\n },\n itemIconTile: {\n width: '100%',\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\n display: 'block',\n objectFit: 'contain',\n },\n\n itemSelected: {\n background: theme.palette.primary.main,\n color: Utils.invertColor(theme.palette.primary.main, true),\n },\n\n itemTable: {\n userSelect: 'none',\n cursor: 'pointer',\n height: ROW_HEIGHT,\n display: 'inline-flex',\n lineHeight: `${ROW_HEIGHT}px`,\n '&:hover': {\n background: theme.palette.secondary.light,\n color: Utils.invertColor(theme.palette.secondary.main, true),\n },\n },\n itemNameTable: {\n display: 'inline-block',\n paddingLeft: 10,\n fontSize: '1rem',\n verticalAlign: 'top',\n flexGrow: 1,\n },\n itemNameFolderTable: {\n fontWeight: 'bold',\n },\n itemSizeTable: {\n display: 'inline-block',\n width: 60,\n verticalAlign: 'top',\n textAlign: 'right',\n },\n itemAccessTable: {\n // display: 'inline-block',\n verticalAlign: 'top',\n width: 60,\n textAlign: 'right',\n paddingRight: 5,\n display: 'flex',\n justifyContent: 'center',\n },\n itemImageTable: {\n display: 'inline-block',\n width: 30,\n marginTop: 1,\n objectFit: 'contain',\n maxHeight: 30,\n },\n itemIconTable: {\n display: 'inline-block',\n marginTop: 1,\n width: 30,\n height: 30,\n },\n itemFolderTable: {\n\n },\n itemFolderTemp: {\n opacity: 0.4,\n },\n itemFolderIconTable: {\n marginTop: 1,\n marginLeft: theme.spacing(1),\n display: 'inline-block',\n width: 30,\n height: 30,\n color: theme.palette.secondary.main || '#fbff7d',\n },\n itemDownloadButtonTable: {\n display: 'inline-block',\n width: BUTTON_WIDTH,\n height: ROW_HEIGHT,\n minWidth: BUTTON_WIDTH,\n verticalAlign: 'middle',\n textAlign: 'center',\n padding: 0,\n borderRadius: BUTTON_WIDTH / 2,\n '&:hover': {\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255, 255, 255, 0.08)' : 'rgba(0, 0, 0, 0.08)',\n },\n '& span': {\n paddingTop: 9,\n },\n '& svg': {\n width: 14,\n height: 14,\n fontSize: '1rem',\n marginTop: -3,\n verticalAlign: 'middle',\n color: theme.palette.mode === 'dark' ? '#EEE' : '#111',\n },\n },\n itemDownloadEmptyTable: {\n display: 'inline-block',\n width: BUTTON_WIDTH,\n height: ROW_HEIGHT,\n minWidth: BUTTON_WIDTH,\n padding: 0,\n },\n itemAclButtonTable: {\n width: BUTTON_WIDTH,\n height: ROW_HEIGHT,\n minWidth: BUTTON_WIDTH,\n verticalAlign: 'top',\n padding: 0,\n fontSize: 12,\n display: 'flex',\n },\n itemDeleteButtonTable: {\n display: 'inline-block',\n width: BUTTON_WIDTH,\n height: ROW_HEIGHT,\n minWidth: BUTTON_WIDTH,\n verticalAlign: 'top',\n padding: 0,\n '& svg': {\n width: 18,\n height: 18,\n fontSize: '1.5rem',\n },\n },\n\n uploadDiv: {\n top: 0,\n zIndex: 1,\n bottom: 0,\n left: 0,\n right: 0,\n position: 'absolute',\n opacity: 0.9,\n textAlign: 'center',\n background: '#FFFFFF',\n },\n uploadDivDragging: {\n opacity: 1,\n },\n\n uploadCenterDiv: {\n margin: 20,\n border: '3px dashed grey',\n borderRadius: 30,\n width: 'calc(100% - 40px)',\n height: 'calc(100% - 40px)',\n position: 'relative',\n color: theme.palette.mode === 'dark' ? '#222' : '#CCC',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n uploadCenterIcon: {\n width: '25%',\n height: '25%',\n },\n uploadCenterText: {\n fontSize: 24,\n fontWeight: 'bold',\n },\n uploadCloseButton: {\n zIndex: 2,\n position: 'absolute',\n top: 30,\n right: 30,\n },\n uploadCenterTextAndIcon: {\n position: 'absolute',\n height: '30%',\n width: '100%',\n margin: 'auto',\n opacity: 0.3,\n },\n menuButtonExpertActive: {\n color: '#c00000',\n },\n menuButtonRestrictActive: {\n color: '#c05000',\n },\n pathDiv: {\n display: 'flex',\n width: `calc(100% - ${theme.spacing(2)})`,\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n textOverflow: 'clip',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n backgroundColor: theme.palette.secondary.main,\n },\n pathDivInput: {\n width: '100%',\n },\n pathDivBreadcrumbDir: {\n paddingLeft: 2,\n paddingRight: 2,\n cursor: 'pointer',\n '&:hover': {\n background: theme.palette.primary.main,\n },\n },\n backgroundImageLight: {\n background: 'white',\n },\n backgroundImageDark: {\n background: 'black',\n },\n backgroundImageColored: {\n background: 'silver',\n },\n '@media screen and (max-width: 500px)': {\n itemNameTable: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n textAlign: 'end',\n direction: 'rtl',\n },\n },\n specialFolder: {\n color: theme.palette.mode === 'dark' ? '#229b0f' : '#5dd300',\n },\n});\n\nconst USER_DATA = '0_userdata.0';\n\nfunction sortFolders(a, b) {\n if (a.folder && b.folder) {\n return a.name > b.name ? 1 : (a.name < b.name ? -1 : 0);\n }\n if (a.folder) {\n return -1;\n }\n if (b.folder) {\n return 1;\n }\n return a.name > b.name ? 1 : (a.name < b.name ? -1 : 0);\n}\n\nfunction getParentDir(dir) {\n const parts = (dir || '').split('/');\n parts.length && parts.pop();\n return parts.join('/');\n}\n\nfunction isFile(path) {\n const ext = Utils.getFileExtension(path);\n return !!(ext && ext.toLowerCase().match(/[a-z]+/) && ext.length < 5);\n}\n\nconst TABLE = 'Table';\nconst TILE = 'Tile';\n\n/**\n * @extends {React.Component<import('./types').FileBrowserProps>}\n */\nclass FileBrowser extends Component {\n /**\n * @param {Readonly<import(\"./types\").FileBrowserProps>} props\n */\n constructor(props) {\n super(props);\n let expanded = (window._localStorage || window.localStorage).getItem('files.expanded') || '[]';\n\n if (this.props.limitPath) {\n const parts = this.props.limitPath.split('/');\n this.limitToObjectID = parts[0];\n this.limitToPath = !parts.length ? null : (parts.length === 1 && parts[0] === '' ? null : parts.join('/'));\n if (this.limitToPath && this.limitToPath.endsWith('/')) {\n this.limitToPath.substring(0, this.limitToPath.length - 1);\n }\n }\n\n try {\n expanded = JSON.parse(expanded);\n if (this.limitToPath) {\n expanded = expanded.filter(id => id.startsWith(`${this.limitToPath}/`) || id === this.limitToPath || this.limitToPath.startsWith(`${id}/`));\n }\n } catch (e) {\n expanded = [];\n }\n\n let viewType;\n if (this.props.showViewTypeButton) {\n viewType = (window._localStorage || window.localStorage).getItem('files.viewType') || TABLE;\n } else {\n viewType = TABLE;\n }\n\n let selected = this.props.selected || (window._localStorage || window.localStorage).getItem('files.selected') || USER_DATA;\n\n let currentDir = '';\n\n if (props.restrictToFolder) {\n selected = props.restrictToFolder;\n currentDir = props.restrictToFolder;\n const parts = props.restrictToFolder.split('/');\n expanded = [];\n let path = '';\n for (let i = 0; i < parts.length; i++) {\n path += (path ? '/' : '') + parts[i];\n expanded.push(path);\n }\n } else {\n // TODO: Now we do not support multiple selection\n if (Array.isArray(selected)) {\n selected = selected[0];\n }\n\n if (isFile(selected)) {\n currentDir = getParentDir(selected);\n } else {\n currentDir = selected;\n }\n }\n const backgroundImage = (window._localStorage || window.localStorage).getItem('files.backgroundImage') || null;\n\n this.state = {\n viewType,\n folders: {},\n filterEmpty: (window._localStorage || window.localStorage).getItem('files.empty') !== 'false',\n expanded,\n currentDir,\n expertMode: this.props.expertMode,\n addFolder: false,\n uploadFile: false,\n deleteItem: '',\n // marked: [],\n viewer: '',\n formatEditFile: '',\n path: selected,\n selected,\n errorText: '',\n modalEditOfAccess: false,\n backgroundImage,\n queueLength: 0,\n loadAllFolders: false,\n // allFoldersLoaded: false,\n fileErrors: [],\n filterByType: props.filterByType || window.localStorage.getItem('files.filterByType') || '',\n showTypesMenu: null,\n restrictToFolder: props.restrictToFolder || '',\n };\n\n this.imagePrefix = this.props.imagePrefix || './files/';\n\n this.levelPadding = this.props.levelPadding || 20;\n this.mounted = true;\n this.suppressDeleteConfirm = 0;\n\n this.browseList = [];\n this.browseListRunning = false;\n this.initialReadFinished = false;\n this.supportSubscribes = null;\n this._tempTimeout = {};\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.expertMode !== undefined && props.expertMode !== state.expertMode) {\n return { expertMode: props.expertMode, loadAllFolders: true };\n }\n\n return null;\n }\n\n async loadFolders() {\n this.initialReadFinished = false;\n\n let folders = await this.browseFolder('/');\n\n if (this.state.viewType === TABLE) {\n folders = await this.browseFolders([...this.state.expanded], folders);\n } else if (\n this.state.currentDir &&\n this.state.currentDir !== '/' &&\n (!this.limitToObjectID || this.state.currentDir.startsWith(this.limitToObjectID))\n ) {\n folders = await this.browseFolder(this.state.currentDir, folders);\n }\n\n this.setState({ folders }, () => {\n if (this.state.viewType === TABLE && !this.findItem(this.state.selected)) {\n const parts = this.state.selected.split('/');\n while (parts.length && !this.findItem(parts.join('/'))) {\n parts.pop();\n }\n let selected;\n if (parts.length) {\n selected = parts.join('/');\n } else {\n selected = USER_DATA;\n }\n this.setState({ selected, path: selected, pathFocus: false }, () => this.scrollToSelected());\n } else {\n this.scrollToSelected();\n }\n this.initialReadFinished = true;\n });\n }\n\n scrollToSelected() {\n if (this.mounted) {\n const el = document.getElementById(this.state.selected);\n el && el.scrollIntoView();\n }\n }\n\n componentDidMount() {\n this.mounted = true;\n this.loadFolders();\n return this.props.socket.checkFeatureSupported('BINARY_STATE_EVENT')\n .then(result => {\n this.supportSubscribes = result;\n this.supportSubscribes && this.props.socket.subscribeFiles('*', '*', this.onFileChange);\n });\n }\n\n componentWillUnmount() {\n this.supportSubscribes && this.props.socket.unsubscribeFiles('*', '*', this.onFileChange);\n this.mounted = false;\n this.browseList = null;\n this.browseListRunning = false;\n Object.values(this._tempTimeout)\n .forEach(timer => timer && clearTimeout(timer));\n this._tempTimeout = {};\n }\n\n browseFolders(foldersList, _newFolders, _resolve) {\n if (!_newFolders) {\n _newFolders = {};\n Object.keys(this.state.folders).forEach(folder => _newFolders[folder] = this.state.folders[folder]);\n }\n\n if (!_resolve) {\n return new Promise(resolve => {\n this.browseFolders(foldersList, _newFolders, resolve);\n });\n }\n\n if (!foldersList || !foldersList.length) {\n return _resolve(_newFolders);\n }\n\n return this.browseFolder(foldersList.shift(), _newFolders)\n .then(() => setTimeout(() => this.browseFolders(foldersList, _newFolders, _resolve), 0))\n .catch(() => setTimeout(() => this.browseFolders(foldersList, _newFolders, _resolve), 0));\n }\n\n readDirSerial(adapter, relPath) {\n return new Promise((resolve, reject) => {\n if (this.browseList) { // if component still mounted\n this.browseList.push({\n resolve, reject, adapter, relPath,\n });\n !this.browseListRunning && this.processBrowseList();\n }\n });\n }\n\n processBrowseList(level) {\n if (!this.browseListRunning && this.browseList && this.browseList.length) {\n this.browseListRunning = true;\n if (this.browseList.length > 10) {\n // not too often\n if (!(this.browseList.length % 10)) {\n this.setState({ queueLength: this.browseList.length });\n }\n } else {\n this.setState({ queueLength: this.browseList.length });\n }\n\n this.browseList[0].processing = true;\n this.props.socket.readDir(this.browseList[0].adapter, this.browseList[0].relPath)\n .then(files => {\n if (this.browseList) { // if component still mounted\n const item = this.browseList.shift();\n if (item) {\n const resolve = item.resolve;\n item.resolve = null;\n item.reject = null;\n item.adapter = null;\n item.relPath = null;\n resolve(files);\n this.browseListRunning = false;\n if (this.browseList.length) {\n if (level < 5) {\n this.processBrowseList(level + 1);\n } else {\n setTimeout(() => this.processBrowseList(0), 0);\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n }\n })\n .catch(e => {\n if (this.browseList) { // if component still mounted\n const item = this.browseList.shift();\n if (item) {\n const reject = item.reject;\n item.resolve = null;\n item.reject = null;\n item.adapter = null;\n item.relPath = null;\n reject(e);\n this.browseListRunning = false;\n if (this.browseList.length) {\n if (level < 5) {\n this.processBrowseList(level + 1);\n } else {\n setTimeout(() => this.processBrowseList(0), 0);\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n }\n });\n }\n }\n\n browseFolder(folderId, _newFolders, _checkEmpty, force) {\n if (typeof _newFolders === 'boolean') {\n force = _newFolders;\n _newFolders = null;\n }\n\n if (!_newFolders) {\n _newFolders = {};\n Object.keys(this.state.folders).forEach(folder =>\n _newFolders[folder] = this.state.folders[folder]);\n }\n\n if (_newFolders[folderId] && !force) {\n if (!_checkEmpty) {\n return new Promise((resolve, reject) => {\n Promise.all(_newFolders[folderId].filter(item => item.folder).map(item =>\n this.browseFolder(item.id, _newFolders, true)\n .catch(() => { })))\n .then(() => resolve(_newFolders))\n .catch(error => reject(error));\n });\n }\n\n return Promise.resolve(_newFolders);\n }\n\n if (!folderId || folderId === '/') {\n return this.props.socket.readMetaItems()\n .then(objs => {\n const _folders = [];\n let userData = null;\n\n if (this.state.restrictToFolder) {\n const adapter = this.state.restrictToFolder.split('/')[0];\n objs = objs.filter(obj => obj._id === adapter);\n } else if (!this.state.expertMode) {\n // load only adapter.admin and not other meta files like hm-rpc.0.devices.blablabla\n objs = objs.filter(obj => !obj._id.endsWith('.admin'));\n }\n\n const pos = objs.findIndex(obj => obj._id === 'system.meta.uuid');\n if (pos !== -1) {\n objs.splice(pos, 1);\n }\n\n objs.forEach(obj => {\n if (this.limitToObjectID && this.limitToObjectID !== obj._id) {\n return;\n }\n\n const item = {\n id: obj._id,\n name: obj._id,\n title: (obj.common && obj.common.name) || obj._id,\n meta: true,\n from: obj.from,\n ts: obj.ts,\n color: obj.common && obj.common.color,\n icon: obj.common && obj.common.icon,\n folder: true,\n acl: obj.acl,\n level: 0,\n };\n if (item.id === USER_DATA) {\n // user data must be first\n userData = item;\n } else {\n _folders.push(item);\n }\n });\n _folders.sort((a, b) => (a.id > b.id ? 1 : (a.id < b.id ? -1 : 0)));\n if (!this.limitToObjectID || this.limitToObjectID === USER_DATA) {\n userData && _folders.unshift(userData);\n }\n\n _newFolders[folderId || '/'] = _folders;\n\n if (!_checkEmpty) {\n return Promise.all(_folders.filter(item => item.folder).map(item =>\n this.browseFolder(item.id, _newFolders, true)\n .catch(() => { })))\n .then(() => _newFolders);\n }\n\n return _newFolders;\n })\n .catch(e => this.initialReadFinished && window.alert(`Cannot read meta items: ${e}`));\n }\n\n const parts = folderId.split('/');\n const level = parts.length;\n const adapter = parts.shift();\n const relPath = parts.join('/');\n\n // make all requests here serial\n return this.readDirSerial(adapter, relPath)\n .then(files => {\n const _folders = [];\n\n files.forEach(file => {\n const item = {\n id: `${folderId}/${file.file}`,\n ext: Utils.getFileExtension(file.file),\n folder: file.isDir,\n name: file.file,\n size: file.stats && file.stats.size,\n modified: file.modifiedAt,\n acl: file.acl,\n level,\n };\n\n if (this.state.restrictToFolder) {\n if (item.folder && (item.id.startsWith(`${this.state.restrictToFolder}/`) || item.id === this.state.restrictToFolder || this.state.restrictToFolder.startsWith(`${item.id}/`))) {\n _folders.push(item);\n } else if (item.id.startsWith(`${this.state.restrictToFolder}/`)) {\n _folders.push(item);\n }\n } else if (this.limitToPath) {\n if (item.folder && (item.id.startsWith(`${this.limitToPath}/`) || item.id === this.limitToPath || this.limitToPath.startsWith(`${item.id}/`))) {\n _folders.push(item);\n } else if (item.id.startsWith(`${this.limitToPath}/`)) {\n _folders.push(item);\n }\n } else {\n _folders.push(item);\n }\n });\n\n _folders.sort(sortFolders);\n _newFolders[folderId] = _folders;\n\n if (!_checkEmpty) {\n return Promise.all(_folders\n .filter(item => item.folder)\n .map(item => this.browseFolder(item.id, _newFolders, true)))\n .then(() => _newFolders);\n }\n\n return _newFolders;\n })\n .catch(e => {\n this.initialReadFinished && window.alert(`Cannot read ${adapter}${relPath ? `/${relPath}` : ''}: ${e}`);\n _newFolders[folderId] = [];\n return _newFolders;\n });\n }\n\n toggleFolder(item, e) {\n e && e.stopPropagation();\n const expanded = [...this.state.expanded];\n const pos = expanded.indexOf(item.id);\n if (pos === -1) {\n expanded.push(item.id);\n expanded.sort();\n\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n\n if (!item.temp) {\n this.browseFolder(item.id)\n .then(folders => this.setState({ expanded, folders }))\n .catch(err => window.alert(err === NOT_FOUND ? this.props.t('ra_Cannot find \"%s\"', item.id) : this.props.t('ra_Cannot read \"%s\"', item.id)));\n } else {\n this.setState({ expanded });\n }\n } else {\n expanded.splice(pos, 1);\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n this.setState({ expanded });\n }\n }\n\n onFileChange = (id, fileName, size) => {\n const key = `${id}/${fileName}`;\n const pos = key.lastIndexOf('/');\n const folder = key.substring(0, pos);\n console.log(`File changed ${key}[${size}]`);\n\n if (this.state.folders[folder]) {\n this._tempTimeout[folder] && clearTimeout(this._tempTimeout[folder]);\n\n this._tempTimeout[folder] = setTimeout(() => {\n delete this._tempTimeout[folder];\n\n this.browseFolder(folder, true)\n .then(folders => this.setState({ folders }));\n }, 300);\n }\n };\n\n changeFolder(e, folder) {\n e && e.stopPropagation();\n\n this.lastSelect = Date.now();\n\n let _folder = folder || getParentDir(this.state.currentDir);\n\n if (_folder === '/') {\n _folder = '';\n }\n\n (window._localStorage || window.localStorage).setItem('files.currentDir', _folder);\n\n if (folder && e && (e.altKey || e.shiftKey || e.ctrlKey || e.metaKey)) {\n return this.setState({ selected: _folder });\n }\n\n if (_folder && !this.state.folders[_folder]) {\n return this.browseFolder(_folder)\n .then(folders =>\n this.setState({\n folders,\n path: _folder,\n currentDir: _folder,\n selected: _folder,\n pathFocus: false,\n }, () =>\n this.props.onSelect && this.props.onSelect('')));\n }\n\n return this.setState({\n currentDir: _folder,\n selected: _folder,\n path: _folder,\n pathFocus: false,\n }, () =>\n this.props.onSelect && this.props.onSelect(''));\n }\n\n select(id, e, cb) {\n if (typeof e === 'function') {\n cb = e;\n e = null;\n }\n e && e.stopPropagation();\n this.lastSelect = Date.now();\n\n (window._localStorage || window.localStorage).setItem('files.selected', id);\n\n this.setState({ selected: id, path: id, pathFocus: false }, () => {\n if (this.props.onSelect) {\n const ext = Utils.getFileExtension(id);\n if ((!this.props.filterFiles || this.props.filterFiles.includes(ext)) &&\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(ext))\n ) {\n this.props.onSelect(id, false, !!this.state.folders[id]);\n } else {\n this.props.onSelect('');\n }\n }\n cb && cb();\n });\n }\n\n renderFolder(item, expanded) {\n if (this.state.viewType === TABLE &&\n this.state.filterEmpty &&\n (!this.state.folders[item.id] || !this.state.folders[item.id].length) &&\n item.id !== USER_DATA && !item.temp\n ) {\n return null;\n }\n const Icon = expanded ? IconOpen : IconClosed;\n const padding = this.state.viewType === TABLE ? item.level * this.levelPadding : 0;\n const isUserData = item.name === USER_DATA;\n const isSpecialData = isUserData || item.name === 'vis.0' || item.name === 'vis-2.0';\n\n return <div\n key={item.id}\n id={item.id}\n style={this.state.viewType === TABLE ? { marginLeft: padding, width: `calc(100% - ${padding}px` } : {}}\n onClick={e => (this.state.viewType === TABLE ? this.select(item.id, e) : this.changeFolder(e, item.id))}\n onDoubleClick={e => this.state.viewType === TABLE && this.toggleFolder(item, e)}\n title={item.title && typeof item.title === 'object' ? (item.title[this.props.lang] || item.title.end || '') : (item.title || null)}\n className={Utils.clsx(\n 'browserItem',\n this.props.classes[`item${this.state.viewType}`],\n this.props.classes[`itemFolder${this.state.viewType}`],\n this.state.selected === item.id && this.props.classes.itemSelected,\n item.temp && this.props.classes.itemFolderTemp,\n )}\n >\n <Icon\n className={Utils.clsx(this.props.classes[`itemFolderIcon${this.state.viewType}`], isSpecialData && this.props.classes.specialFolder)}\n onClick={this.state.viewType === TABLE ? e => this.toggleFolder(item, e) : undefined}\n />\n\n <div className={Utils.clsx(this.props.classes[`itemName${this.state.viewType}`], this.props.classes[`itemNameFolder${this.state.viewType}`])}>\n {isUserData ? this.props.t('ra_User files') : item.name}\n </div>\n\n <Hidden smDown>\n <div className={this.props.classes[`itemSize${this.state.viewType}`]}>\n {this.state.viewType === TABLE && this.state.folders[item.id] ? this.state.folders[item.id].length : ''}\n </div>\n </Hidden>\n\n <Hidden smDown>\n {this.state.viewType === TABLE && this.props.expertMode ? this.formatAcl(item.acl) : null}\n </Hidden>\n\n <Hidden smDown>\n {this.state.viewType === TABLE && this.props.expertMode ? <div className={this.props.classes[`itemDeleteButton${this.state.viewType}`]} /> : null}\n </Hidden>\n {this.state.viewType === TABLE && this.props.allowDownload ? <div className={this.props.classes[`itemDownloadEmpty${this.state.viewType}`]} /> : null}\n\n {this.state.viewType === TABLE && this.props.allowDelete && this.state.folders[item.id] && this.state.folders[item.id].length ?\n <IconButton\n aria-label=\"delete\"\n onClick={e => {\n e.stopPropagation();\n if (this.suppressDeleteConfirm > Date.now()) {\n this.deleteItem(item.id);\n } else {\n this.setState({ deleteItem: item.id });\n }\n }}\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\n size=\"large\"\n >\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n :\n (this.state.viewType === TABLE && this.props.allowDelete ? <div className={this.props.classes[`itemDeleteButton${this.state.viewType}`]} /> : null)}\n </div>;\n }\n\n renderBackFolder() {\n return <div\n key={this.state.currentDir}\n id={this.state.currentDir}\n onClick={e => this.changeFolder(e)}\n title={this.props.t('ra_Back to %s', getParentDir(this.state.currentDir))}\n className={Utils.clsx(\n 'browserItem',\n this.props.classes[`item${this.state.viewType}`],\n this.props.classes[`itemFolder${this.state.viewType}`],\n )}\n >\n <IconClosed className={this.props.classes[`itemFolderIcon${this.state.viewType}`]} />\n <IconBack className={this.props.classes.itemFolderIconBack} />\n\n <div\n className={Utils.clsx(this.props.classes[`itemName${this.state.viewType}`], this.props.classes[`itemNameFolder${this.state.viewType}`])}\n >\n..\n </div>\n </div>;\n }\n\n formatSize(size) {\n return <div className={this.props.classes[`itemSize${this.state.viewType}`]}>{size || size === 0 ? Utils.formatBytes(size) : ''}</div>;\n }\n\n formatAcl(acl) {\n let access = acl && (acl.permissions || acl.file);\n if (access) {\n access = access.toString(16).padStart(3, '0');\n }\n\n return <div className={this.props.classes[`itemAccess${this.state.viewType}`]}>\n {this.props.modalEditOfAccessControl ? <IconButton\n size=\"large\"\n onClick={() => this.setState({ modalEditOfAccess: true })}\n className={this.props.classes[`itemAclButton${this.state.viewType}`]}\n >\n {access || '---'}\n </IconButton> : access || '---'}\n </div>;\n }\n\n getFileIcon(ext) {\n switch (ext) {\n case 'json':\n case 'json5':\n return <JsonIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\n\n case 'css':\n return <CssIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\n\n case 'js':\n case 'ts':\n return <JSIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\n\n case 'html':\n case 'md':\n return <HtmlIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\n\n case 'mp3':\n case 'ogg':\n case 'wav':\n case 'm4a':\n case 'mp4':\n case 'flac':\n return <MusicIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\n\n default:\n return <FileIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\n }\n }\n\n static getEditFile(ext) {\n switch (ext) {\n case 'json':\n case 'json5':\n case 'js':\n case 'html':\n case 'txt':\n case 'css':\n case 'log':\n return true;\n default:\n return false;\n }\n }\n\n setStateBackgroundImage = () => {\n const array = ['light', 'dark', 'colored', 'delete'];\n this.setState(({ backgroundImage }) => {\n if (array.indexOf(backgroundImage) !== -1 && array.length - 1 !== array.indexOf(backgroundImage)) {\n (window._localStorage || window.localStorage).setItem('files.backgroundImage', array[array.indexOf(backgroundImage) + 1]);\n return { backgroundImage: array[array.indexOf(backgroundImage) + 1] };\n }\n (window._localStorage || window.localStorage).setItem('files.backgroundImage', array[0]);\n return { backgroundImage: array[0] };\n });\n };\n\n getClassBackgroundImage = () => {\n // ['light', 'dark', 'colored', 'delete']\n switch (this.state.backgroundImage) {\n case 'light':\n return this.props.classes.backgroundImageLight;\n case 'dark':\n return this.props.classes.backgroundImageDark;\n case 'colored':\n return this.props.classes.backgroundImageColored;\n case 'delete':\n return null;\n default:\n return null;\n }\n };\n\n renderFile(item) {\n const padding = this.state.viewType === TABLE ? item.level * this.levelPadding : 0;\n const ext = Utils.getFileExtension(item.name);\n\n return <div\n key={item.id}\n id={item.id}\n onDoubleClick={e => {\n e.stopPropagation();\n if (!this.props.onSelect) {\n this.setState({ viewer: this.imagePrefix + item.id, formatEditFile: ext });\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(item.ext))\n ) {\n this.props.onSelect(item.id, true, !!this.state.folders[item.id]);\n }\n }}\n onClick={e => this.select(item.id, e)}\n style={this.state.viewType === TABLE ? { marginLeft: padding, width: `calc(100% - ${padding}px)` } : {}}\n className={Utils.clsx(\n 'browserItem',\n this.props.classes[`item${this.state.viewType}`],\n this.props.classes[`itemFile${this.state.viewType}`],\n this.state.selected === item.id && this.props.classes.itemSelected,\n )}\n >\n {EXTENSIONS.images.includes(ext) ?\n this.state.fileErrors.includes(item.id) ?\n <IconNoIcon className={Utils.clsx(this.props.classes[`itemImage${this.state.viewType}`], this.getClassBackgroundImage())} /> :\n <img\n onError={e => {\n e.target.onerror = null;\n const fileErrors = [...this.state.fileErrors];\n if (!fileErrors.includes(item.id)) {\n fileErrors.push(item.id);\n this.setState({ fileErrors });\n }\n }}\n className={Utils.clsx(this.props.classes[`itemImage${this.state.viewType}`], this.getClassBackgroundImage())}\n src={this.imagePrefix + item.id}\n alt={item.name}\n />\n :\n this.getFileIcon(ext)}\n <div className={this.props.classes[`itemName${this.state.viewType}`]}>{item.name}</div>\n <Hidden smDown>{this.formatSize(item.size)}</Hidden>\n <Hidden smDown>{this.state.viewType === TABLE && this.props.expertMode ? this.formatAcl(item.acl) : null}</Hidden>\n <Hidden smDown>\n {this.state.viewType === TABLE && this.props.expertMode && FileBrowser.getEditFile(ext) ?\n <IconButton\n aria-label=\"edit\"\n onClick={e => {\n e.stopPropagation();\n if (!this.props.onSelect) {\n this.setState({ viewer: this.imagePrefix + item.id, formatEditFile: ext });\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(item.ext))\n ) {\n this.props.onSelect(item.id, true, !!this.state.folders[item.id]);\n }\n }}\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\n size=\"large\"\n >\n <EditIcon fontSize=\"small\" />\n </IconButton>\n :\n <div className={this.props.classes[`itemDeleteButton${this.state.viewType}`]} />}\n </Hidden>\n {this.state.viewType === TABLE && this.props.allowDownload ? <a\n className={Utils.clsx('MuiButtonBase-root', 'MuiIconButton-root', 'MuiIconButton-sizeLarge', this.props.classes.itemDownloadButtonTable)}\n tabIndex=\"0\"\n download={item.id}\n href={this.imagePrefix + item.id}\n onClick={e => {\n e.stopPropagation();\n }}\n >\n <DownloadIcon />\n </a> : null}\n\n {this.state.viewType === TABLE &&\n this.props.allowDelete &&\n item.id !== 'vis.0/' &&\n item.id !== 'vis-2.0/' &&\n item.id !== USER_DATA\n ?\n <IconButton\n aria-label=\"delete\"\n onClick={e => {\n e.stopPropagation();\n if (this.suppressDeleteConfirm > Date.now()) {\n this.deleteItem(item.id);\n } else {\n this.setState({ deleteItem: item.id });\n }\n }}\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\n size=\"large\"\n >\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n :\n (this.state.viewType === TABLE && this.props.allowDelete ?\n <div className={this.props.classes[`itemDeleteButton${this.state.viewType}`]} />\n :\n null\n )}\n </div>;\n }\n\n renderItems(folderId) {\n if (this.state.folders && this.state.folders[folderId]) {\n // tile\n if (this.state.viewType === TILE) {\n const res = [];\n if (folderId && folderId !== '/') {\n res.push(this.renderBackFolder());\n }\n this.state.folders[folderId].forEach(item => {\n if (item.folder) {\n res.push(this.renderFolder(item));\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(item.ext))\n ) {\n res.push(this.renderFile(item));\n }\n });\n return res;\n }\n return this.state.folders[folderId].map(item => {\n const res = [];\n if (item.folder) {\n const expanded = this.state.expanded.includes(item.id);\n\n res.push(this.renderFolder(item, expanded));\n if (this.state.folders[item.id] && expanded) {\n res.push(this.renderItems(item.id));\n }\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(item.ext))\n ) {\n res.push(this.renderFile(item));\n } else {\n return null;\n }\n\n return res;\n });\n }\n\n return <div style={{ position: 'relative' }}>\n <CircularProgress key={folderId} color=\"secondary\" size={24} />\n <div style={{\n position: 'absolute', zIndex: 2, top: 4, width: 24, textAlign: 'center',\n }}\n >\n {this.state.queueLength}\n </div>\n </div>;\n }\n\n renderToolbar() {\n const IconType = this.props.showTypeSelector ? (FILE_TYPE_ICONS[this.state.filterByType || 'all'] || FILE_TYPE_ICONS.all) : null;\n\n const isInFolder = this.findFirstFolder(this.state.selected);\n\n return <Toolbar key=\"toolbar\" variant=\"dense\">\n {this.props.allowNonRestricted && this.props.restrictToFolder ? <IconButton\n edge=\"start\"\n title={this.state.restrictToFolder ? this.props.t('ra_Show all folders') : this.props.t('ra_Restrict to folder')}\n className={Utils.clsx(this.props.classes.menuButton, this.state.restrictToFolder && this.props.classes.menuButtonRestrictActive)}\n aria-label=\"restricted to folder\"\n onClick={() => this.setState({\n restrictToFolder: this.state.restrictToFolder ? '' : this.props.restrictToFolder,\n loadAllFolders: true,\n })}\n size=\"small\"\n >\n <RestrictedIcon fontSize=\"small\" />\n </IconButton> : null}\n {this.props.showExpertButton ? <IconButton\n edge=\"start\"\n title={this.props.t('ra_Toggle expert mode')}\n className={Utils.clsx(this.props.classes.menuButton, this.state.expertMode && this.props.classes.menuButtonExpertActive)}\n aria-label=\"expert mode\"\n onClick={() => this.setState({ expertMode: !this.state.expertMode })}\n size=\"small\"\n >\n <ExpertIcon fontSize=\"small\" />\n </IconButton> : null}\n {this.props.showViewTypeButton ? <IconButton\n edge=\"start\"\n title={this.props.t('ra_Toggle view mode')}\n className={this.props.classes.menuButton}\n aria-label=\"view mode\"\n onClick={() => {\n const viewType = this.state.viewType === TABLE ? TILE : TABLE;\n (window._localStorage || window.localStorage).setItem('files.viewType', viewType);\n let currentDir = this.state.selected;\n if (isFile(currentDir)) {\n currentDir = getParentDir(currentDir);\n }\n this.setState({ viewType, currentDir }, () => {\n if (this.state.viewType === TABLE) {\n this.scrollToSelected();\n }\n });\n }}\n size=\"small\"\n >\n {this.state.viewType !== TABLE ? <IconList fontSize=\"small\" /> : <IconTile fontSize=\"small\" />}\n </IconButton> : null}\n <IconButton\n edge=\"start\"\n title={this.props.t('ra_Hide empty folders')}\n className={this.props.classes.menuButton}\n color={this.state.filterEmpty ? 'secondary' : 'inherit'}\n aria-label=\"filter empty\"\n onClick={() => {\n (window._localStorage || window.localStorage).setItem('file.empty', !this.state.filterEmpty);\n this.setState({ filterEmpty: !this.state.filterEmpty });\n }}\n size=\"small\"\n >\n <EmptyFilterIcon fontSize=\"small\" />\n </IconButton>\n <IconButton\n edge=\"start\"\n title={this.props.t('ra_Reload files')}\n className={this.props.classes.menuButton}\n color=\"inherit\"\n aria-label=\"reload files\"\n onClick={() => this.setState({ folders: {} }, () => this.loadFolders())}\n size=\"small\"\n >\n <RefreshIcon fontSize=\"small\" />\n </IconButton>\n {this.props.allowCreateFolder ? <IconButton\n edge=\"start\"\n disabled={\n !this.state.selected ||\n !isInFolder ||\n (\n this.limitToPath &&\n !this.state.selected.startsWith(`${this.limitToPath}/`) &&\n this.limitToPath !== this.state.selected\n )\n }\n title={this.props.t('ra_Create folder')}\n className={this.props.classes.menuButton}\n color=\"inherit\"\n aria-label=\"add folder\"\n onClick={() => this.setState({ addFolder: true })}\n size=\"small\"\n >\n <AddFolderIcon fontSize=\"small\" />\n </IconButton> : null}\n {this.props.allowUpload ? <IconButton\n edge=\"start\"\n disabled={\n !this.state.selected ||\n !isInFolder ||\n (\n this.limitToPath &&\n !this.state.selected.startsWith(`${this.limitToPath}/`) &&\n this.limitToPath !== this.state.selected\n )\n }\n title={this.props.t('ra_Upload file')}\n className={this.props.classes.menuButton}\n color=\"inherit\"\n aria-label=\"upload file\"\n onClick={() => this.setState({ uploadFile: true })}\n size=\"small\"\n >\n <UploadIcon fontSize=\"small\" />\n </IconButton> : null}\n {this.props.showTypeSelector ? <Tooltip title={this.props.t('ra_Filter files')}>\n <IconButton size=\"small\" onClick={e => this.setState({ showTypesMenu: e.target })}>\n <IconType fontSize=\"small\" />\n </IconButton>\n </Tooltip> : null}\n {this.state.showTypesMenu ? <Menu\n open={!0}\n anchorEl={this.state.showTypesMenu}\n onClose={() => this.setState({ showTypesMenu: null })}\n >\n {Object.keys(FILE_TYPE_ICONS).map(type => {\n const MyIcon = FILE_TYPE_ICONS[type];\n return <MenuItem\n key={type}\n selected={this.state.filterByType === type}\n onClick={() => {\n if (type === 'all') {\n (window._localStorage || window.localStorage).removeItem('files.filterByType');\n this.setState({ filterByType: '', showTypesMenu: null });\n } else {\n (window._localStorage || window.localStorage).setItem('files.filterByType', type);\n this.setState({ filterByType: type, showTypesMenu: null });\n }\n }}\n >\n <ListItemIcon><MyIcon fontSize=\"small\" /></ListItemIcon>\n <ListItemText>{this.props.t(`ra_fileType_${type}`)}</ListItemText>\n </MenuItem>;\n })}\n </Menu> : null}\n <Tooltip title={this.props.t('ra_Background image')}>\n <IconButton\n color=\"inherit\"\n edge=\"start\"\n className={this.props.classes.menuButton}\n onClick={this.setStateBackgroundImage}\n size=\"small\"\n >\n <Brightness5Icon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n {this.state.viewType !== TABLE && this.props.allowDelete ? <Tooltip title={this.props.t('ra_Delete')}>\n <span>\n <IconButton\n aria-label=\"delete\"\n disabled={\n !this.state.selected ||\n this.state.selected === 'vis.0/' ||\n this.state.selected === 'vis-2.0/' ||\n this.state.selected === USER_DATA\n }\n color=\"inherit\"\n edge=\"start\"\n className={this.props.classes.menuButton}\n onClick={e => {\n e.stopPropagation();\n if (this.suppressDeleteConfirm > Date.now()) {\n this.deleteItem(this.state.selected);\n } else {\n this.setState({ deleteItem: this.state.selected });\n }\n }}\n size=\"small\"\n >\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip> : null}\n </Toolbar>;\n }\n\n findItem(id, folders) {\n folders = folders || this.state.folders;\n if (!folders) {\n return null;\n }\n const parts = id.split('/');\n parts.pop();\n const parentFolder = parts.join('/') || '/';\n if (!folders[parentFolder]) {\n return null;\n }\n return folders[parentFolder].find(item => item.id === id);\n }\n\n renderInputDialog() {\n if (this.state.addFolder) {\n const parentFolder = this.findFirstFolder(this.state.selected);\n\n if (!parentFolder) {\n return window.alert(this.props.t('ra_Invalid parent folder!'));\n }\n\n return <TextInputDialog\n key=\"inputDialog\"\n applyText={this.props.t('ra_Create')}\n cancelText={this.props.t('ra_Cancel')}\n titleText={this.props.t('ra_Create new folder in %s', this.state.selected)}\n promptText={this.props.t('ra_If no file will be created in the folder, it will disappear after the browser closed')}\n labelText={this.props.t('ra_Folder name')}\n verify={text => (this.state.folders[parentFolder].find(item => item.name === text) ? '' : this.props.t('ra_Duplicate name'))}\n onClose={name => {\n if (name) {\n const folders = {};\n Object.keys(this.state.folders).forEach(folder => folders[folder] = this.state.folders[folder]);\n const parent = this.findItem(parentFolder);\n const id = `${parentFolder}/${name}`;\n folders[parentFolder].push({\n id,\n level: parent.level + 1,\n name,\n folder: true,\n temp: true,\n });\n\n folders[parentFolder].sort(sortFolders);\n\n folders[id] = [];\n const expanded = [...this.state.expanded];\n if (!expanded.includes(parentFolder)) {\n expanded.push(parentFolder);\n expanded.sort();\n }\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n this.setState({ addFolder: false, folders, expanded }, () =>\n this.select(id));\n } else {\n this.setState({ addFolder: false });\n }\n }}\n replace={text => text.replace(/[^-_\\w\\d]/, '_')}\n />;\n }\n return null;\n }\n\n componentDidUpdate(/* prevProps , prevState, snapshot */) {\n this.setOpacityTimer && clearTimeout(this.setOpacityTimer);\n this.setOpacityTimer = setTimeout(() => {\n this.setOpacityTimer = null;\n const items = window.document.getElementsByClassName('browserItem');\n for (let i = 0; i < items.length; i++) {\n items[i].style.opacity = 1;\n }\n }, 100);\n }\n\n uploadFile(fileName, data) {\n const parts = fileName.split('/');\n const adapter = parts.shift();\n return this.props.socket.writeFile64(adapter, parts.join('/'), data)\n .catch(e => window.alert(`Cannot write file: ${e}`));\n }\n\n findFirstFolder(id) {\n let parentFolder = id;\n const item = this.findItem(parentFolder);\n // find folder\n if (item && !item.folder) {\n const parts = parentFolder.split('/');\n parts.pop();\n parentFolder = '';\n while (parts.length) {\n const _item = this.findItem(parts.join('/'));\n if (_item && _item.folder) {\n parentFolder = parts.join('/');\n break;\n }\n }\n }\n\n return parentFolder;\n }\n\n renderUpload() {\n if (this.state.uploadFile) {\n return [\n <Fab\n key=\"close\"\n color=\"primary\"\n aria-label=\"close\"\n className={this.props.classes.uploadCloseButton}\n onClick={() => this.setState({ uploadFile: false })}\n >\n <CloseIcon />\n </Fab>,\n <Dropzone\n key=\"dropzone\"\n onDragEnter={() => this.setState({ uploadFile: 'dragging' })}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={acceptedFiles => {\n let count = acceptedFiles.length;\n\n acceptedFiles.forEach(file => {\n const reader = new FileReader();\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n const parentFolder = this.findFirstFolder(this.state.selected);\n\n if (!parentFolder) {\n window.alert(this.props.t('ra_Invalid parent folder!'));\n } else {\n const id = `${parentFolder}/${file.name}`;\n\n this.uploadFile(id, reader.result)\n .then(() => {\n if (!--count) {\n this.setState({ uploadFile: false }, () => {\n if (this.supportSubscribes) {\n // open current folder\n const expanded = [...this.state.expanded];\n if (!expanded.includes(parentFolder)) {\n expanded.push(parentFolder);\n expanded.sort();\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n }\n this.setState({ expanded }, () =>\n this.select(id));\n } else {\n setTimeout(\n () =>\n this.browseFolder(parentFolder, true)\n .then(folders => {\n // open current folder\n const expanded = [...this.state.expanded];\n if (!expanded.includes(parentFolder)) {\n expanded.push(parentFolder);\n expanded.sort();\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n }\n this.setState({ folders, expanded }, () =>\n this.select(id));\n }),\n 500,\n );\n }\n });\n }\n });\n }\n };\n\n reader.readAsArrayBuffer(file);\n });\n }}\n >\n {({ getRootProps, getInputProps }) => (\n <div\n className={Utils.clsx(this.props.classes.uploadDiv, this.state.uploadFile === 'dragging' && this.props.classes.uploadDivDragging)}\n {...getRootProps()}\n >\n <input {...getInputProps()} />\n <div className={this.props.classes.uploadCenterDiv}>\n <div className={this.props.classes.uploadCenterTextAndIcon}>\n <UploadIcon className={this.props.classes.uploadCenterIcon} />\n <div className={this.props.classes.uploadCenterText}>\n {\n this.state.uploadFile === 'dragging' ? this.props.t('ra_Drop file here') :\n this.props.t('ra_Place your files here or click here to open the browse dialog')\n }\n </div>\n </div>\n </div>\n </div>)}\n </Dropzone>,\n ];\n }\n return null;\n }\n\n deleteRecursive(id) {\n const item = this.findItem(id);\n if (item.folder) {\n return (this.state.folders[id] ? Promise.all(this.state.folders[id].map(_item =>\n this.deleteRecursive(_item.id))) : Promise.resolve())\n .then(() => {\n // If it is folder of second level\n if (item.level >= 1) {\n const parts = id.split('/');\n const adapter = parts.shift();\n this.props.socket.deleteFolder(adapter, parts.join('/'))\n .then(() => {\n // remove this folder\n const folders = JSON.parse(JSON.stringify(this.state.folders));\n delete folders[item.id];\n // delete folder from parent item\n const parentId = getParentDir(item.id);\n const parentFolder = folders[parentId];\n if (parentFolder) {\n const pos = parentFolder.indexOf(parentFolder.find(f => f.id === item.id));\n if (pos !== -1) {\n parentFolder.splice(pos, 1);\n }\n\n this.select(parentId, () => this.setState({ folders }));\n }\n });\n }\n });\n }\n\n const parts = id.split('/');\n const adapter = parts.shift();\n if (parts.length) {\n return this.props.socket.deleteFile(adapter, parts.join('/'))\n .catch(e => window.alert(`Cannot delete file: ${e}`));\n }\n return Promise.resolve();\n }\n\n deleteItem(deleteItem) {\n deleteItem = deleteItem || this.state.deleteItem;\n\n this.setState({ deleteItem: '' }, () =>\n this.deleteRecursive(deleteItem)\n .then(() => {\n const newState = {};\n const pos = this.state.expanded.indexOf(deleteItem);\n if (pos !== -1) {\n const expanded = [...this.state.expanded];\n expanded.splice(pos, 1);\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n newState.expanded = expanded;\n }\n\n if (this.state.selected === deleteItem) {\n const parts = this.state.selected.split('/');\n parts.pop();\n newState.selected = parts.join('/');\n }\n\n if (!this.supportSubscribes) {\n const parentFolder = this.findFirstFolder(deleteItem);\n const folders = {};\n\n Object.keys(this.state.folders).forEach(name => {\n if (name !== parentFolder && !name.startsWith(`${parentFolder}/`)) {\n folders[name] = this.state.folders[name];\n }\n });\n\n newState.folders = folders;\n\n this.setState(newState, () =>\n setTimeout(() => this.browseFolders([...this.state.expanded], folders)\n .then(_folders => this.setState({ folders: _folders })), 200));\n } else {\n this.setState(newState);\n }\n }));\n }\n\n renderDeleteDialog() {\n if (this.state.deleteItem) {\n return <Dialog\n key=\"deleteDialog\"\n open={!0}\n onClose={() => this.setState({ deleteItem: '' })}\n aria-labelledby=\"ar_dialog_file_delete_title\"\n >\n <DialogTitle id=\"ar_dialog_file_delete_title\">{this.props.t('ra_Confirm deletion of %s', this.state.deleteItem.split('/').pop())}</DialogTitle>\n <DialogContent>\n <DialogContentText>\n {this.props.t('ra_Are you sure?')}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n color=\"grey\"\n variant=\"contained\"\n onClick={() => {\n this.suppressDeleteConfirm = Date.now() + 60000 * 5;\n this.deleteItem();\n }}\n >\n {this.props.t('ra_Delete (no confirm for 5 mins)')}\n </Button>\n <Button variant=\"contained\" onClick={() => this.deleteItem()} color=\"primary\" autoFocus>{this.props.t('ra_Delete')}</Button>\n <Button variant=\"contained\" onClick={() => this.setState({ deleteItem: '' })} color=\"grey\">{this.props.t('ra_Cancel')}</Button>\n </DialogActions>\n </Dialog>;\n }\n return false;\n }\n\n renderViewDialog() {\n return this.state.viewer ? <FileViewer\n supportSubscribes={this.supportSubscribes}\n key={this.state.viewer}\n href={this.state.viewer}\n formatEditFile={this.state.formatEditFile}\n themeType={this.props.themeType}\n setStateBackgroundImage={this.setStateBackgroundImage}\n getClassBackgroundImage={this.getClassBackgroundImage}\n t={this.props.t}\n socket={this.props.socket}\n lang={this.props.lang}\n expertMode={this.state.expertMode}\n onClose={() => this.setState({ viewer: '', formatEditFile: '' })}\n /> : null;\n }\n\n renderError() {\n if (this.state.errorText) {\n return <ErrorDialog\n classes={{ }}\n key=\"errorDialog\"\n text={this.state.errorText}\n onClose={() => this.setState({ errorText: '' })}\n />;\n }\n return null;\n }\n\n // used in tabs/Files\n // eslint-disable-next-line react/no-unused-class-component-methods\n updateItemsAcl(info) {\n this.cacheFolders = this.cacheFolders || JSON.parse(JSON.stringify(this.state.folders));\n let changed;\n\n info.forEach(it => {\n const item = this.findItem(it.id, this.cacheFolders);\n if (item && JSON.stringify(item.acl) !== JSON.stringify(it.acl)) {\n item.acl = it.acl;\n changed = true;\n }\n });\n if (changed) {\n this.cacheFoldersTimeout && clearTimeout(this.cacheFoldersTimeout);\n this.cacheFoldersTimeout = setTimeout(() => {\n this.cacheFoldersTimeout = null;\n const folders = this.cacheFolders;\n this.cacheFolders = null;\n this.setState({ folders });\n }, 200);\n }\n }\n\n changeToPath() {\n setTimeout(() => {\n if (this.state.path !== this.state.selected && (!this.lastSelect || Date.now() - this.lastSelect > 100)) {\n let folder = this.state.path;\n if (isFile(this.state.path)) {\n folder = getParentDir(this.state.path);\n }\n new Promise(resolve => {\n if (!this.state.folders[folder]) {\n this.browseFolder(folder)\n .then(folders => this.setState({ folders }, () => resolve(true)))\n .catch(err => this.setState({ errorText: err === NOT_FOUND ? this.props.t('ra_Cannot find \"%s\"', folder) : this.props.t('ra_Cannot read \"%s\"', folder) }));\n } else {\n resolve(true);\n }\n })\n .then(result =>\n result && this.setState({ selected: this.state.path, currentDir: folder, pathFocus: false }));\n } else if (!this.lastSelect || Date.now() - this.lastSelect > 100) {\n this.setState({ pathFocus: false });\n }\n }, 100);\n }\n\n renderBreadcrumb() {\n const parts = this.state.currentDir.startsWith('/') ? this.state.currentDir.split('/') : (`/${this.state.currentDir}`).split('/');\n const p = [];\n return <Breadcrumbs style={{ paddingLeft: 8 }}>\n {parts.map((part, i) => {\n part && p.push(part);\n const path = p.join('/');\n if (i < parts.length - 1) {\n return <div\n key={`${this.state.selected}_${i}`}\n className={this.props.classes.pathDivBreadcrumbDir}\n onClick={e => this.changeFolder(e, path || '/')}\n >\n {part || this.props.t('ra_Root')}\n </div>;\n }\n\n return <div\n className={this.props.classes.pathDivBreadcrumbSelected}\n key={`${this.state.selected}_${i}`}\n onClick={() => this.setState({ pathFocus: true })}\n >\n {part}\n </div>;\n })}\n </Breadcrumbs>;\n }\n\n renderPath() {\n return <div key=\"path\" className={this.props.classes.pathDiv}>\n {this.state.pathFocus ?\n <Input\n value={this.state.path}\n onKeyDown={e => {\n if (e.keyCode === 13) {\n this.changeToPath();\n } else if (e.keyCode === 27) {\n this.setState({ pathFocus: false });\n }\n }}\n endAdornment={<IconButton size=\"small\" onClick={() => this.changeToPath()}><EnterIcon /></IconButton>}\n onBlur={() => this.changeToPath()}\n onChange={e => this.setState({ path: e.target.value })}\n className={this.props.classes.pathDivInput}\n />\n :\n this.renderBreadcrumb()}\n </div>;\n }\n\n render() {\n if (!this.props.ready) {\n return <LinearProgress />;\n }\n\n if (this.state.loadAllFolders && !this.foldersLoading) {\n this.foldersLoading = true;\n setTimeout(() => {\n this.setState({ loadAllFolders: false, folders: {} }, () => {\n this.foldersLoading = false;\n this.loadFolders();\n });\n }, 300);\n }\n\n return <div style={this.props.style} className={Utils.clsx(this.props.classes.root, this.props.className)}>\n {this.props.showToolbar ? this.renderToolbar() : null}\n {this.state.viewType === TILE ? this.renderPath() : null}\n <div\n className={Utils.clsx(this.props.classes.filesDiv, this.props.classes[`filesDiv${this.state.viewType}`])}\n onClick={e => {\n if (this.state.viewType !== TABLE) {\n if (this.state.selected !== (this.state.currentDir || '/')) {\n this.changeFolder(e, this.state.currentDir || '/');\n } else {\n e.stopPropagation();\n }\n }\n }}\n >\n {this.state.viewType === TABLE ? this.renderItems('/') : this.renderItems(this.state.currentDir || '/')}\n {this.state.viewType !== TABLE ? <div className={this.props.classes.filesDivHint}>{this.props.t('ra_select_folder_hint')}</div> : null}\n </div>\n {this.props.allowUpload ? this.renderInputDialog() : null}\n {this.props.allowUpload ? this.renderUpload() : null}\n {this.props.allowDelete ? this.renderDeleteDialog() : null}\n {this.props.allowView ? this.renderViewDialog() : null}\n {this.state.modalEditOfAccess && this.props.modalEditOfAccessControl && this.props.modalEditOfAccessControl(this)}\n {this.renderError()}\n </div>;\n }\n}\n\nFileBrowser.defaultProps = {\n modalEditOfAccessControl: () => { },\n};\n\nFileBrowser.propTypes = {\n style: PropTypes.object,\n className: PropTypes.string,\n t: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n socket: PropTypes.object.isRequired,\n ready: PropTypes.bool,\n expertMode: PropTypes.bool,\n showTypeSelector: PropTypes.bool,\n showToolbar: PropTypes.bool,\n allowUpload: PropTypes.bool,\n allowDownload: PropTypes.bool,\n allowCreateFolder: PropTypes.bool,\n allowDelete: PropTypes.bool,\n allowView: PropTypes.bool,\n imagePrefix: PropTypes.string,\n showExpertButton: PropTypes.bool,\n viewType: PropTypes.string,\n showViewTypeButton: PropTypes.bool,\n themeType: PropTypes.string,\n restrictToFolder: PropTypes.string, // If defined, allow selecting only files from this folder\n allowNonRestricted: PropTypes.bool, // If restrictToFolder defined, allow selecting files outside of this folder\n\n selected: PropTypes.string,\n tileView: PropTypes.bool,\n filterFiles: PropTypes.array, // like ['png', 'svg', 'bmp', 'jpg', 'jpeg', 'gif']\n filterByType: PropTypes.string, // images, code or txt from EXTENSIONS\n onSelect: PropTypes.func, // function (id, isDoubleClick)\n\n modalEditOfAccessControl: PropTypes.func,\n};\n\n/** @type {typeof FileBrowser} */\nconst _export = withWidth()(withStyles(styles)(FileBrowser));\nexport default _export;\n"],"mappings":"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"}
1
+ {"version":3,"file":"FileBrowser.js","names":["_react","_interopRequireWildcard","require","_styles","_propTypes","_interopRequireDefault","_reactDropzone","_material","_iconsMaterial","_Error","_Utils","_TextInput","_IconExpert","_IconClosed","_IconOpen","_IconNoIcon","_withWidth","_FileViewer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof3","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_callSuper","o","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","valueOf","ROW_HEIGHT","BUTTON_WIDTH","TILE_HEIGHT","TILE_WIDTH","NOT_FOUND","FILE_TYPE_ICONS","all","FileIcon","images","TypeIconImages","code","JSIcon","txt","TypeIconTxt","audio","TypeIconAudio","video","TypeIconVideo","styles","theme","dialog","height","concat","mixins","toolbar","minHeight","root","width","overflow","position","filesDiv","spacing","overflowX","overflowY","padding","filesDivHint","bottom","left","opacity","fontStyle","fontSize","filesDivTable","parseInt","filesDivTile","display","alignContent","alignItems","flexWrap","flex","itemTile","userSelect","cursor","textAlign","transition","margin","background","palette","secondary","light","color","Utils","invertColor","main","itemNameFolderTile","fontWeight","itemNameTile","textOverflow","wordBreak","itemFolderIconTile","paddingLeft","itemFolderIconBack","top","zIndex","mode","itemSizeTile","itemImageTile","objectFit","itemIconTile","itemSelected","primary","itemTable","lineHeight","itemNameTable","verticalAlign","flexGrow","itemNameFolderTable","itemSizeTable","itemAccessTable","paddingRight","justifyContent","itemImageTable","marginTop","maxHeight","itemIconTable","itemFolderTable","itemFolderTemp","itemFolderIconTable","marginLeft","itemDownloadButtonTable","minWidth","borderRadius","backgroundColor","paddingTop","itemDownloadEmptyTable","itemAclButtonTable","itemDeleteButtonTable","uploadDiv","right","uploadDivDragging","uploadCenterDiv","border","uploadCenterIcon","uploadCenterText","uploadCloseButton","uploadCenterTextAndIcon","menuButtonExpertActive","menuButtonRestrictActive","pathDiv","marginRight","whiteSpace","pathDivInput","pathDivBreadcrumbDir","backgroundImageLight","backgroundImageDark","backgroundImageColored","direction","specialFolder","USER_DATA","sortFolders","b","folder","name","getParentDir","dir","parts","split","length","pop","join","isFile","path","ext","getFileExtension","toLowerCase","match","TABLE","TILE","FileBrowser","_Component","_inherits2","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","id","fileName","size","key","pos","lastIndexOf","substring","console","log","state","folders","_tempTimeout","clearTimeout","setTimeout","browseFolder","then","setState","array","_ref","backgroundImage","indexOf","window","_localStorage","localStorage","setItem","classes","expanded","getItem","limitPath","limitToObjectID","limitToPath","endsWith","JSON","parse","filter","startsWith","viewType","showViewTypeButton","selected","currentDir","restrictToFolder","push","Array","isArray","filterEmpty","expertMode","addFolder","uploadFile","deleteItem","viewer","formatEditFile","errorText","modalEditOfAccess","queueLength","loadAllFolders","fileErrors","filterByType","showTypesMenu","imagePrefix","levelPadding","mounted","suppressDeleteConfirm","browseList","browseListRunning","initialReadFinished","supportSubscribes","_createClass2","value","_loadFolders","_asyncToGenerator2","_regenerator","mark","_callee","_this2","wrap","_callee$","_context","prev","next","sent","browseFolders","_toConsumableArray2","findItem","pathFocus","scrollToSelected","stop","loadFolders","arguments","el","document","getElementById","scrollIntoView","componentDidMount","_this3","socket","checkFeatureSupported","result","subscribeFiles","onFileChange","componentWillUnmount","unsubscribeFiles","values","forEach","timer","foldersList","_newFolders","_resolve","_this4","keys","Promise","resolve","shift","readDirSerial","adapter","relPath","_this5","reject","processBrowseList","level","_this6","processing","readDir","files","item","folderId","_checkEmpty","force","_this7","map","error","readMetaItems","objs","_folders","userData","obj","_id","findIndex","splice","title","common","meta","from","ts","icon","acl","sort","unshift","alert","file","isDir","stats","modified","modifiedAt","toggleFolder","_this8","stopPropagation","stringify","temp","err","changeFolder","_this9","lastSelect","Date","now","_folder","altKey","shiftKey","ctrlKey","metaKey","onSelect","select","cb","_this10","filterFiles","includes","EXTENSIONS","renderFolder","_this11","Icon","IconOpen","IconClosed","isUserData","isSpecialData","createElement","style","onClick","onDoubleClick","_typeof2","lang","end","className","clsx","undefined","Hidden","smDown","formatAcl","allowDownload","allowDelete","IconButton","Delete","renderBackFolder","_this12","ArrowBack","formatSize","formatBytes","_this13","access","permissions","toString","padStart","modalEditOfAccessControl","getFileIcon","Bookmark","BookmarkBorder","Code","Description","MusicNote","InsertDriveFile","renderFile","_this14","getClassBackgroundImage","onError","target","onerror","src","alt","getEditFile","Edit","tabIndex","download","href","SaveAlt","renderItems","_this15","res","CircularProgress","renderToolbar","_this16","IconType","showTypeSelector","isInFolder","findFirstFolder","Toolbar","variant","allowNonRestricted","edge","menuButton","FolderSpecial","showExpertButton","List","ViewModule","FolderOpen","Refresh","allowCreateFolder","disabled","CreateNewFolder","allowUpload","Publish","Tooltip","Menu","open","anchorEl","onClose","type","MyIcon","MenuItem","removeItem","ListItemIcon","ListItemText","setStateBackgroundImage","Brightness6","parentFolder","find","renderInputDialog","_this17","applyText","cancelText","titleText","promptText","labelText","verify","text","parent","replace","componentDidUpdate","_this18","setOpacityTimer","items","getElementsByClassName","data","writeFile64","_item","renderUpload","_this19","Fab","Close","onDragEnter","onDragLeave","onDrop","acceptedFiles","count","reader","FileReader","onabort","onload","readAsArrayBuffer","_ref2","getRootProps","getInputProps","_extends2","deleteRecursive","_this20","deleteFolder","parentId","f","deleteFile","_this21","newState","renderDeleteDialog","_this22","Dialog","DialogTitle","DialogContent","DialogContentText","DialogActions","Button","autoFocus","renderViewDialog","_this23","themeType","renderError","_this24","updateItemsAcl","info","_this25","cacheFolders","changed","it","cacheFoldersTimeout","changeToPath","_this26","renderBreadcrumb","_this27","p","Breadcrumbs","part","pathDivBreadcrumbSelected","renderPath","_this28","Input","onKeyDown","keyCode","endAdornment","KeyboardReturn","onBlur","onChange","render","_this29","ready","LinearProgress","foldersLoading","showToolbar","allowView","getDerivedStateFromProps","Component","defaultProps","propTypes","PropTypes","object","string","func","isRequired","bool","tileView","_export","withWidth","withStyles","_default","exports"],"sources":["FileBrowser.js"],"sourcesContent":["/**\n * Copyright 2020-2023, Denis Haev <dogafox@gmail.com>\n *\n * MIT License\n *\n * */\nimport React, { Component } from 'react';\nimport { withStyles } from '@mui/styles';\nimport PropTypes from 'prop-types';\nimport Dropzone from 'react-dropzone';\n\nimport {\n LinearProgress,\n Hidden,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Tooltip,\n CircularProgress,\n Toolbar,\n IconButton,\n Fab,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogContentText,\n DialogActions,\n Button,\n Input,\n Breadcrumbs,\n} from '@mui/material';\n\n// MUI Icons\nimport {\n Refresh as RefreshIcon,\n Close as CloseIcon,\n Bookmark as JsonIcon,\n BookmarkBorder as CssIcon,\n Description as HtmlIcon,\n Edit as EditIcon,\n Code as JSIcon,\n InsertDriveFile as FileIcon,\n Publish as UploadIcon,\n MusicNote as MusicIcon,\n SaveAlt as DownloadIcon,\n CreateNewFolder as AddFolderIcon,\n FolderOpen as EmptyFilterIcon,\n List as IconList,\n ViewModule as IconTile,\n ArrowBack as IconBack,\n Delete as DeleteIcon,\n Brightness6 as Brightness5Icon,\n Image as TypeIconImages,\n FontDownload as TypeIconTxt,\n AudioFile as TypeIconAudio,\n Videocam as TypeIconVideo,\n KeyboardReturn as EnterIcon,\n FolderSpecial as RestrictedIcon,\n} from '@mui/icons-material';\n\nimport ErrorDialog from '../Dialogs/Error';\nimport Utils from './Utils';\nimport TextInputDialog from '../Dialogs/TextInput';\n\n// Custom Icons\nimport ExpertIcon from '../icons/IconExpert';\nimport IconClosed from '../icons/IconClosed';\nimport IconOpen from '../icons/IconOpen';\nimport IconNoIcon from '../icons/IconNoIcon';\n\nimport withWidth from './withWidth';\n\nimport FileViewer, { EXTENSIONS } from './FileViewer';\n\nconst ROW_HEIGHT = 32;\nconst BUTTON_WIDTH = 32;\nconst TILE_HEIGHT = 120;\nconst TILE_WIDTH = 64;\n\nconst NOT_FOUND = 'Not found';\n\nconst FILE_TYPE_ICONS = {\n all: FileIcon,\n images: TypeIconImages,\n code: JSIcon,\n txt: TypeIconTxt,\n audio: TypeIconAudio,\n video: TypeIconVideo,\n};\n\nconst styles = theme => ({\n dialog: {\n height: `calc(100% - ${theme.mixins.toolbar.minHeight}px)`,\n },\n root: {\n width: '100%',\n overflow: 'hidden',\n height: '100%',\n position: 'relative',\n },\n filesDiv: {\n width: `calc(100% - ${theme.spacing(2)})`,\n overflowX: 'hidden',\n overflowY: 'auto',\n padding: theme.spacing(1),\n },\n filesDivHint: {\n position: 'absolute',\n bottom: 0,\n left: 20,\n opacity: 0.7,\n fontStyle: 'italic',\n fontSize: 12,\n },\n filesDivTable: {\n height: `calc(100% - ${48 + parseInt(theme.spacing(1), 10)}px)`,\n },\n filesDivTile: {\n height: `calc(100% - ${48 * 2 + parseInt(theme.spacing(1), 10)}px)`,\n display: 'flex',\n alignContent: 'flex-start',\n alignItems: 'stretch',\n flexWrap: 'wrap',\n flex: `0 0 ${TILE_WIDTH}px`,\n },\n\n itemTile: {\n position: 'relative',\n userSelect: 'none',\n cursor: 'pointer',\n height: TILE_HEIGHT,\n width: TILE_WIDTH,\n display: 'inline-block',\n textAlign: 'center',\n opacity: 0.1,\n transition: 'opacity 1s',\n margin: 4,\n '&:hover': {\n background: theme.palette.secondary.light,\n color: Utils.invertColor(theme.palette.secondary.main, true),\n },\n },\n itemNameFolderTile: {\n fontWeight: 'bold',\n },\n itemNameTile: {\n width: '100%',\n height: 32,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n fontSize: 12,\n textAlign: 'center',\n wordBreak: 'break-all',\n },\n itemFolderIconTile: {\n width: '100%',\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\n display: 'block',\n paddingLeft: 8,\n color: theme.palette.secondary.main || '#fbff7d',\n },\n itemFolderIconBack: {\n position: 'absolute',\n top: 22,\n left: 18,\n zIndex: 1,\n color: theme.palette.mode === 'dark' ? '#FFF' : '#000',\n },\n itemSizeTile: {\n width: '100%',\n height: 16,\n textAlign: 'center',\n fontSize: 10,\n },\n itemImageTile: {\n width: 'calc(100% - 8px)',\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\n margin: 4,\n display: 'block',\n textAlign: 'center',\n objectFit: 'contain',\n },\n itemIconTile: {\n width: '100%',\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\n display: 'block',\n objectFit: 'contain',\n },\n\n itemSelected: {\n background: theme.palette.primary.main,\n color: Utils.invertColor(theme.palette.primary.main, true),\n },\n\n itemTable: {\n userSelect: 'none',\n cursor: 'pointer',\n height: ROW_HEIGHT,\n display: 'inline-flex',\n lineHeight: `${ROW_HEIGHT}px`,\n '&:hover': {\n background: theme.palette.secondary.light,\n color: Utils.invertColor(theme.palette.secondary.main, true),\n },\n },\n itemNameTable: {\n display: 'inline-block',\n paddingLeft: 10,\n fontSize: '1rem',\n verticalAlign: 'top',\n flexGrow: 1,\n },\n itemNameFolderTable: {\n fontWeight: 'bold',\n },\n itemSizeTable: {\n display: 'inline-block',\n width: 60,\n verticalAlign: 'top',\n textAlign: 'right',\n },\n itemAccessTable: {\n // display: 'inline-block',\n verticalAlign: 'top',\n width: 60,\n textAlign: 'right',\n paddingRight: 5,\n display: 'flex',\n justifyContent: 'center',\n },\n itemImageTable: {\n display: 'inline-block',\n width: 30,\n marginTop: 1,\n objectFit: 'contain',\n maxHeight: 30,\n },\n itemIconTable: {\n display: 'inline-block',\n marginTop: 1,\n width: 30,\n height: 30,\n },\n itemFolderTable: {\n\n },\n itemFolderTemp: {\n opacity: 0.4,\n },\n itemFolderIconTable: {\n marginTop: 1,\n marginLeft: theme.spacing(1),\n display: 'inline-block',\n width: 30,\n height: 30,\n color: theme.palette.secondary.main || '#fbff7d',\n },\n itemDownloadButtonTable: {\n display: 'inline-block',\n width: BUTTON_WIDTH,\n height: ROW_HEIGHT,\n minWidth: BUTTON_WIDTH,\n verticalAlign: 'middle',\n textAlign: 'center',\n padding: 0,\n borderRadius: BUTTON_WIDTH / 2,\n '&:hover': {\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255, 255, 255, 0.08)' : 'rgba(0, 0, 0, 0.08)',\n },\n '& span': {\n paddingTop: 9,\n },\n '& svg': {\n width: 14,\n height: 14,\n fontSize: '1rem',\n marginTop: -3,\n verticalAlign: 'middle',\n color: theme.palette.mode === 'dark' ? '#EEE' : '#111',\n },\n },\n itemDownloadEmptyTable: {\n display: 'inline-block',\n width: BUTTON_WIDTH,\n height: ROW_HEIGHT,\n minWidth: BUTTON_WIDTH,\n padding: 0,\n },\n itemAclButtonTable: {\n width: BUTTON_WIDTH,\n height: ROW_HEIGHT,\n minWidth: BUTTON_WIDTH,\n verticalAlign: 'top',\n padding: 0,\n fontSize: 12,\n display: 'flex',\n },\n itemDeleteButtonTable: {\n display: 'inline-block',\n width: BUTTON_WIDTH,\n height: ROW_HEIGHT,\n minWidth: BUTTON_WIDTH,\n verticalAlign: 'top',\n padding: 0,\n '& svg': {\n width: 18,\n height: 18,\n fontSize: '1.5rem',\n },\n },\n\n uploadDiv: {\n top: 0,\n zIndex: 1,\n bottom: 0,\n left: 0,\n right: 0,\n position: 'absolute',\n opacity: 0.9,\n textAlign: 'center',\n background: '#FFFFFF',\n },\n uploadDivDragging: {\n opacity: 1,\n },\n\n uploadCenterDiv: {\n margin: 20,\n border: '3px dashed grey',\n borderRadius: 30,\n width: 'calc(100% - 40px)',\n height: 'calc(100% - 40px)',\n position: 'relative',\n color: theme.palette.mode === 'dark' ? '#222' : '#CCC',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n uploadCenterIcon: {\n width: '25%',\n height: '25%',\n },\n uploadCenterText: {\n fontSize: 24,\n fontWeight: 'bold',\n },\n uploadCloseButton: {\n zIndex: 2,\n position: 'absolute',\n top: 30,\n right: 30,\n },\n uploadCenterTextAndIcon: {\n position: 'absolute',\n height: '30%',\n width: '100%',\n margin: 'auto',\n opacity: 0.3,\n },\n menuButtonExpertActive: {\n color: '#c00000',\n },\n menuButtonRestrictActive: {\n color: '#c05000',\n },\n pathDiv: {\n display: 'flex',\n width: `calc(100% - ${theme.spacing(2)})`,\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n textOverflow: 'clip',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n backgroundColor: theme.palette.secondary.main,\n },\n pathDivInput: {\n width: '100%',\n },\n pathDivBreadcrumbDir: {\n paddingLeft: 2,\n paddingRight: 2,\n cursor: 'pointer',\n '&:hover': {\n background: theme.palette.primary.main,\n },\n },\n backgroundImageLight: {\n background: 'white',\n },\n backgroundImageDark: {\n background: 'black',\n },\n backgroundImageColored: {\n background: 'silver',\n },\n '@media screen and (max-width: 500px)': {\n itemNameTable: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n textAlign: 'end',\n direction: 'rtl',\n },\n },\n specialFolder: {\n color: theme.palette.mode === 'dark' ? '#229b0f' : '#5dd300',\n },\n});\n\nconst USER_DATA = '0_userdata.0';\n\nfunction sortFolders(a, b) {\n if (a.folder && b.folder) {\n return a.name > b.name ? 1 : (a.name < b.name ? -1 : 0);\n }\n if (a.folder) {\n return -1;\n }\n if (b.folder) {\n return 1;\n }\n return a.name > b.name ? 1 : (a.name < b.name ? -1 : 0);\n}\n\nfunction getParentDir(dir) {\n const parts = (dir || '').split('/');\n parts.length && parts.pop();\n return parts.join('/');\n}\n\nfunction isFile(path) {\n const ext = Utils.getFileExtension(path);\n return !!(ext && ext.toLowerCase().match(/[a-z]+/) && ext.length < 5);\n}\n\nconst TABLE = 'Table';\nconst TILE = 'Tile';\n\n/**\n * @extends {React.Component<import('./types').FileBrowserProps>}\n */\nclass FileBrowser extends Component {\n /**\n * @param {Readonly<import(\"./types\").FileBrowserProps>} props\n */\n constructor(props) {\n super(props);\n let expanded = (window._localStorage || window.localStorage).getItem('files.expanded') || '[]';\n\n if (this.props.limitPath) {\n const parts = this.props.limitPath.split('/');\n this.limitToObjectID = parts[0];\n this.limitToPath = !parts.length ? null : (parts.length === 1 && parts[0] === '' ? null : parts.join('/'));\n if (this.limitToPath && this.limitToPath.endsWith('/')) {\n this.limitToPath.substring(0, this.limitToPath.length - 1);\n }\n }\n\n try {\n expanded = JSON.parse(expanded);\n if (this.limitToPath) {\n expanded = expanded.filter(id => id.startsWith(`${this.limitToPath}/`) || id === this.limitToPath || this.limitToPath.startsWith(`${id}/`));\n }\n } catch (e) {\n expanded = [];\n }\n\n let viewType;\n if (this.props.showViewTypeButton) {\n viewType = (window._localStorage || window.localStorage).getItem('files.viewType') || TABLE;\n } else {\n viewType = TABLE;\n }\n\n let selected = this.props.selected || (window._localStorage || window.localStorage).getItem('files.selected') || USER_DATA;\n\n let currentDir = '';\n\n if (props.restrictToFolder) {\n selected = props.restrictToFolder;\n currentDir = props.restrictToFolder;\n const parts = props.restrictToFolder.split('/');\n expanded = [];\n let path = '';\n for (let i = 0; i < parts.length; i++) {\n path += (path ? '/' : '') + parts[i];\n expanded.push(path);\n }\n } else {\n // TODO: Now we do not support multiple selection\n if (Array.isArray(selected)) {\n selected = selected[0];\n }\n\n if (isFile(selected)) {\n currentDir = getParentDir(selected);\n } else {\n currentDir = selected;\n }\n }\n const backgroundImage = (window._localStorage || window.localStorage).getItem('files.backgroundImage') || null;\n\n this.state = {\n viewType,\n folders: {},\n filterEmpty: (window._localStorage || window.localStorage).getItem('files.empty') !== 'false',\n expanded,\n currentDir,\n expertMode: this.props.expertMode,\n addFolder: false,\n uploadFile: false,\n deleteItem: '',\n // marked: [],\n viewer: '',\n formatEditFile: '',\n path: selected,\n selected,\n errorText: '',\n modalEditOfAccess: false,\n backgroundImage,\n queueLength: 0,\n loadAllFolders: false,\n // allFoldersLoaded: false,\n fileErrors: [],\n filterByType: props.filterByType || window.localStorage.getItem('files.filterByType') || '',\n showTypesMenu: null,\n restrictToFolder: props.restrictToFolder || '',\n };\n\n this.imagePrefix = this.props.imagePrefix || './files/';\n\n this.levelPadding = this.props.levelPadding || 20;\n this.mounted = true;\n this.suppressDeleteConfirm = 0;\n\n this.browseList = [];\n this.browseListRunning = false;\n this.initialReadFinished = false;\n this.supportSubscribes = null;\n this._tempTimeout = {};\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.expertMode !== undefined && props.expertMode !== state.expertMode) {\n return { expertMode: props.expertMode, loadAllFolders: true };\n }\n\n return null;\n }\n\n async loadFolders() {\n this.initialReadFinished = false;\n\n let folders = await this.browseFolder('/');\n\n if (this.state.viewType === TABLE) {\n folders = await this.browseFolders([...this.state.expanded], folders);\n } else if (\n this.state.currentDir &&\n this.state.currentDir !== '/' &&\n (!this.limitToObjectID || this.state.currentDir.startsWith(this.limitToObjectID))\n ) {\n folders = await this.browseFolder(this.state.currentDir, folders);\n }\n\n this.setState({ folders }, () => {\n if (this.state.viewType === TABLE && !this.findItem(this.state.selected)) {\n const parts = this.state.selected.split('/');\n while (parts.length && !this.findItem(parts.join('/'))) {\n parts.pop();\n }\n let selected;\n if (parts.length) {\n selected = parts.join('/');\n } else {\n selected = USER_DATA;\n }\n this.setState({ selected, path: selected, pathFocus: false }, () => this.scrollToSelected());\n } else {\n this.scrollToSelected();\n }\n this.initialReadFinished = true;\n });\n }\n\n scrollToSelected() {\n if (this.mounted) {\n const el = document.getElementById(this.state.selected);\n el && el.scrollIntoView();\n }\n }\n\n componentDidMount() {\n this.mounted = true;\n this.loadFolders();\n return this.props.socket.checkFeatureSupported('BINARY_STATE_EVENT')\n .then(result => {\n this.supportSubscribes = result;\n this.supportSubscribes && this.props.socket.subscribeFiles('*', '*', this.onFileChange);\n });\n }\n\n componentWillUnmount() {\n this.supportSubscribes && this.props.socket.unsubscribeFiles('*', '*', this.onFileChange);\n this.mounted = false;\n this.browseList = null;\n this.browseListRunning = false;\n Object.values(this._tempTimeout)\n .forEach(timer => timer && clearTimeout(timer));\n this._tempTimeout = {};\n }\n\n browseFolders(foldersList, _newFolders, _resolve) {\n if (!_newFolders) {\n _newFolders = {};\n Object.keys(this.state.folders).forEach(folder => _newFolders[folder] = this.state.folders[folder]);\n }\n\n if (!_resolve) {\n return new Promise(resolve => {\n this.browseFolders(foldersList, _newFolders, resolve);\n });\n }\n\n if (!foldersList || !foldersList.length) {\n return _resolve(_newFolders);\n }\n\n return this.browseFolder(foldersList.shift(), _newFolders)\n .then(() => setTimeout(() => this.browseFolders(foldersList, _newFolders, _resolve), 0))\n .catch(() => setTimeout(() => this.browseFolders(foldersList, _newFolders, _resolve), 0));\n }\n\n readDirSerial(adapter, relPath) {\n return new Promise((resolve, reject) => {\n if (this.browseList) { // if component still mounted\n this.browseList.push({\n resolve, reject, adapter, relPath,\n });\n !this.browseListRunning && this.processBrowseList();\n }\n });\n }\n\n processBrowseList(level) {\n if (!this.browseListRunning && this.browseList && this.browseList.length) {\n this.browseListRunning = true;\n if (this.browseList.length > 10) {\n // not too often\n if (!(this.browseList.length % 10)) {\n this.setState({ queueLength: this.browseList.length });\n }\n } else {\n this.setState({ queueLength: this.browseList.length });\n }\n\n this.browseList[0].processing = true;\n this.props.socket.readDir(this.browseList[0].adapter, this.browseList[0].relPath)\n .then(files => {\n if (this.browseList) { // if component still mounted\n const item = this.browseList.shift();\n if (item) {\n const resolve = item.resolve;\n item.resolve = null;\n item.reject = null;\n item.adapter = null;\n item.relPath = null;\n resolve(files);\n this.browseListRunning = false;\n if (this.browseList.length) {\n if (level < 5) {\n this.processBrowseList(level + 1);\n } else {\n setTimeout(() => this.processBrowseList(0), 0);\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n }\n })\n .catch(e => {\n if (this.browseList) { // if component still mounted\n const item = this.browseList.shift();\n if (item) {\n const reject = item.reject;\n item.resolve = null;\n item.reject = null;\n item.adapter = null;\n item.relPath = null;\n reject(e);\n this.browseListRunning = false;\n if (this.browseList.length) {\n if (level < 5) {\n this.processBrowseList(level + 1);\n } else {\n setTimeout(() => this.processBrowseList(0), 0);\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n }\n });\n }\n }\n\n browseFolder(folderId, _newFolders, _checkEmpty, force) {\n if (typeof _newFolders === 'boolean') {\n force = _newFolders;\n _newFolders = null;\n }\n\n if (!_newFolders) {\n _newFolders = {};\n Object.keys(this.state.folders).forEach(folder =>\n _newFolders[folder] = this.state.folders[folder]);\n }\n\n if (_newFolders[folderId] && !force) {\n if (!_checkEmpty) {\n return new Promise((resolve, reject) => {\n Promise.all(_newFolders[folderId].filter(item => item.folder).map(item =>\n this.browseFolder(item.id, _newFolders, true)\n .catch(() => { })))\n .then(() => resolve(_newFolders))\n .catch(error => reject(error));\n });\n }\n\n return Promise.resolve(_newFolders);\n }\n\n if (!folderId || folderId === '/') {\n return this.props.socket.readMetaItems()\n .then(objs => {\n const _folders = [];\n let userData = null;\n\n if (this.state.restrictToFolder) {\n const adapter = this.state.restrictToFolder.split('/')[0];\n objs = objs.filter(obj => obj._id === adapter);\n } else if (!this.state.expertMode) {\n // load only adapter.admin and not other meta files like hm-rpc.0.devices.blablabla\n objs = objs.filter(obj => !obj._id.endsWith('.admin'));\n }\n\n const pos = objs.findIndex(obj => obj._id === 'system.meta.uuid');\n if (pos !== -1) {\n objs.splice(pos, 1);\n }\n\n objs.forEach(obj => {\n if (this.limitToObjectID && this.limitToObjectID !== obj._id) {\n return;\n }\n\n const item = {\n id: obj._id,\n name: obj._id,\n title: (obj.common && obj.common.name) || obj._id,\n meta: true,\n from: obj.from,\n ts: obj.ts,\n color: obj.common && obj.common.color,\n icon: obj.common && obj.common.icon,\n folder: true,\n acl: obj.acl,\n level: 0,\n };\n if (item.id === USER_DATA) {\n // user data must be first\n userData = item;\n } else {\n _folders.push(item);\n }\n });\n _folders.sort((a, b) => (a.id > b.id ? 1 : (a.id < b.id ? -1 : 0)));\n if (!this.limitToObjectID || this.limitToObjectID === USER_DATA) {\n userData && _folders.unshift(userData);\n }\n\n _newFolders[folderId || '/'] = _folders;\n\n if (!_checkEmpty) {\n return Promise.all(_folders.filter(item => item.folder).map(item =>\n this.browseFolder(item.id, _newFolders, true)\n .catch(() => { })))\n .then(() => _newFolders);\n }\n\n return _newFolders;\n })\n .catch(e => this.initialReadFinished && window.alert(`Cannot read meta items: ${e}`));\n }\n\n const parts = folderId.split('/');\n const level = parts.length;\n const adapter = parts.shift();\n const relPath = parts.join('/');\n\n // make all requests here serial\n return this.readDirSerial(adapter, relPath)\n .then(files => {\n const _folders = [];\n\n files.forEach(file => {\n const item = {\n id: `${folderId}/${file.file}`,\n ext: Utils.getFileExtension(file.file),\n folder: file.isDir,\n name: file.file,\n size: file.stats && file.stats.size,\n modified: file.modifiedAt,\n acl: file.acl,\n level,\n };\n\n if (this.state.restrictToFolder) {\n if (item.folder && (item.id.startsWith(`${this.state.restrictToFolder}/`) || item.id === this.state.restrictToFolder || this.state.restrictToFolder.startsWith(`${item.id}/`))) {\n _folders.push(item);\n } else if (item.id.startsWith(`${this.state.restrictToFolder}/`)) {\n _folders.push(item);\n }\n } else if (this.limitToPath) {\n if (item.folder && (item.id.startsWith(`${this.limitToPath}/`) || item.id === this.limitToPath || this.limitToPath.startsWith(`${item.id}/`))) {\n _folders.push(item);\n } else if (item.id.startsWith(`${this.limitToPath}/`)) {\n _folders.push(item);\n }\n } else {\n _folders.push(item);\n }\n });\n\n _folders.sort(sortFolders);\n _newFolders[folderId] = _folders;\n\n if (!_checkEmpty) {\n return Promise.all(_folders\n .filter(item => item.folder)\n .map(item => this.browseFolder(item.id, _newFolders, true)))\n .then(() => _newFolders);\n }\n\n return _newFolders;\n })\n .catch(e => {\n this.initialReadFinished && window.alert(`Cannot read ${adapter}${relPath ? `/${relPath}` : ''}: ${e}`);\n _newFolders[folderId] = [];\n return _newFolders;\n });\n }\n\n toggleFolder(item, e) {\n e && e.stopPropagation();\n const expanded = [...this.state.expanded];\n const pos = expanded.indexOf(item.id);\n if (pos === -1) {\n expanded.push(item.id);\n expanded.sort();\n\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n\n if (!item.temp) {\n this.browseFolder(item.id)\n .then(folders => this.setState({ expanded, folders }))\n .catch(err => window.alert(err === NOT_FOUND ? this.props.t('ra_Cannot find \"%s\"', item.id) : this.props.t('ra_Cannot read \"%s\"', item.id)));\n } else {\n this.setState({ expanded });\n }\n } else {\n expanded.splice(pos, 1);\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n this.setState({ expanded });\n }\n }\n\n onFileChange = (id, fileName, size) => {\n const key = `${id}/${fileName}`;\n const pos = key.lastIndexOf('/');\n const folder = key.substring(0, pos);\n console.log(`File changed ${key}[${size}]`);\n\n if (this.state.folders[folder]) {\n this._tempTimeout[folder] && clearTimeout(this._tempTimeout[folder]);\n\n this._tempTimeout[folder] = setTimeout(() => {\n delete this._tempTimeout[folder];\n\n this.browseFolder(folder, true)\n .then(folders => this.setState({ folders }));\n }, 300);\n }\n };\n\n changeFolder(e, folder) {\n e && e.stopPropagation();\n\n this.lastSelect = Date.now();\n\n let _folder = folder || getParentDir(this.state.currentDir);\n\n if (_folder === '/') {\n _folder = '';\n }\n\n (window._localStorage || window.localStorage).setItem('files.currentDir', _folder);\n\n if (folder && e && (e.altKey || e.shiftKey || e.ctrlKey || e.metaKey)) {\n return this.setState({ selected: _folder });\n }\n\n if (_folder && !this.state.folders[_folder]) {\n return this.browseFolder(_folder)\n .then(folders =>\n this.setState({\n folders,\n path: _folder,\n currentDir: _folder,\n selected: _folder,\n pathFocus: false,\n }, () =>\n this.props.onSelect && this.props.onSelect('')));\n }\n\n return this.setState({\n currentDir: _folder,\n selected: _folder,\n path: _folder,\n pathFocus: false,\n }, () =>\n this.props.onSelect && this.props.onSelect(''));\n }\n\n select(id, e, cb) {\n if (typeof e === 'function') {\n cb = e;\n e = null;\n }\n e && e.stopPropagation();\n this.lastSelect = Date.now();\n\n (window._localStorage || window.localStorage).setItem('files.selected', id);\n\n this.setState({ selected: id, path: id, pathFocus: false }, () => {\n if (this.props.onSelect) {\n const ext = Utils.getFileExtension(id);\n if ((!this.props.filterFiles || this.props.filterFiles.includes(ext)) &&\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(ext))\n ) {\n this.props.onSelect(id, false, !!this.state.folders[id]);\n } else {\n this.props.onSelect('');\n }\n }\n cb && cb();\n });\n }\n\n renderFolder(item, expanded) {\n if (this.state.viewType === TABLE &&\n this.state.filterEmpty &&\n (!this.state.folders[item.id] || !this.state.folders[item.id].length) &&\n item.id !== USER_DATA && !item.temp\n ) {\n return null;\n }\n const Icon = expanded ? IconOpen : IconClosed;\n const padding = this.state.viewType === TABLE ? item.level * this.levelPadding : 0;\n const isUserData = item.name === USER_DATA;\n const isSpecialData = isUserData || item.name === 'vis.0' || item.name === 'vis-2.0';\n\n return <div\n key={item.id}\n id={item.id}\n style={this.state.viewType === TABLE ? { marginLeft: padding, width: `calc(100% - ${padding}px` } : {}}\n onClick={e => (this.state.viewType === TABLE ? this.select(item.id, e) : this.changeFolder(e, item.id))}\n onDoubleClick={e => this.state.viewType === TABLE && this.toggleFolder(item, e)}\n title={item.title && typeof item.title === 'object' ? (item.title[this.props.lang] || item.title.end || '') : (item.title || null)}\n className={Utils.clsx(\n 'browserItem',\n this.props.classes[`item${this.state.viewType}`],\n this.props.classes[`itemFolder${this.state.viewType}`],\n this.state.selected === item.id && this.props.classes.itemSelected,\n item.temp && this.props.classes.itemFolderTemp,\n )}\n >\n <Icon\n className={Utils.clsx(this.props.classes[`itemFolderIcon${this.state.viewType}`], isSpecialData && this.props.classes.specialFolder)}\n onClick={this.state.viewType === TABLE ? e => this.toggleFolder(item, e) : undefined}\n />\n\n <div className={Utils.clsx(this.props.classes[`itemName${this.state.viewType}`], this.props.classes[`itemNameFolder${this.state.viewType}`])}>\n {isUserData ? this.props.t('ra_User files') : item.name}\n </div>\n\n <Hidden smDown>\n <div className={this.props.classes[`itemSize${this.state.viewType}`]}>\n {this.state.viewType === TABLE && this.state.folders[item.id] ? this.state.folders[item.id].length : ''}\n </div>\n </Hidden>\n\n <Hidden smDown>\n {this.state.viewType === TABLE && this.props.expertMode ? this.formatAcl(item.acl) : null}\n </Hidden>\n\n <Hidden smDown>\n {this.state.viewType === TABLE && this.props.expertMode ? <div className={this.props.classes[`itemDeleteButton${this.state.viewType}`]} /> : null}\n </Hidden>\n {this.state.viewType === TABLE && this.props.allowDownload ? <div className={this.props.classes[`itemDownloadEmpty${this.state.viewType}`]} /> : null}\n\n {this.state.viewType === TABLE && this.props.allowDelete && this.state.folders[item.id] && this.state.folders[item.id].length ?\n <IconButton\n aria-label=\"delete\"\n onClick={e => {\n e.stopPropagation();\n if (this.suppressDeleteConfirm > Date.now()) {\n this.deleteItem(item.id);\n } else {\n this.setState({ deleteItem: item.id });\n }\n }}\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\n size=\"large\"\n >\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n :\n (this.state.viewType === TABLE && this.props.allowDelete ? <div className={this.props.classes[`itemDeleteButton${this.state.viewType}`]} /> : null)}\n </div>;\n }\n\n renderBackFolder() {\n return <div\n key={this.state.currentDir}\n id={this.state.currentDir}\n onClick={e => this.changeFolder(e)}\n title={this.props.t('ra_Back to %s', getParentDir(this.state.currentDir))}\n className={Utils.clsx(\n 'browserItem',\n this.props.classes[`item${this.state.viewType}`],\n this.props.classes[`itemFolder${this.state.viewType}`],\n )}\n >\n <IconClosed className={this.props.classes[`itemFolderIcon${this.state.viewType}`]} />\n <IconBack className={this.props.classes.itemFolderIconBack} />\n\n <div\n className={Utils.clsx(this.props.classes[`itemName${this.state.viewType}`], this.props.classes[`itemNameFolder${this.state.viewType}`])}\n >\n..\n </div>\n </div>;\n }\n\n formatSize(size) {\n return <div className={this.props.classes[`itemSize${this.state.viewType}`]}>{size || size === 0 ? Utils.formatBytes(size) : ''}</div>;\n }\n\n formatAcl(acl) {\n let access = acl && (acl.permissions || acl.file);\n if (access) {\n access = access.toString(16).padStart(3, '0');\n }\n\n return <div className={this.props.classes[`itemAccess${this.state.viewType}`]}>\n {this.props.modalEditOfAccessControl ? <IconButton\n size=\"large\"\n onClick={() => this.setState({ modalEditOfAccess: true })}\n className={this.props.classes[`itemAclButton${this.state.viewType}`]}\n >\n {access || '---'}\n </IconButton> : access || '---'}\n </div>;\n }\n\n getFileIcon(ext) {\n switch (ext) {\n case 'json':\n case 'json5':\n return <JsonIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\n\n case 'css':\n return <CssIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\n\n case 'js':\n case 'ts':\n return <JSIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\n\n case 'html':\n case 'md':\n return <HtmlIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\n\n case 'mp3':\n case 'ogg':\n case 'wav':\n case 'm4a':\n case 'mp4':\n case 'flac':\n return <MusicIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\n\n default:\n return <FileIcon className={this.props.classes[`itemIcon${this.state.viewType}`]} />;\n }\n }\n\n static getEditFile(ext) {\n switch (ext) {\n case 'json':\n case 'json5':\n case 'js':\n case 'html':\n case 'txt':\n case 'css':\n case 'log':\n return true;\n default:\n return false;\n }\n }\n\n setStateBackgroundImage = () => {\n const array = ['light', 'dark', 'colored', 'delete'];\n this.setState(({ backgroundImage }) => {\n if (array.indexOf(backgroundImage) !== -1 && array.length - 1 !== array.indexOf(backgroundImage)) {\n (window._localStorage || window.localStorage).setItem('files.backgroundImage', array[array.indexOf(backgroundImage) + 1]);\n return { backgroundImage: array[array.indexOf(backgroundImage) + 1] };\n }\n (window._localStorage || window.localStorage).setItem('files.backgroundImage', array[0]);\n return { backgroundImage: array[0] };\n });\n };\n\n getClassBackgroundImage = () => {\n // ['light', 'dark', 'colored', 'delete']\n switch (this.state.backgroundImage) {\n case 'light':\n return this.props.classes.backgroundImageLight;\n case 'dark':\n return this.props.classes.backgroundImageDark;\n case 'colored':\n return this.props.classes.backgroundImageColored;\n case 'delete':\n return null;\n default:\n return null;\n }\n };\n\n renderFile(item) {\n const padding = this.state.viewType === TABLE ? item.level * this.levelPadding : 0;\n const ext = Utils.getFileExtension(item.name);\n\n return <div\n key={item.id}\n id={item.id}\n onDoubleClick={e => {\n e.stopPropagation();\n if (!this.props.onSelect) {\n this.setState({ viewer: this.imagePrefix + item.id, formatEditFile: ext });\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(item.ext))\n ) {\n this.props.onSelect(item.id, true, !!this.state.folders[item.id]);\n }\n }}\n onClick={e => this.select(item.id, e)}\n style={this.state.viewType === TABLE ? { marginLeft: padding, width: `calc(100% - ${padding}px)` } : {}}\n className={Utils.clsx(\n 'browserItem',\n this.props.classes[`item${this.state.viewType}`],\n this.props.classes[`itemFile${this.state.viewType}`],\n this.state.selected === item.id && this.props.classes.itemSelected,\n )}\n >\n {EXTENSIONS.images.includes(ext) ?\n this.state.fileErrors.includes(item.id) ?\n <IconNoIcon className={Utils.clsx(this.props.classes[`itemImage${this.state.viewType}`], this.getClassBackgroundImage())} /> :\n <img\n onError={e => {\n e.target.onerror = null;\n const fileErrors = [...this.state.fileErrors];\n if (!fileErrors.includes(item.id)) {\n fileErrors.push(item.id);\n this.setState({ fileErrors });\n }\n }}\n className={Utils.clsx(this.props.classes[`itemImage${this.state.viewType}`], this.getClassBackgroundImage())}\n src={this.imagePrefix + item.id}\n alt={item.name}\n />\n :\n this.getFileIcon(ext)}\n <div className={this.props.classes[`itemName${this.state.viewType}`]}>{item.name}</div>\n <Hidden smDown>{this.formatSize(item.size)}</Hidden>\n <Hidden smDown>{this.state.viewType === TABLE && this.props.expertMode ? this.formatAcl(item.acl) : null}</Hidden>\n <Hidden smDown>\n {this.state.viewType === TABLE && this.props.expertMode && FileBrowser.getEditFile(ext) ?\n <IconButton\n aria-label=\"edit\"\n onClick={e => {\n e.stopPropagation();\n if (!this.props.onSelect) {\n this.setState({ viewer: this.imagePrefix + item.id, formatEditFile: ext });\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(item.ext))\n ) {\n this.props.onSelect(item.id, true, !!this.state.folders[item.id]);\n }\n }}\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\n size=\"large\"\n >\n <EditIcon fontSize=\"small\" />\n </IconButton>\n :\n <div className={this.props.classes[`itemDeleteButton${this.state.viewType}`]} />}\n </Hidden>\n {this.state.viewType === TABLE && this.props.allowDownload ? <a\n className={Utils.clsx('MuiButtonBase-root', 'MuiIconButton-root', 'MuiIconButton-sizeLarge', this.props.classes.itemDownloadButtonTable)}\n tabIndex=\"0\"\n download={item.id}\n href={this.imagePrefix + item.id}\n onClick={e => {\n e.stopPropagation();\n }}\n >\n <DownloadIcon />\n </a> : null}\n\n {this.state.viewType === TABLE &&\n this.props.allowDelete &&\n item.id !== 'vis.0/' &&\n item.id !== 'vis-2.0/' &&\n item.id !== USER_DATA\n ?\n <IconButton\n aria-label=\"delete\"\n onClick={e => {\n e.stopPropagation();\n if (this.suppressDeleteConfirm > Date.now()) {\n this.deleteItem(item.id);\n } else {\n this.setState({ deleteItem: item.id });\n }\n }}\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\n size=\"large\"\n >\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n :\n (this.state.viewType === TABLE && this.props.allowDelete ?\n <div className={this.props.classes[`itemDeleteButton${this.state.viewType}`]} />\n :\n null\n )}\n </div>;\n }\n\n renderItems(folderId) {\n if (this.state.folders && this.state.folders[folderId]) {\n // tile\n if (this.state.viewType === TILE) {\n const res = [];\n if (folderId && folderId !== '/') {\n res.push(this.renderBackFolder());\n }\n this.state.folders[folderId].forEach(item => {\n if (item.folder) {\n res.push(this.renderFolder(item));\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(item.ext))\n ) {\n res.push(this.renderFile(item));\n }\n });\n return res;\n }\n return this.state.folders[folderId].map(item => {\n const res = [];\n if (item.folder) {\n const expanded = this.state.expanded.includes(item.id);\n\n res.push(this.renderFolder(item, expanded));\n if (this.state.folders[item.id] && expanded) {\n res.push(this.renderItems(item.id));\n }\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.state.filterByType || EXTENSIONS[this.state.filterByType].includes(item.ext))\n ) {\n res.push(this.renderFile(item));\n } else {\n return null;\n }\n\n return res;\n });\n }\n\n return <div style={{ position: 'relative' }}>\n <CircularProgress key={folderId} color=\"secondary\" size={24} />\n <div style={{\n position: 'absolute', zIndex: 2, top: 4, width: 24, textAlign: 'center',\n }}\n >\n {this.state.queueLength}\n </div>\n </div>;\n }\n\n renderToolbar() {\n const IconType = this.props.showTypeSelector ? (FILE_TYPE_ICONS[this.state.filterByType || 'all'] || FILE_TYPE_ICONS.all) : null;\n\n const isInFolder = this.findFirstFolder(this.state.selected);\n\n return <Toolbar key=\"toolbar\" variant=\"dense\">\n {this.props.allowNonRestricted && this.props.restrictToFolder ? <IconButton\n edge=\"start\"\n title={this.state.restrictToFolder ? this.props.t('ra_Show all folders') : this.props.t('ra_Restrict to folder')}\n className={Utils.clsx(this.props.classes.menuButton, this.state.restrictToFolder && this.props.classes.menuButtonRestrictActive)}\n aria-label=\"restricted to folder\"\n onClick={() => this.setState({\n restrictToFolder: this.state.restrictToFolder ? '' : this.props.restrictToFolder,\n loadAllFolders: true,\n })}\n size=\"small\"\n >\n <RestrictedIcon fontSize=\"small\" />\n </IconButton> : null}\n {this.props.showExpertButton ? <IconButton\n edge=\"start\"\n title={this.props.t('ra_Toggle expert mode')}\n className={Utils.clsx(this.props.classes.menuButton, this.state.expertMode && this.props.classes.menuButtonExpertActive)}\n aria-label=\"expert mode\"\n onClick={() => this.setState({ expertMode: !this.state.expertMode })}\n size=\"small\"\n >\n <ExpertIcon fontSize=\"small\" />\n </IconButton> : null}\n {this.props.showViewTypeButton ? <IconButton\n edge=\"start\"\n title={this.props.t('ra_Toggle view mode')}\n className={this.props.classes.menuButton}\n aria-label=\"view mode\"\n onClick={() => {\n const viewType = this.state.viewType === TABLE ? TILE : TABLE;\n (window._localStorage || window.localStorage).setItem('files.viewType', viewType);\n let currentDir = this.state.selected;\n if (isFile(currentDir)) {\n currentDir = getParentDir(currentDir);\n }\n this.setState({ viewType, currentDir }, () => {\n if (this.state.viewType === TABLE) {\n this.scrollToSelected();\n }\n });\n }}\n size=\"small\"\n >\n {this.state.viewType !== TABLE ? <IconList fontSize=\"small\" /> : <IconTile fontSize=\"small\" />}\n </IconButton> : null}\n <IconButton\n edge=\"start\"\n title={this.props.t('ra_Hide empty folders')}\n className={this.props.classes.menuButton}\n color={this.state.filterEmpty ? 'secondary' : 'inherit'}\n aria-label=\"filter empty\"\n onClick={() => {\n (window._localStorage || window.localStorage).setItem('file.empty', !this.state.filterEmpty);\n this.setState({ filterEmpty: !this.state.filterEmpty });\n }}\n size=\"small\"\n >\n <EmptyFilterIcon fontSize=\"small\" />\n </IconButton>\n <IconButton\n edge=\"start\"\n title={this.props.t('ra_Reload files')}\n className={this.props.classes.menuButton}\n color=\"inherit\"\n aria-label=\"reload files\"\n onClick={() => this.setState({ folders: {} }, () => this.loadFolders())}\n size=\"small\"\n >\n <RefreshIcon fontSize=\"small\" />\n </IconButton>\n {this.props.allowCreateFolder ? <IconButton\n edge=\"start\"\n disabled={\n !this.state.selected ||\n !isInFolder ||\n (\n this.limitToPath &&\n !this.state.selected.startsWith(`${this.limitToPath}/`) &&\n this.limitToPath !== this.state.selected\n )\n }\n title={this.props.t('ra_Create folder')}\n className={this.props.classes.menuButton}\n color=\"inherit\"\n aria-label=\"add folder\"\n onClick={() => this.setState({ addFolder: true })}\n size=\"small\"\n >\n <AddFolderIcon fontSize=\"small\" />\n </IconButton> : null}\n {this.props.allowUpload ? <IconButton\n edge=\"start\"\n disabled={\n !this.state.selected ||\n !isInFolder ||\n (\n this.limitToPath &&\n !this.state.selected.startsWith(`${this.limitToPath}/`) &&\n this.limitToPath !== this.state.selected\n )\n }\n title={this.props.t('ra_Upload file')}\n className={this.props.classes.menuButton}\n color=\"inherit\"\n aria-label=\"upload file\"\n onClick={() => this.setState({ uploadFile: true })}\n size=\"small\"\n >\n <UploadIcon fontSize=\"small\" />\n </IconButton> : null}\n {this.props.showTypeSelector ? <Tooltip title={this.props.t('ra_Filter files')}>\n <IconButton size=\"small\" onClick={e => this.setState({ showTypesMenu: e.target })}>\n <IconType fontSize=\"small\" />\n </IconButton>\n </Tooltip> : null}\n {this.state.showTypesMenu ? <Menu\n open={!0}\n anchorEl={this.state.showTypesMenu}\n onClose={() => this.setState({ showTypesMenu: null })}\n >\n {Object.keys(FILE_TYPE_ICONS).map(type => {\n const MyIcon = FILE_TYPE_ICONS[type];\n return <MenuItem\n key={type}\n selected={this.state.filterByType === type}\n onClick={() => {\n if (type === 'all') {\n (window._localStorage || window.localStorage).removeItem('files.filterByType');\n this.setState({ filterByType: '', showTypesMenu: null });\n } else {\n (window._localStorage || window.localStorage).setItem('files.filterByType', type);\n this.setState({ filterByType: type, showTypesMenu: null });\n }\n }}\n >\n <ListItemIcon><MyIcon fontSize=\"small\" /></ListItemIcon>\n <ListItemText>{this.props.t(`ra_fileType_${type}`)}</ListItemText>\n </MenuItem>;\n })}\n </Menu> : null}\n <Tooltip title={this.props.t('ra_Background image')}>\n <IconButton\n color=\"inherit\"\n edge=\"start\"\n className={this.props.classes.menuButton}\n onClick={this.setStateBackgroundImage}\n size=\"small\"\n >\n <Brightness5Icon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n {this.state.viewType !== TABLE && this.props.allowDelete ? <Tooltip title={this.props.t('ra_Delete')}>\n <span>\n <IconButton\n aria-label=\"delete\"\n disabled={\n !this.state.selected ||\n this.state.selected === 'vis.0/' ||\n this.state.selected === 'vis-2.0/' ||\n this.state.selected === USER_DATA\n }\n color=\"inherit\"\n edge=\"start\"\n className={this.props.classes.menuButton}\n onClick={e => {\n e.stopPropagation();\n if (this.suppressDeleteConfirm > Date.now()) {\n this.deleteItem(this.state.selected);\n } else {\n this.setState({ deleteItem: this.state.selected });\n }\n }}\n size=\"small\"\n >\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip> : null}\n </Toolbar>;\n }\n\n findItem(id, folders) {\n folders = folders || this.state.folders;\n if (!folders) {\n return null;\n }\n const parts = id.split('/');\n parts.pop();\n const parentFolder = parts.join('/') || '/';\n if (!folders[parentFolder]) {\n return null;\n }\n return folders[parentFolder].find(item => item.id === id);\n }\n\n renderInputDialog() {\n if (this.state.addFolder) {\n const parentFolder = this.findFirstFolder(this.state.selected);\n\n if (!parentFolder) {\n return window.alert(this.props.t('ra_Invalid parent folder!'));\n }\n\n return <TextInputDialog\n key=\"inputDialog\"\n applyText={this.props.t('ra_Create')}\n cancelText={this.props.t('ra_Cancel')}\n titleText={this.props.t('ra_Create new folder in %s', this.state.selected)}\n promptText={this.props.t('ra_If no file will be created in the folder, it will disappear after the browser closed')}\n labelText={this.props.t('ra_Folder name')}\n verify={text => (this.state.folders[parentFolder].find(item => item.name === text) ? '' : this.props.t('ra_Duplicate name'))}\n onClose={name => {\n if (name) {\n const folders = {};\n Object.keys(this.state.folders).forEach(folder => folders[folder] = this.state.folders[folder]);\n const parent = this.findItem(parentFolder);\n const id = `${parentFolder}/${name}`;\n folders[parentFolder].push({\n id,\n level: parent.level + 1,\n name,\n folder: true,\n temp: true,\n });\n\n folders[parentFolder].sort(sortFolders);\n\n folders[id] = [];\n const expanded = [...this.state.expanded];\n if (!expanded.includes(parentFolder)) {\n expanded.push(parentFolder);\n expanded.sort();\n }\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n this.setState({ addFolder: false, folders, expanded }, () =>\n this.select(id));\n } else {\n this.setState({ addFolder: false });\n }\n }}\n replace={text => text.replace(/[^-_\\w\\d]/, '_')}\n />;\n }\n return null;\n }\n\n componentDidUpdate(/* prevProps , prevState, snapshot */) {\n this.setOpacityTimer && clearTimeout(this.setOpacityTimer);\n this.setOpacityTimer = setTimeout(() => {\n this.setOpacityTimer = null;\n const items = window.document.getElementsByClassName('browserItem');\n for (let i = 0; i < items.length; i++) {\n items[i].style.opacity = 1;\n }\n }, 100);\n }\n\n uploadFile(fileName, data) {\n const parts = fileName.split('/');\n const adapter = parts.shift();\n return this.props.socket.writeFile64(adapter, parts.join('/'), data)\n .catch(e => window.alert(`Cannot write file: ${e}`));\n }\n\n findFirstFolder(id) {\n let parentFolder = id;\n const item = this.findItem(parentFolder);\n // find folder\n if (item && !item.folder) {\n const parts = parentFolder.split('/');\n parts.pop();\n parentFolder = '';\n while (parts.length) {\n const _item = this.findItem(parts.join('/'));\n if (_item && _item.folder) {\n parentFolder = parts.join('/');\n break;\n }\n }\n }\n\n return parentFolder;\n }\n\n renderUpload() {\n if (this.state.uploadFile) {\n return [\n <Fab\n key=\"close\"\n color=\"primary\"\n aria-label=\"close\"\n className={this.props.classes.uploadCloseButton}\n onClick={() => this.setState({ uploadFile: false })}\n >\n <CloseIcon />\n </Fab>,\n <Dropzone\n key=\"dropzone\"\n onDragEnter={() => this.setState({ uploadFile: 'dragging' })}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={acceptedFiles => {\n let count = acceptedFiles.length;\n\n acceptedFiles.forEach(file => {\n const reader = new FileReader();\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n const parentFolder = this.findFirstFolder(this.state.selected);\n\n if (!parentFolder) {\n window.alert(this.props.t('ra_Invalid parent folder!'));\n } else {\n const id = `${parentFolder}/${file.name}`;\n\n this.uploadFile(id, reader.result)\n .then(() => {\n if (!--count) {\n this.setState({ uploadFile: false }, () => {\n if (this.supportSubscribes) {\n // open current folder\n const expanded = [...this.state.expanded];\n if (!expanded.includes(parentFolder)) {\n expanded.push(parentFolder);\n expanded.sort();\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n }\n this.setState({ expanded }, () =>\n this.select(id));\n } else {\n setTimeout(\n () =>\n this.browseFolder(parentFolder, true)\n .then(folders => {\n // open current folder\n const expanded = [...this.state.expanded];\n if (!expanded.includes(parentFolder)) {\n expanded.push(parentFolder);\n expanded.sort();\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n }\n this.setState({ folders, expanded }, () =>\n this.select(id));\n }),\n 500,\n );\n }\n });\n }\n });\n }\n };\n\n reader.readAsArrayBuffer(file);\n });\n }}\n >\n {({ getRootProps, getInputProps }) => (\n <div\n className={Utils.clsx(this.props.classes.uploadDiv, this.state.uploadFile === 'dragging' && this.props.classes.uploadDivDragging)}\n {...getRootProps()}\n >\n <input {...getInputProps()} />\n <div className={this.props.classes.uploadCenterDiv}>\n <div className={this.props.classes.uploadCenterTextAndIcon}>\n <UploadIcon className={this.props.classes.uploadCenterIcon} />\n <div className={this.props.classes.uploadCenterText}>\n {\n this.state.uploadFile === 'dragging' ? this.props.t('ra_Drop file here') :\n this.props.t('ra_Place your files here or click here to open the browse dialog')\n }\n </div>\n </div>\n </div>\n </div>)}\n </Dropzone>,\n ];\n }\n return null;\n }\n\n deleteRecursive(id) {\n const item = this.findItem(id);\n if (item.folder) {\n return (this.state.folders[id] ? Promise.all(this.state.folders[id].map(_item =>\n this.deleteRecursive(_item.id))) : Promise.resolve())\n .then(() => {\n // If it is folder of second level\n if (item.level >= 1) {\n const parts = id.split('/');\n const adapter = parts.shift();\n this.props.socket.deleteFolder(adapter, parts.join('/'))\n .then(() => {\n // remove this folder\n const folders = JSON.parse(JSON.stringify(this.state.folders));\n delete folders[item.id];\n // delete folder from parent item\n const parentId = getParentDir(item.id);\n const parentFolder = folders[parentId];\n if (parentFolder) {\n const pos = parentFolder.indexOf(parentFolder.find(f => f.id === item.id));\n if (pos !== -1) {\n parentFolder.splice(pos, 1);\n }\n\n this.select(parentId, () => this.setState({ folders }));\n }\n });\n }\n });\n }\n\n const parts = id.split('/');\n const adapter = parts.shift();\n if (parts.length) {\n return this.props.socket.deleteFile(adapter, parts.join('/'))\n .catch(e => window.alert(`Cannot delete file: ${e}`));\n }\n return Promise.resolve();\n }\n\n deleteItem(deleteItem) {\n deleteItem = deleteItem || this.state.deleteItem;\n\n this.setState({ deleteItem: '' }, () =>\n this.deleteRecursive(deleteItem)\n .then(() => {\n const newState = {};\n const pos = this.state.expanded.indexOf(deleteItem);\n if (pos !== -1) {\n const expanded = [...this.state.expanded];\n expanded.splice(pos, 1);\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n newState.expanded = expanded;\n }\n\n if (this.state.selected === deleteItem) {\n const parts = this.state.selected.split('/');\n parts.pop();\n newState.selected = parts.join('/');\n }\n\n if (!this.supportSubscribes) {\n const parentFolder = this.findFirstFolder(deleteItem);\n const folders = {};\n\n Object.keys(this.state.folders).forEach(name => {\n if (name !== parentFolder && !name.startsWith(`${parentFolder}/`)) {\n folders[name] = this.state.folders[name];\n }\n });\n\n newState.folders = folders;\n\n this.setState(newState, () =>\n setTimeout(() => this.browseFolders([...this.state.expanded], folders)\n .then(_folders => this.setState({ folders: _folders })), 200));\n } else {\n this.setState(newState);\n }\n }));\n }\n\n renderDeleteDialog() {\n if (this.state.deleteItem) {\n return <Dialog\n key=\"deleteDialog\"\n open={!0}\n onClose={() => this.setState({ deleteItem: '' })}\n aria-labelledby=\"ar_dialog_file_delete_title\"\n >\n <DialogTitle id=\"ar_dialog_file_delete_title\">{this.props.t('ra_Confirm deletion of %s', this.state.deleteItem.split('/').pop())}</DialogTitle>\n <DialogContent>\n <DialogContentText>\n {this.props.t('ra_Are you sure?')}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n color=\"grey\"\n variant=\"contained\"\n onClick={() => {\n this.suppressDeleteConfirm = Date.now() + 60000 * 5;\n this.deleteItem();\n }}\n >\n {this.props.t('ra_Delete (no confirm for 5 mins)')}\n </Button>\n <Button variant=\"contained\" onClick={() => this.deleteItem()} color=\"primary\" autoFocus>{this.props.t('ra_Delete')}</Button>\n <Button variant=\"contained\" onClick={() => this.setState({ deleteItem: '' })} color=\"grey\">{this.props.t('ra_Cancel')}</Button>\n </DialogActions>\n </Dialog>;\n }\n return false;\n }\n\n renderViewDialog() {\n return this.state.viewer ? <FileViewer\n supportSubscribes={this.supportSubscribes}\n key={this.state.viewer}\n href={this.state.viewer}\n formatEditFile={this.state.formatEditFile}\n themeType={this.props.themeType}\n setStateBackgroundImage={this.setStateBackgroundImage}\n getClassBackgroundImage={this.getClassBackgroundImage}\n t={this.props.t}\n socket={this.props.socket}\n lang={this.props.lang}\n expertMode={this.state.expertMode}\n onClose={() => this.setState({ viewer: '', formatEditFile: '' })}\n /> : null;\n }\n\n renderError() {\n if (this.state.errorText) {\n return <ErrorDialog\n classes={{ }}\n key=\"errorDialog\"\n text={this.state.errorText}\n onClose={() => this.setState({ errorText: '' })}\n />;\n }\n return null;\n }\n\n // used in tabs/Files\n // eslint-disable-next-line react/no-unused-class-component-methods\n updateItemsAcl(info) {\n this.cacheFolders = this.cacheFolders || JSON.parse(JSON.stringify(this.state.folders));\n let changed;\n\n info.forEach(it => {\n const item = this.findItem(it.id, this.cacheFolders);\n if (item && JSON.stringify(item.acl) !== JSON.stringify(it.acl)) {\n item.acl = it.acl;\n changed = true;\n }\n });\n if (changed) {\n this.cacheFoldersTimeout && clearTimeout(this.cacheFoldersTimeout);\n this.cacheFoldersTimeout = setTimeout(() => {\n this.cacheFoldersTimeout = null;\n const folders = this.cacheFolders;\n this.cacheFolders = null;\n this.setState({ folders });\n }, 200);\n }\n }\n\n changeToPath() {\n setTimeout(() => {\n if (this.state.path !== this.state.selected && (!this.lastSelect || Date.now() - this.lastSelect > 100)) {\n let folder = this.state.path;\n if (isFile(this.state.path)) {\n folder = getParentDir(this.state.path);\n }\n new Promise(resolve => {\n if (!this.state.folders[folder]) {\n this.browseFolder(folder)\n .then(folders => this.setState({ folders }, () => resolve(true)))\n .catch(err => this.setState({ errorText: err === NOT_FOUND ? this.props.t('ra_Cannot find \"%s\"', folder) : this.props.t('ra_Cannot read \"%s\"', folder) }));\n } else {\n resolve(true);\n }\n })\n .then(result =>\n result && this.setState({ selected: this.state.path, currentDir: folder, pathFocus: false }));\n } else if (!this.lastSelect || Date.now() - this.lastSelect > 100) {\n this.setState({ pathFocus: false });\n }\n }, 100);\n }\n\n renderBreadcrumb() {\n const parts = this.state.currentDir.startsWith('/') ? this.state.currentDir.split('/') : (`/${this.state.currentDir}`).split('/');\n const p = [];\n return <Breadcrumbs style={{ paddingLeft: 8 }}>\n {parts.map((part, i) => {\n part && p.push(part);\n const path = p.join('/');\n if (i < parts.length - 1) {\n return <div\n key={`${this.state.selected}_${i}`}\n className={this.props.classes.pathDivBreadcrumbDir}\n onClick={e => this.changeFolder(e, path || '/')}\n >\n {part || this.props.t('ra_Root')}\n </div>;\n }\n\n return <div\n className={this.props.classes.pathDivBreadcrumbSelected}\n key={`${this.state.selected}_${i}`}\n onClick={() => this.setState({ pathFocus: true })}\n >\n {part}\n </div>;\n })}\n </Breadcrumbs>;\n }\n\n renderPath() {\n return <div key=\"path\" className={this.props.classes.pathDiv}>\n {this.state.pathFocus ?\n <Input\n value={this.state.path}\n onKeyDown={e => {\n if (e.keyCode === 13) {\n this.changeToPath();\n } else if (e.keyCode === 27) {\n this.setState({ pathFocus: false });\n }\n }}\n endAdornment={<IconButton size=\"small\" onClick={() => this.changeToPath()}><EnterIcon /></IconButton>}\n onBlur={() => this.changeToPath()}\n onChange={e => this.setState({ path: e.target.value })}\n className={this.props.classes.pathDivInput}\n />\n :\n this.renderBreadcrumb()}\n </div>;\n }\n\n render() {\n if (!this.props.ready) {\n return <LinearProgress />;\n }\n\n if (this.state.loadAllFolders && !this.foldersLoading) {\n this.foldersLoading = true;\n setTimeout(() => {\n this.setState({ loadAllFolders: false, folders: {} }, () => {\n this.foldersLoading = false;\n this.loadFolders();\n });\n }, 300);\n }\n\n return <div style={this.props.style} className={Utils.clsx(this.props.classes.root, this.props.className)}>\n {this.props.showToolbar ? this.renderToolbar() : null}\n {this.state.viewType === TILE ? this.renderPath() : null}\n <div\n className={Utils.clsx(this.props.classes.filesDiv, this.props.classes[`filesDiv${this.state.viewType}`])}\n onClick={e => {\n if (this.state.viewType !== TABLE) {\n if (this.state.selected !== (this.state.currentDir || '/')) {\n this.changeFolder(e, this.state.currentDir || '/');\n } else {\n e.stopPropagation();\n }\n }\n }}\n >\n {this.state.viewType === TABLE ? this.renderItems('/') : this.renderItems(this.state.currentDir || '/')}\n {this.state.viewType !== TABLE ? <div className={this.props.classes.filesDivHint}>{this.props.t('ra_select_folder_hint')}</div> : null}\n </div>\n {this.props.allowUpload ? this.renderInputDialog() : null}\n {this.props.allowUpload ? this.renderUpload() : null}\n {this.props.allowDelete ? this.renderDeleteDialog() : null}\n {this.props.allowView ? this.renderViewDialog() : null}\n {this.state.modalEditOfAccess && this.props.modalEditOfAccessControl && this.props.modalEditOfAccessControl(this)}\n {this.renderError()}\n </div>;\n }\n}\n\nFileBrowser.defaultProps = {\n modalEditOfAccessControl: () => { },\n};\n\nFileBrowser.propTypes = {\n style: PropTypes.object,\n className: PropTypes.string,\n t: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n socket: PropTypes.object.isRequired,\n ready: PropTypes.bool,\n expertMode: PropTypes.bool,\n showTypeSelector: PropTypes.bool,\n showToolbar: PropTypes.bool,\n allowUpload: PropTypes.bool,\n allowDownload: PropTypes.bool,\n allowCreateFolder: PropTypes.bool,\n allowDelete: PropTypes.bool,\n allowView: PropTypes.bool,\n imagePrefix: PropTypes.string,\n showExpertButton: PropTypes.bool,\n viewType: PropTypes.string,\n showViewTypeButton: PropTypes.bool,\n themeType: PropTypes.string,\n restrictToFolder: PropTypes.string, // If defined, allow selecting only files from this folder\n allowNonRestricted: PropTypes.bool, // If restrictToFolder defined, allow selecting files outside of this folder\n\n selected: PropTypes.string,\n tileView: PropTypes.bool,\n filterFiles: PropTypes.array, // like ['png', 'svg', 'bmp', 'jpg', 'jpeg', 'gif']\n filterByType: PropTypes.string, // images, code or txt from EXTENSIONS\n onSelect: PropTypes.func, // function (id, isDoubleClick)\n\n modalEditOfAccessControl: PropTypes.func,\n};\n\n/** @type {typeof FileBrowser} */\nconst _export = withWidth()(withStyles(styles)(FileBrowser));\nexport default _export;\n"],"mappings":"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","ignoreList":[]}