@iobroker/adapter-react-v5 4.4.7 → 4.5.0
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.
- package/Components/CustomModal.js +6 -3
- package/Components/CustomModal.js.map +1 -1
- package/Components/FileBrowser.js +4 -2
- package/Components/FileBrowser.js.map +1 -1
- package/Components/FileViewer.d.ts +5 -0
- package/Components/FileViewer.js +34 -7
- package/Components/FileViewer.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAccordion.d.ts +1 -0
- package/Components/JsonConfigComponent/ConfigAccordion.js +3 -1
- package/Components/JsonConfigComponent/ConfigAccordion.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCRON.js +2 -4
- package/Components/JsonConfigComponent/ConfigCRON.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCheckLicense.js +29 -12
- package/Components/JsonConfigComponent/ConfigCheckLicense.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCustom.js +4 -5
- package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFile.js +9 -14
- package/Components/JsonConfigComponent/ConfigFile.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigGeneric.d.ts +1 -0
- package/Components/JsonConfigComponent/ConfigGeneric.js +9 -8
- package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigIP.js +5 -0
- package/Components/JsonConfigComponent/ConfigIP.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigNumber.js +42 -31
- package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPanel.js +2 -0
- package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPort.js +44 -29
- package/Components/JsonConfigComponent/ConfigPort.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSelect.js +29 -12
- package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js +11 -21
- package/Components/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSendto.js +16 -20
- package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSetState.js +18 -19
- package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticText.js +14 -23
- package/Components/JsonConfigComponent/ConfigStaticText.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTable.js +12 -8
- package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTabs.d.ts +1 -0
- package/Components/JsonConfigComponent/ConfigTabs.js +5 -4
- package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigText.js +3 -7
- package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTextSendTo.js +3 -4
- package/Components/JsonConfigComponent/ConfigTextSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTimePicker.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigUUID.js +5 -6
- package/Components/JsonConfigComponent/ConfigUUID.js.map +1 -1
- package/Components/JsonConfigComponent/index.js +2 -0
- package/Components/JsonConfigComponent/index.js.map +1 -1
- package/Components/ObjectBrowser.d.ts +23 -1
- package/Components/ObjectBrowser.js +460 -50
- package/Components/ObjectBrowser.js.map +1 -1
- package/Components/TabContainer.d.ts +3 -0
- package/Components/TabContainer.js +7 -2
- package/Components/TabContainer.js.map +1 -1
- package/Components/TabContent.d.ts +1 -0
- package/Components/TabContent.js +7 -0
- package/Components/TabContent.js.map +1 -1
- package/Components/TableResize.js +7 -4
- package/Components/TableResize.js.map +1 -1
- package/Components/ToggleThemeMenu.js +5 -5
- package/Components/ToggleThemeMenu.js.map +1 -1
- package/Components/UploadImage.js +10 -7
- package/Components/UploadImage.js.map +1 -1
- package/Components/Utils.d.ts +2 -1
- package/Components/Utils.js +105 -98
- package/Components/Utils.js.map +1 -1
- package/README.md +6 -0
- package/i18n/de.json +10 -2
- package/i18n/en.json +10 -2
- package/i18n/es.json +10 -2
- package/i18n/fr.json +10 -2
- package/i18n/it.json +10 -2
- package/i18n/nl.json +10 -2
- package/i18n/pl.json +10 -2
- package/i18n/pt.json +10 -2
- package/i18n/ru.json +10 -2
- package/i18n/uk.json +10 -2
- package/i18n/zh-cn.json +10 -2
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileBrowser.js","names":["_react","_interopRequireWildcard","require","_styles","_propTypes","_interopRequireDefault","_reactDropzone","_material","_iconsMaterial","_Error","_Utils","_TextInput","_FileViewer","_IconExpert","_IconClosed","_IconOpen","_IconNoIcon","_withWidth","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof3","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","e","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","pathDiv","marginRight","whiteSpace","pathDivInput","pathDivBreadcrumbDir","backgroundImageLight","backgroundImageDark","backgroundImageColored","direction","specialFolder","USER_DATA","sortFolders","a","b","folder","name","getParentDir","dir","parts","split","length","pop","join","isFile","path","ext","getFileExtension","toLowerCase","match","TABLE","TILE","FileBrowser","_Component","_inherits2","_super","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","id","fileName","size","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","Array","isArray","currentDir","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","_this2","browseFolders","_toConsumableArray2","Promise","resolve","findItem","pathFocus","scrollToSelected","el","document","getElementById","scrollIntoView","componentDidMount","_this3","socket","checkFeatureSupported","subscribeFiles","onFileChange","componentWillUnmount","unsubscribeFiles","values","forEach","timer","foldersList","_newFolders","_resolve","_this4","keys","shift","readDirSerial","adapter","relPath","_this5","reject","push","processBrowseList","level","_this6","processing","readDir","files","item","folderId","_checkEmpty","force","_this7","map","error","readMetaItems","objs","_folders","userData","_id","findIndex","splice","title","common","meta","from","ts","icon","acl","sort","unshift","alert","file","isDir","stats","modified","modifiedAt","toggleFolder","_this8","stopPropagation","stringify","temp","err","t","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","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","showExpertButton","edge","menuButton","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","i","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","themeName","renderError","_this24","changeToPath","_this25","renderBreadcrumb","_this26","p","Breadcrumbs","part","renderPath","_this27","Input","onKeyDown","keyCode","endAdornment","KeyboardReturn","onBlur","onChange","render","_this28","ready","LinearProgress","foldersLoading","showToolbar","allowView","modalEditOfAccessControl","modalEditOfAccessObjData","getDerivedStateFromProps","Component","defaultProps","propTypes","PropTypes","object","string","func","isRequired","bool","tileView","_export","withWidth","withStyles","_default","exports"],"sources":["FileBrowser.js"],"sourcesContent":["/**\n * Copyright 2020-2023, bluefox <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} from '@mui/icons-material';\n\nimport ErrorDialog from '../Dialogs/Error';\nimport Utils from './Utils';\nimport TextInputDialog from '../Dialogs/TextInput';\nimport FileViewer, { EXTENSIONS } from './FileViewer';\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\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 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.mode === 'dark' ? '#333' : '#CCC',\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 // TODO: Now we do not support multiple selection\n if (Array.isArray(selected)) {\n selected = selected[0];\n }\n\n let currentDir = '';\n if (isFile(selected)) {\n currentDir = getParentDir(selected);\n } else {\n currentDir = selected;\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 };\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 loadFolders() {\n this.initialReadFinished = false;\n\n return this.browseFolder('/')\n .then(folders => (this.state.viewType === TABLE ?\n this.browseFolders([...this.state.expanded], folders)\n :\n (this.state.currentDir && this.state.currentDir !== '/' && (!this.limitToObjectID || this.state.currentDir.startsWith(this.limitToObjectID)) ?\n this.browseFolder(this.state.currentDir, folders) : Promise.resolve(folders))))\n .then(folders => 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 // load only adapter.admin and not other meta files like hm-rpc.0.devices.blablabla\n if (!this.state.expertMode) {\n objs = objs.filter(obj => !obj._id.endsWith('.admin'));\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 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.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.filterEmpty && (!this.state.folders[item.id] || !this.state.folders[item.id].length) && item.id !== USER_DATA && !item.temp) {\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-beta.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}`])}>{isUserData ? this.props.t('ra_User files') : item.name}</div>\n\n <Hidden smDown>\n <div className={this.props.classes[`itemSize${this.state.viewType}`]}>{this.state.viewType === TABLE && this.state.folders[item.id] ? this.state.folders[item.id].length : ''}</div>\n </Hidden>\n\n <Hidden smDown>\n {this.state.viewType === TABLE ? 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 <IconButton\n size=\"large\"\n onClick={() => this.setState({ modalEditOfAccess: true })}\n className={this.props.classes[`itemAclButton${this.state.viewType}`]}\n >\n {access || '---'}\n </IconButton>\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 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.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-beta.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.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-beta.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 themeName={this.props.themeName}\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 /*\n updateItemsAcl(info) {\n const folders = JSON.parse(JSON.stringify(this.state.folders));\n let changed;\n info.forEach(it => {\n const item = this.findItem(it.id, folders);\n if (item && JSON.stringify(item.acl) !== JSON.stringify(it.acl)) {\n item.acl = it.acl;\n changed = true;\n }\n });\n changed && this.setState({ folders });\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>\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 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, this.state.modalEditOfAccessObjData)}\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\n selected: PropTypes.string,\n tileView: PropTypes.bool,\n filterFiles: PropTypes.array, // like ['png', 'svg', 'bmp', 'jpg', 'jpeg']\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","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof3","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","e","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","pathDiv","marginRight","whiteSpace","pathDivInput","pathDivBreadcrumbDir","backgroundImageLight","backgroundImageDark","backgroundImageColored","direction","specialFolder","USER_DATA","sortFolders","a","b","folder","name","getParentDir","dir","parts","split","length","pop","join","isFile","path","ext","getFileExtension","toLowerCase","match","TABLE","TILE","FileBrowser","_Component","_inherits2","_super","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","id","fileName","size","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","Array","isArray","currentDir","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","_this2","browseFolders","_toConsumableArray2","Promise","resolve","findItem","pathFocus","scrollToSelected","el","document","getElementById","scrollIntoView","componentDidMount","_this3","socket","checkFeatureSupported","subscribeFiles","onFileChange","componentWillUnmount","unsubscribeFiles","values","forEach","timer","foldersList","_newFolders","_resolve","_this4","keys","shift","readDirSerial","adapter","relPath","_this5","reject","push","processBrowseList","level","_this6","processing","readDir","files","item","folderId","_checkEmpty","force","_this7","map","error","readMetaItems","objs","_folders","userData","_id","findIndex","splice","title","common","meta","from","ts","icon","acl","sort","unshift","alert","file","isDir","stats","modified","modifiedAt","toggleFolder","_this8","stopPropagation","stringify","temp","err","t","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","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","showExpertButton","edge","menuButton","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","i","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","themeName","renderError","_this24","changeToPath","_this25","renderBreadcrumb","_this26","p","Breadcrumbs","part","renderPath","_this27","Input","onKeyDown","keyCode","endAdornment","KeyboardReturn","onBlur","onChange","render","_this28","ready","LinearProgress","foldersLoading","showToolbar","allowView","modalEditOfAccessControl","modalEditOfAccessObjData","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} 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 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.mode === 'dark' ? '#333' : '#CCC',\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 // TODO: Now we do not support multiple selection\n if (Array.isArray(selected)) {\n selected = selected[0];\n }\n\n let currentDir = '';\n if (isFile(selected)) {\n currentDir = getParentDir(selected);\n } else {\n currentDir = selected;\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 };\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 loadFolders() {\n this.initialReadFinished = false;\n\n return this.browseFolder('/')\n .then(folders => (this.state.viewType === TABLE ?\n this.browseFolders([...this.state.expanded], folders)\n :\n (this.state.currentDir && this.state.currentDir !== '/' && (!this.limitToObjectID || this.state.currentDir.startsWith(this.limitToObjectID)) ?\n this.browseFolder(this.state.currentDir, folders) : Promise.resolve(folders))))\n .then(folders => 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 // load only adapter.admin and not other meta files like hm-rpc.0.devices.blablabla\n if (!this.state.expertMode) {\n objs = objs.filter(obj => !obj._id.endsWith('.admin'));\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 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.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.filterEmpty && (!this.state.folders[item.id] || !this.state.folders[item.id].length) && item.id !== USER_DATA && !item.temp) {\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-beta.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}`])}>{isUserData ? this.props.t('ra_User files') : item.name}</div>\n\n <Hidden smDown>\n <div className={this.props.classes[`itemSize${this.state.viewType}`]}>{this.state.viewType === TABLE && this.state.folders[item.id] ? this.state.folders[item.id].length : ''}</div>\n </Hidden>\n\n <Hidden smDown>\n {this.state.viewType === TABLE ? 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 <IconButton\n size=\"large\"\n onClick={() => this.setState({ modalEditOfAccess: true })}\n className={this.props.classes[`itemAclButton${this.state.viewType}`]}\n >\n {access || '---'}\n </IconButton>\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.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-beta.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.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-beta.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 themeName={this.props.themeName}\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 /*\n updateItemsAcl(info) {\n const folders = JSON.parse(JSON.stringify(this.state.folders));\n let changed;\n info.forEach(it => {\n const item = this.findItem(it.id, folders);\n if (item && JSON.stringify(item.acl) !== JSON.stringify(it.acl)) {\n item.acl = it.acl;\n changed = true;\n }\n });\n changed && this.setState({ folders });\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>\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 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, this.state.modalEditOfAccessObjData)}\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\n selected: PropTypes.string,\n tileView: PropTypes.bool,\n filterFiles: PropTypes.array, // like ['png', 'svg', 'bmp', 'jpg', 'jpeg']\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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"}
|